From 358774b44f57eabd62294dec13884e8b7bd2cc1f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 9 Jul 2010 21:36:51 +0000 Subject: geometry update (9jul10) git-svn-id: svn://tug.org/texlive/trunk@19307 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/geometry/README | 11 +- Master/texmf-dist/doc/latex/geometry/changes.txt | 12 + Master/texmf-dist/doc/latex/geometry/geometry.pdf | Bin 227170 -> 232572 bytes .../texmf-dist/source/latex/geometry/geometry.drv | 7 + .../texmf-dist/source/latex/geometry/geometry.dtx | 266 +++++++++++---------- .../texmf-dist/source/latex/geometry/geometry.ins | 2 +- Master/texmf-dist/tex/latex/geometry/geometry.sty | 156 ++++++------ 7 files changed, 253 insertions(+), 201 deletions(-) diff --git a/Master/texmf-dist/doc/latex/geometry/README b/Master/texmf-dist/doc/latex/geometry/README index df223304c57..45aa6eb8407 100644 --- a/Master/texmf-dist/doc/latex/geometry/README +++ b/Master/texmf-dist/doc/latex/geometry/README @@ -1,4 +1,4 @@ -LaTeX Package: Geometry 2010/03/13 v5.3 +LaTeX Package: Geometry 2010/07/08 v5.4 ---------------------------------------- Flexible and easy interface to page dimensions @@ -15,16 +15,15 @@ Abstract: CTAN: macros/latex/contrib/geometry Recent changes: - [Release 5.3] - * Fixed missed initialization of \Gm@lines. - - [Release 5.0-] +[Release 5.0-5.4] * Changing page layout mid-document. * A new set of options to specify the layout area. * A new driver option 'xetex'. - * New paper size presets for JIS B-series. + * New paper size presets for JIS B-series and ISO C-series. * Changing default for underspecified margin. * The option 'showframe' works on every page. + * The option 'showcrop' prints cross-shape cropmarks at each corner. + * Package 'atbegshi' is required when using 'showframe' or 'showcrop'. * Loading geometry.cfg precedes processing class options. * Deleted options: 'compat2' and 'twosideshift'. * Added 'onecolumn' option as a shorthand for 'twocolumn=false'. diff --git a/Master/texmf-dist/doc/latex/geometry/changes.txt b/Master/texmf-dist/doc/latex/geometry/changes.txt index 287fedb77fe..3d946793be0 100644 --- a/Master/texmf-dist/doc/latex/geometry/changes.txt +++ b/Master/texmf-dist/doc/latex/geometry/changes.txt @@ -1,3 +1,15 @@ +2010-07-08 Release 5.4 + * New paper size presets for ISO C-series: 'c0paper' to 'c6paper'. + * Fixed a bug where overloading shipout in 'showframe' and/or 'showcrop' + mode caused warnings when 'pdfpages' package is used. + * Changed the shipout overloading process to use 'atbegshi' package. + Options 'showframe' and 'showcrop' require the package. + * Fixed a bug where restoring layoutwidth and layoutheight failed + when \restoregeometry is called. + * Fixed a bug where page frame shown in 'showframe' mode was placed + slightly wrong. + * Changed format and fixed values shown in verbose mode. + 2010-03-13 Release 5.3 * Fixed missed initialization of \Gm@lines. diff --git a/Master/texmf-dist/doc/latex/geometry/geometry.pdf b/Master/texmf-dist/doc/latex/geometry/geometry.pdf index 97619af3e23..e8beba468ab 100644 Binary files a/Master/texmf-dist/doc/latex/geometry/geometry.pdf and b/Master/texmf-dist/doc/latex/geometry/geometry.pdf differ diff --git a/Master/texmf-dist/source/latex/geometry/geometry.drv b/Master/texmf-dist/source/latex/geometry/geometry.drv index 1a87ba0f6f3..eefcb23a559 100644 --- a/Master/texmf-dist/source/latex/geometry/geometry.drv +++ b/Master/texmf-dist/source/latex/geometry/geometry.drv @@ -27,8 +27,15 @@ \ProvidesFile{geometry.drv} \documentclass{ltxdoc} \usepackage[colorlinks, linkcolor=blue]{hyperref} +\usepackage{graphicx} \usepackage[a4paper, hmargin=2.5cm, vmargin=1cm, includeheadfoot]{geometry} +\DeclareRobustCommand\XeTeX{% + X\lower.5ex\hbox{\kern-.07em\reflectbox{E}}% + \kern-.15em\TeX} +\DeclareRobustCommand\XeLaTeX{% + X\lower.5ex\hbox{\kern-.07em\reflectbox{E}}% + \kern-.15em\LaTeX} \begin{document} \DocInput{geometry.dtx} \end{document} diff --git a/Master/texmf-dist/source/latex/geometry/geometry.dtx b/Master/texmf-dist/source/latex/geometry/geometry.dtx index c7ad45a9d24..4e6a64d801c 100644 --- a/Master/texmf-dist/source/latex/geometry/geometry.dtx +++ b/Master/texmf-dist/source/latex/geometry/geometry.dtx @@ -39,12 +39,12 @@ % %\NeedsTeXFormat{LaTeX2e} %\ProvidesPackage{geometry} -% [2010/03/13 v5.3 Page Geometry] +% [2010/07/08 v5.4 Page Geometry] %<*install> \input docstrip.tex \Msg{************************************************************************} \Msg{* Installation} -\Msg{* Package: geometry 2010/03/13 v5.3 Page Geometry} +\Msg{* Package: geometry 2010/07/08 v5.4 Page Geometry} \Msg{************************************************************************} \keepsilent @@ -102,15 +102,22 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. \ProvidesFile{geometry.drv} \documentclass{ltxdoc} \usepackage[colorlinks, linkcolor=blue]{hyperref} +\usepackage{graphicx} \usepackage[a4paper, hmargin=2.5cm, vmargin=1cm, includeheadfoot]{geometry} +\DeclareRobustCommand\XeTeX{% + X\lower.5ex\hbox{\kern-.07em\reflectbox{E}}% + \kern-.15em\TeX} +\DeclareRobustCommand\XeLaTeX{% + X\lower.5ex\hbox{\kern-.07em\reflectbox{E}}% + \kern-.15em\LaTeX} \begin{document} \DocInput{geometry.dtx} \end{document} % % \fi % -% \CheckSum{2723} +% \CheckSum{2674} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z @@ -145,7 +152,7 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % \newcommand\vargii[2]{\OpenB#1\Comma#2\CloseB} % \newcommand\vargiii[3]{\OpenB#1\Comma#2\Comma#3\CloseB} % \newcommand\OR{\ \strut\vrule width .4pt\ } -% \newcommand\gpart[1]{\textsl{#1}} +% \newcommand\gpart[1]{\textsf{\textsl{\color[rgb]{.0,.45,.7}#1}}}% % \newcommand\glen[1]{\textsf{#1}} % \newenvironment{key}[2]{\expandafter\macro\expandafter{`#2'}}{\endmacro} % \newenvironment{Options}% @@ -192,7 +199,7 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % middle of the document. \cs{newgeometry} is almost similar to % \cs{geometry} except that \cs{newgeometry} disables all the options % specified in the preamble and skips the papersize-related options: -% |landscape|,|portrait| and paper size options (such as +% |landscape|, |portrait| and paper size options (such as % |papersize|, |paper=a4paper| and so forth). % \item \textbf{A new set of options to specify the layout area.}\par % The options specified for the area, in which the page dimensions @@ -205,24 +212,28 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % \item \textbf{A new driver option |xetex|.}\par % The new driver option |xetex| is added. The driver auto-detection % routine has been revised so as to avoid an error with undefined -% control sequences. Note that `geometry.cfg' in TeXLive, which +% control sequences. Note that `geometry.cfg' in \TeX{} Live, which % disables the auto-detection routine and sets |pdftex|, is no % longer necessary and has no problem even though it still exists. -% To set |xetex| is strongly recommended with XeLaTeX. -% \item \textbf{New paper size presets for JIS B-series.}\par +% To set |xetex| is strongly recommended with \XeLaTeX{}. +% \item \textbf{New paper size presets for JIS B-series and ISO C-series.}\par % The papersize presets |b0j| to |b6j| for JIS (Japanese Industrial -% Standards) B-series are added. +% Standards) B-series and |c0paper| to |c6paper| for ISO C-series +% (v5.4$\sim$) are added. % \item \textbf{Changing default for underspecified margin.}\par % In the previous version, if only one margin was specified, % |bottom=1cm| for example, then \Gm\ set the other margin with % the margin ratio (1:1 by default for the vertical dimensions) -% and got |top|=1cm in this case. +% and got |top=1cm| in this case. % The version 5 sets the text-body size with the default |scale| -% (=0.7) and determine the unspecified margin. (See Section~\ref{sec:rules}) +% ($=0.7$) and determine the unspecified margin. (See Section~\ref{sec:rules}) % \item \textbf{The option |showframe| works on every page.}\par % With |showframe| option, the page frames are shown on every page. % In addition, the new option |showcrop| would print cropmarks showing -% the corners of the layout (the same as paper by default) on every page. +% the corners of the layout (the same as paper by default) on every +% page. Version 5.4 introduced a new |\shipout| overloading process +% using \textsf{atbegshi} package, so the \textsf{atbegshi} package +% is required when using showframe or showcrop option. % \item \textbf{Loading geometry.cfg precedes processing class options.}\par % The previous version loaded \textsf{geometry.cfg} after % processing the document class options. Now that the config file is @@ -238,7 +249,7 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % % To set dimensions for page layout in \LaTeX\ is not straightforward. % You need to adjust several \LaTeX{} native dimensions to place a text area -% where you want +% where you want. % If you want to center the text area in the paper you use, for example, % you have to specify native dimensions as follows: % \begin{quote} @@ -267,9 +278,9 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % The \Gm\ package will be also useful when you have to set page layout % obeying the following strict instructions: for example, % \begin{quote}\slshape -% The total allowable width of the text area is 6.5 inches wide by 8.75 -% inches high. The top margin on each page should be 1.2 inches from -% the top edge of the page. The left margin should be 0.9 inch from +% The total allowable width of the text area is $6.5$ inches wide by $8.75$ +% inches high. The top margin on each page should be $1.2$ inches from +% the top edge of the page. The left margin should be $0.9$ inch from % the left edge. The footer with page number should be at the bottom % of the text area. % \end{quote} @@ -300,8 +311,8 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % \gpart{margins}\\ % \gpart{total body}&:&\gpart{body} (text area)\quad % (optional \gpart{head}, \gpart{foot} and \gpart{marginpar})\\ -% \gpart{margins}&:&\gpart{left}(\gpart{inner}), -% \gpart{right}(\gpart{outer}), \gpart{top} and \gpart{bottom} +% \gpart{margins}&:&\gpart{left} (\gpart{inner}), +% \gpart{right} (\gpart{outer}), \gpart{top} and \gpart{bottom} % \end{tabular} % \end{quote} % Each margin is measured from the corresponding edge of a paper. @@ -374,7 +385,7 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % \caption[Dimension names for \Gm]{% % \begin{minipage}[t]{.8\textwidth}\raggedright\small % Dimension names used in the \Gm\ package. -% |width|=|textwidth| and |height|=|textheight| by default. +% |width| $=$ |textwidth| and |height| $=$ |textheight| by default. % |left|, |right|, |top| and |bottom| are margins. % If margins on verso pages are swapped by |twoside| option, % margins specified by |left| and |right| options @@ -388,8 +399,8 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % The total body |width| and |height| would be defined: % \begin{eqnarray} % \label{eq:width} -% |width| &:=& |textwidth| \quad( + |marginparsep| + |marginparwidth| )\\ -% |height| &:=& |textheight| \quad(+ |headheight| + |headsep| + |footskip| ) +% |width| &:=& |textwidth| \quad( +\> |marginparsep| + |marginparwidth| )\\ +% |height| &:=& |textheight| \quad(+\> |headheight| + |headsep| + |footskip| ) % \label{eq:height} % \end{eqnarray} % In Equation (\ref{eq:width}) |width:=textwidth| by default, @@ -655,9 +666,9 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % % \section{Option details} % -% This section describes all the options available in \Gm. +% This section describes all options available in \Gm. % Options with a dagger $^\dagger$ are not available -% as a argument of \cs{newgeometry} (See Section~\ref{sec:midchange}). +% as arguments of \cs{newgeometry} (See Section~\ref{sec:midchange}). % % \subsection{Paper size}\label{sec:paper} % @@ -670,15 +681,17 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % \item[\onlypre \vtop{ % \hbox{a0paper, a1paper, a2paper, a3paper, a4paper, a5paper, a6paper,} % \hbox{b0paper, b1paper, b2paper, b3paper, b4paper, b5paper, b6paper,} +% \hbox{c0paper, c1paper, c2paper, c3paper, c4paper, c5paper, c6paper,} % \hbox{b0j, b1j, b2j, b3j, b4j, b5j, b6j,} % \hbox{ansiapaper, ansibpaper, ansicpaper, ansidpaper, ansiepaper,} % \hbox{letterpaper, executivepaper, legalpaper}}]~\\[1ex] % specifies paper name. The value part is ignored even if any. % For example, the followings have the same effect: % |a5paper|, |a5paper=true|, |a5paper=false| and so forth. -% |a[0-6]paper| and |b[0-6]paper| are ISO A and B series of paper sizes. -% The JIS (Japanese Industrial Standards) A-series is identical to the ISO A-series, -% but the JIS B-series is different from the ISO B-series. +% |a[0-6]paper|, |b[0-6]paper| and |c[0-6]paper| are ISO A, B and C +% series of paper sizes respectively. +% The JIS (Japanese Industrial Standards) A-series is identical to the +% ISO A-series, but the JIS B-series is different from the ISO B-series. % |b[0-6]j| should be used for the JIS B-series. % \item[\onlypre screen] a special paper size with (W,H) = (225mm,180mm). % For presentation with PC and video projector, ``|screen,centering|'' @@ -714,7 +727,7 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % |layout| and |paper| is. % \begin{Options} % \item[layout] specifies the layout size by paper -% name. |layout=|\meta{paper-name}. All th paper names defined in \Gm\ +% name. |layout=|\meta{paper-name}. All the paper names defined in \Gm\ % are available. See Section~\ref{sec:paper} for details. % \item[layoutwidth] width of the layout. |layoutwidth=|\meta{length}. % \item[layoutheight] height of the layout. |layoutheight=|\meta{length}. @@ -1148,12 +1161,12 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % \item[\onlypre pdftex] sets \cs{pdfpagewidth} and \cs{pdfpageheight} % internally. % \item[\onlypre xetex] is the same as |pdftex| except for ignoring -% |\pdf{h,v}origin| undefined in XeLaTeX. This option is introduced in -% the version 5. Note that `geometry.cfg' in TeXLive, which disables the +% |\pdf{h,v}origin| undefined in \XeLaTeX{}. This option is introduced in +% the version 5. Note that `geometry.cfg' in \TeX{} Live, which disables the % auto-detection routine and sets |pdftex|, is no longer necessary, % but has no problem even though it's left undeleted. -% Instead of |xetex|, you can specify |dvipdfm| with XeLaTeX -% if you want to use specials of dvipdfm XeTeX supports. +% Instead of |xetex|, you can specify |dvipdfm| with \XeLaTeX{} +% if you want to use specials of dvipdfm \XeTeX{} supports. % \item[\onlypre vtex] sets dimensions \cs{mediawidth} and \cs{mediaheight} % for V\TeX. When this driver is selected (explicitly or % automatically), \Gm\ will auto-detect which output mode @@ -1200,11 +1213,12 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % not `true' but magnified. If you want to set exact margins, you should % set like ``\texttt{mag=1440, margin=10truept, truedimen}'' instead. % \item[\onlypre pass] disables all of the geometry options and calculations -% except |verbose| and |showframe|. It can be used for checking -% out the page layout of the documentclass, other packages and manual -% settings without \Gm. +% except |verbose| and |showframe|. It is order-independent and can be +% used for checking out the page layout of the documentclass, other +% packages and manual settings without \Gm. % \item[\onlypre showframe] shows visible frames for the text area and page, % and the lines for the head and foot on the first page. +% \item[\onlypre showcrop] prints cross-shape cropmarks at each corner. % \end{Options} % % \section{Processing options}\label{sec:process} @@ -1329,8 +1343,8 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % Figure~\ref{fig:specrule} shows schematically how many specification % patterns exist and how to solve the ambiguity of the % specifications. Each axis shows the numbers of lengths -% explicitly specified for body and margins. \Ss(m,b) presents the -% specification with a set of numbers (margin,body)=(m,b). +% explicitly specified for body and margins. \Ss($m$,$b$) presents the +% specification with a set of numbers $(\gpart{margin},\gpart{body})=(m,b)$. % % For example, the specification |width=14cm, left=3cm| is categorized % into \Ss(1,1), which is an adequate specification. If you add @@ -1347,7 +1361,7 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % {\unitlength=1pt % \begin{picture}(400,150)(40,0) % \put(1,49){\makebox(90,49)[r]{\large 0}} -% \put(1,1){\makebox(70,99)[r]{\large body}} +% \put(1,1){\makebox(70,99)[r]{\large \gpart{body}}} % \put(1,1){\makebox(90,49)[r]{\large 1}} % \put(100,100){\makebox(99,20){\large 0}} % \put(100,50){\framebox(99,49){}} @@ -1360,7 +1374,7 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % \put(100,0){\framebox(99,49){}} % \put(100,2){\makebox(99,15){\Ss(0,1)}} % \put(100,0){\makebox(99,49){use |marginratio|}} -% \put(200,120){\makebox(99,12){\large margin}} +% \put(200,120){\makebox(99,12){\large \gpart{margin}}} % \put(200,100){\makebox(99,20){\large 1}} % \put(200,50){\framebox(99,49){use |scale|}} % \put(200,55){\makebox(89,10)[r]{\scriptsize\shortstack[l]{if |ratio|\\specified}}} @@ -1374,10 +1388,10 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % \put(225,25){\line(-3,-1){12}} % \put(225,25){\line(-3,1){12}}} % \put(200,80){\makebox(99,15){\Ss(1,0)}} -% \put(200,0){\framebox(99,49){\textcolor{red}{\textsl{solvable}}}} +% \put(200,0){\framebox(99,49){\textcolor{red}{\textit{solvable}}}} % \put(300,100){\makebox(99,20){\large 2}} % \put(300,80){\makebox(99,15){\Ss(2,0)}} -% \put(300,50){\framebox(99,49){\textcolor{red}{\textsl{solvable}}}} +% \put(300,50){\framebox(99,49){\textcolor{red}{\textit{solvable}}}} % \put(300,0){\framebox(99,49){forget |body|}} % \put(300,2){\makebox(99,15){\Ss(2,1)}} % {\linethickness{1pt}% @@ -1393,8 +1407,8 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % \begin{minipage}[t]{.7\textwidth}\raggedright\small % Specifications \Ss(0,0) to \Ss(2,1) and the completion rules % (arrows). The horizonal and vertical denote the number of explicitly -% specified lengths for margin and body respectively. \Ss(m,b) denote a -% specification with a set of the numbers (margin,body)=(m,b). +% specified lengths for margin and body respectively. \Ss($m$,$b$) denote a +% specification with a set of the numbers $(\gpart{margin},\gpart{body})=(m,b)$. % \end{minipage}} % \label{fig:specrule} % \end{figure} @@ -1402,7 +1416,7 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % \begin{Spec} % \item[\Ss(0,0)] % Nothing is specified. The \Gm\ package sets \gpart{body} with the -% default |scale| ($=$0.7). \\ For example, |width| is set to be +% default |scale| ($=0.7$). \\ For example, |width| is set to be % |0.7\paperwidth|. Thus \Ss(0,0) goes to \Ss(0,1). See \Ss(0,1). % \bigskip % @@ -1455,7 +1469,7 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % \item \textbf{If the margin ratio is specified}, such as % |hmarginratio={1:2}|, |vratio={3:4}| and so forth, % \Gm\ sets the other% margin with the specified margin ratio. -% For example, if a set of options ``|top=2.4cm, vratio={3:4}|'' is +% For example, if a set of options ``|top=2.4cm,vratio={3:4}|'' is % specified, \Gm\ sets |bottom| to be |3.2cm| calculating % \begin{center} % $|bottom|= |top|/3\times4 = 3.2\textrm{cm}$ @@ -1491,7 +1505,7 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % in the middle of the document. Unlike \cs{geometry} in the preamble, % \cs{newgeometry} is available only after |\begin{document}|, % resets all the options ever specified except for the -% papersize-related options: |landscape|,|portrait|, and paper size +% papersize-related options: |landscape|, |portrait|, and paper size % options (such as |papersize|, |paper=a4paper| and so forth), which % can't be changed with \cs{newgeometry}. % @@ -1504,7 +1518,7 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % % Below is an example of changing layout mid-document. The layout L1 % specified with |hmargin=3cm| (|left| and |right| margins are |3cm| -% long) is changed to L2 with |left=3cm|,|right=1cm| and +% long) is changed to L2 with |left=3cm|, |right=1cm| and % |bottom=0.1cm|. The layout L1 is restored with % \cs{restoregeometry}. % \begin{center} @@ -1609,7 +1623,7 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % \item |twoside, bindingoffset=1cm| % \end{itemize} % In this case, |textwidth| is shorter than that of the default twosided -% document by $0.7\times|1cm|$ ($=$|0.7cm|) because the default width of +% document by $0.7\times|1cm|$ ($=|0.7cm|$) because the default width of % \gpart{body} is set with |scale=0.7| (which means % $|width|=0.7|\paperwidth|$). % @@ -1915,7 +1929,7 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % \begin{macrocode} \def\Gm@savelength#1{% \g@addto@macro\Gm@restore{\expandafter\noexpand\expandafter\csname - #1\endcsname\expandafter=\expandafter\the\csname #1\endcsname\relax}} + #1\endcsname\expandafter=\expandafter\the\csname #1\endcsname\relax}}% % \end{macrocode} % \end{macro} % \begin{macro}{\Gm@saveboolean} @@ -1957,6 +1971,8 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. \Gm@savelength{columnsep}% \Gm@savelength{hoffset}% \Gm@savelength{voffset} + \Gm@savelength{Gm@layoutwidth}% + \Gm@savelength{Gm@layoutheight}% \Gm@savelength{Gm@layouthoffset}% \Gm@savelength{Gm@layoutvoffset}% \Gm@saveboolean{@twocolumn}% @@ -2081,11 +2097,11 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % with \textsf{calc} package. % \begin{macrocode} \def\Gm@defbylen#1#2{% - \setlength\@tempdima{#2}% - \expandafter\edef\csname Gm@#1\endcsname{\the\@tempdima}}% + \begingroup\setlength\@tempdima{#2}% + \expandafter\xdef\csname Gm@#1\endcsname{\the\@tempdima}\endgroup}% \def\Gm@defbycnt#1#2{% - \setcounter{Gm@tempcnt}{#2}% - \expandafter\edef\csname Gm@#1\endcsname{\the\value{Gm@tempcnt}}}% + \begingroup\setcounter{Gm@tempcnt}{#2}% + \expandafter\xdef\csname Gm@#1\endcsname{\the\value{Gm@tempcnt}}\endgroup}% % \end{macrocode} % \end{macro}\end{macro} % \begin{macro}{\Gm@set@ratio} @@ -2209,9 +2225,9 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % \begin{macrocode} \ifcase\@tempcnta \if#1h - \edef\Gm@width{\Gm@Dhscale\Gm@layoutwidth}% + \Gm@defbylen{width}{\Gm@Dhscale\Gm@layoutwidth}% \else - \edef\Gm@height{\Gm@Dvscale\Gm@layoutheight}% + \Gm@defbylen{height}{\Gm@Dvscale\Gm@layoutheight}% \fi \Gm@detiiandiii{#2}{#3}{#4}% % \end{macrocode} @@ -2220,14 +2236,14 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. \or \ifx\Gm@mratio\@undefined \if#1h - \edef\Gm@width{\Gm@Dhscale\Gm@layoutwidth}% + \Gm@defbylen{width}{\Gm@Dhscale\Gm@layoutwidth}% \else - \edef\Gm@height{\Gm@Dvscale\Gm@layoutheight}% + \Gm@defbylen{height}{\Gm@Dvscale\Gm@layoutheight}% \fi \setlength\@tempdimc{\@nameuse{Gm@#4}}% \Gm@detiiandiii{#2}{#3}{#4}% \expandafter\let\csname Gm@#2\endcsname\@undefined - \expandafter\edef\csname Gm@#4\endcsname{\the\@tempdimc}% + \Gm@defbylen{#4}{\@tempdimc}% \else \Gm@setbyratio[f]{#1}{#4}{#3}% \fi @@ -2246,14 +2262,14 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. \or \ifx\Gm@mratio\@undefined \if#1h - \edef\Gm@width{\Gm@Dhscale\Gm@layoutwidth}% + \Gm@defbylen{width}{\Gm@Dhscale\Gm@layoutwidth}% \else - \edef\Gm@height{\Gm@Dvscale\Gm@layoutheight}% + \Gm@defbylen{height}{\Gm@Dvscale\Gm@layoutheight}% \fi \setlength\@tempdimc{\@nameuse{Gm@#3}}% \Gm@detiiandiii{#2}{#4}{#3}% \expandafter\let\csname Gm@#2\endcsname\@undefined - \expandafter\edef\csname Gm@#3\endcsname{\the\@tempdimc}% + \Gm@defbylen{#3}{\@tempdimc}% \else \Gm@setbyratio[b]{#1}{#3}{#4}% \fi @@ -2411,6 +2427,13 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. \@namedef{Gm@b4paper}#1{\Gm@setsize{#1}(250,353){mm}}% ISO B4 \@namedef{Gm@b5paper}#1{\Gm@setsize{#1}(176,250){mm}}% ISO B5 \@namedef{Gm@b6paper}#1{\Gm@setsize{#1}(125,176){mm}}% ISO B6 +\@namedef{Gm@c0paper}#1{\Gm@setsize{#1}(917,1297){mm}}% ISO C0 +\@namedef{Gm@c1paper}#1{\Gm@setsize{#1}(648,917){mm}}% ISO C1 +\@namedef{Gm@c2paper}#1{\Gm@setsize{#1}(458,648){mm}}% ISO C2 +\@namedef{Gm@c3paper}#1{\Gm@setsize{#1}(324,458){mm}}% ISO C3 +\@namedef{Gm@c4paper}#1{\Gm@setsize{#1}(229,324){mm}}% ISO C4 +\@namedef{Gm@c5paper}#1{\Gm@setsize{#1}(162,229){mm}}% ISO C5 +\@namedef{Gm@c6paper}#1{\Gm@setsize{#1}(114,162){mm}}% ISO C6 \@namedef{Gm@b0j}#1{\Gm@setsize{#1}(1030,1456){mm}}% JIS B0 \@namedef{Gm@b1j}#1{\Gm@setsize{#1}(728,1030){mm}}% JIS B1 \@namedef{Gm@b2j}#1{\Gm@setsize{#1}(515,728){mm}}% JIS B2 @@ -2460,6 +2483,13 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. \define@key{Gm}{b4paper}[true]{\Gm@setpaper@ifpre{b4paper}}% \define@key{Gm}{b5paper}[true]{\Gm@setpaper@ifpre{b5paper}}% \define@key{Gm}{b6paper}[true]{\Gm@setpaper@ifpre{b6paper}}% +\define@key{Gm}{c0paper}[true]{\Gm@setpaper@ifpre{c0paper}}% +\define@key{Gm}{c1paper}[true]{\Gm@setpaper@ifpre{c1paper}}% +\define@key{Gm}{c2paper}[true]{\Gm@setpaper@ifpre{c2paper}}% +\define@key{Gm}{c3paper}[true]{\Gm@setpaper@ifpre{c3paper}}% +\define@key{Gm}{c4paper}[true]{\Gm@setpaper@ifpre{c4paper}}% +\define@key{Gm}{c5paper}[true]{\Gm@setpaper@ifpre{c5paper}}% +\define@key{Gm}{c6paper}[true]{\Gm@setpaper@ifpre{c6paper}}% \define@key{Gm}{b0j}[true]{\Gm@setpaper@ifpre{b0j}}% \define@key{Gm}{b1j}[true]{\Gm@setpaper@ifpre{b1j}}% \define@key{Gm}{b2j}[true]{\Gm@setpaper@ifpre{b2j}}% @@ -2485,11 +2515,11 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % Direct specification for paper size is also possible. % \begin{macrocode} \define@key{Gm}{paperwidth}{\ifGm@preamble{paperwidth}{% - \Gm@setlength\paperwidth{#1}}}% + \def\Gm@paper{custom}\Gm@setlength\paperwidth{#1}}}% \define@key{Gm}{paperheight}{\ifGm@preamble{paperheight}{% - \Gm@setlength\paperheight{#1}}}% + \def\Gm@paper{custom}\Gm@setlength\paperheight{#1}}}% \define@key{Gm}{papersize}{\ifGm@preamble{papersize}{% - \Gm@branch{#1}{paperwidth}{paperheight}}}% + \def\Gm@paper{custom}\Gm@branch{#1}{paperwidth}{paperheight}}}% % \end{macrocode} % \end{key}\end{key}\end{key} % \begin{key}{Gm}{layout} @@ -2954,8 +2984,8 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. \setlength\paperheight{\@tempdima}% \fi \ifGm@layout\else - \let\Gm@layoutwidth\paperwidth - \let\Gm@layoutheight\paperheight + \setlength\Gm@layoutwidth{\paperwidth}% + \setlength\Gm@layoutheight{\paperheight}% \fi}% % \end{macrocode} % \end{macro} @@ -3035,9 +3065,9 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. \ifGm@hbody \ifx\Gm@width\@undefined \ifx\Gm@hscale\@undefined - \edef\Gm@width{\Gm@Dhscale\Gm@layoutwidth}% + \Gm@defbylen{width}{\Gm@Dhscale\Gm@layoutwidth}% \else - \edef\Gm@width{\Gm@hscale\Gm@layoutwidth}% + \Gm@defbylen{width}{\Gm@hscale\Gm@layoutwidth}% \fi \fi \ifx\Gm@textwidth\@undefined\else @@ -3055,9 +3085,9 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. \ifGm@vbody \ifx\Gm@height\@undefined \ifx\Gm@vscale\@undefined - \edef\Gm@height{\Gm@Dvscale\Gm@layoutheight}% + \Gm@defbylen{height}{\Gm@Dvscale\Gm@layoutheight}% \else - \edef\Gm@height{\Gm@vscale\Gm@layoutheight}% + \Gm@defbylen{height}{\Gm@vscale\Gm@layoutheight}% \fi \fi \ifx\Gm@lines\@undefined\else @@ -3264,10 +3294,6 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % |\Gm@width| and |\Gm@height| are expanded to get the real size. % \begin{macrocode} \def\Gm@showparams#1{% - \ifGm@pass\else - \setlength\@tempdima{\Gm@width}\edef\Gm@width{\the\@tempdima}% - \setlength\@tempdima{\Gm@height}\edef\Gm@height{\the\@tempdima}% - \fi \ifGm@verbose\expandafter\typeout\else\expandafter\wlog\fi {\Gm@logcontent{#1}}}% \def\Gm@showdim#1{* \string#1=\the#1^^J}% @@ -3280,20 +3306,21 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % \begin{macrocode} \def\Gm@logcontent#1{% *geometry* verbose mode - [ #1 ] result:^^J% - \ifGm@pass * pass (ignores the geometry layout)^^J% + \ifGm@pass * pass: disregarded the geometry package!^^J% \else - * driver: \if\Gm@driver\relax \else\Gm@driver\fi^^J% - * paper: \ifx\Gm@paper\@undefined\the\paperwidth, - \the\paperheight\space(class default)\else\Gm@paper\fi^^J% - * layout: \ifGm@layout \the\Gm@layoutwidth, \the\Gm@layoutheight - \else\ifx\Gm@paper\@undefined\the\paperwidth, - \the\paperheight\else\Gm@paper\fi\fi^^J% + * driver: \if\Gm@driver\else\Gm@driver\fi^^J% + * paper: \ifx\Gm@paper\@undefined\else\Gm@paper\fi^^J% + * layout: \ifGm@layout\else\fi^^J% + \ifGm@layout + * layout(width,height): (\the\Gm@layoutwidth,\the\Gm@layoutheight)^^J% + \fi + * layoutoffset:(h,v)=(\the\Gm@layouthoffset,\the\Gm@layoutvoffset)^^J% \@ifundefined{Gm@lines}{}{* lines: \Gm@lines^^J}% \@ifundefined{Gm@hmarginratio}{}{* hratio: \Gm@hmarginratio^^J}% \@ifundefined{Gm@vmarginratio}{}{* vratio: \Gm@vmarginratio^^J}% \ifdim\Gm@bindingoffset=\z@\else * bindingoffset: \the\Gm@bindingoffset^^J\fi - * switch(es): % + * modes: % \Gm@showbool{landscape}% \Gm@showbool{includehead}% \Gm@showbool{includefoot}% @@ -3315,6 +3342,7 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. \Gm@showdim{\topmargin}% \Gm@showdim{\headheight}% \Gm@showdim{\headsep}% + \Gm@showdim{\topskip}% \Gm@showdim{\footskip}% \Gm@showdim{\marginparwidth}% \Gm@showdim{\marginparsep}% @@ -3327,7 +3355,7 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. * \string\@twoside\if@twoside true\else false\fi^^J% * \string\@mparswitch\if@mparswitch true\else false\fi^^J% * \string\@reversemargin\if@reversemargin true\else false\fi^^J% - * (1in=72.27pt, 1cm=28.453pt)^^J}% + * (1in=72.27pt=25.4mm, 1cm=28.453pt)^^J}% % \end{macrocode} % \end{macro} % @@ -3335,22 +3363,26 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % \begin{macrocode} \def\Gm@cropmark(#1,#2,#3,#4){% \begin{picture}(0,0) - \setlength\unitlength{1truemm}\thinlines - \put(0,0){\line(#1,#2){5}} - \put(0,0){\line(#3,#4){5}} + \setlength\unitlength{1truemm}% + \linethickness{0.2pt}% + \put(0,0){\line(#1,#2){5}}% + \put(0,0){\line(#3,#4){5}}% \end{picture}}% +\providecommand*\vb@xt@{\vbox to}% +\def\Gm@vrule{\vrule width 0.2pt height\textheight depth\z@}% +\def\Gm@hrule{\hrule height 0.2pt depth\z@ width\textwidth}% +\def\Gm@hruled{\hrule height\z@ depth0.2pt width\textwidth}% \newcommand*{\Gm@vrules@mpi}{% - \hb@xt@\@tempdima{\llap{\vrule height\textheight}\ignorespaces - \hskip \textwidth\vrule height\textheight\hskip \marginparsep - \llap{\vrule height\textheight}\hfil\vrule height\textheight}}% + \hb@xt@\@tempdima{\llap{\Gm@vrule}\ignorespaces + \hskip \textwidth\Gm@vrule\hskip \marginparsep + \llap{\Gm@vrule}\hfil\Gm@vrule}}% \newcommand*{\Gm@vrules@mpii}{% \hb@xt@\@tempdima{\hskip-\marginparwidth\hskip-\marginparsep - \llap{\vrule height\textheight}\ignorespaces - \hskip \marginparwidth\rlap{\vrule height\textheight}\hskip \marginparsep - \llap{\vrule height\textheight}\hskip\textwidth\rlap{\vrule height\textheight}\hss}}% -\providecommand*\vb@xt@{\vbox to}% + \llap{\Gm@vrule}\ignorespaces + \hskip \marginparwidth\rlap{\Gm@vrule}\hskip \marginparsep + \llap{\Gm@vrule}\hskip\textwidth\rlap{\Gm@vrule}\hss}}% \newcommand*{\Gm@pageframes}{% - \vb@xt@\z@{\baselineskip\z@skip\lineskip\z@skip\lineskiplimit\z@% + \vb@xt@\z@{% \ifGm@showcrop \vb@xt@\z@{\vskip-1\Gm@truedimen in\vskip\Gm@layoutvoffset% \hb@xt@\z@{\hskip-1\Gm@truedimen in\hskip\Gm@layouthoffset% @@ -3372,9 +3404,9 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. \fi \moveright\@themargin% \vb@xt@\z@{% - \vskip\topmargin\vb@xt@\z@{\vss\hrule width\textwidth}% - \vskip\headheight\vb@xt@\z@{\vss\hrule width\textwidth}% - \vskip\headsep\vb@xt@\z@{\vss\hrule width\textwidth} + \vskip\topmargin\vb@xt@\z@{\vss\Gm@hrule}% + \vskip\headheight\vb@xt@\z@{\vss\Gm@hruled}% + \vskip\headsep\vb@xt@\z@{\vss\Gm@hrule}% \@tempdima\textwidth \advance\@tempdima by \marginparsep \advance\@tempdima by \marginparwidth @@ -3387,26 +3419,11 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. \else \Gm@vrules@mpi \fi - \vb@xt@\z@{\vss\hrule width\textwidth}% - \vskip\footskip\vb@xt@\z@{\vss\hrule width\textwidth}% + \vb@xt@\z@{\vss\Gm@hrule}% + \vskip\footskip\vb@xt@\z@{\vss\Gm@hruled}% \vss}% \fi% }}% -\let\Gm@shipout\shipout -\newcommand*{\gm@shipi}{% - \ifvoid\@cclv\expandafter\aftergroup\fi\gm@shipii}% -\newcommand*\gm@shipii{% - \ifvoid\@cclv - \Gm@shipout\box\@cclv - \else - \ifGm@showframe - \Gm@shipout\vbox{\Gm@pageframes\ifvbox\@cclv\unvbox\else\box\fi\@cclv}% - \else\ifGm@showcrop - \Gm@shipout\vbox{\Gm@pageframes\ifvbox\@cclv\unvbox\else\box\fi\@cclv}% - \else - \Gm@shipout\box\@cclv - \fi\fi - \fi} % \end{macrocode} % % \begin{macro}{\ProcessOptionsKV} @@ -3591,14 +3608,21 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. \fi \fi\fi % \end{macrocode} -% If |showframe=true|, page frames and lines are showed -% on the first page. +% Page frames are shipped out when |showframe=true|, cropmarks for |showcrop=true| +% on each page. The \textsf{atbegshi} package is used for overloading |\shipout|. % \begin{macrocode} + \@tempswafalse \ifGm@showframe - \renewcommand*{\shipout}{\afterassignment\gm@shipi\setbox\@cclv=} + \@tempswatrue \else\ifGm@showcrop - \renewcommand*{\shipout}{\afterassignment\gm@shipi\setbox\@cclv=} + \@tempswatrue \fi\fi + \if@tempswa + \RequirePackage{atbegshi}% + \AtBeginShipout{\setbox\AtBeginShipoutBox=\vbox{% + \baselineskip\z@skip\lineskip\z@skip\lineskiplimit\z@ + \Gm@pageframes\box\AtBeginShipoutBox}}% + \fi % \end{macrocode} % The layout dimensions for \cs{restoregeometry} are saved % at the end of the \cs{AtBeginDocument}. @@ -3661,7 +3685,7 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % It would reset the options specified in the preamble except for % paper size options and |\mag|. % \begin{macrocode} -\newcommand\newgeometry[1]{% +\newcommand{\newgeometry}[1]{% \clearpage \Gm@restore@org \Gm@initnewgm @@ -3678,7 +3702,7 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % The macro restores the resulting layout specified in the preamble, % namely the first-page layout right after |\begin{document}|. % \begin{macrocode} -\newcommand\restoregeometry{% +\newcommand{\restoregeometry}{% \clearpage \Gm@restore@pkg \Gm@changelayout}% @@ -3689,7 +3713,7 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % with the argument. The saved layout can be loaded % with |\loadgeometry{|\meta{name}|}|. % \begin{macrocode} -\newcommand*\savegeometry[1]{% +\newcommand*{\savegeometry}[1]{% \Gm@save \expandafter\edef\csname Gm@restore@@#1\endcsname{\Gm@restore}}% % \end{macrocode} @@ -3699,7 +3723,7 @@ the derived files: geometry.{sty,ins,drv}, geometry-samples.tex. % If the name is not found, the macro would warn it and % do nothing for the layout. % \begin{macrocode} -\newcommand*\loadgeometry[1]{% +\newcommand*{\loadgeometry}[1]{% \clearpage \@ifundefined{Gm@restore@@#1}{% \PackageError{geometry}{% diff --git a/Master/texmf-dist/source/latex/geometry/geometry.ins b/Master/texmf-dist/source/latex/geometry/geometry.ins index 6b9f2ecf4ec..ec50cc41ccb 100644 --- a/Master/texmf-dist/source/latex/geometry/geometry.ins +++ b/Master/texmf-dist/source/latex/geometry/geometry.ins @@ -26,7 +26,7 @@ \input docstrip.tex \Msg{************************************************************************} \Msg{* Installation} -\Msg{* Package: geometry 2010/03/13 v5.3 Page Geometry} +\Msg{* Package: geometry 2010/07/08 v5.4 Page Geometry} \Msg{************************************************************************} \keepsilent diff --git a/Master/texmf-dist/tex/latex/geometry/geometry.sty b/Master/texmf-dist/tex/latex/geometry/geometry.sty index 73ff861c1ab..c2f3961f570 100644 --- a/Master/texmf-dist/tex/latex/geometry/geometry.sty +++ b/Master/texmf-dist/tex/latex/geometry/geometry.sty @@ -25,7 +25,7 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{geometry} - [2010/03/13 v5.3 Page Geometry] + [2010/07/08 v5.4 Page Geometry] \RequirePackage{keyval}% \RequirePackage{ifpdf}% \RequirePackage{ifvtex}% @@ -79,7 +79,7 @@ \edef\Gm@orgph{\the\paperheight}% \def\Gm@savelength#1{% \g@addto@macro\Gm@restore{\expandafter\noexpand\expandafter\csname - #1\endcsname\expandafter=\expandafter\the\csname #1\endcsname\relax}} + #1\endcsname\expandafter=\expandafter\the\csname #1\endcsname\relax}}% \def\Gm@saveboolean#1{% \csname if#1\endcsname \g@addto@macro\Gm@restore{\expandafter\noexpand\csname #1true\endcsname}% @@ -105,6 +105,8 @@ \Gm@savelength{columnsep}% \Gm@savelength{hoffset}% \Gm@savelength{voffset} + \Gm@savelength{Gm@layoutwidth}% + \Gm@savelength{Gm@layoutheight}% \Gm@savelength{Gm@layouthoffset}% \Gm@savelength{Gm@layoutvoffset}% \Gm@saveboolean{@twocolumn}% @@ -179,11 +181,11 @@ \csname ifGm@#1\endcsname \csname Gm@#1false\endcsname\else\csname Gm@#1true\endcsname\fi}% \def\Gm@defbylen#1#2{% - \setlength\@tempdima{#2}% - \expandafter\edef\csname Gm@#1\endcsname{\the\@tempdima}}% + \begingroup\setlength\@tempdima{#2}% + \expandafter\xdef\csname Gm@#1\endcsname{\the\@tempdima}\endgroup}% \def\Gm@defbycnt#1#2{% - \setcounter{Gm@tempcnt}{#2}% - \expandafter\edef\csname Gm@#1\endcsname{\the\value{Gm@tempcnt}}}% + \begingroup\setcounter{Gm@tempcnt}{#2}% + \expandafter\xdef\csname Gm@#1\endcsname{\the\value{Gm@tempcnt}}\endgroup}% \def\Gm@sep@ratio#1:#2{\@tempcnta=#1\@tempcntb=#2}% \def\Gm@setbyratio[#1]#2#3#4{% determine #4 by ratio \expandafter\Gm@sep@ratio\Gm@mratio\relax @@ -261,22 +263,22 @@ \fi \ifcase\@tempcnta \if#1h - \edef\Gm@width{\Gm@Dhscale\Gm@layoutwidth}% + \Gm@defbylen{width}{\Gm@Dhscale\Gm@layoutwidth}% \else - \edef\Gm@height{\Gm@Dvscale\Gm@layoutheight}% + \Gm@defbylen{height}{\Gm@Dvscale\Gm@layoutheight}% \fi \Gm@detiiandiii{#2}{#3}{#4}% \or \ifx\Gm@mratio\@undefined \if#1h - \edef\Gm@width{\Gm@Dhscale\Gm@layoutwidth}% + \Gm@defbylen{width}{\Gm@Dhscale\Gm@layoutwidth}% \else - \edef\Gm@height{\Gm@Dvscale\Gm@layoutheight}% + \Gm@defbylen{height}{\Gm@Dvscale\Gm@layoutheight}% \fi \setlength\@tempdimc{\@nameuse{Gm@#4}}% \Gm@detiiandiii{#2}{#3}{#4}% \expandafter\let\csname Gm@#2\endcsname\@undefined - \expandafter\edef\csname Gm@#4\endcsname{\the\@tempdimc}% + \Gm@defbylen{#4}{\@tempdimc}% \else \Gm@setbyratio[f]{#1}{#4}{#3}% \fi @@ -286,14 +288,14 @@ \or \ifx\Gm@mratio\@undefined \if#1h - \edef\Gm@width{\Gm@Dhscale\Gm@layoutwidth}% + \Gm@defbylen{width}{\Gm@Dhscale\Gm@layoutwidth}% \else - \edef\Gm@height{\Gm@Dvscale\Gm@layoutheight}% + \Gm@defbylen{height}{\Gm@Dvscale\Gm@layoutheight}% \fi \setlength\@tempdimc{\@nameuse{Gm@#3}}% \Gm@detiiandiii{#2}{#4}{#3}% \expandafter\let\csname Gm@#2\endcsname\@undefined - \expandafter\edef\csname Gm@#3\endcsname{\the\@tempdimc}% + \Gm@defbylen{#3}{\@tempdimc}% \else \Gm@setbyratio[b]{#1}{#3}{#4}% \fi @@ -389,6 +391,13 @@ \@namedef{Gm@b4paper}#1{\Gm@setsize{#1}(250,353){mm}}% ISO B4 \@namedef{Gm@b5paper}#1{\Gm@setsize{#1}(176,250){mm}}% ISO B5 \@namedef{Gm@b6paper}#1{\Gm@setsize{#1}(125,176){mm}}% ISO B6 +\@namedef{Gm@c0paper}#1{\Gm@setsize{#1}(917,1297){mm}}% ISO C0 +\@namedef{Gm@c1paper}#1{\Gm@setsize{#1}(648,917){mm}}% ISO C1 +\@namedef{Gm@c2paper}#1{\Gm@setsize{#1}(458,648){mm}}% ISO C2 +\@namedef{Gm@c3paper}#1{\Gm@setsize{#1}(324,458){mm}}% ISO C3 +\@namedef{Gm@c4paper}#1{\Gm@setsize{#1}(229,324){mm}}% ISO C4 +\@namedef{Gm@c5paper}#1{\Gm@setsize{#1}(162,229){mm}}% ISO C5 +\@namedef{Gm@c6paper}#1{\Gm@setsize{#1}(114,162){mm}}% ISO C6 \@namedef{Gm@b0j}#1{\Gm@setsize{#1}(1030,1456){mm}}% JIS B0 \@namedef{Gm@b1j}#1{\Gm@setsize{#1}(728,1030){mm}}% JIS B1 \@namedef{Gm@b2j}#1{\Gm@setsize{#1}(515,728){mm}}% JIS B2 @@ -421,6 +430,13 @@ \define@key{Gm}{b4paper}[true]{\Gm@setpaper@ifpre{b4paper}}% \define@key{Gm}{b5paper}[true]{\Gm@setpaper@ifpre{b5paper}}% \define@key{Gm}{b6paper}[true]{\Gm@setpaper@ifpre{b6paper}}% +\define@key{Gm}{c0paper}[true]{\Gm@setpaper@ifpre{c0paper}}% +\define@key{Gm}{c1paper}[true]{\Gm@setpaper@ifpre{c1paper}}% +\define@key{Gm}{c2paper}[true]{\Gm@setpaper@ifpre{c2paper}}% +\define@key{Gm}{c3paper}[true]{\Gm@setpaper@ifpre{c3paper}}% +\define@key{Gm}{c4paper}[true]{\Gm@setpaper@ifpre{c4paper}}% +\define@key{Gm}{c5paper}[true]{\Gm@setpaper@ifpre{c5paper}}% +\define@key{Gm}{c6paper}[true]{\Gm@setpaper@ifpre{c6paper}}% \define@key{Gm}{b0j}[true]{\Gm@setpaper@ifpre{b0j}}% \define@key{Gm}{b1j}[true]{\Gm@setpaper@ifpre{b1j}}% \define@key{Gm}{b2j}[true]{\Gm@setpaper@ifpre{b2j}}% @@ -438,11 +454,11 @@ \define@key{Gm}{executivepaper}[true]{\Gm@setpaper@ifpre{executivepaper}}% \define@key{Gm}{screen}[true]{\Gm@setpaper@ifpre{screen}}% \define@key{Gm}{paperwidth}{\ifGm@preamble{paperwidth}{% - \Gm@setlength\paperwidth{#1}}}% + \def\Gm@paper{custom}\Gm@setlength\paperwidth{#1}}}% \define@key{Gm}{paperheight}{\ifGm@preamble{paperheight}{% - \Gm@setlength\paperheight{#1}}}% + \def\Gm@paper{custom}\Gm@setlength\paperheight{#1}}}% \define@key{Gm}{papersize}{\ifGm@preamble{papersize}{% - \Gm@branch{#1}{paperwidth}{paperheight}}}% + \def\Gm@paper{custom}\Gm@branch{#1}{paperwidth}{paperheight}}}% \define@key{Gm}{layout}{\Gm@layouttrue\@nameuse{Gm@#1}{Gm@layout}}% \let\KV@Gm@layoutname\KV@Gm@layout \define@key{Gm}{layoutwidth}{\Gm@layouttrue\Gm@setlength\Gm@layoutwidth{#1}}% @@ -613,8 +629,8 @@ \setlength\paperheight{\@tempdima}% \fi \ifGm@layout\else - \let\Gm@layoutwidth\paperwidth - \let\Gm@layoutheight\paperheight + \setlength\Gm@layoutwidth{\paperwidth}% + \setlength\Gm@layoutheight{\paperheight}% \fi}% \def\Gm@checkmp{% \ifGm@includemp\else @@ -675,9 +691,9 @@ \ifGm@hbody \ifx\Gm@width\@undefined \ifx\Gm@hscale\@undefined - \edef\Gm@width{\Gm@Dhscale\Gm@layoutwidth}% + \Gm@defbylen{width}{\Gm@Dhscale\Gm@layoutwidth}% \else - \edef\Gm@width{\Gm@hscale\Gm@layoutwidth}% + \Gm@defbylen{width}{\Gm@hscale\Gm@layoutwidth}% \fi \fi \ifx\Gm@textwidth\@undefined\else @@ -691,9 +707,9 @@ \ifGm@vbody \ifx\Gm@height\@undefined \ifx\Gm@vscale\@undefined - \edef\Gm@height{\Gm@Dvscale\Gm@layoutheight}% + \Gm@defbylen{height}{\Gm@Dvscale\Gm@layoutheight}% \else - \edef\Gm@height{\Gm@vscale\Gm@layoutheight}% + \Gm@defbylen{height}{\Gm@vscale\Gm@layoutheight}% \fi \fi \ifx\Gm@lines\@undefined\else @@ -817,30 +833,27 @@ \typeout{*geometry* detected driver: \Gm@driver}% \fi}% \def\Gm@showparams#1{% - \ifGm@pass\else - \setlength\@tempdima{\Gm@width}\edef\Gm@width{\the\@tempdima}% - \setlength\@tempdima{\Gm@height}\edef\Gm@height{\the\@tempdima}% - \fi \ifGm@verbose\expandafter\typeout\else\expandafter\wlog\fi {\Gm@logcontent{#1}}}% \def\Gm@showdim#1{* \string#1=\the#1^^J}% \def\Gm@showbool#1{\@nameuse{ifGm@#1}#1\space\fi}% \def\Gm@logcontent#1{% *geometry* verbose mode - [ #1 ] result:^^J% - \ifGm@pass * pass (ignores the geometry layout)^^J% + \ifGm@pass * pass: disregarded the geometry package!^^J% \else - * driver: \if\Gm@driver\relax \else\Gm@driver\fi^^J% - * paper: \ifx\Gm@paper\@undefined\the\paperwidth, - \the\paperheight\space(class default)\else\Gm@paper\fi^^J% - * layout: \ifGm@layout \the\Gm@layoutwidth, \the\Gm@layoutheight - \else\ifx\Gm@paper\@undefined\the\paperwidth, - \the\paperheight\else\Gm@paper\fi\fi^^J% + * driver: \if\Gm@driver\else\Gm@driver\fi^^J% + * paper: \ifx\Gm@paper\@undefined\else\Gm@paper\fi^^J% + * layout: \ifGm@layout\else\fi^^J% + \ifGm@layout + * layout(width,height): (\the\Gm@layoutwidth,\the\Gm@layoutheight)^^J% + \fi + * layoutoffset:(h,v)=(\the\Gm@layouthoffset,\the\Gm@layoutvoffset)^^J% \@ifundefined{Gm@lines}{}{* lines: \Gm@lines^^J}% \@ifundefined{Gm@hmarginratio}{}{* hratio: \Gm@hmarginratio^^J}% \@ifundefined{Gm@vmarginratio}{}{* vratio: \Gm@vmarginratio^^J}% \ifdim\Gm@bindingoffset=\z@\else * bindingoffset: \the\Gm@bindingoffset^^J\fi - * switch(es): % + * modes: % \Gm@showbool{landscape}% \Gm@showbool{includehead}% \Gm@showbool{includefoot}% @@ -862,6 +875,7 @@ \Gm@showdim{\topmargin}% \Gm@showdim{\headheight}% \Gm@showdim{\headsep}% + \Gm@showdim{\topskip}% \Gm@showdim{\footskip}% \Gm@showdim{\marginparwidth}% \Gm@showdim{\marginparsep}% @@ -874,25 +888,29 @@ * \string\@twoside\if@twoside true\else false\fi^^J% * \string\@mparswitch\if@mparswitch true\else false\fi^^J% * \string\@reversemargin\if@reversemargin true\else false\fi^^J% - * (1in=72.27pt, 1cm=28.453pt)^^J}% + * (1in=72.27pt=25.4mm, 1cm=28.453pt)^^J}% \def\Gm@cropmark(#1,#2,#3,#4){% \begin{picture}(0,0) - \setlength\unitlength{1truemm}\thinlines - \put(0,0){\line(#1,#2){5}} - \put(0,0){\line(#3,#4){5}} + \setlength\unitlength{1truemm}% + \linethickness{0.2pt}% + \put(0,0){\line(#1,#2){5}}% + \put(0,0){\line(#3,#4){5}}% \end{picture}}% +\providecommand*\vb@xt@{\vbox to}% +\def\Gm@vrule{\vrule width 0.2pt height\textheight depth\z@}% +\def\Gm@hrule{\hrule height 0.2pt depth\z@ width\textwidth}% +\def\Gm@hruled{\hrule height\z@ depth0.2pt width\textwidth}% \newcommand*{\Gm@vrules@mpi}{% - \hb@xt@\@tempdima{\llap{\vrule height\textheight}\ignorespaces - \hskip \textwidth\vrule height\textheight\hskip \marginparsep - \llap{\vrule height\textheight}\hfil\vrule height\textheight}}% + \hb@xt@\@tempdima{\llap{\Gm@vrule}\ignorespaces + \hskip \textwidth\Gm@vrule\hskip \marginparsep + \llap{\Gm@vrule}\hfil\Gm@vrule}}% \newcommand*{\Gm@vrules@mpii}{% \hb@xt@\@tempdima{\hskip-\marginparwidth\hskip-\marginparsep - \llap{\vrule height\textheight}\ignorespaces - \hskip \marginparwidth\rlap{\vrule height\textheight}\hskip \marginparsep - \llap{\vrule height\textheight}\hskip\textwidth\rlap{\vrule height\textheight}\hss}}% -\providecommand*\vb@xt@{\vbox to}% + \llap{\Gm@vrule}\ignorespaces + \hskip \marginparwidth\rlap{\Gm@vrule}\hskip \marginparsep + \llap{\Gm@vrule}\hskip\textwidth\rlap{\Gm@vrule}\hss}}% \newcommand*{\Gm@pageframes}{% - \vb@xt@\z@{\baselineskip\z@skip\lineskip\z@skip\lineskiplimit\z@% + \vb@xt@\z@{% \ifGm@showcrop \vb@xt@\z@{\vskip-1\Gm@truedimen in\vskip\Gm@layoutvoffset% \hb@xt@\z@{\hskip-1\Gm@truedimen in\hskip\Gm@layouthoffset% @@ -914,9 +932,9 @@ \fi \moveright\@themargin% \vb@xt@\z@{% - \vskip\topmargin\vb@xt@\z@{\vss\hrule width\textwidth}% - \vskip\headheight\vb@xt@\z@{\vss\hrule width\textwidth}% - \vskip\headsep\vb@xt@\z@{\vss\hrule width\textwidth} + \vskip\topmargin\vb@xt@\z@{\vss\Gm@hrule}% + \vskip\headheight\vb@xt@\z@{\vss\Gm@hruled}% + \vskip\headsep\vb@xt@\z@{\vss\Gm@hrule}% \@tempdima\textwidth \advance\@tempdima by \marginparsep \advance\@tempdima by \marginparwidth @@ -929,26 +947,11 @@ \else \Gm@vrules@mpi \fi - \vb@xt@\z@{\vss\hrule width\textwidth}% - \vskip\footskip\vb@xt@\z@{\vss\hrule width\textwidth}% + \vb@xt@\z@{\vss\Gm@hrule}% + \vskip\footskip\vb@xt@\z@{\vss\Gm@hruled}% \vss}% \fi% }}% -\let\Gm@shipout\shipout -\newcommand*{\gm@shipi}{% - \ifvoid\@cclv\expandafter\aftergroup\fi\gm@shipii}% -\newcommand*\gm@shipii{% - \ifvoid\@cclv - \Gm@shipout\box\@cclv - \else - \ifGm@showframe - \Gm@shipout\vbox{\Gm@pageframes\ifvbox\@cclv\unvbox\else\box\fi\@cclv}% - \else\ifGm@showcrop - \Gm@shipout\vbox{\Gm@pageframes\ifvbox\@cclv\unvbox\else\box\fi\@cclv}% - \else - \Gm@shipout\box\@cclv - \fi\fi - \fi} \def\ProcessOptionsKV{\@ifnextchar[%] {\@ProcessOptionsKV}{\@ProcessOptionsKV[]}}% \def\@ProcessOptionsKV[#1]#2{% @@ -1052,11 +1055,18 @@ \AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}% \fi \fi\fi + \@tempswafalse \ifGm@showframe - \renewcommand*{\shipout}{\afterassignment\gm@shipi\setbox\@cclv=} + \@tempswatrue \else\ifGm@showcrop - \renewcommand*{\shipout}{\afterassignment\gm@shipi\setbox\@cclv=} + \@tempswatrue \fi\fi + \if@tempswa + \RequirePackage{atbegshi}% + \AtBeginShipout{\setbox\AtBeginShipoutBox=\vbox{% + \baselineskip\z@skip\lineskip\z@skip\lineskiplimit\z@ + \Gm@pageframes\box\AtBeginShipoutBox}}% + \fi \Gm@save \edef\Gm@restore@pkg{\Gm@restore}% \ifGm@verbose\ifGm@pass\else\Gm@checkmp\fi\fi @@ -1081,7 +1091,7 @@ \fi% \setlength{\hsize}{\columnwidth}% \setlength{\linewidth}{\hsize}}% -\newcommand\newgeometry[1]{% +\newcommand{\newgeometry}[1]{% \clearpage \Gm@restore@org \Gm@initnewgm @@ -1092,14 +1102,14 @@ \ifnum\mag=\@m\else\Gm@magtooffset\fi \Gm@changelayout \Gm@showparams{newgeometry}}% -\newcommand\restoregeometry{% +\newcommand{\restoregeometry}{% \clearpage \Gm@restore@pkg \Gm@changelayout}% -\newcommand*\savegeometry[1]{% +\newcommand*{\savegeometry}[1]{% \Gm@save \expandafter\edef\csname Gm@restore@@#1\endcsname{\Gm@restore}}% -\newcommand*\loadgeometry[1]{% +\newcommand*{\loadgeometry}[1]{% \clearpage \@ifundefined{Gm@restore@@#1}{% \PackageError{geometry}{% -- cgit v1.2.3