summaryrefslogtreecommitdiff
path: root/obsolete/macros/inrstex/inrstex/pagsty.tex
diff options
context:
space:
mode:
Diffstat (limited to 'obsolete/macros/inrstex/inrstex/pagsty.tex')
-rw-r--r--obsolete/macros/inrstex/inrstex/pagsty.tex177
1 files changed, 177 insertions, 0 deletions
diff --git a/obsolete/macros/inrstex/inrstex/pagsty.tex b/obsolete/macros/inrstex/inrstex/pagsty.tex
new file mode 100644
index 0000000000..6eb11e719e
--- /dev/null
+++ b/obsolete/macros/inrstex/inrstex/pagsty.tex
@@ -0,0 +1,177 @@
+%-*-tex-*-
+% Copyright Michael J. Ferguson, INRS-Telecommunications
+% All rights reserved.
+
+% =========== Document Styles, Page Numbering and Page Sizes ======
+% These are the macros for setting page sizes nad the various flags
+% the header/footer styles
+
+
+
+% ============== Document Style =============
+% Such things as page sizes, header/footer fonts headers and footers should
+% be active for an entire document. \documentstyle is defined so that the
+% correct switches are in force to control the document. In addition
+% a \setpagesizes causes any page size changes to be made.
+
+\newif\ifd@ocsty % switch for document style
+
+\def\documentstyle#1{\d@ocstytrue
+ #1\setpagesizes\d@ocstyfalse}
+% this is not done inside a group because the various assignments cannot be
+% defined global
+
+% The switch \d@ocsty is used in to control the locality of the
+% various page styles.
+
+
+
+
+
+%====== page numbering ==========
+\newif\ifp@agenoadv % determines whether to advance the page number
+\def\nopagenumberadvance{\p@agenoadvfalse} % lasts for one page
+\p@agenoadvtrue % defaults to advanceing on first page
+\def\n@egpagno{\global\multiply\pageno by -1 \relax}
+\def\romanpagenumber{\afterassignment\n@egpagno \global\pageno }
+\def\pagenumber{\global\pageno }
+
+
+
+
+
+
+% ===== Macros for setting page sizes ======
+% Pages involve margins, headers, footers, and column sizes.
+% These set the styles and flags for single and multicolumn.
+
+% ======= dimensions for pages headers etc ======
+% the simple output fixes the header and footer size but allows
+% for the header and footer to be killed as required.
+\newdimen\hpapersize %\hpapersize= 8.5in
+\newdimen\vpapersize %\vpapersize= 11.5in
+\newdimen\vouterpagesize
+\newdimen\houterpagesize
+\newdimen\vinnerpagesize
+\newdimen\hinnerpagesize
+\newdimen\hcolumnsize
+\newdimen\vcolumnsize
+\newdimen\topmarginsize
+\newdimen\leftmarginsize
+\newdimen\vheadersize
+\newdimen\vfootersize
+
+% ===== Historical compatibilities =====
+\let\leftmargin=\leftmarginsize
+\let\topmargin=\topmarginsize
+
+% ===== Margin Macros ======
+\def\leftmarginskip{\hskip \leftmarginsize}
+\def\topmarginskip{\vskip \topmarginsize}
+
+%======= page style forms ======
+
+\newcount\p@agetype \p@agetype=2 %normal ... not used
+\newcount\h@eadertype \h@eadertype=2 %normal
+\newcount\f@ootertype \f@ootertype=2 %normal
+
+
+% ----- General forms for multicolumn -------
+\def\c@ompvinnersize{\dimen0 = \vouterpagesize
+ \ifcase\h@eadertype \relax % delete header
+ \else \advance \dimen0 by -\vheadersize \fi
+ \ifcase\f@ootertype \relax % delete footer
+ \else \advance\dimen0 by -\vfootersize \fi
+ \global\vinnerpagesize = \dimen0
+ \ifb@alance \global\vcolumnsize = \b@alancevsize
+ \else
+ \advance\dimen0 by -\ht\t@opmultibox
+ \advance\dimen0 by -\ht\b@otmultibox \relax
+\tmessage{Vcolsize - vc:\the\dimen0 - vt:\the\ht\t@opmultibox - vb:\the\ht\b@otmultibox - bs:\the\b@alancevsize - }
+ \global\vcolumnsize=\dimen0
+ \fi}
+
+\def\s@etvsize{\global\vsize=\vcolumnsize}
+
+% columnsize = (hinnerpagsize - (numcols-1)intercol)/numcol
+
+\def\c@omphinnersize{\dimen0 = \houterpagesize
+ \advance\dimen0 by -\firstcolumnoffset
+ \advance\dimen0 by -\firstcolumnoffset \relax
+ \global\hinnerpagesize = \dimen0}
+
+\def\s@ethsize{\setbox0=\hbox{\the\intercolumnsep}
+ \dimen0= \numcolumns\wd0 %\the\dimen0
+ \advance\dimen0 by -\wd0 %\the\dimen0
+ \dimen2 = \hinnerpagesize %\the\dimen2
+ \advance\dimen2 by -\dimen0 %\the\dimen0
+ \divide\dimen2 by \numcolumns \relax
+ \global\hcolumnsize = \dimen2
+ \global\hsize = \hcolumnsize}
+\def\c@omputevsize{\c@ompvinnersize\s@etvsize}
+\def\c@omputehsize{\c@omphinnersize\s@ethsize}
+\def\setpagesizes{\c@omputevsize \c@omputehsize}
+
+
+
+% ==== headers, footers, pagestyles ========
+
+
+\newtoks\h@eaderline \newtoks\headertext \newtoks\specialheadertext
+\long\def\h@eaderform {\vbox to \vheadersize
+ {\hsize\houterpagesize \headerfont
+ \testhrule
+ \the\h@eaderline\par\vfil\testhrule}\relax}
+
+\newtoks\f@ooterline \newtoks\footertext \newtoks\specialfootertext
+\long\def\f@ooterform{ \vbox to \vfootersize
+ {\hsize\houterpagesize \footerfont
+ \testhrule
+ \vfil
+ \the\f@ooterline\par\testhrule}\relax}
+\def\m@akeheadertext{\ifcase\h@eadertype \relax % deleted
+ \or \vskip \vheadersize % blanked
+ \or \let\h@eaderline = \headertext \h@eaderform
+ \or \let\h@eaderline = \specialheadertext
+ \h@eaderform \fi
+ }
+\def\m@akefootertext{\ifcase\f@ootertype \relax % deleted
+ \or \vskip \vfootersize % blanked
+ \or \let\f@ooterline=\footertext \f@ooterform
+ \or \let\f@ooterline=\specialfootertext
+ \f@ooterform \fi
+ }
+
+%=== these last only for one page and are reset by output routine ====
+\def\blankheaderstyle{\global\h@eadertype = 1
+ \ifd@ocsty \global\d@ocumentheader = 1 \fi\c@omputevsize}
+\def\normalheaderstyle{\global\h@eadertype= 2
+ \ifd@ocsty \global\d@ocumentheader = 2 \fi\c@omputevsize}
+\def\noheaderstyle{\global\h@eadertype =0
+ \ifd@ocsty \global\d@ocumentheader = 0 \fi\c@omputevsize}
+\def\blankfooterstyle{\global\f@ootertype = 1
+ \ifd@ocsty \global\d@ocumentfooter = 1 \fi\c@omputevsize}
+\def\normalfooterstyle{\global\f@ootertype =2
+ \ifd@ocsty \global\d@ocumentfooter = 2 \fi\c@omputevsize}
+\def\nofooterstyle{\global\f@ootertype =0
+ \ifd@ocsty \global\d@ocumentfooter = 0 \fi\c@omputevsize}
+\let\specialheaderstyle=\normalheaderstyle % default
+\let\specialfooterstyle=\normalfooterstyle % default
+
+% ----- some convenient combinations -----
+\def\titlepagestyle{\global\p@agetype=1 \blankheaderstyle
+ \blankfooterstyle}
+\def\normalpagestyle{\global\p@agetype =2 \normalheaderstyle
+ \normalfooterstyle}
+
+\def\specialpagestyle{\global\p@agetype =2 \specialheaderstyle
+ \specialfooterstyle}
+\def\fullpagestyle{\global\p@agetype =0 \noheaderstyle
+ \nofooterstyle}
+
+
+
+
+% ======== #1 is one of \<...>style --- reset values for output routine
+\newcount\d@ocumentheader
+\newcount\d@ocumentfooter