summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/achemso
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-09-03 18:05:01 +0000
committerKarl Berry <karl@freefriends.org>2009-09-03 18:05:01 +0000
commit51be8b5f44ee96b3e1ef17df00d6054ed0ea6589 (patch)
treee56b772c89e1e2df3f4f3dd1e7a9b9597231a68f /Master/texmf-dist/source/latex/achemso
parentfb72bda0c82db35efdc4d25f2864a127463bd880 (diff)
achemso 3.3a (1sep09)
git-svn-id: svn://tug.org/texlive/trunk@15028 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/achemso')
-rw-r--r--Master/texmf-dist/source/latex/achemso/achemso.dtx727
1 files changed, 501 insertions, 226 deletions
diff --git a/Master/texmf-dist/source/latex/achemso/achemso.dtx b/Master/texmf-dist/source/latex/achemso/achemso.dtx
index e5655cabaf1..8e34eac1757 100644
--- a/Master/texmf-dist/source/latex/achemso/achemso.dtx
+++ b/Master/texmf-dist/source/latex/achemso/achemso.dtx
@@ -171,8 +171,6 @@ This work consists of the file achemso.dtx
%</driver>
% \fi
%
-%\CheckSum{2651}
-%
%\GetFileInfo{\jobname.sty}
%
%\makeatletter
@@ -285,10 +283,10 @@ This work consists of the file achemso.dtx
%}{^^A
%}
%
-%\providecommand*{\eTeX}{\ensuremath{\varepsilon}-\TeX}
-%\providecommand*{\file}{\texttt}
-%\providecommand*{\opt}{\texttt}
-%\providecommand*{\pkg}{\textsf}
+%\providecommand*\eTeX{\ensuremath{\varepsilon}-\TeX}
+%\providecommand*\file{\texttt}
+%\providecommand*\opt{\texttt}
+%\providecommand*\pkg{\textsf}
%
%\newcommand*\ACS{\textsc{acs}}
%
@@ -467,6 +465,16 @@ This work consists of the file achemso.dtx
% whether sections and an abstract are valid. The value
% \opt{suppinfo} is also available for supporting information.
%
+%\DescribeOption{layout}
+%\changes{v3.3}{2009/08/28}{New \texttt{layout} option}
+% The \pkg{achemso} class can produce drafts in two layout styles. The
+% standard setting for the \opt{layout} option is \opt{traditional},
+% which produces a double-spaced single column manuscript. The
+% alternative setting \opt{twocolumn} will use single spacing and
+% print the text in two columns. The second option is obviously more
+% compact. If the journal requires a particular style this option may
+% be ignored.
+%
%\DescribeOption{email}
%\changes{v3.2b}{2009/05/05}{New \texttt{email} option}
%\changes{v3.2c}{2009/05/28}{Fix so that \texttt{email} option is turned
@@ -487,6 +495,8 @@ This work consists of the file achemso.dtx
%\DescribeMacro{\alsoaffiliation}
%\changes{v3.1}{2008/11/08}{Added \cs{alsoaffiliation} macro}
%\DescribeMacro{\altaffiliation}
+%\changes{v3.3}{2008/08/28}{\cs{altaffiliation} macro checks for
+% duplicate entries and uses only one footnote}
%\DescribeMacro{\email}
% Inspired by REV\TeX, the \pkg{achemso} class alters the method for
% adding author information to the manuscript. Each author should be
@@ -518,6 +528,17 @@ This work consists of the file achemso.dtx
% {Research Department, SponsorCo, BigCity, USA}
% \alsoaffiliation{University of Somewhere, Sometown, USA}
%\end{LaTeXdemo}
+% Repeated entries for \cs{affiliation} and \cs{alsoaffiliation} will
+% result in only one address being printed in the address list and
+% footnotes. Repeated \cs{altaffiliation} entries only produce a single
+% footnote, and can therefore be used for entries such as
+%\begin{LaTeXdemo}[code only]
+% \author{First Coworker}
+% \altaffiliation{Contributed equally to this work}
+% \author{Second Coworker}
+% \altaffiliation{Contributed equally to this work}
+%\end{LaTeXdemo}
+% if required.
%
%\DescribeMacro{\fax}
%\changes{v3.2c}{2009/05/29}{Added \cs{fax} macro}
@@ -593,7 +614,6 @@ This work consists of the file achemso.dtx
% and of. This is functionality is available to the user \emph{via} the
% \cs{SectionsOn} and \cs{SectionsOff} macros, which again are
% preamble-only.
-%
%\DescribeMacro{\AbstractOff}
%\DescribeMacro{\AbstractOn}
%\changes{v3.2}{2009/04/20}{
@@ -653,17 +673,36 @@ This work consists of the file achemso.dtx
% reference markers. The option switches this behaviour
% on and off (and takes Boolean values: \opt{super=true} and
% \opt{super=false} are valid).
+%
+%\DescribeOption{usetitle}
+% The \opt{usetitle} option is a Boolean, and sets whether the title
+% of a paper referenced appears in the bibliography. The default is
+% \opt{usetitle=false} for the \file{achemso} style and
+% \opt{usetitle=true} for the \file{biochem} style.
%
+%\DescribeOption{etalmode}
+%\changes{v3.3a}{2009/09/1}{New \texttt{etalmode} option}
%\DescribeOption{maxauthors}
-%\DescribeOption{usetitle}
-% The \opt{maxauthors} and \opt{usetitle} options change the output
-% of the \BibTeX\ style files. \opt{maxauthors} is the number of
-% authors allowed before truncation to ``et~al.'' occurs. The
-% default is 15, but can be increased (for example for supplementary
-% information). Using the value $0$ means that all authors will be
-% added to the list. The \opt{usetitle} option is a Boolean, and
-% sets whether the title of a paper referenced appears in the
-% bibliography. The default is \opt{usetitle=false}.
+% Many journals require that long lists of authors are shortened using
+% `et al.' in the references section. The behaviour of the \BibTeX\
+% styles in this regard is controlled by two options, \opt{etalmode}
+% and \opt{maxauthors}. There are two possible ways to shorten a long
+% list of authors. Some journals require that only the first author
+% is given, followed by `et al.': for this behaviour, set
+% \opt{etalmode=firstonly}:
+%\begin{verbatim}
+% Jones, A.N. et al.
+%\end{verbatim}
+% On the other hand, some journals request that the list of authors
+% is truncated after $n$ authors. This is set up by the
+% \opt{etalmode=truncate} option:
+%\begin{verbatim}
+% Jones, A.N.; Bloggs, F.; Nobacon, D. et al.
+%\end{verbatim}
+% In both cases, the maximum number of authors permitted before
+% introducing `et al.' is governed by the \opt{maxauthors} option.
+% This option recognises the sentinal value $0$, which indicates that
+% no shortening should occur at all.
%
%\DescribeOption{biblabel}
% Redefining the formatting of the numbers used in the bibliography
@@ -794,7 +833,7 @@ This work consists of the file achemso.dtx
% \begin{macrocode}
%<*class>
\ProvidesClass{achemso}
- [2009/08/13 v3.2g Submission to ACS journals]
+ [2009/09/01 v3.3a Submission to ACS journals]
\LoadClass[12pt,letter]{article}
% \end{macrocode}
%
@@ -814,7 +853,7 @@ This work consists of the file achemso.dtx
% \begin{macrocode}
%<*package>
\ProvidesPackage{achemso}
- [2009/08/13 v3.2g Support for ACS journals]
+ [2009/09/01 v3.3a Support for ACS journals]
\@ifclassloaded{achemso}{%
\PackageInfo{achemso}{%
You have already loaded the `achemso' class:\MessageBreak
@@ -855,12 +894,27 @@ This work consists of the file achemso.dtx
% \end{macrocode}
%\end{macro}
%
+%\changes{v3.3}{2009/08/28}{Changed key code to be independent of
+% \pkg{xkeyval} version}
% The first stage needed is to read the package options given. Although
% \pkg{xkeyval} was perhaps not the best choice, changing this now would
% be rather risky.
% \begin{macrocode}
\RequirePackage{xkeyval}
% \end{macrocode}
+%\begin{macro}{\acs@keyval@bool}
+% A support macro for making Boolean options: the \pkg{xkeyval} version
+% is only available in newer releases.
+% \begin{macrocode}
+\newcommand*\acs@keyval@bool[2]{%
+ \acs@ifundefined{acs@#1#2}{%
+ \acs@warning{Unknown option `#2' for key #1}%
+ }{%
+ \@nameuse{acs@#1#2}%
+ }%
+}
+% \end{macrocode}
+%\end{macro}
%\begin{macro}{\ifacs@abbreviations}
%\begin{macro}{\ifacs@biochem}
%\begin{macro}{\ifacs@email}
@@ -868,14 +922,32 @@ This work consists of the file achemso.dtx
%\begin{macro}{\ifacs@super}
%\begin{macro}{\ifacs@usetitle}
% These are all very trivial definitions: to avoid issues with older
-% versions of \pkg{xkeyval} each definition is done separately.
+% versions of \pkg{xkeyval} each definition is done directly.
% \begin{macrocode}
-\define@boolkey{acs}[acs@]{abbreviations}[true]{}
-\define@boolkey{acs}[acs@]{biochem}[true]{}
-\define@boolkey{acs}[acs@]{email}[true]{}
-\define@boolkey{acs}[acs@]{keywords}[true]{}
-\define@boolkey{acs}[acs@]{super}[true]{}
-\define@boolkey{acs}[acs@]{usetitle}[true]{}
+\newif\ifacs@abbreviations
+\newif\ifacs@biochem
+\newif\ifacs@email
+\newif\ifacs@keywords
+\newif\ifacs@super
+\newif\ifacs@usetitle
+\define@key{acs}{abbreviations}[true]{%
+ \acs@keyval@bool{abbreviations}{#1}%
+}
+\define@key{acs}{biochem}[true]{%
+ \acs@keyval@bool{biochem}{#1}%
+}
+\define@key{acs}{email}[true]{%
+ \acs@keyval@bool{email}{#1}%
+}
+\define@key{acs}{keywords}[true]{%
+ \acs@keyval@bool{keywords}{#1}%
+}
+\define@key{acs}{super}[true]{%
+ \acs@keyval@bool{super}{#1}%
+}
+\define@key{acs}{usetitle}[true]{%
+ \acs@keyval@bool{usetitle}{#1}%
+}
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -884,16 +956,51 @@ This work consists of the file achemso.dtx
%\end{macro}
%\end{macro}
%\begin{macro}{\acs@journal}
+%\begin{macro}{\acs@layout}
%\begin{macro}{\acs@manuscript}
%\begin{macro}{\acs@maxauthors}
-% Trivial again.
+% Trivial again: done without using \pkg{xkeyval} for the same reasons
+% as before.
% \begin{macrocode}
\newcommand*\acs@journal{jacsat}
+\newcommand*\acs@layout{traditional}
\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}{journal}{%
+ \def\acs@journal{#1}%
+}
+\define@key{acs}{layout}{%
+ \def\acs@layout{#1}%
+}
+\define@key{acs}{manuscript}{%
+ \def\acs@manuscript{#1}%
+}
+\define@key{acs}{maxauthors}{%
+ \def\acs@maxauthors{#1}%
+}
+% \end{macrocode}
+%\end{macro}
+%\end{macro}
+%\end{macro}
+%\end{macro}
+%\begin{macro}{\ifacs@etal@truncate}
+%\begin{macro}{\acs@etal@firstonly}
+%\begin{macro}{\acs@etal@truncate}
+% The setup for the \opt{etalmode} option is quite simple: just look
+% for the appropriate macros.
+% \begin{macrocode}
+\newif\ifacs@etal@truncate
+\define@key{acs}{etalmode}{%
+ \acs@ifundefined{acs@etal@#1}{%
+ \acs@warning{%
+ Unknown value `#1' for\MessageBreak etalmode option%
+ }%
+ }{%
+ \@nameuse{acs@etal@#1}%
+ }%
+}
+\newcommand*\acs@etal@firstonly{\acs@etal@truncatefalse}
+\newcommand*\acs@etal@truncate{\acs@etal@truncatetrue}
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -1168,10 +1275,13 @@ This work consists of the file achemso.dtx
\immediate\write\acs@bib@file{%
@Control\string{%
achemso-control,^^J%
- \@tempa{ctrl-use-title}{%
+ \@tempa{ctrl-use-title\space\space\space\space}{%
\ifacs@usetitle yes\else no\fi
}%
- \@tempa{ctrl-etal-number}{\acs@maxauthors}%
+ \@tempa{ctrl-etal-number\space\space}{\acs@maxauthors}%
+ \@tempa{ctrl-etal-truncate}{%
+ \ifacs@etal@truncate yes\else no\fi
+ }%
\string}^^J%
}%
\immediate\write\@auxout{%
@@ -1221,6 +1331,7 @@ This work consists of the file achemso.dtx
abbreviations = false,
biblabel = brackets,
biochem = false,
+ etalmode = firstonly,
keywords = false,
maxauthors = 15,
super = true,
@@ -1248,13 +1359,11 @@ This work consists of the file achemso.dtx
% \end{macrocode}
%
%\begin{macro}{\title}
-%\changes{v3.2}{2009/04/19}{
-% Short title no longer used although optional argument still
-% accepted: removed internal \cs{@shorttitle} macro
-%}
-%\changes{v3.2c}{2009/05/29}{
-% Restored short title for some journals which do need this information
-%}
+%\changes{v3.2}{2009/04/19}{Short title no longer used although
+% optional argument still accepted: removed internal \cs{@shorttitle}
+% macro}
+%\changes{v3.2c}{2009/05/29}{Restored short title for some journals
+% which do need this information}
%\begin{macro}{\@title}
%\begin{macro}{\acs@title@short}
% For the meta-data, the REV\TeX\ bundle provides a good model for
@@ -1481,16 +1590,27 @@ This work consists of the file achemso.dtx
%\end{macro}
%\end{macro}
%\begin{macro}{\altaffiliation}
+%\changes{v3.3}{2009/08/28}{\cs{altaffiliation} code modified to check
+% for repeated entries}
% For the alternative affiliation, a second count is kept, and the
-% affiliation is ``attached'' to the author.
+% affiliation is ``attached'' to the author. The way these are stored
+% means that the appropriate affiliation number can be recovered later,
+% and so printed correctly when things get complex.
% \begin{macrocode}
\newcommand*\altaffiliation[1]{%
\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}%
+ \begingroup
+ \acs@altaffil@ifdup{#1}{%
+ \expandafter\xdef\csname @author@altaffil@\@roman\acs@author@cnt
+ \endcsname{\the\@tempcnta}%
+ }{%
+ \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}%
+ }%
+ \endgroup
\else
\acs@warning{Affiliation with no author}%
\fi
@@ -1498,6 +1618,40 @@ This work consists of the file achemso.dtx
\@onlypreamble\altaffiliation
% \end{macrocode}
%\end{macro}
+%\begin{macro}{\acs@altaffil@ifdup}
+%\begin{macro}{\acs@altaffil@ifdup@aux}
+% This is very similar to the same routine for normal affiliations but
+% with the appropriate name changes.
+% \begin{macrocode}
+\newcommand*\acs@altaffil@ifdup[1]{%
+ \def\@tempa{#1}%
+ \@tempswafalse
+ \@tempcnta\z@\relax
+ \ifnum\acs@affil@alt@cnt>\z@\relax
+ \expandafter\acs@altaffil@ifdup@aux
+ \fi
+ \if@tempswa
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+\newcommand*\acs@altaffil@ifdup@aux{%
+ \advance\@tempcnta\@ne\relax
+ \expandafter\expandafter\expandafter\def\expandafter\expandafter
+ \expandafter\@tempb\expandafter\expandafter\expandafter
+ {\csname @altaffil@\@roman\@tempcnta\endcsname}%
+ \ifx\@tempa\@tempb
+ \expandafter\@tempswatrue
+ \else
+ \ifnum\@tempcnta<\acs@affil@alt@cnt\relax
+ \expandafter\expandafter\expandafter\acs@altaffil@ifdup@aux
+ \fi
+ \fi
+}
+% \end{macrocode}
+%\end{macro}
+%\end{macro}
%\begin{macro}{\email}
% E-mail addresses are attached to authors as well.
% \begin{macrocode}
@@ -1709,7 +1863,7 @@ This work consists of the file achemso.dtx
\end{minipage}
\end{center}%
}
-\newcommand\@maketitle@title@hook{}
+\newcommand*\@maketitle@title@hook{}
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -1760,9 +1914,8 @@ This work consists of the file achemso.dtx
% \end{macrocode}
%\end{macro}
%\begin{macro}{\@thanks}
-%\changes{v3.1}{2008/08/29}{
-% Moved footnote generation to \cs{@thanks} macro
-%}
+%\changes{v3.1}{2008/08/29}{Moved footnote generation to \cs{@thanks}
+% macro}
%\begin{macro}{\@thanks@hook}
% The \cs{@thanks} macro is used as a hook to generate the footnotes if
% needed.
@@ -1793,7 +1946,6 @@ This work consists of the file achemso.dtx
% \begin{macrocode}
\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
@@ -1912,7 +2064,7 @@ This work consists of the file achemso.dtx
\ifnum\acs@affil@alt@cnt>\z@\relax
\acs@affil@marker@cnt\@ne\relax
\advance\acs@affil@marker@cnt\acs@footnote@cnt\relax
- \protected@edef\acs@author@footnotes{%
+ \protected@edef\acs@author@fnsymbol{%
\acs@author@footnotes
\acs@author@fnsymbol{\acs@affil@marker@cnt}%
}%
@@ -1951,8 +2103,10 @@ This work consists of the file achemso.dtx
%\begin{macro}{\acs@author@affil@alt}
%\begin{macro}{\acs@author@affil@alt@aux}
%\changes{v3.2c}{2009/05/29}{Extended to allow for footnotes to title}
-% Alternative affiliations use the secondary counter \cs{@tempcntb},
-% which starts out at the end of the main list.
+% Alternative affiliations get the correct affiliation number back out
+% from the stored data. There are then two corrections: one for the
+% total number of main affiliations and a second in case there is a
+% footnote to the title.
% \begin{macrocode}
\newcommand*\acs@author@affil@alt{%
\acs@ifundefined{@author@altaffil@\@roman\@tempcnta}{}{%
@@ -1960,8 +2114,9 @@ This work consists of the file achemso.dtx
}%
}
\newcommand*\acs@author@affil@alt@aux{%
- \advance\@tempcntb\@ne\relax
- \acs@affil@marker@cnt\@tempcntb\relax
+ \expandafter\acs@affil@marker@cnt
+ \csname @author@altaffil@\@roman\@tempcnta\endcsname\relax
+ \advance\acs@affil@marker@cnt\acs@affil@cnt\relax
\advance\acs@affil@marker@cnt\acs@footnote@cnt\relax
\protected@edef\acs@author@footnotes{%
\acs@author@footnotes
@@ -2839,9 +2994,23 @@ This work consists of the file achemso.dtx
\setkeys{acs}{maxauthors = 0}
\def\thepage{S\arabic{page}}
\fi
+% \end{macrocode}
+%\end{macro}
+%
+% Set up two column layout.
+% \begin{macrocode}
+\begingroup
+ \def\@tempa{twocolumn}
+ \ifx\acs@layout\@tempa
+ \aftergroup\acs@layout@shared
+ \fi
+ \def\@tempa{two-column}
+ \ifx\acs@layout\@tempa
+ \aftergroup\acs@layout@shared
+ \fi
+\endgroup
%</class>
% \end{macrocode}
-%\end{macro}
%
%\subsection{Late shared code}
%
@@ -3118,7 +3287,7 @@ This work consists of the file achemso.dtx
% \begin{macrocode}
%<*achre4>
\ProvidesFile{achre4.cfg}
- [2009/08/13 v3.2g achemso configuration: Acc. Chem. Res.]
+ [2009/09/01 v3.3a achemso configuration: Acc. Chem. Res.]
\setkeys{acs}{
biblabel = plain
}
@@ -3127,7 +3296,7 @@ This work consists of the file achemso.dtx
%</achre4>
%<*acbcct>
\ProvidesFile{acbcct.cfg}
- [2009/08/13 v3.2g achemso configuration: ACS Chem. Biol.]
+ [2009/09/01 v3.3a achemso configuration: ACS Chem. Biol.]
\setkeys{acs}{
biblabel = fullstop,
biochem = true,
@@ -3138,24 +3307,26 @@ This work consists of the file achemso.dtx
\SectionNumbersOff
%</acbcct>
%<*ancac3>
-\ProvidesFile{acbcct.cfg}
- [2009/08/13 v3.2g achemso configuration: ACS Nano]
+\ProvidesFile{ancac3.cfg}
+ [2009/09/01 v3.3a achemso configuration: ACS Nano]
\setkeys{acs}{
- biblabel = fullstop,
- usetitle = true
+ biblabel = fullstop,
+ etalmode = truncate,
+ maxauthors = 10,
+ usetitle = true
}
\def\acs@type@list{article,perspective,suppinfo}
\SectionNumbersOff
%</ancac3>
%<*ancham>
\ProvidesFile{ancham.cfg}
- [2009/08/13 v3.2g achemso configuration: Anal. Chem.]
+ [2009/09/01 v3.3a achemso configuration: Anal. Chem.]
\def\acs@type@list{article,note,suppinfo}
\SectionNumbersOff
%</ancham>
%<*bichaw>
\ProvidesFile{biochem.cfg}
- [2009/08/13 v3.2g achemso configuration: Biochemistry]
+ [2009/09/01 v3.3a achemso configuration: Biochemistry]
\setkeys{acs}{
abbreviations = true,
biblabel = fullstop,
@@ -3205,7 +3376,7 @@ This work consists of the file achemso.dtx
%</bichaw>
%<*bcches>
\ProvidesFile{bcches.cfg}
- [2009/08/13 v3.2g achemso configuration: Bioconjugate Chem.]
+ [2009/09/01 v3.3a achemso configuration: Bioconjugate Chem.]
\setkeys{acs}{
biochem = true,
super = false,
@@ -3215,7 +3386,7 @@ This work consists of the file achemso.dtx
%</bcches>
%<*bomaf6>
\ProvidesFile{bomaf6.cfg}
- [2009/08/13 v3.2g achemso configuration: Biomacromolecules]
+ [2009/09/01 v3.3a achemso configuration: Biomacromolecules]
\setkeys{acs}{
super = false,
usetitle = true
@@ -3224,7 +3395,7 @@ This work consists of the file achemso.dtx
%</bomaf6>
%<*bipret>
\ProvidesFile{bipret.cfg}
- [2009/08/13 v3.2g achemso configuration: Biotechnol. Prog.]
+ [2009/09/01 v3.3a achemso configuration: Biotechnol. Prog.]
\setkeys{acs}{
super = false,
usetitle = true
@@ -3234,7 +3405,7 @@ This work consists of the file achemso.dtx
%</bipret>
%<*crtoec>
\ProvidesFile{crtoec.cfg}
- [2009/08/13 v3.2g achemso configuration: Chem. Res. Toxicol.]
+ [2009/09/01 v3.3a achemso configuration: Chem. Res. Toxicol.]
\setkeys{acs}{
biochem = true,
super = false,
@@ -3247,7 +3418,7 @@ This work consists of the file achemso.dtx
%</crtoec>
%<*chreay>
\ProvidesFile{chreay.cfg}
- [2009/08/13 v3.2g achemso configuration: Chem. Rev.]
+ [2009/09/01 v3.3a achemso configuration: Chem. Rev.]
\def\acs@type@default{review}
\def\acs@type@list{review}
% \end{macrocode}
@@ -3258,7 +3429,7 @@ This work consists of the file achemso.dtx
%<*cmatex>
% \begin{macrocode}
\ProvidesFile{cmatex.cfg}
- [2009/08/13 v3.2g achemso configuration: Chem. Mater.]
+ [2009/09/01 v3.3a achemso configuration: Chem. Mater.]
\SectionNumbersOff
\ifx\acs@manuscript\acs@manuscript@communication
\AbstractOff
@@ -3267,7 +3438,7 @@ This work consists of the file achemso.dtx
%</cmatex>
%<*cgdefu>
\ProvidesFile{cgdefu.cfg}
- [2009/08/13 v3.2g achemso configuration: Cryst. Growth Des.]
+ [2009/09/01 v3.3a achemso configuration: Cryst. Growth Des.]
\def\acs@type@list{%
article,communication,perspective,suppinfo%
}
@@ -3278,13 +3449,13 @@ This work consists of the file achemso.dtx
%</cgdefu>
%<*enfuem>
\ProvidesFile{enfuem.cfg}
- [2009/08/13 v3.2g achemso configuration: Energy Fuels]
+ [2009/09/01 v3.3a achemso configuration: Energy Fuels]
\def\acs@type@list{article,review,suppinfo}
\SectionNumbersOff
%</enfuem>
%<*esthag>
\ProvidesFile{esthag.cfg}
- [2009/08/13 v3.2g achemso configuration: Environ. Sci. Technol.]
+ [2009/09/01 v3.3a achemso configuration: Environ. Sci. Technol.]
\setkeys{acs}{
super = false,
usetitle = true
@@ -3294,7 +3465,7 @@ This work consists of the file achemso.dtx
%</esthag>
%<*iecred>
\ProvidesFile{iecred.cfg}
- [2009/08/13 v3.2g achemso configuration: Ind. Eng. Chem. Res.]
+ [2009/09/01 v3.3a achemso configuration: Ind. Eng. Chem. Res.]
\setkeys{acs}{
biblabel = fullstop,
usetitle = true
@@ -3303,7 +3474,7 @@ This work consists of the file achemso.dtx
%</iecred>
%<*inoraj>
\ProvidesFile{inoraj.cfg}
- [2009/08/13 v3.2g achemso configuration: Inorg. Chem.]
+ [2009/09/01 v3.3a achemso configuration: Inorg. Chem.]
\SectionNumbersOff
\ifx\acs@manuscript\acs@manuscript@communication
\AbstractOff
@@ -3318,7 +3489,7 @@ This work consists of the file achemso.dtx
% \begin{macrocode}
%<*jacsat>
\ProvidesFile{jacsat.cfg}
- [2009/08/13 v3.2g achemso configuration: J. Am. Chem. Soc.]
+ [2009/09/01 v3.3a achemso configuration: J. Am. Chem. Soc.]
\SectionNumbersOff
\ifx\acs@manuscript\acs@manuscript@communication\else
\expandafter\endinput
@@ -3328,7 +3499,8 @@ This work consists of the file achemso.dtx
% adjustments are now made using the existing tools.
% \begin{macrocode}
\setkeys{acs}{
- email = true
+ email = true,
+ layout = twocolumn
}
\SectionsOff
\acs@layout@nine
@@ -3501,7 +3673,6 @@ This work consists of the file achemso.dtx
%\end{macro}
% The bibliography has to be adjusted.
% \begin{macrocode}
-\acs@layout@shared
\AtBeginDocument{%
\def\bibsection{%
\@startsection
@@ -3521,7 +3692,7 @@ This work consists of the file achemso.dtx
% \begin{macrocode}
%<*jafcau>
\ProvidesFile{jafcau.cfg}
- [2009/08/13 v3.2g achemso configuration: J. Agric. Food Chem.]
+ [2009/09/01 v3.3a achemso configuration: J. Agric. Food Chem.]
\setkeys{acs}{
super = false,
usetitle = true
@@ -3531,7 +3702,7 @@ This work consists of the file achemso.dtx
%</jafcau>
%<*jceaax>
\ProvidesFile{jceaax.cfg}
- [2009/08/13 v3.2g achemso configuration: J. Chem. Eng. Data]
+ [2009/09/01 v3.3a achemso configuration: J. Chem. Eng. Data]
\setkeys{acs}{
usetitle = true
}
@@ -3540,7 +3711,7 @@ This work consists of the file achemso.dtx
%</jceaax>
%<*jcisd8>
\ProvidesFile{jcisd8.cfg}
- [2009/08/13 v3.2g achemso configuration: J. Chem. Inf. Model.]
+ [2009/09/01 v3.3a achemso configuration: J. Chem. Inf. Model.]
\setkeys{acs}{
usetitle = true
}
@@ -3549,18 +3720,18 @@ This work consists of the file achemso.dtx
%</jcisd8>
%<*jctcce>
\ProvidesFile{jctcce.cfg}
- [2009/08/13 v3.2g achemso configuration: J. Chem. Theory Comput.]
+ [2009/09/01 v3.3a achemso configuration: J. Chem. Theory Comput.]
\def\acs@type@list{article,suppinfo}
%</jctcce>
%<*jcchff>
\ProvidesFile{jcchff.cfg}
- [2009/08/13 v3.2g achemso configuration: J. Comb. Chem.]
+ [2009/09/01 v3.3a achemso configuration: J. Comb. Chem.]
\def\acs@type@list{article,report,perspective,suppinfo}
\SectionNumbersOff
%</jcchff>
%<*jmcmar>
\ProvidesFile{jmcmar.cfg}
- [2009/08/13 v3.2g achemso configuration: J. Med. Chem.]
+ [2009/09/01 v3.3a achemso configuration: J. Med. Chem.]
\setkeys{acs}{
usetitle = true
}
@@ -3569,7 +3740,7 @@ This work consists of the file achemso.dtx
%</jmcmar>
%<*jnprdf>
\ProvidesFile{jnprdf.cfg}
- [2009/08/13 v3.2g achemso configuration: J. Nat. Prod.]
+ [2009/09/01 v3.3a achemso configuration: J. Nat. Prod.]
\ifx\acs@manuscript\acs@manuscript@communication
\AbstractOff
\SectionsOff
@@ -3577,7 +3748,7 @@ This work consists of the file achemso.dtx
%</jnprdf>
%<*joceah>
\ProvidesFile{joceah.cfg}
- [2009/08/13 v3.2g achemso configuration: J. Org. Chem.]
+ [2009/09/01 v3.3a achemso configuration: J. Org. Chem.]
\ifx\acs@manuscript\acs@manuscript@communication
\AbstractOff
\SectionsOff
@@ -3585,7 +3756,7 @@ This work consists of the file achemso.dtx
%</joceah>
%<*jpcafh>
\ProvidesFile{jpcafh.cfg}
- [2009/08/13 v3.2g achemso configuration: J. Phys. Chem. A]
+ [2009/09/01 v3.3a achemso configuration: J. Phys. Chem. A]
\def\acs@type@list{article,letter,suppinfo}
\SectionNumbersOff
\captionsetup[table]{labelfont=bf,textfont=bf}
@@ -3596,7 +3767,7 @@ This work consists of the file achemso.dtx
%</jpcafh>
%<*jpcbfk>
\ProvidesFile{jpcbfk.cfg}
- [2009/08/13 v3.2g achemso configuration: J. Phys. Chem. B]
+ [2009/09/01 v3.3a achemso configuration: J. Phys. Chem. B]
\def\acs@type@list{article,letter,suppinfo}
\SectionNumbersOff
\captionsetup[table]{labelfont=bf,textfont=bf}
@@ -3612,7 +3783,7 @@ This work consists of the file achemso.dtx
%</jpccck>
%<*jprobs>
\ProvidesFile{jprobs.cfg}
- [2009/08/13 v3.2g achemso configuration: J. Proteome Res.]
+ [2009/09/01 v3.3a achemso configuration: J. Proteome Res.]
\setkeys{acs}{
usetitle = true
}
@@ -3621,50 +3792,48 @@ This work consists of the file achemso.dtx
%</jprobs>
%<*langd5>
\ProvidesFile{langd5.cfg}
- [2009/08/13 v3.2g achemso configuration: Langmuir]
+ [2009/09/01 v3.3a achemso configuration: Langmuir]
\def\acs@type@list{article,letter,suppinfo}
\SectionNumbersOff
%</langd5>
%<*mamobx>
\ProvidesFile{mamobx.cfg}
- [2009/08/13 v3.2g achemso configuration: Macromolecules]
+ [2009/09/01 v3.3a achemso configuration: Macromolecules]
\SectionNumbersOff
%</mamobx>
%<*mpohbp>
\ProvidesFile{mamobx.cfg}
- [2009/08/13 v3.2g achemso configuration: Mol. Pharm.]
-\setkeys{acs}{
- usetitle = true
-}
+ [2009/09/01 v3.3a achemso configuration: Mol. Pharm.]
+\setkeys{acs}{usetitle = true}
\def\acs@type@list{article,suppinfo}
\SectionNumbersOff
%</mpohbp>
%<*nalefd>
\ProvidesFile{nalefd.cfg}
- [2009/08/13 v3.2g achemso configuration: Nano Lett.]
+ [2009/09/01 v3.3a achemso configuration: Nano Lett.]
\def\acs@type@default{letter}
\def\acs@type@list{letter}
\SectionNumbersOff
%</nalefd>
%<*orlef7>
\ProvidesFile{orlef7.cfg}
- [2009/08/13 v3.2g achemso configuration: Org. Lett.]
+ [2009/09/01 v3.3a achemso configuration: Org. Lett.]
\def\acs@type@default{letter}
\def\acs@type@list{letter}
\SectionNumbersOff
-\acs@layout@shared
+\setkeys{acs}{layout = twocolumn}
\RequirePackage{xcolor}
\definecolor{orglett}{RGB}{128,0,0}
%</orlef7>
%<*oprdfk>
\ProvidesFile{oprdfk.cfg}
- [2009/08/13 v3.2g achemso configuration: Org. Proc. Res. Dev.]
+ [2009/09/01 v3.3a achemso configuration: Org. Proc. Res. Dev.]
\def\acs@type@list{article,highlight,review,suppinfo}
\SectionNumbersOff
%</oprdfk>
%<*orgnd7>
\ProvidesFile{orgnd7.cfg}
- [2009/08/13 v3.2g achemso configuration: Organometallics]
+ [2009/09/01 v3.3a achemso configuration: Organometallics]
\SectionNumbersOff
%</orgnd7>
% \end{macrocode}
@@ -3724,10 +3893,12 @@ This work consists of the file achemso.dtx
%% when authors are associated with multiple institutions.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\author{Andrew N. Other}
+\altaffiliation{A shared footnote}
\author{Fred T. Secondauthor}
\altaffiliation{Current address: Some other place, Othert\"own,
Germany}
\author{I. Ken Groupleader}
+\altaffiliation{A shared footnote}
\email{i.k.groupleader@unknown.uu}
\phone{+123 (0)123 4445556}
\fax{+123 (0)123 4445557}
@@ -3881,13 +4052,19 @@ followed by some display. \[ A = \pi r^2 \]
It is possible to label equations in the usual way.
\begin{equation}
- \frac{\mathrm{d}}{\mathrm{d}x} r^2 = 2r
+ \frac{\mathrm{d}}{\mathrm{d}x} \, r^2 = 2r
\end{equation}
This can also be used to have equations containing graphical
-content.
+content. To align the equation number with the middle of the graphic,
+rather than the bottom, a minipage may be used.
\begin{equation}
- \textrm{Some content}
- %\includegraphics{graphic}
+ \begin{minipage}[c]{0.80\linewidth}
+ \centering
+ As illustrated here, the width of \\
+ the minipage needs to allow some \\
+ space for the number to fit in to.
+ %\includegraphics{graphic}
+ \end{minipage}
\label{eqn:graphic}
\end{equation}
@@ -3979,7 +4156,9 @@ authors would like to thank \ldots''.
The author thanks Mats Dahlgren for version one of \textsf{achemso},
and Donald Arseneau for the code taken from \textsf{cite} to move
-citations after punctuation.
+citations after punctuation. Many users have provided feedback on the
+class, which is reflected in all of the different demonstrations
+shown in this document.
\end{acknowledgement}
@@ -4039,6 +4218,7 @@ ENTRY
chapter
ctrl-use-title
ctrl-etal-number
+ ctrl-etal-truncate
doi
edition
editor
@@ -4065,91 +4245,115 @@ ENTRY
short.list
}
-INTEGERS { output.state before.all mid.sentence after.sentence }
-INTEGERS { after.block after.item author.or.editor }
-INTEGERS { separate.by.semicolon }
-INTEGERS { is.use.title etal.number }
+INTEGERS {
+ before.all
+ mid.sentence
+ after.sentence
+ after.block
+ after.item
+}
-FUNCTION {init.state.consts}
-{ #0 'before.all :=
+FUNCTION { init.state.consts } {
+ #0 'before.all :=
#1 'mid.sentence :=
#2 'after.sentence :=
#3 'after.block :=
#4 'after.item :=
}
-%% #0 turns off the display of the title for articles
-%% #1 enables
-%<!bio>FUNCTION {default.is.use.title} { #0 }
-%<bio>FUNCTION {default.is.use.title} { #1 }
+%% For true/false settings, #1 is regarded as true and #0 as false.
+INTEGERS {
+ etal.number
+ etal.truncate
+ is.use.title
+}
-%% The number of names that force "et al." to be used
-FUNCTION {default.etal.number} { #15 }
+FUNCTION { default.etal.number } { #15 }
-FUNCTION {add.comma}
-{ ", " * }
+FUNCTION { default.etal.truncate } { #0 }
-FUNCTION {add.semicolon}
-{ "; " * }
+%<!bio>FUNCTION { default.is.use.title } { #0 }
+%<bio>FUNCTION { default.is.use.title } { #1 }
-%<*!bio>
-FUNCTION {add.comma.or.semicolon}
-{ #1 separate.by.semicolon =
- 'add.semicolon
- 'add.comma
+FUNCTION { add.comma } { ", " * }
+
+FUNCTION { add.colon } { ": " * }
+
+FUNCTION { add.semicolon } { "; " * }
+
+INTEGERS { separate.by.semicolon }
+
+FUNCTION { init.separate.by.semicolon }
+%<!bio> { #1 'separate.by.semicolon := }
+%<bio> { #0 'separate.by.semicolon := }
+
+FUNCTION { add.comma.or.semicolon } {
+ #1 separate.by.semicolon = {
+ add.semicolon
+ }{
+ add.comma
+ }
if$
}
-%</!bio>
-FUNCTION {add.colon}
-{ ": " * }
-
STRINGS { s t }
-FUNCTION {output.nonnull}
-{ 's :=
- output.state mid.sentence =
- { add.comma write$ }
- { output.state after.block =
- { add.semicolon write$
- newline$
- "\newblock " write$
- }
- { output.state before.all =
- 'write$
- { output.state after.item =
- { " " * write$ }
- { add.period$ " " * write$ }
- if$
- }
- if$
+INTEGERS { output.state }
+
+FUNCTION { output.nonnull } {
+ 's :=
+ output.state mid.sentence = {
+ add.comma write$
+ }{
+ output.state after.block = {
+ add.semicolon write$
+ newline$
+ "\newblock " write$
+ }{
+ output.state before.all = {
+ write$
+ }{
+ output.state after.item = {
+ " " * write$
+ }{
+ add.period$ " " * write$
}
+ if$
+ }
if$
- mid.sentence 'output.state :=
}
+ if$
+ mid.sentence 'output.state :=
+ }
if$
s
}
-FUNCTION {output}
-{ duplicate$ empty$
- 'pop$
- 'output.nonnull
+FUNCTION { output } {
+ duplicate$ empty$ {
+ pop$
+ }{
+ output.nonnull
+ }
if$
}
-FUNCTION {output.check}
-{ 't :=
- duplicate$ empty$
- { pop$ "Empty " t * " in " * cite$ * warning$ }
- 'output.nonnull
+FUNCTION { output.check } {
+ 't :=
+ duplicate$ empty$ {
+ pop$ "Empty " t * " in " * cite$ * warning$
+ }{
+ output.nonnull
+ }
if$
}
-FUNCTION {new.block}
-{ output.state before.all =
- 'skip$
- { after.block 'output.state := }
+FUNCTION { new.block } {
+ output.state before.all = {
+ skip$
+ }{
+ after.block 'output.state :=
+ }
if$
}
@@ -4164,7 +4368,7 @@ FUNCTION {new.sentence}
if$
}
-INTEGERS {would.add.period.textlen}
+INTEGERS { would.add.period.textlen }
FUNCTION {would.add.period}
{ duplicate$
@@ -4494,46 +4698,90 @@ FUNCTION {tie.or.space.connect}
FUNCTION {space.connect}
{ " " swap$ * * }
-INTEGERS { nameptr namesleft numnames }
+INTEGERS {
+ current.name
+ remaining.names
+ total.names
+}
-FUNCTION {format.names}
-{ 's :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- numnames etal.number > etal.number #0 > and
- { s #1 "{vv~}{ll,}{~f.}{,~jj}" format.name$ 't :=
- t bbl.etal space.connect
+STRINGS {
+ formatted.name
+ names.list
+}
+
+FUNCTION { format.names.loop } {
+ { remaining.names #0 > } {
+ names.list current.name "{vv~}{ll,}{~f.}{,~jj}" format.name$
+ 'formatted.name :=
+ current.name #1 > {
+ formatted.name "others," = {
+ bbl.etal space.connect
+ remaining.names #1 'remaining.names :=
+ }{
+%<*bio>
+ add.comma
+ remaining.names #1 > {
+ formatted.name *
+ }{
+ bbl.and space.connect
+ formatted.name space.connect
+ }
+ if$
+%</bio>
+%<*!bio>
+ add.comma.or.semicolon formatted.name *
+%</!bio>
+ }
+ if$
+ }{
+ formatted.name
}
- {
- { namesleft #0 > }
- { s nameptr "{vv~}{ll,}{~f.}{,~jj}" format.name$ 't :=
- nameptr #1 >
- { namesleft #1 >
-%<!bio> { add.comma.or.semicolon t * }
-%<bio> { add.comma t * }
- { numnames #2 >
- { "" * }
- 'skip$
- if$
- t "others," =
- { bbl.etal space.connect }
-%<!bio> { add.comma.or.semicolon t * }
-%<bio> { add.comma bbl.and space.connect t space.connect }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
+ if$
+ current.name #1 + 'current.name :=
+ remaining.names #1 - 'remaining.names :=
+ }
+ while$
+}
+
+FUNCTION { format.names.all } {
+ total.names 'remaining.names :=
+ format.names.loop
+}
+
+FUNCTION { format.names.etal } {
+ etal.truncate #1 = {
+ etal.number 'remaining.names :=
+ }{
+ #1 'remaining.names :=
+ }
+ if$
+ format.names.loop
+ formatted.name "others," = {
+ }{
+ bbl.etal space.connect
}
if$
}
+FUNCTION { format.names } {
+ 'names.list :=
+ #1 'current.name :=
+ names.list num.names$ 'total.names :=
+ etal.number #0 = {
+ format.names.all
+ }{
+ total.names etal.number > {
+ format.names.etal
+ }{
+ format.names.all
+ }
+ if$
+ }
+ if$
+}
+
+INTEGERS { author.or.editor }
+
FUNCTION {format.authors}
{ author empty$
{ "" }
@@ -4560,6 +4808,8 @@ FUNCTION {format.editors}
if$
}
+INTEGERS { nameptr numnames namesleft }
+
FUNCTION {n.separate.multi}
{ 't :=
""
@@ -5284,20 +5534,33 @@ FUNCTION {yes.no.to.int}
%% Using the same mechanism as in IEEEtrans, control of
%% output can be achieved using a special entry type.
-FUNCTION {Control}
-{ ctrl-use-title
- empty$
- { skip$ }
- { ctrl-use-title
- yes.no.to.int
- 'is.use.title := }
+FUNCTION { Control } {
+ ctrl-use-title
+ empty$ {
+ skip$
+ }{
+ ctrl-use-title
+ yes.no.to.int
+ 'is.use.title :=
+ }
if$
ctrl-etal-number
- empty$
- { skip$ }
- { ctrl-etal-number
- str.to.int
- 'etal.number := }
+ empty$ {
+ skip$
+ }{
+ ctrl-etal-number
+ str.to.int
+ 'etal.number :=
+ }
+ if$
+ ctrl-etal-truncate
+ empty$ {
+ skip$
+ }{
+ ctrl-etal-truncate
+ yes.no.to.int
+ 'etal.truncate :=
+ }
if$
}
@@ -5470,8 +5733,8 @@ FUNCTION {calc.short.authors}
'short.list :=
}
-FUNCTION {calc.label}
-{ calc.short.authors
+FUNCTION { calc.label } {
+ calc.short.authors
short.list
"("
*
@@ -5484,14 +5747,22 @@ FUNCTION {calc.label}
'label :=
}
-ITERATE {calc.label}
+ITERATE { calc.label }
-STRINGS { longest.label last.label next.extra }
+STRINGS {
+ longest.label
+ last.label
+ next.extra
+}
-INTEGERS { longest.label.width last.extra.num number.label }
+INTEGERS {
+ longest.label.width
+ last.extra.num
+ number.label
+}
-FUNCTION {initialize.longest.label}
-{ "" 'longest.label :=
+FUNCTION { initialize.longest.label } {
+ "" 'longest.label :=
#0 int.to.chr$ 'last.label :=
"" 'next.extra :=
#0 'longest.label.width :=
@@ -5512,14 +5783,16 @@ FUNCTION {forward.pass}
number.label #1 + 'number.label :=
}
-EXECUTE {initialize.longest.label}
+EXECUTE { initialize.longest.label }
-ITERATE {forward.pass}
+ITERATE { forward.pass }
-FUNCTION {begin.bib}
-{ preamble$ empty$
- 'skip$
- { preamble$ write$ newline$ }
+FUNCTION { begin.bib } {
+ preamble$ empty$ {
+ skip$
+ }{
+ preamble$ write$ newline$
+ }
if$
"\providecommand*{\mcitethebibliography}{\thebibliography}"
write$ newline$
@@ -5559,18 +5832,20 @@ FUNCTION {begin.bib}
write$ newline$
}
-EXECUTE {begin.bib}
+EXECUTE { begin.bib }
-EXECUTE {init.state.consts}
+EXECUTE { init.state.consts }
-ITERATE {call.type$}
+EXECUTE { init.separate.by.semicolon }
-FUNCTION {end.bib}
-{ newline$
+ITERATE { call.type$ }
+
+FUNCTION { end.bib } {
+ newline$
"\end{mcitethebibliography}" write$ newline$
}
-EXECUTE {end.bib}
+EXECUTE { end.bib }
%</bst>
%<*bib>
@ARTICLE{Abernethy2003,