diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/achemso/achemso.cls')
-rw-r--r-- | Master/texmf-dist/tex/latex/achemso/achemso.cls | 517 |
1 files changed, 280 insertions, 237 deletions
diff --git a/Master/texmf-dist/tex/latex/achemso/achemso.cls b/Master/texmf-dist/tex/latex/achemso/achemso.cls index bf0b969beda..14e94b32288 100644 --- a/Master/texmf-dist/tex/latex/achemso/achemso.cls +++ b/Master/texmf-dist/tex/latex/achemso/achemso.cls @@ -16,15 +16,14 @@ %% \NeedsTeXFormat{LaTeX2e} \LoadClass[12pt]{article} -\RequirePackage[etex=false]{notes2bib}[2008/06/21] -\RequirePackage{achemso} \ProvidesClass{achemso} - [\acs@ver Submissions to ACS journals] + [2008/12/18 v3.1 Submissions to ACS journals] +\RequirePackage[etex=false]{notes2bib}[2008/06/21] +\RequirePackage[margin=2.54cm]{geometry} \RequirePackage[T1]{fontenc} \RequirePackage[scaled=0.90]{helvet} -\RequirePackage[margin=2.54cm]{geometry} -\RequirePackage{mathptmx,courier,setspace,graphicx,truncate,% - float,varioref} +\RequirePackage{mathptmx,courier,setspace,graphicx,truncate, + float,varioref,url,caption} \AtBeginDocument{\doublespacing} \renewcommand*{\title}[2][]{% \gdef\@title{#2}% @@ -34,81 +33,137 @@ \newcount\acs@authorcnt \newcount\acs@affilcnt \newcount\acs@altaffilcnt -\acs@affilcnt\@ne\relax -\acs@altaffilcnt\@ne\relax \renewcommand*{\author}[1]{% \global\advance\acs@authorcnt\@ne\relax - \expandafter\gdef - \csname @author@\@roman\the\acs@authorcnt\endcsname{#1}% + \expandafter\gdef\csname @author@\@roman\the\acs@authorcnt\endcsname + {#1}% \begingroup - \advance\acs@affilcnt\@ne\relax - \expandafter\xdef - \csname @author@affil@\@roman\the\acs@authorcnt\endcsname - {\the\acs@affilcnt}% - \endgroup} + \advance\acs@affilcnt\@ne + \expandafter\xdef\csname @author@affil@\@roman\the\acs@authorcnt + \endcsname + {\the\acs@affilcnt}% + \endgroup +} \@onlypreamble\author \renewcommand*{\and}{% \ClassError{achemso}{\string\and\space not supported} - {The achemso class does not use \string\and\MessageBreak - see the documentation for details}} + {The achemso class does not use \string\and + \MessageBreak see the documentation for details}} \renewcommand*{\thanks}[1]{% \ClassError{achemso}{\string\thanks\space not supported} - {The achemso class does not use \string\thanks\MessageBreak - see the documentation for details}} + {The achemso class does not use \string\thanks + \MessageBreak see the documentation for details}} \newcommand*{\affiliation}[2][\relax]{% \ifnum\acs@authorcnt>\z@\relax - \global\advance\acs@affilcnt\@ne - \begingroup - \expandafter\def - \csname @address@\@roman\acs@affilcnt\endcsname{#2}% - \acs@tempcnta\acs@affilcnt\relax - \acs@ifdupaffil - {\begingroup - \acs@tempcntb\@ne\relax - \acs@switchfalse - \edef\acs@tempa{% - \csname @address@\@roman\acs@tempcnta\endcsname}% - \acs@ifdup@affil - \acs@tempcnta\z@\relax - \edef\acs@tempa{\the\acs@affilcnt}% - \global\advance\acs@affilcnt\m@ne\relax - \acs@swapaffil - \endgroup} - {\expandafter\gdef - \csname @address@\@roman\acs@affilcnt\endcsname{#2}% - \ifx\relax#1\relax - \expandafter\gdef - \csname @affil@\@roman\acs@affilcnt\endcsname{#2}% - \else - \expandafter\gdef - \csname @affil@\@roman\acs@affilcnt\endcsname{#1}% - \fi} - \endgroup + \acs@affil@ifdup{#2}{% + \acs@affil@swap{#2}% + }{% + \global\advance\acs@affilcnt\@ne + \expandafter\gdef\csname @address@\@roman\acs@affilcnt + \endcsname{#2}% + \ifx\relax#1\relax + \expandafter\gdef\csname @affil@\@roman\acs@affilcnt + \endcsname{#2}% + \else + \expandafter\gdef\csname @affil@\@roman\acs@affilcnt + \endcsname{#1}% + \fi + }% \else \ClassWarning{achemso} {Affiliation with no author}% \fi} \@onlypreamble\affiliation -\newcommand*{\acs@swapaffil}{% +\newcommand*{\acs@affil@ifdup}[1]{% + \begingroup + \def\acs@tempa{#1}% + \acs@switchfalse + \acs@tempcnta\z@\relax + \acs@affil@ifdup@aux + \ifacs@switch + \aftergroup\@firstoftwo + \else + \aftergroup\@secondoftwo + \fi + \endgroup +} +\newcommand*{\acs@affil@ifdup@aux}{% \advance\acs@tempcnta\@ne\relax - \ifnum\acs@tempcnta>\acs@authorcnt\relax\else - \edef\acs@tempb{% - \csname @author@affil@\@roman\acs@tempcnta\endcsname}% - \ifx\acs@tempa\acs@tempb - \expandafter\xdef - \csname @author@affil@\@roman\acs@tempcnta\endcsname{% - \the\acs@tempcntb}% + \edef\acs@tempb{\csname @address@\@roman\acs@tempcnta\endcsname}% + \ifx\acs@tempa\acs@tempb + \expandafter\acs@switchtrue + \else + \ifnum\acs@tempcnta<\acs@affilcnt\relax + \expandafter\expandafter\expandafter\acs@affil@ifdup@aux \fi - \acs@swapaffil + \fi +} +\newcommand*{\acs@affil@swap}[1]{% + \begingroup + \def\acs@tempa{#1}% + \acs@tempcnta\z@\relax + \acs@tempcntb\z@\relax + \acs@affil@ifdup@aux + \advance\acs@affilcnt\@ne\relax + \acs@affil@swap@aux + \endgroup +} +\newcommand*{\acs@affil@swap@aux}{% + \advance\acs@tempcntb\@ne\relax + \expandafter\ifnum\csname @author@affil@\@roman + \acs@tempcntb\endcsname = \acs@affilcnt\relax + \expandafter\xdef\csname @author@affil@\@roman + \acs@tempcntb\endcsname{\the\acs@tempcnta}% + \fi + \ifnum\acs@tempcntb<\acs@authorcnt\relax + \expandafter\acs@affil@swap@aux + \fi +} +\newcommand*{\alsoaffiliation}[2][\relax]{% + \ifnum\acs@authorcnt>\z@\relax + \acs@affil@ifdup{#2}{% + \acs@alsoaffil@find{#2}% + }{% + \global\advance\acs@affilcnt\@ne + \acs@tempcnta\acs@affilcnt\relax + \expandafter\gdef\csname @address@\@roman\acs@affilcnt + \endcsname{#2}% + \ifx\relax#1\relax + \expandafter\gdef\csname @affil@\@roman\acs@affilcnt + \endcsname{#2}% + \else + \expandafter\gdef\csname @affil@\@roman\acs@affilcnt + \endcsname{#1}% + \fi + }% + \@ifundefined{@author@alsoaffil@\@roman\acs@authorcnt}{% + \expandafter\xdef\csname @author@alsoaffil@\@roman\acs@authorcnt + \endcsname{\the\acs@tempcnta}% + }{% + \expandafter\xdef\csname @author@alsoaffil@\@roman\acs@authorcnt + \endcsname{\csname @author@alsoaffil@\@roman\acs@authorcnt + \endcsname,\the\acs@tempcnta}% + } + \else + \ClassWarning{achemso} + {Affiliation with no author}% \fi} +\newcommand*{\acs@alsoaffil@find}[1]{% + \begingroup + \def\acs@tempa{#1}% + \acs@tempcnta\z@\relax + \acs@tempcntb\z@\relax + \acs@affil@ifdup@aux + \expandafter\endgroup + \expandafter\acs@tempcnta\the\acs@tempcnta\relax +} \newcommand*{\altaffiliation}[1]{% \ifnum\acs@authorcnt>\z@\relax \global\advance\acs@altaffilcnt\@ne\relax - \expandafter\gdef - \csname @altaffil@\@roman\acs@authorcnt\endcsname{#1}% - \expandafter\xdef - \csname @author@altaffil@\@roman\acs@authorcnt\endcsname - {\the\acs@altaffilcnt} + \expandafter\gdef\csname @altaffil@\@roman\acs@authorcnt + \endcsname{#1}% + \expandafter\xdef\csname @author@altaffil@\@roman\acs@authorcnt + \endcsname{\the\acs@altaffilcnt}% \else \ClassWarning{achemso} {Affiliation with no author}% @@ -116,8 +171,8 @@ \@onlypreamble\altaffiliation \newcommand*{\email}[1]{% \ifnum\acs@authorcnt>\z@\relax - \expandafter\gdef - \csname @email@\@roman\acs@authorcnt\endcsname{#1}% + \expandafter\gdef\csname @email@\@roman\acs@authorcnt + \endcsname{#1}% \else \ClassWarning{achemso} {E-mail with no author}% @@ -127,173 +182,196 @@ \ifnum\acs@authorcnt<\z@\relax \ClassError{achemso}{No authors defined} {At least one author is required}% - \else - \newpage - \null - \vskip 2em% - \begin{center}% - {\LARGE\bfseries\sffamily - \renewcommand*{\acs@tempa}{suppinfo}% - \ifx\acs@manuscript\acs@tempa - Supporting information for: - \fi - \@title \par}% - \vskip 1.5em\relax - {\large\sffamily\frenchspacing \acs@authorlist}% - \vskip 1em% - {\itshape\acs@addresslist}% - \ifnum\acs@affilcnt>\tw@\relax - \acs@affilfoot - \else - \ifnum\acs@altaffilcnt>\@ne\relax - \acs@affilfoot - \fi - \fi - \vskip 1em\relax - {\sffamily E-mail: \acs@emaillist}% - \end{center} - \par + \fi + \newpage + \null + \vskip 2em% + \begin{center}% + {\LARGE\bfseries\sffamily + \renewcommand*{\acs@tempa}{suppinfo}% + \ifx\acs@manuscript\acs@tempa + Supporting information for: + \fi + \@title \par}% \vskip 1.5em\relax + {\large\sffamily\frenchspacing \acs@authorlist}% + \vskip 1em% + {\itshape\acs@addresslist}% + \vskip 1em\relax + {\sffamily E-mail: \acs@emaillist}% + \end{center} + \par + \vskip 1.5em\relax} +\renewcommand*{\@thanks}{% + \ifnum\acs@affilcnt>\@ne\relax + \acs@affilfoot + \else + \ifnum\acs@altaffilcnt>\z@\relax + \acs@affilfoot + \fi \fi} \newcommand*{\acs@authorlist}{% \acs@tempcnta\z@\relax - \acs@tempcntc\z@\relax - \acs@author@list} -\newcommand*{\acs@author@list}{% + \acs@tempcntb\acs@affilcnt\relax + \ifnum\acs@authorcnt=\z@\relax + \ClassError{achemso}{No authors given} + {No authors were specified for the paper}% + \else + \expandafter\acs@authorlist@aux + \fi} +\newcommand*{\acs@authorlist@aux}{% \advance\acs@tempcnta\@ne\relax - \ifnum\acs@tempcnta>\acs@authorcnt\relax\else + \def\acs@tempa{}% + \ifnum\acs@authorcnt=\@ne\relax\else \ifnum\acs@tempcnta=\acs@authorcnt\relax - \ifnum\acs@tempcnta=\@ne\relax\else - and - \fi + \space and% \fi - \csname @author@\@roman\acs@tempcnta\endcsname - \ifnum\acs@tempcnta=\acs@authorcnt\relax\else - ,% + \fi + \space + \csname @author@\@roman\acs@tempcnta\endcsname + \ifnum\acs@tempcnta<\acs@authorcnt + ,% + \fi + \begingroup + \@ifundefined{@email@\@roman\acs@tempcnta} + {} + {\aftergroup\acs@authorlist@email}% + \endgroup + \begingroup + \expandafter\acs@tempcntb\csname @author@affil@\@roman + \acs@tempcnta\endcsname\relax + \@ifundefined{@affil@\@roman\acs@tempcntb} + {\ClassError{achemso}{Affiliation not given} + {No affiliation has been given for author\MessageBreak + \csname @author@\@roman\acs@tempcnta\endcsname}} + {}% + \endgroup + \ifnum\acs@affilcnt>\@ne\relax + \protected@edef\acs@tempa{% + \acs@tempa + \acs@fnsymbol{% + \csname @author@affil@\@roman\acs@tempcnta\endcsname + }% + }% + \else + \ifnum\acs@altaffilcnt>\z@\relax + \protected@edef\acs@tempa{\acs@tempa\acs@fnsymbol{\@ne}}% \fi - \begingroup - \@ifundefined{@email@\@roman\acs@tempcnta} - {\aftergroup\@firstoftwo} - {\aftergroup\@secondoftwo}% - \endgroup - {\def\acs@tempb{}} - {\protected@edef\acs@tempb{% - \acs@fnsymbol{\@ne}% - \ifnum\acs@affilcnt>\tw@\relax - ,% - \else - \ifnum\acs@altaffilcnt>\@ne\relax - ,% - \fi - \fi}}% - \ifnum\acs@affilcnt>\tw@\relax - \protected@edef\acs@tempb{\acs@tempb\@fnsymbol{% - \csname @author@affil@\@roman\acs@tempcnta - \endcsname}}% + \fi + \begingroup + \@ifundefined{@author@alsoaffil@\@roman\acs@tempcnta} + {} + {\aftergroup\acs@authorlist@also}% + \endgroup + \begingroup + \@ifundefined{@author@altaffil@\@roman\acs@tempcnta} + {} + {\aftergroup\acs@authorlist@alt}% + \endgroup + \ifx\@empty\acs@tempa\@empty\else + \textsuperscript{\acs@tempa}% + \fi + \ifnum\acs@tempcnta<\acs@authorcnt + \expandafter\acs@authorlist@aux + \fi +} +\newcommand*{\acs@authorlist@email}{% + \protected@edef\acs@tempa{% + \acs@fnsymbol{\z@}% + \ifnum\acs@affilcnt>\@ne\relax + ,% \else - \ifnum\acs@altaffilcnt>\@ne\relax - \protected@edef\acs@tempb{\acs@tempb\@fnsymbol{% - \csname @author@affil@\@roman\acs@tempcnta - \endcsname}}% + \ifnum\acs@altaffilcnt>\z@\relax + ,% \fi \fi - \begingroup - \@ifundefined{@author@altaffil@\@roman\acs@tempcnta} - {\aftergroup\@gobble} - {\aftergroup\@firstofone}% - \endgroup - {\global\advance\acs@tempcntc\@ne\relax - \advance\acs@tempcntc\acs@affilcnt - \ifnum\acs@affilcnt>\@ne\relax - \protected@edef\acs@tempb{\acs@tempb,}% - \fi - \protected@edef\acs@tempb{% - \acs@tempb\@fnsymbol{\acs@tempcntc}}}% - \textsuperscript{\acs@tempb} - \acs@author@list - \fi} + }% +} +\newcommand*{\acs@authorlist@also}{% + \expandafter\@for\expandafter\acs@tempb\expandafter:\expandafter + =\csname @author@alsoaffil@\@roman\acs@tempcnta\endcsname\do{% + \protected@edef\acs@tempa{% + \acs@tempa + ,% + \acs@fnsymbol{\acs@tempb}% + }% + }% +} +\newcommand*{\acs@authorlist@alt}{% + \advance\acs@tempcntb\@ne\relax + \protected@edef\acs@tempa{% + \acs@tempa + ,% + \acs@fnsymbol{\acs@tempcntb}% + }% +} \newcommand*{\acs@fnsymbol}[1]{% - \ensuremath{\ifcase#1\or *\or \dagger\or \ddagger\or - \mathsection\or \|\or \bot\or \#\or @\else + \ensuremath{\ifcase#1 *\or \dagger\or \ddagger\or \P\or + \S\or \|\or \bot\or \#\or @\or \triangle\or \nabla\else \ClassError{achemso}{Too many affiliations} {There are no symbols left: complain to the package author}\fi}} \newcommand*{\acs@addresslist}{% - \ifnum\acs@affilcnt>\@ne\relax - \acs@tempcnta\@ne\relax - \acs@address@list + \ifnum\acs@affilcnt>\z@\relax + \acs@tempcnta\z@\relax + \acs@addresslist@aux \else \ClassError{achemso}{No affiliations} {At least one affiliation is needed}% \fi} -\newcommand*{\acs@address@list}{% +\newcommand*{\acs@addresslist@aux}{% \advance\acs@tempcnta\@ne\relax - \ifnum\acs@tempcnta>\acs@affilcnt\relax\else - \acs@ifdupaffil - {} - {\ifnum\acs@tempcnta=\acs@affilcnt\relax - \ifnum\acs@affilcnt>\tw@\relax - and - \fi - \fi - \csname @address@\@roman\acs@tempcnta\endcsname - \ifnum\acs@tempcnta=\acs@affilcnt\relax\else - , - \fi}% - \acs@address@list - \fi} -\newcommand*{\acs@ifdupaffil}{% - \begingroup - \acs@tempcntb\@ne\relax - \acs@switchfalse - \edef\acs@tempa{% - \csname @address@\@roman\acs@tempcnta\endcsname}% - \acs@ifdup@affil - \expandafter\expandafter\expandafter\endgroup - \ifacs@switch - \expandafter\@firstoftwo - \else - \expandafter\@secondoftwo - \fi} -\newcommand*{\acs@ifdup@affil}{% - \advance\acs@tempcntb\@ne\relax - \ifnum\acs@tempcntb=\acs@tempcnta\relax\else - \edef\acs@tempb{% - \csname @address@\@roman\acs@tempcntb\endcsname}% - \ifx\acs@tempa\acs@tempb - \expandafter\acs@switchtrue - \fi - \ifacs@switch\else - \expandafter\acs@ifdup@affil + \ifnum\acs@affilcnt>\@ne\relax + \ifnum\acs@tempcnta=\acs@affilcnt\relax + and \fi - \fi} + \fi + \csname @address@\@roman\acs@tempcnta\endcsname + \ifnum\acs@tempcnta<\acs@affilcnt\relax + , + \expandafter\acs@addresslist@aux + \fi +} \newcommand*{\acs@affilfoot}{% - \acs@tempcnta\@ne\relax - \acs@tempcntb\@ne\relax - \acs@affil@foot + \let\acs@fnsymbol@org\@fnsymbol + \let\@fnsymbol\acs@fnsymbol \acs@tempcnta\z@\relax - \acs@altaffil@foot} + \acs@tempcntb\z@\relax + \ifnum\acs@affilcnt>\@ne\relax + \acs@affil@foot + \else + \ifnum\acs@altaffilcnt>\z@\relax + \footnotetext[\@ne]{\@affil@i}% + \acs@tempcnta\@ne\relax + \fi + \fi + \ifnum\acs@altaffilcnt>\z@\relax + \acs@altaffil@foot + \fi + \let\@fnsymbol\acs@fnsymbol@org} \newcommand*{\acs@affil@foot}{% \advance\acs@tempcnta\@ne\relax - \ifnum\acs@tempcnta>\acs@affilcnt\relax\else - \advance\acs@tempcntb\@ne\relax - \footnotetext[\acs@tempcntb] - {\csname @affil@\@roman\acs@tempcnta\endcsname}% - \acs@affil@foot + \footnotetext[\acs@tempcnta] + {\csname @affil@\@roman\acs@tempcnta\endcsname}% + \ifnum\acs@tempcnta<\acs@affilcnt\relax + \expandafter\acs@affil@foot \fi} \newcommand*{\acs@altaffil@foot}{% + \advance\acs@tempcntb\@ne\relax + \begingroup + \@ifundefined{@altaffil@\@roman\acs@tempcntb} + {} + {\aftergroup\acs@altaffil@foot@aux}% + \endgroup + \ifnum\acs@tempcntb<\acs@authorcnt\relax + \expandafter\acs@altaffil@foot + \fi +} +\newcommand*{\acs@altaffil@foot@aux}{% \advance\acs@tempcnta\@ne\relax - \ifnum\acs@tempcnta>\acs@authorcnt\relax\else - \begingroup - \@ifundefined{@altaffil@\@roman\acs@tempcnta} - {\aftergroup\@gobble} - {\aftergroup\@firstofone}% - \endgroup - {\advance\acs@tempcntb\@ne\relax - \footnotetext[\acs@tempcntb] - {\csname @altaffil@\@roman\acs@tempcnta\endcsname}}% - \acs@altaffil@foot - \fi} + \footnotetext[\acs@tempcnta] + {\csname @altaffil@\@roman\acs@tempcntb\endcsname}% +} \newcommand*{\acs@emaillist}{% \begingroup \renewcommand*{\UrlFont}{\sf}% @@ -329,7 +407,7 @@ \newfloat{chart}{htbp}{loc} \floatname{chart}{Chart} \newfloat{graph}{htbp}{loh} -\floatname{chart}{Graph} +\floatname{graph}{Graph} \newcommand*{\schemename}{Scheme} \newcommand*{\chartname}{Chart} \newcommand*{\graphname}{Graph} @@ -366,46 +444,11 @@ \fi}% \let\@evenhead\@oddhead} \pagestyle{achemso} -\let\acs@startsection\@startsection -\renewcommand*{\@startsection}[6]{% - \if@noskipsec \leavevmode \fi - \par - \@tempskipa #4\relax - \@afterindenttrue - \ifdim\@tempskipa<\z@\relax - \@tempskipa -\@tempskipa \@afterindentfalse - \fi - \if@nobreak - \everypar{}% - \else - \addpenalty\@secpenalty\addvspace\@tempskipa - \fi - \@ifstar - {\@ssect{#3}{#4}{#5}{#6}} - {\@ssect{#3}{#4}{#5}{#6}}} -\newcommand*{\acs@restsecnums}{% - \let\@startsection\acs@startsection} -\let\acs@subsection\subsection -\let\acs@section\section -\newcommand*{\acs@killsecs}{% - \newcommand*{\acs@gobblesection}{% - \ClassWarning{achemso} - {Sections not allowed for this manuscript type}% - \@ifstar{\@gobble}{\@gobble}} - \let\section\acs@gobblesection - \let\subsection\acs@gobblesection - \let\subsubsection\acs@gobblesection - \AtBeginDocument{ - \renewcommand*{\bibsection}{\acs@section*{\refname}}}} -\newcommand*{\acknowledgement}{% - \acs@subsection*{Acknowledgement}} -\newcommand*{\suppinfo}{% - \acs@subsection*{Supporting Information Available}} \renewcommand*{\refname}{% \ifnum\the\value{bibnote}>\z@\relax Notes and \fi References} -\RequirePackage{url} +\RequirePackage{achemso} \@ifundefined{acs@manuscript} {\newcommand*{\acs@manuscript}{article}}{} \edef\acs@tempa{note} |