% This macro source file is from the four volume series % "TeX in Practice" by Stephan von Bechtolsheim, published % 1993 by Springer-Verlag, New York. % Copyright 1993 Stephan von Bechtolsheim. % No warranty or liability is assumed. % This macro may be copied freely if no fees other than % media cost or shipping charges are charged and as long % as this copyright and the following source code itself % is not changed. Please see the series for further information. % % Version: 1.0 % Date: May 1, 1993 % % % This source code is documented in 35.9.1, p. IV-122. % Original source in file "o2.TEX", starting line 1834. \wlog{L: "ts-outpu.tip" ["o2.TEX," l. 1834, p. IV-122]}% % This file DOES belong to format "texip." \InputD{namedef.tip} \InputD{showpll.tip} \InputD{new-midi.tip} \InputD{topinfix.tip} \InputD{nathd.tip} \InputD{rangetst.tip} \newif\ifWritePageLog \WritePageLogfalse \newwrite\PageLogStream \def\WritePageLogFile{% \immediate\openout\PageLogStream = \jobname.plog \WritePageLogtrue } \newcount\BadnessSave \ShowPlainListsfalse \catcode`\@ = 11 \newcount\@PageLayoutCode \def\SetPageLayout #1{% \global\@PageLayoutCode = #1 \CheckRange{\@PageLayoutCode}{0}{5}% {\string\SetPageLayout: } } \SetPageLayout{0}% \def\@LeftRunningHead{} \def\@RightRunningHead{} \newcount\@SavedPageLayoutCode \def\NewPageRightHandSpecial{% \vfill \supereject \ifodd\count0 \wlog{\string\NewPageRightHandSpecial: no empty page to generate (\string\count0 = \the\count0)}% \else \hbox{} \@SavedPageLayoutCode = \@PageLayoutCode \SetPageLayout{1}% \wlog{\string\NewPageRightHandSpecial: empty page generated, (\string\count0 = \the\count0).}% \vfill \eject \SetPageLayout{\@SavedPageLayoutCode}% \fi } \newdimen\OddPagesHorizontalShift \newdimen\EvenPagesHorizontalShift \newdimen\CurrentPageShift \def\plainoutput{% \@ShowPlainLists \edef\@LeftRunningHead{\@LeftRunningHead}% \edef\@RightRunningHead{\@RightRunningHead}% \ifnum\@PageLayoutCode = 0 \else \headline = {} \footline = {} \fi \ifcase\@PageLayoutCode \or \or \global\@PageLayoutCode = 3 \or \@PageLayoutCodeThree \or \global\@PageLayoutCode = 5 \or \ifodd\count0 \headline = {% \small\rm \hfil \botmark \hskip 18pt \PrintCounter{PageNo}% }% \else \headline = {% \small\rm \PrintCounter{PageNo}% \hskip 18pt \@LeftRunningHead \hfil }% \fi \else \errmessage{\string\plainoutput: \string\@PageLayoutCode out of range.}% \fi \setbox 4 = \vbox{% \pagebody }% \ifWritePageLog \immediate\write\PageLogStream{% Part name: \CurrentPartName, Page \the\count0 }% \immediate\write\PageLogStream{% Page \the\count0: stretch: \the\pagestretch, shrink: \the\pageshrink, outputpenalty: \the\outputpenalty }% \immediate\write\PageLogStream{% pagefilstretch: \the\pagefilstretch, pagefillstretch: \the\pagefillstretch }% \immediate\write\PageLogStream{% ht 255: \the\ht255, dp 255: \the\dp255 }% \NaturalHeight{\dimen0}{255}% \NaturalDepth{\dimen1}{255}% \immediate\write\PageLogStream{% Natural height: \the\dimen0, Natural depth: \the\dimen1 }% \dimen2 = \vsize \advance\dimen2 by -\dimen0 \immediate\write\PageLogStream{% Ideal height: \the\vsize, Difference: \the\dimen2 }% \immediate\write\PageLogStream{% badness: \the\BadnessSave, height: \the\ht4, depth: \the\dp4 }% \immediate\write\PageLogStream{}% \fi \setbox 5 = \vbox{% \makeheadline \box 4 \makefootline }% \@MakeRobustMacros \ifodd\count0 \CurrentPageShift = \OddPagesHorizontalShift \else \CurrentPageShift = \EvenPagesHorizontalShift \fi \wlog{Redefined \string\plainoutput (ts-outpu.tip): Shifting: shift amount is \the\CurrentPageShift\space\space (page is \the\pageno).}% \setbox 6 = \vbox{% \moveright\CurrentPageShift \box5 }% \shipout\box6 \advancepageno \ifnum\outputpenalty > -10000 \else \dosupereject \fi } \def\@PageLayoutCodeThree{% \ifodd\count0 \headline = {% \small\rm \hfil \@RightRunningHead \hskip 18pt \PrintCounter{PageNo}% }% \else \headline = {% \small\rm \PrintCounter{PageNo}% \hskip 18pt \@LeftRunningHead \hfil }% \fi } \catcode`\@ = 12