diff options
author | Context Git Mirror Bot <phg42.2a@gmail.com> | 2016-01-12 17:15:07 +0100 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2016-01-12 17:15:07 +0100 |
commit | 8d8d528d2ad52599f11250cfc567fea4f37f2a8b (patch) | |
tree | 94286bc131ef7d994f9432febaf03fe23d10eef8 /tex/context/base/mkiv/strc-des.mkvi | |
parent | f5aed2e51223c36c84c5f25a6cad238b2af59087 (diff) | |
download | context-8d8d528d2ad52599f11250cfc567fea4f37f2a8b.tar.gz |
2016-01-12 16:26:00
Diffstat (limited to 'tex/context/base/mkiv/strc-des.mkvi')
-rw-r--r-- | tex/context/base/mkiv/strc-des.mkvi | 250 |
1 files changed, 250 insertions, 0 deletions
diff --git a/tex/context/base/mkiv/strc-des.mkvi b/tex/context/base/mkiv/strc-des.mkvi new file mode 100644 index 000000000..83daba0fe --- /dev/null +++ b/tex/context/base/mkiv/strc-des.mkvi @@ -0,0 +1,250 @@ +%D \module +%D [ file=strc-des, +%D version=2008.10.20, +%D title=\CONTEXT\ Structure Macros, +%D subtitle=Descriptions, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +\writestatus{loading}{ConTeXt Structure Macros / Descriptions} + +\unprotect + +\installcorenamespace{description} + +\installcommandhandler \??description {description} \??description + +\let\setupdescriptions\setupdescription + +% \setupdescriptions % check with old +% [\c!alternative=\descriptionparameter\c!location, +% \c!location=\v!left] + +\setupdescriptions % check with old + [\c!alternative=\v!left, + \c!headstyle=\v!bold, + \c!titlestyle=\v!bold, + %\c!style=, + %\c!color=, + %\c!headcolor=, + %\c!titlecolor=, + \c!width=7\emwidth, + \c!distance=\emwidth, + \c!titledistance=.5\emwidth, + %\c!hang=, + %\c!sample=, + %\c!align=, + %\c!headalign=, + \c!margin=\v!no, + \c!before=\blank, + \c!inbetween=\blank, + \c!after=\blank, + \c!indentnext=\v!yes, + \c!indenting=\v!never, + \c!titleleft=(, + \c!titleright=), + %\c!closesymbol=, + \c!closecommand=\wordright, + \c!display=\v!yes, + %\c!command=, + \c!titlecommand=, + \c!expansion=\v!no, + %\c!xmlsetup=, + %\s!catcodes=, + \c!title=\v!yes, + %\c!text=, + ] + +\appendtoks + \ifx\currentdescriptionparent\empty + \defineconstruction[\currentdescription][\currentdescriptionparent][\s!handler=\v!description,\c!level=1]% + \else + \defineconstruction[\currentdescription][\s!handler=\v!description,\c!level=1]% + \fi + \setuevalue {\currentdescription}{\strc_descriptions_command{\currentdescription}}% + \setuevalue{\e!start\currentdescription}{\strc_descriptions_start {\currentdescription}}% + \setuevalue{\e!stop \currentdescription}{\strc_descriptions_stop}% +\to \everydefinedescription + +\let\p_strc_constructions_title \empty + +\unexpanded\setvalue{\??constructioninitializer\v!description}% + {\let\currentdescription \currentconstruction + \let\constructionparameter \descriptionparameter + \let\constructionnamespace \??description + \let\detokenizedconstructionparameter\detokenizeddescriptionparameter + \let\letconstructionparameter \letdescriptionparameter + \let\useconstructionstyleandcolor \usedescriptionstyleandcolor + \let\setupcurrentconstruction \setupcurrentdescription + \edef\p_strc_constructions_title{\constructionparameter\c!title}% + \ifx\p_strc_constructions_title\v!yes + \settrue\c_strc_constructions_title_state + \else + \setfalse\c_strc_constructions_title_state + \fi} + +% We keep the command variant around but rather would move to the +% start-stop one. Also, passing the title as argument has some +% history so we need to keep that as well. + +% \startdescription [reference] text \stopdescription +% \startdescription [reference]{title} text \stopdescription +% \startdescription [title=,title=,reference=] text \stopdescription + +% A bit over the top, the optional title but mkii has it too. + +\unexpanded\def\strc_descriptions_start#1% + {\begingroup + \strc_constructions_initialize{#1}% + \doifelsenextoptionalcs\strc_descriptions_start_yes\strc_descriptions_start_nop} + +\unexpanded\def\strc_descriptions_start_yes[#1]% + {\doifelseassignment{#1}\strc_descriptions_start_yes_assignment\strc_descriptions_start_yes_reference[#1]} + +\unexpanded\def\strc_descriptions_start_yes_assignment[#1]% todo userdata + {\strc_constructions_register[\c!label={\descriptionparameter\c!text},\c!reference=,\c!title=,\c!bookmark=,\c!list=,#1][]% + \csname\??constructionstarthandler\currentconstructionhandler\endcsname} + +\unexpanded\def\strc_descriptions_start_yes_reference + {\ifconditional\c_strc_constructions_title_state + \expandafter\strc_descriptions_start_yes_titled + \else + \expandafter\strc_descriptions_start_yes_normal + \fi} + +\unexpanded\def\strc_descriptions_start_yes_titled[#1]% + {\doifelsenextbgroup + {\strc_descriptions_start_yes_titled_indeed[#1]}% + {\setfalse\c_strc_constructions_title_state + \strc_descriptions_start_yes_normal[#1]}} + +\unexpanded\def\strc_descriptions_start_yes_titled_indeed[#1]#2% todo userdata + {\strc_constructions_register[\c!label={\descriptionparameter\c!text},\c!reference={#1},\c!title={#2},\c!bookmark=,\c!list=][]% + \csname\??constructionstarthandler\currentconstructionhandler\endcsname} + +\unexpanded\def\strc_descriptions_start_yes_normal[#1]% todo userdata + {\strc_constructions_register[\c!label={\descriptionparameter\c!text},\c!reference={#1},\c!title=,\c!bookmark=,\c!list=][]% + \csname\??constructionstarthandler\currentconstructionhandler\endcsname} + +\unexpanded\def\strc_descriptions_start_nop + {\ifconditional\c_strc_constructions_title_state + \expandafter\strc_descriptions_start_nop_titled + \else + \expandafter\strc_descriptions_start_nop_normal + \fi} + +\unexpanded\def\strc_descriptions_start_nop_titled + {\doifelsenextbgroup + {\strc_descriptions_start_nop_titled_indeed}% + {\setfalse\c_strc_constructions_title_state + \strc_descriptions_start_nop_normal}}% + +\unexpanded\def\strc_descriptions_start_nop_titled_indeed#1% + {\strc_constructions_register[\c!label={\descriptionparameter\c!text},\c!reference=,\c!title={#1},\c!bookmark=,\c!list=][]% + \csname\??constructionstarthandler\currentconstructionhandler\endcsname} + +\unexpanded\def\strc_descriptions_start_nop_normal + {\strc_constructions_register[\c!label={\descriptionparameter\c!text},\c!reference=,\c!title=,\c!bookmark=,\c!list=][]% + \csname\??constructionstarthandler\currentconstructionhandler\endcsname} + +\unexpanded\def\strc_descriptions_stop + {\csname\??constructionstophandler\currentconstructionhandler\endcsname} + +% \description [reference] text \par +% \description [reference] {title} text \par + +\unexpanded\def\strc_descriptions_command#1% + {\begingroup + \strc_constructions_initialize{#1}% + \doifelsenextoptionalcs\strc_descriptions_yes\strc_descriptions_nop} + +\unexpanded\def\strc_descriptions_yes + {\ifconditional\c_strc_constructions_title_state + \expandafter\strc_descriptions_yes_titled + \else + \expandafter\strc_descriptions_yes_normal + \fi} + +\unexpanded\def\strc_descriptions_yes_titled[#1]#2% + {\strc_constructions_register[\c!label={\descriptionparameter\c!text},\c!reference={#1},\c!title={#2},\c!bookmark=,\c!list=][]% + \csname\??constructioncommandhandler\currentconstructionhandler\endcsname} + +\unexpanded\def\strc_descriptions_yes_titled[#1]% + {\doifelsenextbgroup + {\strc_descriptions_yes_titled_indeed[#1]}% + {\setfalse\c_strc_constructions_title_state + \strc_descriptions_yes_normal[#1]}} + +\unexpanded\def\strc_descriptions_yes_titled_indeed[#1]#2% + {\strc_constructions_register[\c!label={\descriptionparameter\c!text},\c!reference={#1},\c!title={#2},\c!bookmark=,\c!list=][]% + \csname\??constructioncommandhandler\currentconstructionhandler\endcsname} + +\unexpanded\def\strc_descriptions_yes_normal[#1]% + {\strc_constructions_register[\c!label={\descriptionparameter\c!text},\c!reference={#1},\c!title=,\c!bookmark=,\c!list=][]% + \csname\??constructioncommandhandler\currentconstructionhandler\endcsname} + +\unexpanded\def\strc_descriptions_nop + {\ifconditional\c_strc_constructions_title_state + \expandafter\strc_descriptions_nop_titled + \else + \expandafter\strc_descriptions_nop_normal + \fi} + +\unexpanded\def\strc_descriptions_nop_titled + {\doifelsenextbgroup + {\strc_descriptions_nop_titled_indeed}% + {\setfalse\c_strc_constructions_title_state + \strc_descriptions_nop_normal}} + +\unexpanded\def\strc_descriptions_nop_titled_indeed#1% + {\strc_constructions_register[\c!label={\descriptionparameter\c!text},\c!reference=,\c!title={#1},\c!bookmark=,\c!list=][]% + \csname\??constructioncommandhandler\currentconstructionhandler\endcsname} + +\unexpanded\def\strc_descriptions_nop_normal + {\strc_constructions_register[\c!label={\descriptionparameter\c!text},\c!reference=,\c!title=,\c!bookmark=,\c!list=][]% + \csname\??constructioncommandhandler\currentconstructionhandler\endcsname} + +%D Handlers: + +\expandafter\let\csname\??constructionmainhandler \v!description\expandafter\endcsname\csname\??constructionmainhandler \v!construction\endcsname +\expandafter\let\csname\??constructioncommandhandler\v!description\expandafter\endcsname\csname\??constructioncommandhandler\v!construction\endcsname +\expandafter\let\csname\??constructiontexthandler \v!description\expandafter\endcsname\csname\??constructiontexthandler \v!construction\endcsname + +\unexpanded\setvalue{\??constructioncommandhandler\v!description}% + {\dowithpar + {\csname\??constructionstarthandler\v!construction\endcsname}% + {\csname\??constructionstophandler \v!construction\endcsname\endgroup}} + +\unexpanded\setvalue{\??constructionstarthandler\v!description}% + {\BeforePar{\csname\??constructionstarthandler\v!construction\endcsname}% + \GotoPar} + +\unexpanded\setvalue{\??constructionstophandler\v!description}% + {\csname\??constructionstophandler\v!construction\endcsname + \endgroup} + +%D For historic reasons we have (from now on undocumented): + +\definedescription + [tab] + [\c!alternative=\v!left, + \c!headstyle=\v!normal, + \c!headcolor=, + \c!style=\v!normal, + \c!color=, + \c!width=\v!broad, + \c!sample=\kern4\emwidth, % was \hskip but that no longer is okay + \c!before=, + \c!after=] + +\unexpanded\def\setuptab + {\setupdescription[tab]} + +%D Maybe we should remove this definition. + +\protect \endinput |