Move a tag
[latex2e.git] / latex2e-20160201 / required / graphics / lscape.dtx
blob47dbd68d84d47b26b8c3628cbf18cbefa572742f
2 % \iffalse
4 %% lscape.dtx Copyright (C) 1994 1999-2000 David Carlisle
5 %%            Copyright (C) 2000--2015 David Carlisle, LaTeX3 Project
6 %%
7 %% This file is part of the Standard LaTeX `Graphics Bundle'.
8 %% It may be distributed under the terms of the LaTeX Project Public
9 %% License, as described in lppl.txt in the base LaTeX distribution.
10 %% Either version 1.3c or, at your option, any later version.
12 %<*dtx>
13           \ProvidesFile{lscape.dtx}
14 %</dtx>
15 %<package>\NeedsTeXFormat{LaTeX2e}[1994/06/01]
16 %<package>\ProvidesPackage{lscape}
17 %<driver> \ProvidesFile{lscape.drv}
18 % \fi
19 %         \ProvidesFile{lscape.dtx}
20           [2000/10/22 v3.01 Landscape Pages (DPC)]
22 % \iffalse
23 %<*driver>
24 \documentclass{ltxdoc}
25 \usepackage{lscape}
26 \begin{document}
27  \DocInput{lscape.dtx}
28 \end{document}
29 %</driver>
30 % \fi
32 % \GetFileInfo{lscape.dtx}
34 % \title{The \textsf{lscape} package\thanks{This file
35 %        has version number \fileversion, last
36 %        revised \filedate.}}
37 % \author{D. P. Carlisle}
38 % \date{\filedate}
40 % \CheckSum{69}
42 % \begin{landscape}
43 % \MaintainedByLaTeXTeam{graphics}
44 % \maketitle
46 % All text, within the \texttt{landscape} environment is rotated through
47 % 90 degrees. The environment may span several pages. It works well
48 % with, and was originally created for, use with \textsf{longtable} to
49 % produce long wide tables.
51 % All the work is done by the \textsf{graphics} package, the trick is to
52 % call it at the right place in the output routine to rotate the current
53 % page before the page head and foot are added.
56 % \StopEventually{\end{landscape}}
57 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
59 % \changes{v1.00}{1992/04/28}{Initial release}
60 % \changes{v2.00}{1992/11/18}{Support for footnotes and floats.
61 %         Special thanks to Sarah J. McQuay for testing this release}
62 % \changes{v3.00}{1994/10/05}{Update using LaTeX2e graphics package}
63 % \changes{v3.01}{1999/06/22}{Added better pdfTeX support
64 %    by Scott Pakin, from graphics/3063}
67 %    \begin{macrocode}
68 %<*package>
69 %    \end{macrocode}
70 %  Here is what Scott Pakin wrote about the pdftex option:
71 % \begin{quote}
72 %    I've made a minor improvement to lscape.dtx that I'd like to share
73 % with the world.  My addition makes lscape rotate the PDF "paper" --
74 % not just the text on the page -- when given the "pdftex" option.
75 % (Naturally, this works only with pdfLaTeX.)  The result is that the
76 % text is viewable online without the reader having to rotate his/her
77 % head 90 degrees.  The document still prints normally.
78 % \end{quote}
81 %    \begin{macrocode}
82 \newif\ifGin@pdftex
83 \Gin@pdftexfalse
84 \DeclareOption{pdftex}{%
85   \PassOptionsToPackage\CurrentOption{graphics}
86   \Gin@pdftextrue
88 \DeclareOption*{\PassOptionsToPackage\CurrentOption{graphics}}
89 \ProcessOptions
90 \RequirePackage{graphics}
91 %    \end{macrocode}
93 %    \begin{macrocode}
94 \let\LS@makecol=\@makecol
95 \let\LS@makefcolumn=\@makefcolumn
96 \def\LS@rot{%
97   \setbox\@outputbox\vbox{\hbox{\rotatebox{90}{\box\@outputbox}}}}
98 %    \end{macrocode}
100 % First set up the page size for landscape.
101 %    \begin{macrocode}
102 \def\landscape{%
103   \clearpage
104   \begingroup
105   \vsize=\textwidth
106   \hsize=\textheight
107   \linewidth=\hsize
108   \columnwidth=\hsize
109   \@colroom=\vsize
110   \textheight=\vsize
111   \@colht=\vsize
112 %    \end{macrocode}
113 %    Rotate the page body (text and float pages).
114 %    \begin{macrocode}
115   \def\@makecol{\LS@makecol\LS@rot}%
116   \def\@makefcolumn##1{\LS@makefcolumn{##1}\LS@rot}}
117 %    \end{macrocode}
119 %    Restore everything.  This is where the pdftex option makes a
120 %    difference.
121 %    \begin{macrocode}
122 \def\endlandscape{%
123   \ifGin@pdftex
124     \pdfpageattr{/Rotate 90}
125   \fi
126   \clearpage
127   \endgroup
128   \global\@colht=\textheight
129   \global\vsize=\textheight
130   \global\@colroom=\textheight}
131 %</package>
132 %    \end{macrocode}
135 % \Finale