diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/genmisc/selectpage.tex')
-rw-r--r-- | Master/texmf-dist/tex/generic/genmisc/selectpage.tex | 30 |
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=} |