diff options
author | Karl Berry <karl@freefriends.org> | 2009-09-03 18:05:01 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-09-03 18:05:01 +0000 |
commit | 51be8b5f44ee96b3e1ef17df00d6054ed0ea6589 (patch) | |
tree | e56b772c89e1e2df3f4f3dd1e7a9b9597231a68f /Master/texmf-dist/source/latex/achemso | |
parent | fb72bda0c82db35efdc4d25f2864a127463bd880 (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.dtx | 727 |
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, |