diff options
Diffstat (limited to 'tex/context/base/strc-tag.mkiv')
-rw-r--r-- | tex/context/base/strc-tag.mkiv | 73 |
1 files changed, 69 insertions, 4 deletions
diff --git a/tex/context/base/strc-tag.mkiv b/tex/context/base/strc-tag.mkiv index 6563e884e..88377a600 100644 --- a/tex/context/base/strc-tag.mkiv +++ b/tex/context/base/strc-tag.mkiv @@ -256,13 +256,78 @@ [\c!state=\v!stop, \c!method=\v!auto] +% \unexpanded\def\startparagraph +% {\dostarttagged\t!paragraph\empty} +% +% \unexpanded\def\stopparagraph +% {% \removeunwantedspaces % yes or no +% \dostoptagged +% \par} + +% Cf suggestion by Wolfgang we now have named paragraphs. Watch out, the content +% is grouped but only when we have an instance. +% +% \defineparagraph[red] [color=red] +% \defineparagraph[bold][style=bold] +% +% \startparagraph \input ward \stopparagraph +% \startparagraph[red] \input ward \stopparagraph +% \startparagraph[bold] \input ward \stopparagraph + +\installcorenamespace {paragraph} +\installcommandhandler \??paragraph {paragraph} \??paragraph + +\setupparagraph % someday maybe also strut (beg/end) and align + [\c!color=, + \c!style=] + \unexpanded\def\startparagraph - {\dostarttagged\t!paragraph\empty} + {\dodoubleempty\paragraph_start} + +\def\paragraph_start + {\iffirstargument + \ifsecondargument + \doubleexpandafter\paragraph_start_two + \else + \doubleexpandafter\paragraph_start_one + \fi + \else + \expandafter\paragraph_start_zero + \fi} + +\def\paragraph_start_two[#1][#2]% + {\endgraf % we end before the group + \begingroup + \let\stopparagraph\paragraph_stop_indeed + \edef\currentparagraph{#1}% + \setupcurrentparagraph[#2]% + \paragraph_start_indeed} + +\def\paragraph_start_one[#1][#2]% + {\endgraf % we end before the group + \begingroup + \let\stopparagraph\paragraph_stop_indeed + \doifassignmentelse{#1} + {\let\currentparagraph\empty + \setupcurrentparagraph[#1]} + {\edef\currentparagraph{#1}}% + \paragraph_start_indeed} + +\def\paragraph_start_indeed + {\useparagraphstyleandcolor\c!style\c!color + \dostarttagged\t!paragraph\currentparagraph} + +\def\paragraph_start_zero[#1][#2]% + {\let\currentparagraph\empty + \paragraph_start_indeed} + +\unexpanded\def\paragraph_stop_indeed + {\dostoptagged + \endgraf % we end inside the group + \endgroup} \unexpanded\def\stopparagraph - {% \removeunwantedspaces % yes or no - \dostoptagged - \par} + {\dostoptagged} \let\startpar\startparagraph \let\stoppar \stopparagraph |