%D \module %D [ file=core-par, %D version=1997.03.31, %D title=\CONTEXT\ Core Macros, %D subtitle=Paragraph Tricks, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA / Hans Hagen \& Ton Otten}] %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 Pararaph Tricks} \unprotect % \ifprocesspreviousparagraphs % % \nofskippedparagraphs % \paragraphnumber % \nofparagraphs % % \dosetparagraph % \doresetparagraph % \dobeforeparagraph % \doafterparagraph % \dobeforeskipparagraph % \doafterskipparagraph % % \pushparagraphs\endcommand alle alineas tot \endcommand laden % \pushmoreparagraphs\endcommand alle alineas tot \endcommand toevoegen % \popparagraphs alle alineas oproepen % \popparagraphs[a,b,c] enkele alineas oproepen [geen] % % tzt een optionele prefix: % % \pushparagraphs[xxx]\endcommand alle alineas tot \endcommand laden % \popparagraphs[xxx] alle alineas oproepen % \popparagraphs[xxx][a,b,c] enkele alineas oproepen % % \numberparagraphs % \numberparagraphlines % \resetparagraphlines \newif\ifprocesspreviousparagraphs % public \newif\ifprocessallparagraphs % private \newcounter\totalnofparagraphs % private \newcounter\globalparagraphnumber % private \newcounter\discardedparagraphs % private \newcounter\mostrecentparagraphtotal % public \let\dosetparagraph = \relax % public \let\doresetparagraph = \relax % public \let\dobeforeparagraph = \relax % public \let\doafterparagraph = \relax % public \let\dobeforeskipparagraph = \relax % public \let\doafterskipparagraph = \relax % public \def\paragraphnumber {} % public \def\nofparagraphs {} % public \def\nofskippedparagraphs {} % public \def\paragraphprefix {paragraph} % private % voorlopig, wordt nog class \def\resetparagraphlines {\global\linenumber\plusone} \def\numberparagraphs % instelbaar maken en slimmer ivm breedte regelnummer !!!!! {\processpreviousparagraphstrue \def\dosetparagraph {\bgroup \resetparagraphlines \EveryPar {\strut\inleftmargin{\tf{\tx\paragraphnumber}\kern2em}% \ignorespaces}}% \def\doresetparagraph {\resetparagraphlines \egroup}} \def\numberparagraphlines {\processpreviousparagraphstrue \def\dosetparagraph {\resetparagraphlines}% \def\doresetparagraph {\resetparagraphlines}% \def\dobeforeparagraph {\startlinenumbering[\v!continue]}% \def\doafterparagraph {\stoplinenumbering}% \def\dobeforeskipparagraph {\stoplinenumbering \let\paragraphnumber\relax}% \def\doafterskipparagraph {\startlinenumbering[\v!continue]}} \long\def\directpushparagraph#1% {\doglobal\increment\totalnofparagraphs \ifnum\totalnofparagraphs>0\nofskippedparagraphs\relax \setgvalue{\paragraphprefix\totalnofparagraphs}{#1}% \else \setgvalue{\paragraphprefix\totalnofparagraphs}{\skipparagraph#1\par}% \fi} \long\def\directskipparagraph#1% {\doglobal\increment\totalnofparagraphs \setgvalue{\paragraphprefix\totalnofparagraphs}{\skipparagraph#1\par}} \def\dopushparagraphs#1% {\global\let\mostrecentparagraphtotal\totalnofparagraphs \ifx#1\undefined \let#1\relax \fi \defconvertedargument\asciia{#1}% \defconvertedargument\asciib{ }% % lege regel \def\dopushparagraph##1\par {\defconvertedargument\asciic{##1}% \doifelse\asciic\asciia {#1} {\doifsomething\asciic % lege paragraaf {\doifnot\asciic\asciib {\directpushparagraph{#1}}}% \dopushparagraph}}% \dopushparagraph} \def\pushparagraphs {\doglobal\newcounter\totalnofparagraphs \dopushparagraphs} \def\pushmoreparagraphs {\dopushparagraphs} \def\dododopopparagraph#1% no grouping, i.v.m. sidefloats {\ifnum#1>\totalnofparagraphs\relax \else \let\paragraphnumber\globalparagraphnumber \decrement(\paragraphnumber,\discardedparagraphs)% \dobeforeparagraph \ifhmode\indentation\fi\getvalue{\paragraphprefix#1}\par \doafterparagraph \fi} \long\def\skipparagraph#1\par {\doglobal\increment\discardedparagraphs \ifprocessallparagraphs \dobeforeskipparagraph \ifhmode\indentation\fi#1\par \doafterskipparagraph \fi} \def\dodopopparagraph {\dododopopparagraph} \def\dodoprocessparagraph#1% {\ifprocesspreviousparagraphs \bgroup \setbox0\vbox{\dododopopparagraph{#1}}% \egroup \fi} \def\processpreviousparagraphs[#1]% process previous ones {\ifprocesspreviousparagraphs \bgroup \getfromcommacommand[#1][1]% tzt snelle \..command.. testen \let\totalnofparagraphs\commalistelement \decrement\totalnofparagraphs \let\dodopopparagraph\dodoprocessparagraph \popparagraphs \egroup \fi} \def\dopopparagraphs[#1]% {\doifnotinset{#1}{\v!none,0} {\dosetparagraph \doglobal\newcounter\globalparagraphnumber \doglobal\newcounter\discardedparagraphs \doifelse{#1}{} {\processallparagraphstrue} {\processallparagraphsfalse}% \def\dopopparagraph {\doglobal\increment\globalparagraphnumber \ifnum\globalparagraphnumber>\totalnofparagraphs\relax \let\dopopparagraph\relax \else\ifprocessallparagraphs \ifnum\globalparagraphnumber>\mostrecentparagraphtotal\relax \dodopopparagraph\globalparagraphnumber \else \dodoprocessparagraph\globalparagraphnumber \fi \else \let\paragraphnumber\globalparagraphnumber \decrement(\paragraphnumber,\discardedparagraphs)% \ExpandBothAfter\doifinsetelse{\paragraphnumber}{#1} {\dodopopparagraph\globalparagraphnumber} {\dodoprocessparagraph\globalparagraphnumber}% \fi\fi \dopopparagraph}% \dopopparagraph \doresetparagraph}} \def\popparagraphs {\dosingleempty\dopopparagraphs} \def\countparagraphs {\popparagraphs[\!!maxcard]% \global\let\nofparagraphs\totalnofparagraphs \doglobal\decrement(\nofparagraphs,\discardedparagraphs)} % \showframe % % \numberparagraphlines % \numberparagraphs % % \def\nofskippedparagraphs{1} % % \pushparagraphs\ThatsIt % % \ruledbaseline eerste eerste eerste eerste eerste eerste % eerste eerste eerste eerste eerste eerste eerste eerste % eerste eerste eerste eerste eerste eerste eerste eerste % eerste eerste eerste eerste eerste eerste eerste eerste % eerste eerste eerste eerste eerste eerste eerste eerste % eerste eerste eerste eerste eerste % % \ruledbaseline eerste eerste eerste eerste eerste eerste % eerste eerste eerste eerste eerste eerste eerste eerste % eerste eerste eerste eerste eerste eerste eerste eerste % eerste eerste eerste eerste eerste eerste eerste eerste % eerste eerste eerste eerste eerste eerste eerste eerste % eerste eerste eerste eerste eerste % % \ruledbaseline tweede tweede tweede tweede tweede tweede % tweede tweede tweede tweede tweede tweede tweede tweede % tweede tweede tweede tweede tweede tweede tweede tweede % tweede tweede tweede tweede tweede tweede tweede tweede % tweede tweede tweede tweede tweede tweede tweede tweede % tweede tweede tweede tweede tweede tweede tweede tweede % tweede tweede tweede tweede tweede % % \skipparagraph \ruledbaseline skipped skipped skipped % skipped skipped skipped skipped skipped skipped skipped % skipped skipped skipped skipped skipped skipped skipped % skipped skipped % % \ruledbaseline derde derde derde derde derde derde derde % derde derde derde derde derde derde derde derde derde derde % derde derde derde derde derde derde derde derde derde derde % derde derde derde derde derde derde derde derde derde derde % derde derde derde derde derde derde derde derde derde derde % derde derde derde derde derde derde derde derde derde derde % % \skipparagraph \ruledbaseline skipped skipped skipped % skipped skipped skipped skipped skipped skipped skipped % skipped skipped skipped skipped skipped skipped skipped % skipped skipped skipped % % \ruledbaseline vierde vierde vierde vierde vierde vierde % vierde vierde vierde vierde vierde vierde vierde vierde % vierde vierde vierde vierde vierde vierde vierde vierde % vierde vierde vierde vierde % % \ruledbaseline vijfde vijfde vijfde vijfde vijfde vijfde % vijfde vijfde vijfde vijfde vijfde vijfde vijfde vijfde % vijfde vijfde vijfde vijfde vijfde vijfde vijfde vijfde % vijfde vijfde vijfde vijfde vijfde vijfde vijfde vijfde % vijfde vijfde vijfde % % \skipparagraph \ruledbaseline skipped skipped skipped % skipped skipped skipped skipped skipped skipped skipped % skipped skipped skipped skipped skipped skipped skipped % skipped skipped skipped % % \ThatsIt % % \popparagraphs % % \countparagraphs % % \blanko[2*groot] % % nofparagraphs:~\nofparagraphs % % \pagina % % \popparagraphs[1] % \popparagraphs[2] % \popparagraphs[3] % \popparagraphs[4] % \popparagraphs[5] % % \pagina % % \ruledvbox{\popparagraphs[1,2,3,4,5]} % % \pagina \protect \endinput