Hi Hans, here is a new attempt to get a more generalized version of the startlines macros, now mkiv only. Wolfgang \unprotect \def\linesparameter #1{\csname\dolinesparameter{\??rg\@@lines} #1\endcsname} \def\dolinesparameter #1#2{\ifcsname#1#2\endcsname#1#2\else \expandafter\dolinesparentparameter\csname#1\s!parent\endcsname#2\fi} \def\dolinesparentparameter#1#2{\ifx#1\relax\s!empty\else \dolinesparameter#1#2\fi} \getparameters [\??rg] [\c!option=, \c!before=\blank, \c!after=\blank, \c!inbetween=\blank, \c!indenting=\v!no, \c!space=\v!default] \def\definelines {\dodoubleempty\dodefinelines} \def\dodefinelines[#1][#2]% {\getparameters[\??rg#1][\s!parent=\??rg,#2]% \setvalue{\e!start#1}{\dostartlines[#1]}% \setvalue{\e!stop #1}{\dostoplines}} \def\setuplines {\dodoubleempty\dosetuplines} \def\dosetuplines[#1][#2]% {\doifelsenothing{#2} {\getparameters[\??rg][#1]} {\def\docommand##1{\getparameters[\??rg##1][#2]}% \processcommacommand[#1]\docommand}} \def\dostartlines[#1]% {\bgroup \edef\@@lines{#1}% \linesparameter\c!before \pushmacro\checkindentation \whitespace \begingroup \setupindenting[\linesparameter\c!indenting]% \typesettinglinestrue \setupwhitespace[\v!none]% \obeylines \ignorespaces \gdef\afterfirstobeyedline % tzt two pass, net als opsomming {\gdef\afterfirstobeyedline {\nobreak \doifnot{\linesparameter\c!option}\v!packed{\global\let \afterfirstobeyedline\relax}}}% \def\obeyedline {\par \futurelet\next\dobetweenthelines}% \activatespacehandler{\linesparameter\c!space}% \GotoPar} \def\dostoplines {\endgroup \popmacro\checkindentation \linesparameter\c!after \egroup} \def\dobetweenthelines {\doifmeaningelse\next\obeyedline {\linesparameter\c!inbetween} {\afterfirstobeyedline}} \definelines[\v!lines] \protect \definelines[verse][before={\blank[3*line]},after={\blank[3*line]}] \starttext line 1 \startlines line 2 line 3 \stoplines line 4 \startverse line 5 line 6 \stopverse line 7 \startlines line 8 line 9 \stoplines \stoptext
participants (1)
-
Wolfgang Schuster