summaryrefslogtreecommitdiff
path: root/macros/latex209/contrib/misc/portland.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex209/contrib/misc/portland.sty')
-rw-r--r--macros/latex209/contrib/misc/portland.sty124
1 files changed, 124 insertions, 0 deletions
diff --git a/macros/latex209/contrib/misc/portland.sty b/macros/latex209/contrib/misc/portland.sty
new file mode 100644
index 0000000000..56ebf455e8
--- /dev/null
+++ b/macros/latex209/contrib/misc/portland.sty
@@ -0,0 +1,124 @@
+% This is PORTLAND.STY by H.Partl, TU Wien, as of 16 Dec 1988.
+% Definition of commands and environments \portrait and \landscape
+% for switching between PORTRAIT and LANDSCAPE printing. To be
+% called as document style option with any available style.
+%
+% Commands:
+% \portrait sets or resets the page layout to the initial values
+% (i.e. the values valid at \begin{document})
+% \landscape sets the page layout such that the horizontal and
+% vertical measures are interchanged with respect to
+% the initial values. The text area will occupy the
+% same position on the page as in \portrait mode.
+% Both command issue a \clearpage before changing the layout.
+%
+% Environments:
+% \begin{portrait} ... \end{portrait}
+% \begin{landscape} ... \end{landscape}
+% Both issue \clearpage at the \begin and at the \end.
+%
+% Implementation Dependencies:
+% You should insert the correct paper height (11in or 197mm or ...)
+% into \paperheight for correct positioning.
+% If your printer driver allows mixing of protrait and landscape pages
+% within one printout, you should insert the corresponding \special
+% commands just after the four \clearpage commands.
+% If your printer only allows printing of the whole document either in
+% protrait or in landscape orientation, you should print the document
+% twice (or selected parts of it) - once in portrait and once in landscape -
+% and then merge the correct pages.
+% If your printer can't print in landscape orientation, then these commands
+% can be used only for small pages that fit onto the paper in both direc-
+% tions.
+
+\newdimen \paperheight % needed for calculation of bottom margin.
+\paperheight 297mm % <--- 11in for US paper or 297mm for A4 paper!
+
+\newdimen\phoffset
+\newdimen\pvoffset
+\newdimen\ptextwidth
+\newdimen\ptextheight
+\newdimen\ptopmargin
+\newdimen\poddsidemargin
+\newdimen\pevensidemargin
+
+\newdimen\lhoffset
+\newdimen\lvoffset
+\newdimen\ltextwidth
+\newdimen\ltextheight
+\newdimen\ltopmargin
+\newdimen\loddsidemargin
+\newdimen\levensidemargin
+
+\def\set@portland@values{%
+% portrait values = current values
+\phoffset\hoffset
+\pvoffset\voffset
+\ptextwidth\textwidth
+\ptextheight\textheight
+\ptopmargin\topmargin
+\poddsidemargin\oddsidemargin
+\pevensidemargin\evensidemargin
+% landscape margins will be measured from zero point
+\lhoffset \z@
+\lvoffset \z@
+% landscape textwidth = portrait textheight
+\ltextwidth \ptextheight
+% landscape textheight = portrait textwidth
+\ltextheight \ptextwidth
+% landscape left margin = portrait bottom margin (same for odd and even)
+\loddsidemargin \paperheight
+\advance \loddsidemargin by -\ptextheight
+\advance \loddsidemargin by -\headsep
+\advance \loddsidemargin by -\headheight
+\advance \loddsidemargin by -\ptopmargin
+\advance \loddsidemargin by -\pvoffset
+\advance \loddsidemargin by -2in
+\levensidemargin \loddsidemargin
+% landscape top margin (incl. head) = portrait oddside left margin
+\ltopmargin \poddsidemargin
+\advance \ltopmargin by -\headheight
+\advance \ltopmargin by -\headsep
+\advance \ltopmargin by \phoffset
+}
+
+\def\portrait{\clearpage \message{ \string\portrait }%
+ \hoffset\phoffset
+ \voffset\pvoffset
+ \textwidth\ptextwidth
+ \textheight\ptextheight
+ \@colht\textheight \@colroom\textheight \vsize\textheight
+ \columnwidth\textwidth \@clubpenalty\clubpenalty
+ \if@twocolumn \advance\columnwidth -\columnsep
+ \divide\columnwidth\tw@ \hsize\columnwidth \@firstcolumntrue
+ \fi
+ \hsize\columnwidth \linewidth\hsize
+ \topmargin\ptopmargin
+ \oddsidemargin\poddsidemargin
+ \evensidemargin\pevensidemargin
+ }
+
+\def\endportrait{\clearpage \message{ \string\endportrait }}
+
+\def\landscape{\clearpage \message{ \string\landscape }%
+ \hoffset\lhoffset
+ \voffset\lvoffset
+ \textwidth\ltextwidth
+ \textheight\ltextheight
+ \@colht\textheight \@colroom\textheight \vsize\textheight
+ \columnwidth\textwidth \@clubpenalty\clubpenalty
+ \if@twocolumn \advance\columnwidth -\columnsep
+ \divide\columnwidth\tw@ \hsize\columnwidth \@firstcolumntrue
+ \fi
+ \hsize\columnwidth \linewidth\hsize
+ \topmargin\ltopmargin
+ \oddsidemargin\loddsidemargin
+ \evensidemargin\levensidemargin
+ }
+
+\def\endlandscape{\clearpage \message{ \string\endlandscape }}
+
+\let\set@document@values \document
+\def\document{\set@document@values \set@portland@values}
+
+\endinput