https://github.com/latex3/latex2e
Tip revision: 19b9416ae8e1e83a814f13da645414bad4d61adf authored by Joseph Wright on 29 February 2024, 08:45:07 UTC
Add firstaid for chemnum
Add firstaid for chemnum
Tip revision: 19b9416
proc.dtx
% \iffalse meta-comment
%
% Copyright (C) 1993-2024
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
% This file is part of the LaTeX base system.
% -------------------------------------------
%
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
% of this license or (at your option) any later version.
% The latest version of this license is in
% https://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX
% version 2008 or later.
%
% This file has the LPPL maintenance status "maintained".
%
% The list of all files belonging to the LaTeX base distribution is
% given in the file `manifest.txt'. See also `legal.txt' for additional
% information.
%
% The list of derived (unpacked) files belonging to the distribution
% and covered by LPPL is defined by the unpacking scripts (with
% extension .ins) which are part of the distribution.
%
% \fi
%
% \iffalse
% Copyright (C) 1991,1992 by Leslie Lamport and
% Copyright (C) 1994-2020 by the LaTeX Project and Johannes Braams
%
% \changes{v1.1}{1994/01/25}{Made `proc' a document class and provide
% a .sty file for compatibility mode}
% \changes{v1.2}{1994/01/26}{Removed the setting of a number of
% variables that became superfluous by passing the twocolumn option
% to the article class}
% \changes{v1.3}{1994/03/01}{Moved driver further up; added overview
% of docstrip modules; added \cs{CheckSum}, \cs{StopEventually} and
% \cs{Finale}}
% \changes{v1.3e}{1994/05/22}{Use new warning and error commands}
% \changes{v1.3f}{1994/05/26}{Inserted missing 'v's in \cs{changes}
% entries}
% \changes{v1.3f}{1994/05/26}{Moved identification and driver to the
% front of the file; these sections now no longer print}
%
% \subsection{Identification}
%
% This document class can only be used with \LaTeXe, so it is made
% sure that an appropriate message is displayed when another \TeX{}
% format is used.
% \changes{v1.3l}{1995/11/30}{Added date of \LaTeX\ format to argument
% of \cs{NeedsTeXFormat}}
% \begin{macrocode}
%<+class|style>\NeedsTeXFormat{LaTeX2e}[1995/12/01]
% \end{macrocode}
%
% Announce the document class and its version.
% \changes{v1.3c}{1994/04/15}{Added missing / guard}
% \changes{v1.3d}{1994/05/01}{Removed the use of variables such as
% \cs{fileversion}}
% \changes{v1.3b}{1994/03/16}{Removed use of \cs{wlog}, no longer
% needed}
% \changes{v1.3f}{1994/05/26}{Removed \cs{typeout} from .sty file;
% changed description}
% \changes{v1.3h}{1994/05/26}{The second argument to \cs{ProvidesFile}
% wasn't closed in the driver and the style file}
%
% \begin{macrocode}
%<*driver>
\ProvidesFile{proc.drv}
%</driver>
%<+class>\ProvidesClass{proc}
%<+style>\ProvidesFile{proc.sty}
[2021/12/09 v1.3m
%<+class> Standard LaTeX document class]
%<+style> LaTeX 2.09 compatibility style option `proc']
% \end{macrocode}
%
% \subsection{The documentation driver file}
%
% This bit of code contains the documentation driver file for
% \TeX{}, i.e., the file that will produce the documentation you
% are currently reading. It can be extracted from this file by the
% {\sc docstrip} program.
% \begin{macrocode}
%<*driver>
]
\documentclass{ltxdoc}
\GetFileInfo{proc.drv}
\begin{document}
\newcommand\Lopt[1]{\textsf {#1}}
\DocInput{proc.dtx}
\end{document}
%</driver>
% \end{macrocode}
% \fi
%
% \title{Producing proceedings articles with \LaTeXe\thanks
% {File version \fileversion, dated \filedate}}
%
% \author{%
% Johannes Braams\and
% David Carlisle\and
% Alan Jeffrey\and
% Leslie Lamport\and
% Frank Mittelbach\and
% Chris Rowley\and
% Rainer Sch\"opf}
%
% \date{\filedate}
%
% \MaintainedByLaTeXTeam{latex}
% \maketitle
%
% \section{Description}
%
% This \LaTeXe\ document class is designed to produce camera-ready
% conference proceedings. It is based upon the document class
% \texttt{article}, but modifies some of its layout decisions.
% It also adds one command.
%
% For compatibility with \LaTeX2.09 a \texttt{.sty} version is
% provided because \texttt{proc} used to be a style file. The
% \texttt{.sty} file can \emph{not} be used as a package however.
%
% \DescribeMacro\copyrightspace
% The |\copyrightspace| command is used to produce a blank space in
% the first column where a copyright notice belongs. Note that it
% should appear after any |\footnote| commands that produce
% footnotes for the first column.
%
% \MaybeStop{}
%
% \section{The {\sc docstrip} modules}
%
% The following modules are used in the implementation to direct
% {\sc docstrip} in generating the external files:
% \begin{center}
% \begin{tabular}{ll}
% class & produce the proc document class\\
% sty & produce proc.sty for compatibility mode\\
% driver & produce a documentation driver file \\
% \end{tabular}
% \end{center}
%
% \section{Implementation}
%
% In this case a check is needed to see whether \LaTeXe\ runs in
% compatibility mode.
% \changes{v1.3i}{1994/05/27}{Added missing docstrip guard}
% \begin{macrocode}
%<*style>
\if@compatibility
% \end{macrocode}
% In this case processing silently continues, but in the |\else|
% case a warning is issued and reading of this file stops.
% \begin{macrocode}
\else
\ClassWarningNoLine{proc}{^^J\@spaces%
You requested the use of `proc' as a package^^J\@spaces%
but it has been turned into a document class.^^J\@spaces%
Please change your file to use `proc' as a class.^^J}
\expandafter\endinput
\fi
%</style>
% \end{macrocode}
%
% Paper sizes smaller than A4 are not supported.
% \begin{macrocode}
%<*class>
\DeclareOption{a5paper}
{\ClassError{proc}{Option `a5paper' not supported}{}}
\DeclareOption{b5paper}
{\ClassError{proc}{Option `b5paper' not supported}{}}
% \end{macrocode}
%
% Also the \Lopt{onecolumn} option is disabled in this document
% class.
% \begin{macrocode}
\DeclareOption{onecolumn}%
{\ClassError{proc}{Option `onecolumn' not supported}{}}
% \end{macrocode}
%
% Proceedings articles never have separate titlepages, therefore
% this option is disabled.
% \begin{macrocode}
\DeclareOption{titlepage}%
{\ClassError{proc}{Option `titlepage' not supported}{}}
% \end{macrocode}
%
% Always print in two column mode.
% \begin{macrocode}
\PassOptionsToClass{twocolumn}{article}
% \end{macrocode}
%
% Any other options are passed on to the article class on which
% this document class is based.
% \begin{macrocode}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
% \end{macrocode}
%
% Now we can process the options
% \begin{macrocode}
\ProcessOptions
% \end{macrocode}
%
% and load the article document class.
% \begin{macrocode}
\LoadClass{article}
%</class>
% \end{macrocode}
%
% \section{Document Layout}
%
% Proceedings articles have a different layout than normal
% articles. Therefore some of the layout parameters are given
% different values here.
%
% \subsection{Page Layout}
%
% \subsubsection{Vertical spacing}
%
% \begin{macro}{\footskip}
% The distance from the baseline of the box which contains the
% running footer to the baseline of last line of text is controlled
% by the |\footskip|.
% \begin{macrocode}
%<*class|style>
\setlength\footskip{75\p@}
% \end{macrocode}
% \end{macro}
%
% \subsubsection{The dimension of text}
%
% \begin{macro}{\textwidth}
% When \LaTeXe\ runs in compatibility mode it has to be made sure
% that the dimensions of the printed area are not different from
% what the user was used to see.
%
% \begin{macrocode}
\if@compatibility
\setlength\textwidth{6.75in}
\else
\setlength\textwidth{\paperwidth}
\addtolength\textwidth{-126\p@}
\@settopoint\textwidth
\fi
% \end{macrocode}
%
% Here the width of the text a little is modified to be a whole
% number of points.
% \begin{macrocode}
\if@compatibility
\else
\@settopoint\textwidth
\fi
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\textheight}
% Now that we have computed the width of the text, we have to take
% care of the height. The |\textheight| is the height of text
% (including footnotes and figures, excluding running head and
% foot).
%
% \begin{macrocode}
\if@compatibility
\setlength\textheight{9in}
\else
\ifcase\@ptsize
\setlength\textheight{53\baselineskip}
\or
\setlength\textheight{47\baselineskip}
\or
\setlength\textheight{44\baselineskip}
\fi
\fi
% \end{macrocode}
%
% The first line on the page has a height of |\topskip|.
% \begin{macrocode}
\advance\textheight by \topskip
% \end{macrocode}
% \end{macro}
%
% \subsubsection{Margins}
%
% \begin{macro}{\oddsidemargin}
% \begin{macro}{\evensidemargin}
% The width of the text is quite large, therefore the margins
% have a negative width.
% \begin{macrocode}
\setlength\oddsidemargin{-10\p@}
\setlength\evensidemargin{-10\p@}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\marginparwidth}
% Because we have such a large |\textwidth| there is no real room
% for notes in the margins.
% \begin{macrocode}
\setlength\marginparwidth {\z@}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\topmargin}
% The |\topmargin| is the distance between the top of `the
% printable area' --which is 1 inch below the top of the paper--
% and the top of the box which contains the running head.
% \begin{macrocode}
\setlength\topmargin{-47\p@}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\columnsep}
% Proceedings articles are always set in |\twocolumn| mode,
% therefore the distance between the two columns (|\columnsep|)is
% set to a non zero value.
% \begin{macrocode}
\setlength\columnsep{.375in}
% \end{macrocode}
% \end{macro}
%
% \subsection{The page style}
%
% The user can use |\markright| (or |\markboth|) to put an
% identification in the lower left side of the page. The page
% number is printed in the lower right side of the page.
%
% This works as long as he doesn't use either |\pagestyle| or
% |\thispagestyle| commands.
% \changes{v1.3f}{1994/05/26}{changed \cs{rm} to
% \cs{normalfont}\cs{rmfamily}}
% \changes{v1.3j}{1995/05/26}{Removed \cs{rmfamily} (PR 1578)}
% \begin{macrocode}
\let\@oddhead\@empty
\let\@evenhead\@empty
\def\@oddfoot{\rightmark \hfil \pagename{} \thepage}
% \end{macrocode}
% If the \texttt{twoside} option is passed to the class we provide
% a different footer that shows the \cs{leftmark} if that is set.
% \changes{v1.3m}{2021/12/09}{Support twoside (gh/704)}
% \begin{macrocode}
\if@twoside
\def\@evenfoot{\pagename{} \thepage \hfil \leftmark}
\else
\def\@evenfoot{\@oddfoot}
\fi
% \end{macrocode}
%
%
% \section{Document Markup}
%
% \subsection{The title}
%
% \begin{macro}{\maketitle}
% \changes{v1.3k}{1995/07/18}{Modify footnote handling (PR 1735)}
% The definition of |\maketitle| here is basically the same as the
% one in the document class \texttt{article}, but the pagestyle is
% \emph{not} set to \texttt{plain}.
%
% \begin{macrocode}
\def\maketitle{\par
\begingroup
\renewcommand\thefootnote{\fnsymbol{footnote}}%
\def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
\long\def\@makefntext##1{\parindent 1em\noindent
\hb@xt@1.8em{%
\hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
% \end{macrocode}
% This document class always uses two column mode but the title is
% set to the full width of the text.
% \begin{macrocode}
\twocolumn[\@maketitle]%
\@thanks
\endgroup
\setcounter{footnote}{0}%
\let\maketitle\relax
\let\@maketitle\relax
\gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@maketitle}
% This macro takes care of formatting the title information.
%
% The information is set inside |\vbox| with a width of
% |\textwidth| and a height of 2.25in. The text is vertically and
% horizontally centered.
% \begin{macrocode}
\def\@maketitle{%
\vbox to 2.25in{%
\hsize\textwidth
\linewidth\hsize
\vfil
\centering
{\LARGE \@title \par}
\vskip 2em
{\large \begin{tabular}[t]{c}\@author \end{tabular}\par}
\vfil}}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\copyrightspace}
% The |\copyrightspace| command is used to produce a blank space in
% the first column where a copyright notice belongs. It works by
% producing a blank footnote of the appropriate size.
%
% \begin{macrocode}
\def\copyrightspace{%
\footnotetext[0]{\mbox{}\vrule \@height 97\p@ \@width \z@}}
% \end{macrocode}
% \end{macro}
%
% \subsection{Modifying environments}
%
% \subsubsection{Abstract}
%
% \begin{macro}{\abstract}
% For this document class the definition of the abstract
% environment is quit simple.
%
% \begin{macrocode}
\renewenvironment{abstract}%
{\section*{\abstractname}}
{\par}
% \end{macrocode}
% \end{macro}
%
% \section{Initialization}
%
% \subsection{Words}
%
% \begin{macro}{\pagename}
% This document class is for documents prepared in the English
% language. To prepare a version for another language, one English
% word must be replaced. It is defined below in a command name.
% \begin{macrocode}
\newcommand\pagename{Page}
%</class|style>
% \end{macrocode}
% \end{macro}
%
% \Finale
%
\endinput