summaryrefslogtreecommitdiff
path: root/info/examples/tex-in-practice/ts-outpu.tip
diff options
context:
space:
mode:
Diffstat (limited to 'info/examples/tex-in-practice/ts-outpu.tip')
-rw-r--r--info/examples/tex-in-practice/ts-outpu.tip188
1 files changed, 188 insertions, 0 deletions
diff --git a/info/examples/tex-in-practice/ts-outpu.tip b/info/examples/tex-in-practice/ts-outpu.tip
new file mode 100644
index 0000000000..39902664bf
--- /dev/null
+++ b/info/examples/tex-in-practice/ts-outpu.tip
@@ -0,0 +1,188 @@
+% 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