diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r-- | Master/texmf-dist/tex/latex/gmeometric/gmeometric.sty | 232 |
1 files changed, 223 insertions, 9 deletions
diff --git a/Master/texmf-dist/tex/latex/gmeometric/gmeometric.sty b/Master/texmf-dist/tex/latex/gmeometric/gmeometric.sty index 61ad56414ce..7724b616d3e 100644 --- a/Master/texmf-dist/tex/latex/gmeometric/gmeometric.sty +++ b/Master/texmf-dist/tex/latex/gmeometric/gmeometric.sty @@ -24,12 +24,14 @@ % \CheckSum{61} % \chschange{v0.69}{2007/4/26}{40} % \chschange{v0.70}{2007/4/29}{36} +% \chschange{v0.71}{2007/11/16}{41} +% \chschange{v0.72}{2007/11/17}{239} % %% \FileInfo \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{gmeometric} - [2007/04/29 v0.70 to allow the `geometry' macro in the document (GM)] + [2007/11/17 v0.72 to allow the `geometry' macro in the document (GM)] %% % @@ -59,14 +61,20 @@ %% You may use \pk{gmeometric} just like \pk{geometry} i.e., to specify %% the layout as the package options: they shall be passed to %% \pk{geometry}. -% +%% +%% This package also checks if the engine is \XeTeX\ and sets the +%% proper driver if so. Probably it's redundant since decent \XeTeX\ +%% packages provide their \pk{geometry.cfg} file that does that. +%% % % \begin{gmlonely} % \subdivision{Installation} -% -% Just put the \pk{gmeometric.sty} somewhere in the \file{texmf/\:tex/\:latex} -% branch. Creating a~\file{texmf/\:tex/\:latex/\:gm} directory may be advisable -% if you consider using other packages written by me. +% +% Unpack the \file{gmeometric.tds.zip} archive in a~\file{texmf} +% directory or put the \pk{gmeometric.sty} somewhere in the +% \file{texmf/\:tex/\:latex} branch on your own. Creating +% a~\file{texmf/\:tex/\:latex/\:gm} directory may be advisable if +% you consider using other packages written by me. % % Then you should refresh your \TeX\ distribution's files' database % most probably. @@ -81,7 +89,8 @@ % \pk{gmeometric.sty}\\ % \pk{README}\\ % \pk{gmeometricDoc.tex}\\ -% \pk{gmeometricDoc.pdf} +% \pk{gmeometricDoc.pdf}\\ +% \pk{gmeometric.tds.zip} % \end{verse} % % @@ -106,7 +115,7 @@ % \end{gmlonely} % % -% \division{Usage} The only use of this package is to allow the +% \division{Usage} The main use of this package is to allow the % |\geometry| command also inside the \env{document} (originally it's % |\@onlypreamble|). To make |\geometry| work properly is quite % a~different business. It may be advisable to `commit' the layout @@ -135,7 +144,7 @@ %\end{verbatim} % % In some cases it doesn't work perfectly -% anyway. Well, the license \acro{(LPPL)} warns about it. +% anyway. Well, the \acro{(LPPL)} license warns about it. % % \division{The Code} @@ -153,16 +162,217 @@ \StoreMacro\@onlypreamble \let\@onlypreamble\@gobble +% To make it work properly in \XeTeX: +\@ifXeTeX{% + \@ifundefined{pdfoutput}{\newcount\pdfoutput}{}% + \PassOptionsToPackage{dvipdfm}{geometry}% +}{} + \RequirePackageWithOptions{geometry} % Restore |\@onlypreamble|: \RestoreMacro\@onlypreamble +% Hypothesis: |\ifx...\@undefined| fails in the document because +% something made |\csname Gm@lines\endcsname|. So we change the test +% to decent. And i~think I've found the guilty: |\@ifundefined| in +% |\Gm@showparams|. So I~change it to the more elegant +% |\ifx\@undefined|. +%^^A at first I~rewrote \cs{Gm@process}, let it be, maybe +%^^A one day I'll rewrite entire \pk{geometry} +%^^A \def\Gm@process{% +%^^A \ifGm@pass +%^^A \Gm@dorg +%^^A \else +%^^A \Gm@processdimlist +%^^A \@ifundefined{Gm@hmarginratio}{% +%^^A \if@twoside +%^^A \edef\Gm@hmarginratio{\Gm@Dhratiotwo}% +%^^A \else +%^^A \edef\Gm@hmarginratio{\Gm@Dhratio}% +%^^A \fi +%^^A }{}% +%^^A \@ifundefined{Gm@vmarginratio}{% +%^^A \edef\Gm@vmarginratio{\Gm@Dvratio}% +%^^A }% +%^^A \Gm@checkpaper +%^^A \ifGm@sworient +%^^A \@tempdima=\paperwidth +%^^A \paperwidth=\paperheight +%^^A \paperheight=\@tempdima +%^^A \Gm@setpaper(\strip@pt\paperwidth,\strip@pt\paperheight){pt}% +%^^A \Gm@sworientfalse +%^^A \fi +%^^A \advance\paperwidth by-\Gm@bindingoffset +%^^A \ifGm@includemp +%^^A \Gm@mpfix +%^^A \fi +%^^A \ifGm@hbody +%^^A \@ifundefined{Gm@width}{% +%^^A \@ifundefined{Gm@hscale}{% +%^^A \edef\Gm@width{\Gm@Dhscale\paperwidth}% +%^^A }{% +%^^A \edef\Gm@width{\Gm@hscale\paperwidth}% +%^^A }% +%^^A }% +%^^A \@ifundefined{Gm@textwidth}{}{% +%^^A \setlength\@tempdima{\Gm@textwidth}% +%^^A \ifGm@includemp +%^^A \advance\@tempdima\Gm@wd@mp +%^^A \fi +%^^A \edef\Gm@width{\the\@tempdima}% +%^^A }% +%^^A \fi +%^^A \ifGm@vbody +%^^A \@ifundefined{Gm@height}{% +%^^A \@ifundefined{Gm@vscale}{% +%^^A \edef\Gm@height{\Gm@Dvscale\paperheight}% +%^^A }{% +%^^A \edef\Gm@height{\Gm@vscale\paperheight}% +%^^A }% +%^^A }{}% +%^^A \@ifundefined{Gm@lines}{}{% +%^^A \@tempdima=\baselineskip +%^^A \multiply\@tempdima\Gm@lines +%^^A \advance\@tempdima by\topskip +%^^A \advance\@tempdima by-\baselineskip +%^^A \edef\Gm@textheight{\the\@tempdima}% +%^^A }% +%^^A \@ifundefined{Gm@textheight}{}{% +%^^A \@tempdima=\Gm@textheight +%^^A \ifGm@includehead +%^^A \advance\@tempdima by\headheight +%^^A \advance\@tempdima by\headsep +%^^A \fi +%^^A \ifGm@includefoot +%^^A \addtolength\@tempdima{\footskip}% +%^^A \fi +%^^A \edef\Gm@height{\the\@tempdima}% +%^^A }% +%^^A \fi +%^^A \Gm@detall{h}{width}{lmargin}{rmargin}% +%^^A \Gm@detall{v}{height}{tmargin}{bmargin}% +%^^A \setlength\textwidth{\Gm@width}% +%^^A \setlength\textheight{\Gm@height}% +%^^A \setlength\topmargin{\Gm@tmargin}% +%^^A \setlength\oddsidemargin{\Gm@lmargin}% +%^^A \addtolength\oddsidemargin{-1\Gm@truedimen in}% +%^^A \ifGm@includemp +%^^A \advance\textwidth-\Gm@wd@mp +%^^A \advance\oddsidemargin\Gm@odd@mp +%^^A \fi +%^^A \if@mparswitch +%^^A \setlength\evensidemargin{\Gm@rmargin}% +%^^A \addtolength\evensidemargin{-1\Gm@truedimen in}% +%^^A \ifGm@includemp +%^^A \advance\evensidemargin\Gm@even@mp +%^^A \fi +%^^A \ifGm@compatii +%^^A \@ifundefined{Gm@twosideshift}{% +%^^A \def\Gm@twosideshift{20\Gm@truedimen pt}% +%^^A }% +%^^A \addtolength\oddsidemargin{\Gm@twosideshift}% +%^^A \addtolength\evensidemargin{-\Gm@twosideshift}% +%^^A \fi +%^^A \else +%^^A \evensidemargin\oddsidemargin +%^^A \fi +%^^A \advance\oddsidemargin\Gm@bindingoffset +%^^A \addtolength\topmargin{-1\Gm@truedimen in}% +%^^A \ifGm@includehead +%^^A \addtolength\textheight{-\headheight}% +%^^A \addtolength\textheight{-\headsep}% +%^^A \else +%^^A \addtolength\topmargin{-\headheight}% +%^^A \addtolength\topmargin{-\headsep}% +%^^A \fi +%^^A \ifGm@includefoot +%^^A \addtolength\textheight{-\footskip}% +%^^A \fi +%^^A \ifGm@heightrounded +%^^A \setlength\@tempdima{\textheight}% +%^^A \addtolength\@tempdima{-\topskip}% +%^^A \@tempcnta\@tempdima +%^^A \@tempcntb\baselineskip +%^^A \divide\@tempcnta\@tempcntb +%^^A \setlength\@tempdimb{\baselineskip}% +%^^A \multiply\@tempdimb\@tempcnta +%^^A \advance\@tempdima-\@tempdimb +%^^A \multiply\@tempdima\tw@ +%^^A \ifdim\@tempdima>\baselineskip +%^^A \addtolength\@tempdimb{\baselineskip}% +%^^A \fi +%^^A \addtolength\@tempdimb{\topskip}% +%^^A \textheight\@tempdimb +%^^A \fi +%^^A \addtolength\paperwidth{\Gm@bindingoffset}% +%^^A \fi}% + +\def\Gm@showparams{% \changes{v0.72}{2007/11/17}{a~bug fix: + %% \cs{@ifundefined\{Gm@lines\}} raised an error when \cs{geometry} + %% used inside the \env{document}, I~change it to + %% \cs{ifx}\cs{@undefined}} + -------------------- Geometry parameters^^J% + \ifGm@pass + 'pass' is specified!! (disables the geometry layouter)^^J% + \else + paper: \ifx\Gm@paper\@undefined class default\else\Gm@paper\fi^^J% + \Gm@checkbool{landscape}% + twocolumn: \if@twocolumn\Gm@true\else--\fi^^J% + twoside: \if@twoside\Gm@true\else--\fi^^J% + asymmetric: \if@mparswitch --\else\if@twoside\Gm@true\else --\fi\fi^^J% + h-parts: \Gm@lmargin, \Gm@width, \Gm@rmargin% + \ifnum\Gm@cnth=\z@\space(default)\fi^^J% + v-parts: \Gm@tmargin, \Gm@height, \Gm@bmargin% + \ifnum\Gm@cntv=\z@\space(default)\fi^^J% + hmarginratio: \ifnum\Gm@cnth<5 \ifnum\Gm@cnth=3--\else% + \Gm@hmarginratio\fi\else--\fi^^J% + vmarginratio: \ifnum\Gm@cntv<5 \ifnum\Gm@cntv=3--\else% + \Gm@vmarginratio\fi\else--\fi^^J% + lines: \ifx\Gm@lines\@undefined--\else\Gm@lines\fi^^J% here + % I~(natror) fix the bug: it was \inverb|\@ifundefined| that of + % course was assigning \inverb|\relax| to \inverb|\Gm@lines| and + % that resulted in an error when \inverb|\geometry| was used inside + % document. + \Gm@checkbool{heightrounded}% + bindingoffset: \the\Gm@bindingoffset^^J% + truedimen: \ifx\Gm@truedimen\@empty --\else\Gm@true\fi^^J% + \Gm@checkbool{includehead}% + \Gm@checkbool{includefoot}% + \Gm@checkbool{includemp}% + driver: \Gm@driver^^J% + \fi + -------------------- Page layout dimensions and switches^^J% + \string\paperwidth\space\space\the\paperwidth^^J% + \string\paperheight\space\the\paperheight^^J% + \string\textwidth\space\space\the\textwidth^^J% + \string\textheight\space\the\textheight^^J% + \string\oddsidemargin\space\space\the\oddsidemargin^^J% + \string\evensidemargin\space\the\evensidemargin^^J% + \string\topmargin\space\space\the\topmargin^^J% + \string\headheight\space\the\headheight^^J% + \string\headsep\@spaces\the\headsep^^J% + \string\footskip\space\space\space\the\footskip^^J% + \string\marginparwidth\space\the\marginparwidth^^J% + \string\marginparsep\space\space\space\the\marginparsep^^J% + \string\columnsep\space\space\the\columnsep^^J% + \string\skip\string\footins\space\space\the\skip\footins^^J% + \string\hoffset\space\the\hoffset^^J% + \string\voffset\space\the\voffset^^J% + \string\mag\space\the\mag^^J% + \if@twocolumn\string\@twocolumntrue\space\fi% + \if@twoside\string\@twosidetrue\space\fi% + \if@mparswitch\string\@mparswitchtrue\space\fi% + \if@reversemargin\string\@reversemargintrue\space\fi^^J% + (1in=72.27pt, 1cm=28.45pt)^^J% + -----------------------} + % Add restore to BeginDocument: \@xa\AtBeginDocument\@xa{\@xa\RestoreMacros\gme@tobestored} \endinput +% \ChangesGeneral % % \changes{v0.70}{2007/04/29}{Back to the v0.68 settings because % \cs{not@onlypreamble} was far too little. Well, in this version the @@ -170,6 +380,10 @@ % commands depend on the particular situation so defining only two % options doesn't seem advisable} % +% \changes{v0.71}{2007/11/17}{a~\acro{TDS}-compliant \file{zip} +% archive made} +% +% % \NoEOF % (For my GNU Emacs:) |