From 58a84f1f518f7f818c4e2bca5dbe871461f8da7d Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 28 Apr 2007 00:49:23 +0000 Subject: new latex package gmeometric (26apr07) git-svn-id: svn://tug.org/texlive/trunk@4202 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/latex/gmeometric/gmeometric.sty | 184 +++++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/gmeometric/gmeometric.sty (limited to 'Master/texmf-dist/tex/latex/gmeometric') diff --git a/Master/texmf-dist/tex/latex/gmeometric/gmeometric.sty b/Master/texmf-dist/tex/latex/gmeometric/gmeometric.sty new file mode 100644 index 00000000000..f12a8734aab --- /dev/null +++ b/Master/texmf-dist/tex/latex/gmeometric/gmeometric.sty @@ -0,0 +1,184 @@ +% +% \GetFileInfo{gmeometric.sty} +% \title{The \pk{gmeometric} Package\thfileinfo} +% \author{Grzegorz Murzynowski} +% \maketitle +% +% +% \begin{copyrnote} +% +%% Written by Grzegorz Murzynowski, +%% natror at o2 dot pl +%% +%% \copyright\,2006, 2007 by Grzegorz Murzynowski. +%% +%% This program is subject to the \LaTeX\ Project Public License. +%% See +%% \url{http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html} +%% for the details of that license. +%% +%% LPPL status: "author-maintained".\par +% +%\end{copyrnote} +% +% \CheckSum{61} +% \chschange{v0.69}{2007/4/26}{40} +% +%% \FileInfo + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{gmeometric} + [2007/04/26 v0.69 to allow the `geometry' macro in the document (GM)] + +%% +% +%% \division{Introduction, usage} +%% +%% This package allows you to use the |\geometry| macro, provided by +%% the \pk{geometry} v3.2 by Hideo Umeki, anywhere in a~document: +%% originally it's claused |\@onlypreamble| and the main work of +%% \pk{gmeometric} is to change that. +%% +%% Note it's rather queer to change the page layout \emph{inside} +%% a~document and it should be considered as drugs or alcohol: it's +%% O.K.\ only if you \emph{really} know what you're doing. +%% +%% In order to work properly, the macro should launch the |\clearpage| +%% or the |\cleardoublepage| to `commit' the changes. So, the +%% unstarred version trigges the first while the starred the +%% latter. If that doesn't work quite as expected, try to precede or +%% succede it with |\onecolumn| or |\twocolumn|. +%% +%% It's important that |\clear(double)page| launched by |\geometry| +%% not to be a~no-op, i.e., |\clear(double)page| immediately +%% preceding |\geometry| (nothing is printed in between) discards the +%% `commitment'. +%% +%% \stanza +%% 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}. +% +% +% \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. +% +% Then you should refresh your \TeX\ distribution's files' database +% most probably. +% \end{gmlonely} +% +% +% \subdivision{Contents of the \pk{gmeometric.zip} archive} +% +% The distribution of the \pk{gmeometric} package consists of the +% following four files. +% \begin{verse} +% \pk{gmeometric.sty}\\ +% \pk{README}\\ +% \pk{gmeometricDoc.tex}\\ +% \pk{gmeometricDoc.pdf} +% \end{verse} +% +% +% \begin{gmlonely} +% \subdivision{Compiling of the Documentation} +% +% The last of the above files (the \pk{.pdf}, i.e., \emph{this +% file}) is a~documentation compiled from the \pk{.sty} file by +% running \LaTeX\ (twice) on the \pk{gmeometricDoc.tex} file. +% Compiling of the documentation requires the packages: \pk{gmdoc} +% (\pk{gmdoc.sty} and \pk{gmdocc.cls}), \pk{gmverb.sty}, +% \pk{gmutils.sty}, \pk{gmiflink.sty} and also some standard +% packages: \pk{hyperref.sty}, \pk{color.sty}, \pk{geometry.sty}, +% \pk{multicol.sty}, \pk{lmodern.sty}, \pk{fontenc.sty} that should +% be installed on your computer by default. +% +% If you have not installed the \pk{mwart.cls} class (available on +% CTAN in \pk{mwcls} package), the result of your compilation may +% differ a bit from the \pk{.pdf} provided in this \pk{.zip} archive +% in formattings: If you have not installed \pk{mwart.cls}, the +% standard \pk{article.cls} class will be used. +% \end{gmlonely} +% +% +% \division{Usage} +% The only use of this package is to allow the |\geometry| command +% also inside the \env{document} (originally it's +% |\@onlypreamble|). To make |\geometry| work properly it may be +% advisable to `commit' the layout changes with (|\clearpage|, +% |\cleardoublepage| or |\newpage|) and maybe |\one/twocolumn|. +% +% Some layout commands should be put before |\one/twocolumn| and other +% after it. An example: +% +%\begin{verbatim} +% \thispagestyle{empty} +% +% \advance\textheight 3.4cm\relax +% \onecolumn +% \newpage +% +% \advance\footskip-1.7cm +% \geometry{hmargin=1.2cm,vmargin=1cm} +%\end{verbatim} +% +% And another: +%\begin{verbatim} +% \geometry{bottom=3.6cm} +%\end{verbatim} +% +% +% \division{The Code} + +\RequirePackage{gmutils}[2007/04/23]% this package defines the storing +% and restoring commands. + + +\RequirePackageWithOptions{geometry} + +% Let's remove some macros from the list to erase at begin document: +\let\do\not@onlypreamble + +\do\Gm@cnth +\do\Gm@cntv +\do\c@Gm@tempcnt +\do\Gm@bindingoffset +\do\Gm@wd@mp +\do\Gm@odd@mp +\do\Gm@even@mp +\do\Gm@orgw +\do\Gm@orgh +\do\Gm@dimlist + + +% Redefine |\geometry| to give it the starred version that clears +% a~double page when used in the document. The unstarred versions will +% do just |\clearpage|. Note that |\clear(double)page| makes no harm +% when used in the preamble. \CodeDefine\geometry +\def\geometry{% + \@ifstar{\gm@geometry{double}}{\gm@geometry{}}} + +% \CodeDefine\gm@geometry +\def\gm@geometry#1#2{% + \Gm@clean + \setkeys{Gm}{#2}% + \Gm@process + \csname clear#1page\endcsname}% + + +% \changes{v0.69}{2007/04/26}{The package main action rewritten to use +% \cs{not@onlypreamble} and not \cs{(Re)StoreMacros}} + + +\endinput +% \NoEOF + +% (For my GNU Emacs:) +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: "../../../../LaTeX/TeXGuru/gmeometric/gmeometricDoc.tex" +%%% End: -- cgit v1.2.3