%% %% This is file `achemso.cls', %% generated with the docstrip utility. %% %% 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 %% ---------------------------------------------------------------- %% \NeedsTeXFormat{LaTeX2e} \LoadClass[12pt]{article} \ProvidesClass{achemso} [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{mathptmx,courier,setspace,graphicx,truncate, float,varioref,url,caption} \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 \renewcommand*{\author}[1]{% \global\advance\acs@authorcnt\@ne\relax \expandafter\gdef\csname @author@\@roman\the\acs@authorcnt\endcsname {#1}% \begingroup \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}} \renewcommand*{\thanks}[1]{% \ClassError{achemso}{\string\thanks\space not supported} {The achemso class does not use \string\thanks \MessageBreak see the documentation for details}} \newcommand*{\affiliation}[2][\relax]{% \ifnum\acs@authorcnt>\z@\relax \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@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 \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 \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}% \else \ClassWarning{achemso} {Affiliation with no author}% \fi} \@onlypreamble\altaffiliation \newcommand*{\email}[1]{% \ifnum\acs@authorcnt>\z@\relax \expandafter\gdef\csname @email@\@roman\acs@authorcnt \endcsname{#1}% \else \ClassWarning{achemso} {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}% \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@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% \fi \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 \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>\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 ,% \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 \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 \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 and \fi \fi \csname @address@\@roman\acs@tempcnta\endcsname \ifnum\acs@tempcnta<\acs@affilcnt\relax , \expandafter\acs@addresslist@aux \fi } \newcommand*{\acs@affilfoot}{% \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 \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 \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 \footnotetext[\acs@tempcnta] {\csname @altaffil@\@roman\acs@tempcntb\endcsname}% } \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} \g@addto@macro{\document}{\maketitle} \newfloat{scheme}{htbp}{los} \floatname{scheme}{Scheme} \newfloat{chart}{htbp}{loc} \floatname{chart}{Chart} \newfloat{graph}{htbp}{loh} \floatname{graph}{Graph} \newcommand*{\schemename}{Scheme} \newcommand*{\chartname}{Chart} \newcommand*{\graphname}{Graph} \floatplacement{table}{htbp} \floatplacement{figure}{htbp} \floatstyle{plaintop} \restylefloat{table} \let\acs@floatboxreset\@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 \fi \else \@shorttitle \fi}% \let\@evenhead\@oddhead} \pagestyle{achemso} \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 \edef\acs@tempa{suppinfo} \ifx\acs@manuscript\acs@tempa \acs@restsecnums \acs@setkeys{maxauthors=0} \fi \if@filesw \acs@writebib \fi \endinput %% %% End of file `achemso.cls'.