commit ec3bba310f2a1921c203b2e1a0b4350a0a28b5d8
parent 3c9d70c89cd296f0b83c89dd1855d30f4c6030a6
Author: Robert Russell <robertrussell.72001@gmail.com>
Date: Fri, 14 Apr 2023 19:49:03 -0700
Cleanup lorem
Diffstat:
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/lorem.tex b/lorem.tex
@@ -1,16 +1,21 @@
+\cs{input:lorem.tex}
+\cslet{input:lorem.tex}\endinput
+
+\chardef\loremmax=150
+
\newcount\@loremA
\newcount\@loremB
\def\lorem#1\to{%
\beggroup
- \@loremA=#1\relax
- \afterassignment\@lorem \@loremB=%
+ \@loremA=\numexpr#1\relax
+ \afterassignment\@lorem \@loremB=\numexpr
}
\def\@lorem{%
\ifnum\@loremA>\@loremB \errmessage{lorem: negative range}\fi
\ifnum\@loremA<0 \errmessage{lorem: paragraphs not in range [0,150)}\fi
- \ifnum\@loremB>150 \errmessage{lorem: paragraphs not in range [0,150)}\fi
+ \ifnum\@loremB>\loremmax \errmessage{lorem: paragraphs not in range [0,150)}\fi
\advance\@loremB-\@loremA
\let\\=\@loremiterA
\input loremtext
@@ -18,22 +23,27 @@
}
\def\@loremgobble#1\\{\\}
+
\def\@loremiterA{%
\ifnum\@loremA=0
+ % We've skipped all the paragraphs we need to.
+ % Read the next \@loremB paragraphs.
\let\\=\@loremiterB
\ea\@loremiterB
\else
+ % Skip the next paragraph.
\decr\@loremA
\ea\@loremgobble
\fi
}
+% Read the next \@loremB paragraphs.
\def\@loremiterB{%
\ifnum\@loremB=0
\ea\endinput
\else
- \decr\@loremB
% Read the next paragraph.
+ \decr\@loremB
\fi
}