From 647b1a3063ba84c2124e5255418c126bffbcbaf9 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 11 Jan 2006 23:58:25 +0000 Subject: trunk/Master/texmf-dist/source/latex/titling git-svn-id: svn://tug.org/texlive/trunk@552 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/titling/titling.dtx | 1474 ++++++++++++++++++++ 1 file changed, 1474 insertions(+) create mode 100644 Master/texmf-dist/source/latex/titling/titling.dtx (limited to 'Master/texmf-dist/source/latex/titling/titling.dtx') diff --git a/Master/texmf-dist/source/latex/titling/titling.dtx b/Master/texmf-dist/source/latex/titling/titling.dtx new file mode 100644 index 00000000000..b8f47b2ee94 --- /dev/null +++ b/Master/texmf-dist/source/latex/titling/titling.dtx @@ -0,0 +1,1474 @@ +% \iffalse meta-comment +% titling.dtx +% Author: Peter Wilson (Herries Press) pandgwilson at earthlink dot net +% Copyright 2000 --- 2004 Peter R. Wilson +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either +% version 1.3 of this license or (at your option) any +% later version. +% The latest version of the license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of +% LaTeX version 2003/06/01 or later. +% +% This work has the LPPL maintenance status "author-maintained". +% +% This work consists of the files listed in the README file. +% +% +%<*driver> +\documentclass{ltxdoc} +\EnableCrossrefs +\CodelineIndex +%%\OnlyDescription +\setcounter{StandardModuleDepth}{1} +\begin{document} + \DocInput{titling.dtx} +\end{document} +% +% +% \fi +% +% \CheckSum{490} +% +% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath} +% \DoNotIndex{\@centercr,\@cite} +% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue} +% \DoNotIndex{\@input,\@ixpt,\@m} +% \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint} +% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb} +% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt} +% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt} +% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace} +% \DoNotIndex{\advance,\Alph,\alph} +% \DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box} +% \DoNotIndex{\bullet} +% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption} +% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass} +% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist} +% \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup} +% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter} +% \DoNotIndex{\fbox} +% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef} +% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule} +% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi} +% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi} +% \DoNotIndex{\input} +% \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark} +% \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright} +% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment} +% \DoNotIndex{\NeedsTeXFormat,\newdimen} +% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number} +% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@} +% \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip} +% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions} +% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright} +% \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font} +% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman} +% \DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength} +% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space} +% \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase} +% \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt} +% \DoNotIndex{\viipt,\vipt,\vskip,\vspace} +% \DoNotIndex{\wd,\xiipt,\year,\z@} +% +% \changes{v1.0}{2000/06/11}{First public release} +% \changes{v2.0}{2001/02/24}{Added controls for thanks marks} +% \changes{v2.1}{2001/03/23}{Further controls for thanks note layout} +% \changes{v2.1}{2001/03/23}{Added extra hooks into \cs{maketitle}} +% \changes{v2.1a}{2002/02/19}{Added quote from Jason} +% \changes{v2.1b}{2004/05/10}{Changed license from LPPL v.10 to v1.3} +% \changes{v2.1c}{2004/09/26}{Deleted mention of unimplemented command} +% +% \def\dtxfile{titling.dtx} +% ^^A \def\fileversion{v0.3} +% ^^A \def\filedate{2000/05/20} +% ^^A \def\fileversion{v1.0} +% ^^A \def\filedate{2000/06/11} +% ^^A \def\fileversion{v2.0} +% ^^A \def\filedate{2001/02/24} +% ^^A \def\fileversion{v2.1} +% ^^A \def\filedate{2001/03/23} +% \def\fileversion{v2.1a} +% \def\filedate{2002/02/19} +% \def\fileversion{v2.1b} +% \def\filedate{2004/05/10} +% \def\fileversion{v2.1c} +% \def\filedate{2004/09/26} +% \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package +% \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option +% \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file +% \newcommand*{\Lcount}[1]{\textsl {\small#1}} ^^A typeset a counter +% \newcommand*{\pstyle}[1]{\textsl {#1}} ^^A typeset a pagestyle +% \newcommand*{\Lenv}[1]{\texttt {#1}} ^^A typeset an environment +% +% \title{The \Lpack{titling} package\thanks{This +% file (\texttt{\dtxfile}) has version number \fileversion, last revised +% \filedate.}} +% +% \author{% +% Peter Wilson \\ +% Herries Press \\ +% \texttt{pandgwilson at earthlink dot net} +% } +% \date{\filedate} +% \maketitle +% \begin{abstract} +% The \Lpack{titling} package provides control over the typesetting +% of the |\maketitle| and |\thanks| commands. +% The values of |\title|, |\author| and +% |\date| are also retained, and there may be mutiple titles in a document. +% New titling elements may be defined for printing by |\maketitle|. +% \end{abstract} +% \tableofcontents +% +% +% +% \section{Introduction} +% +% The format for typesetting the |\maketitle| command is fixed in the +% standard \LaTeX{} classes. The \Lpack{titling} package provides some +% controls for modifying the appearance of the titling information presented +% via |\maketitle|. +% +% This manual is typeset according to the conventions of the +% \LaTeX{} \textsc{docstrip} utility which enables the automatic +% extraction of the \LaTeX{} macro source files~\cite{GOOSSENS94}. +% +% Section~\ref{sec:usc} describes the usage of the \Lpack{titling} +% package and +% commented source code is in Section~\ref{sec:code}. +% +% \section{The \Lpack{titling} package} \label{sec:usc} +% +% The typeset format of the |\maketitle| command is virtually fixed +% within the \LaTeX{} standard classes. The \Lpack{titling} package +% provides a set of formatting commands that can be used to modify +% the appearance of the titling information; that is, the contents of +% the |\title|, |\author| and |date| commands. It also keeps the values +% of these commands so that they may be printed again later in the +% document. +% +% The package inhibits the normal automatic cancellation of titling +% commands after |\maketitle|. This means that you can have multiple +% instances of the same, or perhaps different, titles in one document. +% Hooks are provided so that additional titling elements can be defined +% and printed by |\maketitle|. +% +% The |\thanks| command is enhanced to provide various configurations +% for both the marker symbol and the layout of the thanks notes. +% +% +% +% \subsection{Commands and environments} +% +% \subsubsection{Restyling the titling} +% +% The \Lpack{titling} package provides a configurable |\maketitle| command. +% +% \DescribeMacro{\pretitle} +% \DescribeMacro{\posttitle} +% \DescribeMacro{\preauthor} +% \DescribeMacro{\postauthor} +% \DescribeMacro{\predate} +% \DescribeMacro{\postdate} +% These six commands each have a single argument, +% like |\pretitle{|\meta{text}|}|and |\posttitle{|\meta{text}|}|. +% The argument to these commands control the typesetting of the +% standard elements of the document's |\maketitle| +% command. The |\title| is effectively processed between the |\pretitle| and +% |\posttitle| commands; that is, like: \\ +% |{\pretitle \title \posttitle}| \\ +% and similarly for the |\author| and |\date| commands. The +% commands are initialised to mimic the normal result of |\maketitle| +% typesetting in the \Lpack{article/report} classes. +% For example, the default definitions of the |\...title...| +% and |\...author...| commands are: +% \par\begin{small}\begin{verbatim} +% \pretitle{\begin{center}\LARGE} +% \posttitle{\par\end{center}\vskip 0.5em} +% \preauthor{\begin{center} +% \large \lineskip 0.5em% +% \begin{tabular}[t]{c}} +% \postauthor{\end{tabular}\par\end{center}} +% \predate{\begin{center}\large} +% \postdate{\par\end{center}} +% \end{verbatim} +% \end{small}\par +% They can be changed to obtain different effects. For example to get +% a right justified sans-serif title and a left justifed small caps +% date: +% \begin{verbatim} +% \pretitle{\begin{flushright}\LARGE\sffamily} +% \posttitle{\par\end{flushright}\vskip 0.5em} +% \predate{\begin{flushleft}\large\scshape} +% \postdate{\par\end{flushleft}} +% \end{verbatim} +% \textbf{NOTE:} The above commands differ from the similar ones in version~1.0 +% of this package. So, if you have upgraded from v1.0 to v2.0, beware. +% +% As another example, the following (slightly edited) +% was sent to me by Jason Harrison +% (\texttt{harrison@cs.ubc.ca}) on 2002/02/18. +% \begin{quotation} +% I'm trying to format my latest conference paper for a conference that +% doesn't supply a latex class (only a MSWord example, sigh) and I ran +% into a problem that I'm not sure if it's an interaction of the titling +% package [it's not] or just no one ever cares because hitting return gets you an +% output when latex complains: +% \begin{verbatim} +% ! Argument of \reserved@a has an extra }. +% +% \par +% l.46 \end{tabular}} +% ? x +% \end{verbatim} +% What I did was to define my +% authors list using the following methodology: +% \begin{verbatim} +% \preauthor{} +% \DeclareRobustCommand{\authorthing}{ +% \begin{center} +% \begin{tabular}{ccc} +% Jason Harrison & Kellogg S. Booth & Brian D. Fisher \\ +% \multicolumn{3}{c}{Department of Computer Science} \\ +% \multicolumn{3}{c}{and} \\ +% \multicolumn{3}{c}{Media and Graphics Interdisciplinary Centre}\\ +% \multicolumn{3}{c}{University of British Columbia, Vancouver, BC Canada} +% \end{tabular} +% \end{center}} +% \author{\authorthing} +% \postauthor{} +% \end{verbatim} +% +% Thus latex does not complain and I get the formatting I want. Perhaps +% you'd add this to the titling documentation for those of us who can't +% follow the usual conventions because of the strange conventions of a +% strange conference. +% \end{quotation} +% +% Changing the above example a little, when authors are from different +% organisations you may be required to flag these. This is one way of doing +% that. +% \begin{verbatim} +% \preauthor{\large} +% \DeclareRobustCommand{\authoring}{ +% \begin{center} +% Smith\textsuperscript{\dag} and Wesson\textsuperscript{\#} \\ +% \textsuperscript{\dag}House, \textsuperscript{\#}Barn \\ +% The OK Corral +% \end{center}} +% \author{\authoring} +% \postauthor{\par} +% \end{verbatim} +% +% +% \DescribeMacro{\droptitle} +% The |\maketitle| command puts the title at a particular height on the +% page. Unless it is used with the \Lopt{titlepage} option of the standard +% classes it starts a new page. +% You can change the vertical position of the title via the length +% |\droptitle|. Giving this a positive value will lower the title and a +% negative value will raise it. The default definition is: \\ +% |\setlength{\droptitle}{0pt}|. +% +% \DescribeMacro{\maketitlehooka} +% \DescribeMacro{\maketitlehookb} +% \DescribeMacro{\maketitlehookc} +% \DescribeMacro{\maketitlehookd} +% The |\maketitle| command as defined by the \Lpack{titling} package +% is essentially +% \begin{verbatim} +% \renewcommand{\maketitle}{% +% \vspace*{\droptitle} +% \maketitlehooka +% {\pretitle \title \posttitle} +% \maketitlehookb +% {\preauthor \author \postauthor} +% \maketitlehookc +% {\predate \date \postdate} +% \maketitlehookd +% } +% \end{verbatim} +% The four hook commands are provided so that additional elements may +% be added to |\maketitle|. These are initially defined to do nothing +% but can be renewed. For example, some publications +% want a statement about where an article is published immediately +% before the actual titling text. The following defines a command +% |\published| that can be used to hold the publishing information +% which will then be automatically printed by |\maketitle|. +% \begin{verbatim} +% \newcommand{\published}[1]{% +% \gdef\puB{#1}} +% \newcommand{\puB}{} +% \renewcommand{\maketitlehooka}{% +% \par\noindent \puB} +% \end{verbatim} +% You can then say: +% \begin{verbatim} +% \published{Originally published in +% \textit{The Journal of ...}\thanks{Reprinted with permission}} +% ... +% \maketitle +% \end{verbatim} +% to print both the published and the normal titling information. Note +% that nothing extra had to be done in order to use the |\thanks| command +% in the argument to the new |\published| command. +% +% +% +% \DescribeEnv{titlingpage} +% When one of the standard classes is used with the \Lopt{titlepage} +% option, |\maketitle| puts the title elements on an unnumbered page +% and then starts a new page numbered page 1. +% The standard classes also provide +% a |titlepage| environment which starts a new unnumbered page and at the +% end starts a new page numbered 1. You are entirely responsible +% for specify exactly what and where is to go on this title page. +% Do not use |\maketitle| within the |titlepage| environment as it +% will start yet another page. +% +% The |titlingpage| environment falls between the \Lopt{titlepage} +% option and the |titlepage| environment. Within the |titlingpage| +% environment you can use the |\maketitle| command, and any others you wish. +% The pagestyle is |empty|; +% ^^A given by the value of the |\titlingpagestyle| command; +% at the end it starts another ordinary page numbered page 1. +% +% ^^A \DescribeMacro{\titlingpagestyle} +% ^^A The macro |\titlingpagestyle{|\meta{pstyle}|}| sets the page style +% ^^A in the |titlingpage| environment to be \meta{pstyle}. This is +% ^^A initially set as |\titlingpagestyle{empty}|. +% +% For example, to put both the title and an abstract on a title page +% ^^A with a |plain| pagestyle: +% \begin{verbatim} +% \begin{document} +% \begin{titlingpage} +% \setlength{\droptitle}{30pt} % lower the title +% \maketitle +% \begin{abstract}...\end{abstract} +% \end{titlingpage} +% \end{verbatim} +% +% By default, titling information is centered with respect to the +% width of the text block. +% Occasionally someone asks on the \texttt{comp.text.tex} newsgroup how +% to center the titling information on a title page +% with respect to the width of the physical +% page. If the textblock is centered with respect to the physical page, +% then the default centering suffices. If the textblock is not physically +% centered, then the titling information either has to be shifted +% horizontally or |\maketitle| has to be made to think that the textblock +% has been shifted horizontally. +% +% One solution is to use the |titlingpage| +% environment and the \Lopt{chngpage} package\footnote{Available +% from CTAN as file \texttt{chngpage.sty}.}, which lets +% you temporarily adjust the location of the textblock. Remember that +% TeX starts its page measurements at a distance of 1 inch + |\hoffset| +% (default 0pt) +% in from the left side of the +% physical sheet; this is the zero point for the |\evensidemargin| and +% the |\oddsidemargin|. Let $H$ be the value of (1 inch + |\hoffset|), +% $M$ be the |\...sidemargin|, $T$ be the +% |\textwidth| and $P$ be the width of the physical page, +% and let $X$ be the distance between the righthand edge of the +% text block and the right side of the physical sheet. Then +% \[ H + M + T + X = P \] +% and the textblock is $H+M$ in from the left side of the page. For +% the textblock to be centered on the physical page, we must have +% \(X = H+M\). If the textblock is not physically centered, then +% the margin value, $M$ can be adjusted to made it so. Let $d$ be the +% amount to be added to $M$ to center the textblock. Some simple algebra +% leads to +% \[ d = (P - T)/2 - M - H \] +% as the amount to be added to the |\...sidemargin| to center the textblock. +% For example, +% assume that the |\textwidth| is 5 inches, the |\...sidemargin|s are +% both 2 inches, and |\hoffset| is zero (i.e., $H$ is 1 inch). +% Then to center the textblock, +% 1.25 inches must be +% subtracted from the margin if it is printed on US letterpaper, +% where the paper width is 8.5 inches. A different adjustment would +% be required +% if A4 paper was used instead. See the \Lopt{chngpage} documentation for +% details, but a physically centred title can now be achieved by +% \begin{verbatim} +% \usepackage{chngpage} +% ... +% \begin{titlingpage} +% \chngtext{}{}{-1.25in}{-1.25in}{} +% \maketitle +% \end{titlingpage} +% \end{verbatim} +% +% \DescribeMacro{\calccentering} +% If you don't want to do the above calculations by hand, +% |\calccentering{|\meta{length}|}{|\meta{margin}|}| will do it for you. +% The \meta{length} +% argument must be the name of a pre-existing length command, +% including the backslash, and the \meta{margin} is the value of the +% appropriate |\evensidemargin| or |\oddsidemargin|. After calling +% |\calccentering|, \meta{length} is the amount to be added to the +% margin to center the textblock. +% An example usage is +% \begin{verbatim} +% \begin{titlingpage} +% \newlength{\addtoeven} +% \newlength{\addtoodd} +% \calccentering{\addtoeven}{\evensidemargin} +% \calccentering{\addtoodd}{\oddsidemargin} +% \chngtext{}{}{\addtoeven}{\addtoodd}{} +% .... +% \end{titlingpage} +% \end{verbatim} +% The |\calccentering| macro requires the length |\paperwidth| to be +% set to the physical width of the paper you will be printing on. +% If your paper matches the paper size option in for the document class +% then this is done for you. +% +% You do not necessarily have to define a new length for the purposes +% of |\calccentering|. Any existing length will do, such as +% |\unitlength|, provided it will be otherwise unused between performing +% the calculation and changing the margins (and that you can, if necessary +% reset it to its original value --- the default value for |\unitlength| +% is 1pt). There are also some lengths provided by the package that you +% may consider using, such as |\droptitle|, |\thanksmarkwidth| or +% |\thanksmargin|. +% +% +% +% \DescribeMacro{\thetitle} +% \DescribeMacro{\theauthor} +% \DescribeMacro{\thedate} +% In the usual document classes, the |\title|, |\author| and |\date| +% macros used for |\maketitle| are unavailable once |\maketitle| has been +% issued. The package provides the |\thetitle|, +% |\theauthor| and |\thedate| commands that can be used for printing +% these elements of the title later in the document, +% if desired. +% +% The \Lpack{titling} package prevents the standard classes' habit +% of automatically killing the titling +% commands after |\maketitle| has been issued. You can have multiple +% |\title|, |\author|, |\date| and |\maketitle| commands in your +% document if you wish. For example, some reports are issued with +% a title page, followed by an executive summary, and then they +% have another, possibly modified, title at the start of +% the main body of the report. This can be accomplished like this: +% \begin{verbatim} +% \title{Cover title} +% ... +% \begin{titlingpage} +% \maketitle +% \end{titlingpage} +% ... +% \title{Body title} +% \maketitle +% ... +% \end{verbatim} +% +% \DescribeMacro{\killtitle} +% \DescribeMacro{\keepthetitle} +% \DescribeMacro{\emptythanks} +% The |\killtitle| macro makes all aspects of titling, including +% |\thetitle| etc, +% unavailable from the point that it is issued (using this command will save +% some macro space if the |\thetitle|, etc., commands are not required). +% Using this command is the \Lpack{titling} package's manual version +% of the automatic killing performed by the standard classes. +% The |\keepthetitle| command performs a similar function, except that +% it keeps the |\thetitle|, |\theauthor| and |\thedate| commands, while +% killing everything else. +% The |\emptythanks| command discards any text from prior use of |\thanks|. +% This command is useful when |\maketitle| is used multiple times --- +% the |\thanks| commands in each use just stack up the texts for output +% at each use, so each subsequent use of |\maketitle| will output all +% previous |\thanks| texts together with any new ones. To avoid this, +% put |\emptythanks| before each |\maketitle| after the first. +% +% +% +% \subsubsection{Restyling the thanks} +% +% The \Lpack{titling} package provides a configurable |\thanks| command. +% As a side effect of modifications to the |\thanks| command, the thanks +% text can be one or more paragraphs, unlike the standard |\thanks| +% text which is restricted to a single paragraph. +% +% \DescribeMacro{\thanksmarkseries} +% \DescribeMacro{\symbolthanksmark} +% In the standard classes, |\thanks{}| are marked with symbols in the +% titling and footnotes unless on a titlepage where they are marked with +% numbers. The command |\thanksmarkseries{|\meta{format}|}| command +% can be used to change the marking style. The \meta{format} argument +% is the name of one of the formats for printing a counter. The name +% is the same as that of a counter format but without the backslash. +% The default matches the standard class defaults. To have the +% titlepage marks as symbols instead of numerals do:\\ +% |\thanksmarkseries{fnsymbol}| \\ +% or to use lowercase letters do: \\ +% |\thanksmarkseries{alph}| \\ +% Just for convenience the |\symbolthanksmark| command sets the series +% to be footnote symbols (so you don't have to use the first example above). +% Using the standard classes the potential names for \meta{format} are: +% |arabic|, |roman|, |Roman|, |alph|, |Alph|, and |fnsymbol|. Other classes +% or packages may provide more or fewer names. +% +% \DescribeMacro{\continuousmarks} +% The |\thanks| command uses the footnote counter, and normally the counter +% is zeroed after the titling so that the footnote marks start from 1. +% If the counter should not be zeroed, then just specify |\continuousmarks|. +% This might be required if numerals are used as the thanks markers. +% +% \DescribeMacro{\thanksheadextra} +% \DescribeMacro{\thanksfootextra} +% The |\thanksheadextra{|\meta{pre}|}{|\meta{post}|}| command will insert +% \meta{pre} and \meta{post} before and after the thanks markers in the +% titling block. +% +% Similarly |\thanksfootextra{|\meta{pre}|}{|\meta{post}|}| +% inserts \meta{pre} and \meta{post} before and after the thanks markers +% in the footnotes. +% +% By default \meta{pre} and \meta{post} are empty in +% both cases. For example, to put parentheses round the titling markers +% and to have a full stop (a period) after the footnote markers do: \\ +% |\thanksheadextra{(}{)}| and \\ +% |\thanksfootextra{}{.}| +% +% \DescribeMacro{\thanksmark} +% It is sometimes desireable to have the same thanks text be applied to, +% say, four out of six authors, these being the first 3 and the last one. +% The command |\thanksmark{|\meta{n}|}| is similar to +% |\footnotemark[|\meta{n}|]| in that it prints a thanks mark identical +% to that of the \meta{n}'th |\thanks| command. No changes are made +% to any thanks in the footnotes. +% +% \DescribeMacro{\thanksgap} +% The marks in the titling block printed by the |\thanks| and |\thanksmark| +% commands take zero space. This is acceptable if they come at the end of +% a line, but not in the middle of a line. Use the +% |\thanksgap{|\meta{length}|}| command immediately after a mid-line +% |\thanks| or |\thanksmark| command to add \meta{length} amount of +% space before the next word. For example, if there are three authors +% from two different institutions: \\ +% |\author{Alpha\thanks{ABC},| \\ +% | Omega\thanks{XYZ}\thanksgap{1ex} and | \\ +% | Beta\thanksmark{1}} | +% +% \DescribeMacro{\thanksmarkwidth} +% The thanks mark in the footnote is typeset right justified in a box +% of width |\thanksmarkwidth|. The first line of the thanks text starts +% after this box. The initialisation is |\setlength{\thanksmarkwidth}{1.8em}| +% giving the default position. +% +% \DescribeMacro{\thanksmargin} +% The value of the length |\thanksmargin| controls the indentation the +% second and subsequent lines of the thanks text, with respect to +% the end of the mark box. As examples: \\ +% |\setlength{\thanksmargin}{0em}| will align the left hand ends of +% of a multiline thanks text, while: \\ +% |\setlength{\thanksmargin}{-\thanksmarkwidth}| will left justify +% any second and subsequent lines of the thanks text. This last +% setting is the initialised value, giving the default appearance. +% +% \DescribeMacro{\thanksfootmark} +% A thanks mark in the footnote region is typeset by |\thanksfootmark|. +% The code for this is roughly: +% \begin{verbatim} +% \newcommand{\thanksfootmark}{% +% \hbox to\thanksmarkwidth{\hfil\normalfont% +% \thanksscript{\thanksfootpre \thefootnote \thanksfootpost}}} +% \end{verbatim} +% where |\thanksfootpre| and |\thanksfootpost| are specified via the +% |\thanksfootextra| macro. You should not need to change the definition +% of |\thanksfootmark| +% but you may want to change the default definitions of one or more +% of the macros it uses. +% +% \DescribeMacro{\thanksscript} +% Note that the thanks mark, together with the |\...pre| and |\...post| +% commands form the argument to the |\thanksscript| command. This +% is initially defined as: \\ +% |\newcommand{\thanksscript}[1]{\textsuperscript{#1}}| \\ +% so that |\thanksscript| typesets its argument as a superscript, which +% is the default for thanks notes. If you would prefer the mark to be +% set at the baseline instead, for example, just do: \\ +% |\renewcommand{\thanksscript}[1]{#1}|, and if you also wanted very +% small symbols on the baseline you could do: \\ +% |\renewcommand{\thanksscript}[1]{\tiny #1}|. Alternatively \\ +% |\renewcommand{\thanksscript}[1]{#1}| \\ +% |\thanksfootextra{\bfseries}{.}| \\ +% will give a bold baseline mark followed by a dot. +% +% Using combinations of |\thanksscript|, |\thanksmargin|, +% |\thanksmarkwidth| and |\thanksfootextra| you can easily define +% different layouts for the thanks footnotes. Here are some +% sample combinations, but to shorten them I have ignored any +% |\renewcommand|s and |\setlength|s, leaving these to be implied +% as necessary. +% \begin{itemize} +% \item Setting |\thanksfootextra{}{\hfill}| left justifies the mark +% in its box: +% \begin{itemize} +% \item |\thanksscript{\llap{#1\space}}|, |\thanksmarkwidth{0em}| and \\ +% |\thanksmargin{0em}| puts the baseline mark in the margin +% and the text left justified. +% \item Using |\thanksscript{#1}|, |\thanksmarkwidth{1em}| and \\ +% |\thanksmargin{-\thanksmarkwidth}| makes the baseline mark +% and text left adjusted. +% \item |\thanksscript{#1}|, |\thanksmarkwidth{1em}| and +% |\thanksmargin{0em}| puts the baseline mark left adjusted +% and the text indented and aligned, like this marked +% sentence is typeset. +% \end{itemize} +% +% \item Setting |\thanksfootextra{ }| and |\thanksscript{#1}| +% right justifies the baseline mark and a space in the mark box: +% \begin{itemize} +% \item The normal style is +% defined by |\thanksmarkwidth{1.8em}| and \\ +% |\thanksmargin{-\thanksmarkwidth}| which put the mark +% indented and the text left adjusted, like a normal indented +% paragraph. +% \item |\thanksmarkwidth{1.8em}| and +% |\thanksmargin{0em}| put the mark indented +% and the text indented and aligned. +% \end{itemize} +% +% \end{itemize} +% +% \DescribeMacro{\makethanksmark} +% \DescribeMacro{\makethanksmarkhook} +% The macro |\makethanksmark| typesets both the thanks marker (via +% |\thanksfootmark|) and the thanks text. You probably will not need +% to change its default definition. Just in case, though, |\makethanksmark| +% calls the macro |\makethanksmarkhook| before it does any typesetting. +% The default definition of this is: \\ +% |\newcommand{\makethanksmarkhook}{}|, which does nothing. +% +% You can redefine |\makethanksmarkhook| to do something useful. For +% example, if you wanted a slightly bigger baseline skip you could do: \\ +% |\renewcommand{\makethanksmarkhook}{\fontsize{8}{11}\selectfont}| \\ +% where the numbers |8| and |11| specify the point size of the font +% and the baseline skip +% respectively. In this example 8pt is the normal |\footnotesize| in +% a 10pt document, and 11pt is the baselineskip for |\footnotesize| +% text in an 11pt document (the baseline skip is 9.5pt in a 10pt document); +% adjust these numbers to suit. +% +% \DescribeMacro{\thanksrule} +% \DescribeMacro{\usethanksrule} +% \DescribeMacro{\cancelthanksrule} +% By default, there is no rule above |\thanks| +% text that appears in a |titlingpage| environment. +% If you want a rule in that environment, put |\usethanksrule| +% before the |\maketitle| command, which will then print a rule according +% to the current definition of |\thanksrule|. +% |\thanksrule| is initialised to be a copy of |\footnoterule| as it +% is defined at the +% end of the preamble. The definition of |\thanksrule| can be changed +% after |\begin{document}|. If the definition of |\thanksrule| is modified +% and a |\usethanksrule| command has been issued, then the redefined +% rule may also be used for footnotes. Issuing the command +% |\cancelthanksrule| will cause the normal |\footnoterule| definition +% to be used from thereon; another |\usethanksrule| +% command can be issued later +% if you want to swap back again. +% +% The parameters for the vertical positioning of footnotes and thanks notes, +% and the default |\footnoterule| are described below. You may need to +% change one or more of these if the vertical spacings of footnotes +% and thanks notes are meant to be different. +% +% \DescribeMacro{\footnotesep} +% \DescribeMacro{\skip\footins} +% The length |\footnotesep| controls the vertical spacing between footnotes +% (and thanks notes), +% and is initialised by the class to give no extra spacing for a +% |\footnotesize| font. You can change the spacing by \\ +% |\addtolength{\footnotesep}{...}| \\ +% The length |\skip\footins| defines the vertical spacing between the +% bottom of the main text and the top of the first line of the first +% footnote. Likewise this can be changed by \\ +% |\addtolength{\skip\footins}{...}| \\ +% The total vertical distance between the bottom of the main text and +% the baseline of the first line of the first footnote is +% |\footnotesep + \skip\footins|. +% +% +% \DescribeMacro{\footnoterule} +% The |\footnoterule| command is defined in the LaTeX kernel and +% redefined in the standard classes. An `@less' definition, which is slightly +% less efficient than that in the classes, is: +% \begin{verbatim} +% \renewcommand{\footnoterule}{% +% \kern -3pt % call this kerna +% \hrule height 0.4pt width 0.4\columnwidth +% \kern 2.6pt % call this kernb +% } +% \end{verbatim} +% This produces a horizontal rule from the left margin to 40\% of the +% |\columnwidth| with thickness 0.4pt. The rule must not take up any +% vertical space, which means that |kerna + kernb| must equal the thickness +% of the rule. The rule is located a distance |\skip\footins + kerna| +% below the bottom of the main text. So, to move the rule upwards, decrease +% the value of |kerna| and increase that of |kernb|, and the reverse to +% move the rule downwards. +% +% +% +% \DescribeMacro{\appendiargdef} +% This is only noted here as someone may find it useful +% in another context. Get the \Lpack{patchcmd} +% package~\cite{PATCHCMD} if you need +% to make other additions to definitions. +% The internal command |\appendiargdef{|\meta{macro}|}{|\meta{stuff}|}| +% appends \meta{stuff} at the end of the current definition of \meta{macro}, +% where \meta{macro} is the name of a macro (including the backslash) which +% takes a single argument. For example the following are two equivalent +% definitions of |\mymacro|: +% \par\begin{small}\begin{verbatim} +% \newcommand{\mymacro}[1]{#1 is a violinist} +% \appendiargdef{\mymacro}{ in spite of being tone deaf} +% % or +% \newcommand{\mymacro}[1]{# is a violinist in spite of being tone deaf} +% \end{verbatim} +% \end{small}\par +% +% The usual advice about creating a one-column |abstract| in a two-column +% document is to write code like this: +% \par\begin{small}\begin{verbatim} +% \documentclass[twocolumn...]{...} +% ... +% \twocolumn[ +% \begin{@twocolumnfalse} +% \maketitle % need full-width title +% \begin{abstract} +% abstract text... +% \end{abstract} +% \end{@twocolumnfalse} +% ] +% ... hand make footnotes for any \thanks commands +% ... +% \end{verbatim} +% \end{small}\par +% The \Lpack{titling} package gives no assistance for doing this, but the +% \Lpack{abstract} package~\cite{ABSTRACT} provides a command that caters for the somewhat +% non-intuitive +% \texttt{... hand make footnotes ...} aspect. +% +% +% \StopEventually{ +% \bibliographystyle{alpha} +% \begin{thebibliography}{GMS94} +% +% \bibitem[Dow00]{PATCHCMD} +% Michael J.~Downes. +% \newblock \emph{{The patchcmd package}}. +% \newblock July, 2000. +% \newblock (Available from CTAN in subdirectory \texttt{/patchcmd}) +% +% \bibitem[GMS94]{GOOSSENS94} +% Michel Goossens, Frank Mittelbach, and Alexander Samarin. +% \newblock \emph{{The LaTeX Companion}}. +% \newblock Addison-Wesley Publishing Company, 1994. +% +% \bibitem[Wil01]{ABSTRACT} +% Peter Wilson. +% \newblock \emph{{The abstract package}}. +% \newblock February, 2001. +% \newblock (Available from CTAN in subdirectory \texttt{/abstract}) +% +% \end{thebibliography} +% } +% +% +% +% \section{The package code} \label{sec:code} +% +% To try and avoid name clashes, all the internal commands include +% the string |@bs| (this code was initially part of the \Lpack{abstract} +% package). +% +% \subsection{Preliminaries} +% +% Announce the name and version of the package, which requires +% \LaTeXe. +% \begin{macrocode} +%<*usc> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{titling}[2004/09/26 v2.1c maketitle typesetting] + +% \end{macrocode} +% +% The original code for +% |\maketitle| is shown in Section~\ref{sec:app}. +% Changes to |\maketitle| and friends are defined here. +% +% \begin{macro}{\pretitle} +% \begin{macro}{\@bspretitle} +% \begin{macro}{\posttitle} +% \begin{macro}{\@bsposttitle} +% \begin{macro}{\preauthor} +% \begin{macro}{\@bspreauthor} +% \begin{macro}{\postauthor} +% \begin{macro}{\@bspostauthor} +% \begin{macro}{\predate} +% \begin{macro}{\@bspredate} +% \begin{macro}{\postdate} +% \begin{macro}{\@bspostdate} +% To provide some flexibilty in the titling style of the document, +% user level commands are provided that can be changed to reconfigure +% the appearance resulting from |\maketitle|. +% \changes{v2.0}{2001/02/24}{Revised and replaced the title configuration commands} +% \begin{macrocode} +\newcommand{\pretitle}[1]{\def\@bspretitle{#1}} +\newcommand{\posttitle}[1]{\def\@bsposttitle{#1}} +\newcommand{\preauthor}[1]{\def\@bspreauthor{#1}} +\newcommand{\postauthor}[1]{\def\@bspostauthor{#1}} +\newcommand{\predate}[1]{\def\@bspredate{#1}} +\newcommand{\postdate}[1]{\def\@bspostdate{#1}} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% These are defined initially +% to mimic the normal \LaTeX{} style. +% \begin{macrocode} +\if@titlepage + \pretitle{\begin{center}\LARGE} + \posttitle{\par\end{center}\vskip 2em} + \preauthor{\begin{center} + \large \lineskip .75em% + \begin{tabular}[t]{c}} + \postauthor{\end{tabular}\par\end{center}} + \predate{\begin{center}\large} + \postdate{\par\end{center}} +\else + \pretitle{\begin{center}\LARGE} + \posttitle{\par\end{center}\vskip 0.5em} + \preauthor{\begin{center} + \large \lineskip .5em% + \begin{tabular}[t]{c}} + \postauthor{\end{tabular}\par\end{center}} + \predate{\begin{center}\large} + \postdate{\par\end{center}} +\fi + +% \end{macrocode} +% +% \begin{macro}{\maketitlehooka} +% \begin{macro}{\maketitlehookb} +% \begin{macro}{\maketitlehookc} +% \begin{macro}{\maketitlehookd} +% The four hooks which will be called by |\maketitle|. These are initially +% vacuous. +% \changes{v2.1}{2001/03/23}{Added the four \cs{maketitlehook} commands} +% \begin{macrocode} +\newcommand{\maketitlehooka}{} +\newcommand{\maketitlehookb}{} +\newcommand{\maketitlehookc}{} +\newcommand{\maketitlehookd}{} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\thanksmarkseries} +% \begin{macro}{\@bsmarkseries} +% \begin{macro}{\symbolthanksmark} +% These are for specifying the kind of series for thanks markers. +% \changes{v2.0}{2001/02/24}{Added all the controls for the \cs{thanks} command.} +% \begin{macrocode} +\newcommand{\thanksmarkseries}[1]{% + \def\@bsmarkseries{\renewcommand{\thefootnote}{\@nameuse{#1}{footnote}}}} +\newcommand{\symbolthanksmark}{\thanksmarkseries{\fnsymbol}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\continuousmarks} +% \begin{macro}{\@bscontmark} +% These are for (non) zeroing of the footnote counter. +% \begin{macrocode} +\newcommand{\@bscontmark}{\setcounter{footnote}{0}} +\newcommand{\continuousmarks}{\def\@bscontmark{}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\thanksheadextra} +% \begin{macro}{\@bsthanksheadpre} +% \begin{macro}{\@bsthanksheadpost} +% These are for inserting stuff before and after a mark in the titling. +% \begin{macrocode} +\newcommand{\thanksheadextra}[2]{% + \def\@bsthanksheadpre{#1}% + \def\@bsthanksheadpost{#2}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\thanksfootextra} +% \begin{macro}{\thanksfootpre} +% \begin{macro}{\thanksfootpost} +% These are for inserting stuff before and after a thanks mark in the +% footnoting. +% \begin{macrocode} +\newcommand{\thanksfootextra}[2]{% + \def\thanksfootpre{#1}% + \def\thanksfootpost{#2}} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\thanksmark} +% This adds a thanks mark. The |\footnotemark| could have been used directly +% but it is fragile in a moving argument. +% \begin{macrocode} +\DeclareRobustCommand{\thanksmark}[1]{\footnotemark[#1]} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\thanksgap} +% This specifies some horizontal space. +% \begin{macrocode} +\newcommand{\thanksgap}[1]{\hspace{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\tamark} +% This stores the current definition of |\@thefnmark|. For some reason +% using |\@thefnmark| directly only gave the last value. +% \begin{macrocode} +\newcommand{\tamark}{\@thefnmark} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\thanksmarkwidth} +% A length determining the size of the box for typesetting +% a thanks marker. +% \begin{macrocode} +\newlength{\thanksmarkwidth} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\thanksmargin} +% A length determining the inset of thanks footnotes. +% \begin{macrocode} +\newlength{\thanksmargin} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\thanksscript} +% A wrapper round the actual mark stuff to be typeset. This is +% initialised to give a superscript mark. +% \begin{macrocode} +\newcommand{\thanksscript}[1]{\textsuperscript{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\makethanksmarkhook} +% A vacuous macro used as a hook into |\makethanksmark|. +% \begin{macrocode} +\newcommand{\makethanksmarkhook}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\thanksfootmark} +% This typesets the thanks footnote mark. +% \changes{v2.1}{2001/03/23}{Changed \cs{thanksfootmark} definition} +% \begin{macrocode} + +\newcommand{\thanksfootmark}{% + \hb@xt@\thanksmarkwidth{\hfil\normalfont\thanksscript{% + \thanksfootpre \tamark \thanksfootpost}}} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\makethanksmark} +% This sets the general indentations for the thanks footnote, +% and typesets the mark. The code is a simplified version of that +% for typeseeting ToC entries. +% \changes{v2.1}{2001/03/23}{Changed definition of \cs{makethanksmark}} +% \begin{macrocode} +\newcommand{\makethanksmark}{% + \leavevmode% + \makethanksmarkhook\relax + \parindent 1em\noindent + \leftskip\thanksmargin\relax + \advance\leftskip \thanksmarkwidth \null\nobreak\hskip -\leftskip + \thanksfootmark +} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\usethanksrule} +% \begin{macro}{\cancelhanksrule} +% Simple macros that let |\footnoterule| to another rule definition. +% \begin{macrocode} +\newcommand{\usethanksrule}{\let\footnoterule\thanksrule} +\newcommand{\cancelthanksrule}{\let\footnoterule\@bsfootnoterule} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% Now set up the thanks defaults. +% \begin{macrocode} +\if@titlepage + \thanksmarkseries{arabic} % normal footnote numbers +\else + \thanksmarkseries{fnsymbol} +\fi +\thanksheadextra{}{} +\thanksfootextra{}{} +\setlength{\thanksmarkwidth}{1.8em} +\setlength{\thanksmargin}{-\thanksmarkwidth} + +% \end{macrocode} +% \begin{macro}{\thanksrule} +% \begin{macro}{\@bsfootnoterule} +% These are saved versions of the |\footnoterule| definition as it +% is at the end of the preamble. +% \begin{macrocode} +\AtBeginDocument{% + \let\thanksrule\footnoterule + \let\@bsfootnoterule\footnoterule +} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\droptitle} +% A titling block has |\droptitle| amount of additional vertical space +% above it (normally zero). +% \begin{macrocode} +\newlength{\droptitle} +\setlength{\droptitle}{0pt} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\maketitle} +% The following is a +% modification of |\maketitle| as in the \Lpack{article}, \Lpack{report}, +% and \Lpack{book} classes +% (see Section~\ref{sec:app} for the original definition). +% \changes{v1.2}{2001/03/23}{Added the four \cs{maketitlehook} commands +% to \cs{maketitle}} +% \begin{macrocode} +\providecommand{\maketitle}{} +\if@titlepage + \renewcommand{\maketitle}{\begin{titlepage}% + \let\footnotesize\small + \let\footnoterule\relax + \let \footnote \thanks + \@bsmarkseries + \def\@makefnmark{\rlap{\@textsuperscript{% + \normalfont\@bsthanksheadpre \tamark \@bsthanksheadpost}}}% + \long\def\@makefntext##1{\makethanksmark ##1} + \null\vfil + \vskip 60\p@ + \vspace*{\droptitle} + \maketitlehooka + {\@bspretitle \@title \@bsposttitle} + \maketitlehookb + {\@bspreauthor \@author \@bspostauthor} + \maketitlehookc + {\@bspredate \@date \@bspostdate} + \maketitlehookd + \par + \@thanks + \vfil\null + \end{titlepage}% + \@bscontmark % \setcounter{footnote}{0}% +%%% \@bsmtitlempty + } % end titlepage defs +\else + \renewcommand{\maketitle}{\par + \begingroup + \@bsmarkseries + \def\@makefnmark{\rlap{\@textsuperscript{% + \normalfont\@bsthanksheadpre \tamark \@bsthanksheadpost}}}% + \long\def\@makefntext##1{\makethanksmark ##1} + \if@twocolumn + \ifnum \col@number=\@ne + \@maketitle + \else + \twocolumn[\@maketitle]% + \fi + \else + \newpage + \global\@topnum\z@ + \@maketitle + \fi + \thispagestyle{plain}\@thanks + \endgroup + \@bscontmark % \setcounter{footnote}{0}% +%%% \@bsmtitlempty + } % end non-titlepage +% \end{macrocode} +% \begin{macro}{\@maketitle} +% I use |\def\@maketitle| to account for the cases where the main class +% does not have titling commands, and to ensure an existing |\@maketitle| +% gets overridden. +% \changes{v1.2}{2001/03/23}{Added the four \cs{maketitlehook} commands +% to \cs{@maketitle}} +% \begin{macrocode} + + \def\@maketitle{% + \newpage + \null + \vskip 2em% + \vspace*{\droptitle} + \maketitlehooka + {\@bspretitle \@title \@bsposttitle} + \maketitlehookb + {\@bspreauthor \@author \@bspostauthor} + \maketitlehookc + {\@bspredate \@date \@bspostdate} + \maketitlehookd + \par + \vskip 1.5em} +\fi + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{environment}{titlingpage} +% The |titlingpage| environment sets the pagestyle to be empty, +% disables the footnote rule and ensures that the page is single +% column. At the end it switches back to twocolumn if neccessary, +% and then starts a new page as number 1. +% \begin{macrocode} +\newenvironment{titlingpage}% + {% + \let\footnoterule\relax + \let\footnotesize\small + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \thispagestyle{empty} + \setcounter{page}\@ne + }{% + \thispagestyle{empty} + \if@restonecol\twocolumn \else \newpage \fi + \if@twoside\else \setcounter{page}\@ne\fi} + +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\calccentering} +% This macro calculates the amount to be added to a |...sidemargin| +% in order to center the textblock. Call as \\ +% |\calccentering{\length}{...sidemargin}| and it sets |\length| +% to the required value. +% \changes{v2.1}{2001/03/23}{Added \cs{calccentering} command} +% \begin{macrocode} +\newcommand{\calccentering}[2]{ + #1 = \paperwidth + \advance #1 by -\textwidth + \divide #1 by \tw@ + \advance #1 by -#2 + \advance #1 by -\hoffset + \advance #1 by -1in +} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\emptythanks} +% This macro discards all prior |\thanks| texts. +% \changes{v2.1}{2001/03/23}{Added \cs{emptythanks} command} +% \begin{macrocode} +\newcommand{\emptythanks}{\global\let\@thanks\@empty} + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@bsmtitlempty} +% |\@bsmtitlempty| is a helper macro to save some macro space. +% It empties some elements of |\maketitle|. +% \begin{macrocode} +\newcommand{\@bsmtitlempty}{% + \global\let\maketitle\relax + \global\let\@maketitle\relax + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\thanksmarkseries\relax + \global\let\thanksheadextra\relax + \global\let\thanksfootextra\relax + \global\let\thanksmark\relax + \global\let\thanksgap\relax +} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\keepthetitle} +% This macro undefines all the titling commands except for +% |\thetitle|, |\theauthor| and |\thedate|. +% \changes{v2.1}{2001/03/23}{Added \cs{keepthetitle} command} +% \changes{v2.1}{2001/03/23}{Moved \cs{@bsmtitlempty} from \cs{maketitle} +% to \cs{keepthetitle}} +% \begin{macrocode} +\newcommand{\keepthetitle}{% + \@bsmtitlempty + \global\let\thanks\relax + \global\let\and\relax + \global\let\@thanks\@empty + \global\let\@title\@empty + \global\let\@author\@empty + \global\let\@date\@empty +} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\killtitle} +% |\killtitle| undefines the remaining macros of |\maketitle|. +% \changes{v2.1}{2001/03/23}{\cs{killtitle} calls \cs{keepthetitle} to +% do most of the work} +% \begin{macrocode} +\providecommand{\killtitle}{} +\renewcommand{\killtitle}{% + \keepthetitle + \global\let\thetitle\relax + \global\let\theauthor\relax + \global\let\thedate\relax +} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\appendiargdef} +% The code is copied from the \Lpack{abstract} package. +% \begin{macrocode} +\providecommand{\appendiargdef}[2]{\begingroup + \toks@\expandafter{#1{##1}#2}% + \edef\@bsx{\endgroup \def\noexpand#1####1{\the\toks@}}% + \@bsx} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\thetitle} +% \begin{macro}{\theauthor} +% \begin{macro}{\thedate} +% In order to make the |\title|, etc., values available for printing +% their definitions need extending to save their arguments +% (see Section~\ref{sec:app} for their +% original definitions). We have to make sure that extraneous material, +% like |\thanks|, is excluded from the saved texts. +% \begin{macrocode} +\appendiargdef{\title}{% + \begingroup + \renewcommand{\thanks}[1]{} + \renewcommand{\thanksmark}[1]{} + \renewcommand{\thanksgap}[1]{} + \protected@xdef\thetitle{#1} + \endgroup} +\appendiargdef{\author}{% + \begingroup + \renewcommand{\thanks}[1]{} + \renewcommand{\and}{\unskip, } + \renewcommand{\thanksmark}[1]{} + \renewcommand{\thanksgap}[1]{} + \protected@xdef\theauthor{#1} + \endgroup} +\appendiargdef{\date}{% + \begingroup + \renewcommand{\thanks}[1]{} + \renewcommand{\thanksmark}[1]{} + \renewcommand{\thanksgap}[1]{} + \protected@xdef\thedate{#1} + \endgroup} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% The end of this package. +% \begin{macrocode} +% +% \end{macrocode} +% +% \appendix +% \section{Original code for making a title} \label{sec:app} +% +% These are the kernel commands (from \file{ltsect.dtx}) for the elements +% of |\maketitle|. +% \par\begin{small}\begin{verbatim} +% \def\title#1{\gdef\@title{#1}} +% \def\@title{\@latex@error{No \noexpand\title given}\@ehc} +% \def\author#1{\gdef\@author{#1}} +% \def\@author{\@latex@warning@no@line{No \noexpand\author given}} +% \def\date#1{\gdef\@date{#1}} +% \def\@date{\today} +% \def\thanks#1{\footnotemark +% \protected@xdef\@thanks{\@thanks +% \protect\footnotetext[\the\c@footnote]{#1}}% +% } +% \let\@thanks\@empty +% \def\and{% % \begin{tabular} +% \end{tabular}% +% \hskip 1em \@plus.17fil% +% \begin{tabular}[t]{c}}% % \end{tabular} +% \end{verbatim} +% \par\end{small} +% +% +% This is the version of +% |\maketitle| and |\@maketitle| from \file{classes.dtx}. +% \par\begin{small}\begin{verbatim} +% \if@titlepage +% \newcommand{\maketitle}{\begin{titlepage}% +% \let\footnotesize\small +% \let\footnoterule\relax +% \let \footnote \thanks +% \null\vfil +% \vskip 60\p@ +% \begin{center}% +% {\LARGE \@title \par}% +% \vskip 3em% +% {\large +% \lineskip .75em% +% \begin{tabular}[t]{c}% +% \@author +% \end{tabular}\par} +% \vskip 1.5em% +% {\large \@date \par}% +% \end{center}\par +% \@thanks +% \vfil\null +% \end{titlepage}% +% \setcounter{footnote}{0}% +% \global\let\thanks\relax +% \global\let\maketitle\relax +% \global\let\@maketitle\relax +% \global\let\@thanks\@empty +% \global\let\@author\@empty +% \global\let\@date\@empty +% \global\let\@title\@empty +% \global\let\title\relax +% \global\let\author\relax +% \global\let\date\relax +% \global\let\and\relax +% } +% \else +% \newcommand{\maketitle}{\par +% \begingroup +% \renewcommand\thefootnote{\@fnsymbol\c@footnote}% +% \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% +% \long\def\@makefntext##1{\parindent 1em\noindent +% \hb@xt@1.8em{% +% \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% +% \if@twocolumn +% \ifnum \col@number=\@ne +% \@maketitle +% \else +% \twocolumn[\@maketitle]% +% \fi +% \else +% \newpage +% \global\@topnum\z@ +% \@maketitle +% \fi +% \thispagestyle{plain}\@thanks +% \endgroup +% \setcounter{footnote}{0}% +% \global\let\thanks\relax +% \global\let\maketitle\relax +% \global\let\@maketitle\relax +% \global\let\@thanks\@empty +% \global\let\@author\@empty +% \global\let\@date\@empty +% \global\let\@title\@empty +% \global\let\title\relax +% \global\let\author\relax +% \global\let\date\relax +% \global\let\and\relax +% } +% +% \def\@maketitle{% +% \newpage +% \null +% \vskip 2em% +% \begin{center}% +% \let \footnote \thanks +% {\LARGE \@title \par}% +% \vskip 1.5em% +% {\large +% \lineskip .5em% +% \begin{tabular}[t]{c}% +% \@author +% \end{tabular}\par} +% \vskip 1em% +% {\large \@date}% +% \end{center} +% \par +% \vskip 1.5em} +% \fi +% +% \end{verbatim} +% \end{small}\par +% +% +% +% +% \Finale +% \PrintIndex +% +\endinput + +%% \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 \~} + + -- cgit v1.2.3