sawine@1
|
1 |
%%
|
sawine@1
|
2 |
%% This is file `geometry.sty',
|
sawine@1
|
3 |
%% generated with the docstrip utility.
|
sawine@1
|
4 |
%%
|
sawine@1
|
5 |
%% The original source files were:
|
sawine@1
|
6 |
%%
|
sawine@1
|
7 |
%% geometry.dtx (with options: `package')
|
sawine@1
|
8 |
%%
|
sawine@1
|
9 |
%% Copyright (C) 1996-2010
|
sawine@1
|
10 |
%% by Hideo Umeki <latexgeometry@gmail.com>
|
sawine@1
|
11 |
%%
|
sawine@1
|
12 |
%% This work may be distributed and/or modified under the conditions of
|
sawine@1
|
13 |
%% the LaTeX Project Public License, either version 1.3c of this license
|
sawine@1
|
14 |
%% or (at your option) any later version. The latest version of this
|
sawine@1
|
15 |
%% license is in
|
sawine@1
|
16 |
%% http://www.latex-project.org/lppl.txt
|
sawine@1
|
17 |
%% and version 1.3c or later is part of all distributions of LaTeX
|
sawine@1
|
18 |
%% version 2005/12/01 or later.
|
sawine@1
|
19 |
%%
|
sawine@1
|
20 |
%% This work is "maintained" (as per the LPPL maintenance status)
|
sawine@1
|
21 |
%% by Hideo Umeki.
|
sawine@1
|
22 |
%%
|
sawine@1
|
23 |
%% This work consists of the files geometry.dtx and
|
sawine@1
|
24 |
%% the derived files: geometry.{sty,ins,drv}, geometry-samples.tex.
|
sawine@1
|
25 |
%%
|
sawine@1
|
26 |
\NeedsTeXFormat{LaTeX2e}
|
sawine@1
|
27 |
\ProvidesPackage{geometry}
|
sawine@1
|
28 |
[2010/03/13 v5.3 Page Geometry]
|
sawine@1
|
29 |
\RequirePackage{keyval}%
|
sawine@1
|
30 |
\RequirePackage{ifpdf}%
|
sawine@1
|
31 |
%\RequirePackage{ifvtex}%
|
sawine@1
|
32 |
\newif\ifGm@verbose
|
sawine@1
|
33 |
\newif\ifGm@landscape
|
sawine@1
|
34 |
\newif\ifGm@swap@papersize\Gm@swap@papersizefalse
|
sawine@1
|
35 |
\newif\ifGm@includehead
|
sawine@1
|
36 |
\newif\ifGm@includefoot
|
sawine@1
|
37 |
\newif\ifGm@includemp
|
sawine@1
|
38 |
\newif\ifGm@hbody
|
sawine@1
|
39 |
\newif\ifGm@vbody
|
sawine@1
|
40 |
\newif\ifGm@heightrounded
|
sawine@1
|
41 |
\newif\ifGm@showframe
|
sawine@1
|
42 |
\newif\ifGm@showcrop
|
sawine@1
|
43 |
\newif\ifGm@pass\Gm@passfalse
|
sawine@1
|
44 |
\newif\ifGm@resetpaper
|
sawine@1
|
45 |
\newif\ifGm@layout
|
sawine@1
|
46 |
\newif\ifGm@newgm
|
sawine@1
|
47 |
\newcount\Gm@cnth
|
sawine@1
|
48 |
\newcount\Gm@cntv
|
sawine@1
|
49 |
\newcount\c@Gm@tempcnt
|
sawine@1
|
50 |
\newdimen\Gm@bindingoffset
|
sawine@1
|
51 |
\newdimen\Gm@wd@mp
|
sawine@1
|
52 |
\newdimen\Gm@odd@mp
|
sawine@1
|
53 |
\newdimen\Gm@even@mp
|
sawine@1
|
54 |
\newdimen\Gm@layoutwidth
|
sawine@1
|
55 |
\newdimen\Gm@layoutheight
|
sawine@1
|
56 |
\newdimen\Gm@layouthoffset
|
sawine@1
|
57 |
\newdimen\Gm@layoutvoffset
|
sawine@1
|
58 |
\newtoks\Gm@dimlist
|
sawine@1
|
59 |
\def\Gm@warning#1{\PackageWarningNoLine{geometry}{#1}}%
|
sawine@1
|
60 |
\def\ifGm@preamble#1{%
|
sawine@1
|
61 |
\ifGm@newgm
|
sawine@1
|
62 |
\Gm@warning{`#1': not available in `\string\newgeometry'; skipped}%
|
sawine@1
|
63 |
\else
|
sawine@1
|
64 |
\expandafter\@firstofone
|
sawine@1
|
65 |
\fi}%
|
sawine@1
|
66 |
\def\Gm@Dhratio{1:1}% = left:right default for oneside
|
sawine@1
|
67 |
\def\Gm@Dhratiotwo{2:3}% = inner:outer default for twoside.
|
sawine@1
|
68 |
\def\Gm@Dvratio{2:3}% = top:bottom default
|
sawine@1
|
69 |
\def\Gm@Dhscale{0.7}%
|
sawine@1
|
70 |
\def\Gm@Dvscale{0.7}%
|
sawine@1
|
71 |
\def\Gm@dvips{dvips}%
|
sawine@1
|
72 |
\def\Gm@dvipdfm{dvipdfm}%
|
sawine@1
|
73 |
\def\Gm@pdftex{pdftex}%
|
sawine@1
|
74 |
\def\Gm@xetex{xetex}%
|
sawine@1
|
75 |
\def\Gm@vtex{vtex}%
|
sawine@1
|
76 |
\def\Gm@true{true}%
|
sawine@1
|
77 |
\def\Gm@false{false}%
|
sawine@1
|
78 |
\edef\Gm@orgpw{\the\paperwidth}%
|
sawine@1
|
79 |
\edef\Gm@orgph{\the\paperheight}%
|
sawine@1
|
80 |
\def\Gm@savelength#1{%
|
sawine@1
|
81 |
\g@addto@macro\Gm@restore{\expandafter\noexpand\expandafter\csname
|
sawine@1
|
82 |
#1\endcsname\expandafter=\expandafter\the\csname #1\endcsname\relax}}
|
sawine@1
|
83 |
\def\Gm@saveboolean#1{%
|
sawine@1
|
84 |
\csname if#1\endcsname
|
sawine@1
|
85 |
\g@addto@macro\Gm@restore{\expandafter\noexpand\csname #1true\endcsname}%
|
sawine@1
|
86 |
\else
|
sawine@1
|
87 |
\g@addto@macro\Gm@restore{\expandafter\noexpand\csname #1false\endcsname}%
|
sawine@1
|
88 |
\fi}%
|
sawine@1
|
89 |
\def\Gm@restore{}%
|
sawine@1
|
90 |
\def\Gm@save{%
|
sawine@1
|
91 |
\Gm@savelength{paperwidth}%
|
sawine@1
|
92 |
\Gm@savelength{paperheight}%
|
sawine@1
|
93 |
\Gm@savelength{textwidth}%
|
sawine@1
|
94 |
\Gm@savelength{textheight}%
|
sawine@1
|
95 |
\Gm@savelength{evensidemargin}%
|
sawine@1
|
96 |
\Gm@savelength{oddsidemargin}%
|
sawine@1
|
97 |
\Gm@savelength{topmargin}%
|
sawine@1
|
98 |
\Gm@savelength{headheight}%
|
sawine@1
|
99 |
\Gm@savelength{headsep}%
|
sawine@1
|
100 |
\Gm@savelength{topskip}%
|
sawine@1
|
101 |
\Gm@savelength{footskip}%
|
sawine@1
|
102 |
\Gm@savelength{baselineskip}%
|
sawine@1
|
103 |
\Gm@savelength{marginparwidth}%
|
sawine@1
|
104 |
\Gm@savelength{marginparsep}%
|
sawine@1
|
105 |
\Gm@savelength{columnsep}%
|
sawine@1
|
106 |
\Gm@savelength{hoffset}%
|
sawine@1
|
107 |
\Gm@savelength{voffset}
|
sawine@1
|
108 |
\Gm@savelength{Gm@layouthoffset}%
|
sawine@1
|
109 |
\Gm@savelength{Gm@layoutvoffset}%
|
sawine@1
|
110 |
\Gm@saveboolean{@twocolumn}%
|
sawine@1
|
111 |
\Gm@saveboolean{@twoside}%
|
sawine@1
|
112 |
\Gm@saveboolean{@mparswitch}%
|
sawine@1
|
113 |
\Gm@saveboolean{@reversemargin}}%
|
sawine@1
|
114 |
\def\Gm@initnewgm{%
|
sawine@1
|
115 |
\Gm@dimlist={}
|
sawine@1
|
116 |
\Gm@hbodyfalse
|
sawine@1
|
117 |
\Gm@vbodyfalse
|
sawine@1
|
118 |
\Gm@heightroundedfalse
|
sawine@1
|
119 |
\Gm@includeheadfalse
|
sawine@1
|
120 |
\Gm@includefootfalse
|
sawine@1
|
121 |
\Gm@includempfalse
|
sawine@1
|
122 |
\let\Gm@width\@undefined
|
sawine@1
|
123 |
\let\Gm@height\@undefined
|
sawine@1
|
124 |
\let\Gm@textwidth\@undefined
|
sawine@1
|
125 |
\let\Gm@textheight\@undefined
|
sawine@1
|
126 |
\let\Gm@lines\@undefined
|
sawine@1
|
127 |
\let\Gm@hscale\@undefined
|
sawine@1
|
128 |
\let\Gm@vscale\@undefined
|
sawine@1
|
129 |
\let\Gm@hmarginratio\@undefined
|
sawine@1
|
130 |
\let\Gm@vmarginratio\@undefined
|
sawine@1
|
131 |
\let\Gm@lmargin\@undefined
|
sawine@1
|
132 |
\let\Gm@rmargin\@undefined
|
sawine@1
|
133 |
\let\Gm@tmargin\@undefined
|
sawine@1
|
134 |
\let\Gm@bmargin\@undefined
|
sawine@1
|
135 |
\Gm@layoutfalse
|
sawine@1
|
136 |
\Gm@layouthoffset\z@
|
sawine@1
|
137 |
\Gm@layoutvoffset\z@
|
sawine@1
|
138 |
\Gm@bindingoffset\z@}%
|
sawine@1
|
139 |
\def\Gm@initall{%
|
sawine@1
|
140 |
\let\Gm@driver\@empty
|
sawine@1
|
141 |
\let\Gm@truedimen\@empty
|
sawine@1
|
142 |
\let\Gm@paper\@undefined
|
sawine@1
|
143 |
\Gm@resetpaperfalse
|
sawine@1
|
144 |
\Gm@landscapefalse
|
sawine@1
|
145 |
\Gm@verbosefalse
|
sawine@1
|
146 |
\Gm@showframefalse
|
sawine@1
|
147 |
\Gm@showcropfalse
|
sawine@1
|
148 |
\Gm@newgmfalse
|
sawine@1
|
149 |
\Gm@initnewgm}%
|
sawine@1
|
150 |
\def\Gm@setdriver#1{%
|
sawine@1
|
151 |
\expandafter\let\expandafter\Gm@driver\csname Gm@#1\endcsname}%
|
sawine@1
|
152 |
\def\Gm@unsetdriver#1{%
|
sawine@1
|
153 |
\expandafter\ifx\csname Gm@#1\endcsname\Gm@driver\let\Gm@driver\@empty\fi}%
|
sawine@1
|
154 |
\def\Gm@setbool{\@dblarg\Gm@@setbool}%
|
sawine@1
|
155 |
\def\Gm@setboolrev{\@dblarg\Gm@@setboolrev}%
|
sawine@1
|
156 |
\def\Gm@@setbool[#1]#2#3{\Gm@doif{#1}{#3}{\csname Gm@#2\Gm@bool\endcsname}}%
|
sawine@1
|
157 |
\def\Gm@@setboolrev[#1]#2#3{\Gm@doifelse{#1}{#3}%
|
sawine@1
|
158 |
{\csname Gm@#2\Gm@false\endcsname}{\csname Gm@#2\Gm@true\endcsname}}%
|
sawine@1
|
159 |
\def\Gm@doif#1#2#3{%
|
sawine@1
|
160 |
\lowercase{\def\Gm@bool{#2}}%
|
sawine@1
|
161 |
\ifx\Gm@bool\@empty
|
sawine@1
|
162 |
\let\Gm@bool\Gm@true
|
sawine@1
|
163 |
\fi
|
sawine@1
|
164 |
\ifx\Gm@bool\Gm@true
|
sawine@1
|
165 |
\else
|
sawine@1
|
166 |
\ifx\Gm@bool\Gm@false
|
sawine@1
|
167 |
\else
|
sawine@1
|
168 |
\let\Gm@bool\relax
|
sawine@1
|
169 |
\fi
|
sawine@1
|
170 |
\fi
|
sawine@1
|
171 |
\ifx\Gm@bool\relax
|
sawine@1
|
172 |
\Gm@warning{`#1' should be set to `true' or `false'}%
|
sawine@1
|
173 |
\else
|
sawine@1
|
174 |
#3
|
sawine@1
|
175 |
\fi}%
|
sawine@1
|
176 |
\def\Gm@doifelse#1#2#3#4{%
|
sawine@1
|
177 |
\Gm@doif{#1}{#2}{\ifx\Gm@bool\Gm@true #3\else #4\fi}}%
|
sawine@1
|
178 |
\def\Gm@reverse#1{%
|
sawine@1
|
179 |
\csname ifGm@#1\endcsname
|
sawine@1
|
180 |
\csname Gm@#1false\endcsname\else\csname Gm@#1true\endcsname\fi}%
|
sawine@1
|
181 |
\def\Gm@defbylen#1#2{%
|
sawine@1
|
182 |
\setlength\@tempdima{#2}%
|
sawine@1
|
183 |
\expandafter\edef\csname Gm@#1\endcsname{\the\@tempdima}}%
|
sawine@1
|
184 |
\def\Gm@defbycnt#1#2{%
|
sawine@1
|
185 |
\setcounter{Gm@tempcnt}{#2}%
|
sawine@1
|
186 |
\expandafter\edef\csname Gm@#1\endcsname{\the\value{Gm@tempcnt}}}%
|
sawine@1
|
187 |
\def\Gm@sep@ratio#1:#2{\@tempcnta=#1\@tempcntb=#2}%
|
sawine@1
|
188 |
\def\Gm@setbyratio[#1]#2#3#4{% determine #4 by ratio
|
sawine@1
|
189 |
\expandafter\Gm@sep@ratio\Gm@mratio\relax
|
sawine@1
|
190 |
\if#1b
|
sawine@1
|
191 |
\edef\@@tempa{\the\@tempcnta}%
|
sawine@1
|
192 |
\@tempcnta=\@tempcntb
|
sawine@1
|
193 |
\@tempcntb=\@@tempa\relax
|
sawine@1
|
194 |
\fi
|
sawine@1
|
195 |
\expandafter\setlength\expandafter\@tempdimb\expandafter
|
sawine@1
|
196 |
{\csname Gm@#3\endcsname}%
|
sawine@1
|
197 |
\ifnum\@tempcntb>\z@
|
sawine@1
|
198 |
\multiply\@tempdimb\@tempcnta
|
sawine@1
|
199 |
\divide\@tempdimb\@tempcntb
|
sawine@1
|
200 |
\fi
|
sawine@1
|
201 |
\expandafter\edef\csname Gm@#4\endcsname{\the\@tempdimb}}%
|
sawine@1
|
202 |
\def\Gm@detiv#1#2#3#4{% determine #4.
|
sawine@1
|
203 |
\expandafter\setlength\expandafter\@tempdima\expandafter
|
sawine@1
|
204 |
{\csname Gm@layout#1\endcsname}%
|
sawine@1
|
205 |
\expandafter\setlength\expandafter\@tempdimb\expandafter
|
sawine@1
|
206 |
{\csname Gm@#2\endcsname}%
|
sawine@1
|
207 |
\addtolength\@tempdima{-\@tempdimb}%
|
sawine@1
|
208 |
\expandafter\setlength\expandafter\@tempdimb\expandafter
|
sawine@1
|
209 |
{\csname Gm@#3\endcsname}%
|
sawine@1
|
210 |
\addtolength\@tempdima{-\@tempdimb}%
|
sawine@1
|
211 |
\ifdim\@tempdima<\z@
|
sawine@1
|
212 |
\Gm@warning{`#4' results in NEGATIVE (\the\@tempdima).%
|
sawine@1
|
213 |
^^J\@spaces `#2' or `#3' should be shortened in length}%
|
sawine@1
|
214 |
\fi
|
sawine@1
|
215 |
\expandafter\edef\csname Gm@#4\endcsname{\the\@tempdima}}%
|
sawine@1
|
216 |
\def\Gm@detiiandiii#1#2#3{% determine #2 and #3.
|
sawine@1
|
217 |
\expandafter\setlength\expandafter\@tempdima\expandafter
|
sawine@1
|
218 |
{\csname Gm@layout#1\endcsname}%
|
sawine@1
|
219 |
\expandafter\setlength\expandafter\@tempdimb\expandafter
|
sawine@1
|
220 |
{\csname Gm@#1\endcsname}%
|
sawine@1
|
221 |
\addtolength\@tempdima{-\@tempdimb}%
|
sawine@1
|
222 |
\ifdim\@tempdima<\z@
|
sawine@1
|
223 |
\Gm@warning{`#2' and `#3' result in NEGATIVE (\the\@tempdima).%
|
sawine@1
|
224 |
^^J\@spaces `#1' should be shortened in length}%
|
sawine@1
|
225 |
\fi
|
sawine@1
|
226 |
\ifx\Gm@mratio\@undefined
|
sawine@1
|
227 |
\expandafter\Gm@sep@ratio\Gm@Dmratio\relax
|
sawine@1
|
228 |
\else
|
sawine@1
|
229 |
\expandafter\Gm@sep@ratio\Gm@mratio\relax
|
sawine@1
|
230 |
\ifnum\@tempcntb>\z@\else
|
sawine@1
|
231 |
\Gm@warning{margin ratio a:b should be non-zero; default used}%
|
sawine@1
|
232 |
\expandafter\Gm@sep@ratio\Gm@Dmratio\relax
|
sawine@1
|
233 |
\fi
|
sawine@1
|
234 |
\fi
|
sawine@1
|
235 |
\@tempdimb=\@tempdima
|
sawine@1
|
236 |
\advance\@tempcntb\@tempcnta
|
sawine@1
|
237 |
\divide\@tempdima\@tempcntb
|
sawine@1
|
238 |
\multiply\@tempdima\@tempcnta
|
sawine@1
|
239 |
\advance\@tempdimb-\@tempdima
|
sawine@1
|
240 |
\expandafter\edef\csname Gm@#2\endcsname{\the\@tempdima}%
|
sawine@1
|
241 |
\expandafter\edef\csname Gm@#3\endcsname{\the\@tempdimb}}%
|
sawine@1
|
242 |
\def\Gm@detall#1#2#3#4{%
|
sawine@1
|
243 |
\@tempcnta\z@
|
sawine@1
|
244 |
\if#1h
|
sawine@1
|
245 |
\let\Gm@mratio\Gm@hmarginratio
|
sawine@1
|
246 |
\edef\Gm@Dmratio{\if@twoside\Gm@Dhratiotwo\else\Gm@Dhratio\fi}%
|
sawine@1
|
247 |
\else
|
sawine@1
|
248 |
\let\Gm@mratio\Gm@vmarginratio
|
sawine@1
|
249 |
\edef\Gm@Dmratio{\Gm@Dvratio}%
|
sawine@1
|
250 |
\fi
|
sawine@1
|
251 |
\if#1h
|
sawine@1
|
252 |
\ifx\Gm@lmargin\@undefined\else\advance\@tempcnta4\relax\fi
|
sawine@1
|
253 |
\ifGm@hbody\advance\@tempcnta2\relax\fi
|
sawine@1
|
254 |
\ifx\Gm@rmargin\@undefined\else\advance\@tempcnta1\relax\fi
|
sawine@1
|
255 |
\Gm@cnth\@tempcnta
|
sawine@1
|
256 |
\else
|
sawine@1
|
257 |
\ifx\Gm@tmargin\@undefined\else\advance\@tempcnta4\relax\fi
|
sawine@1
|
258 |
\ifGm@vbody\advance\@tempcnta2\relax\fi
|
sawine@1
|
259 |
\ifx\Gm@bmargin\@undefined\else\advance\@tempcnta1\relax\fi
|
sawine@1
|
260 |
\Gm@cntv\@tempcnta
|
sawine@1
|
261 |
\fi
|
sawine@1
|
262 |
\ifcase\@tempcnta
|
sawine@1
|
263 |
\if#1h
|
sawine@1
|
264 |
\edef\Gm@width{\Gm@Dhscale\Gm@layoutwidth}%
|
sawine@1
|
265 |
\else
|
sawine@1
|
266 |
\edef\Gm@height{\Gm@Dvscale\Gm@layoutheight}%
|
sawine@1
|
267 |
\fi
|
sawine@1
|
268 |
\Gm@detiiandiii{#2}{#3}{#4}%
|
sawine@1
|
269 |
\or
|
sawine@1
|
270 |
\ifx\Gm@mratio\@undefined
|
sawine@1
|
271 |
\if#1h
|
sawine@1
|
272 |
\edef\Gm@width{\Gm@Dhscale\Gm@layoutwidth}%
|
sawine@1
|
273 |
\else
|
sawine@1
|
274 |
\edef\Gm@height{\Gm@Dvscale\Gm@layoutheight}%
|
sawine@1
|
275 |
\fi
|
sawine@1
|
276 |
\setlength\@tempdimc{\@nameuse{Gm@#4}}%
|
sawine@1
|
277 |
\Gm@detiiandiii{#2}{#3}{#4}%
|
sawine@1
|
278 |
\expandafter\let\csname Gm@#2\endcsname\@undefined
|
sawine@1
|
279 |
\expandafter\edef\csname Gm@#4\endcsname{\the\@tempdimc}%
|
sawine@1
|
280 |
\else
|
sawine@1
|
281 |
\Gm@setbyratio[f]{#1}{#4}{#3}%
|
sawine@1
|
282 |
\fi
|
sawine@1
|
283 |
\Gm@detiv{#2}{#3}{#4}{#2}%
|
sawine@1
|
284 |
\or\Gm@detiiandiii{#2}{#3}{#4}%
|
sawine@1
|
285 |
\or\Gm@detiv{#2}{#2}{#4}{#3}%
|
sawine@1
|
286 |
\or
|
sawine@1
|
287 |
\ifx\Gm@mratio\@undefined
|
sawine@1
|
288 |
\if#1h
|
sawine@1
|
289 |
\edef\Gm@width{\Gm@Dhscale\Gm@layoutwidth}%
|
sawine@1
|
290 |
\else
|
sawine@1
|
291 |
\edef\Gm@height{\Gm@Dvscale\Gm@layoutheight}%
|
sawine@1
|
292 |
\fi
|
sawine@1
|
293 |
\setlength\@tempdimc{\@nameuse{Gm@#3}}%
|
sawine@1
|
294 |
\Gm@detiiandiii{#2}{#4}{#3}%
|
sawine@1
|
295 |
\expandafter\let\csname Gm@#2\endcsname\@undefined
|
sawine@1
|
296 |
\expandafter\edef\csname Gm@#3\endcsname{\the\@tempdimc}%
|
sawine@1
|
297 |
\else
|
sawine@1
|
298 |
\Gm@setbyratio[b]{#1}{#3}{#4}%
|
sawine@1
|
299 |
\fi
|
sawine@1
|
300 |
\Gm@detiv{#2}{#3}{#4}{#2}%
|
sawine@1
|
301 |
\or\Gm@detiv{#2}{#3}{#4}{#2}%
|
sawine@1
|
302 |
\or\Gm@detiv{#2}{#2}{#3}{#4}%
|
sawine@1
|
303 |
\or\Gm@warning{Over-specification in `#1'-direction.%
|
sawine@1
|
304 |
^^J\@spaces `#2' (\@nameuse{Gm@#2}) is ignored}%
|
sawine@1
|
305 |
\Gm@detiv{#2}{#3}{#4}{#2}%
|
sawine@1
|
306 |
\else\fi}%
|
sawine@1
|
307 |
\def\Gm@clean{%
|
sawine@1
|
308 |
\ifnum\Gm@cnth<4\let\Gm@lmargin\@undefined\fi
|
sawine@1
|
309 |
\ifodd\Gm@cnth\else\let\Gm@rmargin\@undefined\fi
|
sawine@1
|
310 |
\ifnum\Gm@cntv<4\let\Gm@tmargin\@undefined\fi
|
sawine@1
|
311 |
\ifodd\Gm@cntv\else\let\Gm@bmargin\@undefined\fi
|
sawine@1
|
312 |
\ifGm@hbody\else
|
sawine@1
|
313 |
\let\Gm@hscale\@undefined
|
sawine@1
|
314 |
\let\Gm@width\@undefined
|
sawine@1
|
315 |
\let\Gm@textwidth\@undefined
|
sawine@1
|
316 |
\fi
|
sawine@1
|
317 |
\ifGm@vbody\else
|
sawine@1
|
318 |
\let\Gm@vscale\@undefined
|
sawine@1
|
319 |
\let\Gm@height\@undefined
|
sawine@1
|
320 |
\let\Gm@textheight\@undefined
|
sawine@1
|
321 |
\fi
|
sawine@1
|
322 |
}%
|
sawine@1
|
323 |
\def\Gm@parse@divide#1#2#3#4{%
|
sawine@1
|
324 |
\def\Gm@star{*}%
|
sawine@1
|
325 |
\@tempcnta\z@
|
sawine@1
|
326 |
\@for\Gm@tmp:=#1\do{%
|
sawine@1
|
327 |
\expandafter\KV@@sp@def\expandafter\Gm@frag\expandafter{\Gm@tmp}%
|
sawine@1
|
328 |
\edef\Gm@value{\Gm@frag}%
|
sawine@1
|
329 |
\ifcase\@tempcnta\relax\edef\Gm@key{#2}%
|
sawine@1
|
330 |
\or\edef\Gm@key{#3}%
|
sawine@1
|
331 |
\else\edef\Gm@key{#4}%
|
sawine@1
|
332 |
\fi
|
sawine@1
|
333 |
\@nameuse{Gm@set\Gm@key false}%
|
sawine@1
|
334 |
\ifx\empty\Gm@value\else
|
sawine@1
|
335 |
\ifx\Gm@star\Gm@value\else
|
sawine@1
|
336 |
\setkeys{Gm}{\Gm@key=\Gm@value}%
|
sawine@1
|
337 |
\fi\fi
|
sawine@1
|
338 |
\advance\@tempcnta\@ne}%
|
sawine@1
|
339 |
\let\Gm@star\relax}%
|
sawine@1
|
340 |
\def\Gm@branch#1#2#3{%
|
sawine@1
|
341 |
\@tempcnta\z@
|
sawine@1
|
342 |
\@for\Gm@tmp:=#1\do{%
|
sawine@1
|
343 |
\KV@@sp@def\Gm@frag{\Gm@tmp}%
|
sawine@1
|
344 |
\edef\Gm@value{\Gm@frag}%
|
sawine@1
|
345 |
\ifcase\@tempcnta\relax% cnta == 0
|
sawine@1
|
346 |
\setkeys{Gm}{#2=\Gm@value}%
|
sawine@1
|
347 |
\or% cnta == 1
|
sawine@1
|
348 |
\setkeys{Gm}{#3=\Gm@value}%
|
sawine@1
|
349 |
\else\fi
|
sawine@1
|
350 |
\advance\@tempcnta\@ne}%
|
sawine@1
|
351 |
\ifnum\@tempcnta=\@ne
|
sawine@1
|
352 |
\setkeys{Gm}{#3=\Gm@value}%
|
sawine@1
|
353 |
\fi}%
|
sawine@1
|
354 |
\def\Gm@magtooffset{%
|
sawine@1
|
355 |
\@tempdima=\mag\Gm@truedimen sp%
|
sawine@1
|
356 |
\@tempdimb=1\Gm@truedimen in%
|
sawine@1
|
357 |
\divide\@tempdimb\@tempdima
|
sawine@1
|
358 |
\multiply\@tempdimb\@m
|
sawine@1
|
359 |
\addtolength{\hoffset}{1\Gm@truedimen in}%
|
sawine@1
|
360 |
\addtolength{\voffset}{1\Gm@truedimen in}%
|
sawine@1
|
361 |
\addtolength{\hoffset}{-\the\@tempdimb}%
|
sawine@1
|
362 |
\addtolength{\voffset}{-\the\@tempdimb}}%
|
sawine@1
|
363 |
\def\Gm@setlength#1#2{%
|
sawine@1
|
364 |
\let\Gm@len=\relax\let\Gm@td=\relax
|
sawine@1
|
365 |
\edef\addtolist{\noexpand\Gm@dimlist=%
|
sawine@1
|
366 |
{\the\Gm@dimlist \Gm@len{#1}{#2}}}\addtolist}%
|
sawine@1
|
367 |
\def\Gm@expandlengths{%
|
sawine@1
|
368 |
\def\Gm@td{\Gm@truedimen}%
|
sawine@1
|
369 |
\def\Gm@len##1##2{\setlength{##1}{##2}}%
|
sawine@1
|
370 |
\the\Gm@dimlist}%
|
sawine@1
|
371 |
\def\Gm@setsize#1(#2,#3)#4{%
|
sawine@1
|
372 |
\let\Gm@td\relax
|
sawine@1
|
373 |
\expandafter\Gm@setlength\csname #1width\endcsname{#2\Gm@td #4}%
|
sawine@1
|
374 |
\expandafter\Gm@setlength\csname #1height\endcsname{#3\Gm@td #4}%
|
sawine@1
|
375 |
\ifGm@landscape\Gm@swap@papersizetrue\else\Gm@swap@papersizefalse\fi}%
|
sawine@1
|
376 |
\def\Gm@setpaper@ifpre#1{%
|
sawine@1
|
377 |
\ifGm@preamble{#1}{\def\Gm@paper{#1}\@nameuse{Gm@#1}{paper}}}%
|
sawine@1
|
378 |
\@namedef{Gm@a0paper}#1{\Gm@setsize{#1}(841,1189){mm}}% ISO A0
|
sawine@1
|
379 |
\@namedef{Gm@a1paper}#1{\Gm@setsize{#1}(594,841){mm}}% ISO A1
|
sawine@1
|
380 |
\@namedef{Gm@a2paper}#1{\Gm@setsize{#1}(420,594){mm}}% ISO A2
|
sawine@1
|
381 |
\@namedef{Gm@a3paper}#1{\Gm@setsize{#1}(297,420){mm}}% ISO A3
|
sawine@1
|
382 |
\@namedef{Gm@a4paper}#1{\Gm@setsize{#1}(210,297){mm}}% ISO A4
|
sawine@1
|
383 |
\@namedef{Gm@a5paper}#1{\Gm@setsize{#1}(148,210){mm}}% ISO A5
|
sawine@1
|
384 |
\@namedef{Gm@a6paper}#1{\Gm@setsize{#1}(105,148){mm}}% ISO A6
|
sawine@1
|
385 |
\@namedef{Gm@b0paper}#1{\Gm@setsize{#1}(1000,1414){mm}}% ISO B0
|
sawine@1
|
386 |
\@namedef{Gm@b1paper}#1{\Gm@setsize{#1}(707,1000){mm}}% ISO B1
|
sawine@1
|
387 |
\@namedef{Gm@b2paper}#1{\Gm@setsize{#1}(500,707){mm}}% ISO B2
|
sawine@1
|
388 |
\@namedef{Gm@b3paper}#1{\Gm@setsize{#1}(353,500){mm}}% ISO B3
|
sawine@1
|
389 |
\@namedef{Gm@b4paper}#1{\Gm@setsize{#1}(250,353){mm}}% ISO B4
|
sawine@1
|
390 |
\@namedef{Gm@b5paper}#1{\Gm@setsize{#1}(176,250){mm}}% ISO B5
|
sawine@1
|
391 |
\@namedef{Gm@b6paper}#1{\Gm@setsize{#1}(125,176){mm}}% ISO B6
|
sawine@1
|
392 |
\@namedef{Gm@b0j}#1{\Gm@setsize{#1}(1030,1456){mm}}% JIS B0
|
sawine@1
|
393 |
\@namedef{Gm@b1j}#1{\Gm@setsize{#1}(728,1030){mm}}% JIS B1
|
sawine@1
|
394 |
\@namedef{Gm@b2j}#1{\Gm@setsize{#1}(515,728){mm}}% JIS B2
|
sawine@1
|
395 |
\@namedef{Gm@b3j}#1{\Gm@setsize{#1}(364,515){mm}}% JIS B3
|
sawine@1
|
396 |
\@namedef{Gm@b4j}#1{\Gm@setsize{#1}(257,364){mm}}% JIS B4
|
sawine@1
|
397 |
\@namedef{Gm@b5j}#1{\Gm@setsize{#1}(182,257){mm}}% JIS B5
|
sawine@1
|
398 |
\@namedef{Gm@b6j}#1{\Gm@setsize{#1}(128,182){mm}}% JIS B6
|
sawine@1
|
399 |
\@namedef{Gm@ansiapaper}#1{\Gm@setsize{#1}(8.5,11){in}}%
|
sawine@1
|
400 |
\@namedef{Gm@ansibpaper}#1{\Gm@setsize{#1}(11,17){in}}%
|
sawine@1
|
401 |
\@namedef{Gm@ansicpaper}#1{\Gm@setsize{#1}(17,22){in}}%
|
sawine@1
|
402 |
\@namedef{Gm@ansidpaper}#1{\Gm@setsize{#1}(22,34){in}}%
|
sawine@1
|
403 |
\@namedef{Gm@ansiepaper}#1{\Gm@setsize{#1}(34,44){in}}%
|
sawine@1
|
404 |
\@namedef{Gm@letterpaper}#1{\Gm@setsize{#1}(8.5,11){in}}%
|
sawine@1
|
405 |
\@namedef{Gm@legalpaper}#1{\Gm@setsize{#1}(8.5,14){in}}%
|
sawine@1
|
406 |
\@namedef{Gm@executivepaper}#1{\Gm@setsize{#1}(7.25,10.5){in}}%
|
sawine@1
|
407 |
\@namedef{Gm@screen}#1{\Gm@setsize{#1}(225,180){mm}}%
|
sawine@1
|
408 |
\define@key{Gm}{paper}{\setkeys{Gm}{#1}}%
|
sawine@1
|
409 |
\let\KV@Gm@papername\KV@Gm@paper
|
sawine@1
|
410 |
\define@key{Gm}{a0paper}[true]{\Gm@setpaper@ifpre{a0paper}}%
|
sawine@1
|
411 |
\define@key{Gm}{a1paper}[true]{\Gm@setpaper@ifpre{a1paper}}%
|
sawine@1
|
412 |
\define@key{Gm}{a2paper}[true]{\Gm@setpaper@ifpre{a2paper}}%
|
sawine@1
|
413 |
\define@key{Gm}{a3paper}[true]{\Gm@setpaper@ifpre{a3paper}}%
|
sawine@1
|
414 |
\define@key{Gm}{a4paper}[true]{\Gm@setpaper@ifpre{a4paper}}%
|
sawine@1
|
415 |
\define@key{Gm}{a5paper}[true]{\Gm@setpaper@ifpre{a5paper}}%
|
sawine@1
|
416 |
\define@key{Gm}{a6paper}[true]{\Gm@setpaper@ifpre{a6paper}}%
|
sawine@1
|
417 |
\define@key{Gm}{b0paper}[true]{\Gm@setpaper@ifpre{b0paper}}%
|
sawine@1
|
418 |
\define@key{Gm}{b1paper}[true]{\Gm@setpaper@ifpre{b1paper}}%
|
sawine@1
|
419 |
\define@key{Gm}{b2paper}[true]{\Gm@setpaper@ifpre{b2paper}}%
|
sawine@1
|
420 |
\define@key{Gm}{b3paper}[true]{\Gm@setpaper@ifpre{b3paper}}%
|
sawine@1
|
421 |
\define@key{Gm}{b4paper}[true]{\Gm@setpaper@ifpre{b4paper}}%
|
sawine@1
|
422 |
\define@key{Gm}{b5paper}[true]{\Gm@setpaper@ifpre{b5paper}}%
|
sawine@1
|
423 |
\define@key{Gm}{b6paper}[true]{\Gm@setpaper@ifpre{b6paper}}%
|
sawine@1
|
424 |
\define@key{Gm}{b0j}[true]{\Gm@setpaper@ifpre{b0j}}%
|
sawine@1
|
425 |
\define@key{Gm}{b1j}[true]{\Gm@setpaper@ifpre{b1j}}%
|
sawine@1
|
426 |
\define@key{Gm}{b2j}[true]{\Gm@setpaper@ifpre{b2j}}%
|
sawine@1
|
427 |
\define@key{Gm}{b3j}[true]{\Gm@setpaper@ifpre{b3j}}%
|
sawine@1
|
428 |
\define@key{Gm}{b4j}[true]{\Gm@setpaper@ifpre{b4j}}%
|
sawine@1
|
429 |
\define@key{Gm}{b5j}[true]{\Gm@setpaper@ifpre{b5j}}%
|
sawine@1
|
430 |
\define@key{Gm}{b6j}[true]{\Gm@setpaper@ifpre{b6j}}%
|
sawine@1
|
431 |
\define@key{Gm}{ansiapaper}[true]{\Gm@setpaper@ifpre{ansiapaper}}%
|
sawine@1
|
432 |
\define@key{Gm}{ansibpaper}[true]{\Gm@setpaper@ifpre{ansibpaper}}%
|
sawine@1
|
433 |
\define@key{Gm}{ansicpaper}[true]{\Gm@setpaper@ifpre{ansicpaper}}%
|
sawine@1
|
434 |
\define@key{Gm}{ansidpaper}[true]{\Gm@setpaper@ifpre{ansidpaper}}%
|
sawine@1
|
435 |
\define@key{Gm}{ansiepaper}[true]{\Gm@setpaper@ifpre{ansiepaper}}%
|
sawine@1
|
436 |
\define@key{Gm}{letterpaper}[true]{\Gm@setpaper@ifpre{letterpaper}}%
|
sawine@1
|
437 |
\define@key{Gm}{legalpaper}[true]{\Gm@setpaper@ifpre{legalpaper}}%
|
sawine@1
|
438 |
\define@key{Gm}{executivepaper}[true]{\Gm@setpaper@ifpre{executivepaper}}%
|
sawine@1
|
439 |
\define@key{Gm}{screen}[true]{\Gm@setpaper@ifpre{screen}}%
|
sawine@1
|
440 |
\define@key{Gm}{paperwidth}{\ifGm@preamble{paperwidth}{%
|
sawine@1
|
441 |
\Gm@setlength\paperwidth{#1}}}%
|
sawine@1
|
442 |
\define@key{Gm}{paperheight}{\ifGm@preamble{paperheight}{%
|
sawine@1
|
443 |
\Gm@setlength\paperheight{#1}}}%
|
sawine@1
|
444 |
\define@key{Gm}{papersize}{\ifGm@preamble{papersize}{%
|
sawine@1
|
445 |
\Gm@branch{#1}{paperwidth}{paperheight}}}%
|
sawine@1
|
446 |
\define@key{Gm}{layout}{\Gm@layouttrue\@nameuse{Gm@#1}{Gm@layout}}%
|
sawine@1
|
447 |
\let\KV@Gm@layoutname\KV@Gm@layout
|
sawine@1
|
448 |
\define@key{Gm}{layoutwidth}{\Gm@layouttrue\Gm@setlength\Gm@layoutwidth{#1}}%
|
sawine@1
|
449 |
\define@key{Gm}{layoutheight}{\Gm@layouttrue\Gm@setlength\Gm@layoutheight{#1}}%
|
sawine@1
|
450 |
\define@key{Gm}{layoutsize}{\Gm@branch{#1}{layoutwidth}{layoutheight}}%
|
sawine@1
|
451 |
\define@key{Gm}{landscape}[true]{\ifGm@preamble{landscape}{%
|
sawine@1
|
452 |
\Gm@doifelse{landscape}{#1}%
|
sawine@1
|
453 |
{\ifGm@landscape\else\Gm@landscapetrue\Gm@reverse{swap@papersize}\fi}%
|
sawine@1
|
454 |
{\ifGm@landscape\Gm@landscapefalse\Gm@reverse{swap@papersize}\fi}}}%
|
sawine@1
|
455 |
\define@key{Gm}{portrait}[true]{\ifGm@preamble{portrait}{%
|
sawine@1
|
456 |
\Gm@doifelse{portrait}{#1}%
|
sawine@1
|
457 |
{\ifGm@landscape\Gm@landscapefalse\Gm@reverse{swap@papersize}\fi}%
|
sawine@1
|
458 |
{\ifGm@landscape\else\Gm@landscapetrue\Gm@reverse{swap@papersize}\fi}}}%
|
sawine@1
|
459 |
\define@key{Gm}{hscale}{\Gm@hbodytrue\edef\Gm@hscale{#1}}%
|
sawine@1
|
460 |
\define@key{Gm}{vscale}{\Gm@vbodytrue\edef\Gm@vscale{#1}}%
|
sawine@1
|
461 |
\define@key{Gm}{scale}{\Gm@branch{#1}{hscale}{vscale}}%
|
sawine@1
|
462 |
\define@key{Gm}{width}{\Gm@hbodytrue\Gm@defbylen{width}{#1}}%
|
sawine@1
|
463 |
\define@key{Gm}{height}{\Gm@vbodytrue\Gm@defbylen{height}{#1}}%
|
sawine@1
|
464 |
\define@key{Gm}{total}{\Gm@branch{#1}{width}{height}}%
|
sawine@1
|
465 |
\let\KV@Gm@totalwidth\KV@Gm@width
|
sawine@1
|
466 |
\let\KV@Gm@totalheight\KV@Gm@height
|
sawine@1
|
467 |
\define@key{Gm}{textwidth}{\Gm@hbodytrue\Gm@defbylen{textwidth}{#1}}%
|
sawine@1
|
468 |
\define@key{Gm}{textheight}{\Gm@vbodytrue\Gm@defbylen{textheight}{#1}}%
|
sawine@1
|
469 |
\define@key{Gm}{text}{\Gm@branch{#1}{textwidth}{textheight}}%
|
sawine@1
|
470 |
\let\KV@Gm@body\KV@Gm@text
|
sawine@1
|
471 |
\define@key{Gm}{lines}{\Gm@vbodytrue\Gm@defbycnt{lines}{#1}}%
|
sawine@1
|
472 |
\define@key{Gm}{includehead}[true]{\Gm@setbool{includehead}{#1}}%
|
sawine@1
|
473 |
\define@key{Gm}{includefoot}[true]{\Gm@setbool{includefoot}{#1}}%
|
sawine@1
|
474 |
\define@key{Gm}{includeheadfoot}[true]{\Gm@doifelse{includeheadfoot}{#1}%
|
sawine@1
|
475 |
{\Gm@includeheadtrue\Gm@includefoottrue}%
|
sawine@1
|
476 |
{\Gm@includeheadfalse\Gm@includefootfalse}}%
|
sawine@1
|
477 |
\define@key{Gm}{includemp}[true]{\Gm@setbool{includemp}{#1}}%
|
sawine@1
|
478 |
\define@key{Gm}{includeall}[true]{\Gm@doifelse{includeall}{#1}%
|
sawine@1
|
479 |
{\Gm@includeheadtrue\Gm@includefoottrue\Gm@includemptrue}%
|
sawine@1
|
480 |
{\Gm@includeheadfalse\Gm@includefootfalse\Gm@includempfalse}}%
|
sawine@1
|
481 |
\define@key{Gm}{ignorehead}[true]{%
|
sawine@1
|
482 |
\Gm@setboolrev[ignorehead]{includehead}{#1}}%
|
sawine@1
|
483 |
\define@key{Gm}{ignorefoot}[true]{%
|
sawine@1
|
484 |
\Gm@setboolrev[ignorefoot]{includefoot}{#1}}%
|
sawine@1
|
485 |
\define@key{Gm}{ignoreheadfoot}[true]{\Gm@doifelse{ignoreheadfoot}{#1}%
|
sawine@1
|
486 |
{\Gm@includeheadfalse\Gm@includefootfalse}%
|
sawine@1
|
487 |
{\Gm@includeheadtrue\Gm@includefoottrue}}%
|
sawine@1
|
488 |
\define@key{Gm}{ignoremp}[true]{%
|
sawine@1
|
489 |
\Gm@setboolrev[ignoremp]{includemp}{#1}}%
|
sawine@1
|
490 |
\define@key{Gm}{ignoreall}[true]{\Gm@doifelse{ignoreall}{#1}%
|
sawine@1
|
491 |
{\Gm@includeheadfalse\Gm@includefootfalse\Gm@includempfalse}%
|
sawine@1
|
492 |
{\Gm@includeheadtrue\Gm@includefoottrue\Gm@includemptrue}}%
|
sawine@1
|
493 |
\define@key{Gm}{heightrounded}[true]{\Gm@setbool{heightrounded}{#1}}%
|
sawine@1
|
494 |
\define@key{Gm}{hdivide}{\Gm@parse@divide{#1}{lmargin}{width}{rmargin}}%
|
sawine@1
|
495 |
\define@key{Gm}{vdivide}{\Gm@parse@divide{#1}{tmargin}{height}{bmargin}}%
|
sawine@1
|
496 |
\define@key{Gm}{divide}{\Gm@parse@divide{#1}{lmargin}{width}{rmargin}%
|
sawine@1
|
497 |
\Gm@parse@divide{#1}{tmargin}{height}{bmargin}}%
|
sawine@1
|
498 |
\define@key{Gm}{lmargin}{\Gm@defbylen{lmargin}{#1}}%
|
sawine@1
|
499 |
\define@key{Gm}{rmargin}{\Gm@defbylen{rmargin}{#1}}%
|
sawine@1
|
500 |
\let\KV@Gm@left\KV@Gm@lmargin
|
sawine@1
|
501 |
\let\KV@Gm@inner\KV@Gm@lmargin
|
sawine@1
|
502 |
\let\KV@Gm@innermargin\KV@Gm@lmargin
|
sawine@1
|
503 |
\let\KV@Gm@right\KV@Gm@rmargin
|
sawine@1
|
504 |
\let\KV@Gm@outer\KV@Gm@rmargin
|
sawine@1
|
505 |
\let\KV@Gm@outermargin\KV@Gm@rmargin
|
sawine@1
|
506 |
\define@key{Gm}{tmargin}{\Gm@defbylen{tmargin}{#1}}%
|
sawine@1
|
507 |
\define@key{Gm}{bmargin}{\Gm@defbylen{bmargin}{#1}}%
|
sawine@1
|
508 |
\let\KV@Gm@top\KV@Gm@tmargin
|
sawine@1
|
509 |
\let\KV@Gm@bottom\KV@Gm@bmargin
|
sawine@1
|
510 |
\define@key{Gm}{hmargin}{\Gm@branch{#1}{lmargin}{rmargin}}%
|
sawine@1
|
511 |
\define@key{Gm}{vmargin}{\Gm@branch{#1}{tmargin}{bmargin}}%
|
sawine@1
|
512 |
\define@key{Gm}{margin}{\Gm@branch{#1}{lmargin}{tmargin}%
|
sawine@1
|
513 |
\Gm@branch{#1}{rmargin}{bmargin}}%
|
sawine@1
|
514 |
\define@key{Gm}{hmarginratio}{\edef\Gm@hmarginratio{#1}}%
|
sawine@1
|
515 |
\define@key{Gm}{vmarginratio}{\edef\Gm@vmarginratio{#1}}%
|
sawine@1
|
516 |
\define@key{Gm}{marginratio}{\Gm@branch{#1}{hmarginratio}{vmarginratio}}%
|
sawine@1
|
517 |
\let\KV@Gm@hratio\KV@Gm@hmarginratio
|
sawine@1
|
518 |
\let\KV@Gm@vratio\KV@Gm@vmarginratio
|
sawine@1
|
519 |
\let\KV@Gm@ratio\KV@Gm@marginratio
|
sawine@1
|
520 |
\define@key{Gm}{hcentering}[true]{\Gm@doifelse{hcentering}{#1}%
|
sawine@1
|
521 |
{\def\Gm@hmarginratio{1:1}}{}}%
|
sawine@1
|
522 |
\define@key{Gm}{vcentering}[true]{\Gm@doifelse{vcentering}{#1}%
|
sawine@1
|
523 |
{\def\Gm@vmarginratio{1:1}}{}}%
|
sawine@1
|
524 |
\define@key{Gm}{centering}[true]{\Gm@doifelse{centering}{#1}%
|
sawine@1
|
525 |
{\def\Gm@hmarginratio{1:1}\def\Gm@vmarginratio{1:1}}{}}%
|
sawine@1
|
526 |
\define@key{Gm}{twoside}[true]{\Gm@doifelse{twoside}{#1}%
|
sawine@1
|
527 |
{\@twosidetrue\@mparswitchtrue}{\@twosidefalse\@mparswitchfalse}}%
|
sawine@1
|
528 |
\define@key{Gm}{asymmetric}[true]{\Gm@doifelse{asymmetric}{#1}%
|
sawine@1
|
529 |
{\@twosidetrue\@mparswitchfalse}{}}%
|
sawine@1
|
530 |
\define@key{Gm}{bindingoffset}{\Gm@setlength\Gm@bindingoffset{#1}}%
|
sawine@1
|
531 |
\define@key{Gm}{headheight}{\Gm@setlength\headheight{#1}}%
|
sawine@1
|
532 |
\define@key{Gm}{headsep}{\Gm@setlength\headsep{#1}}%
|
sawine@1
|
533 |
\define@key{Gm}{footskip}{\Gm@setlength\footskip{#1}}%
|
sawine@1
|
534 |
\let\KV@Gm@head\KV@Gm@headheight
|
sawine@1
|
535 |
\let\KV@Gm@foot\KV@Gm@footskip
|
sawine@1
|
536 |
\define@key{Gm}{nohead}[true]{\Gm@doifelse{nohead}{#1}%
|
sawine@1
|
537 |
{\Gm@setlength\headheight\z@\Gm@setlength\headsep\z@}{}}%
|
sawine@1
|
538 |
\define@key{Gm}{nofoot}[true]{\Gm@doifelse{nofoot}{#1}%
|
sawine@1
|
539 |
{\Gm@setlength\footskip\z@}{}}%
|
sawine@1
|
540 |
\define@key{Gm}{noheadfoot}[true]{\Gm@doifelse{noheadfoot}{#1}%
|
sawine@1
|
541 |
{\Gm@setlength\headheight\z@\Gm@setlength\headsep
|
sawine@1
|
542 |
\z@\Gm@setlength\footskip\z@}{}}%
|
sawine@1
|
543 |
\define@key{Gm}{footnotesep}{\Gm@setlength{\skip\footins}{#1}}%
|
sawine@1
|
544 |
\define@key{Gm}{marginparwidth}{\Gm@setlength\marginparwidth{#1}}%
|
sawine@1
|
545 |
\let\KV@Gm@marginpar\KV@Gm@marginparwidth
|
sawine@1
|
546 |
\define@key{Gm}{marginparsep}{\Gm@setlength\marginparsep{#1}}%
|
sawine@1
|
547 |
\define@key{Gm}{nomarginpar}[true]{\Gm@doifelse{nomarginpar}{#1}%
|
sawine@1
|
548 |
{\Gm@setlength\marginparwidth\z@\Gm@setlength\marginparsep\z@}{}}%
|
sawine@1
|
549 |
\define@key{Gm}{columnsep}{\Gm@setlength\columnsep{#1}}%
|
sawine@1
|
550 |
\define@key{Gm}{hoffset}{\Gm@setlength\hoffset{#1}}%
|
sawine@1
|
551 |
\define@key{Gm}{voffset}{\Gm@setlength\voffset{#1}}%
|
sawine@1
|
552 |
\define@key{Gm}{offset}{\Gm@branch{#1}{hoffset}{voffset}}%
|
sawine@1
|
553 |
\define@key{Gm}{layouthoffset}{\Gm@setlength\Gm@layouthoffset{#1}}%
|
sawine@1
|
554 |
\define@key{Gm}{layoutvoffset}{\Gm@setlength\Gm@layoutvoffset{#1}}%
|
sawine@1
|
555 |
\define@key{Gm}{layoutoffset}{\Gm@branch{#1}{layouthoffset}{layoutvoffset}}%
|
sawine@1
|
556 |
\define@key{Gm}{twocolumn}[true]{%
|
sawine@1
|
557 |
\Gm@doif{twocolumn}{#1}{\csname @twocolumn\Gm@bool\endcsname}}%
|
sawine@1
|
558 |
\define@key{Gm}{onecolumn}[true]{%
|
sawine@1
|
559 |
\Gm@doifelse{onecolumn}{#1}{\@twocolumnfalse}{\@twocolumntrue}}%
|
sawine@1
|
560 |
\define@key{Gm}{reversemp}[true]{%
|
sawine@1
|
561 |
\Gm@doif{reversemp}{#1}{\csname @reversemargin\Gm@bool\endcsname}}%
|
sawine@1
|
562 |
\define@key{Gm}{reversemarginpar}[true]{%
|
sawine@1
|
563 |
\Gm@doif{reversemarginpar}{#1}{\csname @reversemargin\Gm@bool\endcsname}}%
|
sawine@1
|
564 |
\define@key{Gm}{driver}{\ifGm@preamble{driver}{%
|
sawine@1
|
565 |
\edef\@@tempa{#1}\edef\@@auto{auto}\edef\@@none{none}%
|
sawine@1
|
566 |
\ifx\@@tempa\@empty\let\Gm@driver\relax\else
|
sawine@1
|
567 |
\ifx\@@tempa\@@none\let\Gm@driver\relax\else
|
sawine@1
|
568 |
\ifx\@@tempa\@@auto\let\Gm@driver\@empty\else
|
sawine@1
|
569 |
\setkeys{Gm}{#1}\fi\fi\fi\let\@@auto\relax\let\@@none\relax}}%
|
sawine@1
|
570 |
\define@key{Gm}{dvips}[true]{\ifGm@preamble{dvips}{%
|
sawine@1
|
571 |
\Gm@doifelse{dvips}{#1}{\Gm@setdriver{dvips}}{\Gm@unsetdriver{dvips}}}}%
|
sawine@1
|
572 |
\define@key{Gm}{dvipdfm}[true]{\ifGm@preamble{dvipdfm}{%
|
sawine@1
|
573 |
\Gm@doifelse{dvipdfm}{#1}{\Gm@setdriver{dvipdfm}}{\Gm@unsetdriver{dvipdfm}}}}%
|
sawine@1
|
574 |
\define@key{Gm}{pdftex}[true]{\ifGm@preamble{pdftex}{%
|
sawine@1
|
575 |
\Gm@doifelse{pdftex}{#1}{\Gm@setdriver{pdftex}}{\Gm@unsetdriver{pdftex}}}}%
|
sawine@1
|
576 |
\define@key{Gm}{xetex}[true]{\ifGm@preamble{xetex}{%
|
sawine@1
|
577 |
\Gm@doifelse{xetex}{#1}{\Gm@setdriver{xetex}}{\Gm@unsetdriver{xetex}}}}%
|
sawine@1
|
578 |
\define@key{Gm}{vtex}[true]{\ifGm@preamble{vtex}{%
|
sawine@1
|
579 |
\Gm@doifelse{vtex}{#1}{\Gm@setdriver{vtex}}{\Gm@unsetdriver{vtex}}}}%
|
sawine@1
|
580 |
\define@key{Gm}{verbose}[true]{\ifGm@preamble{verbose}{\Gm@setbool{verbose}{#1}}}%
|
sawine@1
|
581 |
\define@key{Gm}{reset}[true]{\ifGm@preamble{reset}{%
|
sawine@1
|
582 |
\Gm@doifelse{reset}{#1}{\Gm@restore@org\Gm@initall
|
sawine@1
|
583 |
\ProcessOptionsKV[c]{Gm}\Gm@setdefaultpaper}{}}}%
|
sawine@1
|
584 |
\define@key{Gm}{resetpaper}[true]{\ifGm@preamble{resetpaper}{%
|
sawine@1
|
585 |
\Gm@setbool{resetpaper}{#1}}}%
|
sawine@1
|
586 |
\define@key{Gm}{mag}{\ifGm@preamble{mag}{\mag=#1}}%
|
sawine@1
|
587 |
\define@key{Gm}{truedimen}[true]{\ifGm@preamble{truedimen}{%
|
sawine@1
|
588 |
\Gm@doifelse{truedimen}{#1}{\let\Gm@truedimen\Gm@true}%
|
sawine@1
|
589 |
{\let\Gm@truedimen\@empty}}}%
|
sawine@1
|
590 |
\define@key{Gm}{pass}[true]{\ifGm@preamble{pass}{\Gm@setbool{pass}{#1}}}%
|
sawine@1
|
591 |
\define@key{Gm}{showframe}[true]{\Gm@setbool{showframe}{#1}}%
|
sawine@1
|
592 |
\define@key{Gm}{showcrop}[true]{\Gm@setbool{showcrop}{#1}}%
|
sawine@1
|
593 |
\def\Gm@setdefaultpaper{%
|
sawine@1
|
594 |
\ifx\Gm@paper\@undefined
|
sawine@1
|
595 |
\Gm@setsize{paper}(\strip@pt\paperwidth,\strip@pt\paperheight){pt}%
|
sawine@1
|
596 |
\Gm@setsize{Gm@layout}(\strip@pt\paperwidth,\strip@pt\paperheight){pt}%
|
sawine@1
|
597 |
\Gm@swap@papersizefalse
|
sawine@1
|
598 |
\fi}%
|
sawine@1
|
599 |
\def\Gm@adjustpaper{%
|
sawine@1
|
600 |
\ifdim\paperwidth>\p@\else
|
sawine@1
|
601 |
\PackageError{geometry}{%
|
sawine@1
|
602 |
\string\paperwidth\space(\the\paperwidth) too short}{%
|
sawine@1
|
603 |
Set a paper type (e.g., `a4paper').}%
|
sawine@1
|
604 |
\fi
|
sawine@1
|
605 |
\ifdim\paperheight>\p@\else
|
sawine@1
|
606 |
\PackageError{geometry}{%
|
sawine@1
|
607 |
\string\paperheight\space(\the\paperheight) too short}{%
|
sawine@1
|
608 |
Set a paper type (e.g., `a4paper').}%
|
sawine@1
|
609 |
\fi
|
sawine@1
|
610 |
\ifGm@swap@papersize
|
sawine@1
|
611 |
\setlength\@tempdima{\paperwidth}%
|
sawine@1
|
612 |
\setlength\paperwidth{\paperheight}%
|
sawine@1
|
613 |
\setlength\paperheight{\@tempdima}%
|
sawine@1
|
614 |
\fi
|
sawine@1
|
615 |
\ifGm@layout\else
|
sawine@1
|
616 |
\let\Gm@layoutwidth\paperwidth
|
sawine@1
|
617 |
\let\Gm@layoutheight\paperheight
|
sawine@1
|
618 |
\fi}%
|
sawine@1
|
619 |
\def\Gm@checkmp{%
|
sawine@1
|
620 |
\ifGm@includemp\else
|
sawine@1
|
621 |
\@tempcnta\z@\@tempcntb\@ne
|
sawine@1
|
622 |
\if@twocolumn
|
sawine@1
|
623 |
\@tempcnta\@ne
|
sawine@1
|
624 |
\else
|
sawine@1
|
625 |
\if@reversemargin
|
sawine@1
|
626 |
\@tempcnta\@ne\@tempcntb\z@
|
sawine@1
|
627 |
\fi
|
sawine@1
|
628 |
\fi
|
sawine@1
|
629 |
\@tempdima\marginparwidth
|
sawine@1
|
630 |
\advance\@tempdima\marginparsep
|
sawine@1
|
631 |
\ifnum\@tempcnta=\@ne
|
sawine@1
|
632 |
\@tempdimc\@tempdima
|
sawine@1
|
633 |
\setlength\@tempdimb{\Gm@lmargin}%
|
sawine@1
|
634 |
\advance\@tempdimc-\@tempdimb
|
sawine@1
|
635 |
\ifdim\@tempdimc>\z@
|
sawine@1
|
636 |
\Gm@warning{The marginal notes overrun the paper edge.^^J
|
sawine@1
|
637 |
\@spaces Add \the\@tempdimc\space and more to the left margin}%
|
sawine@1
|
638 |
\fi
|
sawine@1
|
639 |
\fi
|
sawine@1
|
640 |
\ifnum\@tempcntb=\@ne
|
sawine@1
|
641 |
\@tempdimc\@tempdima
|
sawine@1
|
642 |
\setlength\@tempdimb{\Gm@rmargin}%
|
sawine@1
|
643 |
\advance\@tempdimc-\@tempdimb
|
sawine@1
|
644 |
\ifdim\@tempdimc>\z@
|
sawine@1
|
645 |
\Gm@warning{The marginal notes overrun the paper.^^J
|
sawine@1
|
646 |
\@spaces Add \the\@tempdimc\space and more to the right margin}%
|
sawine@1
|
647 |
\fi
|
sawine@1
|
648 |
\fi
|
sawine@1
|
649 |
\fi}%
|
sawine@1
|
650 |
\def\Gm@adjustmp{%
|
sawine@1
|
651 |
\ifGm@includemp
|
sawine@1
|
652 |
\@tempdimb\marginparwidth
|
sawine@1
|
653 |
\advance\@tempdimb\marginparsep
|
sawine@1
|
654 |
\Gm@wd@mp\@tempdimb
|
sawine@1
|
655 |
\Gm@odd@mp\z@
|
sawine@1
|
656 |
\Gm@even@mp\z@
|
sawine@1
|
657 |
\if@twocolumn
|
sawine@1
|
658 |
\Gm@wd@mp2\@tempdimb
|
sawine@1
|
659 |
\Gm@odd@mp\@tempdimb
|
sawine@1
|
660 |
\Gm@even@mp\@tempdimb
|
sawine@1
|
661 |
\else
|
sawine@1
|
662 |
\if@reversemargin
|
sawine@1
|
663 |
\Gm@odd@mp\@tempdimb
|
sawine@1
|
664 |
\if@mparswitch\else
|
sawine@1
|
665 |
\Gm@even@mp\@tempdimb
|
sawine@1
|
666 |
\fi
|
sawine@1
|
667 |
\else
|
sawine@1
|
668 |
\if@mparswitch
|
sawine@1
|
669 |
\Gm@even@mp\@tempdimb
|
sawine@1
|
670 |
\fi
|
sawine@1
|
671 |
\fi
|
sawine@1
|
672 |
\fi
|
sawine@1
|
673 |
\fi}%
|
sawine@1
|
674 |
\def\Gm@adjustbody{
|
sawine@1
|
675 |
\ifGm@hbody
|
sawine@1
|
676 |
\ifx\Gm@width\@undefined
|
sawine@1
|
677 |
\ifx\Gm@hscale\@undefined
|
sawine@1
|
678 |
\edef\Gm@width{\Gm@Dhscale\Gm@layoutwidth}%
|
sawine@1
|
679 |
\else
|
sawine@1
|
680 |
\edef\Gm@width{\Gm@hscale\Gm@layoutwidth}%
|
sawine@1
|
681 |
\fi
|
sawine@1
|
682 |
\fi
|
sawine@1
|
683 |
\ifx\Gm@textwidth\@undefined\else
|
sawine@1
|
684 |
\setlength\@tempdima{\Gm@textwidth}%
|
sawine@1
|
685 |
\ifGm@includemp
|
sawine@1
|
686 |
\advance\@tempdima\Gm@wd@mp
|
sawine@1
|
687 |
\fi
|
sawine@1
|
688 |
\edef\Gm@width{\the\@tempdima}%
|
sawine@1
|
689 |
\fi
|
sawine@1
|
690 |
\fi
|
sawine@1
|
691 |
\ifGm@vbody
|
sawine@1
|
692 |
\ifx\Gm@height\@undefined
|
sawine@1
|
693 |
\ifx\Gm@vscale\@undefined
|
sawine@1
|
694 |
\edef\Gm@height{\Gm@Dvscale\Gm@layoutheight}%
|
sawine@1
|
695 |
\else
|
sawine@1
|
696 |
\edef\Gm@height{\Gm@vscale\Gm@layoutheight}%
|
sawine@1
|
697 |
\fi
|
sawine@1
|
698 |
\fi
|
sawine@1
|
699 |
\ifx\Gm@lines\@undefined\else
|
sawine@1
|
700 |
\ifdim\topskip<\ht\strutbox
|
sawine@1
|
701 |
\setlength\@tempdima{\topskip}%
|
sawine@1
|
702 |
\setlength\topskip{\ht\strutbox}%
|
sawine@1
|
703 |
\Gm@warning{\noexpand\topskip was changed from \the\@tempdima\space
|
sawine@1
|
704 |
to \the\topskip}%
|
sawine@1
|
705 |
\fi
|
sawine@1
|
706 |
\setlength\@tempdima{\baselineskip}%
|
sawine@1
|
707 |
\multiply\@tempdima\Gm@lines
|
sawine@1
|
708 |
\addtolength\@tempdima{\topskip}%
|
sawine@1
|
709 |
\addtolength\@tempdima{-\baselineskip}%
|
sawine@1
|
710 |
\edef\Gm@textheight{\the\@tempdima}%
|
sawine@1
|
711 |
\fi
|
sawine@1
|
712 |
\ifx\Gm@textheight\@undefined\else
|
sawine@1
|
713 |
\setlength\@tempdima{\Gm@textheight}%
|
sawine@1
|
714 |
\ifGm@includehead
|
sawine@1
|
715 |
\addtolength\@tempdima{\headheight}%
|
sawine@1
|
716 |
\addtolength\@tempdima{\headsep}%
|
sawine@1
|
717 |
\fi
|
sawine@1
|
718 |
\ifGm@includefoot
|
sawine@1
|
719 |
\addtolength\@tempdima{\footskip}%
|
sawine@1
|
720 |
\fi
|
sawine@1
|
721 |
\edef\Gm@height{\the\@tempdima}%
|
sawine@1
|
722 |
\fi
|
sawine@1
|
723 |
\fi}%
|
sawine@1
|
724 |
\def\Gm@process{%
|
sawine@1
|
725 |
\ifGm@pass
|
sawine@1
|
726 |
\Gm@restore@org
|
sawine@1
|
727 |
\else
|
sawine@1
|
728 |
\Gm@@process
|
sawine@1
|
729 |
\fi}%
|
sawine@1
|
730 |
\def\Gm@@process{%
|
sawine@1
|
731 |
\Gm@expandlengths
|
sawine@1
|
732 |
\Gm@adjustpaper
|
sawine@1
|
733 |
\addtolength\Gm@layoutwidth{-\Gm@bindingoffset}%
|
sawine@1
|
734 |
\Gm@adjustmp
|
sawine@1
|
735 |
\Gm@adjustbody
|
sawine@1
|
736 |
\Gm@detall{h}{width}{lmargin}{rmargin}%
|
sawine@1
|
737 |
\Gm@detall{v}{height}{tmargin}{bmargin}%
|
sawine@1
|
738 |
\setlength\textwidth{\Gm@width}%
|
sawine@1
|
739 |
\setlength\textheight{\Gm@height}%
|
sawine@1
|
740 |
\setlength\topmargin{\Gm@tmargin}%
|
sawine@1
|
741 |
\setlength\oddsidemargin{\Gm@lmargin}%
|
sawine@1
|
742 |
\addtolength\oddsidemargin{-1\Gm@truedimen in}%
|
sawine@1
|
743 |
\ifGm@includemp
|
sawine@1
|
744 |
\advance\textwidth-\Gm@wd@mp
|
sawine@1
|
745 |
\advance\oddsidemargin\Gm@odd@mp
|
sawine@1
|
746 |
\fi
|
sawine@1
|
747 |
\if@mparswitch
|
sawine@1
|
748 |
\setlength\evensidemargin{\Gm@rmargin}%
|
sawine@1
|
749 |
\addtolength\evensidemargin{-1\Gm@truedimen in}%
|
sawine@1
|
750 |
\ifGm@includemp
|
sawine@1
|
751 |
\advance\evensidemargin\Gm@even@mp
|
sawine@1
|
752 |
\fi
|
sawine@1
|
753 |
\else
|
sawine@1
|
754 |
\evensidemargin\oddsidemargin
|
sawine@1
|
755 |
\fi
|
sawine@1
|
756 |
\advance\oddsidemargin\Gm@bindingoffset
|
sawine@1
|
757 |
\addtolength\topmargin{-1\Gm@truedimen in}%
|
sawine@1
|
758 |
\ifGm@includehead
|
sawine@1
|
759 |
\addtolength\textheight{-\headheight}%
|
sawine@1
|
760 |
\addtolength\textheight{-\headsep}%
|
sawine@1
|
761 |
\else
|
sawine@1
|
762 |
\addtolength\topmargin{-\headheight}%
|
sawine@1
|
763 |
\addtolength\topmargin{-\headsep}%
|
sawine@1
|
764 |
\fi
|
sawine@1
|
765 |
\ifGm@includefoot
|
sawine@1
|
766 |
\addtolength\textheight{-\footskip}%
|
sawine@1
|
767 |
\fi
|
sawine@1
|
768 |
\ifGm@heightrounded
|
sawine@1
|
769 |
\setlength\@tempdima{\textheight}%
|
sawine@1
|
770 |
\addtolength\@tempdima{-\topskip}%
|
sawine@1
|
771 |
\@tempcnta\@tempdima
|
sawine@1
|
772 |
\@tempcntb\baselineskip
|
sawine@1
|
773 |
\divide\@tempcnta\@tempcntb
|
sawine@1
|
774 |
\setlength\@tempdimb{\baselineskip}%
|
sawine@1
|
775 |
\multiply\@tempdimb\@tempcnta
|
sawine@1
|
776 |
\advance\@tempdima-\@tempdimb
|
sawine@1
|
777 |
\multiply\@tempdima\tw@
|
sawine@1
|
778 |
\ifdim\@tempdima>\baselineskip
|
sawine@1
|
779 |
\addtolength\@tempdimb{\baselineskip}%
|
sawine@1
|
780 |
\fi
|
sawine@1
|
781 |
\addtolength\@tempdimb{\topskip}%
|
sawine@1
|
782 |
\textheight\@tempdimb
|
sawine@1
|
783 |
\fi
|
sawine@1
|
784 |
\advance\oddsidemargin\Gm@layouthoffset%
|
sawine@1
|
785 |
\advance\evensidemargin\Gm@layouthoffset%
|
sawine@1
|
786 |
\advance\topmargin\Gm@layoutvoffset%
|
sawine@1
|
787 |
\addtolength\Gm@layoutwidth{\Gm@bindingoffset}%
|
sawine@1
|
788 |
}% end of \Gm@@process
|
sawine@1
|
789 |
\def\Gm@detectdriver{%
|
sawine@1
|
790 |
\ifx\Gm@driver\@empty
|
sawine@1
|
791 |
\typeout{*geometry* driver: auto-detecting}%
|
sawine@1
|
792 |
\ifpdf
|
sawine@1
|
793 |
\Gm@setdriver{pdftex}%
|
sawine@1
|
794 |
\else
|
sawine@1
|
795 |
\Gm@setdriver{dvips}%
|
sawine@1
|
796 |
\fi
|
sawine@1
|
797 |
%\ifvtex
|
sawine@1
|
798 |
% \Gm@setdriver{vtex}%
|
sawine@1
|
799 |
%\fi
|
sawine@1
|
800 |
\@ifundefined{XeTeXversion}{}{\Gm@setdriver{xetex}}%
|
sawine@1
|
801 |
\else
|
sawine@1
|
802 |
\ifx\Gm@driver\Gm@xetex %%
|
sawine@1
|
803 |
\@ifundefined{XeTeXversion}{\Gm@warning{%
|
sawine@1
|
804 |
Wrong driver setting: `xetex'; trying `pdftex' driver}%
|
sawine@1
|
805 |
\Gm@setdriver{pdftex}}{}%
|
sawine@1
|
806 |
\fi
|
sawine@1
|
807 |
\ifx\Gm@driver\Gm@vtex
|
sawine@1
|
808 |
%\ifvtex\else
|
sawine@1
|
809 |
% \Gm@warning{Wrong driver setting: `vtex'; trying `dvips' driver}%
|
sawine@1
|
810 |
%\Gm@setdriver{dvips}%
|
sawine@1
|
811 |
%\fi
|
sawine@1
|
812 |
\fi
|
sawine@1
|
813 |
\fi
|
sawine@1
|
814 |
\ifx\Gm@driver\relax
|
sawine@1
|
815 |
\typeout{*geometry* detected driver: <none>}%
|
sawine@1
|
816 |
\else
|
sawine@1
|
817 |
\typeout{*geometry* detected driver: \Gm@driver}%
|
sawine@1
|
818 |
\fi}%
|
sawine@1
|
819 |
\def\Gm@showparams#1{%
|
sawine@1
|
820 |
\ifGm@pass\else
|
sawine@1
|
821 |
\setlength\@tempdima{\Gm@width}\edef\Gm@width{\the\@tempdima}%
|
sawine@1
|
822 |
\setlength\@tempdima{\Gm@height}\edef\Gm@height{\the\@tempdima}%
|
sawine@1
|
823 |
\fi
|
sawine@1
|
824 |
\ifGm@verbose\expandafter\typeout\else\expandafter\wlog\fi
|
sawine@1
|
825 |
{\Gm@logcontent{#1}}}%
|
sawine@1
|
826 |
\def\Gm@showdim#1{* \string#1=\the#1^^J}%
|
sawine@1
|
827 |
\def\Gm@showbool#1{\@nameuse{ifGm@#1}#1\space\fi}%
|
sawine@1
|
828 |
\def\Gm@logcontent#1{%
|
sawine@1
|
829 |
*geometry* verbose mode - [ #1 ] result:^^J%
|
sawine@1
|
830 |
\ifGm@pass * pass (ignores the geometry layout)^^J%
|
sawine@1
|
831 |
\else
|
sawine@1
|
832 |
* driver: \if\Gm@driver\relax <none>\else\Gm@driver\fi^^J%
|
sawine@1
|
833 |
* paper: \ifx\Gm@paper\@undefined\the\paperwidth,
|
sawine@1
|
834 |
\the\paperheight\space(class default)\else\Gm@paper\fi^^J%
|
sawine@1
|
835 |
* layout: \ifGm@layout \the\Gm@layoutwidth, \the\Gm@layoutheight
|
sawine@1
|
836 |
\else\ifx\Gm@paper\@undefined\the\paperwidth,
|
sawine@1
|
837 |
\the\paperheight\else\Gm@paper\fi\fi^^J%
|
sawine@1
|
838 |
\@ifundefined{Gm@lines}{}{* lines: \Gm@lines^^J}%
|
sawine@1
|
839 |
\@ifundefined{Gm@hmarginratio}{}{* hratio: \Gm@hmarginratio^^J}%
|
sawine@1
|
840 |
\@ifundefined{Gm@vmarginratio}{}{* vratio: \Gm@vmarginratio^^J}%
|
sawine@1
|
841 |
\ifdim\Gm@bindingoffset=\z@\else
|
sawine@1
|
842 |
* bindingoffset: \the\Gm@bindingoffset^^J\fi
|
sawine@1
|
843 |
* switch(es): %
|
sawine@1
|
844 |
\Gm@showbool{landscape}%
|
sawine@1
|
845 |
\Gm@showbool{includehead}%
|
sawine@1
|
846 |
\Gm@showbool{includefoot}%
|
sawine@1
|
847 |
\Gm@showbool{includemp}%
|
sawine@1
|
848 |
\if@twoside twoside\space\fi%
|
sawine@1
|
849 |
\if@mparswitch\else\if@twoside asymmetric\space\fi\fi%
|
sawine@1
|
850 |
\Gm@showbool{heightrounded}%
|
sawine@1
|
851 |
\ifx\Gm@truedimen\@empty\else truedimen\space\fi%
|
sawine@1
|
852 |
^^J%
|
sawine@1
|
853 |
* h-part:(L,W,R)=(\Gm@lmargin, \Gm@width, \Gm@rmargin)^^J%
|
sawine@1
|
854 |
* v-part:(T,H,B)=(\Gm@tmargin, \Gm@height, \Gm@bmargin)^^J%
|
sawine@1
|
855 |
\fi
|
sawine@1
|
856 |
\Gm@showdim{\paperwidth}%
|
sawine@1
|
857 |
\Gm@showdim{\paperheight}%
|
sawine@1
|
858 |
\Gm@showdim{\textwidth}%
|
sawine@1
|
859 |
\Gm@showdim{\textheight}%
|
sawine@1
|
860 |
\Gm@showdim{\oddsidemargin}%
|
sawine@1
|
861 |
\Gm@showdim{\evensidemargin}%
|
sawine@1
|
862 |
\Gm@showdim{\topmargin}%
|
sawine@1
|
863 |
\Gm@showdim{\headheight}%
|
sawine@1
|
864 |
\Gm@showdim{\headsep}%
|
sawine@1
|
865 |
\Gm@showdim{\footskip}%
|
sawine@1
|
866 |
\Gm@showdim{\marginparwidth}%
|
sawine@1
|
867 |
\Gm@showdim{\marginparsep}%
|
sawine@1
|
868 |
\Gm@showdim{\columnsep}%
|
sawine@1
|
869 |
* \string\skip\string\footins=\the\skip\footins^^J%
|
sawine@1
|
870 |
\Gm@showdim{\hoffset}%
|
sawine@1
|
871 |
\Gm@showdim{\voffset}%
|
sawine@1
|
872 |
\Gm@showdim{\mag}%
|
sawine@1
|
873 |
* \string\@twocolumn\if@twocolumn true\else false\fi^^J%
|
sawine@1
|
874 |
* \string\@twoside\if@twoside true\else false\fi^^J%
|
sawine@1
|
875 |
* \string\@mparswitch\if@mparswitch true\else false\fi^^J%
|
sawine@1
|
876 |
* \string\@reversemargin\if@reversemargin true\else false\fi^^J%
|
sawine@1
|
877 |
* (1in=72.27pt, 1cm=28.453pt)^^J}%
|
sawine@1
|
878 |
\def\Gm@cropmark(#1,#2,#3,#4){%
|
sawine@1
|
879 |
\begin{picture}(0,0)
|
sawine@1
|
880 |
\setlength\unitlength{1truemm}\thinlines
|
sawine@1
|
881 |
\put(0,0){\line(#1,#2){5}}
|
sawine@1
|
882 |
\put(0,0){\line(#3,#4){5}}
|
sawine@1
|
883 |
\end{picture}}%
|
sawine@1
|
884 |
\newcommand*{\Gm@vrules@mpi}{%
|
sawine@1
|
885 |
\hb@xt@\@tempdima{\llap{\vrule height\textheight}\ignorespaces
|
sawine@1
|
886 |
\hskip \textwidth\vrule height\textheight\hskip \marginparsep
|
sawine@1
|
887 |
\llap{\vrule height\textheight}\hfil\vrule height\textheight}}%
|
sawine@1
|
888 |
\newcommand*{\Gm@vrules@mpii}{%
|
sawine@1
|
889 |
\hb@xt@\@tempdima{\hskip-\marginparwidth\hskip-\marginparsep
|
sawine@1
|
890 |
\llap{\vrule height\textheight}\ignorespaces
|
sawine@1
|
891 |
\hskip \marginparwidth\rlap{\vrule height\textheight}\hskip \marginparsep
|
sawine@1
|
892 |
\llap{\vrule height\textheight}\hskip\textwidth\rlap{\vrule height\textheight}\hss}}%
|
sawine@1
|
893 |
\providecommand*\vb@xt@{\vbox to}%
|
sawine@1
|
894 |
\newcommand*{\Gm@pageframes}{%
|
sawine@1
|
895 |
\vb@xt@\z@{\baselineskip\z@skip\lineskip\z@skip\lineskiplimit\z@%
|
sawine@1
|
896 |
\ifGm@showcrop
|
sawine@1
|
897 |
\vb@xt@\z@{\vskip-1\Gm@truedimen in\vskip\Gm@layoutvoffset%
|
sawine@1
|
898 |
\hb@xt@\z@{\hskip-1\Gm@truedimen in\hskip\Gm@layouthoffset%
|
sawine@1
|
899 |
\vb@xt@\Gm@layoutheight{%
|
sawine@1
|
900 |
\let\protect\relax
|
sawine@1
|
901 |
\hb@xt@\Gm@layoutwidth{\Gm@cropmark(1,0,0,-1)\hfil\Gm@cropmark(-1,0,0,-1)}%
|
sawine@1
|
902 |
\vfil
|
sawine@1
|
903 |
\hb@xt@\Gm@layoutwidth{\Gm@cropmark(1,0,0,1)\hfil\Gm@cropmark(-1,0,0,1)}}%
|
sawine@1
|
904 |
\hss}%
|
sawine@1
|
905 |
\vss}%
|
sawine@1
|
906 |
\fi%
|
sawine@1
|
907 |
\ifGm@showframe
|
sawine@1
|
908 |
\if@twoside
|
sawine@1
|
909 |
\ifodd\count\z@
|
sawine@1
|
910 |
\let\@themargin\oddsidemargin
|
sawine@1
|
911 |
\else
|
sawine@1
|
912 |
\let\@themargin\evensidemargin
|
sawine@1
|
913 |
\fi
|
sawine@1
|
914 |
\fi
|
sawine@1
|
915 |
\moveright\@themargin%
|
sawine@1
|
916 |
\vb@xt@\z@{%
|
sawine@1
|
917 |
\vskip\topmargin\vb@xt@\z@{\vss\hrule width\textwidth}%
|
sawine@1
|
918 |
\vskip\headheight\vb@xt@\z@{\vss\hrule width\textwidth}%
|
sawine@1
|
919 |
\vskip\headsep\vb@xt@\z@{\vss\hrule width\textwidth}
|
sawine@1
|
920 |
\@tempdima\textwidth
|
sawine@1
|
921 |
\advance\@tempdima by \marginparsep
|
sawine@1
|
922 |
\advance\@tempdima by \marginparwidth
|
sawine@1
|
923 |
\if@mparswitch
|
sawine@1
|
924 |
\ifodd\count\z@
|
sawine@1
|
925 |
\Gm@vrules@mpi
|
sawine@1
|
926 |
\else
|
sawine@1
|
927 |
\Gm@vrules@mpii
|
sawine@1
|
928 |
\fi
|
sawine@1
|
929 |
\else
|
sawine@1
|
930 |
\Gm@vrules@mpi
|
sawine@1
|
931 |
\fi
|
sawine@1
|
932 |
\vb@xt@\z@{\vss\hrule width\textwidth}%
|
sawine@1
|
933 |
\vskip\footskip\vb@xt@\z@{\vss\hrule width\textwidth}%
|
sawine@1
|
934 |
\vss}%
|
sawine@1
|
935 |
\fi%
|
sawine@1
|
936 |
}}%
|
sawine@1
|
937 |
\let\Gm@shipout\shipout
|
sawine@1
|
938 |
\newcommand*{\gm@shipi}{%
|
sawine@1
|
939 |
\ifvoid\@cclv\expandafter\aftergroup\fi\gm@shipii}%
|
sawine@1
|
940 |
\newcommand*\gm@shipii{%
|
sawine@1
|
941 |
\ifvoid\@cclv
|
sawine@1
|
942 |
\Gm@shipout\box\@cclv
|
sawine@1
|
943 |
\else
|
sawine@1
|
944 |
\ifGm@showframe
|
sawine@1
|
945 |
\Gm@shipout\vbox{\Gm@pageframes\ifvbox\@cclv\unvbox\else\box\fi\@cclv}%
|
sawine@1
|
946 |
\else\ifGm@showcrop
|
sawine@1
|
947 |
\Gm@shipout\vbox{\Gm@pageframes\ifvbox\@cclv\unvbox\else\box\fi\@cclv}%
|
sawine@1
|
948 |
\else
|
sawine@1
|
949 |
\Gm@shipout\box\@cclv
|
sawine@1
|
950 |
\fi\fi
|
sawine@1
|
951 |
\fi}
|
sawine@1
|
952 |
\def\ProcessOptionsKV{\@ifnextchar[%]
|
sawine@1
|
953 |
{\@ProcessOptionsKV}{\@ProcessOptionsKV[]}}%
|
sawine@1
|
954 |
\def\@ProcessOptionsKV[#1]#2{%
|
sawine@1
|
955 |
\let\@tempa\@empty
|
sawine@1
|
956 |
\@tempcnta\z@
|
sawine@1
|
957 |
\if#1p\@tempcnta\@ne\else\if#1c\@tempcnta\tw@\fi\fi
|
sawine@1
|
958 |
\ifodd\@tempcnta
|
sawine@1
|
959 |
\edef\@tempa{\@ptionlist{\@currname.\@currext}}%
|
sawine@1
|
960 |
\else
|
sawine@1
|
961 |
\@for\CurrentOption:=\@classoptionslist\do{%
|
sawine@1
|
962 |
\@ifundefined{KV@#2@\CurrentOption}%
|
sawine@1
|
963 |
{}{\edef\@tempa{\@tempa,\CurrentOption,}}}%
|
sawine@1
|
964 |
\ifnum\@tempcnta=\z@
|
sawine@1
|
965 |
\edef\@tempa{\@tempa,\@ptionlist{\@currname.\@currext}}%
|
sawine@1
|
966 |
\fi
|
sawine@1
|
967 |
\fi
|
sawine@1
|
968 |
\edef\@tempa{\noexpand\setkeys{#2}{\@tempa}}%
|
sawine@1
|
969 |
\@tempa
|
sawine@1
|
970 |
\AtEndOfPackage{\let\@unprocessedoptions\relax}}%
|
sawine@1
|
971 |
\def\Gm@setkeys{\setkeys{Gm}}%
|
sawine@1
|
972 |
\def\Gm@processconfig{%
|
sawine@1
|
973 |
\let\Gm@origExecuteOptions\ExecuteOptions
|
sawine@1
|
974 |
\let\ExecuteOptions\Gm@setkeys
|
sawine@1
|
975 |
\InputIfFileExists{geometry.cfg}{}{}
|
sawine@1
|
976 |
\let\ExecuteOptions\Gm@origExecuteOptions}%
|
sawine@1
|
977 |
\Gm@save
|
sawine@1
|
978 |
\edef\Gm@restore@org{\Gm@restore}%
|
sawine@1
|
979 |
\Gm@initall
|
sawine@1
|
980 |
\Gm@processconfig
|
sawine@1
|
981 |
\ProcessOptionsKV[c]{Gm}%
|
sawine@1
|
982 |
\Gm@setdefaultpaper
|
sawine@1
|
983 |
\ProcessOptionsKV[p]{Gm}%
|
sawine@1
|
984 |
\Gm@process
|
sawine@1
|
985 |
\AtBeginDocument{%
|
sawine@1
|
986 |
\Gm@savelength{paperwidth}%
|
sawine@1
|
987 |
\Gm@savelength{paperheight}%
|
sawine@1
|
988 |
\edef\Gm@restore@org{\Gm@restore}%
|
sawine@1
|
989 |
\ifGm@resetpaper
|
sawine@1
|
990 |
\edef\Gm@pw{\Gm@orgpw}%
|
sawine@1
|
991 |
\edef\Gm@ph{\Gm@orgph}%
|
sawine@1
|
992 |
\else
|
sawine@1
|
993 |
\edef\Gm@pw{\the\paperwidth}%
|
sawine@1
|
994 |
\edef\Gm@ph{\the\paperheight}%
|
sawine@1
|
995 |
\fi
|
sawine@1
|
996 |
\ifGm@pass\else
|
sawine@1
|
997 |
\ifnum\mag=\@m\else
|
sawine@1
|
998 |
\Gm@magtooffset
|
sawine@1
|
999 |
\divide\paperwidth\@m
|
sawine@1
|
1000 |
\multiply\paperwidth\the\mag
|
sawine@1
|
1001 |
\divide\paperheight\@m
|
sawine@1
|
1002 |
\multiply\paperheight\the\mag
|
sawine@1
|
1003 |
\fi
|
sawine@1
|
1004 |
\fi
|
sawine@1
|
1005 |
\Gm@detectdriver
|
sawine@1
|
1006 |
\ifx\Gm@driver\Gm@xetex
|
sawine@1
|
1007 |
\@ifundefined{pdfpagewidth}{}{%
|
sawine@1
|
1008 |
\setlength\pdfpagewidth{\Gm@pw}%
|
sawine@1
|
1009 |
\setlength\pdfpageheight{\Gm@ph}}%
|
sawine@1
|
1010 |
\ifnum\mag=\@m\else
|
sawine@1
|
1011 |
\ifx\Gm@truedimen\Gm@true
|
sawine@1
|
1012 |
\setlength\paperwidth{\Gm@pw}%
|
sawine@1
|
1013 |
\setlength\paperheight{\Gm@ph}%
|
sawine@1
|
1014 |
\fi
|
sawine@1
|
1015 |
\fi
|
sawine@1
|
1016 |
\fi
|
sawine@1
|
1017 |
\ifx\Gm@driver\Gm@pdftex
|
sawine@1
|
1018 |
\@ifundefined{pdfpagewidth}{}{%
|
sawine@1
|
1019 |
\setlength\pdfpagewidth{\Gm@pw}%
|
sawine@1
|
1020 |
\setlength\pdfpageheight{\Gm@ph}}%
|
sawine@1
|
1021 |
\ifnum\mag=\@m\else
|
sawine@1
|
1022 |
\@tempdima=\mag sp%
|
sawine@1
|
1023 |
\@ifundefined{pdfhorigin}{}{%
|
sawine@1
|
1024 |
\divide\pdfhorigin\@tempdima
|
sawine@1
|
1025 |
\multiply\pdfhorigin\@m
|
sawine@1
|
1026 |
\divide\pdfvorigin\@tempdima
|
sawine@1
|
1027 |
\multiply\pdfvorigin\@m}%
|
sawine@1
|
1028 |
\ifx\Gm@truedimen\Gm@true
|
sawine@1
|
1029 |
\setlength\paperwidth{\Gm@pw}%
|
sawine@1
|
1030 |
\setlength\paperheight{\Gm@ph}%
|
sawine@1
|
1031 |
\fi
|
sawine@1
|
1032 |
\fi
|
sawine@1
|
1033 |
\fi
|
sawine@1
|
1034 |
\ifx\Gm@driver\Gm@vtex
|
sawine@1
|
1035 |
\@ifundefined{mediawidth}{}{%
|
sawine@1
|
1036 |
\mediawidth=\paperwidth
|
sawine@1
|
1037 |
\mediaheight=\paperheight}%
|
sawine@1
|
1038 |
%\ifvtexdvi
|
sawine@1
|
1039 |
% \AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}%
|
sawine@1
|
1040 |
%\fi
|
sawine@1
|
1041 |
\fi
|
sawine@1
|
1042 |
\ifx\Gm@driver\Gm@dvips
|
sawine@1
|
1043 |
\AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}%
|
sawine@1
|
1044 |
\ifx\Gm@driver\Gm@dvips\ifGm@landscape
|
sawine@1
|
1045 |
\AtBeginDvi{\special{! /landplus90 true store}}%
|
sawine@1
|
1046 |
\fi\fi
|
sawine@1
|
1047 |
\else\ifx\Gm@driver\Gm@dvipdfm
|
sawine@1
|
1048 |
\ifcase\ifx\AtBeginShipoutFirst\relax\@ne\else
|
sawine@1
|
1049 |
\ifx\AtBeginShipoutFirst\@undefined\@ne\else\z@\fi\fi
|
sawine@1
|
1050 |
\AtBeginShipoutFirst{\special{papersize=\the\paperwidth,\the\paperheight}}%
|
sawine@1
|
1051 |
\or
|
sawine@1
|
1052 |
\AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}%
|
sawine@1
|
1053 |
\fi
|
sawine@1
|
1054 |
\fi\fi
|
sawine@1
|
1055 |
\ifGm@showframe
|
sawine@1
|
1056 |
\renewcommand*{\shipout}{\afterassignment\gm@shipi\setbox\@cclv=}
|
sawine@1
|
1057 |
\else\ifGm@showcrop
|
sawine@1
|
1058 |
\renewcommand*{\shipout}{\afterassignment\gm@shipi\setbox\@cclv=}
|
sawine@1
|
1059 |
\fi\fi
|
sawine@1
|
1060 |
\Gm@save
|
sawine@1
|
1061 |
\edef\Gm@restore@pkg{\Gm@restore}%
|
sawine@1
|
1062 |
\ifGm@verbose\ifGm@pass\else\Gm@checkmp\fi\fi
|
sawine@1
|
1063 |
\Gm@showparams{preamble}%
|
sawine@1
|
1064 |
\let\Gm@pw\relax
|
sawine@1
|
1065 |
\let\Gm@ph\relax
|
sawine@1
|
1066 |
}% end of \AtBeginDocument
|
sawine@1
|
1067 |
\newcommand{\geometry}[1]{%
|
sawine@1
|
1068 |
\Gm@clean
|
sawine@1
|
1069 |
\setkeys{Gm}{#1}%
|
sawine@1
|
1070 |
\Gm@process}%
|
sawine@1
|
1071 |
\@onlypreamble\geometry
|
sawine@1
|
1072 |
\DeclareRobustCommand\Gm@changelayout{%
|
sawine@1
|
1073 |
\setlength{\@colht}{\textheight}
|
sawine@1
|
1074 |
\setlength{\@colroom}{\textheight}%
|
sawine@1
|
1075 |
\setlength{\vsize}{\textheight}
|
sawine@1
|
1076 |
\setlength{\columnwidth}{\textwidth}%
|
sawine@1
|
1077 |
\if@twocolumn%
|
sawine@1
|
1078 |
\advance\columnwidth-\columnsep
|
sawine@1
|
1079 |
\divide\columnwidth\tw@%
|
sawine@1
|
1080 |
\@firstcolumntrue%
|
sawine@1
|
1081 |
\fi%
|
sawine@1
|
1082 |
\setlength{\hsize}{\columnwidth}%
|
sawine@1
|
1083 |
\setlength{\linewidth}{\hsize}}%
|
sawine@1
|
1084 |
\newcommand\newgeometry[1]{%
|
sawine@1
|
1085 |
\clearpage
|
sawine@1
|
1086 |
\Gm@restore@org
|
sawine@1
|
1087 |
\Gm@initnewgm
|
sawine@1
|
1088 |
\Gm@newgmtrue
|
sawine@1
|
1089 |
\setkeys{Gm}{#1}%
|
sawine@1
|
1090 |
\Gm@newgmfalse
|
sawine@1
|
1091 |
\Gm@process
|
sawine@1
|
1092 |
\ifnum\mag=\@m\else\Gm@magtooffset\fi
|
sawine@1
|
1093 |
\Gm@changelayout
|
sawine@1
|
1094 |
\Gm@showparams{newgeometry}}%
|
sawine@1
|
1095 |
\newcommand\restoregeometry{%
|
sawine@1
|
1096 |
\clearpage
|
sawine@1
|
1097 |
\Gm@restore@pkg
|
sawine@1
|
1098 |
\Gm@changelayout}%
|
sawine@1
|
1099 |
\newcommand*\savegeometry[1]{%
|
sawine@1
|
1100 |
\Gm@save
|
sawine@1
|
1101 |
\expandafter\edef\csname Gm@restore@@#1\endcsname{\Gm@restore}}%
|
sawine@1
|
1102 |
\newcommand*\loadgeometry[1]{%
|
sawine@1
|
1103 |
\clearpage
|
sawine@1
|
1104 |
\@ifundefined{Gm@restore@@#1}{%
|
sawine@1
|
1105 |
\PackageError{geometry}{%
|
sawine@1
|
1106 |
\string\loadgeometry : name `#1' undefined}{%
|
sawine@1
|
1107 |
The name `#1' should be predefined with \string\savegeometry}%
|
sawine@1
|
1108 |
}{\@nameuse{Gm@restore@@#1}%
|
sawine@1
|
1109 |
\Gm@changelayout}}%
|
sawine@1
|
1110 |
\endinput
|
sawine@1
|
1111 |
%%
|
sawine@1
|
1112 |
%% End of file `geometry.sty'.
|