r3tex

custom LuaTeX format
git clone git://git.rr3.xyz/r3tex
Log | Files | Refs | README | LICENSE

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