summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/genmisc/selectpage.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/genmisc/selectpage.tex')
-rw-r--r--Master/texmf-dist/tex/generic/genmisc/selectpage.tex30
1 files changed, 30 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/genmisc/selectpage.tex b/Master/texmf-dist/tex/generic/genmisc/selectpage.tex
new file mode 100644
index 00000000000..5a1405d3c44
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/genmisc/selectpage.tex
@@ -0,0 +1,30 @@
+%From Tugboat volume 8, number 2 july 1987
+%by Donald Knuth
+%
+% The idea is to make TeX look for a file called pages.tex. if such a
+%file doesn't exit, everything works as before, Otherwise the file
+%should contain a list of apge numbers, one per line, in the order that
+%they will be generated. After the last page number has been matched,
+%all further pages will be printed. Thus, if you want ot print pages
+%123 and all pages from 300 onwards, your file pages.tex should say
+% 123
+% 300
+%but if you want to print pages 123 and 300 only, the file should say,
+%e.g.,
+% 123
+% 300
+% -99999999999 % impossible number
+%so that the end of file will never occur.
+%
+
+\let\Shipout=\shipout
+\newread\pages \newcount\nextpage \openin\pages=pages
+\def\getnextpage{\ifeof\pages\else
+ {\endlinechar=-1\read\pages to\next \ifx\next\empty % in this case we
+should have eof now \else\global\nextpage=\next\fi}\fi}
+\ifeof\pages\else\message{OK, I'll ship only the requested pages!}
+ \getnextpage\fi
+\def\shipout{\ifeof\pages\let\next=\Shipout
+ \else\ifnum\pageno=\nextpage\getnextpage\let\next=\Shipout
+ \else\let\next=\Tosspage\fi\fi \next}
+\newbox\garbage \def\Tosspage{\deadcycles=0\setbox\garbage=}