lorem.tex (958B)
1 \cs{input:lorem.tex} 2 \cslet{input:lorem.tex}\endinput 3 4 \chardef\loremmax=150 5 6 \newcount\@loremA 7 \newcount\@loremB 8 9 \def\lorem#1\to{% 10 \beggroup 11 \@loremA=\numexpr#1\relax 12 \afterassignment\@lorem \@loremB=\numexpr 13 } 14 15 \def\@lorem{% 16 \ifnum\@loremA>\@loremB \errmessage{lorem: negative range}\fi 17 \ifnum\@loremA<0 \errmessage{lorem: paragraphs not in range [0,150)}\fi 18 \ifnum\@loremB>\loremmax \errmessage{lorem: paragraphs not in range [0,150)}\fi 19 \advance\@loremB-\@loremA 20 \let\\=\@loremiterA 21 \input loremtext 22 \endgroup 23 } 24 25 \def\@loremgobble#1\\{\\} 26 27 \def\@loremiterA{% 28 \ifnum\@loremA=0 29 % We've skipped all the paragraphs we need to. 30 % Read the next \@loremB paragraphs. 31 \let\\=\@loremiterB 32 \ea\@loremiterB 33 \else 34 % Skip the next paragraph. 35 \decr\@loremA 36 \ea\@loremgobble 37 \fi 38 } 39 40 % Read the next \@loremB paragraphs. 41 \def\@loremiterB{% 42 \ifnum\@loremB=0 43 \ea\endinput 44 \else 45 % Read the next paragraph. 46 \decr\@loremB 47 \fi 48 } 49 50 \endinput