% 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
|