summaryrefslogtreecommitdiff
path: root/obsolete/macros/inrstex/inrstex/out_ps.tex
diff options
context:
space:
mode:
Diffstat (limited to 'obsolete/macros/inrstex/inrstex/out_ps.tex')
-rw-r--r--obsolete/macros/inrstex/inrstex/out_ps.tex169
1 files changed, 169 insertions, 0 deletions
diff --git a/obsolete/macros/inrstex/inrstex/out_ps.tex b/obsolete/macros/inrstex/inrstex/out_ps.tex
new file mode 100644
index 0000000000..7bb12e215d
--- /dev/null
+++ b/obsolete/macros/inrstex/inrstex/out_ps.tex
@@ -0,0 +1,169 @@
+\catcode`@=11
+%-*-tex-*-
+% Copyright Michael J. Ferguson, INRS-Telecommunications
+% All rights reserved.
+
+% Fix on \firstcolumnoffset 11 May 87 ... MJF
+
+
+% Compensate for 1 inch standard print offsets Sept. 1991 ... ugh!
+\newdimen \hprintoffset
+\newdimen \vprintoffset
+\hprintoffset=1in
+\vprintoffset=1in
+
+
+% Postscript version with arbitrary page scaling/rotation
+
+% ======== INRSTeX Single/Multi Column Output Routine ========
+% This is the entire output routine for INRSTeX. It does both single and
+% Multicolumn since there is a rather large repetition to do otherwise.
+
+
+
+%====== Debugging rules =======
+% These can be turned on to outline the page
+%\def\testhrule{\hrule}
+\let\testhrule = \relax
+%\def\testvrule{\vrule}
+\let\testvrule =\relax
+
+
+% ====== single/multicolumn output routine
+
+
+
+
+\def\tmessage#1{}
+\output{\m@ultipleoutput}
+\def\m@ultipleoutput{\tmessage{Multiout - ms:\the\m@ultistate- cc:\the\c@urrentcolumn - nc:\the\numcolumns}
+ \ifcase\m@ultistate % 0 - only state where shipout allowed
+ \addcolumn{\pagecontents}\relax
+ \global\advance\c@urrentcolumn by 1 \relax
+ \ifnum\c@urrentcolumn > \numcolumns
+ \finaloutput % in normal state
+ \fi
+ \or \s@etuprempage % 1 - into - always go this way
+ \or
+ \addcolumn{\pagecontents}\relax
+ \s@etuprempage % 2 - outof - clean up the current col and store
+ \fi
+ }
+
+
+\def\s@etuprempage{ \global\setbox\t@opmultibox =
+ \vbox{\boxmaxdepth 0pt \offinterlineskip
+ \ifvoid\t@opmultibox \else \unvbox\t@opmultibox \fi
+ \ifvoid\topmulticolumnbox \else \unvbox\topmulticolumnbox\fi
+ \ifvoid\topins \else \unvbox\topins \fi
+ \ifcase\m@ultistate
+ \tmessage{TeX System Error - misplaced multistate -- \the\pageno}
+ \or \ifvoid255 \else \unvbox255 \fi % top of pag
+ \or \ifvoid\m@ulticolumnbox
+ \else \box\m@ulticolumnbox
+ \fi % multicol part page
+ \fi}
+ \global\setbox\b@otmultibox =
+ \vbox{ \boxmaxdepth \maxdepth \offinterlineskip
+ \ifvoid\footins
+ \else \vskip\skip\footins
+ \footnoterule
+ \unvbox\footins
+ \fi
+ \ifvoid\botmulticolumnbox
+ \else \unvbox\botmulticolumnbox
+ \fi}
+ \ifb@alance \advance\parskip by 0pt plus 0pt minus 0pt \fi
+ \ifnum\m@ultistate=2
+ \global\b@alancevsize=\vinnerpagesize
+ \global\numcolumns = 1
+ \global\b@alancefalse
+ \fi
+ \c@omputevsize
+ \tmessage{Rempage: ms:\the\m@ultistate- ip:\the\vinnerpagesize- hc:\the\vcolumnsize-
+ cc:\the\c@urrentcolumn- nc:\the\numcolumns}
+ \global\c@urrentcolumn= 1\global\m@ultistate=0
+ \ifnum\vcolumnsize<\multicolpageshortfall \finaloutput \fi
+ }
+
+
+\def\twoperpage{\xdef\l@page{0}\def\topPS{\ifnum\l@page=0
+ \special{ps:: /EOP {} bdf gsave 576 0 translate 90
+ rotate .7 .7 scale }\else
+ \special{ps:: /EOP {} bdf gsave 576 396 translate 90
+ rotate .7 .7 scale }\fi }
+\def\botPS{\ifnum\l@page=0
+ \special{ps:: grestore }\xdef\l@page{1}
+ \else
+ \special{ps:: grestore showpage }\xdef\l@page{0}\fi }
+\let\d@one=\done \def\done{\ejectpage\ifnum\l@page=1 \finalversion
+ \fullpagestyle \line{} \fi
+ \d@one}}
+
+
+\newif\ifpageps \pagepsfalse
+
+\def\topPS{\ifpageps \t@opsc \fi}
+\def\botPS{\ifpageps \b@otsc \fi}
+
+\def\showpage{showpage }
+\def\pagescale htr:#1 vtr:#2 d:#3 hsc:#4 vsc:#5 {
+ \xdef\t@opsc{\special{ps:: /EOP {} bdf
+ gsave #1 #2 translate #3 rotate #4 #5 scale }}
+ \xdef\b@otsc{\special{ps:: grestore \showpage }}\global\pagepstrue }
+\def\finaloutput{\shipout
+ \hbox{\topPS\leftmarginskip \hskip -\hprintoffset
+ \vbox to \vpapersize{\offinterlineskip % but boxes together
+ \vskip -\vprintoffset
+ \topmarginskip\testhrule
+ \m@akeheadertext\testhrule
+ \hbox{\hskip \firstcolumnoffset \relax \pagebody}\testhrule
+ \m@akefootertext\testhrule
+ \vfill
+ \ifproofmode \vbox to 0pt{\boxmaxdepth 0pt \vss
+ \hbox{\qquad \versionform}} \fi
+ \vfill
+ \vss}\botPS}
+ \tmessage{Final Out: ms:\the\m@ultistate- cc:\the\c@urrentcolumn- nc:\the\numcolumns}
+ \ifp@agenoadv \advancepageno \fi
+ \global\p@agenoadvtrue
+ \global\h@eadertype=\d@ocumentheader % default header style
+ \global\f@ootertype=\d@ocumentfooter % default footer style
+ \c@omputevsize
+ \ifb@alance \advance\parskip by 0pt plus 0pt minus 0pt \fi
+ \ifnum\outputpenalty>-\@MM \else\dosupereject\fi
+ \global\c@urrentcolumn = 1 \global\m@ultistate=0}
+
+\def\addcolumn#1{\tmessage{addcol: ms:\the\m@ultistate- cc:\the\c@urrentcolumn-
+ nc:\the\numcolumns}
+ \global\setbox\m@ulticolumnbox =
+ \hbox{\ifvoid\m@ulticolumnbox
+ \else\unhbox\m@ulticolumnbox\the\intercolumnsep \fi
+ \testvrule\hbox to \hcolumnsize{\vbox to
+ \vcolumnsize{\boxmaxdepth\maxdepth #1}\hss}\testvrule}
+ }
+
+\newbox\i@nnerpagebox
+\def\pagebody{\setbox\i@nnerpagebox = \vbox to\vinnerpagesize{\boxmaxdepth\maxdepth\offinterlineskip
+ \ifvoid\t@opmultibox \else\unvbox\t@opmultibox \fi
+ \ifvoid\m@ulticolumnbox \else\box\m@ulticolumnbox \fi
+ \ifvoid\b@otmultibox\else\unvbox\b@otmultibox \fi}\relax
+ \setbox2= \vbox to
+ \vinnerpagesize{\hsize\h@marginboxsize
+ \vskip 1cm
+ \unvbox\m@arginbox
+ \vss}\relax
+ \hbox{\box\i@nnerpagebox\box2}}
+
+
+\def\pagecontents{\ifvoid\topins\else\unvbox\topins\fi
+ \unvbox\@cclv % open up \box255
+ \ifvoid\footins\else % footnote info is present
+ \vfill
+ \vskip\skip\footins
+ \footnoterule
+ \unvbox\footins\fi
+ \ifr@ggedbottom\vfil\fi}
+
+\def\footnoterule{\kern-3\p@
+ \hrule width .2\hcolumnsize \kern 2.6\p@} % the \hrule is .4pt high