From da42a0204f57b55e973f5e1554170f84df8833e2 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 22 Apr 2009 17:09:30 +0000 Subject: achemso 3.2 (20apr09) git-svn-id: svn://tug.org/texlive/trunk@12793 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/achemso/achemso.cls | 1133 ++++++++++++++++------- 1 file changed, 815 insertions(+), 318 deletions(-) (limited to 'Master/texmf-dist/tex/latex/achemso/achemso.cls') 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* +\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 +%% +%% 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'. -- cgit v1.2.3