summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/achemso/achemso.cls
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-04-22 17:09:30 +0000
committerKarl Berry <karl@freefriends.org>2009-04-22 17:09:30 +0000
commitda42a0204f57b55e973f5e1554170f84df8833e2 (patch)
tree5fe241e546b00c9903a383a822c3a148f3041d87 /Master/texmf-dist/tex/latex/achemso/achemso.cls
parent66c43c768dd459a054b014c5cb6652c87895d682 (diff)
achemso 3.2 (20apr09)
git-svn-id: svn://tug.org/texlive/trunk@12793 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/achemso/achemso.cls')
-rw-r--r--Master/texmf-dist/tex/latex/achemso/achemso.cls1133
1 files changed, 815 insertions, 318 deletions
diff --git a/Master/texmf-dist/tex/latex/achemso/achemso.cls b/Master/texmf-dist/tex/latex/achemso/achemso.cls
index 611d3d4672b..55240dd242c 100644
--- a/Master/texmf-dist/tex/latex/achemso/achemso.cls
+++ b/Master/texmf-dist/tex/latex/achemso/achemso.cls
@@ -5,404 +5,675 @@
%% The original source files were:
%%
%% achemso.dtx (with options: `class')
-%% ----------------------------------------------------------------
-%% achemso --- Support for submissions to American Chemical
-%% Society journals
-%% Maintained by Joseph Wright
-%% E-mail: joseph.wright@morningstar2.co.uk
-%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
-%% ----------------------------------------------------------------
+%% ----------------------------------------------------------------
+%% achemso --- Support for submissions to American Chemical Society
+%% journals
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
%%
\NeedsTeXFormat{LaTeX2e}
-\LoadClass[12pt]{article}
+
\ProvidesClass{achemso}
- [2009/02/03 v3.1a Submissions to ACS journals]
-\RequirePackage[etex=false]{notes2bib}[2008/06/21]
-\RequirePackage[margin=2.54cm]{geometry}
+ [2009/04/21 v3.2 Submission to ACS journals]
+\LoadClass[12pt,letter]{article}
+\newcommand*{\acs@warning}{\ClassWarning{achemso}}
+\newcommand*{\acs@ifundefined}[1]{%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname #1\endcsname\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+\RequirePackage{xkeyval}
+\define@boolkey{acs}[acs@]{biochem}[true]{}
+\define@boolkey{acs}[acs@]{super}[true]{}
+\define@boolkey{acs}[acs@]{usetitle}[true]{}
+\newcommand*{\acs@journal}{jacsat}
+\newcommand*{\acs@manuscript}{article}
+\newcommand*{\acs@maxauthors}{15}
+\define@cmdkey{acs}[acs@]{journal}{}
+\define@cmdkey{acs}[acs@]{manuscript}{}
+\define@cmdkey{acs}[acs@]{maxauthors}{}
+\define@key{acs}{biochemistry}{%
+ \setkeys{acs}{biochem = #1}%
+}
+\define@key{acs}{biblabel}{%
+ \acs@ifundefined{acs@biblabel@#1}{%
+ \acs@warning{%
+ Unknown value `#1' for\MessageBreak biblabel option%
+ }%
+ }{%
+ \@nameuse{acs@biblabel@#1}%
+ }%
+}
+\newcommand*{\acs@biblabel@brackets}{\def\@biblabel##1{(##1)}}
+\newcommand*{\acs@biblabel@fullstop}{\def\@biblabel##1{##1.}}
+\newcommand*{\acs@biblabel@period}{\def\@biblabel##1{##1.}}
+\newcommand*{\acs@biblabel@plain}{\def\@biblabel##1{##1}}
+\setkeys{acs}{
+ super = true
+}
+\ProcessOptionsX*<acs>
+\newcommand*{\acs@niib@create}{%
+ \@namedef{ver@notes2bib.sty}{%
+ 2009/04/20 v1.6a Integrating notes into the bibliography (achemso
+ version)
+ }%
+ \newcounter{bibnote}
+ \renewcommand*{\thebibnote}{%
+ Note-\the\value{bibnote}%
+ }%
+ \DeclareRobustCommand*{\bibnote}[1][\thebibnote]{%
+ \stepcounter{bibnote}%
+ \def\acs@niib@after@text{\cite{##1}}%
+ \acs@niib@text{##1}%
+ }%
+ \DeclareRobustCommand*{\bibnotemark}[1][\thebibnote]{%
+ \stepcounter{bibnote}%
+ \cite{##1}%
+ }%
+ \DeclareRobustCommand*{\bibnotetext}[1][\thebibnote]{%
+ \let\acs@niib@after@text\relax
+ \acs@niib@text{##1}%
+ }%
+ \newcommand*{\printbibnotes}{%
+ \ifnum\the\value{bibnote}>\z@\relax
+ \nocite{achemso-control}%
+ \acs@bibliography{acs-\jobname}%
+ \fi
+ }%
+}
+\newcommand*{\acs@niib@after@text}{}
+\newcommand*{\acs@niib@text}{%
+ \@bsphack
+ \acs@bib@write
+ \if@filesw
+ \expandafter\acs@niib@write
+ \else
+ \expandafter\acs@niib@no@write
+ \fi
+}
+\newcommand*{\acs@niib@write}[1]{%
+ \begingroup
+ \let\do\@makeother
+ \dospecials
+ \catcode`\{ 1\relax
+ \catcode`\} 2\relax
+ \acs@niib@write@aux@i{#1}%
+}
+\newcommand*{\acs@niib@write@aux@i}[1]{%
+ \long\def\@tempa##1{%
+ \def\@tempa{##1}%
+ \@onelevel@sanitize\@tempa
+ \expandafter\endgroup
+ \expandafter\def\expandafter\@tempa\expandafter{\@tempa}%
+ \acs@niib@write@aux@ii{#1}%
+ }%
+ \catcode`\^^M 10\relax
+ \@tempa
+}
+\newcommand*{\acs@niib@write@aux@ii}[1]{%
+ \immediate\write\acs@bib@file{%
+ @Misc\string{#1,^^J%
+ \space\space note = \string{\@tempa\string},^^J%
+ \string}^^J%
+ }%
+ \@esphack
+ \acs@niib@after@text
+}
+\newcommand{\acs@niib@no@write}[2]{%
+ \@esphack
+ \acs@niib@after@text
+}
+\ifacs@super
+ \RequirePackage[sort&compress,numbers,super]{natbib}
+\else
+ \RequirePackage[sort&compress,numbers,round]{natbib}
+ \def\citenumfont{\textit}
+\fi
+\RequirePackage{natmove}
+\renewcommand*{\nmv@natbib@detect}{%
+ \ifNAT@super
+ \expandafter\acs@nmv@activate
+ \else
+ \expandafter\acs@autonote
+ \fi
+}
+\newcommand*{\acs@nmv@activate}{%
+ \let\nmv@citex@nat\@citex
+ \let\@citex\nmv@citex
+ \let\nmv@cite\cite
+ \renewcommand*{\cite}[2][]{%
+ \nmv@ifmtarg{##1}{%
+ \nmv@citetrue
+ \nmv@cite{##2}%
+ }{%
+ \nocite{##2}%
+ \bibnote{Ref.~\citenum{##2}, ##1}%
+ }%
+ }%
+}
+\newcommand*{\acs@autonote}{%
+ \let\nmv@cite\cite
+ \renewcommand*{\cite}[2][]{%
+ \nmv@ifmtarg{##1}{%
+ \nmv@cite{##2}%
+ }{%
+ \nocite{##2}%
+ \bibnote{Ref.~\citenum{##2}, ##1}%
+ }%
+ }%
+}
+\newcommand*{\acs@bibstyle}{achemso}
+\bibliographystyle{achemso}
+\ifacs@biochem
+ \renewcommand*{\acs@bibstyle}{biochem}
+ \bibliographystyle{biochem}
+\fi
+\newcommand*{\acs@bibliographystyle}{}
+\let\acs@bibliographystyle\bibliographystyle
+\renewcommand*{\bibliographystyle}[1]{%
+ \acs@warning{\string\bibliographystyle\space ignored}%
+ \expandafter\acs@bibliographystyle\expandafter{\acs@bibstyle}%
+}
+\newwrite\acs@bib@file
+\newcommand*{\acs@bib@message}{%
+ This is an auxiliary file used by the `achemso' bundle.^^J%
+ This file may safely be deleted. It will be recreated as
+ required.^^J
+}
+\newcommand*{\acs@bib@name}{acs-\jobname.bib}
+\newif\ifacs@bib@written
+\newcommand*{\acs@bib@write}{%
+ \if@filesw
+ \ifacs@bib@written\else
+ \expandafter\expandafter\expandafter\acs@bib@write@aux
+ \fi
+ \fi
+}
+\newcommand*{\acs@bib@write@aux}{%
+ \immediate\openout\acs@bib@file\acs@bib@name\relax
+ \immediate\write\acs@bib@file{\acs@bib@message}%
+ \edef\@tempa##1##2{%
+ \space\space##1\space = \space"##2",^^J%
+ }%
+ \immediate\write\acs@bib@file{%
+ @Control\string{%
+ achemso-control,^^J%
+ \@tempa{ctrl-use-title}{%
+ \ifacs@usetitle yes\else no\fi
+ }%
+ \@tempa{ctrl-etal-number}{\acs@maxauthors}%
+ \string}^^J%
+ }%
+ \immediate\write\@auxout{%
+ \string\citation\string{achemso-control\string}%
+ }%
+ \global\acs@bib@writtentrue
+ \AtEndDocument{%
+ \immediate\closeout\acs@bib@file\relax
+ }%
+}
+\IfFileExists{mciteplus.sty}{%
+ \RequirePackage{mciteplus}
+}{}
+\AtBeginDocument{%
+ \let\acs@bibliography\bibliography
+ \renewcommand*{\bibliography}[1]{%
+ \acs@bib@write
+ \acs@bibliography{acs-\jobname,#1}%
+ }%
+}
+\setkeys{acs}{
+ biblabel = brackets,
+ biochem = false,
+ maxauthors = 15,
+ super = true,
+ usetitle = false
+}
+\acs@niib@create
\RequirePackage[T1]{fontenc}
+\RequirePackage[margin=2.54cm]{geometry}
\RequirePackage[scaled=0.90]{helvet}
-\RequirePackage{mathptmx,courier,setspace,graphicx,truncate,
- float,varioref,url,caption}
+\RequirePackage{
+ caption,
+ courier,
+ float,
+ graphicx,
+ mathptmx,
+ setspace,
+ url,
+ varioref
+}
\AtBeginDocument{\doublespacing}
\renewcommand*{\title}[2][]{%
\gdef\@title{#2}%
\gdef\acs@title{#2}%
- \gdef\@shorttitle{#1}}
+}
\@onlypreamble\title
-\newcount\acs@authorcnt
-\newcount\acs@affilcnt
-\newcount\acs@altaffilcnt
+\newcount\acs@author@cnt
+\newcount\acs@affil@cnt
+\newcount\acs@affil@alt@cnt
\renewcommand*{\author}[1]{%
- \global\advance\acs@authorcnt\@ne\relax
- \expandafter\gdef\csname @author@\@roman\the\acs@authorcnt\endcsname
- {#1}%
+ \global\advance\acs@author@cnt\@ne\relax
+ \expandafter\gdef\csname @author@\@roman\acs@author@cnt\endcsname{#1}%
\begingroup
- \advance\acs@affilcnt\@ne
- \expandafter\xdef\csname @author@affil@\@roman\the\acs@authorcnt
- \endcsname
- {\the\acs@affilcnt}%
+ \advance\acs@affil@cnt\@ne
+ \expandafter\xdef\csname @author@affil@\@roman
+ \acs@author@cnt\endcsname
+ {\the\acs@affil@cnt}%
\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}}
-\renewcommand*{\thanks}[1]{%
- \ClassError{achemso}{\string\thanks\space not supported}
- {The achemso class does not use \string\thanks
- \MessageBreak see the documentation for details}}
+ \acs@warning{%
+ \string\and\space not used by the achemso class: please see
+ the\MessageBreak package documentation for details%
+ }%
+}
+\renewcommand*{\thanks}{%
+ \acs@warning{%
+ \string\thanks\space not used by the achemso class: please see
+ the\MessageBreak the package documentation for details%
+ }%
+}
\newcommand*{\affiliation}[2][\relax]{%
- \ifnum\acs@authorcnt>\z@\relax
+ \ifnum\acs@author@cnt>\z@\relax
\acs@affil@ifdup{#2}{%
\acs@affil@swap{#2}%
}{%
- \global\advance\acs@affilcnt\@ne
- \expandafter\gdef\csname @address@\@roman\acs@affilcnt
- \endcsname{#2}%
+ \global\advance\acs@affil@cnt\@ne\relax
+ \expandafter\gdef\csname @address@\@roman\acs@affil@cnt\endcsname
+ {#2}%
\ifx\relax#1\relax
- \expandafter\gdef\csname @affil@\@roman\acs@affilcnt
- \endcsname{#2}%
+ \expandafter\gdef\csname @affil@\@roman\acs@affil@cnt\endcsname
+ {#2}%
\else
- \expandafter\gdef\csname @affil@\@roman\acs@affilcnt
- \endcsname{#1}%
+ \expandafter\gdef\csname @affil@\@roman\acs@affil@cnt\endcsname
+ {#1}%
\fi
}%
\else
- \ClassWarning{achemso}
- {Affiliation with no author}%
- \fi}
+ \acs@warning{Affiliation with no author}%
+ \fi
+}
\@onlypreamble\affiliation
\newcommand*{\acs@affil@ifdup}[1]{%
\begingroup
- \def\acs@tempa{#1}%
- \acs@switchfalse
- \acs@tempcnta\z@\relax
+ \def\@tempa{#1}%
+ \@tempswafalse
+ \@tempcnta\z@\relax
\acs@affil@ifdup@aux
- \ifacs@switch
+ \if@tempswa
\aftergroup\@firstoftwo
\else
\aftergroup\@secondoftwo
\fi
- \endgroup
+ \endgroup
}
\newcommand*{\acs@affil@ifdup@aux}{%
- \advance\acs@tempcnta\@ne\relax
- \expandafter\expandafter\expandafter\def\expandafter\expandafter
- \expandafter\acs@tempb\expandafter\expandafter\expandafter
- {\csname @address@\@roman\acs@tempcnta\endcsname}%
- \ifx\acs@tempa\acs@tempb
- \expandafter\acs@switchtrue
+ \advance\@tempcnta\@ne\relax
+ \edef\@tempb{%
+ \expandafter\noexpand\csname @address@\@roman\@tempcnta\endcsname
+ }%
+ \expandafter\def\expandafter\@tempb\expandafter{\@tempb}%
+ \ifx\@tempa\@tempb
+ \expandafter\@tempswatrue
\else
- \ifnum\acs@tempcnta<\acs@affilcnt\relax
+ \ifnum\@tempcnta<\acs@affil@cnt\relax
\expandafter\expandafter\expandafter\acs@affil@ifdup@aux
\fi
\fi
}
\newcommand*{\acs@affil@swap}[1]{%
\begingroup
- \def\acs@tempa{#1}%
- \acs@tempcnta\z@\relax
- \acs@tempcntb\z@\relax
+ \def\@tempa{#1}%
+ \@tempcnta\z@\relax
+ \@tempcntb\z@\relax
\acs@affil@ifdup@aux
- \advance\acs@affilcnt\@ne\relax
+ \advance\acs@affil@cnt\@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}%
+ \advance\@tempcntb\@ne\relax
+ \expandafter\ifnum\csname @author@affil@\@roman\@tempcntb\endcsname
+ = \acs@affil@cnt\relax
+ \expandafter\xdef\csname @author@affil@\@roman\@tempcntb\endcsname{%
+ \the\@tempcnta
+ }%
\fi
- \ifnum\acs@tempcntb<\acs@authorcnt\relax
+ \ifnum\@tempcntb<\acs@author@cnt\relax
\expandafter\acs@affil@swap@aux
\fi
}
\newcommand*{\alsoaffiliation}[2][\relax]{%
- \ifnum\acs@authorcnt>\z@\relax
+ \ifnum\acs@author@cnt>\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}%
+ \global\advance\acs@affil@cnt\@ne\relax
+ \@tempcnta\acs@affil@cnt\relax
+ \expandafter\gdef\csname @address@\@roman\acs@affil@cnt\endcsname
+ {#2}%
\ifx\relax#1\relax
- \expandafter\gdef\csname @affil@\@roman\acs@affilcnt
- \endcsname{#2}%
+ \expandafter\gdef\csname @affil@\@roman\acs@affil@cnt\endcsname
+ {#2}%
\else
- \expandafter\gdef\csname @affil@\@roman\acs@affilcnt
- \endcsname{#1}%
+ \expandafter\gdef\csname @affil@\@roman\acs@affil@cnt\endcsname
+ {#1}%
\fi
}%
- \@ifundefined{@author@alsoaffil@\@roman\acs@authorcnt}{%
- \expandafter\xdef\csname @author@alsoaffil@\@roman\acs@authorcnt
- \endcsname{\the\acs@tempcnta}%
+ \@ifundefined{@author@alsoaffil@\@roman\acs@author@cnt}{%
+ \expandafter\xdef\csname @author@alsoaffil@\@roman\acs@author@cnt
+ \endcsname{\the\@tempcnta}%
}{%
- \expandafter\xdef\csname @author@alsoaffil@\@roman\acs@authorcnt
- \endcsname{\csname @author@alsoaffil@\@roman\acs@authorcnt
- \endcsname,\the\acs@tempcnta}%
- }
+ \expandafter\xdef\csname @author@alsoaffil@\@roman\acs@author@cnt
+ \endcsname{%
+ \csname @author@alsoaffil@\@roman\acs@author@cnt\endcsname
+ ,\the\@tempcnta
+ }%
+ }%
\else
- \ClassWarning{achemso}
- {Affiliation with no author}%
- \fi}
+ \acs@warning{Affiliation with no author}%
+ \fi
+}
\newcommand*{\acs@alsoaffil@find}[1]{%
\begingroup
- \def\acs@tempa{#1}%
- \acs@tempcnta\z@\relax
- \acs@tempcntb\z@\relax
+ \def\@tempa{#1}%
+ \@tempcnta\z@\relax
+ \@tempcntb\z@\relax
\acs@affil@ifdup@aux
\expandafter\endgroup
- \expandafter\acs@tempcnta\the\acs@tempcnta\relax
+ \expandafter\@tempcnta\the\@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}%
+ \ifnum\acs@author@cnt>\z@\relax
+ \global\advance\acs@affil@alt@cnt\@ne\relax
+ \expandafter\gdef\csname @altaffil@\@roman\acs@author@cnt\endcsname
+ {#1}%
+ \expandafter\xdef\csname @author@altaffil@\@roman\acs@author@cnt
+ \endcsname{\the\acs@affil@alt@cnt}%
\else
- \ClassWarning{achemso}
- {Affiliation with no author}%
- \fi}
+ \acs@warning{Affiliation with no author}%
+ \fi
+}
\@onlypreamble\altaffiliation
\newcommand*{\email}[1]{%
- \ifnum\acs@authorcnt>\z@\relax
- \expandafter\gdef\csname @email@\@roman\acs@authorcnt
- \endcsname{#1}%
+ \ifnum\acs@author@cnt>\z@\relax
+ \expandafter\gdef\csname @email@\@roman\acs@author@cnt\endcsname
+ {#1}%
\else
- \ClassWarning{achemso}
- {E-mail with no author}%
- \fi}
+ \acs@warning{E-mail with no author}%
+ \fi
+}
\@onlypreamble\email
\renewcommand*{\@maketitle}{%
- \ifnum\acs@authorcnt<\z@\relax
- \ClassError{achemso}{No authors defined}
- {At least one author is required}%
+ \ifnum\acs@author@cnt<\z@\relax
+ \acs@warning{No authors defined: At least one author is required}%
\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 2em\relax
+ \begin{center}
+ {%
+ \LARGE\bfseries\sffamily
+ \def\@tempa{suppinfo}%
+ \ifx\acs@manuscript\@tempa
+ Supporting information for:
+ \fi
+ \@title
+ \par
+ }%
\vskip 1.5em\relax
- {\large\sffamily\frenchspacing \acs@authorlist}%
- \vskip 1em%
- {\itshape\acs@addresslist}%
+ {%
+ \large\sffamily\frenchspacing\acs@author@list
+ }%
+ \vskip 1em\relax
+ {%
+ \itshape\acs@address@list
+ }%
\vskip 1em\relax
- {\sffamily E-mail: \acs@emaillist}%
+ {%
+ \sffamily E-mail: \acs@email@list
+ }%
\end{center}
\par
- \vskip 1.5em\relax}
+ \vskip 1.5em\relax
+}
\renewcommand*{\@thanks}{%
- \ifnum\acs@affilcnt>\@ne\relax
- \acs@affilfoot
+ \ifnum\acs@affil@cnt>\@ne\relax
+ \expandafter\acs@affil@list
\else
- \ifnum\acs@altaffilcnt>\z@\relax
- \acs@affilfoot
- \fi
- \fi}
-\newcommand*{\acs@authorlist}{%
- \acs@tempcnta\z@\relax
- \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
- \def\acs@tempa{}%
- \ifnum\acs@authorcnt=\@ne\relax\else
- \ifnum\acs@tempcnta=\acs@authorcnt\relax
- \space and%
+ \ifnum\acs@affil@alt@cnt>\z@\relax
+ \expandafter\expandafter\expandafter\acs@affil@list
\fi
\fi
+}
+\newcommand*{\acs@author@list}{%
+ \@tempcnta\z@\relax
+ \@tempcntb\acs@affil@cnt\relax
+ \ifnum\acs@author@cnt=\z@\relax\else
+ \expandafter\acs@author@list@main
+ \fi
+}
+\newcommand*{\acs@author@footnotes}{}
+\newcommand*{\acs@author@list@main}{%
+ \advance\@tempcnta\@ne\relax
+ \def\acs@author@footnotes{}%
+ \acs@author@list@and
\space
- \csname @author@\@roman\acs@tempcnta\endcsname
- \ifnum\acs@tempcnta<\acs@authorcnt
- ,%
+ \@nameuse{@author@\@roman\@tempcnta}%
+ \acs@author@list@comma
+ \acs@author@star
+ \acs@author@affil
+ \acs@author@affil@also
+ \acs@author@affil@alt
+ \ifx\@empty\acs@author@footnotes\else
+ \textsuperscript{\acs@author@footnotes}%
\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
+ \ifnum\@tempcnta<\acs@author@cnt\relax
+ \expandafter\acs@author@list@main
\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}%
+}
+\newcommand*{\acs@author@list@and}{%
+ \ifnum\acs@author@cnt=\@ne\relax\else
+ \ifnum\@tempcnta=\acs@author@cnt\relax
+ \space and%
+ \fi
\fi
- \ifnum\acs@tempcnta<\acs@authorcnt
- \expandafter\acs@authorlist@aux
+}
+\newcommand*{\acs@author@list@comma}{%
+ \ifnum\@tempcnta<\acs@author@cnt\relax
+ ,%
\fi
}
-\newcommand*{\acs@authorlist@email}{%
- \protected@edef\acs@tempa{%
- \acs@fnsymbol{\z@}%
- \ifnum\acs@affilcnt>\@ne\relax
+\newcommand*{\acs@author@star}{%
+ \acs@ifundefined{@email@\@roman\@tempcnta}{}{%
+ \acs@author@star@aux
+ }%
+}
+\newcommand*{\acs@author@star@aux}{%
+ \protected@edef\acs@author@footnotes{%
+ \acs@author@fnsymbol{\z@}%
+ \ifnum\acs@affil@cnt>\@ne\relax
,%
\else
- \ifnum\acs@altaffilcnt>\z@\relax
+ \ifnum\acs@affil@alt@cnt>\z@\relax
,%
\fi
\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
+\newcommand*{\acs@author@affil}{%
+ \acs@ifundefined{%
+ @affil@\@roman\csname @author@affil@\@roman\@tempcnta\endcsname
+ }{%
+ \acs@warning{%
+ No affiliation given for author\MessageBreak
+ \@nameuse{@author@\@roman\@tempcnta}%
+ }%
+ }{%
+ \acs@author@affil@aux
+ }%
+}
+\newcommand*{\acs@author@affil@aux}{%
+ \ifnum\acs@affil@cnt>\@ne\relax
+ \protected@edef\acs@author@footnotes{%
+ \acs@author@footnotes
+ \acs@author@fnsymbol{%
+ \@nameuse{@author@affil@\@roman\@tempcnta}%
+ }%
+ }%
+ \else
+ \ifnum\acs@affil@alt@cnt>\z@\relax
+ \protected@edef\acs@author@fnsymbol{%
+ \acs@author@footnotes
+ \acs@author@fnsymbol{\@ne}%
+ }%
+ \fi
+ \fi
+}
+\newcommand*{\acs@author@affil@also}{%
+ \acs@ifundefined{@author@alsoaffil@\@roman\@tempcnta}{}{%
+ \acs@author@affil@also@aux
+ }%
+}
+\newcommand*{\acs@author@affil@also@aux}{%
+ \expandafter\@for\expandafter\@tempa\expandafter:\expandafter
+ =\csname @author@alsoaffil@\@roman\@tempcnta\endcsname\do{%
+ \protected@edef\acs@author@footnotes{%
+ \acs@author@footnotes
,%
- \acs@fnsymbol{\acs@tempb}%
+ \acs@author@fnsymbol{\@tempa}%
}%
}%
}
-\newcommand*{\acs@authorlist@alt}{%
- \advance\acs@tempcntb\@ne\relax
- \protected@edef\acs@tempa{%
- \acs@tempa
+\newcommand*{\acs@author@affil@alt}{%
+ \acs@ifundefined{@author@altaffil@\@roman\@tempcnta}{}{%
+ \acs@author@affil@alt@aux
+ }%
+}
+\newcommand*{\acs@author@affil@alt@aux}{%
+ \advance\@tempcntb\@ne\relax
+ \protected@edef\acs@author@footnotes{%
+ \acs@author@footnotes
,%
- \acs@fnsymbol{\acs@tempcntb}%
- }%
-}
-\newcommand*{\acs@fnsymbol}[1]{%
- \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>\z@\relax
- \acs@tempcnta\z@\relax
- \acs@addresslist@aux
+ \acs@author@fnsymbol{\@tempcntb}%
+ }%
+}
+\newcommand*{\acs@author@fnsymbol}[1]{%
+ \ensuremath{%
+ \ifcase #1 *\or
+ \dagger\or
+ \ddagger\or
+ \P\or
+ \S\or
+ \|\or
+ \bot\or
+ \#\or
+ @\or
+ \triangle\or
+ \nabla\else
+ #1%
+ \fi
+ }%
+}
+\newcommand*{\acs@address@list}{%
+ \@tempcnta\z@\relax
+ \ifnum\acs@affil@cnt>\z@\relax
+ \acs@address@list@aux
\else
- \ClassError{achemso}{No affiliations}
- {At least one affiliation is needed}%
- \fi}
-\newcommand*{\acs@addresslist@aux}{%
- \advance\acs@tempcnta\@ne\relax
- \ifnum\acs@affilcnt>\@ne\relax
- \ifnum\acs@tempcnta=\acs@affilcnt\relax
+ \acs@warning{%
+ No affiliations: at least one affiliation is needed%
+ }%
+ \fi
+}
+\newcommand*{\acs@address@list@aux}{%
+ \advance\@tempcnta\@ne\relax
+ \ifnum\acs@affil@cnt>\@ne\relax
+ \ifnum\@tempcnta=\acs@affil@cnt\relax
and
\fi
\fi
- \csname @address@\@roman\acs@tempcnta\endcsname
- \ifnum\acs@tempcnta<\acs@affilcnt\relax
+ \@nameuse{@address@\@roman\@tempcnta}%
+ \ifnum\@tempcnta<\acs@affil@cnt\relax
,
- \expandafter\acs@addresslist@aux
+ \expandafter\acs@address@list@aux
\fi
}
-\newcommand*{\acs@affilfoot}{%
+\newcommand*{\acs@fnsymbol@org}{}
+\newcommand*{\acs@affil@list}{%
\let\acs@fnsymbol@org\@fnsymbol
- \let\@fnsymbol\acs@fnsymbol
- \acs@tempcnta\z@\relax
- \acs@tempcntb\z@\relax
- \ifnum\acs@affilcnt>\@ne\relax
- \acs@affil@foot
+ \let\@fnsymbol\acs@author@fnsymbol
+ \@tempcnta\z@\relax
+ \@tempcntb\z@\relax
+ \ifnum\acs@affil@cnt>\@ne\relax
+ \expandafter\acs@affil@list@aux
\else
- \ifnum\acs@altaffilcnt>\z@\relax
+ \ifnum\acs@affil@alt@cnt>\z@\relax
\footnotetext[\@ne]{\@affil@i}%
- \acs@tempcnta\@ne\relax
+ \@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
- \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
+ \ifnum\acs@affil@alt@cnt>\z@\relax
+ \expandafter\acs@affil@alt@list
+ \fi
+ \let\@fnsymbol\acs@fnsymbol@org
+}
+\newcommand*{\acs@affil@list@aux}{%
+ \advance\@tempcnta\@ne\relax
+ \footnotetext[\@tempcnta]{\@nameuse{@affil@\@roman\@tempcnta}}%
+ \ifnum\@tempcnta<\acs@affil@cnt\relax
+ \expandafter\acs@affil@list@aux
+ \fi
+}
+\newcommand*{\acs@affil@alt@list}{%
+ \advance\@tempcntb\@ne\relax
+ \acs@ifundefined{@altaffil@\@roman\@tempcntb}{}{%
+ \acs@altaffil@foot@aux
+ }
+ \ifnum\@tempcntb<\acs@author@cnt\relax
+ \expandafter\acs@affil@alt@list
\fi
}
\newcommand*{\acs@altaffil@foot@aux}{%
- \advance\acs@tempcnta\@ne\relax
- \footnotetext[\acs@tempcnta]
- {\csname @altaffil@\@roman\acs@tempcntb\endcsname}%
+ \advance\@tempcnta\@ne\relax
+ \footnotetext[\@tempcnta]{\@nameuse{@altaffil@\@roman\@tempcntb}}%
}
-\newcommand*{\acs@emaillist}{%
- \begingroup
- \renewcommand*{\UrlFont}{\sf}%
- \acs@tempcnta\z@\relax
- \acs@tempcntb\z@\relax
- \acs@email@list
- \expandafter\endgroup\expandafter\acs@tempcntb\number
- \acs@tempcntb\relax
- \ifnum\acs@tempcntb=\z@\relax
- \ClassError{achemso}{No e-mail given}
- {At lest one author must have a contact e-mail}%
- \fi}
\newcommand*{\acs@email@list}{%
- \advance\acs@tempcnta\@ne\relax
- \ifnum\acs@tempcnta>\acs@authorcnt\relax\else
- \begingroup
- \@ifundefined{@email@\@roman\acs@tempcnta}
- {\aftergroup\@gobble}
- {\aftergroup\@firstofone}%
- \endgroup
- {\advance\acs@tempcntb\@ne\relax
- \ifnum\acs@tempcntb>\@ne\relax
- ;
- \fi
- \expandafter\expandafter\expandafter\url\expandafter
- \expandafter\expandafter{%
- \csname @email@\@roman\acs@tempcnta\endcsname}}%
- \acs@email@list
- \fi}
+ \begingroup
+ \def\UrlFont{\sf}%
+ \@tempcnta\z@\relax
+ \@tempcntb\z@\relax
+ \acs@email@list@aux
+ \ifnum\@tempcntb=\z@\relax
+ \acs@warning{%
+ No e-mail given:\MessageBreak
+ at lest one author must have a contact e-mail%
+ }%
+ \fi
+ \endgroup
+}
+\newcommand*{\acs@email@list@aux}{%
+ \advance\@tempcnta\@ne\relax
+ \ifnum\@tempcnta>\acs@author@cnt\relax\else
+ \acs@ifundefined{@email@\@roman\@tempcnta}{}{%
+ \advance\@tempcntb\@ne\relax
+ \ifnum\@tempcntb>\@ne\relax
+ ;
+ \fi
+ \expandafter\expandafter\expandafter\url\expandafter
+ \expandafter\expandafter{%
+ \csname @email@\@roman\@tempcnta\endcsname
+ }%
+ }%
+ \expandafter\acs@email@list@aux
+ \fi
+}
\g@addto@macro{\document}{\maketitle}
\newfloat{scheme}{htbp}{los}
\floatname{scheme}{Scheme}
@@ -418,57 +689,283 @@
\floatstyle{plaintop}
\restylefloat{table}
\let\acs@floatboxreset\@floatboxreset
-\renewcommand*{\@floatboxreset}{\centering\acs@floatboxreset}
+\renewcommand*{\@floatboxreset}{%
+ \centering
+ \acs@floatboxreset
+}
\labelformat{scheme}{\schemename~#1}
\labelformat{chart}{\chartname~#1}
\labelformat{graph}{\graphname~#1}
\labelformat{figure}{\figurename~#1}
\labelformat{table}{\tablename~#1}
-\newcommand*{\ps@achemso}{%
- \renewcommand*{\@oddfoot}{\reset@font\hfil\thepage\hfil}%
- \let\@evenfoot\@oddfoot
- \renewcommand*{\@oddhead}{%
- \reset@font
- \@author@i
- \ifnum\acs@authorcnt>\@ne\relax
- \space et al.%
- \fi
- \hfil\relax
- \ifx\@empty\@shorttitle\@empty
- \setbox\z@\hbox{\acs@title}%
- \ifdim\wd\z@>0.45\textwidth\relax
- \truncate{0.45\textwidth}{\acs@title}%
- \else
- \acs@title
+\newcommand*{\acs@section}{}
+\let\acs@section\section
+\newcommand*{\acs@subsection}{}
+\let\acs@subsection\subsection
+\newcommand*{\acs@subsubsection}{}
+\let\acs@subsubsection\subsubsection
+\newcommand*{\acs@startsection}{}
+\let\acs@startsection\@startsection
+\newcommand*{\acs@startsection@alt}[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@sections@none}{%
+ \@ifstar{%
+ \acs@sections@none@aux
+ }{%
+ \acs@sections@none@aux
+ }%
+}
+\newcommand*{\acs@sections@none@aux}[2][]{%
+ \acs@warning{%
+ (Sub)section `#2' ignored%
+ }%
+}
+\newcommand*{\SectionNumbersOff}{%
+ \let\@startsection\acs@startsection@alt
+}
+\@onlypreamble\SectionNumbersOff
+\newcommand*{\SectionNumbersOn}{%
+ \let\@startsection\acs@startsection
+}
+\@onlypreamble\SectionNumbersOn
+\newcommand*{\SectionsOff}{%
+ \let\section\acs@sections@none
+ \let\subsection\acs@sections@none
+ \let\subsubsection\acs@sections@none
+}
+\@onlypreamble\SectionsOff
+\newcommand*{\SectionsOn}{%
+ \let\section\acs@section
+ \let\subsection\acs@subsection
+ \let\subsubsection\acs@subsubsection
+}
+\@onlypreamble\SectionsOn
+\newenvironment{acknowledgement}{%
+ \acs@subsection*{\acknowledgementname}%
+}{}
+\newenvironment{suppinfo}{%
+ \acs@subsection*{\suppinfoname}%
+}{}
+\newcommand*{\acknowledgementname}{Acknowledgement}
+\renewcommand*{\bibsection}{%
+ \acs@subsection*{\refname}%
+}
+\newcommand*{\suppinfoname}{Supporting Information Available}
+\newcommand*{\acs@abstract}{}
+\let\acs@abstract\abstract
+\newcommand*{\acs@endabstract}{}
+\let\acs@endabstract\endabstract
+\begingroup
+ \catcode`{ \active
+ \catcode`} 12\relax
+ \catcode`( 1\relax
+ \catcode`) 2\relax
+ \gdef\acs@abstract@start(%
+ \acs@warning(%
+ Abstract not allowed for this\MessageBreak
+ manuscript type
+ )%
+ \@bsphack
+ \catcode`{ \active
+ \catcode`} 12\relax
+ \let\end\fi
+ \let{\acs@abstract@end% }
+ \iffalse
+ )%{
+ \gdef\acs@abstract@end#1}(%
+ \def\@tempa(#1)%
+ \ifx\@tempa\@currenvir
+ \@Esphack\endgroup
+ \if@ignore
+ \global\@ignorefalse
+ \ignorespaces
\fi
\else
- \@shorttitle
- \fi}%
- \let\@evenhead\@oddhead}
-\pagestyle{achemso}
+ \expandafter\acs@abstract@iffalse
+ \fi
+ )
+\endgroup
+\newcommand*{\acs@iffalse}{\iffalse}
+\newcommand*{\AbstractOff}{%
+ \let\abstract\acs@abstract@start
+ \let\endabstract\acs@abstract@end
+}
+\@onlypreamble\AbstractOff
+\newcommand*{\AbstractOn}{%
+ \let\abstract\acs@abstract
+ \let\endabstract\acs@endabstract
+}
+\@onlypreamble\AbstractOn
+\newtoks\acs@toc@toks
+\newtoks\acs@toc@empty@toks
+\newcommand*{\acs@toc@begins}{}
+\newcommand*{\acs@toc@content}{}
+\newcommand{\acs@toc@collect}[1]{%
+ \acs@toc@toks{%
+ \expandafter#1\expandafter{\the\acs@toc@toks}%
+ }%
+ \edef\acs@toc@content{%
+ \the\acs@toc@toks
+ \noexpand\end{\@currenvir}%
+ }%
+ \acs@toc@toks\acs@toc@empty@toks
+ \def\acs@toc@begins{b}%
+ \begingroup
+ \expandafter\let\csname\@currenvir\endcsname\acs@toc@collect@aux
+ \edef\acs@toc@content{%
+ \expandafter\noexpand\csname\@currenvir\endcsname
+ }%
+ \acs@toc@content
+}
+\newcommand*{\acs@toc@collect@aux}{}
+\long\def\acs@toc@collect@aux#1\end#2{%
+ \edef\acs@toc@begins{%
+ \acs@toc@collect@begins#1\begin\end
+ \expandafter\@gobble\acs@toc@begins
+ }%
+ \ifx\@empty\acs@toc@begins
+ \endgroup
+ \@checkend{#2}%
+ \acs@toc@collect@body{#1}%
+ \else
+ \acs@toc@collect@body{#1\end{#2}}%
+ \fi
+ \acs@toc@content
+}
+\newcommand*{\acs@toc@collect@begins}{}
+\long\def\acs@toc@collect@begins#1\begin#2{%
+ \ifx\end#2\else
+ b\expandafter\acs@toc@collect@begins
+ \fi
+}
+\newcommand{\acs@toc@collect@body}[1]{%
+ \global\acs@toc@toks\expandafter{\the\acs@toc@toks#1}%
+}
+\newcommand{\acs@toc@print}[1]{%
+ \begin{center}
+ \fbox{%
+ \begin{minipage}{9cm}
+ \vbox to 3.5cm{#1}%
+ \end{minipage}%
+ }%
+ \end{center}%
+}
+\newenvironment{tocentry}{%
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse\newpage
+ \fi
+ \acs@section*{\tocentryname}%
+ \tocsize
+ \sffamily
+ \singlespacing
+ \acs@toc@collect\acs@toc@print
+}{%
+ \if@restonecol
+ \twocolumn
+ \else
+ \newpage
+ \fi
+}
+\newcommand*{\tocentryname}{Graphical TOC Entry}
+\newcommand*{\tocsize}{%
+ \@setfontsize\tocsize\@viiipt\@ixpt
+}
+\newcommand*{\acs@type@list}{article,communication,suppinfo}
+\newcommand*{\acs@type@default}{article}
+\newcommand*{\acs@type@check}{%
+ \@tempswafalse
+ \@for\@tempa:=\acs@type@list\do{%
+ \ifx\@tempa\acs@manuscript
+ \expandafter\@tempswatrue
+ \fi
+ }%
+ \if@tempswa\else
+ \acs@warning{%
+ Invalid manuscript type \acs@manuscript:\MessageBreak
+ changed to default type \acs@type@default
+ }%
+ \let\acs@manuscript\acs@type@default
+ \fi
+}
\renewcommand*{\refname}{%
\ifnum\the\value{bibnote}>\z@\relax
Notes and
- \fi References}
-\RequirePackage{achemso}
-\@ifundefined{acs@manuscript}
- {\newcommand*{\acs@manuscript}{article}}{}
-\edef\acs@tempa{note}
-\ifx\acs@manuscript\acs@tempa
- \acs@killsecs
-\fi
-\edef\acs@tempa{review}
-\ifx\acs@manuscript\acs@tempa
- \acs@restsecnums
+ \fi
+ References%
+}
+\InputIfFileExists{\acs@journal.cfg}{}{%
+ \acs@warning{%
+ Unknown journal `\acs@journal':\MessageBreak
+ using default configuration JACSAT%
+ }%
+ \input{jacsat.cfg}%
+}
+\acs@type@check
+\def\@tempa{note}
+\ifx\acs@manuscript\@tempa
+ \SectionsOff
\fi
-\edef\acs@tempa{suppinfo}
-\ifx\acs@manuscript\acs@tempa
- \acs@restsecnums
- \acs@setkeys{maxauthors=0}
+\def\@tempa{review}
+\ifx\acs@manuscript\@tempa
+ \SectionsOn
+ \SectionNumbersOn
\fi
-\if@filesw
- \acs@writebib
+\def\@tempa{suppinfo}
+\ifx\acs@manuscript\@tempa
+ \setkeys{acs}{maxauthors = 0}
+ \renewcommand*{\thepage}{S\arabic{page}}
\fi
-\endinput
+%%
+%% Originally developed by Mats Dahlgren
+%% Copyright (C) 1996-1998 by Mats Dahlgren
+%% Copyright (C) 2008-2009 by
+%% Joseph Wright <joseph.wright@morningstar2.co.uk>
+%%
+%% Part of this bundle is derived from cite.sty, to which the
+%% following license applies:
+%% Copyright (C) 1989-2003 by Donald Arseneau
+%% These macros may be freely transmitted, reproduced, or
+%% modified provided that this notice is left intact.
+%%
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version. The latest
+%% version of this license is in the file:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% This work is "maintained" (as per LPPL maintenance status) by
+%% Joseph Wright.
+%%
+%% This work consists of the file achemso.dtx
+%% and the derived files achemso.pdf,
+%% achemso.bib,
+%% achemso.cls,
+%% achemso.ins,
+%% achemso.sty,
+%% achemso-demo.tex,
+%% natmove.sty and
+%% a number of configuration files.
+%%
%%
%% End of file `achemso.cls'.