diff options
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r-- | Master/texmf-dist/source/latex/preprint/authblk.drv | 53 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/preprint/authblk.dtx | 969 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/preprint/authblk.ins | 64 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/preprint/balance.drv | 52 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/preprint/balance.dtx | 541 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/preprint/balance.ins | 64 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/preprint/figcaps.drv | 52 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/preprint/figcaps.dtx | 1634 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/preprint/figcaps.ins | 64 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/preprint/fullpage.drv | 52 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/preprint/fullpage.dtx | 387 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/preprint/fullpage.ins | 64 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/preprint/sublabel.drv | 52 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/preprint/sublabel.dtx | 729 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/preprint/sublabel.ins | 64 |
15 files changed, 4841 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/preprint/authblk.drv b/Master/texmf-dist/source/latex/preprint/authblk.drv new file mode 100644 index 00000000000..d9c6ed7719a --- /dev/null +++ b/Master/texmf-dist/source/latex/preprint/authblk.drv @@ -0,0 +1,53 @@ +%% +%% This is file `authblk.drv', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% authblk.dtx (with options: `driver') +%% ============================================ +%% This is the driver file to produce the LaTeX documentation +%% from the original source file authblk.dtx. +%% +%% Make changes to it as needed. (Never change the file authblk.dtx!) +%% ============================================ +%% Copyright 1997-1999 Patrick W Daly +%% Max-Planck-Institut f\"ur Aeronomie +%% Max-Planck-Str. 2 +%% D-37191 Katlenburg-Lindau +%% Germany +%% E-mail: daly@linmpi.mpg.de +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{authblk.drv} + [2001/02/27 1.3 (PWD)] +%% authblk coding copyright (C) 1997 Patrick W. Daly +\documentclass{ltxdoc} +%\documentclass[twoside]{ltxdoc} +%\documentclass[a4paper]{ltxdoc} +%\documentclass[twoside,a4paper]{ltxdoc} +\raggedbottom + + %** To include the detailed explanation of the coding, comment out + %** the next line +\OnlyDescription + + %** To produce a command index: add the following line for one run, + %** then run makeindex -s gind.ist authblk + %** and reprocess, with or without this line (much faster without) +% \EnableCrossrefs\CodelineIndex + + %** To produce a change history: add the following line for one run, + %** then run makeindex -s gglo.ist -o authblk.gls authblk.glo + %** and reprocess, with or without this line (faster without) +% \RecordChanges + +\DisableCrossrefs %May stay; zapped by \EnableCrossrefs +\CodelineNumbered %May stay + +\begin{document} + \DocInput{authblk.dtx} +\end{document} +%% +%% End of documentation driver file. +%% +%% End of file `authblk.drv'. diff --git a/Master/texmf-dist/source/latex/preprint/authblk.dtx b/Master/texmf-dist/source/latex/preprint/authblk.dtx new file mode 100644 index 00000000000..0b931ced2fd --- /dev/null +++ b/Master/texmf-dist/source/latex/preprint/authblk.dtx @@ -0,0 +1,969 @@ +% \iffalse THIS IS A META-COMMENT +%<*dtx> +\ProvidesFile +%======================================================================== + {AUTHBLK.DTX} +%======================================================================== +%</dtx> +%% Copyright 1997-1999 Patrick W Daly +%% Max-Planck-Institut f\"ur Aeronomie +%% Max-Planck-Str. 2 +%% D-37191 Katlenburg-Lindau +%% Germany +%% E-mail: daly@linmpi.mpg.de +% +% This program can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% +% This is a contributed file to the LaTeX2e system. +% ------------------------------------------------- +% This is a LaTeX package to prepare author/affiliation blocks +% Installation: +% LaTeX this file: creates docstrip installation file authblk.ins +% AND the (LaTeX2e) documentation +% (La)TeX authblk.ins: creates package files authblk.sty, and optionally +% documentation driver authblk.drv +% (authblk.ins may be edited as needed) +% Docstrip options available: +% package - to produce a .sty file with the uncommented coding +% driver - to produce a driver file to print the documentation +% 209 - (with package) for package that runs under LaTeX 2.09 +% subpack - (with package) for coding included in other packages +% LaTeX the unstripped version to obtain the documentation +% (Documentation can be produced with LaTeX2e only) +%-------------------------------------------------------------------------- +%<*!subpack> +%<package&209>\def\ProvidesPackage#1#2] +%<package&209> {\typeout{Style option `#1'#2]}} +% +% *** Identify the package file:- +%<package&!209>\NeedsTeXFormat{LaTeX2e}[1995/06/01] +%<package>\ProvidesPackage{authblk} +%</!subpack> +% +% *** Provide command to dislay module version +%<package&subpack>\def\ModuleVersion#1[#2]{} +%<package&subpack> \ModuleVersion{authblk} +% +% *** Identify the driver file:- +%<driver>\NeedsTeXFormat{LaTeX2e} +%<driver>\ProvidesFile{authblk.drv} +% +% *** The DATE, VERSION, and other INFO +%\fi +%\ProvidesFile{authblk} + [2001/02/27 1.3 (PWD)] +%\iffalse +%<*package> +%<*!subpack> + %------------------------------------------------------------------- + % NOTICE: + % This file may be used for non-profit purposes. + % It may not be distributed in exchange for money, + % other than distribution costs. + % + % The author provides it `as is' and does not guarantee it in any way. + % +%</!subpack> +%</package> +%% authblk coding copyright (C) 1997 Patrick W. Daly +%<*package> +%<*!subpack> + % Max-Planck-Institut f\"ur Aeronomie + % Max-Planck-Str. 2 + % D-37191 Katlenburg-Lindau + % Germany + % + % E-mail: daly@linmpi.mpg.de + %----------------------------------------------------------- +%</!subpack> +%</package> +% END META-COMMENT \fi +% \changes{1.0}{1997 Apr 22}{First version} +% \changes{1.1}{1997 Aug 28}{Allow standard \cs{author} to come before package +% loaded} +% \changes{1.1a}{1998 Jul 14}{A 2.09 fixup} +% \changes{1.2}{1999 Feb 23}{Update copyright notice} +% \changes{1.3}{2001 Feb 27}{Make stand-alone by changing \cs{maketitle} to center} +% +% \CheckSum{404} +% \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 +% Lower-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 +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \iffalse +%<*install> +%^^A ============================================= +%^^A Here is the docstrip installation file +%^^A It is written on first LaTeX run if it +%^^A does not already exist +%^^A ============================================= +\begin{filecontents*}{authblk.ins} +% File: authblk.ins +% Copyright 1999 Patrick W. Daly +% +% This file can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% +% It is an installation file for extracting package and driver +% files from the original source file. Simply process it under +% TeX or LaTeX. + +\input docstrip + +\preamble +============================================= +IMPORTANT NOTICE: + +This program can be redistributed and/or modified under the terms +of the LaTeX Project Public License Distributed from CTAN +archives in directory macros/latex/base/lppl.txt; either +version 1 of the License, or any later version. + +This is a generated file. +It may not be distributed without the original source file \inFileName. + +Full documentation can be obtained by LaTeXing that original file. +Only a few abbreviated comments remain here to describe the usage. +============================================= +\endpreamble +\postamble + +<<<<< End of generated file <<<<<< +\endpostamble + +\declarepreamble\driver +============================================ +This is the driver file to produce the LaTeX documentation +from the original source file \inFileName. + +Make changes to it as needed. (Never change the file \inFileName!) +============================================ +\endpreamble + +\declarepostamble\driverq + +End of documentation driver file. +\endpostamble + +\keepsilent +\askforoverwritefalse + +\generate{\file{authblk.sty}{\from{authblk.dtx}{package}} + \file{authblk.drv}{\usepreamble\driver\usepostamble\driverq + \from{authblk.dtx}{driver}} + } + +\obeyspaces +\Msg{******************************************}% +\Msg{* For documentation, process authblk.dtx *}% +\Msg{* or the driver file authblk.drv *}% +\Msg{******************************************} + +\endbatchfile +\end{filecontents*} +%</install> +%<*driver> +\documentclass{ltxdoc} +%<driver>%\documentclass[twoside]{ltxdoc} +%<driver>%\documentclass[a4paper]{ltxdoc} +%<driver>%\documentclass[twoside,a4paper]{ltxdoc} +\raggedbottom + + %** To include the detailed explanation of the coding, comment out + %** the next line +\OnlyDescription + + %** To produce a command index: add the following line for one run, + %** then run makeindex -s gind.ist authblk + %** and reprocess, with or without this line (much faster without) +%<driver>% \EnableCrossrefs\CodelineIndex + + %** To produce a change history: add the following line for one run, + %** then run makeindex -s gglo.ist -o authblk.gls authblk.glo + %** and reprocess, with or without this line (faster without) +%<driver>% \RecordChanges + +\DisableCrossrefs %May stay; zapped by \EnableCrossrefs +\CodelineNumbered %May stay + +\begin{document} + \DocInput{authblk.dtx} +\end{document} +%</driver> +%\fi +% +% \DoNotIndex{\begin,\CodelineIndex,\CodelineNumbered,\def,\DisableCrossrefs} +% \DoNotIndex{\DocInput,\documentclass,\EnableCrossrefs,\end,\GetFileInfo} +% \DoNotIndex{\NeedsTeXFormat,\OnlyDescription,\RecordChanges,\usepackage} +% \DoNotIndex{\ProvidesClass,\ProvidesPackage,\ProvidesFile,\RequirePackage} +% \DoNotIndex{\LoadClass,\PassOptionsToClass,\PassOptionsToPackage} +% \DoNotIndex{\DeclareOption,\CurrentOption,\ProcessOptions,\ExecuteOptions} +% \DoNotIndex{\AtEndOfClass,\AtEndOfPackage,\AtBeginDocument,\AtEndDocument} +% \DoNotIndex{\InputIfFileExists,\IfFileExists,\ClassError,\PackageError} +% \DoNotIndex{\ClassWarning,\PackageWarning,\ClassWarningNoLine} +% \DoNotIndex{\PackageWarningNoLine,\ClassInfo,\PackageInfo,\MessageBreak} +% \DoNotIndex{\space,\protect,\DeclareRobustCommand,\CheckCommand} +% \DoNotIndex{\newcommand,\renewcommand,\providecommand,\newenvironment} +% \DoNotIndex{\renewenvironment,\newif,\newlength,\newcounter,\setlength} +% \DoNotIndex{\setcounter,\if,\ifx,\ifcase,\ifnum,\ifdim,\else,\fi} +% \DoNotIndex{\texttt,\textbf,\textrm,\textsl,\textsc} +% \DoNotIndex{\textup,\textit,\textmd,\textsf,\emph} +% \DoNotIndex{\ttfamily,\rmfamily,\sffamily,\mdseries,\bfseries,\upshape} +% \DoNotIndex{\slshape,\scshape,\itshape,\em,\LaTeX,\LaTeXe} +% \DoNotIndex{\filename,\fileversion,\filedate,\let} +% \DoNotIndex{\\,\@empty,\@namedef,\@nameuse,\@tempa,\@temptokena} +% \DoNotIndex{\@unexpandable@protect,\addtocounter,\and,\arabic} +% \DoNotIndex{\begingroup,\c@authors,\edef,\endgroup,\expandafter} +% \DoNotIndex{\ignorespaces,\large,\maxdimen,\noexpand,\normalfont,\number} +% \DoNotIndex{\relax,\textsuperscript,\the,\value,\xdef,\z@} +% \DoNotIndex{\@ifundefined,\@ifnextchar,\document,\gdef,\global,\rm} +% \DoNotIndex{\rlap,\footnote,\thanks} +% +% \setcounter{IndexColumns}{2} +% \setlength{\IndexMin}{10cm} +% \setcounter{StandardModuleDepth}{1} +% +% \GetFileInfo{authblk} +% +% \title{\bfseries A \LaTeX\ Package to Prepare Author and Affiliation Blocks} +% +% \author{Patrick W. Daly} +% +% \date{This paper describes \LaTeXe\ package \texttt{\filename}\\ +% version \fileversion{} from \filedate\\[1ex] +% \textsl{It is part of the \texttt{preprint} collection of packages} +% } +% +% \maketitle +% +% \pagestyle{myheadings} +% \markboth{P. W. Daly}{Author/Affiliation Blocks} +% +%^^A In order to keep all marginal notes on the one (left) side: +%^^A (otherwise they switch sides disasterously with twoside option) +% \makeatletter \@mparswitchfalse \makeatother +% +%\begin{small}\begin{center}\textbf{Summary}\end{center} +% The stripped version of this file contains the following brief description: +%\iffalse +%<*package&!subpack> + % Author/Affiliation Blocks +%\fi +% \begin{verbatim} + % A LaTeX2e package to redefine the \author command to work as normal or + % to allow a footnote style of author/affiliation input. + % + % Three methods of input: + % 1. Standard LaTeX + % \author{Name1//Affil1 /and Name2 and Name3//Affil2 . . .} + % (use \authorcr, not \\, to force new line within the author text) + % 2. Automatic mode (selects modes 1 or 3 depending on number of affiliations) + % \author{Name1} + % \affil{Affil1} + % \author{Name2} + % \author{Name3} + % \affil{Affil2} + % . . . + % 3. Footnotes explicitly + % \author[*]{Name1} + % \author[**]{Name2} + % \author[**]{Name3} + % \affil[*]{Affil1} + % \affil[**]{Affil2} + % . . . +% \end{verbatim} +%\iffalse + % See documentation in authblk.dtx for further configuration possibilities. + %----------------------------------------------------------- +%</package&!subpack> +%\fi +%\end{small} +% \newcommand\brsl{/\discretionary{}{}{}} +% +% \section{Introduction} +% The standard \LaTeX\ syntax for entering author names and their +% affiliations is rather limited. The standard is to have \emph{author +% blocks} consisting of all authors from one institute grouped together. +% However, if there are many institutes, or if the authors are ordered in +% some other way (e.g.\ alphabetically) it is more appropriate to use a +% footnote system. Both methods should be available for any paper since the +% style depends more on the number of authors and affiliations and their +% mixture. +% +% This package offers a syntax for entering author names and their +% affiliations that permits both styles, and is also compatible with the +% standard \LaTeX\ syntax. It places its results in the control sequence +% |\@author|, which is the standard container for the author\brsl{}affiliation +% names; in this way it can be used immediately with standard \LaTeX\ +% classes, or with packages that modify the title\brsl{}author block. +% +% \section{Invoking the Package} +% The macros in this package are included in the main document +% with the |\usepackage| command of \LaTeXe, +% \begin{quote} +% |\documentclass[..]{...}|\\ +% |\usepackage[|\emph{options}|]{|\texttt{\filename}|}| +% \end{quote} +% where the possible \emph{options} are described below in Section~\ref{opts}. +% +% \section{Usage} +% +% Authors and affiliations can be printed in author blocks, as +% \begin{center} +% \begin{tabular}[t]{c} +% J. B. Smith\\Institute for Research\\Hamilton, Ontario +% \end{tabular}\\[1ex] +% \begin{tabular}[t]{c} +% C. T. Appleton and P. R. Bailey\\NASA, Greenbelt, MD +% \end{tabular} +% \end{center} +% or in a line with footnote markers for the affiliations, as +% \begin{center} +% J. B. Smith\textsuperscript{1}, C. T. Appleton\textsuperscript{2}, and +% P. R. Bailey\textsuperscript{2}\\[1ex] +% \textsuperscript{1}Institute for Research, Hamilton, Ontario\\ +% \textsuperscript{2}NASA, Greenbelt, MD +% \end{center} +% +% \DescribeMacro{\author} +% \DescribeMacro{\affil} +% The user can enter the author and affiliation information in a number of +% different manners. +% \begin{enumerate} +% \item \label{ab}Standard \LaTeX, with syntax +% \begin{quote} +% |\author{|\dots|\and|\dots|\and|\dots|}| +% \end{quote} +% where each block of author(s)\brsl{}affiliation comes between the +% |\and| commands, containing possibly |\\| for new lines; +% +% \item \label{abfn} Automatic switching between author block or footnote +% style, information input with a series of |\author|, |\affil| +% commands as +% \begin{quote} +% |\author{|\emph{author1}|}|\\ +% |\author{|\emph{author2}|}|\\ +% |\affil{|\emph{affil1}|}|\\ +% |\author{|\emph{author3}|}|\\ +% |\author{|\emph{author4}|}|\\ +% |\affil{|\emph{affil2}|}|\\ +% $\cdots$ +% \end{quote} +% where the authors will appear all in one (possibly continued) line +% with automatic footnotes, and the affiliations appear in separate lines +% below; +% +% \item \label{fn}Footnote style with manual footnote markers given as +% optional arguments; in this case, the |\author| and |\affil| commands +% can be fully separated: +% \begin{quote} +% |\author[1]{|\emph{author1}|}|\\ +% |\author[1]{|\emph{author2}|}|\\ +% |\author[2]{|\emph{author3}|}|\\ +% |\author[2]{|\emph{author4}|}|\\ +% |\affil[1]{|\emph{affil1}|}|\\ +% |\affil[2]{|\emph{affil2}|}|\\ +% $\cdots$ +% \end{quote} +% \end{enumerate} +% Method \ref{ab} can only produce author blocks; method \ref{fn} only +% footnotes, while \ref{abfn} can produce both. If the number of affiliations +% is greater than \texttt{Maxaffil}, footnotes are used, otherwise author +% blocks. +% +% \DescribeMacro{\authorcr} +% With method \ref{ab}, the |\\| command is used to switch to affiliation +% text, possibly changing the font; if the author text is to be forced to a +% new line, use |\authorcr| instead. +% +% \noindent\textbf{Warning:} +% methods \ref{abfn} and \ref{fn} can only be used \emph{after} +% \texttt{\filename} has been loaded, since |\affil| is otherwise +% not defined. However, a single |\author| command (method \ref{ab}) +% can appear before |\usepackage|, or even before |\documentclass|, +% as is allowed in standard \LaTeX. +% +% \section{Configuration} +% +% Certain aspects of the author\brsl{}affiliation blocks can be controlled by +% the user through redefinitions. +% +% As already \marginpar{\raggedleft\texttt{Maxaffil}} +% mentioned, the maximum number of affiliations before automatically +% switching from author block to footnote mode is set in the counter +% |Maxaffil|. Redefine this with +% \begin{quote}|\setcounter{Maxaffil}{2}|\end{quote} +% The default is 2. +% +% \DescribeMacro{\Authfont} +% \DescribeMacro{\Affilfont} +% The author and affiliation lines can be set in different fonts, determined +% by these macros. By default they are |\normalfont|. Redefine them with +% |\renewcommand|, for example: +% \begin{quote}\begin{verbatim} +% \renewcommand\Authfont{\scshape} +% \renewcommand\Affilfont{\itshape\small} +% \end{verbatim} +% \end{quote} +% +% \DescribeMacro{\affilsep} +% The interline spacing between the author and affiliation lines is set by +% the length |\affilsep|. Change this with |\setlength|, as +% \begin{quote}|\setlength{\affilsep}{1em}|\end{quote} +% This spacing applies to both footnote and author block modes. +% +% \DescribeMacro{\Authsep} +% \DescribeMacro{\Authand} +% \DescribeMacro{\Authands} +% In footnote mode, one can change the texts that comes between the +% authors' names, between two authors, and before the last author when there +% are more than two. For example, +% \begin{quote}\begin{verbatim} +% \renewcommand\Authsep{, } +% \renewcommand\Authand{ and } +% \renewcommand\Authands{, and } +% \end{verbatim} +% \end{quote} +% This example actually shows the defaults. +% +% \section{Options during Loading}\label{opts} +% Some reconfigurations are provided for by means of options to the +% |\usepackage| command. These are: +% \begin{description} +% \item[\ttfamily blocks] +% sets |Maxaffil| to $\infty$ so that the automatic selection will always be +% author\brsl{}affiliation blocks; +% +% \item[\ttfamily noblocks] +% sets |Maxaffil| to 0 so that the automatic selection will always be +% footnote mode; +% +% \item[\ttfamily max$n$] ($n=2,6$) sets |Maxaffil| to $n$; +% +% \item[\ttfamily auth-sc] sets author font to small caps; +% +% \item[\ttfamily auth-sc-lg] sets author font to small caps, but with size +% |\large|; +% +% \item[\ttfamily auth-lg] sets author font to normal, but in size |\large|; +% +% \item[\ttfamily affil-sl] sets affiliation font to slanted; +% +% \item[\ttfamily affil-it] sets affiliation font to italic; +% +% \item[\ttfamily german] changes `and' to `und' in author lists. +% \end{description} +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \section{Options with \texttt{docstrip}} +% The source \texttt{.dtx} file is meant to be processed with +% \texttt{docstrip}, for which a number of options are available: +% \begin{description} +% \item[\ttfamily package] to produce a \texttt{.sty} package file with most +% comments removed; +% +% \item[\ttfamily subpack] (together with \texttt{package}) for coding that +% is to be included inside a larger package; even more comments are +% removed, as well as \LaTeXe{} option handling and identification; +% +% \item[\ttfamily 209] (together with \texttt{package}) for a style option +% file that will run under the older \LaTeX~2.09; +% +% \item[\ttfamily driver] to produce a driver \texttt{.drv} file that will +% print out the documentation under \LaTeXe. The documentation cannot +% be printed under \LaTeX~2.09. +% +% \end{description} +% The source file \texttt{\filename.dtx} is itself a driver file and can +% be processed directly by \LaTeXe. +% +% \section{The Coding} +% This section presents and explains the actual coding of the macros. +% It is nested between |%<*package>| and |%</package>|, which +% are indicators to \texttt{docstrip} that this coding belongs to the package +% file. +% +% The \texttt{docstrip} option |<subpack>| should only be called if the +% coding is to be included as part of another package, in which case the +% announcement text and \LaTeXe{} options are suppressed. +% +% An alternative version of this coding is provided for running as a +% style file under \LaTeX~2.09. Code lines belonging to this are +% indicated with guard |<209>|; those for LaTeXe{} only with |<!209>|. +% +% \begin{macrocode} +%<*package> +% \end{macrocode} +% +% \subsection{Basic Idea} +% +% In the standard \LaTeX\ classes, the authors and their affiliations are +% input through the |\author| command, which simply stores the argument in +% |\@author|. The text is then output by the |\maketitle| macro within a +% |tabular| environment, as +% \begin{quote}\begin{verbatim} +% \begin{tabular}[t]{c}% +% \@author +% \end{tabular} +% \end{verbatim} +% \end{quote} +% Different blocks within the |\author| text are separated by the |\and| +% command, defined as +% \begin{quote}\begin{verbatim} +% \def\and{% +% \end{tabular}% +% \hskip 1em \@plus.17fil% +% \begin{tabular}[t]{c}}% +% \end{verbatim} +% \end{quote} +% Clearly, the definition of |\and| must be compatible with the environment +% in which |\@author| is output. +% +% The \texttt{\filename} package provides a new way to enter the author and +% affiliation data, but puts the results into |\@author|, which means it can +% be used with the standard classes or with any class that has the author +% information in |\@author|. Since \texttt{\filename} controls all the font +% formatting for author and affiliation lines, |\maketitle| should not do +% this. +% +% \subsection{Configurable Commands} +% +% All internal commands are designated with |\AB@..| to avoid name conflicts +% with other packages. Commands that may be redefined for local configuration +% contain no |@| and begin with an uppercase letter, like |\Authfont|. +% +% The following allow the author and affiliation blocks to be formatted. +% These may be changed in the document or in packages that input (include) +% \texttt{\filename}. +% +% \begin{macro}{\Authfont} +% \begin{macro}{\Affilfont} +% Declarations that are to be issued for the authors and affiliations are +% defined here. Redefine these, for example, as +% \begin{quote}\begin{verbatim} +% \renewcommand\Authfont{\scshape} +% \renewcommand\Affilfont{\itshape\small} +% \end{verbatim} +% \end{quote} +% By default, they are the |\normalfont|. +% \begin{macrocode} +\newcommand\Authfont{\normalfont} +\newcommand\Affilfont{\normalfont} +%<209>\@ifundefined{normalfont}{\let\normalfont\rm}{} +% \end{macrocode} +% \end{macro}\end{macro} +% +% \begin{macro}{\Authsep} +% \begin{macro}{\Authand} +% \begin{macro}{\Authands} +% Three macros determine what comes between author names, +% \begin{macrocode} +\newcommand\Authsep{, } +% \end{macrocode} +% what comes between the last and second last names for more than two authors, +% \begin{macrocode} +\newcommand\Authands{, and } +% \end{macrocode} +% and for exactly two authors. +% \begin{macrocode} +\newcommand\Authand{ and } +% \end{macrocode} +% These could be language dependent. +% \end{macro}\end{macro}\end{macro} +% +% \begin{macro}{\affilsep} +% The vertical spacing between an author and affiliation line. The length +% |\@affilsep| comes between affiliation lines and switches between +% |\affilsep| and 0~pt as needed. +% \begin{macrocode} +\newlength{\affilsep}\setlength{\affilsep}{1em} +\newlength{\@affilsep} +% \end{macrocode} +% \end{macro} +% Also part of the local configuration is the maximum number of affiliations +% before switching to footnote mode. Redefine this with |\setcounter|. +% \begin{macrocode} +\newcounter{Maxaffil} +\setcounter{Maxaffil}{2} +% \end{macrocode} +% +% \subsection{Package Options} +% +% Options are provided to select some author and affiliation fonts, and +% certain values of |Maxaffil|, including 0 (always footnote mode) and +% infinity (always block mode). +% \begin{macrocode} +%<*!subpack&!209> +\DeclareOption{blocks}{\setcounter{Maxaffil}{\maxdimen}} +\DeclareOption{noblocks}{\setcounter{Maxaffil}{0}} +\DeclareOption{max2}{\setcounter{Maxaffil}{2}} +\DeclareOption{max3}{\setcounter{Maxaffil}{3}} +\DeclareOption{max4}{\setcounter{Maxaffil}{4}} +\DeclareOption{max5}{\setcounter{Maxaffil}{5}} +\DeclareOption{max6}{\setcounter{Maxaffil}{6}} +\DeclareOption{auth-sc}{\renewcommand\Authfont{\scshape}} +\DeclareOption{auth-sc-lg}{\renewcommand\Authfont{\large\scshape}} +\DeclareOption{auth-lg}{\renewcommand\Authfont{\large}} +\DeclareOption{affil-sl}{\renewcommand\Affilfont{\slshape}} +\DeclareOption{affil-it}{\renewcommand\Affilfont{\itshape}} +\DeclareOption{german}{\renewcommand\Authand{, und }% + \renewcommand\Authands{, und }} +\ProcessOptions +%</!subpack&!209> +% \end{macrocode} +% +% \subsection{Supporting Macros} +% +% First declare some counters and flags. The number of authors, affiliations, +% and a flag to mark a new affiliation. +% \begin{macrocode} +\newcounter{authors} +\newcounter{affil} +\newif\ifnewaffil \newaffiltrue +% \end{macrocode} +% +% \begin{macro}{\AB@authnote} +% \begin{macro}{\AB@affilnote} +% The formatting of the footnote markers in the author and affiliation lines. +% The |\textsuperscript| command must be defined for 2.09 and provided for +% earlier version of \LaTeXe\ (before 1995/06/01). +% \begin{macrocode} +\newcommand\AB@authnote[1]{\textsuperscript{\normalfont#1}} +\newcommand\AB@affilnote[1]{\textsuperscript{\normalfont#1}} +%<209>\@ifundefined{textsuperscript}{\newcommand\textsuperscript[1]{$^{#1}$}}{} +%<!209>\providecommand\textsuperscript[1]{$^{#1}$} +% \end{macrocode} +% \end{macro}\end{macro} +% +% \begin{macro}{\AB@blk@and} +% The macro that comes between author blocks. Initially this is nothing other +% than setting the author font, but will be set to |\and| after the first +% invocation. Again, everything in this definition must be robust, either +% intrinsically or with |\protect| commands. The macro |\AB@setsep| +% sets |\@affilsep| to the author-affiliation separation. +% \begin{macrocode} +\newcommand\AB@blk@and{\protect\Authfont\protect\AB@setsep} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AB@pand} +% The `protected' version of |\and| that is inserted in |\AB@authors| between +% authors and affiliations; since it begins a new author block, it sets the +% font to the author font, and the interline spacing to the +% author\brsl{}affiliation spacing. +% \begin{macrocode} +\newcommand\AB@pand{\protect\and \protect\Authfont \protect\AB@setsep} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@sep1}\begin{macro}{\@sep2} +% The $n$th author in |\AB@authlist| is preceeded by +% |\@sep|$n$; this is defined as empty for $n$=1 and the as the +% two-author separation for $n$=2, to be altered later. +% \begin{macrocode} +\@namedef{@sep1}{} +\@namedef{@sep2}{\Authand} +% \end{macrocode} +% \end{macro}\end{macro} +% +% \begin{macro}{\AB@affilsep} +% \begin{macro}{\AB@affilsepx} +% What comes before the very first footnote affiliation, and before all +% successive affiliations. These should be separate lines within some +% tabular environment, so reset the font every time to the affiliation one. +% (Note: |\\| is robust in \LaTeXe, but not in 2.09; adding the |\protect| +% before |\\| does not hurt, though.) +% \begin{macrocode} +\newcommand\AB@affilsep{\protect\Affilfont} +\newcommand\AB@affilsepx{\protect\\\protect\Affilfont} +% \end{macrocode} +% \end{macro}\end{macro} +% +% \begin{macro}{\AB@setsep} +% \begin{macro}{\AB@resetsep} +% The current interline spacing within affiliations is |\@affilsep|; the +% initial spacing (between authors and first affiliation line) is +% |\affilsep|; switching |\@affilsep| between 0~pt and |\affilsep| is done +% with these macros. +% \begin{macrocode} +\newcommand\AB@setsep{\setlength{\@affilsep}{\affilsep}} +\newcommand\AB@resetsep{\setlength{\@affilsep}{\z@}} +% \end{macrocode} +% \end{macro}\end{macro} +% +% \begin{macro}{\AB@authlist} +% \begin{macro}{\AB@affillist} +% \begin{macro}{\AB@authors} +% There are three `lists' that are filled up with various commands: +% \begin{itemize} +% \item |\AB@authlist| containing all the authors; +% +% \item |\AB@affillist| containing all the affiliations; +% +% \item |\AB@authors| ($\equiv$|\@author|) containing the input of the +% standard \LaTeX\ |\author| command, a mixture of authors and +% affiliations, with blocks separated by |\and| commands. +% \end{itemize} +% |\AB@empty| is provided for testing the emptiness of |\AB@affillist| +% later. (Do not use |\@empty|, because that is not a `long' macro.) +% +% Here these lists are initialized. +% \begin{macrocode} +\newcommand\AB@authlist{} +\newcommand\AB@affillist{} +\newcommand\AB@authors{} +\newcommand\AB@empty{} +% \end{macrocode} +% \end{macro}\end{macro}\end{macro} +% +% \begin{macro}{\AB@author} +% \changes{1.1}{1997 Aug 28}{Initialize to existing \cs{@author}} +% \changes{1.1a}{1998 Jul 14}{Define \cs{@author} for 2.09} +% The |\AB@author| macro holds the argument of the last issued |\author| +% command, normally stored in |\@author|. Equate these now in case +% |\author| was issued before the class and/or packages were loaded, +% something that is allowed in standard \LaTeX. Of course, the new +% features with |\affil| and multiple |\author| commands will not +% function before this package is loaded. +% +% For \LaTeX~2.09, must provisionally define |\@author|. +% \begin{macrocode} +%<209>\@ifundefined{@author}{\def\@author}{} +\xdef\AB@author{\noexpand\AB@blk@and\@author} +% \end{macrocode} +% \end{macro} +% +% \subsection{User Interfacing Commands} +% +% \begin{macro}{\author} +% Three lists are maintained for authors and affiliations. In |\AB@authors|, +% the text for the author block is stored; both |\author| and |\affil| add +% their arguments to this list, with |\\| between author and affiliation, and +% |\and| between the affiliation and the next author text. If one only uses +% the |\author| command (standard \LaTeX) one must add these separators +% explicitly in the argument. +% +% In addition, both |\author| and |\affil| store their arguments in +% |\AB@authlist| and |\AB@affillist|, adding footnote marks determined either +% automatically, or by the optional arguments. +% +% Finally, |\@author| will be made up either by |AB@author|, |\AB@authors|, or +% |\AB@authlist| plus |\AB@affillist|. +% +% Consequently, |\author| and |\affil| are fairly complex. +% \begin{macrocode} +%<209>\renewcommand\author{\@ifnextchar[%] +%<209> {\@Xauthor}{\@Xauthor[]}} +%<209>\def\@Xauthor[#1]#2% +%<!209>\renewcommand\author[2][]% +% \end{macrocode} +% The flag |\ifnewaffil| is set by |\affil| to tell |\author| that a new +% author block is beginning. This flag is set to \meta{false} at the end +% if this macro. +% \begin{macrocode} + {\ifnewaffil\addtocounter{affil}{1}% + \edef\AB@thenote{\arabic{affil}}\fi +% \end{macrocode} +% Argument |#1| is the optional footnote marker; if it is present, force the +% footnote mode by setting |Maxaffil| counter to zero. +% \begin{macrocode} + \if\relax#1\relax\def\AB@note{\AB@thenote}\else\def\AB@note{#1}% + \setcounter{Maxaffil}{0}\fi +% \end{macrocode} +% The author list in |\AB@authlist| is to have commas (|\Authsep|) between +% the names, nothing before the first one, and `and' (|\Authands|) before the +% last one. If only two names are present, they are separated by |\Authand|. +% To accomplish this, place |@sep|$n$ before author $n$ which +% is defined to be |\Authands|; at the same time, define the previous one to +% be |\Authsep|, taking care that |\@sep1| (empty) is never redefined, and +% that |\@sep2| (|\Authand|) is only redefined after the third author. Note +% that at this point in the coding, the |authors| counter is not yet +% incremented, so its value is $n-1$. +% \begin{macrocode} + \ifnum\value{authors}>1\relax + \@namedef{@sep\number\c@authors}{\Authsep}\fi + \addtocounter{authors}{1}% +% \end{macrocode} +% Put the new author text in |#2| into the lists |\AB@authors| and +% |\AB@authlist|. Because of the expansion method of getting the existing +% contents of these lists, all commands in the arguments must be robust. For +% this reason, make |\thanks| and |\footnote| robust (they normally are +% fragile). +% +% Note that every new line inserted into |\AB@authors| must contain +% formatting declarations, like |\Authfont| and |\Affilfont|. +% The newline command |\\| switches to affiliation, with extra interline +% spacing and a different font. The extra spacing is in |\@affilsep| which is +% either zero or |\affilsep|, as set by commands |\AB@resetsep| and +% |\AB@setsep|. The extra spacing is meant only to come between author and +% first affiliation lines. +% +% The newline command should behave differently in |\AB@authlist|; the +% |\authorcr| macro is adequate for this (new line and |\Authfont|). +% +% Reminder: the font declarations must be made on each new line since +% |\@author| is normally placed within a |tabular| environment where each +% line has local scope so all declarations and definitions apply only within +% it. +% \begin{macrocode} + \begingroup + \let\protect\@unexpandable@protect \let\and\AB@pand + \def\thanks{\protect\thanks}\def\footnote{\protect\footnote}% + \@temptokena=\expandafter{\AB@authors}% + {\def\\{\protect\\[\@affilsep]\protect\Affilfont + \protect\AB@resetsep}% +% \end{macrocode} +% To allow for the standard \LaTeX\ syntax with only one |\author| command +% for everything, put the argument |#2| into |\AB@author| with the +% appropriate preamble |\AB@blk@and|. If |\affil| is never called, this +% will be the final content of |\@author|. Otherwise it will become +% |\AB@authors|. Here the previous author is |\AB@au@str| is put into +% |\AB@authors|, and then |#2| is stored for the next |\author| or |\affil| +% call. |\AB@as| is the separator between authors in one sub-block; |\AB@las| +% is the separator before the last author in a sub-block; this is entered by +% |\affil| which signals the end of a sub-block of authors. +% (This delayed entry method cannot be used for |\AB@authlist| because there +% one needs to know the very last author, but one never knows if another +% |\affil| command might come along.) +% \begin{macrocode} + \xdef\AB@author{\AB@blk@and#2}% + \ifnewaffil\gdef\AB@las{}\gdef\AB@lasx{\protect\Authand}\gdef\AB@as{}% + \xdef\AB@authors{\the\@temptokena\AB@blk@and}% + \else + \xdef\AB@authors{\the\@temptokena\AB@as\AB@au@str}% + \global\let\AB@las\AB@lasx\gdef\AB@lasx{\protect\Authands}% + \gdef\AB@as{\Authsep}% + \fi + \gdef\AB@au@str{#2}}% + \@temptokena=\expandafter{\AB@authlist}% + \let\\=\authorcr + \xdef\AB@authlist{\the\@temptokena + \protect\@nameuse{@sep\number\c@authors}% + \protect\Authfont#2\AB@authnote{\AB@note}}% + \endgroup +% \end{macrocode} +% Define |\@sep|$n$ preceeding the current author to be |\Authands|, in case +% this should turn out to be the last author. If another author comes, he +% will redefine this (see above). +% \begin{macrocode} + \ifnum\value{authors}>2\relax + \@namedef{@sep\number\c@authors}{\Authands}\fi + \newaffilfalse +} +% \end{macrocode} +% +% For \LaTeX~2.09, we must define this \LaTeXe\ macro. +% \begin{macrocode} +%<209>\def\@unexpandable@protect{\noexpand \protect \noexpand} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\authorcr} +% In the author blocks made up with the |\author| command alone, the |\\| +% command is used to start a new line and to switch to affiliation formatting. +% In order to force a new line within the author line, use |\authorcr|. +% \begin{macrocode} +\newcommand\authorcr{\protect\\ \protect\Authfont \protect\AB@setsep}% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\affil} +% The affiliation information is also written into |\AB@authors| and +% |\AB@affillist|. The |\ifnewaffil| flag is set to inform |\author|, the +% `blank-or-and' macro |\AB@blk@and| is set to (protected) `and', and if +% there is an optional argument, the counter |Maxaffil| is set to zero to +% force footnote mode. +% \begin{macrocode} +%<209>\newcommand\affil{\@ifnextchar[%] +%<209> {\@Xaffil}{\@Xaffil[]}} +%<209>\def\@Xaffil[#1]#2% +%<!209>\newcommand\affil[2][]% + {\newaffiltrue\let\AB@blk@and\AB@pand + \if\relax#1\relax\def\AB@note{\AB@thenote}\else\def\AB@note{#1}% + \setcounter{Maxaffil}{0}\fi +% \end{macrocode} +% As for |\author|, the newline command must be highjacked and altered. For +% |\AB@authors|, it issues a new line and declares the affiliation font. For +% |\AB@authlist|, where each affiliation is to appear on a single line, it is +% converted into a comma. +% \begin{macrocode} + \begingroup + \let\protect\@unexpandable@protect + \def\thanks{\protect\thanks}\def\footnote{\protect\footnote}% + \@temptokena=\expandafter{\AB@authors}% + {\def\\{\protect\\\protect\Affilfont}\xdef\AB@temp{#2}}% + \xdef\AB@authors{\the\@temptokena\AB@las\AB@au@str + \protect\\[\affilsep]\protect\Affilfont\AB@temp}% + \gdef\AB@las{}\gdef\AB@au@str{}% + {\def\\{, \ignorespaces}\xdef\AB@temp{#2}}% + \@temptokena=\expandafter{\AB@affillist}% + \xdef\AB@affillist{\the\@temptokena \AB@affilsep + \AB@affilnote{\AB@note}\protect\Affilfont\AB@temp}% + \endgroup +% \end{macrocode} +% The item before each affiliation is |\AB@affilsep|, which changes from its +% initial definition to |\AB@affilsepx| after the first call. +% \begin{macrocode} + \let\AB@affilsep\AB@affilsepx +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@author} +% Define |\@author| to be the last |\author| call if |\affil| was +% never used (standard \LaTeX), or define it to be either |\AB@authors| or a +% combination of |\AB@authlist| and |\AB@authlist| depending on number of +% affiliations. +% +% The standard classes put any footnote markers (with |\thanks| or +% |\footnote|) into |\rlap| so they overlap with punctuation. Unfortunately, +% they also overlap any other affiliation footnote markers. Thus turn off +% |\rlap| for footnote style. Since |\@author| is normally called within +% some environment, this change is local. +% \begin{macrocode} +\def\@author{} +\renewcommand\@author{\ifx\AB@affillist\AB@empty\AB@author\else + \ifnum\value{affil}>\value{Maxaffil}\def\rlap##1{##1}% + \AB@authlist\\[\affilsep]\AB@affillist + \else \AB@authors\fi\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\maketitle} +% \changes{1.3}{2001 Feb 27}{Modify standard macro} +% The standard definitions of |\maketitle| place the |\@author| text in a +% |tabular| environment, which is not appropriate for the long author list +% possible with \texttt{\filename}. Instead, use the |center| environment. +% Other packages that call \texttt{\filename} such as \texttt{mpaehead} redefine +% |\maketitle| accordingly. But if \texttt{\filename} is used on its own, this +% will not be done. Thus highjack the |\maketitle| command and redefine +% |tabular| to be |center|. +% \begin{macrocode} +\let\AB@maketitle=\maketitle +\def\maketitle + {{\renewenvironment{tabular}[2][]{\begin{center}} + {\end{center}} + \AB@maketitle}} +%</package> +% \end{macrocode} +% \end{macro} +% +% \Finale diff --git a/Master/texmf-dist/source/latex/preprint/authblk.ins b/Master/texmf-dist/source/latex/preprint/authblk.ins new file mode 100644 index 00000000000..2954984cf9a --- /dev/null +++ b/Master/texmf-dist/source/latex/preprint/authblk.ins @@ -0,0 +1,64 @@ +% File: authblk.ins +% Copyright 1999 Patrick W. Daly +% +% This file can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% +% It is an installation file for extracting package and driver +% files from the original source file. Simply process it under +% TeX or LaTeX. + +\input docstrip + +\preamble +============================================= +IMPORTANT NOTICE: + +This program can be redistributed and/or modified under the terms +of the LaTeX Project Public License Distributed from CTAN +archives in directory macros/latex/base/lppl.txt; either +version 1 of the License, or any later version. + +This is a generated file. +It may not be distributed without the original source file \inFileName. + +Full documentation can be obtained by LaTeXing that original file. +Only a few abbreviated comments remain here to describe the usage. +============================================= +\endpreamble +\postamble + +<<<<< End of generated file <<<<<< +\endpostamble + +\declarepreamble\driver +============================================ +This is the driver file to produce the LaTeX documentation +from the original source file \inFileName. + +Make changes to it as needed. (Never change the file \inFileName!) +============================================ +\endpreamble + +\declarepostamble\driverq + +End of documentation driver file. +\endpostamble + +\keepsilent +\askforoverwritefalse + +\generate{\file{authblk.sty}{\from{authblk.dtx}{package}} + \file{authblk.drv}{\usepreamble\driver\usepostamble\driverq + \from{authblk.dtx}{driver}} + } + +\obeyspaces +\Msg{******************************************}% +\Msg{* For documentation, process authblk.dtx *}% +\Msg{* or the driver file authblk.drv *}% +\Msg{******************************************} + +\endbatchfile diff --git a/Master/texmf-dist/source/latex/preprint/balance.drv b/Master/texmf-dist/source/latex/preprint/balance.drv new file mode 100644 index 00000000000..19483d271d1 --- /dev/null +++ b/Master/texmf-dist/source/latex/preprint/balance.drv @@ -0,0 +1,52 @@ +%% +%% This is file `balance.drv', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% balance.dtx (with options: `driver') +%% ============================================ +%% This is the driver file to produce the LaTeX documentation +%% from the original source file balance.dtx. +%% +%% Make changes to it as needed. (Never change the file balance.dtx!) +%% ============================================ +%% Copyright 1993-1999 Patrick W Daly +%% Max-Planck-Institut f\"ur Aeronomie +%% Max-Planck-Str. 2 +%% D-37191 Katlenburg-Lindau +%% Germany +%% E-mail: daly@linmpi.mpg.de +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{balance.drv} + [1999/02/23 4.3 (PWD)] +\documentclass{ltxdoc} +%\documentclass[twoside]{ltxdoc} +%\documentclass[a4paper]{ltxdoc} +%\documentclass[twoside,a4paper]{ltxdoc} +\raggedbottom + + %** To include the detailed explanation of the coding, comment out + %** the next line +\OnlyDescription + + %** To produce a command index: add the following line for one run, + %** then run makeindex -s gind.ist natbib + %** and reprocess, with or without this line (much faster without) +% \EnableCrossrefs\CodelineIndex + + %** To produce a change history: add the following line for one run, + %** then run makeindex -s gglo.ist -o natbib.gls natbib.glo + %** and reprocess, with or without this line (faster without) +% \RecordChanges + +\DisableCrossrefs %May stay; zapped by \EnableCrossrefs +\CodelineNumbered %May stay + +\begin{document} + \DocInput{balance.dtx} +\end{document} +%% +%% End of documentation driver file. +%% +%% End of file `balance.drv'. diff --git a/Master/texmf-dist/source/latex/preprint/balance.dtx b/Master/texmf-dist/source/latex/preprint/balance.dtx new file mode 100644 index 00000000000..84efb28f4d3 --- /dev/null +++ b/Master/texmf-dist/source/latex/preprint/balance.dtx @@ -0,0 +1,541 @@ +% \iffalse THIS IS A META-COMMENT +%<*dtx> +\ProvidesFile +%======================================================================== + {BALANCE.DTX} +%======================================================================== +%</dtx> +%% Copyright 1993-1999 Patrick W Daly +%% Max-Planck-Institut f\"ur Aeronomie +%% Max-Planck-Str. 2 +%% D-37191 Katlenburg-Lindau +%% Germany +%% E-mail: daly@linmpi.mpg.de +% +% This program can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% +% This is a contributed file to the LaTeX2e system. +% ------------------------------------------------- +% This is a LaTeX package to balance the last two columns in twocolumn mode. +% Installation: +% LaTeX this file: creates docstrip installation file balance.ins +% AND the (LaTeX2e) documentation +% (La)TeX balance.ins: creates package files balance.sty, and optionally +% documentation driver balance.drv +% (balance.ins may be edited as needed) +% Docstrip options available: +% package - to produce a (LaTeX2e) package .sty file +% driver - to produce a driver file to print the documentation +% 209 - (with package) for package that runs under LaTeX 2.09 +% subpack - (with package) for coding included in other packages +%-------------------------------------------------------------------------- +%<*!subpack> +%<package&209>\def\ProvidesPackage#1#2] +%<package&209> {\typeout{Style option `#1'#2]}} +% +% *** Identify the package file:- +%<package&!209>\NeedsTeXFormat{LaTeX2e}[1994/06/01] +%<package>\ProvidesPackage{balance} +%</!subpack> +% +% *** Provide command to dislay module version +%<package&subpack>\def\ModuleVersion#1[#2]{} +%<package&subpack> \ModuleVersion{balance} +% +% *** Identify the driver file:- +%<driver>\NeedsTeXFormat{LaTeX2e} +%<driver>\ProvidesFile{balance.drv} +% +% *** The DATE, VERSION, and other INFO +%\fi +%\ProvidesFile{balance} + [1999/02/23 4.3 (PWD)] +% \changes{4.0}{1993 Oct 10}{First release with \texttt{docstrip}} +% \changes{4.0}{1993 Oct 20}{Change so \cs{balance} makes redefinitions +% and does not just set flag} +% \changes{4.1}{1994 May 16}{Convert to \LaTeXe} +% \changes{4.1a}{1994 Jun 22}{Update to first official release of \LaTeXe} +% \changes{4.1b}{1995 Jan 2}{Update documentation to PWD standard} +% \changes{4.2}{1995 Nov 7}{Fix up \cmd{\cleardoublepage}} +% \changes{4.2a}{1997 Mar 16}{Fix copyright for subpackage and other minor +% things} +% \changes{4.2b}{1997 Apr 29}{Conform to new \texttt{docstrip}} +% \changes{4.3}{1999 Feb 23}{Update copyright notice} +% +% \CheckSum{168} +% \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 +% Lower-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 +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% \iffalse +%<*install> +%^^A ============================================= +%^^A Here is the docstrip installation file +%^^A It is written on first LaTeX run if it +%^^A does not already exist +%^^A ============================================= +\begin{filecontents*}{balance.ins} +% File: balance.ins +% Copyright 1999 Patrick W. Daly +% +% This file can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% +% It is an installation file for extracting package and driver +% files from the original source file. Simply process it under +% TeX or LaTeX. + +\input docstrip + +\preamble +============================================= +IMPORTANT NOTICE: + +This program can be redistributed and/or modified under the terms +of the LaTeX Project Public License Distributed from CTAN +archives in directory macros/latex/base/lppl.txt; either +version 1 of the License, or any later version. + +This is a generated file. +It may not be distributed without the original source file \inFileName. + +Full documentation can be obtained by LaTeXing that original file. +Only a few abbreviated comments remain here to describe the usage. +============================================= +\endpreamble +\postamble + +<<<<< End of generated file <<<<<< +\endpostamble + +\declarepreamble\driver +============================================ +This is the driver file to produce the LaTeX documentation +from the original source file \inFileName. + +Make changes to it as needed. (Never change the file \inFileName!) +============================================ +\endpreamble + +\declarepostamble\driverq + +End of documentation driver file. +\endpostamble + +\keepsilent +\askforoverwritefalse + +\generate{\file{balance.sty}{\from{balance.dtx}{package}} + \file{balance.drv}{\usepreamble\driver\usepostamble\driverq + \from{balance.dtx}{driver}} + } + +\obeyspaces +\Msg{******************************************}% +\Msg{* For documentation, process balance.dtx *}% +\Msg{* or the driver file balance.drv *}% +\Msg{******************************************} + +\endbatchfile +\end{filecontents*} +%</install> +%<*driver> +\documentclass{ltxdoc} +%<driver>%\documentclass[twoside]{ltxdoc} +%<driver>%\documentclass[a4paper]{ltxdoc} +%<driver>%\documentclass[twoside,a4paper]{ltxdoc} +\raggedbottom + + %** To include the detailed explanation of the coding, comment out + %** the next line +\OnlyDescription + + %** To produce a command index: add the following line for one run, + %** then run makeindex -s gind.ist natbib + %** and reprocess, with or without this line (much faster without) +%<driver>% \EnableCrossrefs\CodelineIndex + + %** To produce a change history: add the following line for one run, + %** then run makeindex -s gglo.ist -o natbib.gls natbib.glo + %** and reprocess, with or without this line (faster without) +%<driver>% \RecordChanges + +\DisableCrossrefs %May stay; zapped by \EnableCrossrefs +\CodelineNumbered %May stay + +\begin{document} + \DocInput{balance.dtx} +\end{document} +%</driver> +% \fi +% +% \DoNotIndex{\begin,\CodelineIndex,\CodelineNumbered,\def,\DisableCrossrefs} +% \DoNotIndex{\DocInput,\documentclass,\EnableCrossrefs,\end,\GetFileInfo} +% \DoNotIndex{\NeedsTeXFormat,\OnlyDescription,\RecordChanges,\usepackage} +% \DoNotIndex{\ProvidesClass,\ProvidesPackage,\ProvidesFile,\RequirePackage} +% \DoNotIndex{\LoadClass,\PassOptionsToClass,\PassOptionsToPackage} +% \DoNotIndex{\DeclareOption,\CurrentOption,\ProcessOptions,\ExecuteOptions} +% \DoNotIndex{\AtEndOfClass,\AtEndOfPackage,\AtBeginDocument,\AtEndDocument} +% \DoNotIndex{\InputIfFileExists,\IfFileExists,\ClassError,\PackageError} +% \DoNotIndex{\ClassWarning,\PackageWarning,\ClassWarningNoLine} +% \DoNotIndex{\PackageWarningNoLine,\ClassInfo,\PackageInfo,\MessageBreak} +% \DoNotIndex{\space,\protect,\DeclareRobustCommand,\CheckCommand} +% \DoNotIndex{\newcommand,\renewcommand,\providecommand\newenvironment} +% \DoNotIndex{\renewenvironment,\newif,\newlength,\newcounter,\setlength} +% \DoNotIndex{\setcounter,\if,\ifx,\ifcase,\ifnum,\ifdim,\else,\fi} +% \DoNotIndex{\texttt,\textbf,\textrm,\textsl,\textsc} +% \DoNotIndex{\textup,\textit,\textmd,\textsf,\emph} +% \DoNotIndex{\ttfamily,\rmfamily,\sffamily,\mdseries,\bfseries,\upshape} +% \DoNotIndex{\slshape,\scshape,\itshape,\em,\LaTeX,\LaTeXe} +% \DoNotIndex{\filename,\fileversion,\filedate,\let} +% \DoNotIndex{\@@warning,\@M,\@colht,\@combinedblfloats,\@dblfloatplacement} +% \DoNotIndex{\@firstcolumnfalse,\@firstcolumntrue,\@leftcolumn,\@outputbox} +% \DoNotIndex{\@outputdblcol,\@outputpage,\@startdblcolumn,\@tempdima} +% \DoNotIndex{\@whilesw,\advance,\baselineskip,\begingroup,\box,\columnseprule} +% \DoNotIndex{\columnwidth,\copy,\dimen,\divide,\dp,\else,\endgroup,\fi} +% \DoNotIndex{\global,\hbox,\hfil,\hss,\ht,\if@fcolmade,\if@firstcolumn} +% \DoNotIndex{\if@twocolumn,\ifdim,\kern,\loop,\multiply,\newdimen} +% \DoNotIndex{\outputpenalty,\penalty,\repeat,\setbox,\splittopskip} +% \DoNotIndex{\string,\textwidth,\topskip,\unvbox,\vbadness,\vbox} +% \DoNotIndex{\vfil,\vrule,\vsplit} +% +% \setcounter{IndexColumns}{2} +% \setlength{\IndexMin}{10cm} +% \setcounter{StandardModuleDepth}{1} +% +% \GetFileInfo{balance} +% +% \title{\bfseries Balancing the Two Columns of Text on the Last Page} +% +% \author{Patrick W. Daly} +% +% \date{This paper describes package \texttt{\filename}\\ +% version \fileversion{} from \filedate\\[1ex] +% \textsl{It is part of the \texttt{preprint} collection of packages} +% } +% +% \maketitle +% +% \pagestyle{myheadings} +% \markboth{P. W. Daly}{BALANCING TWO COLUMN TEXT} +% +%^^A In order to keep all marginal notes on the one (left) side: +%^^A (otherwise they switch sides disasterously with twoside option) +% \makeatletter \@mparswitchfalse \makeatother +% +%\begin{small}\begin{center}\textbf{Summary}\end{center} +% The stripped version of this file contains the following brief description: +%\iffalse +%<*package&!subpack> +%\fi +% \begin{verbatim} + % In order to balance the columns on a page, \balance must be given + % somewhere within the first column. To turn off the feature, give + % \nobalance. One has to look at the unbalanced text first to decide + % where best to place \balance. +% \end{verbatim} +%\iffalse + %----------------------------------------------------------- +%</package&!subpack> +%\fi +%\end{small} +% +% \section{Introduction} +% When a \LaTeX{} document is to be set in two-column mode, one can +% add |twocolumn| as an option to |\documentstyle| (\LaTeX~2.09) +% or to |\documentclass| (\LaTeXe), or one can use the +% |\twocolumn| command in the text. In either case, the columns on the last +% page, or those before a |\cleardoublepage| command, will be of unequal +% height. This is because \LaTeX{} views the columns as pages which are +% just output as pairs, and it no longer knows about the left-hand column +% when a short right-hand one is finished. +% +% The macros in this package solve this problem by modifying the output +% routines in two-column mode. +% +% \section{Invoking the Package} +% The macros in this package are included in the main document +% with the |\usepackage| command of \LaTeXe, +% \begin{quote} +% |\documentclass[..,twocolumn,..]{...}|\\ +% |\usepackage{|\texttt{\filename}|}| +% \end{quote} +% There are no \LaTeXe{} options for this package. +% +% Alternatively, the name of the package is added as an option to the +% |\documentstyle| command in \LaTeX~2.09 compatibility mode, as +% \begin{quote} +% |\documentstyle[..,twocolumn,|\texttt{\filename}|..]{...}| +% \end{quote} +% +% \section{Usage} +% Including the \texttt{\filename} package as shown above does not activate it +% immediately. There are a number of reasons for this. +% \begin{enumerate} +% \item It could be that a newer (or much older) version of \LaTeX{} is +% being used for which the modified |\output| routines are +% incompatible; in this case, the new routines must be left inactive. +% +% \item Sometimes the modified output routine does not work well for normal +% pages, especially with floats (figures and tables) or footnotes. +% +% \end{enumerate} +% For these reasons, it is thought better to have the modified output +% routines left inactive, and to turn them on only when needed. +% \DescribeMacro{\balance} +% This is done with the command |\balance|, which should be issued +% somewhere in the text of what would be the first column of the last page +% without balanced columns. If it is issued too late, i.e., in the second +% column, then a warning message is printed that balancing may not take +% place. +% +% \DescribeMacro{\nobalance} +% To turn off the balancing routines, call |\nobalance|. This might be +% useful where there are many `last' pages, say at the end of book +% chapters. The |\balance| command should be given for each page that +% needs balancing, and then turned off at the end of the second column. +% +% It might well be that |\balance| can be left on all the time, but one +% should check the output carefully, and turn it off if need be. +% +% \section{An Alternative} +% Making multicolumn text with Mittelbach's {\tt multicol} package is +% perhaps a better method. It balances automatically, and allows more than +% just two columns. Never use \texttt{\filename} together with {\tt multicol}! +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \section{Options with \texttt{docstrip}} +% The source \texttt{.dtx} file is meant to be processed with +% \texttt{docstrip}, for which a number of options are available: +% \begin{description} +% \item[\tt package] to produce a \texttt{.sty} package file with most +% comments removed; +% \item[\tt 209] for a package file that will also run under the older +% \LaTeX~2.09 and not just under the newer (mid-1994) \LaTeXe; +% \item[\tt subpack] (together with \texttt{package}) for coding that is to +% be included inside a larger package; even more comments are removed, +% as well as \LaTeXe{} option handling and identification; +% \item[\tt driver] to produce a driver \texttt{.drv} file that will print +% out the documentation under \LaTeXe; with the \texttt{209} option, +% a driver \texttt{.209} file is also produced, for printing the +% documentation under \LaTeX~2.09. +% \end{description} +% The source file \texttt{\filename.dtx} is itself a driver file and can +% be processed directly by \LaTeXe. +% +% \section{The Coding} +% This section presents and explains the actual coding of the macros. +% It is nested between |%<*package>| and |%</package>|, which +% are indicators to \texttt{docstrip} that this coding belongs to the package +% file. +% +% The \texttt{docstrip} option |<subpack>| should only be called if the +% coding is to be included as part of another package, in which case the +% announcement text and \LaTeXe{} options are suppressed. +% +% An inferior version of this coding is provided for running as a +% style file under \LaTeX~2.09. Code lines belonging to this are +% indicated with guard |<209>|; those for LaTeXe{} only with |<!209>|. +% +% \subsection{Altering the Standard {\tt\bslash output} Routines} +% The column balancing procedure here involves making changes to the +% standard output routines in \LaTeX. I normally do not like assuming +% anything from {\tt latex.tex} because it may have been different in +% earlier versions, and may change again. There I try as much as possible +% to save current definitions of internal macros and then simply add +% revisions. +% +% In this case, that is not possible. I have had to take the routine +% |\@outputdblcol| from \LaTeX{} version 2.09, (1992 March~25) as basis. +% However, I notice that they have not changed for many versions, so that +% maybe there is some stability here. +% +% The newer \LaTeXe{} version (1994 Dec.~01) also has the same definition +% of |\@outputdblcol|, so there should be no problems of compatibility +% here. +% +% In earlier versions of \texttt{\filename}, |\@outputdblcol| was changed +% such that +% a flag would activate the new coding if set, otherwise the old coding +% took place. This assumes that the `old' coding is known, because I give +% it explicitly in the new definition. This is where problems could arise +% if |\@outputdblcol| is ever changed. +% +% I now do this differently. The old definition of |\@outputdblcol| is +% stored (without knowing what it is), and the |\balance| command redefines +% it. Without giving |\balance|, one has the default output routines as +% though \texttt{\filename} were never selected. This gives the user the +% chance to turn everything off if any problems should arise. +% +% Since the balancing act does not always work for normal pages (where the +% two columns are full) especially when floats are involved, it is better +% to turn it on with |\balance| only where it is needed. It may then be +% turned off again with |\nobalance|. +% +% \subsection{The Principle Behind Balancing Columns} +% Let me first explain how |\@outputdblcol| normally works. By the time it +% is called, the accumulated text for the `page' (\TeX{} considers each +% column to be a page at this point) is contained in the box |\@outputbox|. +% The routine checks if this is the first column, and if so stuffs +% |\@outputbox| into the box |\@leftcolumn|; it then toggles the +% |\if@firstcolumn| flag. On the next call to |\@outputdblcol|, it combines +% |\@leftcolumn| with |\@outputbox| side by side on a single page, all +% stored in |\@outputbox|. +% +% For column balancing, the procedure is slightly different. If it is the +% first column, then the height of the column (|\@colht| = |\textheight| +% minus double-column floats and footnotes) is doubled and the contents of +% |\@outputbox| are dumped back into the processing. The height must be +% doubled temporarily to allow this, otherwise the |\output| routines will +% be immediately called again. On the second column, the new routine +% |\@BAlancecol| is called to split |\@outputbox| into two equally high +% pieces of text, stored in |\@leftcolumn| and |\@outputbox|, which are +% then placed side by side as usual. +% +% \subsection{Macro Definitions} +% \begin{macro}{\@BAlancecol} +% \changes{4.0}{1993 Nov 1}{Add \cmd{\vfil} after +% \cmd{\unvbox1} to prevent underfull vbox} +% \changes{4.1}{1994 May 16}{New name for \cmd{\@balancecol}, to conform +% more with newer conventions for package programming.} +% \changes{4.1a}{1994 Jun 22}{Use \cmd{\newcommand} instead of \cmd{\def}} +% We begin by defining |\@BAlancecol|, the routine that splits +% |\@outputbox| into two nearly equally high boxes, which are then stored +% in boxes |\@leftcolumn| and |\@outputbox|. This routine is almost +% identical with that of Knuth in the \TeX{}Book (macro |\balancecolumns| +% on page~417). The loop keeps going until the first column is less than +% the second in height, making 1~pt changes in the specification each time. +% \begin{macrocode} +%<*package> +\newcommand{\@BAlancecol}{\if@twocolumn + \setbox0=\vbox{\unvbox\@outputbox} \@tempdima=\ht0 + \advance\@tempdima by \topskip \advance\@tempdima + by -\baselineskip \divide\@tempdima by 2 + \splittopskip=\topskip + {\vbadness=\@M \loop \global\setbox3=\copy0 + \global\setbox1=\vsplit3 to \@tempdima + \ifdim\ht3>\@tempdima \global\advance\@tempdima by 1pt \repeat} + \setbox\@leftcolumn=\vbox to \@tempdima{\unvbox1\vfil} + \setbox\@outputbox=\vbox to \@tempdima + {\dimen2=\dp3\unvbox3\kern-\dimen2 + \vfil} + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@BAdblcol} +% \changes{4.1}{1994 May 16}{New name for \cmd{\@baldblcol}, to conform +% more with newer conventions for package programming.} +% \changes{4.1a}{1994 Jun 22}{Use \cmd{\newcommand} instead of \cmd{\def}} +% \changes{4.1a}{1994 Jun 22}{Use \cmd{\PackageWarningNoLine} instead of +% \cmd{\@@warning}} +% Now define the revised routine |\@outputdblcol|, and name it +% |\@BAdblcol|. In the first column, it just puts |\@outputbox| back into +% the processing with a doubled column height (|\@colht|). In the second +% column, it calls |\@BAlancecol| and the places the boxes |\@leftcolumn| +% and |\@outputbox| side by side in almost the same way that the original +% |\@outputdblcol| does. The difference is that the final vbox is made to +% be |\@colht| high and a |\vfil| must be added below to fill up the +% missing space. In the original, the column boxes themselves are |\@colht| +% high, so this is not necessary. If this feature were left off, then the +% final box would not have the correct height, something that is noticeable +% when a footline is added at the bottom. +% \begin{macrocode} +\newif\if@BAlanceone +\global\@BAlanceonefalse +\newdimen\oldvsize +\newcommand{\@BAdblcol}{\if@firstcolumn + \unvbox\@outputbox \penalty\outputpenalty + \global\oldvsize=\@colht \global\multiply \@colht by 2 + \global\@BAlanceonetrue + \global\@firstcolumnfalse + \else \global\@firstcolumntrue + \if@BAlanceone + \global\@BAlanceonefalse\@BAlancecol + \global\@colht=\oldvsize \else +%<!209> \PackageWarningNoLine{balance} +%<209> \@@warning + {You have called \protect\balance\space +%<!209> in second column\MessageBreak +%<209> in second column^^J + Columns might not be balanced}\fi + \setbox\@outputbox\vbox to \@colht{\hbox to\textwidth + {\hbox to\columnwidth {\box\@leftcolumn \hss}\hfil + \vrule width\columnseprule\hfil \hbox to\columnwidth + {\box\@outputbox \hss}}\vfil}\@combinedblfloats + \@outputpage \begingroup \@dblfloatplacement + \@startdblcolumn \@whilesw\if@fcolmade \fi + {\@outputpage\@startdblcolumn}\endgroup + \fi} +% \end{macrocode} +% The flag |\if@BAlanceone| seems redundant, since it is always the +% complement of |\if@firstcolumn|. However, its function is to ensure that +% the |\balance| command, that activates |\@BAdblcol|, actually occurs +% before the first column of text is completed. If this is not the case, if +% |\balance| is issued too late, then the procedure cannot function. In +% this case, |\@BAdblcol| is entered with both |\if@firstcolumn| and +% |\if@BAlanceone| set \meta{false}, so that the call to |\@BAlancecol| is +% suppressed and warning message is printed. +% \end{macro} +% +% \begin{macro}{\cleardoublepage} +% \changes{4.2}{1995 Nov 07}{Add revised definition for balanced mode} +% A new version of |\cleardoublepage| is necessary when |\balance| is +% active. The regular command adds two |\newpage| commands on an even page +% in two column mode, since each |\newpage| only starts a new column. +% However, when |\balance| is active, each |\newpage| makes two balanced +% columns, to it actually starts a new page, and not just a new column. +% \begin{macrocode} +\newcommand{\@BAcleardblpage}{\clearpage\if@twoside \ifodd\c@page\else + \hbox{}\newpage\fi\fi} +\newcommand{\@@cleardblpage}{} +\let\@@cleardblpage=\cleardoublepage +% \end{macrocode} +% \end{macro} +% + +% \begin{macro}{\balance} +% \changes{4.0}{1993 Oct 20}{Change from setting flag to redefining output +% routine.} +% \changes{4.1a}{1994 Jun 22}{Use \cmd{\newcommand} instead of \cmd{\def}} +% \changes{4.2}{1995 Nov 07}{Add revised \cmd{\cleardoublepage}} +% The command that activates the balancing replaces |\@outputdblcol| +% with the new |\@BAdblcol|. +% \begin{macrocode} +\newcommand{\@@utputdblcol}{} +\let\@@utputdblcol=\@outputdblcol +\newcommand{\balance}{\global\let\@outputdblcol=\@BAdblcol + \global\let\cleardoublepage=\@BAcleardblpage} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\nobalance} +% \changes{4.0}{1993 Oct 20}{Change from setting flag to restoring +% original output routine.} +% \changes{4.1a}{1994 Jun 22}{Use \cmd{\newcommand} instead of \cmd{\def}} +% \changes{4.2}{1995 Nov 07}{Add revised \cmd{\cleardoublepage}} +% To turn off the balancing routine, call |\nobalance|. +% \begin{macrocode} +\newcommand{\nobalance}{\global\let\@outputdblcol=\@@utputdblcol + \global\let\cleardoublepage=\@@cleardblpage} +%</package> +% \end{macrocode} +% \end{macro} +% +% \Finale diff --git a/Master/texmf-dist/source/latex/preprint/balance.ins b/Master/texmf-dist/source/latex/preprint/balance.ins new file mode 100644 index 00000000000..74157f708ee --- /dev/null +++ b/Master/texmf-dist/source/latex/preprint/balance.ins @@ -0,0 +1,64 @@ +% File: balance.ins +% Copyright 1999 Patrick W. Daly +% +% This file can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% +% It is an installation file for extracting package and driver +% files from the original source file. Simply process it under +% TeX or LaTeX. + +\input docstrip + +\preamble +============================================= +IMPORTANT NOTICE: + +This program can be redistributed and/or modified under the terms +of the LaTeX Project Public License Distributed from CTAN +archives in directory macros/latex/base/lppl.txt; either +version 1 of the License, or any later version. + +This is a generated file. +It may not be distributed without the original source file \inFileName. + +Full documentation can be obtained by LaTeXing that original file. +Only a few abbreviated comments remain here to describe the usage. +============================================= +\endpreamble +\postamble + +<<<<< End of generated file <<<<<< +\endpostamble + +\declarepreamble\driver +============================================ +This is the driver file to produce the LaTeX documentation +from the original source file \inFileName. + +Make changes to it as needed. (Never change the file \inFileName!) +============================================ +\endpreamble + +\declarepostamble\driverq + +End of documentation driver file. +\endpostamble + +\keepsilent +\askforoverwritefalse + +\generate{\file{balance.sty}{\from{balance.dtx}{package}} + \file{balance.drv}{\usepreamble\driver\usepostamble\driverq + \from{balance.dtx}{driver}} + } + +\obeyspaces +\Msg{******************************************}% +\Msg{* For documentation, process balance.dtx *}% +\Msg{* or the driver file balance.drv *}% +\Msg{******************************************} + +\endbatchfile diff --git a/Master/texmf-dist/source/latex/preprint/figcaps.drv b/Master/texmf-dist/source/latex/preprint/figcaps.drv new file mode 100644 index 00000000000..394a71e3ece --- /dev/null +++ b/Master/texmf-dist/source/latex/preprint/figcaps.drv @@ -0,0 +1,52 @@ +%% +%% This is file `figcaps.drv', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% figcaps.dtx (with options: `driver') +%% ============================================ +%% This is the driver file to produce the LaTeX documentation +%% from the original source file figcaps.dtx. +%% +%% Make changes to it as needed. (Never change the file figcaps.dtx!) +%% ============================================ +%% Copyright 1993-1999 Patrick W Daly +%% Max-Planck-Institut f\"ur Aeronomie +%% Max-Planck-Str. 2 +%% D-37191 Katlenburg-Lindau +%% Germany +%% E-mail: daly@linmpi.mpg.de +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{figcaps.drv} + [1999/02/23 4.7 (PWD)] +\documentclass{ltxdoc} +%\documentclass[twoside]{ltxdoc} +%\documentclass[a4paper]{ltxdoc} +%\documentclass[twoside,a4paper]{ltxdoc} +\raggedbottom + + %** To include the detailed explanation of the coding, comment out + %** the next line +\OnlyDescription + + %** To produce a command index: add the following line for one run, + %** then run makeindex -s gind.ist natbib + %** and reprocess, with or without this line (much faster without) +% \EnableCrossrefs\CodelineIndex + + %** To produce a change history: add the following line for one run, + %** then run makeindex -s gglo.ist -o natbib.gls natbib.glo + %** and reprocess, with or without this line (faster without) +% \RecordChanges + +\DisableCrossrefs %May stay; zapped by \EnableCrossrefs +\CodelineNumbered %May stay + +\begin{document} + \DocInput{figcaps.dtx} +\end{document} +%% +%% End of documentation driver file. +%% +%% End of file `figcaps.drv'. diff --git a/Master/texmf-dist/source/latex/preprint/figcaps.dtx b/Master/texmf-dist/source/latex/preprint/figcaps.dtx new file mode 100644 index 00000000000..e6c08432cd6 --- /dev/null +++ b/Master/texmf-dist/source/latex/preprint/figcaps.dtx @@ -0,0 +1,1634 @@ +% \iffalse THIS IS A META-COMMENT +%<*dtx> +\ProvidesFile +%======================================================================== + {FIGCAPS.DTX} +%======================================================================== +%</dtx> +%% Copyright 1993-1999 Patrick W Daly +%% Max-Planck-Institut f\"ur Aeronomie +%% Max-Planck-Str. 2 +%% D-37191 Katlenburg-Lindau +%% Germany +%% E-mail: daly@linmpi.mpg.de +% +% This program can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% +% This is a contributed file to the LaTeX2e system. +% ------------------------------------------------- +% This is a LaTeX package to put tables and figure captions at the end of an +% article even though the environments appear in the text. +% Installation: +% LaTeX this file: creates docstrip installation file figcaps.ins +% AND the (LaTeX2e) documentation +% (La)TeX figcaps.ins: creates package files figcaps.sty, and optionally +% documentation driver figcaps.drv +% (figcaps.ins may be edited as needed) +% Docstrip options available: +% package - to produce a (LaTeX2e) package .sty file +% plates - to include plate environments, just like figures +% longtab - to include longtable environment, for longtable package (2e) +% sublab - to include coding for use with sublabel.sty +% toc - to enable tables of contents to be used; writes to auxiliary +% files .pot and pof instead of .lof and .lot +% driver - to produce a driver file to print the documentation +% 209 - (with package) for package that runs under LaTeX 2.09 +% subpack - (with package) for coding included in other packages +% agu - (with package,subpack) for inclusion in aguplus package +% egs - (with package,subpack) for inclusion in egs package +%-------------------------------------------------------------------------- +%<*!subpack> +%<package&209>\def\ProvidesPackage#1#2] +%<package&209> {\typeout{Style option `#1'#2]}} +% +% *** Identify the package file:- +%<package&!209>\NeedsTeXFormat{LaTeX2e}[1994/06/01] +%<package>\ProvidesPackage{figcaps} +%</!subpack> +% +% *** Provide command to dislay module version +%<package&subpack>\def\ModuleVersion#1[#2]{} +%<package&subpack> \ModuleVersion{figcaps} +% +% *** Identify the driver file:- +%<driver>\NeedsTeXFormat{LaTeX2e} +%<driver>\ProvidesFile{figcaps.drv} +% +% *** The DATE, VERSION, and other INFO +%\fi +%\ProvidesFile{figcaps} + [1999/02/23 4.7 (PWD)] +% \changes{4.0}{1993 Oct 12}{First integrated documented version} +% \changes{4.1}{1993 Oct 29}{Add coding for JGR, GRL, NLINPROC} +% \changes{4.1}{1993 Oct 29}{Add \cs{iffigmark} for marginal notes} +% \changes{4.1}{1993 Oct 29}{Add \cs{@tempa} construct to get \cs{@float} +% out of \cs{if} \cs{fi} brackets} +% \changes{4.1}{1993 Nov 15}{For JGR and GRL, tables after captions} +% \changes{4.1}{1993 Nov 20}{Add coding for AGU supplement} +% \changes{4.2}{1993 Nov 20}{Add \cs{figbox} for AGU supplement} +% \changes{4.2}{1993 Nov 20}{AGU supplement: captions in two widths again} +% \changes{4.2}{1993 Dec 16}{Suppress floats for AGU planotable} +% \changes{4.2}{1993 Dec 21}{Add \cs{if@filesw} for extra appendix entries} +% \changes{4.3}{1994 May 19}{Convert to \LaTeXe, add language and other +% options, add \cs{figmarkon/off} and \cs{figcapson/off}} +% \changes{4.3a}{1994 Jun 06}{For AGU, change \cs{@makefcaption}} +% \changes{4.3b}{1994 Jun 22}{Update to first official release of \LaTeXe} +% \changes{4.3c}{1994 Nov 30}{Bad bug in \cs{figmarkoff} fixed, caused +% crashes} +% \changes{4.3d}{1995 Jan 3}{Update documentation to PWD standard} +% \changes{4.4}{1995 Jan 8}{Fix bug caused by LTX 94/12/1 \cs{@writefile}} +% \changes{4.5}{1996 Jan 10}{Allow first float to be in appendix} +% \changes{4.5a}{1996 Jun 27}{Change \texttt{nlinproc} option to \texttt{egs}} +% \changes{4.5b}{1996 Jul 22}{Allow \cs{figbox} to scale automatically} +% \changes{4.5c}{1996 Jul 29}{Add \cs{figbox*} to suppress frame} +% \changes{4.5d}{1996 Aug 20}{Fix table notes for AGU} +% \changes{4.5e}{1996 Oct 10}{Zero \cs{parindent} for EGS} +% \changes{4.5f}{1997 Mar 16}{Fix copyright for subpack} +% \changes{4.5g}{1997 Apr 29}{Conform to new \texttt{docstrip}} +% \changes{4.5h}{1997 Nov 18}{Fix appendix problem for AGU} +% \changes{4.6}{1998 Sep 14}{Add \texttt{longtable} environment} +% \changes{4.7}{1999 Feb 23}{Update copyright notice} +% +% \CheckSum{1417} +% \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 +% Lower-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 +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \iffalse +%<*install> +%^^A ============================================= +%^^A Here is the docstrip installation file +%^^A It is written on first LaTeX run if it +%^^A does not already exist +%^^A ============================================= +\begin{filecontents*}{figcaps.ins} +% File: figcaps.ins +% Copyright 1999 Patrick W. Daly +% +% This file can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% +% It is an installation file for extracting package and driver +% files from the original source file. Simply process it under +% TeX or LaTeX. + +\input docstrip + +\preamble +============================================= +IMPORTANT NOTICE: + +This program can be redistributed and/or modified under the terms +of the LaTeX Project Public License Distributed from CTAN +archives in directory macros/latex/base/lppl.txt; either +version 1 of the License, or any later version. + +This is a generated file. +It may not be distributed without the original source file \inFileName. + +Full documentation can be obtained by LaTeXing that original file. +Only a few abbreviated comments remain here to describe the usage. +============================================= +\endpreamble +\postamble + +<<<<< End of generated file <<<<<< +\endpostamble + +\declarepreamble\driver +============================================ +This is the driver file to produce the LaTeX documentation +from the original source file \inFileName. + +Make changes to it as needed. (Never change the file \inFileName!) +============================================ +\endpreamble + +\declarepostamble\driverq + +End of documentation driver file. +\endpostamble + +\keepsilent +\askforoverwritefalse + +\generate{\file{figcaps.sty}{\from{figcaps.dtx}{package}} + \file{figcaps.drv}{\usepreamble\driver\usepostamble\driverq + \from{figcaps.dtx}{driver}} + } + +\obeyspaces +\Msg{******************************************}% +\Msg{* For documentation, process figcaps.dtx *}% +\Msg{* or the driver file figcaps.drv *}% +\Msg{******************************************} + +\endbatchfile +\end{filecontents*} +%</install> +%<*driver> +\documentclass{ltxdoc} +%<driver>%\documentclass[twoside]{ltxdoc} +%<driver>%\documentclass[a4paper]{ltxdoc} +%<driver>%\documentclass[twoside,a4paper]{ltxdoc} +\raggedbottom + + %** To include the detailed explanation of the coding, comment out + %** the next line +\OnlyDescription + + %** To produce a command index: add the following line for one run, + %** then run makeindex -s gind.ist natbib + %** and reprocess, with or without this line (much faster without) +%<driver>% \EnableCrossrefs\CodelineIndex + + %** To produce a change history: add the following line for one run, + %** then run makeindex -s gglo.ist -o natbib.gls natbib.glo + %** and reprocess, with or without this line (faster without) +%<driver>% \RecordChanges + +\DisableCrossrefs %May stay; zapped by \EnableCrossrefs +\CodelineNumbered %May stay + +\begin{document} + \DocInput{figcaps.dtx} +\end{document} +%</driver> +%\fi +% +% \DoNotIndex{\begin,\CodelineIndex,\CodelineNumbered,\def,\DisableCrossrefs} +% \DoNotIndex{\DocInput,\documentclass,\EnableCrossrefs,\end,\GetFileInfo} +% \DoNotIndex{\NeedsTeXFormat,\OnlyDescription,\RecordChanges,\usepackage} +% \DoNotIndex{\ProvidesClass,\ProvidesPackage,\ProvidesFile,\RequirePackage} +% \DoNotIndex{\LoadClass,\PassOptionsToClass,\PassOptionsToPackage} +% \DoNotIndex{\DeclareOption,\CurrentOption,\ProcessOptions,\ExecuteOptions} +% \DoNotIndex{\AtEndOfClass,\AtEndOfPackage,\AtBeginDocument,\AtEndDocument} +% \DoNotIndex{\InputIfFileExists,\IfFileExists,\ClassError,\PackageError} +% \DoNotIndex{\ClassWarning,\PackageWarning,\ClassWarningNoLine} +% \DoNotIndex{\PackageWarningNoLine,\ClassInfo,\PackageInfo,\MessageBreak} +% \DoNotIndex{\space,\protect,\DeclareRobustCommand,\CheckCommand} +% \DoNotIndex{\newcommand,\renewcommand,\providecommand,\newenvironment} +% \DoNotIndex{\renewenvironment,\newif,\newlength,\newcounter,\setlength} +% \DoNotIndex{\setcounter,\if,\ifx,\ifcase,\ifnum,\ifdim,\else,\fi} +% \DoNotIndex{\texttt,\textbf,\textrm,\textsl,\textsc} +% \DoNotIndex{\textup,\textit,\textmd,\textsf,\emph} +% \DoNotIndex{\ttfamily,\rmfamily,\sffamily,\mdseries,\bfseries,\upshape} +% \DoNotIndex{\slshape,\scshape,\itshape,\em,\LaTeX,\LaTeXe} +% \DoNotIndex{\filename,\fileversion,\filedate,\let} +% \DoNotIndex{\@ifundefined,\@input,\@latexerr,\@makecaption,\@makeother} +% \DoNotIndex{\@mkboth,\@namedef,\@tempa,\@tempb,\@writefile,\\,\{,\},\^} +% \DoNotIndex{\active,\addcontentsline,\addtocontents,\begingroup,\bgroup} +% \DoNotIndex{\bigskip,\catcode,\clearpage,\closeout,\def,\do,\dospecials} +% \DoNotIndex{\egroup,\else,\end@dblfloat,\end@float,\endgroup,\expandafter} +% \DoNotIndex{\fi,\filedate,\filename,\fileversion,\gdef,\ifx,\immediate} +% \DoNotIndex{\jobname,\label,\let,\long,\newcounter,\newif,\newpage} +% \DoNotIndex{\newwrite,\openout,\par,\refstepcounter,\relax,\space} +% \DoNotIndex{\stepcounter,\string,\typeout,\uppercase,\vbox,\vskip} +% \DoNotIndex{\vspace,\marginpar,\if@filesw,\parindent} +% \DoNotIndex{\advance,\divide,\fboxrule,\fboxsep,\fnum@figure,\fnum@plate} +% \DoNotIndex{\fnum@table,\framebox,\hbox,\hfil,\hsize,\newdimen} +% \DoNotIndex{\providecommand,\section,\setcounter,\small,\textwidth} +% \DoNotIndex{\vrule,\vss,\z@} +% \DoNotIndex{\@caption,\@captype,\@dblfloat,\@depth,\@float,\@height} +% \DoNotIndex{\@ifnextchar,\@tempdima,\@term,\@width,\cl@section} +% \DoNotIndex{\cr@relax,\fbox} +% +% \setcounter{IndexColumns}{2} +% \setlength{\IndexMin}{10cm} +% \setcounter{StandardModuleDepth}{1} +% +% \GetFileInfo{figcaps} +% +% \title{\bfseries A Package to Put Figures and Tables at the End of +% an Article} +% +% \author{Patrick W. Daly} +% +% \date{This paper describes package \texttt{\filename}\\ +% version \fileversion{} from \filedate\\[1ex] +% \textsl{It is part of the \texttt{preprint} collection of packages} +% } +% +% \maketitle +% +% \pagestyle{myheadings} +% \markboth{P. W. Daly}{PUTTING FIGURES AND TABLES AT THE END} +% +%^^A In order to keep all marginal notes on the one (left) side: +%^^A (otherwise they switch sides disasterously with twoside option) +% \makeatletter \@mparswitchfalse \makeatother +% +% \newcommand{\thestyle}{\texttt{\filename}} +% +%\begin{small}\begin{center}\textbf{Summary}\end{center} +% The stripped version of this file contains the following brief description: +%\iffalse +%<*package&!subpack> +%\fi +% \begin{verbatim} + % This option allows the figure captions to be collected throughout + % the paper and printed on a separate page at the end. The figures + % themselves will not appear in the text. This is for purposes of + % a manuscript for submission. + % Similarly, tables are not printed in the text, but are outputted at + % the end, after the figure captions. +%<*plates> + % A plate environment also exists, handled just like figures. +%</plates> +%<*longtab> + % A longtable environment exists, for use with the longtable tools package. +%</longtab> + % The figures themselves may appear, with captions, at + % the end, after the tables. This is done with command \printfigures + % in the preamble. This only makes sense if the figures have been + % generated by LaTeX or if they are being imported. + % Marginal notes added where environments placed if \figmarkon given. + % NOTE: Only works for article-like styles at present, where \section is + % the highest sectioning level. +%<*!toc> + % NOTE: Tables of contents (incl figures and tables) cannot be used +%</!toc> + % NOTE: This file must be read in AFTER \appendix has been defined; +%<*sublab> + % if sublabel.sty is also used, it must be read in first. +%</sublab> +%<agu> % The captions are formatted as for AGU journals. +%<egs> % The captions are formatted as for EGS journals. +%<*!209> + % + % Options with LaTeX2e: + % printfigures - prints the figures at the end of the article, (is + % like issuing the \printfigures command) + % figmark - turns on the markers for figures and tables in the text, + % (is like issuing \figmarkon) + % figon/off - activates or deactivates the whole procedure (is like + % (issuing \figcapson or \figcapsoff). Default=on. + % mylang - (default) leaves explicit text (e.g. `Figure Captions' + % as is, or if undefined, makes them English + % english,american,german,austrian,french,esperanto - changes explicit + % texts accordingly + % blank - makes explicit texts empty. +%</!209> +% \end{verbatim} +%\iffalse + %----------------------------------------------------------- +%</package&!subpack> +%\fi +%\end{small} +% +% \section{Introduction} +% Often when producing manuscripts for submission to a journal, it is +% required that the figure captions be listed at the end on a separate +% page, and also that tables be put at the end too. Then when the +% manuscript is ready and camera-ready copy, or a preprint, is to be +% generated, one has to move them all back to the proper positions in the +% paper. +% +% This style alleviates this problem. The \texttt{figure} and \texttt{table} +% environments are placed in the text as they should be for the preprint or +% camera-ready copy, but the tables actually are printed at the end. The +% figures are not printed at all, but their captions are listed on a +% separate page at the end. Optionally, the figures themselves may be +% printed at the very end. This last only makes sense if there is something +% in the figures, i.e., they have been produced with \texttt{picture} or are +% imported graphics. +% +% \section{Invoking the Package} +% The macros in this package are included in the main document +% with the |\usepackage| command of \LaTeXe, +% \begin{quote} +% |\documentclass[..]{...}|\\ +% |\usepackage[|\emph{options}|]{|\texttt{\filename}|}| +% \end{quote} +% where the possible \emph{options} are described below. +% +% Alternatively, the name of the package is added as an option to the +% |\documentstyle| command in \LaTeX~2.09 compatibility mode, as +% \begin{quote} +% |\documentstyle[..|\texttt{\filename}|..]{...}| +% \end{quote} +% +% It may only be used for \texttt{article}, or an article-like main class. +% That is, for one that does not contain the |\chapter| level of +% sectioning. +% +% The order in which other packages are loaded is important for certain +% features. If my package +% \texttt{sublabel} is included, then it must come before \thestyle. +% Furthermore, \thestyle{} adds to the existing definition of +% |\appendix|, so that if the author has any packages that alter this +% definition, they must come before \thestyle. Clearly, |\appendix| may +% not be redefined afterwards. +% +% \section{Using the Package} +% \DescribeMacro{\figcapson}\DescribeMacro{\figcapsoff} +% The macro package in \thestyle{} operates pretty much automatically. +% The whole thing may be turned on and off with the commands |\figcapson| +% and |\figcapsoff|. The default is \meta{on}. One might want to +% control the placement of figures and tables with this flag rather than by +% adding and removing the option from the |\documentclass| command. +% +% Alternatively, the \LaTeXe{} options \texttt{figon} and \texttt{figoff} +% have the same effect, with \texttt{figon} being the default. +% +% \DescribeMacro{\printfigures} +% The only other means of interacting with the macros is with the command +% |\printfigures|, which, when given anywhere in the text, enables the +% figures themselves to be output at the very end of the paper. Without +% this, only the captions are listed. With it, both captions and figures +% are output. +% +% The \LaTeXe{} option \texttt{printfigures} in |\usepackage| is +% equivalent to issuing the command |\printfigures| in the text. +% +% \DescribeMacro{\figmarkon} +% \DescribeMacro{\figmarkoff} +% Another option is to put marginal notes into the text at the place +% where the float environment is entered. This is useful for camera-ready +% copy that will be cut-and-pasted together to indicate where the figures +% and tables should appear. The commands |\figmarkon| and |\figmarkoff| +% control this feature, with the default being \meta{off}. +% +% The \LaTeXe{} option \texttt{figmark} in |\usepackage| sets this +% default to \meta{on}; in other words, it is equivalent to issuing +% |\figmarkon| in the text. +% +% \DescribeMacro{\figurecapname} +% \DescribeMacro{\tablepagename} +% \DescribeMacro{\figurepagename} +% The text that is written as header at the top of the special pages is +% defined in three commands |\figurecapname|, |\tablepagename|, and +% |\figurepagename|. They default to English text, but may be redefined to +% other languages, or suppressed altogether, with |\renewcommand| or with +% \LaTeXe{} options (see page~\pageref{names}). +% +% \section{How it Works} +% The contents of all the \texttt{figure} and \texttt{table} environments are +% written to auxiliary files {\tt.lof} and {\tt.lot} respectively, and then +% these are read in again at the end of the paper. Since these auxiliary +% files are normally used to write information for the lists of figures and +% tables, this capability is lost. However, it is not likely that one wants +% such lists, or even a table of contents, in a manuscript. In fact, the +% commands |\tableofcontents|, |\listoffigures|, |\listoftables| are turned +% off (they issue a warning message). +% +% If you really do need tables of contents, then see the extra features +% below. +% +% \subsection{With the \texttt{longtable} Package} +% This package may optionally be used with the \texttt{longtable} environment defined +% in the package of the same name. Since such tables are normally long, i.e.\ +% over a page, the list of tables at the back will always start a new page for +% each of these. +% +% For preprints, when the tables are not moved to the back (|\figcapsoff|), it +% makes sense to put the \texttt{longtable} environment inside the |\afterpage| +% command (from the \texttt{afterpage} package). However, with |\figcapson|, +% and the table is move, this is useless. In this case, the |\afterpage| +% command is deactivated. One should realize this in case it is used for other +% purposes. +% +% \subsection{As Module to Journal-Specific Styles} +% Although \thestyle{} is meant to be an all-purpose bibliographic style +% \emph{package}, it may also be incorporated as a module to other +% packages for specific journals. In this case, many of the general features may +% be left off. This is allowed for with \texttt{docstrip} options that not +% only leave off certain codelines, but also include extra ones. So far, +% options exist for +% \begin{description} +% \item[\ttfamily egs] for \textsl{European Geophysical Society} journals. +% \item[\ttfamily agu] for \textsl{American Geophysical Union} journals. +% \end{description} +% +% Previous options \texttt{jgr} and \texttt{grl} have become obsolete due +% to revisions in these journals; they have been replaced by the more +% general \texttt{agu} option. +% +% \section{\LaTeXe{} Options} +% Under \LaTeXe, \emph{options} may be added to the |\usepackage| command +% that loads the package. Available options for \thestyle{} set certain +% control flags, thus replacing the equivalent commands, or select the +% language for the texts that are printed by |\figurecapname|, +% |\tablepagename|, and |\figurepagename|. +% \begin{description} +% \item[\ttfamily figon] (default) activates the whole procedure of moving +% figures and tables to the back of the article, (same as +% |\figcapson|); +% +% \item[\ttfamily figoff] deactivates the whole procedure, (same as +% |\figcapsoff|); +% +% \item[\ttfamily printfigures] allows the figures themselves and not just +% their captions to be output at the very end, in addition to the +% caption page, (same as |\printfigures|); by default this is not done; +% +% \item[\ttfamily figmark] enables marking of figure and table environments +% in the text with marginal notes; (same as |\figmarkon|); +% +% \item[\ttfamily mylang] (default) leaves the three \texttt{name} commands +% as they are; however if they are not defined at all, then they are +% given English values; since these name commands are not standard, one +% cannot expect them to be set by other language adaption packages; +% +% \item[\ttfamily english, american, german, austrian, french, esperanto] +% \label{names} +% set the \texttt{name} commands to the translation in the +% corresponding language, overwriting any previous definitions; +% +% \item[\ttfamily blank] sets the text of |\figurecapname|, +% |\tablepagename|, and |\figurepagename| to nothing. +% \end{description} +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \section{Options with \texttt{docstrip}} +% The source \texttt{.dtx} file is meant to be processed with +% \texttt{docstrip}, for which a number of options are available: +% \begin{description} +% \item[\ttfamily plates] permits \texttt{plate} and \texttt{plate*} +% environments to be treated just like \texttt{figure} and +% \texttt{figure*}; the contents are written to the same auxiliary file +% and the captions are mixed with those of the figures. The environments +% must already exist though, for with this option the coding is included +% to treat plates like figures, but it does not define such plate +% environments. +% +% \item[\ttfamily longtab] permits \texttt{longtable} environment from the +% \texttt{longtable} tools package to be treated too (\LaTeXe\ only). +% +% \item[\ttfamily sublab] adds coding to enable the \thestyle{} macros to +% function with my other option \texttt{sublabel}, which permits objects +% to be numbered 4{\it a}, 4{\it b}, etc. This coding may always be +% included, even if \texttt{sublabel} is not invoked; the converse is +% not true: if \texttt{sublabel} is present, then this coding must also +% be there, and \texttt{sublabel} must precede \thestyle{} in the list +% of options. +% +% \item[\ttfamily toc] allows auxiliary files with the extensions {\tt.pof} +% and {\tt.pot} so that there is no conflict with the tables of contents +% files. Thus |\tableofcontents|, |\listoffigures|, |\listoftables|, and +% possibly |\listofplates| may be used as normal. +% +% \item[\ttfamily package] to produce a \texttt{.sty} package file with most +% comments removed; +% +% \item[\ttfamily 209] for a style option file that will run under the older +% \LaTeX~2.09; +% +% \item[\ttfamily subpack] (together with \texttt{package}) for coding that +% is to be included inside a larger package; even more comments are +% removed, as well as \LaTeXe{} option handling and identification; +% +% \item[\ttfamily agu] (with \texttt{package,subpack}) for special coding +% for the \textsl{AGU$^{++}$} package; +% +% \item[\ttfamily egs] (with \texttt{package,subpack}) for special +% coding for the \textsl{EGS} package; +% +% \item[\ttfamily driver] to produce a driver \texttt{.drv} file that will +% print out the documentation under \LaTeXe. The documentation cannot +% be printed under \LaTeX~2.09. +% +% \end{description} +% The source file \texttt{\filename.dtx} is itself a driver file and can +% be processed directly by \LaTeXe. +% +% \section{The Coding} +% This section presents and explains the actual coding of the macros. +% It is nested between |%<*package>| and |%</package>|, which +% are indicators to \texttt{docstrip} that this coding belongs to the package +% file. +% +% The \texttt{docstrip} option |<subpack>| should only be called if the +% coding is to be included as part of another package, in which case the +% announcement text and \LaTeXe{} options are suppressed. +% +% An inferior version of this coding is provided for running as a +% style file under \LaTeX~2.09. Code lines belonging to this are +% indicated with guard |<209>|; those for LaTeXe{} only with |<!209>|. +% +% Now test that the main style is article-like, i.e., it has no chapters. +% This is because the figure caption list as well as the tables page are output +% under a |\section*|, and because of the relabelling of figures, tables, +% equations within appendices. (Maybe someday this will be changed.) +% \begin{macrocode} +%<*package> +\@ifundefined{chapter}{}{% +%<209> \@latexerr +%<!209> \PackageError{figcaps} + {`figcaps' may only be used with article-like classes} + {There is no help. You just cannot use `figcaps'}} +% \end{macrocode} +% +% \begin{macro}{\iffigcaps} +% \begin{macro}{\iffigmark} +% \changes{4.1}{1993 Oct 18}{Add flag to switch marginal notes on/off} +% \begin{macro}{\if@figpage} +% Define a few flags that control the operations, such as whether the whole +% procedure is turned on, whether figures and tables are marked in the text +% where they should appear, and whether a page of figures (not just +% captions) is output. These are set by commands defined below and/or by +% \LaTeXe options. +% \begin{macrocode} +\newif\iffigcaps \figcapstrue +\newif\iffigmark \figmarkfalse +\newif\if@figpage \@figpagefalse +% \end{macrocode} +% \end{macro}\end{macro}\end{macro} +% +% \subsection{Setting Defaults and \LaTeXe{} Options} +% \begin{macro}{\figurecapname} +% \begin{macro}{\tablepagename} +% \begin{macro}{\figurepagename} +% Define explicit text with name commands that may be changed by language +% adaptations. Since these are non-standard, it is unlikely that they +% already exist, but nevertheless, it does not hurt to assume that they do. +% \begin{macrocode} +%<*subpack|209> +\@ifundefined{figurecapname}{\def\figurecapname{Figure Captions}}{} +\@ifundefined{tablepagename}{\def\tablepagename{Tables}}{} +\@ifundefined{figurepagename}{\def\figurepagename{Figures}}{} +%</subpack|209> +% \end{macrocode} +% +% \begin{macro}{\DeclareOption} +% \changes{4.3}{1994 May 19}{Add language options for \LaTeXe} +% In \LaTeXe, the initial values of these commands can be set with options +% to the |\usepackage| command. They are processed in the order given, not +% in the order defined (starred version of |\ProcessOptions|). +% \begin{macrocode} +%<*!subpack&!209> +\DeclareOption{english}{\def\figurecapname{Figure Captions}% + \def\tablepagename{Tables}% + \def\figurepagename{Figures}} +\DeclareOption{american}{\ExecuteOptions{english}} +\DeclareOption{german}{\def\figurecapname{Untertiteln der Abbildungen}% + \def\tablepagename{Tabellen}% + \def\figurepagename{Abbildungen}} +\DeclareOption{austrian}{\ExecuteOptions{german}} +\DeclareOption{french}{\def\figurecapname{Titres des Figures}% + \def\tablepagename{Tableaux}% + \def\figurepagename{Figures}} +\DeclareOption{esperanto}{\def\figurecapname{Titroj de la Figuroj}% + \def\tablepagename{Tabeloj}% + \def\figurepagename{Figuroj}} +\DeclareOption{blank}{\def\figurecapname{}% + \def\tablepagename{}% + \def\figurepagename{}} +\DeclareOption{blank}{\def\appendixname{}} +\DeclareOption{mylang}{\providecommand{\figurecapname}{Figure Captions}% + \providecommand{\tablepagename}{Tables}% + \providecommand{\figurepagename}{Figures}} +\DeclareOption{figmark}{\figmarktrue} +\DeclareOption{printfigures}{\@figpagetrue} +\DeclareOption{figon}{\figcapstrue} +\DeclareOption{figoff}{\figcapsfalse} +\ExecuteOptions{mylang,figon} +\ProcessOptions* +%</!subpack&!209> +% \end{macrocode} +% \end{macro}\end{macro}\end{macro}\end{macro} +% +% \subsection{Low Level Routines --- the Tricky Bits} +% The way in which this routine is to work is as follows: the float +% commands |\figure|, |\table|, and optionally |\plate| are redefined so +% that they write everything up to the corresponding |\end| command to an +% auxiliary file. These files have extensions {\tt.lof} (for figures and +% plates) and {\tt.lot} (for tables). The entire contents must be written +% literally, that is as verbatim, without any expansion. The terminal +% |\end| text must also be literal. +% +% The actual internal commands that will do this are called |\@vfig|, +% |\@vsfig|, etc., where the second variant is for the starred version of +% the float command. These must be defined in such a way that |\|, |{|, +% and |}| are temporarily characters (catcode=12); their functionality is +% taken over by \verb!|!, |[|, and |]|. Furthermore, the carriage return +% |^^M| must also be made active so that it may be used as a character +% within the template of the definitions. Its function is to separate the +% individual lines of text. It must be active, not `other', because +% |\set@literal| (see below) will give it a definition of |\relax|. (It +% probably cannot be made `other' anyway because it is unprintable.) +% +% Switch the category codes, within a group, of course, to keep them local. +% \begin{macrocode} +\begingroup + \catcode `|=0 \catcode `[= 1 + \catcode`]=2 \catcode `\{=12 \catcode `\}=12 + \catcode`\^^M=13 \catcode`\\=12 % +% \end{macrocode} +% \begin{macro}{\@vfig} +% Now define the true working commands. Take |\@vfig| as prototype for all +% the others. Its arguement is everything up to the literal text +% |\end{figure}|. This argument is expanded and used as argument to +% |\writelof| with an extra line termination (|^^M|) and the text +% |\end{figure}| added. The function |\writelof| dissects its argument into +% individual lines (as indicated by the active |^^M|) and writes them to +% the {\tt.lof} file, until it finds a line of text equal to |\@term|. +% Hence, this termination command is first defined as |\end{figure}|. +% Finally, |\@vfig| issues the \emph{command} (not the literal text) +% |\end{figure}| in order to close the \texttt{figure} environment. This last +% command appears in the definition as \verb!|end[figure]! because of the +% altered category codes. +% \SpecialEscapechar{\|} +% \begin{macrocode} +|long|gdef|@vfig#1\end{figure}[|def|@term[\end{figure}]% + |expandafter|writelof#1^^M\end{figure}^^M|end[figure]]% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@vsfig} +% The equivalent function for \texttt{figure*} is now defined. +% \SpecialEscapechar{\|} +% \begin{macrocode} +|long|gdef|@vsfig#1\end{figure*}[|def|@term[\end{figure*}]% + |expandafter|writelof#1^^M\end{figure*}^^M|end[figure*]]% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@vtab} +% \begin{macro}{\@vstab} +% Next, the same functions for tables. Here |\writelot| is used instead +% of |\writelof| because the text goes to a different auxiliary file. +% \SpecialEscapechar{\|} +% \begin{macrocode} +|long|gdef|@vtab#1\end{table}[|def|@term[\end{table}]% + |expandafter|writelot#1^^M\end{table}^^M|end[table]]% +|long|gdef|@vstab#1\end{table*}[|def|@term[\end{table*}]% + |expandafter|writelot#1^^M\end{table*}^^M|end[table*]]% +% \end{macrocode} +% \end{macro}\end{macro} +% +% \begin{macro}{\@vltab} +% \changes{4.6}{1998 Sep 14}{Add macro for \texttt{longtable} package} +% For use with the \texttt{longtable} package and its environment of the same +% name, need special coding. This environment is never put into a +% \texttt{figure} environment, but rather is used on its own. +% \SpecialEscapechar{\|} +% \begin{macrocode} +%<*longtab&!209> + |long|gdef|@vltab#1\end{longtable}[|def|@term[\end{longtable}]% + |expandafter|writelot#1^^M\end{longtable}^^M|end[longtable]]% +%</longtab&!209> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@vpla} +% \begin{macro}{\@vspla} +% For the event that a \texttt{plate} environment is also present (as in +% \textsl{AGU}, for example) we must include two more such functions. These +% operate exactly like \texttt{figure}, even using |\writelof| instead of +% |\writelot|. +% \SpecialEscapechar{\|} +% \begin{macrocode} +%<*plates> +|long|gdef|@vpla#1\end{plate}[|def|@term[\end{plate}]% + |expandafter|writelof#1^^M\end{plate}^^M|end[plate]]% +|long|gdef|@vspla#1\end{plate*}[|def|@term[\end{plate*}]% + |expandafter|writelof#1^^M\end{plate*}^^M|end[plate*]]% +%</plates> +% \end{macrocode} +% \end{macro}\end{macro} +% \begin{macro}{\@vptab} +% \changes{4.5f}{1997 Mar 16}{For AGU only} +% In the AGU supplement, there is an additional \texttt{table} environment +% called \texttt{planotable}. This must then be provided for here. It has +% no starred version. +% \SpecialEscapechar{\|} +% \begin{macrocode} +%<agu> |long|gdef|@vptab#1\end{planotable}[|def|@term[\end{planotable}]% +%<agu> |expandafter|writelot#1^^M\end{planotable}^^M|end[planotable]]% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@fcaponly} +% \changes{4.1}{1993 Nov 20}{Remove caption-only commands for AGU} +% \begin{macro}{\@feject} +% \begin{macro}{\@pcaponly} +% \begin{macro}{\@peject} +% Some more special commands are needed with literal commands in their +% templates. These are used to print only the captions when the figures +% auxiliary file is reread in. First |\@fcaponly| reads everything up to +% the |\caption| and throws it away. Then |\@feject| removes all text from +% its current position (which will be right after |\caption|) to the end of +% the \texttt{figure} environment. Similar functions exist for \texttt{plate}, +% but not for \texttt{table}, since tables are always reproduced in full. +% +% The AGU supplement does not make use of these commands, since it works +% in a different way. +% \SpecialEscapechar{\|} +% \begin{macrocode} +%<*!agu> +|long|gdef|@fcaponly#1\caption[|endgroup|@fcaption]% +|long|gdef|@feject#1\end{figure}[|end[figure]]% +%<*plates> +|long|gdef|@pcaponly#1\caption[|endgroup|@pcaption]% +|long|gdef|@peject#1\end{plate}[|end[plate]]% +%</plates> +%</!agu> + |endgroup +% \end{macrocode} +% \end{macro}\end{macro}\end{macro}\end{macro} +% Here the category codes are restored to their normal values with the +% ending of the group. Note that each of the above lines must have |%| at +% the end to avoid \meta{end-of-line}, which is active. +% +% \begin{macro}{\FC@writefile} +% \changes{4.4}{1995 Jan 8}{Add macro, equal to old definition of standard +% \cmd{\@writefile}} +% The release of \LaTeX\ on 1995/12/01 changed the internal definition +% of |\@writefile| such as to make it robuster: the text is written literally +% to the file. This means that my |\string\begin{figure}| is written as +% |\string \begin {figure}| instead of |\begin{figure}|. To get around this, +% keeping capatibility with older versions, and not interfering with +% other uses of |\@writefile|, I add may own version, equal to the +% older definition. +% \begin{macrocode} +\long\def\FC@writefile#1#2{\@ifundefined{tf@#1}{}{% + \immediate\write\csname tf@#1\endcsname{#2}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\writelof} +% \begin{macro}{\writelot} +% \changes{4.0}{1993 Oct 12}{Add \texttt{toc} option to determine extension +% of auxiliary files. Tables of contents were previously allowed, now +% only optionally allowed.} +% Now, the command that write the text to the auxiliary file |\writelof| +% takes the text one line at a time, checks if it +% equals |\@term|; if not, it is output to {\tt.lof} and |\writelof| is +% called again; if yes, the routine comes to an end. The +% \meta{end-of-line} |^^M| must be made active again at this stage so that +% it has the correct category code in the definition. For tables, the +% corresponding |\writelot| is analogous. +% +% Before we do this, however, it should be pointed out that these auxiliary +% files are normally used for lists of figures and tables information. Thus +% they may not be used for this purpose. Normally, one does not have such +% tables of contents in an article, but if that should be required, then +% we provide a \texttt{docstrip} option \texttt{toc} to change the extensions +% to {\tt.pof} and {\tt.pot}. +% \begin{macrocode} +%<*!toc> +\def\lof{lof} \def\lot{lot} +%</!toc> +%<toc>\def\lof{pof} \def\lot{pot} + +{\catcode`\^^M=13% + \long\gdef\writelof#1^^M{\def\@tempb{#1}% + \ifx\@tempb\@term\let\@tempa\relax\else + \if@filesw\FC@writefile{pof}{#1}\fi\let\@tempa\writelof\fi \@tempa} + \long\gdef\writelot#1^^M{\def\@tempb{#1}% + \ifx\@tempb\@term\let\@tempa\relax\else + \if@filesw\FC@writefile{pot}{#1}\fi\let\@tempa\writelot\fi \@tempa} +} +% \end{macrocode} +% \end{macro}\end{macro} +% +% \subsection{Caption Commands} +% \begin{macro}{\@fcaption} +% \changes{4.1}{1993 Nov 20}{Remove caption-only commands for AGU} +% \begin{macro}{\@@fcapopt} +% \begin{macro}{\@@fcap} +% Here are the modified |\caption| commands for printing only the captions. +% In |\@figurecaps|, the command |\@fcaponly| is called at the start of +% a \texttt{figure} environment, which ejects all text up to the |\caption| +% command, and then calls |\@fcaption|. This then selects |\@@fcap| or +% |\@@fcapopt| depending on the presence of the optional argument. Both do +% essentially the same thing: they call the true caption command +% |\@caption| to process the argument, and then call |\@feject| to remove +% the remaining text in the \texttt{figure} environment. Note: this is only +% done when the auxiliary {\tt.lof} file is being read in to produce a list +% of captions. +% \begin{macrocode} +%<*!agu> +\def\@fcaption{\refstepcounter\@captype \@ifnextchar[{\@@fcapopt}{\@@fcap}} +\def\@@fcapopt[#1]#2{\@caption\@captype[]{#2}\begingroup\set@literal\@feject} +\def\@@fcap#1{\@caption\@captype[]{#1}\begingroup\set@literal\@feject} +% \end{macrocode} +% \end{macro}\end{macro}\end{macro} +% +% \begin{macro}{\@pcaption} +% \begin{macro}{\@@pcapopt} +% \begin{macro}{\@@pcap} +% The same thing for plates. +% \begin{macrocode} +%<*plates> +\def\@pcaption{\refstepcounter\@captype \@ifnextchar[{\@@pcapopt}{\@@pcap}} +\def\@@pcapopt[#1]#2{\@caption\@captype[]{#2}\begingroup\set@literal\@peject} +\def\@@pcap#1{\@caption\@captype[]{#1}\begingroup\set@literal\@peject} +%</plates> +%</!agu> +% \end{macrocode} +% \end{macro}\end{macro}\end{macro} +% +% \subsection{The High Level Commands for Float Environments} +% \begin{macro}{\figcapson} +% \changes{4.3}{1994 May 19}{Add on/off commands to set whole thing +% on/off} +% \begin{macro}{\figcapsoff} +% \changes{4.3}{1994 May 19}{Add on/off commands to set whole thing +% on/off} +% Here are the new definitions of the figure and table, which are to +% be executed in the main text where the environments are entered. These +% new definitions are only in effect if the flag \texttt{figcaps} is +% \meta{true}, otherwise the original definitions hold. This flag allows +% the style to be input in the |\documentstyle| line, or with +% |\usepackage|, even if it is not yet, or no longer, wanted. +% \begin{macrocode} +\def\figcapson{\figcapstrue} +\def\figcapsoff{\figcapsfalse} +% \end{macrocode} +% \end{macro}\end{macro} +% +% \begin{macro}{\figmarkon} +% \changes{4.3}{1994 May 19}{Add on/off commands to set flag +% \cmd{\iffigmark}, consistent with older manuals!} +% \begin{macro}{\figmarkoff} +% \changes{4.3}{1994 May 19}{Add on/off commands to set flag +% \cmd{\iffigmark}, consistent with older manuals!} +% \changes{4.3c}{1994 Nov 30}{Correct very bad bug!} +% Another flag allows the figures and tables in the text to be marked with +% a marginal note to indicate where they are first referred to. Since this is +% only necessary for cut-and-paste procedures, the default is to have the +% flag set \meta{false} unless the \LaTeXe{} option \texttt{figmark} has +% been given. These commands set the state of the flag. +% \begin{macrocode} +\def\figmarkon{\figmarktrue} +\def\figmarkoff{\figmarkfalse} +% \end{macrocode} +% \end{macro}\end{macro} +% +% \begin{macro}{\figure} +% \changes{4.1}{1993 Oct 18}{Add marginal note with \cmd{\iffigmark}} +% \changes{4.1}{1993 Oct 29}{Add \cmd{\@zfigure} to bring +% float out of the if clause} +% \changes{4.5}{1996 Jan 10}{Test for \cs{ifFC@appendix}} +% In the new definitions, the +% necessary auxiliary file is opened, the counter is stepped, the caption +% type determined (these are normal functions of the float routine), and +% then |\begin{figure}| is written literally to the auxiliary file. +% Finally, |\@vfig|, or equivalent, is called to process the rest of the +% environment's contents. +% +% If |figcaps| is \meta{false}, then the normal |\@float| command is used. +% \begin{macrocode} +\def\figure{\iffigcaps \let\@tempb=\@zfigure \else \let\@tempb=\@float\fi + \@tempb{figure}} +\def\@zfigure#1{\begingroup\set@literal\@ifnextchar[{\@figure}{\@figure[]}} +\def\@figure[#1]{\@ifundefined{tf@pof}{\newwrite\tf@pof + \if@filesw\immediate\openout\tf@pof\jobname.\lof\relax + \ifFC@appendix\FC@writefile{pof}{\string\doappendix}\fi\fi}{}% + \refstepcounter{figure}\iffigmark\marginpar{\fbox{\fnum@figure}}\fi + \def\@captype{figure}\if@filesw\FC@writefile{pof}{\string\begin{figure}}\fi + \@vfig} + +\def\endfigure{\iffigcaps + \endgroup\if@filesw\FC@writefile{pof}{\string\end{figure}}\fi\else + \end@float\fi} + +\@namedef{figure*}{\iffigcaps \let\@tempb=\@zsfigure \else + \let\@tempb=\@dblfloat\fi \@tempb{figure}} +\def\@zsfigure#1{\begingroup\set@literal\@ifnextchar[{\@sfigure}{\@sfigure[]}} +\def\@sfigure[#1]{\@ifundefined{tf@pof}{\newwrite\tf@pof + \if@filesw\immediate\openout\tf@pof\jobname.\lof\relax + \ifFC@appendix\FC@writefile{pof}{\string\doappendix}\fi\fi}{}% + \refstepcounter{figure}\iffigmark\marginpar{\fbox{\fnum@figure}}\fi + \def\@captype{figure}\if@filesw\FC@writefile{pof}{\string\begin{figure}}\fi + \@vsfig} + +\@namedef{endfigure*}{\iffigcaps\endfigure\else\end@dblfloat\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\plate} +% \changes{3.2}{1993 Feb 9}{Add possibility of plate environments} +% \changes{4.1}{1993 Oct 18}{Add marginal note with \cmd{\iffigmark}} +% \changes{4.1}{1993 Oct 29}{Add \cmd{\@zfigure} to bring +% float out of the if clause} +% \changes{4.5}{1996 Jan 10}{Test for \cs{ifFC@appendix}} +% Plates are defined in the same way, and write to the same auxiliary +% file as figures. We must first test if there really is a plate counter, +% otherwise we will have trouble later. +% \begin{macrocode} +%<*plates> +\@ifundefined{c@plate}{\newcounter{plate}}{} + +\def\plate{\iffigcaps \let\@tempb=\@zplate \else \let\@tempb=\@float\fi + \@tempb{plate}} +\def\@zplate#1{\begingroup\set@literal\@ifnextchar[{\@plate}{\@plate[]}} +\def\@plate[#1]{\@ifundefined{tf@pof}{\newwrite\tf@pof + \if@filesw\immediate\openout\tf@pof\jobname.\lof\relax + \ifFC@appendix\FC@writefile{pof}{\string\doappendix}\fi\fi}{}% + \refstepcounter{plate}\iffigmark\marginpar{\fbox{\fnum@plate}}\fi + \def\@captype{plate}\if@filesw\FC@writefile{pof}{\string\begin{plate}}\fi + \@vpla} + +\def\endplate{\iffigcaps + \endgroup\if@filesw\FC@writefile{pof}{\string\end{plate}}\fi\else + \end@float\fi} + +\@namedef{plate*}{\iffigcaps \let\@tempb=\@zsplate \else + \let\@tempb=\@dblfloat\fi \@tempb{plate}} +\def\@zsplate#1{\begingroup\set@literal\@ifnextchar[{\@splate}{\@splate[]}} +\def\@splate[#1]{\@ifundefined{tf@pof}{\newwrite\tf@pof + \if@filesw\immediate\openout\tf@pof\jobname.\lof\relax + \ifFC@appendix\FC@writefile{pof}{\string\doappendix}\fi\fi}{}% + \refstepcounter{plate}\iffigmark\marginpar{\fbox{\fnum@plate}}\fi + \def\@captype{plate}\if@filesw\FC@writefile{pof}{\string\begin{plate}}\fi + \@vspla} + +\@namedef{endplate*}{\iffigcaps\endplate\else\end@dblfloat\fi} +%</plates> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\table} +% \changes{4.1}{1993 Oct 18}{Add marginal note with \cmd{\iffigmark}} +% \changes{4.1}{1993 Oct 29}{Add \cmd{\@zfigure} to bring +% float out of the if clause} +% \changes{4.5}{1996 Jan 10}{Test for \cs{ifFC@appendix}} +% \changes{4.5d}{1996 Aug 20}{Add \cs{spew@tblnotes} for AGU} +% The table environments are made up the same way, but write to {\tt.lot} +% instead of {\tt.lof}. +% \begin{macrocode} +\def\table{\iffigcaps \let\@tempb=\@ztable \else \let\@tempb=\@float\fi + \@tempb{table}} +\def\@ztable#1{\begingroup\set@literal\@ifnextchar[{\@table}{\@table[]}} +\def\@table[#1]{\@ifundefined{tf@pot}{\newwrite\tf@pot + \if@filesw\immediate\openout\tf@pot\jobname.\lot\relax + \ifFC@appendix\FC@writefile{pot}{\string\doappendix}\fi\fi}{}% + \refstepcounter{table}\iffigmark\marginpar{\fbox{\fnum@table}}\fi + \def\@captype{table}\if@filesw\FC@writefile{pot}{\string\begin{table}}\fi + \@vtab} + +\def\endtable{\iffigcaps + \endgroup\if@filesw\FC@writefile{pot}{\string\end{table}}\fi\else +%<agu> \spew@tblnotes + \end@float\fi} + +\@namedef{table*}{\iffigcaps \let\@tempb=\@zstable \else + \let\@tempb=\@dblfloat\fi \@tempb{table}} +\def\@zstable#1{\begingroup\set@literal\@ifnextchar[{\@stable}{\@stable[]}} +\def\@stable[#1]{\@ifundefined{tf@pot}{\newwrite\tf@pot + \if@filesw\immediate\openout\tf@pot\jobname.\lot\relax + \ifFC@appendix\FC@writefile{pot}{\string\doappendix}\fi\fi}{}% + \refstepcounter{table}\iffigmark\marginpar{\fbox{\fnum@table}}\fi + \def\@captype{table}\if@filesw\FC@writefile{pot} + {\string\begin{table}}% + \fi\@vstab} + +\@namedef{endtable*}{\iffigcaps\endtable\else +%<agu> \spew@tblnotes + \end@dblfloat\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\longtable} +% \changes{4.6}{1998 Sep 14}{Add macro for \texttt{longtable} package} +% For the \texttt{longtable} package, add environment of same name. +% This coding to be added after the preamble so that the order of loading +% \thestyle{} and \texttt{longtable} is unimportant. The \cs{LT@makecaptions} +% is fixed to use the \cs{\@makecaptions} format that is current. +% Since it makes sense to use the \texttt{longtable} environment with the +% \texttt{afterpage} command, but not when the table is moved to the back, +% switch off that command when moving is active. +% \begin{macrocode} +%<*longtab&!209> +\AtBeginDocument{\let\FC@ltab=\longtable + \let\FC@endltab=\endlongtable +\def\longtable{\iffigcaps \let\@tempb=\@ltable \else + \let\@tempb=\FC@ltab\fi \@tempb} +\def\@ltable{\begingroup\set@literal + \@ifundefined{tf@pot}{\newwrite\tf@pot + \if@filesw\immediate\openout\tf@pot\jobname.\lot\relax + \ifFC@appendix\FC@writefile{pot}{\string\doappendix}\fi\fi}{}% + \refstepcounter{table}\iffigmark\marginpar{\fbox{\fnum@table}}\fi + \def\@captype{table}\if@filesw\FC@writefile{pot} + {\string\begin{longtable}}\fi \@vltab} +\def\endlongtable{\iffigcaps + \endgroup\if@filesw\FC@writefile{pot}{\string\end{longtable}}\fi\else + \FC@endltab\fi} +\@ifpackageloaded{longtable}{% +\def\LT@makecaption#1#2#3{% + \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{% + \@makecaption{#1{#2}}{#3}% + \endgraf\vskip\baselineskip}% + \hss}}}}{} +\@ifpackageloaded{afterpage}{% + \let\FC@afterpage=\afterpage + \def\afterpage{\iffigcaps \let\@tempb\relax \else \let\@tempb\FC@afterpage\fi + \@tempb}}{} + } +%</longtab&!209> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\planotable} +% \changes{4.1}{1993 Nov 20}{Add for AGU supplement} +% \changes{4.5}{1996 Jan 10}{Test for \cs{ifFC@appendix}} +% For the AGU supplement, we need to add the environment \texttt{planotable}. +% \begin{macrocode} +%<agu>\let\aguplano=\planotable +%<agu>\let\endaguplano=\endplanotable +%<agu> +%<agu>\def\planotable{\iffigcaps \let\@tempb=\@ptable \else +%<agu> \let\@tempb=\aguplano\fi \@tempb} +%<agu>\def\@ptable{\begingroup\set@literal +%<agu> \@ifundefined{tf@pot}{\newwrite\tf@pot +%<agu> \if@filesw\immediate\openout\tf@pot\jobname.\lot\relax +%<agu> \ifFC@appendix\FC@writefile{pot}{\string\doappendix}\fi\fi}{}% +%<agu> \refstepcounter{table}\iffigmark\marginpar{\fbox{\fnum@table}}\fi +%<agu> \def\@captype{table}\if@filesw\FC@writefile{pot} +%<agu> {\string\begin{planotable}}\fi \@vptab} +%<agu> +%<agu>\def\endplanotable{\iffigcaps +%<agu> \endgroup\if@filesw\FC@writefile{pot}{\string\end{planotable}}\fi\else +%<agu> \endaguplano\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\tableofcontents} +% \changes{4.4}{1995 Jan 8}{Use \LaTeXe{} warning command} +% \begin{macro}{\listoffigures} +% \changes{4.4}{1995 Jan 8}{Use \LaTeXe{} warning command} +% \begin{macro}{\listoftables} +% \changes{4.4}{1995 Jan 8}{Use \LaTeXe{} warning command} +% \begin{macro}{\listofplates} +% \changes{4.4}{1995 Jan 8}{Use \LaTeXe{} warning command} +% Unless the \texttt{docstrip} option \texttt{toc} has been selected, turn off +% the tables of contents commands, because they will interfere with the +% writing of the auxiliary files. +% \begin{macrocode} +%<*!toc> +\def\tableofcontents{% +%<209> \@@warning +%<!209> \PackageWarningNoLine{figcaps} + {Ignored: \protect\tableofcontents\space command}} +\def\listoffigures{% +%<209> \@@warning +%<!209> \PackageWarningNoLine{figcaps} + {Ignored: \protect\listoffigures\space command}} +\def\listoftables{% +%<209> \@@warning +%<!209> \PackageWarningNoLine{figcaps} + {Ignored: \protect\listoftables\space command}} +%<*plates> +\def\listofplates{% +%<209> \@@warning +%<!209> \PackageWarningNoLine{figcaps} + {Ignored: \protect\listofplates\space command}} +%</plates> +\def\addtocontents#1#2{\relax} +\def\addcontentsline#1#2#3{\relax} +%</!toc> +% \end{macrocode} +% \end{macro}\end{macro}\end{macro}\end{macro} +% +% \begin{macro}{\set@literal} +% \changes{3.1}{1992 Oct 14}{Use {\tt\symbol{94}\symbol{94}M!=\protect\bslash +% relax} in place of {\tt\protect\bslash obeylines} which caused problems +% with floats inside paragraphs because then +% {\tt\symbol{94}\symbol{94}M!=\protect\bslash par}} +% Here is the command that makes all characters literal. It especially +% makes |^^M| to be active, defined to be |\relax|. In earlier versions, +% |\obeylines| was used instead, but that sets |^^M| to |\par| and there +% were problems when the floats appeared in the middle of a paragraph. +% \begin{macrocode} +{\catcode`\^^M=\active \gdef\cr@relax{\catcode`\^^M=\active \let^^M=\relax}} +\def\set@literal{\cr@relax \let\do\@makeother\dospecials} +% \end{macrocode} +% \end{macro} +% +% \subsection{Commands to Put Saved Text at the End} +% \begin{macro}{\@figurecaps} +% \changes{4.1}{1993 Nov 20}{Revisions for AGU supplement} +% \changes{4.3a}{1994 Jun 6}{Zero \cmd{\parindent} for AGU} +% \changes{4.5e}{1996 Oct 17}{Zero \cmd{\parindent} generally} +% Now define the routine to read in the {\tt.lof} auxiliary file with the +% purpose of listing only the captions. Since the list is to be made under +% a |\section*|, there may be trouble if |\appendix| has been called +% already. The redefined |\section*| command may print out |\appendixname|. +% Thus this name is set to blank if it exists. +% +% The |\reset@figtab| command is called to reset the figure, plate, table +% counters to zero. This is because they are to go through their automatic +% sequence once more as they are read in. Actually, this is not necessary, +% since the |\caption|s were never really called in the text part. However, +% it is better to be certain that the counters are where we expect them. +% +% An entry is made to the running heads and to the table of contents. +% The \texttt{figure} environment is redefined yet again to make use of +% |\@fcaponly|, and |\addcontentsline| is set to swallow its arguments. +% This latter is called by the |\@caption| command and we do not want the +% entries to be made at this point. The |\@makecaption| command must be +% altered to a special format for the captions list. +% Finally, the auxiliary file {\tt.lof} is input. +% +% For the AGU supplement, the procedure is different. Instead of ignoring +% everything except the |\caption|, all printable text is contained in +% a |\figbox|, which here is defined to swallow its argument. (Actually the +% internal |\@figbox| is redefined.) +% +% For AGU, need to call |\noappendix| and to set |\parindent| to zero. +% This is because the manuscript part of AGU\TeX{} redefines |\@caption| +% so that this is no longer done there. +% +% Also need to zero |\parindent| for EGS. So why not do it generally? +% +% Note: no distinction is made between \texttt{figure} and \texttt{figure*}, +% since both environments write the unstarred variant to the auxiliary +% file. For a list of captions, there is no need for a distinction. +% +% \begin{macrocode} +\def\@figurecaps{\@ifundefined{tf@pof}{}{\if@filesw + \immediate\closeout\tf@pof\fi + \@ifundefined{appendixname}{}{\def\appendixname{}} +%<agu> \noappendix + \parindent\z@ + \reset@figtab\clearpage\section*{\figurecapname}\vspace{1cm}% + \@mkboth{\uppercase{\figurecapname}}{\uppercase{\figurecapname}}% + \addcontentsline{toc}{section}{\figurecapname}% + \def\figure{\def\addcontentsline####1####2####3{}% + \def\@captype{figure}% +%<*!agu> + \begingroup\set@literal\@fcaponly + }\def\endfigure{\endgroup\bigskip}% +%</!agu> +%<agu> \vbox\bgroup +%<agu> }\def\endfigure{\egroup\bigskip}% +%<*plates> + \def\plate{\def\addcontentsline####1####2####3{}% + \def\@captype{plate}% +%<*!agu> + \begingroup\set@literal\@pcaponly +%</!agu> +%<agu> \vbox\bgroup + }\let\endplate=\endfigure +%</plates> + {\let\@makecaption=\@makefcaption +%<agu> \def\@figbox##1##2##3{\relax} + \@input{\jobname.\lof}}% + \clearpage}}% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@tablepage} +% \changes{4.1}{1993 Oct 22}{For NLINPROC, add explicit +% {\tt\protect\bslash small}} +% \changes{4.1}{1993 Nov 20}{Revisions for AGU supplement} +% \changes{4.2}{1993 Dec 16}{For AGU: suppress floats for \texttt{planotable}} +% \changes{4.3a}{1994 Jun 6}{Zero \cmd{\parindent} for AGU} +% \changes{4.5e}{1996 Oct 17}{Zero \cmd{\parindent} generally} +% The page(s) of tables are written similarly, except no effort is made to +% list only the captions. The whole set of tables is read in as is, +% except that the tables are not to `float'. +% \begin{macrocode} +\def\@tablepage{\@ifundefined{tf@pot}{}{\if@filesw + \immediate\closeout\tf@pot\fi + \@ifundefined{appendixname}{}{\def\appendixname{}} +%<agu> \noappendix + \parindent\z@ + \reset@figtab\clearpage\section*{\tablepagename} + \@mkboth{\uppercase{\tablepagename}}{\uppercase{\tablepagename}}% + \def\table{\def\@captype{table}\vbox\bgroup +%<egs> \small +%<*!agu> + }\def\endtable{\egroup\bigskip}% +%</!agu> +%<agu> }\def\endtable{\spew@tblnotes\egroup\bigskip}% +%<agu> \let\planotable=\aguplano \let\endplanotable=\endaguplano +%<agu> \def\@float##1{\def\@captype{table}\vbox\bgroup} +%<agu> \let\@dblfloat=\@float \let\clearpage=\newpage +%<longtab&!209> \def\longtable{\newpage\FC@ltab} \let\endlongtable=\FC@endltab + \@input{\jobname.\lot} + \clearpage}} +% \end{macrocode} +% +% Note that \texttt{agu} needs to provide for \texttt{planotable}. Since that +% environment calls |\@float| or |\@dblfloat| explicitly, the only way to +% turn of the floating mechanism is to redefine those commands. The +% |\clearpage| is also turned into |\newpage| otherwise \texttt{planotable} +% tries to eject some pseudo floats when tables are continued, resulting in +% an unwanted blank page. +% +% The \texttt{longtable} environment does not call the floating mechanism, +% but we do have to restore the original definitions here. But add +% \cs{newpage} to \cs{longtable} so that each such table starts on a new page. +% \end{macro} +% +% \begin{macro}{\printfigures} +% A similar page of figures (as opposed to their captions only) is added +% only optionally if the command |\printfigures| is given in the preamble. +% \begin{macrocode} +\def\printfigures{\@figpagetrue} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@figurepage} +% \changes{4.1}{1993 Nov 20}{Revisions for AGU supplement} +% \changes{4.3a}{1994 Jun 6}{Zero \cmd{\parindent} for AGU} +% \changes{4.3a}{1994 Jun 6}{Add \cmd{\figurewidth} and \cmd{\platewidth} for +% AGU} +% The page(s) of figures are much like those for the tables, except that +% the |\label| command must be switched off. This is because the labels +% have already been defined during the list of captions. However, any +% entries to a list of figures will be made here, since +% |\addtocontentsline| is in effect. +% +% For AGU, make the |\figurewidth| and |\platewidth| commands set |\hsize| +% (as well as |\pt@width|) in order to avoid overfull hboxes. +% \begin{macrocode} +\def\@figurepage{\if@figpage\@ifundefined{tf@pof}{}{% + \@ifundefined{appendixname}{}{\def\appendixname{}} +%<agu> \noappendix \parindent\z@ + \reset@figtab\clearpage\section*{\figurepagename}% + \@mkboth{\uppercase{\figurepagename}}{\uppercase{\figurepagename}}% + \begingroup +%<agu> \def\figurewidth##1{\pt@width##1\hsize##1} + \def\figure{\def\@captype{figure}\vbox\bgroup}\def\endfigure{\egroup + \vspace{20pt}}% +%<*plates> +%<agu> \let\platewidth=\figurewidth + \def\plate{\def\@captype{plate}\vbox\bgroup}\let\endplate=\endfigure +%</plates> + \def\label##1{}% + \@input{\jobname.\lof}\newpage\endgroup}\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@makefcaption} +% The special caption format for the captions list is defined here. The +% difference between this and the regular |\@makecaption| is that it is +% never centered if the text is less than one line. Unfortunately, this may +% alter the style of the caption. Maybe some better solution can be found. +% (The specific journals have special definitions of |\@makefcaption| +% that are given later.) +% \begin{macrocode} +%<*!agu&!egs> +\long\def\@makefcaption#1#2{% + \vskip 10pt + #1. #2\par } +%</!agu&!egs> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\reset@figtab} +% The command to reset the figure and table counters. +% \begin{macrocode} +\def\reset@figtab{% + \setcounter{figure}{0}\setcounter{table}{0} +%<*plates> + \setcounter{plate}{0} +%</plates> +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\enddocument} +% \changes{3.4}{1993 Aug 10}{Change order of pages to tables, figcaps, +% figures} +% \changes{4.1}{1993 Nov 15}{For AGU, order is figcaps, tables, figures} +% The pages of figures, tables, and captions should be printed +% automatically at the end of the document without any extra commands from +% the author. To do this, put them into the |\end{document}|. +% (This can be done much more easily in \LaTeXe.) +% \begin{macrocode} +%<*209> +\let\@nddoc=\enddocument +%<!agu>\def\enddocument{\iffigcaps\@tablepage\@figurecaps\@figurepage\fi\@nddoc} +%<agu>\def\enddocument{\iffigcaps\@figurecaps\@tablepage\@figurepage\fi\@nddoc} +%</209> +%<*!209> +%<!agu>\AtEndDocument{\iffigcaps\@tablepage\@figurecaps\@figurepage\fi} +%<agu>\AtEndDocument{\iffigcaps\@figurecaps\@tablepage\@figurepage\fi} +%</!209> +% \end{macrocode} +% \end{macro} +% +% \subsection{Complications with the Appendix} +% The problem is that the figures etc.\ are stored to auxiliary files +% {\tt.lof} or {\tt.lot} and then read in later at the end of the paper. +% Thus these files must know when the |\appendix| has been given and when +% |\section| commands have been issued (new appendices) in order to keep the +% number labels straight. It is also necessary to reset things to their +% previous status. The |\@addtoreset| command must be undone, something that +% is not normally allowed for. +% +% The modifications here are added to the |\appendix| definition that +% exists \emph{before} this file is read in. The |\appendix| is not +% defined here, nor need it even include such subnumbering. +% The following macros merely allow such subnumbering to function properly +% under this style option. +% +% \begin{macro}{\appendix} +% \changes{3.3}{1993 Jul 23}{Add possibility of subnumbered figures and +% tables in appendix} +% \changes{4.2}{1993 Dec 21}{Add auxiliary file switch test for the appendix +% entries to the \texttt{pof} and \texttt{pot} files} +% \changes{4.5}{1996 Jan 10}{Add flag to indicate appendix is on} +% \changes{4.5h}{1997 Nov 18}{Globally \cs{let} some things be redefined} +% The existing definition of |\appendix| is stored and the new |\appendix| +% command is defined. It writes |\doappendix| to the auxiliary files, +% redefines |\section| so that it puts a |\stepcounter{section}| command +% into the auxiliary files, and executes |\doappendix|. +% The definition of the |\section| command must be stored at a number of +% locations: |\@section| is the original non-appendix version, while +% |\@@section| contains any redinitions made by |\doappendix|, i.e., by the +% original |\appendix| command. +% +% Both |\@section| and |\reset@figtab| are globally set to avoid a problem +% if the appendix occurs inside an environment. This does occur with the +% AGU |\begin{article}|\dots|\end{article}| feature. +% +% The flag |\ifFC@appendix| is used to test if the appendix is active when +% the first float appears, so that when the auxiliary file is opened, the +% |\doappendix| is written immediately to it. Previously, without this, if +% the first figure or table appeared in the appendix, the listed captions +% did not have appendix numbering because this command was missing in the +% captions files. +% +% \begin{macrocode} +\let\@appendix=\appendix +\newif\ifFC@appendix \FC@appendixfalse +\def\appendix{\FC@appendixtrue + \@ifundefined{tf@pof}{}{\if@filesw\FC@writefile{pof}{\string\doappendix}\fi}% + \@ifundefined{tf@pot}{}{\if@filesw\FC@writefile{pot}{\string\doappendix}\fi}% + \global\let\@section=\section + \doappendix + \let\@@section=\section + \def\section{% + \@ifundefined{tf@pof}{}{\if@filesw\FC@writefile{pof}{\string + \stepcounter{section}}\fi}% + \@ifundefined{tf@pot}{}{\if@filesw\FC@writefile{pot}{\string + \stepcounter{section}}\fi}% + \@@section} + \global\let\reset@figtab=\@unappendix} +% \end{macrocode} +% The last step alters |\reset@figtab| so that appendix features are +% reset as well as the counters. +% \end{macro} +% +% \begin{macro}{\doappendix} +% \changes{4.5h}{1997 Nov 18}{Globally \cs{let} some things be redefined} +% The |\doappendix| contains those commands that must be executed when +% |\appendix| is given, both in the main text, and when the auxiliary files +% are reread in. It first saves the current definitions of |\thexxx| +% and of |\cl@section| (the list of counters that are reset when the section +% counter is incremented). +% \begin{macrocode} +\def\doappendix{% + \global\let\@thefigure=\thefigure + \global\let\@thetable=\thetable +%<*plates> + \global\let\@theplate=\theplate +%</plates> + \global\let\@cl@section=\cl@section + \@appendix +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@unappendix} +% The |\@unappendix| undoes the changes made by |\doappendix|. +% It becomes |\reset@figcaps| when |\appendix| is called. +% It is thus invoked by |\@figurecaps|, |\@tablepage|, and |\@figurepage|. +% \begin{macrocode} +\def\@unappendix{\FC@appendixfalse + \setcounter{figure}{0}\setcounter{table}{0} + \let\thefigure=\@thefigure + \let\thetable=\@thetable +%<*plates> + \setcounter{plate}{0}% + \let\theplate=\@theplate +%</plates> + \let\cl@section=\@cl@section + \let\section=\@section +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Complications with \texttt{sublabel.sty}} +% \begin{macro}{\sublabon} +% \changes{3.3}{1993 Jul 23}{Additions to allow for style option {\tt +% sublabel.sty}} +% \begin{macro}{\sublaboff} +% A similar problem exists if the style option \texttt{sublabel} has been +% activated. This could mean that figures and tables are subnumbered even +% outside of an appendix. Subnumbering here means e.g., 4{\it a}, 4{\it b}, +% etc. As for the appendix, here too the auxiliary files must know when +% subnumbering is turned on and off. This means that these commands must be +% written to the auxiliary files whenever issued. +% +% These modifications here can only be made \emph{after} +% \texttt{sublabel.sty} has been read in, for obvious reasons. +% \begin{macrocode} +%<*sublab> +\let\orisubon=\sublabon +\let\orisuboff=\sublaboff +\def\sublabon#1{\orisubon{#1}\if@filesw + \iffigcaps\def\@tempb{#1} + \def\@tempa{figure}\ifx\@tempa\@tempb + \@ifundefined{tf@pof}{\newwrite\tf@pof + \immediate\openout\tf@pof\jobname.\lof}{}% + \FC@writefile{pof}{\string\orisubon{#1}}\fi +%<*plates> + \def\@tempa{plate}\ifx\@tempa\@tempb + \@ifundefined{tf@pof}{\newwrite\tf@pof + \immediate\openout\tf@pof\jobname.\lof}{}% + \FC@writefile{pof}{\string\orisubon{#1}}\fi +%</plates> + \def\@tempa{table}\ifx\@tempa\@tempb + \@ifundefined{tf@pot}{\newwrite\tf@pot + \immediate\openout\tf@pot\jobname.\lot}{}% + \FC@writefile{pot}{\string\orisubon{#1}}\fi +\fi\fi} +\def\sublaboff#1{\orisuboff{#1}\if@filesw + \iffigcaps\def\@tempb{#1} + \def\@tempa{figure}\ifx\@tempa\@tempb + \@ifundefined{tf@pof}{\newwrite\tf@pof + \immediate\openout\tf@pof\jobname.\lof}{}% + \FC@writefile{pof}{\string\orisuboff{#1}}\fi +%<*plates> + \def\@tempa{plate}\ifx\@tempa\@tempb + \@ifundefined{tf@pof}{\newwrite\tf@pof + \immediate\openout\tf@pof\jobname.\lof}{}% + \FC@writefile{pof}{\string\orisuboff{#1}}\fi +%</plates> + \def\@tempa{table}\ifx\@tempa\@tempb + \@ifundefined{tf@pot}{\newwrite\tf@pot + \immediate\openout\tf@pot\jobname.\lot}{}% + \FC@writefile{pot}{\string\orisuboff{#1}}\fi +\fi\fi} +%</sublab> +% \end{macrocode} +% \end{macro}\end{macro} +% +% \subsection{Journal-Specific Coding} +% \changes{4.1}{1993 Oct 22}{Add extra coding for JGR, GRL, and NLINPROC} +% \changes{4.1}{1993 Nov 20}{Add extra coding for AGU supplement} +% \changes{4.3}{1994 May 19}{Remove obsolete JGR, GRL coding} +% When \thestyle{} is used as a module to other main styles for specific +% journals, there are some extra details that must be seen to. +% +% \begin{macro}{\figbox} +% \changes{4.2}{1993 Nov 20}{Add for AGU supplement, to remove figures +% from list of figure captions} +% \changes{4.5b}{1996 Jul 22}{Let size fit contents automatically} +% \changes{4.5c}{1996 Jul 29}{Add starred version for no frame} +% For the AGU supplement, figures and plates are put into a |\figbox| +% which reserves space for them, or which can contain a real figure. +% During the printing of the captions, this command is set to swallow +% its argument. The normal captions-only system cannot be used for this +% because there may be additional width commands in the |figure| environment +% for setting the caption widths, which must be observed, i.e., read in. +% This box takes three arguments: width, height, and contents, which +% are centered horizontally and vertically in the box. The box is framed +% with |\framebox| so the parameters |\fboxsep| and |\fboxrule| may +% be used to control its appearance. +% The starred version of this command suppresses the frame without changing +% the |\framebox| parameters. It actually uses |\makebox| instead. +% It is better to use |\figbox*| to remove the frame because |\framebox| +% is also used in the marginal notes for the figures, which always should +% have the frame. +% +% If the first argument (width) is left empty, the box is made to fit its +% contents, both vertically and horizontally. If only the second argument +% (width) is left empty, the width will be as given and the height is scaled +% automatically. This is for use with |\epsfig| and relatives. +% \begin{macrocode} +%<agu>\def\figbox{\@ifstar{\let\agubox\makebox\@figbox} +%<agu> {\let\agubox\framebox\@figbox}} +%<agu>\def\@figbox#1#2#3{\hbox to \hsize{\hfil +%<agu> \ifx!#1!\agubox{#3}\else +%<agu> \agubox[#1][c]{\ifx!#2!#3\else\@tempdima#2\relax +%<agu> \divide\@tempdima by2\relax +%<agu> \advance\@tempdima by-\fboxsep \advance\@tempdima by-\fboxrule +%<agu> \vrule\@height\@tempdima\@depth\@tempdima\@width\z@ +%<agu> \vbox to \z@{\vss\hbox{#3}\vss}\fi}\fi\hfil}} +% \end{macrocode} +% \end{macro} +% +% The marking of figures and tables with marginal notes should be +% enabled by default. +% \begin{macrocode} +%<agu>\figmarktrue +% \end{macrocode} +% +% For the AGU supplement, the necessary flag is |\if@preprint|. Furthermore, +% for AGU preprints and manuscripts, we need to turn off the |\figurewidth| +% and |\platewidth| commands that come with the AGU-supplied macros. +% \begin{macrocode} +%<agu>\if@preprint \figcapsfalse +%<agu> \def\figurewidth#1{\pt@width=\hsize} +%<agu> \def\platewidth#1{\pt@width=\hsize} +%<agu>\fi +%<agu>\if@draft +%<agu> \def\figurewidth#1{\pt@width=\hsize} +%<agu> \def\platewidth#1{\pt@width=\hsize} +%<agu>\fi +% \end{macrocode} +% +% \begin{macro}{\@makefcaption} +% \changes{4.2}{1993 Nov 20}{Redefine for AGU supplement, to print captions +% in two widths} +% \changes{4.3a}{1994 Jun 6}{For AGU, set \cmd{\hsize} to avoid overfull +% hbox messages} +% Now define |\@makefcaption|, the special version of |\@makecaption| for +% the page of captions, for AGU. This is either the supplied version of +% the macro, or a special version that prints the caption twice, in two +% widths. +% \begin{macrocode} +%<agu>\let\ori@makecap=\@makecaption +%<agu>\def\@makefcaption#1#2{{\if@dblcap\if@camera\pt@width=\textwidth +%<agu> \ori@makecap{#1}{#2} +%<agu> \pt@width=\wpt@width +%<agu> \hsize=\pt@width +%<agu> \vskip10pt \def\label##1{}\fi\fi +%<agu> \ori@makecap{#1}{#2}} +%<agu>} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\doublecaption} +% \changes{4.2}{1993 Nov 20}{Add for AGU supplement, to enable doubled captions +% in two widths} +% To enable this double caption, one must give |\doublecaption| +% with the width of the wider caption as argument in the preamble. +% A normal value for \textsl{AGU} journals is 35~pc. +% \begin{macrocode} +%<agu>\newdimen\wpt@width +%<agu>\newif\if@dblcap \@dblcapfalse +%<agu>\def\doublecaption#1{\wpt@width=#1\relax\@dblcaptrue} +% \end{macrocode} +% \end{macro} +% Finally, for \emph{EGS}, the regular |\@makecaptions| +% macro is sufficient. In that journal, all captions are flush-left to +% begin with, so this might as well be kept for the figure captions too. +% \begin{macrocode} +%<egs>\let\@makefcaption=\@makecaption +% \end{macrocode} +% The whole figure caption business is activated only for |draft| mode. +% \begin{macrocode} +%<egs>\if@draft\figcapstrue\else\figcapsfalse\fi +% \end{macrocode} +% +% This terminates the special coding, and thus the style file. +% \begin{macrocode} +%</package> +% \end{macrocode} +% +% \Finale diff --git a/Master/texmf-dist/source/latex/preprint/figcaps.ins b/Master/texmf-dist/source/latex/preprint/figcaps.ins new file mode 100644 index 00000000000..185de2cf0aa --- /dev/null +++ b/Master/texmf-dist/source/latex/preprint/figcaps.ins @@ -0,0 +1,64 @@ +% File: figcaps.ins +% Copyright 1999 Patrick W. Daly +% +% This file can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% +% It is an installation file for extracting package and driver +% files from the original source file. Simply process it under +% TeX or LaTeX. + +\input docstrip + +\preamble +============================================= +IMPORTANT NOTICE: + +This program can be redistributed and/or modified under the terms +of the LaTeX Project Public License Distributed from CTAN +archives in directory macros/latex/base/lppl.txt; either +version 1 of the License, or any later version. + +This is a generated file. +It may not be distributed without the original source file \inFileName. + +Full documentation can be obtained by LaTeXing that original file. +Only a few abbreviated comments remain here to describe the usage. +============================================= +\endpreamble +\postamble + +<<<<< End of generated file <<<<<< +\endpostamble + +\declarepreamble\driver +============================================ +This is the driver file to produce the LaTeX documentation +from the original source file \inFileName. + +Make changes to it as needed. (Never change the file \inFileName!) +============================================ +\endpreamble + +\declarepostamble\driverq + +End of documentation driver file. +\endpostamble + +\keepsilent +\askforoverwritefalse + +\generate{\file{figcaps.sty}{\from{figcaps.dtx}{package}} + \file{figcaps.drv}{\usepreamble\driver\usepostamble\driverq + \from{figcaps.dtx}{driver}} + } + +\obeyspaces +\Msg{******************************************}% +\Msg{* For documentation, process figcaps.dtx *}% +\Msg{* or the driver file figcaps.drv *}% +\Msg{******************************************} + +\endbatchfile diff --git a/Master/texmf-dist/source/latex/preprint/fullpage.drv b/Master/texmf-dist/source/latex/preprint/fullpage.drv new file mode 100644 index 00000000000..4af05ab7284 --- /dev/null +++ b/Master/texmf-dist/source/latex/preprint/fullpage.drv @@ -0,0 +1,52 @@ +%% +%% This is file `fullpage.drv', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fullpage.dtx (with options: `driver') +%% ============================================ +%% This is the driver file to produce the LaTeX documentation +%% from the original source file fullpage.dtx. +%% +%% Make changes to it as needed. (Never change the file fullpage.dtx!) +%% ============================================ +%% Copyright 1994-1999 Patrick W Daly +%% Max-Planck-Institut f\"ur Aeronomie +%% Max-Planck-Str. 2 +%% D-37191 Katlenburg-Lindau +%% Germany +%% E-mail: daly@linmpi.mpg.de +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{fullpage.drv} + [1999/02/23 1.1 (PWD)] +\documentclass{ltxdoc} +%\documentclass[twoside]{ltxdoc} +%\documentclass[a4paper]{ltxdoc} +%\documentclass[twoside,a4paper]{ltxdoc} +\raggedbottom + + %** To include the detailed explanation of the coding, comment out + %** the next line +\OnlyDescription + + %** To produce a command index: add the following line for one run, + %** then run makeindex -s gind.ist natbib + %** and reprocess, with or without this line (much faster without) +% \EnableCrossrefs\CodelineIndex + + %** To produce a change history: add the following line for one run, + %** then run makeindex -s gglo.ist -o natbib.gls natbib.glo + %** and reprocess, with or without this line (faster without) +% \RecordChanges + +\DisableCrossrefs %May stay; zapped by \EnableCrossrefs +\CodelineNumbered %May stay + +\begin{document} + \DocInput{fullpage.dtx} +\end{document} +%% +%% End of documentation driver file. +%% +%% End of file `fullpage.drv'. diff --git a/Master/texmf-dist/source/latex/preprint/fullpage.dtx b/Master/texmf-dist/source/latex/preprint/fullpage.dtx new file mode 100644 index 00000000000..270faa70611 --- /dev/null +++ b/Master/texmf-dist/source/latex/preprint/fullpage.dtx @@ -0,0 +1,387 @@ +% \iffalse THIS IS A META-COMMENT +%<*dtx> +\ProvidesFile +%======================================================================== + {FULLPAGE.DTX} +%======================================================================== +%</dtx> +%% Copyright 1994-1999 Patrick W Daly +%% Max-Planck-Institut f\"ur Aeronomie +%% Max-Planck-Str. 2 +%% D-37191 Katlenburg-Lindau +%% Germany +%% E-mail: daly@linmpi.mpg.de +% +% This program can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% +% This is a contributed file to the LaTeX2e system. +% ------------------------------------------------- +% This is a LaTeX package to set all margins to 1in or 1.5cm +% Installation: +% LaTeX this file: creates docstrip installation file fullpage.ins +% AND the (LaTeX2e) documentation +% (La)TeX fullpage.ins: creates package files fullpage.sty, and optionally +% doc driver fullpage.drv +% (fullpage.ins may be edited as needed) +% Docstrip options available: +% package - to produce a (LaTeX2e) package .sty file +% driver - to produce a driver file to print the documentation +%-------------------------------------------------------------------------- +% *** Identify the package file:- +%<package>\NeedsTeXFormat{LaTeX2e}[1994/06/01] +%<package>\ProvidesPackage{fullpage} +% +% *** Identify the driver file:- +%<driver>\NeedsTeXFormat{LaTeX2e} +%<driver>\ProvidesFile{fullpage.drv} +% +% *** The DATE, VERSION, and other INFO +%\fi +%\ProvidesFile{fullpage} + [1999/02/23 1.1 (PWD)] +% \changes{1.0}{1994 Feb 15}{Initial version} +% \changes{1.0a}{1994 Jun 15}{Documentation as per \LaTeXe: driver at start} +% \changes{1.0b}{1997 Apr 29}{Conform to new \texttt{docstrip}} +% \changes{1.1}{1999 Feb 23}{Update copyright notice} +% +% \CheckSum{74} +% \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 +% Lower-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 +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +%\iffalse +%<*install> +%^^A ============================================= +%^^A Here is the docstrip installation file +%^^A It is written on first LaTeX run if it +%^^A does not already exist +%^^A ============================================= +\begin{filecontents*}{fullpage.ins} +% File: fullpage.ins +% Copyright 1999 Patrick W. Daly +% +% This file can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% +% It is an installation file for extracting package and driver +% files from the original source file. Simply process it under +% TeX or LaTeX. + +\input docstrip + +\preamble +============================================= +IMPORTANT NOTICE: + +This program can be redistributed and/or modified under the terms +of the LaTeX Project Public License Distributed from CTAN +archives in directory macros/latex/base/lppl.txt; either +version 1 of the License, or any later version. + +This is a generated file. +It may not be distributed without the original source file \inFileName. + +Full documentation can be obtained by LaTeXing that original file. +Only a few abbreviated comments remain here to describe the usage. +============================================= +\endpreamble +\postamble + +<<<<< End of generated file <<<<<< +\endpostamble + +\declarepreamble\driver +============================================ +This is the driver file to produce the LaTeX documentation +from the original source file \inFileName. + +Make changes to it as needed. (Never change the file \inFileName!) +============================================ +\endpreamble + +\declarepostamble\driverq + +End of documentation driver file. +\endpostamble + +\keepsilent +\askforoverwritefalse + +\generate{\file{fullpage.sty}{\from{fullpage.dtx}{package}} + \file{fullpage.drv}{\usepreamble\driver\usepostamble\driverq + \from{fullpage.dtx}{driver}} + } + +\obeyspaces +\Msg{*******************************************}% +\Msg{* For documentation, process fullpage.dtx *}% +\Msg{* or the driver file fullpage.drv *}% +\Msg{*******************************************} + +\endbatchfile +\end{filecontents*} +%</install> +%<*driver> +\documentclass{ltxdoc} +%<driver>%\documentclass[twoside]{ltxdoc} +%<driver>%\documentclass[a4paper]{ltxdoc} +%<driver>%\documentclass[twoside,a4paper]{ltxdoc} +\raggedbottom + + %** To include the detailed explanation of the coding, comment out + %** the next line +\OnlyDescription + + %** To produce a command index: add the following line for one run, + %** then run makeindex -s gind.ist natbib + %** and reprocess, with or without this line (much faster without) +%<driver>% \EnableCrossrefs\CodelineIndex + + %** To produce a change history: add the following line for one run, + %** then run makeindex -s gglo.ist -o natbib.gls natbib.glo + %** and reprocess, with or without this line (faster without) +%<driver>% \RecordChanges + +\DisableCrossrefs %May stay; zapped by \EnableCrossrefs +\CodelineNumbered %May stay + +\begin{document} + \DocInput{fullpage.dtx} +\end{document} +%</driver> +%\fi +% +% \DoNotIndex{\begin,\CodelineIndex,\CodelineNumbered,\def,\DisableCrossrefs} +% \DoNotIndex{\DocInput,\documentclass,\EnableCrossrefs,\end,\GetFileInfo} +% \DoNotIndex{\NeedsTeXFormat,\OnlyDescription,\RecordChanges,\usepackage} +% \DoNotIndex{\ProvidesClass,\ProvidesPackage,\ProvidesFile,\RequirePackage} +% \DoNotIndex{\LoadClass,\PassOptionsToClass,\PassOptionsToPackage} +% \DoNotIndex{\DeclareOption,\CurrentOption,\ProcessOptions,\ExecuteOptions} +% \DoNotIndex{\AtEndOfClass,\AtEndOfPackage,\AtBeginDocument,\AtEndDocument} +% \DoNotIndex{\InputIfFileExists,\IfFileExists,\ClassError,\PackageError} +% \DoNotIndex{\ClassWarning,\PackageWarning,\ClassWarningNoLine} +% \DoNotIndex{\PackageWarningNoLine,\ClassInfo,\PackageInfo,\MessageBreak} +% \DoNotIndex{\space,\protect,\DeclareRobustCommand,\CheckCommand} +% \DoNotIndex{\newcommand,\renewcommand,\providecommand\newenvironment} +% \DoNotIndex{\renewenvironment,\newif,\newlength,\newcounter,\setlength} +% \DoNotIndex{\setcounter,\if,\ifx,\ifcase,\ifnum,\texttt,\textbf,\textrm} +% \DoNotIndex{\textsl,\textsc,\textup,\textit,\textmd,\textsf,\emph} +% \DoNotIndex{\ttfamily,\rmfamily,\sffamily,\mdseries,\bfseries,\upshape} +% \DoNotIndex{\slshape,\scshape,\itshape,\em,\LaTeX,\LaTeXe} +% \DoNotIndex{\addtolength,\pagestyle,\paperheight,\paperwidth} +% \DoNotIndex{\filename,\fileversion,\filedate,\let,\fi} +% +% \setcounter{IndexColumns}{2} +% \setlength{\IndexMin}{10cm} +% \setcounter{StandardModuleDepth}{1} +% +% \GetFileInfo{fullpage} +% +% \title{\bfseries A Package to Set Margins to Full Page} +% +% \author{Patrick W. Daly} +% +% \date{This paper describes package \texttt{\filename}\\ +% version \fileversion{} from \filedate\\[1ex] +% \textsl{It is part of the \texttt{preprint} collection of packages}\\ +% } +% +% \maketitle +% +% \pagestyle{myheadings} +% \markboth{P. W. Daly}{SETTING PAGE MARGINS FOR FULL PAGE} +% +%^^A In order to keep all marginal notes on the one (left) side: +%^^A (otherwise they switch sides disasterously with twoside option) +% \makeatletter \@mparswitchfalse \makeatother +% +%\begin{small}\begin{center}\bfseries Summary\end{center} +% The stripped version of this file contains the following brief description: +%\iffalse +%<*package> +%\fi +% \begin{verbatim} + % Sets all 4 margins to be either 1 inch or 1.5 cm, and specifies + % the page style + % Call as \usepackage[options]{fullpage} + % Options = in (default) for 1 inch + % cm for 1.5 cm + % plain (default) sets \pagestyle{plain} + % empty sets \pagestyle{empty} + % headings sets \pagestyle{headings} + % myheadings sets \pagestyle{myheadings} +% \end{verbatim} +%\iffalse + %----------------------------------------------------------- +%</package> +%\fi +%\end{small} +% +% \section{Purpose} +% This package is called \texttt{\filename}, and it sets the text height +% and width and the margins such that the page is almost full. It only +% leaves a uniform margin on all four sides. +% +% To do this, it needs to know how big the full page is, whether US letter +% size ($8\frac{1}{2} \times 11''$) or A4 ($21 \times 29.7$~cm), or some +% other size. This is given in the parameters |\paperwidth| and +% |\papersize| that are set by the appropriate option in the +% |\documentclass| command. +% +% The package must also know which page style is being employed. This is +% because it must leave space for possible headers and footers, if they are +% present. If not, it may use that space for text. +% +% \section{Invoking the Package} +% The package is called after the |\documentclass| command as e.g., +% \begin{quote} +% |\documentclass[a4paper,landscape]{article}|\\ +% |\usepackage[|\emph{options}|]{|\texttt{\filename}|}| +% \end{quote} +% where possible options for \texttt{\filename} are +% \begin{quote}\begin{description} +% \item[\tt in] (default) sets the margins to one inch; +% \item[\tt cm] sets the margins to 1.5~cm (one centimeter is really too +% little); +% \item[\tt plain] (default) selects the \texttt{plain} page style, i.e., +% with no headers but only a footer; +% \item[\tt empty] for neither headers nor footers; +% \item[\tt headings] for both header and footers; +% \item[\tt myheadings] also for both headers and footers. +% \end{description}\end{quote} +% For the last 4 options, the corresponding |\pagestyle| declaration is +% executed, so that it is not necessary to give it again. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \section{Options with \texttt{docstrip}} +% The source \texttt{.dtx} file is meant to be processed with +% \texttt{docstrip}, for which a number of options are available: +% \begin{description} +% \item[\tt package] to produce a \texttt{.sty} package file with most +% comments removed; +% \item[\tt driver] to produce a driver \texttt{.drv} file that will print +% out the documentation under \LaTeXe. The documentation cannot be +% printed under \LaTeX~2.09. +% \end{description} +% The source file \texttt{\filename.dtx} is itself a driver file and can +% be processed directly by \LaTeXe. +% +% \section{The Coding} +% This section presents and explains the actual coding of the macros. +% It is nested between |%<*package>| and |%</package>|, which +% are indicators to \texttt{docstrip} that this coding belongs to the package +% file. +% +% \begin{macro}{\FP@margin} +% Define the options with help of the length |\FP@margin|. The options |in| +% and |cm| select the actual margin size. +% \begin{macrocode} +%<*package> +\newlength{\FP@margin} +\DeclareOption{in}{\setlength{\FP@margin}{1in}} +\DeclareOption{cm}{\setlength{\FP@margin}{1.5cm}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifFP@plain} +% \begin{macro}{\ifFP@empty} +% The remaining options determine the page style, and need two flags to +% keep track of whether headers and footers are present. +% \begin{macrocode} +\newif\ifFP@plain +\newif\ifFP@empty +\DeclareOption{plain}{\FP@plaintrue \FP@emptyfalse + \pagestyle{plain}} +\DeclareOption{empty}{\FP@plaintrue \FP@emptytrue + \pagestyle{empty}} +\DeclareOption{headings}{\FP@plainfalse \FP@emptyfalse + \pagestyle{headings}} +\DeclareOption{myheadings}{\FP@plainfalse \FP@emptyfalse + \pagestyle{myheadings}} +% \end{macrocode} +% \end{macro}\end{macro} +% +% Invoke the default options and then process the requested ones. Use the +% starred version of |\ProcessOptions| so that the options are executed +% in the order they were specified (not defined). Thus if someone gives +% conflicting options (like |in| and |cm|) then the last one in the list +% counts. +% \begin{macrocode} +\ExecuteOptions{in,plain} +\ProcessOptions* +% \end{macrocode} +% +% \begin{macro}{\headheight} +% \begin{macro}{\headsep} +% If there are to be no headers (for options |empty| and |plain|, which both +% set |\ifFP@plain| to be \meta{true}), zero the appropriate parameters. +% \begin{macrocode} +\ifFP@plain + \setlength{\headheight}{0pt} + \setlength{\headsep}{0pt} +\fi +% \end{macrocode} +% \end{macro}\end{macro} +% +% \begin{macro}{\footskip} +% If there are to be not footers, zero the |\footskip| parameter. This +% occurs only for page style |empty|, for although the two |headings| +% styles do not include a footer, they are often used in conjunction with a +% |\thispagestyle{plain}| command for the first page of a document. +% \begin{macrocode} +\ifFP@empty + \setlength{\footskip}{0pt} +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textwidth} +% \begin{macro}{\oddsidemargin} +% \begin{macro}{\evensidemargin} +% Calculate the width of the text from |\paperwidth| and set the left and +% right margins. Recall that \TeX{} automatically leaves a margin of $1''$. +% \begin{macrocode} +\setlength{\textwidth}{\paperwidth} +\addtolength{\textwidth}{-2\FP@margin} +\setlength{\oddsidemargin}{\FP@margin} +\addtolength{\oddsidemargin}{-1in} +\setlength{\evensidemargin}{\oddsidemargin} +% \end{macrocode} +% \end{macro}\end{macro}\end{macro} +% +% \begin{macro}{\textheight} +% \begin{macro}{\topmargin} +% Calculate the height of the text from |\paperwidth|, by removing the +% margins, headers, and footers. Set the top margin, recalling that \TeX{} +% automatically leaves $1''$. +% \begin{macrocode} +\setlength{\textheight}{\paperheight} +\addtolength{\textheight}{-\headheight} +\addtolength{\textheight}{-\headsep} +\addtolength{\textheight}{-\footskip} +\addtolength{\textheight}{-2\FP@margin} +\setlength{\topmargin}{\FP@margin} +\addtolength{\topmargin}{-1in} +%</package> +% \end{macrocode} +% \end{macro}\end{macro} +% +% \Finale diff --git a/Master/texmf-dist/source/latex/preprint/fullpage.ins b/Master/texmf-dist/source/latex/preprint/fullpage.ins new file mode 100644 index 00000000000..1c022f1dd99 --- /dev/null +++ b/Master/texmf-dist/source/latex/preprint/fullpage.ins @@ -0,0 +1,64 @@ +% File: fullpage.ins +% Copyright 1999 Patrick W. Daly +% +% This file can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% +% It is an installation file for extracting package and driver +% files from the original source file. Simply process it under +% TeX or LaTeX. + +\input docstrip + +\preamble +============================================= +IMPORTANT NOTICE: + +This program can be redistributed and/or modified under the terms +of the LaTeX Project Public License Distributed from CTAN +archives in directory macros/latex/base/lppl.txt; either +version 1 of the License, or any later version. + +This is a generated file. +It may not be distributed without the original source file \inFileName. + +Full documentation can be obtained by LaTeXing that original file. +Only a few abbreviated comments remain here to describe the usage. +============================================= +\endpreamble +\postamble + +<<<<< End of generated file <<<<<< +\endpostamble + +\declarepreamble\driver +============================================ +This is the driver file to produce the LaTeX documentation +from the original source file \inFileName. + +Make changes to it as needed. (Never change the file \inFileName!) +============================================ +\endpreamble + +\declarepostamble\driverq + +End of documentation driver file. +\endpostamble + +\keepsilent +\askforoverwritefalse + +\generate{\file{fullpage.sty}{\from{fullpage.dtx}{package}} + \file{fullpage.drv}{\usepreamble\driver\usepostamble\driverq + \from{fullpage.dtx}{driver}} + } + +\obeyspaces +\Msg{*******************************************}% +\Msg{* For documentation, process fullpage.dtx *}% +\Msg{* or the driver file fullpage.drv *}% +\Msg{*******************************************} + +\endbatchfile diff --git a/Master/texmf-dist/source/latex/preprint/sublabel.drv b/Master/texmf-dist/source/latex/preprint/sublabel.drv new file mode 100644 index 00000000000..0c5d596a284 --- /dev/null +++ b/Master/texmf-dist/source/latex/preprint/sublabel.drv @@ -0,0 +1,52 @@ +%% +%% This is file `sublabel.drv', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% sublabel.dtx (with options: `driver') +%% ============================================ +%% This is the driver file to produce the LaTeX documentation +%% from the original source file sublabel.dtx. +%% +%% Make changes to it as needed. (Never change the file sublabel.dtx!) +%% ============================================ +%% Copyright 1993-1999 Patrick W Daly +%% Max-Planck-Institut f\"ur Aeronomie +%% Max-Planck-Str. 2 +%% D-37191 Katlenburg-Lindau +%% Germany +%% E-mail: daly@linmpi.mpg.de +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{sublabel.drv} + [1999/02/23 4.5 (PWD)] +\documentclass{ltxdoc} +%\documentclass[twoside]{ltxdoc} +%\documentclass[a4paper]{ltxdoc} +%\documentclass[twoside,a4paper]{ltxdoc} +\raggedbottom + + %** To include the detailed explanation of the coding, comment out + %** the next line +\OnlyDescription + + %** To produce a command index: add the following line for one run, + %** then run makeindex -s gind.ist natbib + %** and reprocess, with or without this line (much faster without) +% \EnableCrossrefs\CodelineIndex + + %** To produce a change history: add the following line for one run, + %** then run makeindex -s gglo.ist -o natbib.gls natbib.glo + %** and reprocess, with or without this line (faster without) +% \RecordChanges + +\DisableCrossrefs %May stay; zapped by \EnableCrossrefs +\CodelineNumbered %May stay + +\begin{document} + \DocInput{sublabel.dtx} +\end{document} +%% +%% End of documentation driver file. +%% +%% End of file `sublabel.drv'. diff --git a/Master/texmf-dist/source/latex/preprint/sublabel.dtx b/Master/texmf-dist/source/latex/preprint/sublabel.dtx new file mode 100644 index 00000000000..7aad1f0ce68 --- /dev/null +++ b/Master/texmf-dist/source/latex/preprint/sublabel.dtx @@ -0,0 +1,729 @@ +% \iffalse THIS IS A META-COMMENT +%<*dtx> +\ProvidesFile +%======================================================================== + {SUBLABEL.DTX} +%======================================================================== +%</dtx> +%% Copyright 1993-1999 Patrick W Daly +%% Max-Planck-Institut f\"ur Aeronomie +%% Max-Planck-Str. 2 +%% D-37191 Katlenburg-Lindau +%% Germany +%% E-mail: daly@linmpi.mpg.de +% +% This program can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% +% This is a contributed file to the LaTeX2e system. +% ------------------------------------------------- +% This is a LaTeX package to permit figures, equations etc to be subnumbered +% as 4a, 4b, 4c etc. +% Installation: +% LaTeX this file: creates docstrip installation file sublabel.ins +% AND the (LaTeX2e) documentation +% (La)TeX sublabel.ins: creates package files sublabel.sty, and optionally +% documentation driver sublabel.drv +% (sublabel.ins may be edited as needed) +% Docstrip options available: +% package - to produce a (LaTeX2e) package .sty file +% driver - to produce a driver file to print the documentation +% 209 - (with package) for package that runs under LaTeX 2.09 +% subpack - (with package) for coding included in other packages +% agu - (with package,subpack) for inclusion in aguplus package +%-------------------------------------------------------------------------- +%<*!subpack> +%<package&209>\def\ProvidesPackage#1#2] +%<package&209> {\typeout{Style option `#1'#2]}} +% +% *** Identify the package file:- +%<package&!209>\NeedsTeXFormat{LaTeX2e}[1995/06/01] +%<package>\ProvidesPackage{sublabel} +%</!subpack> +% +% *** Provide command to dislay module version +%<package&subpack>\def\ModuleVersion#1[#2]{} +%<package&subpack> \ModuleVersion{sublabel} +% +% *** Identify the driver file:- +%<driver>\NeedsTeXFormat{LaTeX2e} +%<driver>\ProvidesFile{sublabel.drv} +% +% *** The DATE, VERSION, and other INFO +%\fi +%\ProvidesFile{sublabel} + [1999/02/23 4.5 (PWD)] +% \changes{4.0}{1993 Jun 7}{Completely replacing the version based on +% art-jgr; made more general and flexible} +% \changes{4.1}{1993 July 20}{Initial release with {\tt docstrip}} +% \changes{4.1}{1993 Jul 20}{Discover bug; sub labels previously prefixed +% with `sub', but conflict with `subsection'} +% \changes{4.1}{1993 Jul 20}{\cs{stepcounter} tests if subfoo exists} +% \changes{4.2}{1993 Dec 17}{Adjust \cs{addtocounter} to step subcounter } +% \changes{4.2a}{1994 Feb 25}{Must use the old \cs{addtocounter} in +% \cs{endeqnarray}} +% \changes{4.3}{1994 May 16}{Convert to \LaTeXe} +% \changes{4.3a}{1994 Jun 22}{Update to first official release of \LaTeXe} +% \changes{4.3b}{1995 Jan 3}{Update documentation to PWD standard} +% \changes{4.3c}{1995 Sep 18}{Fix \cs{DeclareOption} for \LaTeX\ of June 1995} +% \changes{4.3d}{1997 Mar 16}{Fix copyright for subpackage and other minor +% things} +% \changes{4.4}{1997 Apr 28}{Fix so it works with other packages that change +% \texttt{eqnarray}, like \texttt{amsmath}} +% \changes{4.5}{1999 Feb 23}{Update copyright notice} +% +% \CheckSum{209} +% \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 +% Lower-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 +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \iffalse +%<*install> +%^^A ============================================= +%^^A Here is the docstrip installation file +%^^A It is written on first LaTeX run if it +%^^A does not already exist +%^^A ============================================= +\begin{filecontents*}{sublabel.ins} +% File: sublabel.ins +% Copyright 1999 Patrick W. Daly +% +% This file can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% +% It is an installation file for extracting package and driver +% files from the original source file. Simply process it under +% TeX or LaTeX. + +\input docstrip + +\preamble +============================================= +IMPORTANT NOTICE: + +This program can be redistributed and/or modified under the terms +of the LaTeX Project Public License Distributed from CTAN +archives in directory macros/latex/base/lppl.txt; either +version 1 of the License, or any later version. + +This is a generated file. +It may not be distributed without the original source file \inFileName. + +Full documentation can be obtained by LaTeXing that original file. +Only a few abbreviated comments remain here to describe the usage. +============================================= +\endpreamble +\postamble + +<<<<< End of generated file <<<<<< +\endpostamble + +\declarepreamble\driver +============================================ +This is the driver file to produce the LaTeX documentation +from the original source file \inFileName. + +Make changes to it as needed. (Never change the file \inFileName!) +============================================ +\endpreamble + +\declarepostamble\driverq + +End of documentation driver file. +\endpostamble + +\keepsilent +\askforoverwritefalse + +\generate{\file{sublabel.sty}{\from{sublabel.dtx}{package}} + \file{sublabel.drv}{\usepreamble\driver\usepostamble\driverq + \from{sublabel.dtx}{driver}} + } + +\obeyspaces +\Msg{*******************************************}% +\Msg{* For documentation, process sublabel.dtx *}% +\Msg{* or the driver file sublabel.drv *}% +\Msg{*******************************************} + +\endbatchfile +\end{filecontents*} +%</install> +%<*driver> +\documentclass{ltxdoc} +%<driver>%\documentclass[twoside]{ltxdoc} +%<driver>%\documentclass[a4paper]{ltxdoc} +%<driver>%\documentclass[twoside,a4paper]{ltxdoc} +\raggedbottom + + %** To include the detailed explanation of the coding, comment out + %** the next line +\OnlyDescription + + %** To produce a command index: add the following line for one run, + %** then run makeindex -s gind.ist natbib + %** and reprocess, with or without this line (much faster without) +%<driver>% \EnableCrossrefs\CodelineIndex + + %** To produce a change history: add the following line for one run, + %** then run makeindex -s gglo.ist -o natbib.gls natbib.glo + %** and reprocess, with or without this line (faster without) +%<driver>% \RecordChanges + +\DisableCrossrefs %May stay; zapped by \EnableCrossrefs +\CodelineNumbered %May stay + +\begin{document} + \DocInput{sublabel.dtx} +\end{document} +%</driver> +%\fi +% +% \DoNotIndex{\begin,\CodelineIndex,\CodelineNumbered,\def,\DisableCrossrefs} +% \DoNotIndex{\DocInput,\documentclass,\EnableCrossrefs,\end,\GetFileInfo} +% \DoNotIndex{\NeedsTeXFormat,\OnlyDescription,\RecordChanges,\usepackage} +% \DoNotIndex{\ProvidesClass,\ProvidesPackage,\ProvidesFile,\RequirePackage} +% \DoNotIndex{\LoadClass,\PassOptionsToClass,\PassOptionsToPackage} +% \DoNotIndex{\DeclareOption,\CurrentOption,\ProcessOptions,\ExecuteOptions} +% \DoNotIndex{\AtEndOfClass,\AtEndOfPackage,\AtBeginDocument,\AtEndDocument} +% \DoNotIndex{\InputIfFileExists,\IfFileExists,\ClassError,\PackageError} +% \DoNotIndex{\ClassWarning,\PackageWarning,\ClassWarningNoLine} +% \DoNotIndex{\PackageWarningNoLine,\ClassInfo,\PackageInfo,\MessageBreak} +% \DoNotIndex{\space,\protect,\DeclareRobustCommand,\CheckCommand} +% \DoNotIndex{\newcommand,\renewcommand,\providecommand\newenvironment} +% \DoNotIndex{\renewenvironment,\newif,\newlength,\newcounter,\setlength} +% \DoNotIndex{\setcounter,\if,\ifx,\ifcase,\ifnum,\ifdim,\else,\fi} +% \DoNotIndex{\texttt,\textbf,\textrm,\textsl,\textsc} +% \DoNotIndex{\textup,\textit,\textmd,\textsf,\emph} +% \DoNotIndex{\ttfamily,\rmfamily,\sffamily,\mdseries,\bfseries,\upshape} +% \DoNotIndex{\slshape,\scshape,\itshape,\em,\LaTeX,\LaTeXe} +% \DoNotIndex{\filename,\fileversion,\filedate,\let} +% \DoNotIndex{\@@warning,\@bsphack,\@currenvir,\@eha,\@esphack,\@ifundefined} +% \DoNotIndex{\@latexerr,\@nameuse,\@tempa,\@warning,\alph,\bf,\endcsname} +% \DoNotIndex{\expandafter,\gdef,\global,\it,\newcount,\null,\relax,\thepage} +% +% \setcounter{IndexColumns}{2} +% \setlength{\IndexMin}{10cm} +% \setcounter{StandardModuleDepth}{1} +% +% \GetFileInfo{sublabel} +% +% \title{\bfseries A Package to Subnumber \LaTeX{} Counters} +% +% \author{Patrick W. Daly} +% +% \date{This paper describes package \texttt{\filename}\\ +% version \fileversion{} from \filedate\\[1ex] +% \textsl{It is part of the \texttt{preprint} collection of packages} +% } +% +% \maketitle +% +% \pagestyle{myheadings} +% \markboth{P. W. Daly}{SUBNUMBERING FIGURES, TABLES, EQUATIONS} +% +%^^A In order to keep all marginal notes on the one (left) side: +%^^A (otherwise they switch sides disasterously with twoside option) +% \makeatletter \@mparswitchfalse \makeatother +% +%\begin{small}\begin{center}\textbf{Summary}\end{center} +% The stripped version of this file contains the following brief description: +%\iffalse +%<*package&!subpack> +%\fi +% \begin{verbatim} + % To change a counter foo so that it has sublabels (4a 4b 4c ...) + % give the command \sublabon{foo}... \sublaboff{foo} + % + % The style of the sublabel is given by command \substyle, which takes one + % argument, a counter. It may be redefined in the document to be whatever + % style is wanted. +%<209> % Default is {\it\alph{#1}}, ie italic lowercase numbers. +%<*!209> + % Default is {\itshape\alph{#1}}, ie italic lowercase numbers. + % + % Options for LaTeX2e: + % roman the style of sublabels is small roman letter + % italic the style is small italic letter (default) +%</!209> +% \end{verbatim} +%\iffalse + %----------------------------------------------------------- +%</package&!subpack> +%\fi +%\end{small} +% +% \section{Introduction} +% The macros in this package allow all counters to be subnumbered, as for +% example 4{\itshape a}, 4{\itshape b}, 4{\itshape c}, simply by +% bracketting the objects to be so numbered with appropriate on/off +% commands. These commands specify which counters are to be subnumbered, +% and they are of global effect. This means that they will work with any +% user-defined counters too, and that their effect goes beyond any current +% environment. +% +% \section{Invoking the Package} +% The macros in this package are included in the main document +% with the |\usepackage| command of \LaTeXe, +% \begin{quote} +% |\documentclass[..]{...}|\\ +% |\usepackage[|\emph{options}|]{|\texttt{\filename}|}| +% \end{quote} +% where the possible \emph{options} are: +% \begin{description} +% \item[\tt italic] to have subnumbers as italic lowercase letters +% (default); +% \item[\tt roman] to have the subnumbers as Roman lowercase letters, as +% 4{\rmfamily a}. +% \end{description} +% +% Alternatively, the name of the package is added as an option to the +% |\documentstyle| command in \LaTeX~2.09 compatibility mode, as +% \begin{quote} +% |\documentstyle[..|\texttt{\filename}|..]{...}| +% \end{quote} +% In this case, no options are possible. +% +% \section{Usage} +% \DescribeMacro{\sublabon} +% \DescribeMacro{\sublaboff} +% In order to number equations, figures, plates, and tables automatically +% with subnumbers (e.g.\ 4{\itshape a}, 4{\itshape b}, 4{\itshape c}) use +% the commands |\sublabon| and |\sublaboff|. These commands take as +% argument the name of the counter that is to be subnumbered, i.e. +% \texttt{equation}, \texttt{figure}, or \texttt{table}. The on and off +% versions bracket the objects that are to be labelled with the same number +% but different letters. For example, +% +% \begin{quote} +% \begin{verbatim} +% \sublabon{figure} +% \begin{figure} +% \caption{Text of Fig. 4a} +% \end{figure} +% \begin{figure} +% \caption{Text of Fig. 4b} +% \end{figure} +% \sublaboff{figure} +% \end{verbatim} +% \end{quote} +% +% These commands also work for the |equation| environment in the same way. +% For the |eqnarray| environment, some care must be taken. The +% |\sublabon| command is to be given {\em in} the first equation to be +% bracketted, before the |\label| and |\\| commands, while the +% |\sublaboff| command is given after the |\\| of the last equation +% in the group. If necessary, it must come after |\end{eqnarray}|. +% \begin{quote} +% \begin{verbatim} +% \begin{eqnarray} +% x & = & a \label{eq:x}\\%--> 1 +% \sublabon{equation} +% y & = & b \label{eq:y}\\%--> 2a +% z & = & c \label{eq:z}\\%--> 2b +% \sublaboff{equation} +% w & = & d \label{eq:w} %--> 3 +% \end{eqnarray} +% \end{verbatim} +% \end{quote} +% +% If two groups appear adjacently, it is only necessary to give +% |\sublabon| between them. +% +% \DescribeMacro{\substyle} +% The style in which the sublabels are written is determined by a command +% |\substyle|. Its default definition is as italic lowercase +% letters.\footnote{In \LaTeXe, if the option \texttt{roman} is added to +% the \texttt{\bslash usepackage} command, then the default is upright +% lowercase letters.} If +% one wishes, this may be changed in the document itself. It must take an +% argument that is a counter. For example, to change the style of sublabels +% to be as 5--A, 5--B, 5--C, give +% \begin{quote} +% |\renewcommand{\substyle}[1]{--\Alph{#1}}| +% \end{quote} +% \section{Interference with Other Options} +% If both |sublabel| and |figcaps| packages are to be used together, then +% |sublabel| must be input first. This is because +% |figcaps| makes modifications so that the sublabelling also works on the page +% of figure captions. +% +% Other packages (like \texttt{amsmath}) also modify some of the commands +% redefined here. As of version~4.4, the redefinitions are delayed until +% after all packages are loaded, so that this conflict is avoided. For +% earlier versions, things went wrong if \texttt{amsmath} were loaded after +% \texttt{filename}. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \section{Options with \texttt{docstrip}} +% The source \texttt{.dtx} file is meant to be processed with +% \texttt{docstrip}, for which a number of options are available: +% \begin{description} +% \item[\tt package] to produce a \texttt{.sty} package file with most +% comments removed; +% \item[\tt 209] for a package file that will also run under the older +% \LaTeX~2.09 and not just under the newer (mid-1994) \LaTeXe; +% \item[\tt subpack] (together with \texttt{package}) for coding that is to +% be included inside a larger package; even more comments are removed, +% as well as \LaTeXe{} option handling and identification; +% \item[\tt agu] (with \texttt{package,subpack}) for special coding for +% the \textsl{AGU$^{++}$} package; +% \item[\tt driver] to produce a driver \texttt{.drv} file that will print +% out the documentation under \LaTeXe. The documentation cannot be +% printed under \LaTeX~2.09. +% \end{description} +% The source file \texttt{\filename.dtx} is itself a driver file and can +% be processed directly by \LaTeXe. +% +% \section{The Coding} +% This section presents and explains the actual coding of the macros. +% It is nested between |%<*package>| and |%</package>|, which +% are indicators to \texttt{docstrip} that this coding belongs to the package +% file. +% +% The \texttt{docstrip} option |<subpack>| should only be called if the +% coding is to be included as part of another package, in which case the +% announcement text and \LaTeXe{} options are suppressed. +% +% An inferior version of this coding is provided for running as a +% style file under \LaTeX~2.09. Code lines belonging to this are +% indicated with guard |<209>|; those for LaTeXe{} only with |<!209>|. +% +% There is a problem if \texttt{\filename} is used with the package +% \texttt{figcaps}, which makes modifications to the sublabelling +% commands. Thus \texttt{\filename} must be read in \emph{before} +% \texttt{figcaps}. This is tested with the existence of the command +% |\iffigcaps|, which should not be defined at this point. +% \begin{macrocode} +%<*package> +\@ifundefined{iffigcaps}{} +%<*!209> + {\PackageWarningNoLine{sublabel} + {***********************************\MessageBreak + This package read in after `figcaps'\MessageBreak + There could be problems with sublabelled\MessageBreak + figure and table numbers.\MessageBreak + ***********************************}} +%</!209> +%<*209> + {\@@warning + {^^J ********************************^^J + `sublabel' read in after `figcaps'^^J + There could be problems with sublabelled^^J + figure and table numbers.^^J + ********************************}} +%</209> +% \end{macrocode} +% +% \begin{macro}{\substyle} +% \changes{4.3d}{1997 Mar 16}{Remove some superfluous lines} +% The style of the sublabel, or subnumbering, is defined by |\substyle|. A +% default definition is provided as italic lowercase letters: 4{\itshape +% a}, 4{\itshape b}, 4{\itshape b}, etc. This command may be redefined by +% the user in the document or in a calling style. +% +% For the \textsl{AGU$^{++}$} package, the default is upright letters. +% +% \begin{macrocode} +\newcommand{\substyle}{} +%<*!subpack> +%<209>\def\substyle#1{\it\alph{#1}} +% \end{macrocode} +% +% \begin{macro}{\DeclareOption} +% \changes{4.3}{1994 May 16}{Add options \texttt{roman} and \texttt{italic}.} +% \changes{4.3c}{1995 Sep 18}{Fix options \texttt{roman} and \texttt{italic} +% for kernel changes of 1995/06/01} +% In \LaTeXe, the default depends on the option in the |\usepackage| command. +% +% Prior to \LaTeX\ of 1995/06/01, one needed |##| to specify arguments in the +% |\DeclareOption| statement, but now only a single |#| is needed. +% \begin{macrocode} +%<*!209> + \DeclareOption{italic}{\def\substyle#1{\itshape\alph{#1}}} + \DeclareOption{roman}{\def\substyle#1{\alph{#1}}} + \ExecuteOptions{italic} + \ProcessOptions +%</!209> +%</!subpack> +%<subpack&!agu&209>\def\substyle#1{\it\alph{#1}} +%<subpack&!agu&!209>\def\substyle#1{\itshape\alph{#1}} +%<subpack&agu>\def\substyle#1{\alph{#1}} +% \end{macrocode} +% \end{macro}\end{macro} +% +% \begin{macro}{\sublabon} +% \changes{4.3a}{1994 Jun 22}{Use \cs{newcommand}} +% The basic principle of this macro is that when |\sublabon{|\emph{ctr}|}| +% is called, then a new counter called |sb@|\emph{ctr} is created, if it +% does not already exist. That is, its internal name is |\c@sb@|\emph{ctr}, +% as is standard for \LaTeX{} counters. Its value is set to $0$ and the main +% counter \emph{ctr} is incremented. The command that formats and prints +% out the value of the main counter, |\the|\emph{ctr} is redefined to be +% \begin{quote} +% |\@ldthe|\emph{ctr}|{\substyle{sb@|\emph{ctr}|}}| +% \end{quote} +% where |\@ldthe|\emph{ctr} is the stored definition |\the|\emph{ctr} and +% |\substyle| is a command that operates on a counter to format it. +% +% First |\sublabon| tests if there really is a counter with the given +% name. +% \begin{macrocode} +\newcommand{\sublabon}[1]{\@bsphack +\@ifundefined{c@#1}{% +%<209> \@latexerr +%<!209> \PackageError{sublabel} + {\protect\sublabon\space called for a non-existent counter}{\@eha}} +% \end{macrocode} +% Now test for the subcounter |sb@|\emph{ctr} and if it does not exist, +% create it and set its value to $-1$. +% \begin{macrocode} + {\@ifundefined{c@sb@#1}{\expandafter\newcount\csname c@sb@#1\endcsname + \setcounter{sb@#1}{-1}}{}% +% \end{macrocode} +% The value $-1$ means that the subcounter has not yet been used. This +% value is set on creation, or by |\sublaboff| if the subcounter was never +% stepped. This is the trick that allows multiple calls to |\sublabon| +% without intervening |\sublaboff| calls. We have to avoid calling +% |\sublaboff| when there was no stepping. Call it only if the current +% value of the subcounter is 0 or more. +% \begin{macrocode} +\ifnum\@nameuse{c@sb@#1}<0\else\sublaboff{#1}\fi +% \end{macrocode} +% Set the counters \emph{ctr} and |sb@|\emph{ctr}. +% \begin{macrocode} +\stepcounter{#1}% +\setcounter{sb@#1}{0}% +% \end{macrocode} +% A correction must be made for the |eqnarray| environment which +% increments the |equation| counter immediately on entry and then after +% each equation. That is, the |equation| counter already holds the value of +% the \emph{next} equation. Thus we must set the two counters to the +% values that they should have for the next equation. For example, let us +% suppose the following: +% \begin{quote} +% We are outside the |eqnarray| environment, the last equation was +% number~3, so the |equation| counter has the value |3|. +% +% We enter |eqnarray|; the |equation| counter is incremented immediately to +% |4|. +% +% We write an equation; it obtains the number~4, and |equation| goes to +% |5|. +% +% We call |\sublabon{equation}|, and |equation| is set to |6| and +% |sb@equation| to |0| (so far). Since the counter is stepped only +% \emph{after} the equation in this environment, this would mean that the next +% equation would be numbered 6-0 instead of the desired 5-1. +% +% Hence the correction: decrement |equation| and set |sb@equation| to 1. +% \end{quote} +% \begin{macrocode} +\def\@tempa{eqnarray}\ifx \@tempa\@currenvir + \addtocounter{equation}{-1}\setcounter{sb@equation}{1}\fi +% \end{macrocode} +% Note that the above does not test if |#1| really is |equation|. However, +% if |\sublabon| is used within |eqnarray|, then it only makes sense to +% subnumber equations. +% +% Now save the definition of |\the|\emph{ctr} as |\@ldthe|\emph{ctr}. +% (This combination of |\expandafter| is necessary. I have experimented +% with many other variations.) +% \begin{macrocode} +\global\expandafter\let\csname @ldthe#1\expandafter\endcsname + \csname the#1\endcsname +% \end{macrocode} +% and redefine |\the|\emph{ctr} to add |\substyle| with the subcounter. +% \begin{macrocode} +\expandafter\gdef\csname the#1\endcsname{% + \@nameuse{@ldthe#1}{\substyle{sb@#1}}} +}\@esphack} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\sublaboff} +% \changes{4.3a}{1994 Jun 22}{Use \cs{newcommand}} +% The command that turns off the sublabelling tests if there is such a +% counter, and if there exists a subcounter for it. If both tests pass, +% then it checks that the subcounter has a non-negative value, for if it +% does not, then there was no corresponding |\sublabon| command. That is, +% the on/off commands are not nested properly. These tests are necessary to +% check for typing errors. +% \begin{macrocode} +\newcommand{\sublaboff}[1]{\@bsphack +\@ifundefined{c@#1}{% +%<209> \@latexerr +%<!209> \PackageError{sublabel} + {\protect\sublaboff\space called for a non-existent counter}{\@eha}} + {\@ifundefined{c@sb@#1}{% +%<209> \@warning +%<!209> \PackageWarning{sublabel} + {\protect\sublaboff{#1} called without any previous +%<209> ^^J +%<!209> \MessageBreak + \protect\sublabon{#1} command}} + {\ifnum\@nameuse{c@sb@#1}<0 +%<209> \@warning +%<!209> \PackageWarning{sublabel} + {\protect\sublaboff{#1} called without a previous +%<209> ^^J +%<!209> \MessageBreak + \protect\sublabon{#1} command being active}\else +% \end{macrocode} +% However, if the subcounter has a 0 value, then |\sublabon| was indeed +% called, but the counter was never stepped with |\stepcounter|. This is +% not an error, but it means that the old value of \emph{ctr} should be +% restored. The subcounter is set to $-1$ to indicate this to the next +% call to |\sublabon|. The numbering goes on as if |\sublabon| and +% |\sublaboff| had never been given. +% \begin{macrocode} +\ifnum\@nameuse{c@sb@#1}=0\addtocounter{#1}{-1}\fi +\setcounter{sb@#1}{-1}% +% \end{macrocode} +% Re-establish the definition of |\the|\emph{ctr} stored in +% |\@ldthe|\emph{ctr}. +% \begin{macrocode} +\global\expandafter\let\csname the#1\expandafter\endcsname + \csname @ldthe#1\endcsname +% \end{macrocode} +% Finally, if |\sublaboff| is called within the |eqnarray| environment, +% then the |equation| counter must be corrected again, to hold the number +% for the next equation. +% \begin{macrocode} +\def\@tempa{eqnarray}\ifx \@tempa\@currenvir + \stepcounter{equation}\fi +\fi}}\@esphack} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ref} +% \changes{4.3}{1994 May 16}{Use definition from \LaTeXe{} for NFSS with 2.09} +% \begin{macro}{\pageref} +% \changes{4.3}{1994 May 16}{Use definition from \LaTeXe{} for NFSS with 2.09} +% +% The font command within |\substyle| means that it is transferred to the +% auxiliary file in a |\newlabel| command. This causes problems under the +% New Font Selection Scheme (NFSS) when all the tokens are expanded too +% early. This problem does not exist with \LaTeX~2.09 without NFSS, nor +% with the NFSS in \LaTeXe. To get around this, I add the revised +% definitions of |\ref| and |\pageref| from \LaTeXe, but implement them +% only for NFSS under 2.09. +% \begin{macrocode} +%<*209> +\@ifundefined{selectfont}{}{% +\def\@setref#1#2#3{% + \ifx#1\relax {\reset@font\bf ??}% + \@warning{Reference `#3' on page \thepage \space undefined}% + \else + \expandafter#2#1\null + \fi} +\def\ref#1{\expandafter\@setref\csname r@#1\endcsname\@firstoftwo{#1}} +\def\pageref#1{\expandafter\@setref\csname r@#1\endcsname + \@secondoftwo{#1}} +\def\@firstoftwo#1#2{#1} +\def\@secondoftwo#1#2{#2} +} +% \end{macrocode} +% \end{macro}\end{macro} +% +% \begin{macro}{\reset@font} +% For older implementations of \LaTeX~2.09 (before December, 1991) the +% |\reset@font| command does not exist. It is defined to be |\relax| under +% normal \LaTeX{}, but does more under NFSS. In case it is not defined, add +% it here. +% \begin{macrocode} +\@ifundefined{reset@font}{\def\reset@font{\relax}}{} +%</209> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\stepcounter} +% \changes{4.3a}{1994 Jun 22}{Use \cs{renewcommand}} +% \changes{4.4}{1997 Apr 28}{Put into \cs{AtBeginDocument}} +% A very important matter has still to be done: redefine |\stepcounter| so +% that it increments the subcounter and not the main one. It is not +% necessary to redefine |\refstepcounter| since it calls |\stepcounter| +% itself. The existing definition of |\stepcounter| is saved and used in +% the new definition. +% +% This is done at the start of the document, not immediately, in case some +% other package is loaded that alters |\setcounter|. This also applies to +% |\addtocounter| and |\endeqnarray|. For example, the \texttt{amsmath} +% package makes such changes, so if it is loaded after \texttt{\filename} +% it clobbers these new definitions if they are not delayed. (This used to +% happen when \textsl{AGU$^{++}$} is used with \texttt{amsmath}.) +% Do this only for \LaTeXe. +% +% \begin{macrocode} +%<!209>\AtBeginDocument{% +\let\@ldstepcounter=\stepcounter +\renewcommand{\stepcounter}[1] + {\@ifundefined{c@sb@#1}{\@ldstepcounter{#1}}{\ifnum + \@nameuse{c@sb@#1}<0\relax + \@ldstepcounter{#1}\else \@ldstepcounter{sb@#1}\fi}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\addtocounter} +% \changes{4.2}{1993 Dec 17}{Add to allow for macros that might fiddle with +% counters} +% \changes{4.3a}{1994 Jun 22}{Use \cs{renewcommand}} +% \changes{4.4}{1997 Apr 28}{Put into \cs{AtBeginDocument}} +% A similar refinement must be done to |\addtocounter| to allow for any +% macros that fiddle with counters. (The \texttt{planotable} environment of +% the AGU styles does this, for example.) If the fiddling is done +% explicitly (by giving |\c@|\emph{ctr} a new value) then we are lost. +% It might also be necessary to refine |\setcounter|, but at the moment I +% cannot foresee any reason for using that command where sublabels might be +% used. +% \begin{macrocode} +\let\@ldaddtoctr=\addtocounter +\renewcommand{\addtocounter}[2] + {\@ifundefined{c@sb@#1}{\@ldaddtoctr{#1}{#2}}{\ifnum + \@nameuse{c@sb@#1}<0\relax + \@ldaddtoctr{#1}{#2}\else \@ldaddtoctr{sb@#1}{#2}\fi}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\endeqnarray} +% Lastly, the |eqnarray| environment itself must be altered to allow for +% the case where it is ended while |\sublabon{equation}| is +% active. (The example above was for when |\sublabon| is given within the +% environment.) The normal |\endeqnarray| command explicitly decrements the +% |equation| counter (not with |\stepcounter|) so that it now points to the +% last equation, as usual. However if the subnumbering is on at this point, +% the |equation| must be re-incremented and |sb@equation| decremented +% instead. +% \changes{4.2a}{1994 Feb 25}{Use original \cs{addtocounter}} +% \changes{4.3a}{1994 Jun 22}{Use \cs{renewcommand}} +% \changes{4.4}{1997 Apr 28}{Put into \cs{AtBeginDocument}} +% \begin{macrocode} +\let\@ldendeqnarray=\endeqnarray +\renewcommand{\endeqnarray}{\@ldendeqnarray + \@ifundefined{c@sb@equation}{}{\ifnum\c@sb@equation<0\else + \@ldaddtoctr{equation}{1}\@ldaddtoctr{sb@equation}{-1}\fi}} +%<!209>} +%</package> +% \end{macrocode} +% \end{macro} +% +% \Finale diff --git a/Master/texmf-dist/source/latex/preprint/sublabel.ins b/Master/texmf-dist/source/latex/preprint/sublabel.ins new file mode 100644 index 00000000000..a61d318d6f9 --- /dev/null +++ b/Master/texmf-dist/source/latex/preprint/sublabel.ins @@ -0,0 +1,64 @@ +% File: sublabel.ins +% Copyright 1999 Patrick W. Daly +% +% This file can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% +% It is an installation file for extracting package and driver +% files from the original source file. Simply process it under +% TeX or LaTeX. + +\input docstrip + +\preamble +============================================= +IMPORTANT NOTICE: + +This program can be redistributed and/or modified under the terms +of the LaTeX Project Public License Distributed from CTAN +archives in directory macros/latex/base/lppl.txt; either +version 1 of the License, or any later version. + +This is a generated file. +It may not be distributed without the original source file \inFileName. + +Full documentation can be obtained by LaTeXing that original file. +Only a few abbreviated comments remain here to describe the usage. +============================================= +\endpreamble +\postamble + +<<<<< End of generated file <<<<<< +\endpostamble + +\declarepreamble\driver +============================================ +This is the driver file to produce the LaTeX documentation +from the original source file \inFileName. + +Make changes to it as needed. (Never change the file \inFileName!) +============================================ +\endpreamble + +\declarepostamble\driverq + +End of documentation driver file. +\endpostamble + +\keepsilent +\askforoverwritefalse + +\generate{\file{sublabel.sty}{\from{sublabel.dtx}{package}} + \file{sublabel.drv}{\usepreamble\driver\usepostamble\driverq + \from{sublabel.dtx}{driver}} + } + +\obeyspaces +\Msg{*******************************************}% +\Msg{* For documentation, process sublabel.dtx *}% +\Msg{* or the driver file sublabel.drv *}% +\Msg{*******************************************} + +\endbatchfile |