diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/achemso/achemso.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/achemso/achemso.dtx | 3799 |
1 files changed, 2871 insertions, 928 deletions
diff --git a/Master/texmf-dist/source/latex/achemso/achemso.dtx b/Master/texmf-dist/source/latex/achemso/achemso.dtx index 8868d841fe9..c0368d7565c 100644 --- a/Master/texmf-dist/source/latex/achemso/achemso.dtx +++ b/Master/texmf-dist/source/latex/achemso/achemso.dtx @@ -1,10 +1,20 @@ % \iffalse meta-comment % +% Portions copyright (C) 1989-2003 by +% Donald Arseneau % Copyright (C) 1996-98 by % Mats Dahlgren -% Copyright (C) 2007-2008 by +% Copyright (C) 2007-08 by % Joseph Wright <joseph.wright@morningstar2.co.uk> % +% Part of this bundle is derived from cite.sty, to which the following +% license applies: +%-------------------------------------------------------------------- +% Copyright (C) 1989-2003 by Donald Arseneau +% These macros may be freely transmitted, reproduced, or modified +% provided that this notice is left intact. +%-------------------------------------------------------------------- +% % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either % version 1.3c of this license or (at your option) any later @@ -13,26 +23,68 @@ % and version 1.3c or later is part of all distributions of % LaTeX version 2005/12/01 or later. % -% This work has the LPPL maintenance status ``maintained.'' +% This work has the LPPL maintenance status `maintained'. % % The current maintainer of this work is Joseph Wright. % % This work consists of the source file achemso.dtx % and the derived files achemso.ins, +% achemso.cls, % achemso.sty, -% achemso.bib, % achemso.pdf, +% achemso-manual.pdf, +% achemso-demo.ltx, % achemso.bst, -% achemsoM.bst, -% achemsol.bst, -% achemsolM.bst, -% achemsnat.bst, -% achemlnt.bst, -% iecr.bst, -% iecrM.bst, -% iecrnat.bst, -% iecrnatM.bst and -% jawltxdoc.sty +% biochem.bst, +% achre4.cfg, +% acbcct.cfg, +% ancac3.cfg, +% ancham.cfg, +% bichaw.cfg, +% bcches.cfg, +% bomaf6.cfg, +% bipret.cfg, +% crtoec.cfg, +% chreay.cfg, +% cmatex.cfg, +% cgdefu.cfg, +% enfuem.cfg, +% esthag.cfg, +% iecred.cfg, +% inoraj.cfg, +% jafcau.cfg, +% jacsat.cfg, +% jceaax.cfg, +% jcisd8.cfg, +% jctcce.cfg, +% jcchff.cfg, +% jmcmar.cfg, +% jnprdf.cfg, +% joceah.cfg, +% jpcafh.cfg, +% jpcbfk.cfg, +% jpccck.cfg, +% jprobs.cfg, +% langd5.cfg, +% mamobx.cfg, +% mpohbp.cfg, +% nalefd.cfg, +% orlef7.cfg, +% oprdfk.cfg, +% orgnd7.cfg, +% jawltxdoc.sty and +% README +% +% TDS-ready files: +% The compressed file achemso.tds.zip contains an unpacked version +% of all of the files included here, and pre-compiled +% documentation in PDF format. Simply decompress achemso.tds.zip +% in your local TeX directory, run your hash program (texhash, +% initexmf --update-fndb, etc.) and everything will be ready to +% go. The user documentation for the package is called +% achemso-manual.pdf; the file achemso.pdf includes the user +% manual and the fully-indexed source code. +% % Unpacking: % (a) If achemso.ins is present: % tex achemso.ins @@ -44,28 +96,26 @@ % Documentation: % (a) Without write18 enabled: % pdflatex achemso.dtx -% bibtex8 --wolfgang achemso.aux +% bibtex8 --wolfgang achemso % makeindex -s gind.ist achemso.idx -% makeindex -s gglo.ist -o achemso.gls achemso.glo +% makeindex -s gglo.ist -o achemso.gls achemso.glo % pdflatex achemso.dtx -% makeindex -s gind.ist achemso.idx -% makeindex -s gglo.ist -o achemso.gls achemso.glo % pdflatex achemso.dtx % (b) With write18 enabled: % pdflatex achemso.dtx -% bibtex8 --wolfgang achemso.aux % pdflatex achemso.dtx % pdflatex achemso.dtx % % Installation: -% Copy achemso.sty and the achmes*.bst files to a location -% searched by TeX, and if required by your TeX installation, -% run the appropriate command to build a hash of files -% (texhash, mpm --update-db, etc.) +% Copy achemso.cls, the .sty files, the .bst files and the .cfg +% files to a location searched by TeX, and if required by your +% TeX installation, run the appropriate command to build a hash +% of files (texhash, initexmf --update-fndb, etc.) % % Note: % The jawltxdoc.sty file is not needed for installation, -% only for building the documentation. It may be deleted. +% only for building the documentation; it may be deleted +% after producing the documentation (if necessary). % %<*ignore> % This is all taken verbatim from Heiko Oberdiek's packages @@ -83,8 +133,8 @@ \askforoverwritefalse \preamble ---------------------------------------------------------------- - The achemso package - LaTeX and BibTeX support for American - Chemical Society publications + 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 @@ -93,39 +143,103 @@ \endpreamble \Msg{Generating achemso files:} +\generate{\file{jawltxdoc.sty}{\from{\jobname.dtx}{jawltxdoc}} +} \usedir{tex/latex/achemso} +\generate{\file{\jobname.sty}{\from{\jobname.dtx}{package}} + \file{\jobname.cls}{\from{\jobname.dtx}{class}} + \file{natmove.sty}{\from{natmove.dtx}{package}} +} +\usedir{source/latex/achemso} \generate{\file{\jobname.ins}{\from{\jobname.dtx}{install}} - \file{\jobname.sty}{\from{\jobname.dtx}{package}} } -\declarepostamble\bibtexable -\endpostamble +\usedir{tex/latex/achemso/config} +\generate{\file{achre4.cfg}{\from{\jobname.dtx}{achre4}} + \file{acbcct.cfg}{\from{\jobname.dtx}{acbcct}} + \file{ancac3.cfg}{\from{\jobname.dtx}{ancac3}} + \file{ancham.cfg}{\from{\jobname.dtx}{ancham}} + \file{bichaw.cfg}{\from{\jobname.dtx}{bichaw}} + \file{bcches.cfg}{\from{\jobname.dtx}{bcches}} + \file{bomaf6.cfg}{\from{\jobname.dtx}{bomaf6}} + \file{bipret.cfg}{\from{\jobname.dtx}{bipret}} +} +\generate{\file{crtoec.cfg}{\from{\jobname.dtx}{crtoec}} + \file{chreay.cfg}{\from{\jobname.dtx}{chreay}} + \file{cmatex.cfg}{\from{\jobname.dtx}{cmatex}} + \file{cgdefu.cfg}{\from{\jobname.dtx}{cgdefu}} + \file{enfuem.cfg}{\from{\jobname.dtx}{enfuem}} + \file{esthag.cfg}{\from{\jobname.dtx}{esthag}} + \file{iecred.cfg}{\from{\jobname.dtx}{iecred}} + \file{inoraj.cfg}{\from{\jobname.dtx}{inoraj}} +} +\generate{\file{jafcau.cfg}{\from{\jobname.dtx}{jafcau}} + \file{jacsat.cfg}{\from{\jobname.dtx}{jacsat}} + \file{jceaax.cfg}{\from{\jobname.dtx}{jceaax}} + \file{jcisd8.cfg}{\from{\jobname.dtx}{jcisd8}} + \file{jctcce.cfg}{\from{\jobname.dtx}{jctcce}} + \file{jcchff.cfg}{\from{\jobname.dtx}{jcchff}} + \file{jmcmar.cfg}{\from{\jobname.dtx}{jmcmar}} + \file{jnprdf.cfg}{\from{\jobname.dtx}{jnprdf}} +} +\generate{\file{joceah.cfg}{\from{\jobname.dtx}{joceah}} + \file{jpcafh.cfg}{\from{\jobname.dtx}{jpcafh}} + \file{jpcbfk.cfg}{\from{\jobname.dtx}{jpcbfk}} + \file{jpccck.cfg}{\from{\jobname.dtx}{jpccck}} + \file{jprobs.cfg}{\from{\jobname.dtx}{jprobs}} + \file{langd5.cfg}{\from{\jobname.dtx}{langd5}} + \file{mamobx.cfg}{\from{\jobname.dtx}{mamobx}} + \file{mpohbp.cfg}{\from{\jobname.dtx}{mpohbp}} +} +\generate{\file{nalefd.cfg}{\from{\jobname.dtx}{nalefd}} + \file{orlef7.cfg}{\from{\jobname.dtx}{orlef7}} + \file{oprdfk.cfg}{\from{\jobname.dtx}{oprdfk}} + \file{orgnd7.cfg}{\from{\jobname.dtx}{orgnd7}} +} +\nopreamble\nopostamble \usedir{bibtex/bst/achemso} -\generate{\usepostamble\bibtexable - \file{achemso.bst}{\from{achemso.dtx}{bib}} - \file{achemsoM.bst}{\from{achemso.dtx}{bib,mcp}} - \file{achemnat.bst}{\from{achemso.dtx}{bib,nat}} - \file{achemnatM.bst}{\from{achemso.dtx}{bib,nat,mcp}} -} -\generate{\usepostamble\bibtexable - \file{achemsol.bst}{\from{achemso.dtx}{bib,list}} - \file{achemsolM.bst}{\from{achemso.dtx}{bib,list,mcp}} - \file{achemlnt.bst}{\from{achemso.dtx}{bib,list,nat}} - \file{achemlntM.bst}{\from{achemso.dtx}{bib,list,nat,mcp}} -} -\generate{\usepostamble\bibtexable - \file{iecr.bst}{\from{achemso.dtx}{bib,iecr}} - \file{iecrM.bst}{\from{achemso.dtx}{bib,mcp,iecr}} - \file{iecrnat.bst}{\from{achemso.dtx}{bib,nat,iecr}} - \file{iecrnatM.bst}{\from{achemso.dtx}{bib,nat,mcp,iecr}} -} -\generate{\usepostamble\empty\usepreamble\empty - \file{achemso.bib}{\from{achemso.dtx}{database}} +\generate{\file{achemso.bst}{\from{\jobname.dtx}{bst}} + \file{biochem.bst}{\from{\jobname.dtx}{bst,bio}} } +\nopreamble\nopostamble \usedir{doc/latex/achemso} -\generate{\file{jawltxdoc.sty}{\from{\jobname.dtx}{jawltxdoc}} +\generate{\file{achemso.bib}{\from{\jobname.dtx}{refs}} +} +\nopreamble\nopostamble +\usedir{doc/latex/achemso} +\generate{\file{README.txt}{\from{\jobname.dtx}{readme}} + \file{achemso-demo.tex}{\from{\jobname.dtx}{demo}} } \endbatchfile %</install> +%<*readme> +---------------------------------------------------------------- +achemso --- Support for submissions to American Chemical + Society journals +Maintained by Joseph Wright +E-mail: joseph.wright@morningstar2.co.uk +Originally developed by Mats Dahlgren + (c) 1996-98 by Mats Dahlgren + (c) 2007-2008 Joseph Wright +Released under the LaTeX Project Public license v1.3c or later +See http://www.latex-project.org/lppl.txt + +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. +---------------------------------------------------------------- + +The achemso bundle provides a LaTeX class file and BibTeX style +file in accordance with the requirements of the American +Chemical Society. The files can be used for any documents, but +have been carefully designed and tested to be suitable for +submission to ACS journals. + +The bundle also includes the natmove package. This package is +loaded by achemso, and provides automatic moving of superscript +citations after punctuation. +%</readme> %<*ignore> \fi % Will Robertson's trick @@ -135,13 +249,11 @@ %</ignore> %<*driver> \PassOptionsToClass{a4paper}{article} -\documentclass{ltxdoc} +\documentclass[german,english,UKenglish]{ltxdoc} \EnableCrossrefs \CodelineIndex \RecordChanges %\OnlyDescription -% The various formatting commands used in this file are collected -% together in |jawltxdoc|. \usepackage{jawltxdoc} \begin{document} \DocInput{\jobname.dtx} @@ -149,9 +261,9 @@ %</driver> % \fi % -%\CheckSum{189} +%\CheckSum{1371} % -%\CharacterTable +% \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z % Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z % Digits \0\1\2\3\4\5\6\7\8\9 @@ -169,613 +281,2469 @@ % %\GetFileInfo{\jobname.sty} % +%\DoNotIndex{\@Esphack,\@afterindentfalse,\@afterindenttrue} +%\DoNotIndex{\@author@i,\@auxout,\@biblabel,\@bsphack,\@citex} +%\DoNotIndex{\@currenvir,\@empty,\@evenfoot,\@evenhead,\@firstoftwo} +%\DoNotIndex{\@floatboxreset,\@fnsymbol,\@for,\@gobble} +%\DoNotIndex{\@ifclassloaded,\@ifmtarg,\@ifpackageloaded,\@ifstar} +%\DoNotIndex{\@ifundefined,\@ignorefalse,\@m,\@maketitle,\@ne} +%\DoNotIndex{\@oddfoot,\@oddhead,\@onlypreamble,\@roman} +%\DoNotIndex{\@secondoftwo,\@secpenalty,\@shorttitle,\@ssect} +%\DoNotIndex{\@startsection,\@tempskipa,\@title,\active,\addpenalty} +%\DoNotIndex{\addvspace,\advance,\AtBeginDocument,\begin} +%\DoNotIndex{\begingroup,\bfseries,\bot,\catcode,\centering} +%\DoNotIndex{\citation,\cite,\citenum,\citenumfont,\ClassError} +%\DoNotIndex{\ClassInfo,\ClassWarning,\csname,\dagger,\ddagger} +%\DoNotIndex{\def,\define@boolkeys,\define@choicekey,\define@cmdkeys} +%\DoNotIndex{\do,\document,\doublespacing,\edef,\else,\end} +%\DoNotIndex{\endcsname,\endgroup,\endinput,\ensuremath,\everypar} +%\DoNotIndex{\expandafter,\fi,\figurename,\floatname} +%\DoNotIndex{\floatplacement,\floatstyle,\footnotetext} +%\DoNotIndex{\frenchspacing,\futurelet,\g@addto@macro,\gdef} +%\DoNotIndex{\global,\hbox,\hfil,\if@filesw,\if@ignore,\if@nobreak} +%\DoNotIndex{\if@noskipsec,\ifcase,\ifcsname,\ifdim,\iffalse,\ifnum} +%\DoNotIndex{\ifx,\ignorespaces,\immediate,\InputIfFileExists} +%\DoNotIndex{\itshape,\jobname,\kv@set@family@handler,\kvsetkeys} +%\DoNotIndex{\labelformat,\LARGE,\large,\lastskip,\leavevmode} +%\DoNotIndex{\let,\LoadClass,\lowercase,\m@ne,\maketitle} +%\DoNotIndex{\mathchardef,\mathsection,\MessageBreak,\NeedsTeXFormat} +%\DoNotIndex{\newcommand,\newcount,\newfloat,\newif,\newpage} +%\DoNotIndex{\newwrite,\nocite,\null,\openout,\or,\PackageError} +%\DoNotIndex{\PackageInfo,\PackageWarning,\pagestyle,\par} +%\DoNotIndex{\ProcessOptionsX,\protected@edef,\ProvidesClass} +%\DoNotIndex{\ProvidesFile,\ProvidesPackage,\relax} +%\DoNotIndex{\renewcommand,\RequirePackage,\reset@font} +%\DoNotIndex{\restylefloat,\schemename,\section,\setbox,\setkeys} +%\DoNotIndex{\sf,\sfcode,\sffamily,\skip@,\space,\spacefactor} +%\DoNotIndex{\string,\subsection,\subsubsection,\tablename,\textit} +%\DoNotIndex{\textsuperscript,\textwidth,\the,\thepage,\truncate} +%\DoNotIndex{\tw@,\unskip,\url,\UrlFont,\value,\vskip,\wd,\write} +%\DoNotIndex{\xdef,\z@} +% +%\DoNotIndex{\@firstofone,\aftergroup} +% +%\DoNotIndex{\nmv@citetrue,\nmv@citex,\nmv@ifmtarg} +% %\changes{v1.0}{1998/06/01}{Initial release of package by Mats % Dahlgren} %\changes{v2.0}{2007/01/17}{Re-write of package by Joseph Wright} -%\changes{v2.0}{2007/01/17}{Several improvements to BibTeX style -% files} -%\changes{v2.0}{2007/01/17}{License changed to LPPL} -%\changes{v2.1}{2007/02/15}{Updated documentation to reflect 3rd -% edition of ACS Style Guide} -%\changes{v2.1}{2007/02/15}{\BibTeX\ style improved to reflect 3rd -% edition of ACS Style Guide} -%\changes{v2.2}{2007/06/05}{Added \pkg{natbib} support} -%\changes{v2.2a}{2007/07/08}{Fixed separation of editor names} -%\changes{v2.2a}{2007/07/08}{Bug fixes to \pkg{natbib} and list -% support} -%\changes{v2.2a}{2007/07/08}{\texttt{title} field included in output -% for \texttt{incollection} records} -%\changes{v2.2b}{2007/07/09}{Bug fix to name formatting} -%\changes{v2.2d}{2007/10/16}{Added \textsc{url} field to -% \texttt{misc} output} -%\changes{v2.2d}{2007/10/16}{Package design improved} -%\changes{v2.2e}{2008/01/16}{Added \pkg{mciteplus} support} -%\changes{v2.2e}{2008/01/16}{Documentation improvements} -%\changes{v2.2f}{2008/01/16}{Combined \pkg{mciteplus} and -% \pkg{natbib} support} -%\changes{v2.2g}{2008/01/21}{Support for \emph{Industrial -% \& Engineering Chemistry Research}} -% -%\DoNotIndex{\@biblabel,\@eha,\@gobble,\@ifpackageloaded} -%\DoNotIndex{\@ifundefined,\citeform,\citeleft,\citeright} -%\DoNotIndex{\DeclareOption,\else,\emph,\ExecuteOptions} -%\DoNotIndex{\fi,\ifx,\MessageBreak,\NeedsTeXFormat,\newcommand} -%\DoNotIndex{\newif,\OptionNotUsed,\PackageError,\PackageWarning} -%\DoNotIndex{\ProcessOptions,\ProvidesPackage,\relax} -%\DoNotIndex{\renewcommand,\RequirePackage,\string,\textit} -% -%\title{\currpkg --- \texorpdfstring{\LaTeX}{LaTeX} and -% \texorpdfstring{\BibTeX}{BibTeX} support for American -% Chemical Society publications^^A -% \thanks{This file describes version \fileversion, last revised -% \filedate.}} -% \author{Joseph Wright^^A -% \thanks{E-mail: joseph.wright@morningstar2.co.uk}} -% \date{Released \filedate} +%\changes{v3.0}{2008/07/20}{Second re-write, converting to a class +% and giving much tighter integration with \textsc{acs} submission +% system} +% +%\setkeys{lst}{language=[LaTeX]{TeX},moretexcs={bibnote,email,% +% affiliation}} +% +%\title{\currpkg\ --- Support for submissions to American +% Chemical Society journals^^A +% \thanks{This file describes version \fileversion, last revised +% \filedate.}} +%\author{Joseph Wright^^A +% \thanks{E-mail: joseph.wright@morningstar2.co.uk}} +%\date{Released \filedate} % %\maketitle % +%\newcommand*{\ACS}{\textsc{acs}} %\begin{abstract} -% The \currpkg package provides a \BibTeX\ style in accordance with -% the requirements of the journals of the American Chemical Society, -% along with a supporting \LaTeX\ package file. Also provided are a -% number of \BibTeX\ style files to be used for bibliography database -% listings, including support for \pkg{natbib} and \pkg{mciteplus}. +% The \currpkg bundle provides a \LaTeX\ class file and \BibTeX\ +% style file in accordance with the requirements of the American +% Chemical Society. The files can be used for any documents, but +% have been carefully designed and tested to be suitable for +% submission to \ACS\ journals. +% +% The bundle also includes the \pkg{natmove} package. This package +% is loaded by \currpkg, and provides automatic moving of superscript +% citations after punctuation. %\end{abstract} % +%\begin{multicols}{2} +% \tableofcontents +%\end{multicols} +% %\section{Introduction} -% Synthetic chemists do not, in the main, use \LaTeX\ for the -% preparation of journal articles. Some journals, mainly in the -% physical chemistry area, do accept \LaTeX\ submissions. Given the -% clear advantages of \LaTeX\ over other methods, it would be nice to -% be able to use \LaTeX\ for preparing reports. Thus the need for -% \BibTeX\ styles for chemistry is real. The package \currpkg -% provides for a \BibTeX\ style and other support for articles and -% reports in the style of the American Chemical Society (ACS). -% -% As describe in \emph{The ACS Style Guide} \cite{Coghill2006}, -% almost all ACS publications use the same style for the formatting -% of references. The reproduction of this style is the aim of the -% \BibTeX\ style file provided here. However, the ACS use different -% citation styles in different publications. The \currpkg package -% provides support for the two numerical systems: superscript and -% italic in-text citations. The majority of ACS journals use the -% superscript method (Table \ref{tbl:journals-super}), with a smaller -% number using the italic system (Table \ref{tbl:journals-inline}). -% The journal \emph{Biochemistry} does not use the standard ACS style -% for references, and so is not covered by the \currpkg package. The -% journal \emph{Industrial \& Engineering Chemistry Research} uses a -% modification of the standard ACS style; it is covered by \currpkg -% using the \file{iecr.bst} files and derivatives. -%\begin{table} -% \centering -% \small -% \begin{tabular}{>{\itshape}l>{\itshape}l} -% \toprule -% \upshape{Journal Title} & \upshape{\emph{CASSI} Abbreviation} \\ -% \midrule -% Accounts of Chemical Research & Acc.~Chem.~Res. \\ -% Analytical Chemistry & Anal.~Chem. \\ -% Biomacromolecules & Biomacromolecules \\ -% Chemical Reviews & Chem.~Rev. \\ -% Chemistry of Materials & Chem.~Mater. \\ -% Crystal Growth \& Design & Cryst.~Growth Des. \\ -% Energy \& Fuels & Energy Fuels \\ -% Industrial \& Engineering Chemistry Research & Ind.~Eng.~Chem.~Res. \\ -% Inorganic Chemistry & Inorg.Chem. \\ -% Journal of the American Chemical Society & J.~Am.~Chem.~Soc. \\ -% Journal of Chemical and Engineering Data & J.~Chem.~Eng.~Data \\ -% Journal of Chemical Theory and Computation & J.~Chem.~Theory Comput. \\ -% Journal of Chemical Information and Modeling & J.~Chem.~Inf.~Model. \\ -% Journal of Combinatorial Chemistry & J.~Comb.~Chem. \\ -% Journal of Medicinal Chemistry & J.~Med.~Chem. \\ -% Journal of Natural Products & J.~Nat.~Prod. \\ -% The Journal of Organic Chemistry & J.~Org.~Chem. \\ -% The Journal of Physical Chemistry A & J.~Phys.~Chem.~A \\ -% The Journal of Physical Chemistry B & J.~Phys.~Chem.~B \\ -% The Journal of Physical Chemistry C & J.~Phys.~Chem.~C \\ -% Journal of Proteome Research & J.~Proteome Res. \\ -% Langmuir & Langmuir \\ -% Macromolecules & Macromolecules \\ -% Molecular Pharmaceutics & Mol.~Pharm. \\ -% Nano Letters & Nano Lett. \\ -% Organic Letters & Org.~Lett. \\ -% Organic Process Research \& Design & Org.~Process Res.~Dev. \\ -% Organometallics & Organometallics \\ -% \bottomrule -% \end{tabular} -% \caption{Journals using the ACS reference style with superscript citations} -% \label{tbl:journals-super} -%\end{table} +%\newcommand*{\REVTeX}{REV\TeX4} +% Support for \BibTeX\ bibliography following the requirements of the +% American Chemical Society (\ACS), along with a package to make +% these easy to have been available since version one of \currpkg. +% The re-write from version 1 to version 2 made a number of +% improvements to the package, and also added a number of new +% features. However, neither version one nor version two of the +% package was targeted directly at use for submissions to \ACS\ +% journals. This new release of \currpkg addresses this issue. +% +% The bundle consists of four parts. The first is a \LaTeXe\ class, +% intended for use in submissions. It is based on the standard +% \pkg{article} class, but makes various changes to facilitate ease +% of use. The second part is the \LaTeX\ package, which is loaded by +% the class. The package contains the parts of the bundle which +% might be appropriate for use with other document +% classes.\footnote{For example, when writing a thesis.} Thirdly, +% two \BibTeX\ style files are included. These are used by both the +% class and the package, but can be used directly if desired. +% Finally, an example document is included; this is intended to act a +% potential template for submission, and illustrates the use of the +% class file. +% +%\section{The class file} +% The class file has been designed for use in submitting journals to +% the \ACS. It uses all of the modifications described here (those in +% the package as well as those in the class). The accompanying +% example manuscript can be used as a template for the correct use of +% the class file. It is intended to act as a model for submission. +% +%\subsection{Class options} +%\DescribeOption{journal} +% The class supports a limited number of options, which are +% specifically-targeted at submission. The class uses the +% \pkg{keyval} system for options, in the form \opt{key=value}. The +% most important option is \opt{journal}. This is the name of the +% target journal for the publication. The package is designed such +% that the choice of journal will set up the correct bibliography +% style and so on. The journals currently recognised by the package +% are summarised in Table~\ref{tbl:journal}. If an unknown journal +% is specified, the package will fall-back on the +% \opt{journal=jacsat} option. %\begin{table} -% \small -% \centering -% \begin{tabular}{>{\itshape}l>{\itshape}l} -% \toprule -% \upshape{Journal Title} & \upshape{\emph{CASSI} Abbreviation} \\ -% \midrule -% ACS Chemical Biology & ACS Chem.~Biol. \\ -% Bioconjugate Chemistry & Bioconjugate Chem. \\ -% Biotechnology Progress & Biotechnol.~Prog. \\ -% Chemical Research in Toxicology & Chem.~Res.~Toxicol. \\ -% Environmental Science and Technology & Envirn.~Sci.~Technol. \\ -% Journal of Agricultural and Food Chemistry & J.~Agric.~Food Chem. \\ -% \bottomrule -% \end{tabular} -% \caption{Journals using the ACS reference style with in-text citations} -% \label{tbl:journals-inline} +% \centering +% \begin{tabular}{>{\itshape}l>{\ttfamily}l} +% \toprule +% Journal & Setting \\ +% \midrule +% Acc.\ Chem.\ Res. & achre4 \\ +% ACS Chem.\ Biol. & acbcct \\ +% ACS Nano & ancac3 \\ +% Anal.\ Chem. & ancham \\ +% Biochemistry & bichaw \\ +% Bioconjugate Chem. & bcches \\ +% Biomacromolecules & bomaf6 \\ +% Biotechnol.\ Prog. & bipret \\ +% Chem.\ Res.\ Toxicol. & crtoec \\ +% Chem.\ Rev. & chreay \\ +% Chem.\ Mater. & cmatex \\ +% Cryst.\ Growth Des. & cgdefu \\ +% Energy Fuels & enfuem \\ +% Environ.\ Sci.\ Technol. & esthag \\ +% Ind.\ Eng.\ Chem.\ Res. & iecred \\ +% Inorg.\ Chem. & inoraj \\ +% J.~Agric.\ Food Chem. & jafcau \\ +% J.~Chem.\ Eng.\ Data & jceaax \\ +% J.~Chem.\ Inf.\ Model. & jcisd8 \\ +% J.~Chem.\ Theory Comput. & jctcce \\ +% J.~Comb.\ Chem. & jcchff \\ +% J.~Med.\ Chem. & jmcmar \\ +% J.~Nat.\ Prod. & jnprdf \\ +% J.~Org.\ Chem. & joceah \\ +% J.~Phys.\ Chem.~A & jpcafh \\ +% J.~Phys.\ Chem.~B & jpcbfk \\ +% J.~Phys.\ Chem.~C & jpccck \\ +% J.~Proteome Res. & jprobs \\ +% J.~Am.\ Chem.\ Soc. & jacsat \\ +% Langmuir & langd5 \\ +% Macromolecules & mamobx \\ +% Mol.\ Pharm. & mpohbp \\ +% Nano Lett. & nalefd \\ +% Org.\ Lett. & orlef7 \\ +% Org.\ Proc.\ Res.\ Dev. & oprdfk \\ +% Organometallics & orgnd7 \\ +% \bottomrule +% \end{tabular} +% \caption{Values for \opt{journal} option} +% \label{tbl:journal} %\end{table} % -% This package consists of a number of \BibTeX\ files along with a -% small \LaTeX\ file \file{achemso.sty}. The naming of the package is -% slightly unusual, but follows from the need to pick a unique name. -% To quote the documentation to the first version: -%\begin{quote} -% there is already a \LaTeX\ 2.09 and \BibTeX\ style package called -% \pkg{acsarticle} and \file{acs.bst}, which are not ``ACS'' as in -% `American Chemical Society' (rather, this package is formatting -% the output according to the instructions of \emph{Advances in -% Control Systems}). Hence, \emph{this} new package had to be -% given another name. The name of choice was then \pkg{achemso}, -% which is made from the words ``\emph{A}merican \emph{Chem}ical -% \emph{So}ciety.'' -% \end{quote} -% -%\subsection{Change of maintainer} -% This package was initially released by Mats Dahlgren. He no longer -% has time to devote to \LaTeX\ development. With his permission, -% the package has therefore been taken over by Joseph Wright, the -% maintainer of the the \pkg{rsc} package. The majority of the -% package has been rebuilt and the \BibTeX\ style file has been -% totally overhauled. Any mistakes are entirely the fault of the new -% maintainer! +%\DescribeOption{manuscript} +% The second option is the \opt{manuscript} option. This specifies +% the type of paper in the manuscript. The values here are +% \opt{article}, \opt{note}, \opt{communication}, \opt{review}, +% \opt{letter} and \opt{perspective}. The valid values will depend on +% the value of \opt{journal}. The \opt{manuscript} option determines +% whether sections and an abstract are valid. The value +% \opt{suppinfo} is also available for supporting information. +% +% Other options are provided by the package, but when used with the +% class these are silently ignored. +% +%\subsection{Manuscript meta-data} +%\DescribeMacro{\title} +% When using the \currpkg class, the \cs{title} macro takes an +% optional argument. This is intended for a short version of the +% title, for use in running headers. The title in the running +% headers is designed to ensure that print-outs of the manuscript are +% easily identified. +% +%\DescribeMacro{\author} +%\DescribeMacro{\affiliation} +%\DescribeMacro{\altaffiliation} +%\DescribeMacro{\email} +% Inspired by \REVTeX, the \currpkg class alters the method for +% adding author information to the manuscript. Each author should be +% given as a separate \cs{author} command. These should be followed +% by an \cs{affiliation}, which applies to the preceding authors. The +% \cs{affiliation} macro takes an optional argument, for a short +% version of the affiliation.\footnote{This will usually be the +% university or company name.} At least one author should be +% followed by an \cs{email} macro, containing contact details. All +% authors with an e-mail address are automatically marked with a +% star. The example manuscript demonstrates the use of all of these +% macros. +%\begin{LaTeXexample}[noexample] +% \author{Author Person} +% \author{Second Bloke} +% \email{second.bloke@some.place} +% \affiliation[University of Sometown] +% {University of Somewhere, Sometown, USA} +% \author{Indus Trialguy} +% \email{i.trialguy@sponsor.co} +% \affiliation[SponsoCo] +% {Research Department, SponsorCo, BigCity, USA} +%\end{LaTeXexample} +% +%\DescribeMacro{\and} +%\DescribeMacro{\thanks} +% The method used for setting the meta-data means that the normal +% \cs{and} and \cs{thanks} macros are not appropriate in the \currpkg +% class. Both produce a warning if used. +% +% The meta-data items should be given in the preamble to the \LaTeX\ +% file, and no \cs{maketitle} macro is required in the document body. +% This is all handled by the class file directly. At least one +% author, affiliation and e-mail address must be specified. +% +%\subsection{Bibliography notes} +%\DescribeMacro{\bibnote} +% By loading the \pkg{notes2bib} package, the class provides the +% \cs{bibnote} macro. This is intended for addition of notes to the +% bibliography (references). The macro accepts a single argument, +% which is transferred to the bibliography by \BibTeX. +%\begin{LaTeXexample} +% Some text \bibnote{This note text will be in +% the bibliography}. +%\end{LaTeXexample} +% +%\subsection{Floats} +%\DescribeEnv{scheme} +%\DescribeEnv{chart} +%\DescribeEnv{graph} +% The class defines three new floating environments: \texttt{scheme}, +% \texttt{chart} and \texttt{graph}.\footnote{This is done in the +% class as life is complex for packages due to differing mechanisms +% in \pkg{memoir} and \textsc{koma}-script.} These can be used as +% expected to include graphical content. The placement of these new +% floats and the standard \texttt{table} and \texttt{figure} floats +% is altered to be ``here'' if possible. The contents of all floats +% is automatically horizontally centred on the page. +% +% Cross-referencing to floats automatically includes the name of the +% floating environment. For example, \texttt{\cs{ref}\{table:one\}} +% will yield ``Table~1'' without the user adding the ``Table'' part. +% +%\section{The package file} +% The package file is loaded by the class, but can also be loaded +% independently. The class contains only items focussed on +% submission; more generally-useful items are stored in the package. +% +%\subsection{Altering the behaviour of \pkg{natbib}} +% \currpkg comes with the \pkg{natmove} package, which adds +% \pkg{cite}-like functionality to \pkg{natbib}.\footnote{The code is +% a copy from \pkg{cite} with minor modifications.} Thus citations +% may be made using all of the \pkg{natbib} commands +% (\cs{citeauthor}, \cs{citeyear}, \etc). For superscript citations, +% the number will be moved after punctuation as needed. The user +% should therefore write citations suitable for ``in line'' use and +% leave the positioning to the package. +%\begin{LaTeXexample} +% Some text \cite{Coghill2006} some more text.\\ +% Some text ending a sentence \cite{Coghill2006}. +%\end{LaTeXexample} +% +%\subsection{Package options} +% The \opt{journal} and \opt{manuscript} options have no effect when +% using the package without the class. Instead, the user can control +% various aspects of the behaviour of the package +% directly.\footnote{Using the package alone probably means a report +% or thesis is being written, and so prescriptive application of +% journal style is not appropriate.} The options all relate to +% aspects of reference handling. +% +%\DescribeOption{super} +% The \opt{super} option affects the handling of superscript +% reference markers. The option switches this behaviour +% on and off (and takes Boolean values: \opt{super=true} and +% \opt{super=false} are valid). +% +%\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}. +% +%\DescribeOption{biblabel} +% Redefining the formatting of the numbers used in the bibliography +% usually requires modifying internal \LaTeX\ macros. The +% \opt{biblabel} option makes these changes more accessible: valid +% values are \opt{plain} (use the number only), \opt{brackets} +% (surround the number in brackets) and \opt{period} or +% \opt{fullstop} (follow the number by a full stop/period). +% +%\DescribeOption{biochemistry} +%\DescribeOption{biochem} +% Most \ACS\ journals use the same bibliography style, with the only +% variation being the inclusion of article titles. However, a small +% number of journals use a rather different style; the journal +% \emph{Biochemistry} is probably the most prominent. The +% \opt{biochemistry} or \opt{biochem} option uses the style of +% \emph{Biochemistry} for the bibliography, rather than the normal +% \ACS\ style. For this style, the \opt{usetitle=true} option is the +% default.\footnote{More accurately, the default built into the +% \BibTeX\ style file is to use article titles with the +% \emph{Biochemistry} style.} % %\section{The \texorpdfstring{\BibTeX}{BibTeX} style files} +% \currpkg is supplied with two style files, \file{achemso.bst} and +% \file{biochem.bst}. The direct use of these without the \currpkg +% package file is not recommended, but is possible. The style files +% can be loaded in the usual way, with a \cs{bibliographystyle} +% command. The \pkg{natbib} and \pkg{micteplus} packages must be +% loaded by the \LaTeX\ file concerned, if the \pkg{achemso} package +% is not in use. +% % The \BibTeX\ style files implement the bibliographic style -% specified by the ACS in \emph{The ACS Style Guide} -% \cite{Coghill2006}, on the ACS website \cite{ACS2007}, and in -% current ACS publications. Some of this information can be -% contradictory, and \emph{The ACS Style Guide} sometimes gives more -% than one option as a model. In order to resolve cases where several -% possibilities are available current editions of the \emph{Journal -% of the American Chemical Society} have been consulted; the current -% consensus there has been taken as the correct approach. In -% addition to the problem of picking the correct style, some of the -% \BibTeX\ record types are difficult to match to standard references -% in ACS journals. The ``best guess'' has been taken with these. -% -%\subsection{Additional record types} -% In general, the database record types supported here follow those -% in the standard \BibTeX\ style files. Four additional record types -% are provided: -% \begin{description} -% \item[|patent|] A patent: formatting is similar to other record -% types. The data entry for this record type follows the -% pattern used in \file{rsc.bst}: |journal| is used to hold -% the patent type (\eg.~``U.S.~Patent''), with the patent -% number given in |pages|. Whilst this format is non-standard, -% it is relatively easy to use and implement! -% \item[|submitted|] Articles submitted to journals but not -% yet accepted: appends ``submitted'' in a suitable fashion -% to the entry. -% \item[|inpress|] Articles in press: appends ``in press'' or, -% if available, the DOI number assigned to the article. -% \item[|remark|] A note with no other information to be -% included. Output consists purely of the |note| field. -% \end{description} -% -%\subsection{\texorpdfstring{\BibTeX}{BibTeX} database entry -% requirements} -% The requirements for entries in the \BibTeX\ database are slightly -% different using \file{achemso.bst} to the standard style files. -% This is mainly because some fields are not cited in ACS -% bibliographies. In particular, journal articles do not require a -% title (the |title| field is ignored). Articles in books and -% ``collections'' only need the title of the book. If a chapter title -% is given for an |incollection| record, it will be printed, but not -% in the case of an |inbook| record. -% -%\subsection{References to software} -% Referencing software is always a little difficult. The style files -% provided here follow the normal \LaTeX\ convention of using the -% |manual| record type to cite software. The only requirement is a -% |title|, but fields such as |organization| may be used for more -% detail. The |edition| field is used to format the software version -% correctly: this will automatically be prefixed with ``version'' by -% the style file. -% -%\subsection{The \texttt{annotate} field} -% The standard \BibTeX\ styles use the |note| field for notes to be -% added to the citation. However, it is common to want personal -% notes about references. This is catered for using the |annotate| -% field. The style \file{achemso} ignores the |annotate| field, -% whilst the \file{achemsol} style appends the |annotate| information -% to the bibliographic output. Thus \file{achemsol} is intended for -% use in database maintenance, whilst \file{achemso} is for -% production bibliographies. -% -%\DescribeMacro{\refin} -% For use in the |annotate| field the macro \cmd{\refin} is defined -% in \file{achemso.bst} and \file{achemsol.bst}. The command takes a -% single argument \marg{text}, and gives the output -% \textbf{Referenced in: text}. This command takes one argument -% (normally text) which is preceded by the text ``\textbf{Referenced -% in:} \meta{text}''. The \cs{refin} command is intended for tracking -% citations ``backward'' through the database. For example, this -% could be used to link citations in a database to the writer's own -% papers. -% -%\subsection{Predefined journal abbreviations} -% A number of journal abbreviations are defined in the \ext{bst} files. -% The abbreviations cover a number ACS journals, several other -% physical chemistry publications and other journals listed as -% highly cited by \emph{Chem.\ Abs.}\ The interested user should -% consult the \ext{bst} files for full details. -% -%\subsection{Multiple citations: \pkg{mciteplus} support} -% By default, \BibTeX\ does not handle producing compound references. -% The \pkg{mciteplus} package solves this problem, and is highly -% recommended to users of \currpkg. This allows you to put something -% like: -%\begin{LaTeXexample}[\typesetcodeonly] -% \documentclass{article} -% \usepackage{mciteplus} -% \begin{document} -% \cite{Wanzlick1962,*Ofele1968} -% \bibliography{example} -% \bibliographystyle{achemsoM} -% \end{document} -%\end{LaTeXexample} -% and get output of the form: -%\begin{enumerate} -% \item (a) Wanzlick,~H.~W. \emph{{A}ngew. {C}hem., {I}nt. {E}d. -% {E}ngl.} \textbf{1962}, \emph{1}, 75--80; (b) \"Ofele,~K. -% \emph{{J}. {O}rganomet. {C}hem.} \textbf{1968}, \emph{12}, -% P42--P43. -%\end{enumerate} -% in the bibliography. Notice the change of \cs{bibliographystyle} -% from \file{achemso} to \file{achemsoM}. -% -%\subsection{\pkg{natbib} support} -% As of version 2.2, a \pkg{natbib} compatible style file, -% \file{achemnat} is provided. The style file provides the -% appropriate option, \pkg{natbib}, to load this \BibTeX\ file along -% with \pkg{natbib}, setting up the appropriate options. -% -%\section{The \texorpdfstring{\LaTeX}{LaTeX} Package} -% The current version of \file{achemso.sty} is a complete -% re-implementation of the functionality of the original file, -% designed to ensure greater compatibility with other packages. The -% only change for the user is that the bibliography section does -% \emph{not} start a new page when using the |article| document -% class. However, the package now supports all of the standard -% classes, and so the |report| class may be used to ensure a new -% page is started. -% -%\DescribeMacro{\bibliographystyle} -% Loading the \currpkg package adds the appropriate -% \cmd{\bibliographystyle} command to the \LaTeX\ source. As a -% result, subsequent \cmd{\bibliographystyle} statements will be -% ignored: a suitable warning is given. The format of citations is -% altered (using the \pkg{cite} or \pkg{natbib} package as -% appropriate), and the package ensures that the bibliography will be -% named ``References'' in all standard document types.\footnote{This -% only works if the \pkg{babel} package is \emph{not} loaded. Users -% wanting a system which works with \pkg{babel} should look at the -% \pkg{chemstyle} package. } -% -% The \currpkg package has options: -% \begin{description} -% \item[\opt{note}] If the bibliography contains notes as well -% as citations, then the section heading should be ``References -% and Notes''. This is altered by the \opt{note} package -% option. -% \item[\opt{number}] This option numbers the bibliography -% section (using the \pkg{tocbibind} package), and causes it to -% be entered in the Table of Contents. -% \item[\opt{list}] This option is intended for creating a listing -% of the entire \BibTeX\ database. The BibTeX style is changed -% to \currpkg, which will output the additional database field -% |annotate|, intended for personal notes about a particular -% database entry. It also adds the \BibTeX\ key for each -% citation as a marginal note to the output, using the -% \pkg{showkeys} package. -% \item[\opt{notsuper}] Switches from superscript citations -% (\eg.~Author \emph{et al.}$^3$) to in-text ones in italics -% (\eg.~Author \emph{et al.}~(\emph{3})). There is a \opt{super} -% option for completeness, which simply gives the default -% behaviour. -% \item[\opt{natbib}] Uses \pkg{natbib} rather than \pkg{cite} -% for citation formatting; this also loads the \file{achemnat} -% style in place of \file{achemso}. -% \item[\opt{mcite}] Uses the \pkg{mciteplus}-compatible version -% of the \BibTeX\ style file, and loads \pkg{mciteplus}. -% \item[\opt{iecr}] Uses a setup suitable for the journal -% \emph{Industrial \& Engineering Chemical Research}. -% \item[\opt{usetitle}] Adds journal titles in bibliography -% (equivalent to \opt{iecr} option). -% \end{description} -% -%\StopEventually{\bibliography{achemso}} -% -%\section{The Package Code} -% The package code is not very complicated. For the interested -% reader(s), it is presented here. The usual setup code is executed. +% specified by the \ACS\ in \emph{The ACS Style Guide} +% \cite{Coghill2006}. By default, article titles are not included in +% output using the \file{achemso.bst} file, but are with the +% \file{biochem.bst} file. +% +%\StopEventually{% +% \PrintChanges +% \PrintIndex +% \bibliography{achemso}} +% +%\iffalse +%<*class> +%\fi +%\section{The class file} +%\subsection{Setup code} +% The first task of the class is the usual identification. % \begin{macrocode} -%<*package> \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{achemso} - [2008/04/16 v2.2i LaTeX and BibTeX support for American - Chemical Society publications] -% \end{macrocode} -%\begin{macro}{\ifACS@sctnnmbr} -%\begin{macro}{\ifACS@list} -%\begin{macro}{\ifACS@note} -%\changes{v2.0}{2007/01/17}{Boolean values made internal to package} -%\begin{macro}{\ifACS@super} -%\changes{v2.1}{2007/02/15}{New Boolean for citation control} -%\begin{macro}{\ifACS@natbib} -%\changes{v2.2a}{2007/07/08}{New Boolean for \pkg{natbib} support} -%\begin{macro}{\ifACS@mcite} -%\changes{v2.2e}{2008/01/16}{New macro} -%\begin{macro}{\ifACS@iecr} -%\changes{v2.2g}{2008/01/21}{New macro} -% Boolean values are used to handle the options. -% \begin{macrocode} -\newif\ifACS@sctnnmbr\ACS@sctnnmbrfalse -\newif\ifACS@list\ACS@listfalse -\newif\ifACS@note\ACS@notefalse -\newif\ifACS@super\ACS@supertrue -\newif\ifACS@natbib\ACS@natbibfalse -\newif\ifACS@mcite\ACS@mcitefalse -\newif\ifACS@iecr\ACS@iecrfalse -% \end{macrocode} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -% The options are processed. -%\changes{v2.2d}{2007/10/16}{Added \opt{notes} option} -%\changes{v2.2i}{2008/04/16}{Added \opt{usetitle} option} -% \begin{macrocode} -\DeclareOption{note}{\ExecuteOptions{notes}} -\DeclareOption{notes}{\ACS@notetrue} -\DeclareOption{number}{\ACS@sctnnmbrtrue} -\DeclareOption{super}{\ACS@supertrue} -\DeclareOption{list}{\ACS@listtrue} -\DeclareOption{notsuper}{\ACS@superfalse} -\DeclareOption{natbib}{\ACS@natbibtrue} -\DeclareOption{mcite}{\ACS@mcitetrue} -\DeclareOption{iecr}{\ACS@iecrtrue} -\DeclareOption{usetitle}{\ACS@iecrtrue} -\DeclareOption*{\OptionNotUsed} -\ProcessOptions\relax -% \end{macrocode} -%\changes{v2.1}{2007/02/15}{\pkg{cite} package is loaded with different -% options depending on citation style requested} -%\changes{v2.2a}{2007/07/08}{\pkg{natbib} support added} -% The \pkg{cite} package is loaded to sort and compress references -% correctly. Depending upon the package option given, citations are -% either superscript or italic and in parentheses. -% \begin{macrocode} -\ifACS@natbib - \ifACS@super - \RequirePackage[numbers,sort&compress,super]{natbib} - \else +\LoadClass[12pt]{article} +\RequirePackage[etex=false]{notes2bib}[2008/06/21] +\RequirePackage{achemso} +\ProvidesClass{achemso} + [\acs@ver Submissions to ACS journals] % \end{macrocode} -%\begin{macro}{\citenumfont} -% For in-line citations with \pkg{natbib}, we have to do a bit of -% work to get things to look right. \pkg{natbib} uses -% \cs{citenumfont} to format the numbers, but it is not defined by -% default, so we have to use \cs{newcommand}. +% The necessary support is loaded. % \begin{macrocode} - \RequirePackage[numbers,sort&compress,round]{natbib} - \newcommand*{\citenumfont}{\textit} - \fi -\else - \ifACS@super +\RequirePackage[T1]{fontenc} +\RequirePackage[scaled=0.90]{helvet} +\RequirePackage[margin=2.54cm]{geometry} +\RequirePackage{mathptmx,courier,setspace,graphicx,truncate,% + float,varioref} +\AtBeginDocument{\doublespacing} % \end{macrocode} +% +%\subsection{Meta-data changes} +%\begin{macro}{\title} +%\begin{macro}{\@title} +%\begin{macro}{\acs@title} +%\begin{macro}{\@shorttitle} +% For the meta-data, the \REVTeX\ bundle provides a good model for +% the commands to give the author. First of all, the \cs{title} +% macro is given an optional argument. \cs{gdef} is used here to +% avoid any odd grouping issues. The various title macros are all +% ``trapped'' in the preamble. As the argument of \cs{title} is +% needed in the document body, \cs{acs@title} is defined to store it +% without deletion. +% \begin{macrocode} +\renewcommand*{\title}[2][]{% + \gdef\@title{#2}% + \gdef\acs@title{#2}% + \gdef\@shorttitle{#1}} +\@onlypreamble\title +% \end{macrocode} +%\end{macro} %\end{macro} -%\changes{v2.2c}{2007/08/22}{Use the \pkg{overcite} alias for -% \pkg{cite} as ACS have very old \LaTeX\ system} +%\end{macro} +%\end{macro} +%\begin{macro}{\acs@authorcnt} +%\begin{macro}{\acs@affilcnt} +%\begin{macro}{\acs@altaffilcnt} +% Still following \REVTeX, the \cs{author} macro is redefined. In +% this way, each author is given as a separate \cs{author} argument. % \begin{macrocode} - \RequirePackage[nospace]{overcite} - \else +\newcount\acs@authorcnt +\newcount\acs@affilcnt +\newcount\acs@altaffilcnt % \end{macrocode} -% Again in-line citations need some format changes. In the case of -% \pkg{cite}, everything is defined initially. Thus we can use -% \cs{renewcommand} for everything. +%\end{macro} +%\end{macro} +%\end{macro} +%\begin{macro}{\author} +% The affiliation count starts at two so that \cs{@fnsymbol} does not +% give a star. % \begin{macrocode} - \RequirePackage{cite} - \renewcommand{\citeleft}{(} - \renewcommand{\citeright}{)} - \renewcommand{\citeform}[1]{\emph{#1}} - \fi -\fi +\acs@affilcnt\@ne\relax +\acs@altaffilcnt\@ne\relax +\renewcommand*{\author}[1]{% + \global\advance\acs@authorcnt\@ne\relax + \expandafter\gdef + \csname @author@\@roman\the\acs@authorcnt\endcsname{#1}% % \end{macrocode} -% If the \pkg{babel} package is loaded, the \opt{note} option does -% not work. So it is disabled here with a suitable warning. +% The affiliation counter needs to be one higher than the current value. +% This is best achieved using a group. % \begin{macrocode} -\@ifpackageloaded{babel} - {\ACS@notefalse\PackageWarning{achemso}% - {babel package loaded - note option disabled}} - {} + \begingroup + \advance\acs@affilcnt\@ne\relax + \expandafter\xdef + \csname @author@affil@\@roman\the\acs@authorcnt\endcsname + {\the\acs@affilcnt}% + \endgroup} +\@onlypreamble\author % \end{macrocode} -%\begin{macro}{\ACS@biberror} -%\changes{v2.2e}{2008/01/16}{Improved error message} -% The function \cs{ACS@biberror} is defined here to provide an easy -% way of generating a warning if there is no name for a bibliography -% section. This will only happen with non-standard class files. -% \begin{macrocode} -\newcommand*{\ACS@biberror}{\PackageError{achemso}% - {No bibliography name command defined} - {The document class you have used does not define - \string\refname\MessageBreak or \string\bibname}} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\refname} -%\begin{macro}{\bibname} -% The \opt{note} option renames the references section to -% ``References and Notes''. This applies for all standard document -% classes. The term ``Bibliography'' is not used in chemistry, the -% value of \cs{bibname} is redefined here in all cases where it -% exists. -% \begin{macrocode} -\@ifundefined{refname}{% - \@ifundefined{bibname}{% - \ACS@biberror - }{% - \ifACS@note - \renewcommand*{\bibname}{References and Notes} - \else - \renewcommand*{\bibname}{References} - \fi - } -}{% - \ifACS@note - \renewcommand*{\refname}{References and Notes} - \fi -} +%\end{macro} +%\begin{macro}{\and} +%\begin{macro}{\thanks} +% Neither \cs{and} nor \cs{thanks} are used by the document class. +% \begin{macrocode} +\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}} % \end{macrocode} %\end{macro} %\end{macro} -% If the \opt{number} option is set, the \pkg{tocbibind} package is -% used to number the bibliography. -%\changes{v2.0}{2007/01/17}{Switched to using \pkg{tocbibind} -% to produce number bibliography} +%\begin{macro}{\affiliation} +% Affiliations work in a similar manner, with a check to ensure that +% an author has been given. The \cs{affiliation} macro also saves +% the current affiliation for the check on the next run. % \begin{macrocode} -\ifACS@sctnnmbr - \RequirePackage[numbib]{tocbibind} -\fi +\newcommand*{\affiliation}[2][\relax]{% + \ifnum\acs@authorcnt>\z@\relax + \global\advance\acs@affilcnt\@ne % \end{macrocode} -%\begin{macro}{\bibliographystyle} -%\changes{v2.0}{2007/01/17}{Replaced custom code with -% \pkg{showkeys} package} -%\changes{v2.0}{2007/01/17}{Command ignored in document body} -%\changes{v2.2g}{2008/01/21}{Added \opt{iecr} code} -%\changes{v2.2h}{2008/03/12}{Fixed problem with \pkg{chapterbib}} -%\changes{v2.2h}{2008/03/12}{Style is re-applied by calling macro -% in document body} -%\begin{macro}{\acs@bibstyle} -%\changes{v2.2h}{2008/03/12}{New macro} -% Depending on the package option, the bibliography style will either -% be \file{achemso} or \file{achemsol}. The later is intended for -% listing the entire database. The \opt{list} option of the package -% selects this, and for listing also generates boxed labels for each -% reference. The \pkg{showkeys} package provides this functionality. -% If \pkg{natbib} is asked for, then the appropriate style files are -% used in place of the standard ones. -% \begin{macrocode} -\ifACS@mcite - \RequirePackage{mciteplus} -\fi -\ifACS@iecr - \ifACS@natbib - \ifACS@mcite - \newcommand*{\acs@bibstyle}{iecrnatM}% - \else - \newcommand*{\acs@bibstyle}{iecrnat}% - \fi +% A group is used here so that the address only gets locally defined; +% a global definition occurs if the address is not a duplicate. +% \begin{macrocode} + \begingroup + \expandafter\def + \csname @address@\@roman\acs@affilcnt\endcsname{#2}% +% \end{macrocode} +% There is the possibility that the affiliation has been given +% already. So a check is made. If it has, then the new affiliation +% is thrown away. +% \begin{macrocode} + \acs@tempcnta\acs@affilcnt\relax + \acs@ifdupaffil + {\begingroup + \acs@tempcntb\@ne\relax + \acs@switchfalse + \edef\acs@tempa{% + \csname @address@\@roman\acs@tempcnta\endcsname}% + \acs@ifdup@affil +% \end{macrocode} +% The affiliation number needed is now in \cs{acs@tempcntb}. Each +% author needs to be checked to swap the affiliation marker as +% needed. +% \begin{macrocode} + \acs@tempcnta\z@\relax + \edef\acs@tempa{\the\acs@affilcnt}% + \global\advance\acs@affilcnt\m@ne\relax + \acs@swapaffil + \endgroup} + {\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} + \endgroup \else - \ifACS@mcite - \newcommand*{\acs@bibstyle}{iecrM}% - \else - \newcommand*{\acs@bibstyle}{iecr}% + \ClassWarning{achemso} + {Affiliation with no author}% + \fi} +\@onlypreamble\affiliation +% \end{macrocode} +%\end{macro} +%\begin{macro}{\acs@swapaffil} +% The authors are looped through to swap the incorrect affiliation +% marker. +% \begin{macrocode} +\newcommand*{\acs@swapaffil}{% + \advance\acs@tempcnta\@ne\relax + \ifnum\acs@tempcnta>\acs@authorcnt\relax\else + \edef\acs@tempb{% + \csname @author@affil@\@roman\acs@tempcnta\endcsname}% + \ifx\acs@tempa\acs@tempb + \expandafter\xdef + \csname @author@affil@\@roman\acs@tempcnta\endcsname{% + \the\acs@tempcntb}% \fi - \fi -\else - \ifACS@list - \ifACS@natbib - \ifACS@mcite - \newcommand*{\acs@bibstyle}{achemlntM}% - \else - \newcommand*{\acs@bibstyle}{achemlnt}% + \acs@swapaffil + \fi} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\altaffiliation} +% For the alternative affiliation, a second count is kept, and the +% affiliation is ``attached'' to the author. +% \begin{macrocode} +\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 +% \end{macrocode} +%\end{macro} +%\begin{macro}{\email} +% E-mail addresses are attached to authors as well. +% \begin{macrocode} +\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 +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@maketitle} +%\changes{v3.0a}{2008/08/21}{Skips footnotes for a single +% institution} +% With the changes outlined above in place, a new \cs{@maketitle} +% macro is needed. This is partially a copy of the existing, but +% rather heavily modified. +% \begin{macrocode} +\renewcommand*{\@maketitle}{% + \ifnum\acs@authorcnt<\z@\relax + \ClassError{achemso}{No authors defined} + {At least one author is required}% + \else + \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}% + \ifnum\acs@affilcnt>\tw@\relax + \acs@affilfoot + \else + \ifnum\acs@altaffilcnt>\@ne\relax + \acs@affilfoot \fi + \fi + \vskip 1em\relax + {\sffamily E-mail: \acs@emaillist}% + \end{center} + \par + \vskip 1.5em\relax + \fi} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\acs@authorlist} +%\begin{macro}{\acs@author@list} +%\changes{v3.0a}{2008/08/21}{Skips footnotes for a single +% institution} +% Two similar macros to enumerate the authors and their affiliations. +% The total number of affiliations (main and alternative) tracked +% using \cs{acs@tempcntc}. +% \begin{macrocode} +\newcommand*{\acs@authorlist}{% + \acs@tempcnta\z@\relax + \acs@tempcntc\z@\relax + \acs@author@list} +\newcommand*{\acs@author@list}{% + \advance\acs@tempcnta\@ne\relax + \ifnum\acs@tempcnta>\acs@authorcnt\relax\else + \ifnum\acs@tempcnta=\acs@authorcnt\relax + \ifnum\acs@tempcnta=\@ne\relax\else + and + \fi + \fi + \csname @author@\@roman\acs@tempcnta\endcsname + \ifnum\acs@tempcnta=\acs@authorcnt\relax\else + ,% + \fi +% \end{macrocode} +% The check for a star uses the e-mail address. The literal star is +% avoided as this gives an easier method to swap the symbol if +% needed.\footnote{For example, \emph{J.\ Am.\ Chem.\ Soc.} uses a +% sans serif font, whereas \emph{Organometallics} is serif.} +% \begin{macrocode} + \begingroup + \@ifundefined{@email@\@roman\acs@tempcnta} + {\aftergroup\@firstoftwo} + {\aftergroup\@secondoftwo}% + \endgroup + {\def\acs@tempb{}} + {\protected@edef\acs@tempb{% + \acs@fnsymbol{\@ne}% + \ifnum\acs@affilcnt>\tw@\relax + ,% + \else + \ifnum\acs@altaffilcnt>\@ne\relax + ,% + \fi + \fi}}% + \ifnum\acs@affilcnt>\tw@\relax + \protected@edef\acs@tempb{\acs@tempb\@fnsymbol{% + \csname @author@affil@\@roman\acs@tempcnta + \endcsname}}% \else - \ifACS@mcite - \newcommand*{\acs@bibstyle}{achemsolM}% - \else - \newcommand*{\acs@bibstyle}{achemsol}% + \ifnum\acs@altaffilcnt>\@ne\relax + \protected@edef\acs@tempb{\acs@tempb\@fnsymbol{% + \csname @author@affil@\@roman\acs@tempcnta + \endcsname}}% \fi \fi - \RequirePackage[notcite]{showkeys} + \begingroup + \@ifundefined{@author@altaffil@\@roman\acs@tempcnta} + {\aftergroup\@gobble} + {\aftergroup\@firstofone}% + \endgroup + {\global\advance\acs@tempcntc\@ne\relax + \advance\acs@tempcntc\acs@affilcnt + \ifnum\acs@affilcnt>\@ne\relax + \protected@edef\acs@tempb{\acs@tempb,}% + \fi + \protected@edef\acs@tempb{% + \acs@tempb\@fnsymbol{\acs@tempcntc}}}% +% \end{macrocode} +% This line deliberately has no \% at the end. +% \begin{macrocode} + \textsuperscript{\acs@tempb} + \acs@author@list + \fi} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\begin{macro}{\acs@fnsymbol} +% The ACS have an extended list of symbols. The star at position one +% is left alone in case it is useful somewhere. +% \begin{macrocode} +\newcommand*{\acs@fnsymbol}[1]{% + \ensuremath{\ifcase#1\or *\or \dagger\or \ddagger\or + \mathsection\or \|\or \bot\or \#\or @\else + \ClassError{achemso}{Too many affiliations} + {There are no symbols left: complain to the package + author}\fi}} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\acs@addresslist} +%\begin{macro}{\acs@address@list} +% A similar recursive approach is used for the addresses. Note that +% the loop starts at one (due to the footnote symbol issue). +% \begin{macrocode} +\newcommand*{\acs@addresslist}{% + \ifnum\acs@affilcnt>\@ne\relax + \acs@tempcnta\@ne\relax + \acs@address@list \else - \ifACS@natbib - \ifACS@mcite - \newcommand*{\acs@bibstyle}{achemnatM}% - \else - \newcommand*{\acs@bibstyle}{achemnat}% - \fi + \ClassError{achemso}{No affiliations} + {At least one affiliation is needed}% + \fi} +\newcommand*{\acs@address@list}{% + \advance\acs@tempcnta\@ne\relax + \ifnum\acs@tempcnta>\acs@affilcnt\relax\else + \acs@ifdupaffil + {} + {\ifnum\acs@tempcnta=\acs@affilcnt\relax + \ifnum\acs@affilcnt>\tw@\relax + and + \fi + \fi + \csname @address@\@roman\acs@tempcnta\endcsname + \ifnum\acs@tempcnta=\acs@affilcnt\relax\else + , + \fi}% + \acs@address@list + \fi} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\begin{macro}{\acs@ifdupaffil} +%\begin{macro}{\acs@ifdup@affil} +% There is the possibility of duplicated affiliations. These can be +% trapped if the two stings are identical. This is tested here. +% \begin{macrocode} +\newcommand*{\acs@ifdupaffil}{% + \begingroup + \acs@tempcntb\@ne\relax + \acs@switchfalse + \edef\acs@tempa{% + \csname @address@\@roman\acs@tempcnta\endcsname}% + \acs@ifdup@affil + \expandafter\expandafter\expandafter\endgroup + \ifacs@switch + \expandafter\@firstoftwo \else - \ifACS@mcite - \newcommand*{\acs@bibstyle}{achemsoM}% + \expandafter\@secondoftwo + \fi} +\newcommand*{\acs@ifdup@affil}{% + \advance\acs@tempcntb\@ne\relax +% \end{macrocode} +% Here, the loop has to stop before the two counters are equal. +% \begin{macrocode} + \ifnum\acs@tempcntb=\acs@tempcnta\relax\else + \edef\acs@tempb{% + \csname @address@\@roman\acs@tempcntb\endcsname}% + \ifx\acs@tempa\acs@tempb + \expandafter\acs@switchtrue + \fi +% \end{macrocode} +% If the switch is set, stop the recursion (this means that +% \cs{acs@tempcntb} is the number of the duplicate affiliation). +% \begin{macrocode} + \ifacs@switch\else + \expandafter\acs@ifdup@affil + \fi + \fi} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\begin{macro}{\acs@affilfoot} +%\changes{v3.0a}{2008/08/21}{Fixed bugs in printing affiliations +% correctly} +%\begin{macro}{\acs@affil@foot} +%\begin{macro}{\acs@altaffil@foot} +% The various affiliation markers need to be explained. +% \cs{acs@tempcntb} is used to count the total number (affiliations +% plus alternative affiliations), so that the signs are correct. +% \begin{macrocode} +\newcommand*{\acs@affilfoot}{% + \acs@tempcnta\@ne\relax + \acs@tempcntb\@ne\relax + \acs@affil@foot + \acs@tempcnta\z@\relax + \acs@altaffil@foot} +\newcommand*{\acs@affil@foot}{% + \advance\acs@tempcnta\@ne\relax + \ifnum\acs@tempcnta>\acs@affilcnt\relax\else + \advance\acs@tempcntb\@ne\relax + \footnotetext[\acs@tempcntb] + {\csname @affil@\@roman\acs@tempcnta\endcsname}% + \acs@affil@foot + \fi} +\newcommand*{\acs@altaffil@foot}{% + \advance\acs@tempcnta\@ne\relax + \ifnum\acs@tempcnta>\acs@authorcnt\relax\else + \begingroup + \@ifundefined{@altaffil@\@roman\acs@tempcnta} + {\aftergroup\@gobble} + {\aftergroup\@firstofone}% + \endgroup + {\advance\acs@tempcntb\@ne\relax + \footnotetext[\acs@tempcntb] + {\csname @altaffil@\@roman\acs@tempcnta\endcsname}}% + \acs@altaffil@foot + \fi} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +%\begin{macro}{\acs@emaillist} +%\changes{v3.0a}{2008/08/21}{Fixed error if only one address is given} +%\begin{macro}{\acs@email@list} +% The final piece of meta-data to print is the e-mail address list. +% The total number of e-mail addresses given it counted in +% \cs{acs@tempcntb}, which means a warning can be given if there are +% none. The group is used so that \cs{UrlFont} can be set correctly. +% \begin{macrocode} +\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 +% \end{macrocode} +% The lack of a percent sign here is deliberate. +% \begin{macrocode} + ; + \fi + \expandafter\expandafter\expandafter\url\expandafter + \expandafter\expandafter{% + \csname @email@\@roman\acs@tempcnta\endcsname}}% + \acs@email@list + \fi} +% \end{macrocode} +%\end{macro} +%\end{macro} +% \cs{maketitle} is required by the document class, and must start +% the document. No variation is allowed, and so it is done +% automatically. +% \begin{macrocode} +\g@addto@macro{\document}{\maketitle} +% \end{macrocode} +% +%\subsection{Floats} +%\begin{environment}{scheme} +%\begin{environment}{chart} +%\begin{environment}{graph} +% Three new float types are provided, \texttt{scheme}, \texttt{chart} +% and \texttt{graph}. These are the most obvious types; for graphs, +% a slight problem arises with the file extension. +% \begin{macrocode} +\newfloat{scheme}{htbp}{los} +\floatname{scheme}{Scheme} +\newfloat{chart}{htbp}{loc} +\floatname{chart}{Chart} +\newfloat{graph}{htbp}{loh} +\floatname{chart}{Graph} +% \end{macrocode} +%\end{environment} +%\end{environment} +%\end{environment} +%\begin{macro}{\schemename} +%\begin{macro}{\chartname} +%\begin{macro}{\graphname} +% Naming is set up in the same way as the kernel floats. +% \begin{macrocode} +\newcommand*{\schemename}{Scheme} +\newcommand*{\chartname}{Chart} +\newcommand*{\graphname}{Graph} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +% The standard floats should appear ``here'' by default. +% \begin{macrocode} +\floatplacement{table}{htbp} +\floatplacement{figure}{htbp} +\floatstyle{plaintop} +\restylefloat{table} +% \end{macrocode} +%\begin{macro}{\acs@floatboxreset} +% Floats are all centred. +% \begin{macrocode} +\let\acs@floatboxreset\@floatboxreset +\renewcommand*{\@floatboxreset}{\centering\acs@floatboxreset} +% \end{macrocode} +%\end{macro} +% \pkg{varioref} is used to control the appearance of cross-references. +% \begin{macrocode} +\labelformat{scheme}{\schemename~#1} +\labelformat{chart}{\chartname~#1} +\labelformat{graph}{\graphname~#1} +\labelformat{figure}{\figurename~#1} +\labelformat{table}{\tablename~#1} +% \end{macrocode} +% +%\subsection{Page headers} +%\begin{macro}{\ps@achemso} +%\begin{macro}{\@oddfoot} +%\begin{macro}{\@oddhead} +% For reviewers, page headers indicating which manuscript the page +% belongs to would be useful. Rather than load \pkg{fancyhdr}, a +% low-level patch is made to the appropriate command. This is rather +% simply-minded but gives the desired output. +% \begin{macrocode} +\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 +% \end{macrocode} +% If the short title is empty, then the main title is used with some +% trimming. A check is made first, as the \cs{truncate} macro will +% left-align if the text is not actually too long. +% \begin{macrocode} + \ifx\@empty\@shorttitle\@empty + \setbox\z@\hbox{\acs@title}% + \ifdim\wd\z@>0.45\textwidth\relax + \truncate{0.45\textwidth}{\acs@title}% \else - \newcommand*{\acs@bibstyle}{achemso}% + \acs@title \fi - \fi + \else + \@shorttitle + \fi}% + \let\@evenhead\@oddhead} +\pagestyle{achemso} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +% +%\subsection{Section headings} +%\begin{macro}{\acs@startsection} +%\begin{macro}{\@startsection} +%\begin{macro}{\acs@restsecnums} +% The applicable section headings depend on the journal and document +% type. First, numbering of sections is killed off by default. +% \begin{macrocode} +\let\acs@startsection\@startsection +\renewcommand*{\@startsection}[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 +% \end{macrocode} +% The change is here: a star makes no difference. \cs{@ifstar} means +% that any star is nicely got rid of. +% \begin{macrocode} + \@ifstar + {\@ssect{#3}{#4}{#5}{#6}} + {\@ssect{#3}{#4}{#5}{#6}}} +\newcommand*{\acs@restsecnums}{% + \let\@startsection\acs@startsection} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +%\begin{macro}{\acs@section} +%\begin{macro}{\acs@subsection} +% The original section and subsection macros are saved. +% \begin{macrocode} +\let\acs@subsection\subsection +\let\acs@section\section +% \end{macrocode} +%\end{macro} +%\end{macro} +%\begin{macro}{\acs@killsecs} +%\begin{macro}{\acs@gobblesection} +%\begin{macro}{\section} +%\begin{macro}{\subsection} +%\begin{macro}{\subsubsection} +% To kill sections entirely, a different approach is needed. The set +% to gobble up the title and if necessary the star. +% \begin{macrocode} +\newcommand*{\acs@killsecs}{% + \newcommand*{\acs@gobblesection}{% + \ClassWarning{achemso} + {Sections not allowed for this manuscript type}% + \@ifstar{\@gobble}{\@gobble}} + \let\section\acs@gobblesection + \let\subsection\acs@gobblesection + \let\subsubsection\acs@gobblesection +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +%\end{macro} +%\begin{macro}{\bibsection} +% The bibliography is altered here. +% \begin{macrocode} + \AtBeginDocument{ + \renewcommand*{\bibsection}{\acs@section*{\refname}}}} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\begin{macro}{\acknowledgement} +%\begin{macro}{\suppinfo} +% Two macros are provided that will always give +% \begin{macrocode} +\newcommand*{\acknowledgement}{% + \acs@subsection*{Acknowledgement}} +\newcommand*{\suppinfo}{% + \acs@subsection*{Supporting Information Available}} +% \end{macrocode} +%\end{macro} +%\end{macro} +% +%\subsection{Miscellaneous changes} +% Although \currpkg avoids too much formatting, the class file makes +% a few changes to keep life simple. The name of the bibliography +% should be ``Notes and References'' if any notes are added. +% \begin{macrocode} +\renewcommand*{\refname}{% + \ifnum\the\value{bibnote}>\z@\relax + Notes and + \fi References} +% \end{macrocode} +% To provide a method for dealing with URLs and e-mail addresses, the +% \pkg{url} package is loaded. +% \begin{macrocode} +\RequirePackage{url} +% \end{macrocode} +% +%\subsection{Finalisation} +%\begin{macro}{\acs@manuscript} +% The article must have a type: if nothing else has been set, then +% ``article'' is used. +% \begin{macrocode} +\@ifundefined{acs@manuscript} + {\newcommand*{\acs@manuscript}{article}}{} +% \end{macrocode} +%\end{macro} +% Some settings are defined by the document type. At this stage, the +% journal file should have ensured that the type is valid. +% \begin{macrocode} +\edef\acs@tempa{note} +\ifx\acs@manuscript\acs@tempa + \acs@killsecs \fi -\expandafter\bibliographystyle\expandafter{\acs@bibstyle} +\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 +% \end{macrocode} +% +%\iffalse +%</class> +%<*package> +%\fi +%\section{The package file} +%\subsection{Setup code} +%\begin{macro}{\acs@id} +%\begin{macro}{\acs@ver} +% The package file is designed to be usable with any document class. +% It sets up the basics, but leaves some settings to the class file. +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\def\acs@id$#1: #2.#3 #4 #5-#6-#7 #8 #9${% + \def\acs@ver{#5/#6/#7\space v3.0a\space}} +\acs@id$Id: achemso.dtx 32 2008-08-22 08:09:56Z joseph $ +\ProvidesPackage{achemso} + [\acs@ver Support for ACS journals] +\@ifclassloaded{achemso}{} + {\PackageInfo{achemso}{When using the achemso bundle + for\MessageBreak submission of articles to the ACS, + please\MessageBreak use the achemso document class.}} +\RequirePackage{notes2bib,mciteplus,xkeyval} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\begin{macro}{\acs@tempa} +%\begin{macro}{\acs@tempb} +%\begin{macro}{\acs@tempcnta} +%\begin{macro}{\acs@tempcntb} +%\begin{macro}{\acs@tempcntc} +%\begin{macro}{\ifacs@switch} +% Some scratch macros are defined. +% \begin{macrocode} +\newcommand*{\acs@tempa}{} +\newcommand*{\acs@tempb}{} +\newcount\acs@tempcnta +\newcount\acs@tempcntb +\newcount\acs@tempcntc +\newif\ifacs@switch +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +%\end{macro} +%\end{macro} +%\end{macro} +% +%\subsection{Option handling} +%\begin{macro}{\acs@manuscript} +%\begin{macro}{\acs@journal} +%\begin{macro}{\acs@maxauthors} +%\begin{macro}{\ifacs@super} +%\begin{macro}{\ifacs@usetitle} +%\begin{macro}{\ifacs@biochemistry} +% The various keys are defined. +% \begin{macrocode} +\define@boolkeys[acs]{key}[acs@]{ + abbreviate, + biochem, + biochemistry, + super, + usetitle}[true] +\let\acs@key@biochem\acs@key@biochemistry +\define@cmdkeys[acs]{key}[acs@]{ + maxauthors, + journal, + manuscript} +\define@choicekey*[acs]{key}{biblabel} + [\acs@tempa\acs@tempb] + {plain,brackets,fullstop,period} + {\ifcase\acs@tempb\relax + \def\@biblabel##1{##1}\or + \def\@biblabel##1{(##1)}\or + \def\@biblabel##1{##1.}\or + \def\@biblabel##1{##1.}\fi} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +%\end{macro} +%\end{macro} +%\end{macro} +%\begin{macro}{\acs@setkeys} +% A slight shortcut for setting keys. +% \begin{macrocode} +\newcommand*{\acs@setkeys}{\setkeys[acs]{key}} +% \end{macrocode} +%\end{macro} +% Default values for some of the options are set up here, before +% processing. +% \begin{macrocode} +\acs@setkeys{ + maxauthors=15, + super=true, + biblabel=brackets} +\ProcessOptionsX*[acs]<key> +% \end{macrocode} +%\begin{macro}{\acs@cfgextension} +%\begin{macro}{\acs@prefix} +% A few fixed values are used in several places. +% \begin{macrocode} +\newcommand*{\acs@cfgextension}{cfg} +\newcommand*{\acs@prefix}{acs-} +% \end{macrocode} +%\end{macro} +%\end{macro} +% +%\subsection{\opt{type} validation} +%\begin{macro}{\acs@validtype} +% The \opt{type} of manuscript needs to be validated by most journal +% files. A shortcut is provided here. This needs to happen before +% support files can be loaded. +% \begin{macrocode} +\newcommand*{\acs@validtype}[2][article]{% + \acs@switchfalse + \@ifundefined{acs@manuscript} + {\newcommand*{\acs@manuscript}{#1}} + {\@for\acs@tempa:=#2\do{% + \ifx\acs@tempa\acs@manuscript + \acs@switchtrue + \fi} + \ifacs@switch\else + \ClassWarning{achemso}{Invalid manuscript type: + \MessageBreak changing to #1}% + \renewcommand*{\acs@manuscript}{#1}% + \fi}} +% \end{macrocode} +%\end{macro} +% +%\subsection{Removal of abstract} +%\begin{macro}{\acs@killabstract} +%\begin{macro}{\acs@startgobble} +%\begin{macro}{\acs@endgobble} +%\begin{macro}{\acs@iffalse} +% To disable the abstract, a modified copy of the code from +% \pkg{versions} is used. This code comes here so that the journal +% support files can call \cs{acs@killabstract} immediately. +% \begin{macrocode} +\newcommand*{\acs@killabstract}{% + \let\abstract\acs@startgobble} +\begingroup + \catcode`{=\active + \catcode`}=12\relax + \catcode`(=1\relax + \catcode`)=2\relax + \gdef\acs@startgobble(% + \ClassWarning(achemso) + (Abstract not allowed for this\MessageBreak + manuscript type)% + \@bsphack + \catcode`{=\active + \catcode`}=12\relax + \let\end\fi + \let{\acs@endgobble%} + \iffalse)%{ + \gdef\acs@endgobble#1}(% + \def\acs@tempa(#1)% + \ifx\acs@tempa\@currenvir + \@Esphack\endgroup + \if@ignore + \global\@ignorefalse\ignorespaces + \fi + \else + \expandafter\acs@iffalse + \fi) +\endgroup +\newcommand*{\acs@iffalse}{\iffalse} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +%\end{macro} +% +%\subsection{Loading appropriate support} +% If the package is being used with the class file, then the options +% \opt{journal} and \opt{type} are used to set up the correct +% settings. +% \begin{macrocode} +\@ifclassloaded{achemso} + {\@ifundefined{acs@journal} + {\ClassInfo{achemso}{No target journal specified: + \MessageBreak using package defaults}% +% \end{macrocode} +% The \opt{type} option only applies when a particular journal is +% given as an option. +% \begin{macrocode} + \@ifundefined{acs@manuscript}{} + {\ClassWarning{achemso}{The `type' option is only + applicable\MessageBreak when the `journal' option is + also specified}}}% + {\InputIfFileExists{\acs@journal.\acs@cfgextension} + {\ClassInfo{achemso}{Loading configuration for + journal\MessageBreak \acs@journal}} + {\ClassWarning{achemso}{Unknown journal + `\acs@journal'}% + \InputIfFileExists{jacsat.\acs@cfgextension} + {\ClassInfo{achemso}{Loading jacs + configuration\MessageBreak as a fall-back}} + {\ClassError{achemso}{Could not load + jacsat.cfg}{This is a core file of\MessageBreak + the achemso bundle: something is wrong with + \MessageBreak your installation}}}}}% +% \end{macrocode} +% If the class is not loaded, then an appropriate warning is given if +% either option is set. +% \begin{macrocode} + {\@ifundefined{acs@journal}{} + {\PackageWarning{achemso}{The `journal' option is only + applicable\MessageBreak when using the achemso document + class}}% + \@ifundefined{acs@manuscript}{} + {\PackageWarning{achemso}{The `type' option is only + applicable\MessageBreak when using the achemso document + class}}} +% \end{macrocode} +% +%\subsection{Patching \pkg{natbib}} +% As in REV\TeX, the package needs to modify \pkg{natbib} to move +% punctuation before superscript citations. First, \pkg{natbib} is +% loaded with the \opt{sort\&compress} option active. +% \begin{macrocode} +\ifacs@super + \RequirePackage[sort&compress,numbers,super]{natbib} +\else + \RequirePackage[sort&compress,numbers,round]{natbib} +\fi +\RequirePackage{natmove} % \end{macrocode} +%\begin{macro}{\nmv@activate} +%\begin{macro}{\nmv@natcitex} +%\begin{macro}{\nmv@cite} +%\begin{macro}{\cite} +% The \pkg{natmove} package is slightly patched to get automatic +% bibnotes. This is true for superscript and standard citations. +% \begin{macrocode} +\renewcommand*{\nmv@activate}{% + \let\nmv@natcitex\@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}}}} +\renewcommand*{\nmv@notactivate}{% + \let\nmv@cite\cite + \renewcommand*{\cite}[2][]{% + \nmv@ifmtarg{##1} + {\nmv@cite{##2}} + {\nocite{##2}% + \bibnote{Ref.~\citenum{##2}, ##1}}}} +% \end{macrocode} +%\end{macro} %\end{macro} %\end{macro} -%\begin{macro}{\@biblabel} -%\changes{v2.2g}{2008/01/21}{Added \opt{iecr} option to code} -% In order to re-format the bibliography labels, the easiest -% method is to redefine the \cs{@biblabel} macro from the \LaTeX\ -% kernel. +%\end{macro} +% +%\subsection{General citation setup} +%\begin{macro}{\acs@bibstyle} +% The \currpkg package sets up the correct bibliography style. % \begin{macrocode} -\ifACS@iecr - \renewcommand*{\@biblabel}[1]{(#1)} +%\end{macro} +\ifacs@biochemistry + \newcommand*{\acs@bibstyle}{biochem} \else - \renewcommand*{\@biblabel}[1]{#1.} + \newcommand*{\acs@bibstyle}{achemso} \fi +\expandafter\bibliographystyle\expandafter{\acs@bibstyle} % \end{macrocode} -%\begin{macro}{\ACS@bibwarning} +%\end{macro} +%\begin{macro}{\bibliographystyle} %\begin{macro}{\acs@bibliographystyle} -%\changes{v2.2h}{2008/03/12}{New macro} -% To ensure that additional \cs{bibliographystyle} commands in the -% source are killed off. The \cs{ACS@bibwarning} provides a clean -% method of generating the warning message. - +% If \pkg{chapterbib} is loaded, then multiple calls to +% \cs{bibliographystyle} need to be allowed. In either case, the +% argument is gobbled. % \begin{macrocode} \let\acs@bibliographystyle\bibliographystyle -\newcommand*{\ACS@bibwarning}{\PackageWarning{achemso}% - {Additional bibliographystyle command ignored}} \AtBeginDocument{ - \@ifpackageloaded{chapterbib}{\let\ACS@bibwarning\relax}{}} -\renewcommand*{\bibliographystyle}{% - \expandafter\acs@bibliographystyle\expandafter{\acs@bibstyle}% - \ACS@bibwarning\@gobble} + \@ifpackageloaded{chapterbib} + {\renewcommand*{\bibliographystyle}[1]{% + \expandafter\acs@bibliographystyle\expandafter{% + \acs@bibstyle}}}} +\renewcommand*{\bibliographystyle}[1]{% + \PackageWarning{achemso}{\string\bibliographystyle\space + ignored}} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\begin{macro}{\citenumfont} +% For on-line citations, italic numbers are required. +% \begin{macrocode} +\ifacs@super\else + \newcommand*{\citenumfont}{\textit} +\fi +% \end{macrocode} +%\end{macro} +% +%\subsection{Controlling \texorpdfstring{\BibTeX}{BibTeX}} +%\begin{macro}{\acs@msg} +%\begin{macro}{\acs@writebib} +%\begin{macro}{\acs@out} +%\begin{macro}{\acs@stream} +% \currpkg use the same system as \pkg{biblatex} and \pkg{IEEEtrans} +% to control output. A special database is generated, which contains +% the necessary control entries. +% \begin{macrocode} +\edef\acs@msg{% + This is an auxiliary file used by the `achemso' package.^^J% + This file may safely be deleted. It will be recreated as + required.^^J} +\newcommand*{\acs@writebib}{% + \immediate\openout\acs@out\acs@stream\relax + \immediate\write\acs@out{\acs@msg}% +% \end{macrocode} +% A shortcut to producing the control sequences. +% \begin{macrocode} + \edef\acs@tempa##1##2{\space\space##1\space=\space"##2",^^J}% + \immediate\write\acs@out{% + @Control\string{achemso-control,^^J% + \acs@tempa{ctrl-use-title}{\ifacs@usetitle yes\else no\fi}% + \acs@tempa{ctrl-etal-number}{\acs@maxauthors}% + \string}^^J}} % \end{macrocode} +% The writing system is designed to allow the class to re-write the +% control file if needed. +% \begin{macrocode} +\if@filesw + \newwrite\acs@out + \newcommand*\acs@stream{\acs@prefix\jobname.bib} + \acs@writebib + \AtBeginDocument{\immediate\closeout\acs@out} +\fi +% \end{macrocode} +%\end{macro} +%\end{macro} %\end{macro} %\end{macro} +%\begin{macro}{\bibliography} +%\begin{macro}{\acs@bibliography} +% The \cs{bibliography} macro is now patched to use the control +% database. +% \begin{macrocode} +\AtBeginDocument{ + \let\acs@bibliography\bibliography + \renewcommand*{\bibliography}[1]{% + \acs@bibliography{\acs@prefix\jobname,#1}}} +% \end{macrocode} %\end{macro} -% The package is complete. +%\end{macro} +% The control citation is now added to the document. This needs to +% be after the beginning of the document. To avoid a \pkg{natbib} +% warning, this is done directly (without \cs{nocite}). % \begin{macrocode} +\g@addto@macro{\document}{% + \if@filesw + \immediate\write\@auxout{% + \string\citation\string{achemso-control\string}}% + \fi} +% \end{macrocode} +% +%\section{The configuration files} +% The configuration files for different journals are not very +% complex. Keeping everything separate simply helps with +% maintenance. The defaults are re-applied by the files so that any +% user options are over-written when using the class file. Several +% of the files are basically copies of \file{jacsat.cfg}. +% +%\iffalse %</package> +%<*jacsat> +%\fi +%\subsection{\emph{J.~Am.\ Chem.\ Soc.}} +% The \emph{J. Am. Chem. Soc.} is the basis of all of the configuration +% files. +% \begin{macrocode} +\ProvidesFile{jacsat.cfg} + [\acs@ver achemso configuration: J. Am. Chem. Soc.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=false} +\acs@validtype{article,communication,suppinfo} +\renewcommand*{\acs@tempa}{communication} +\ifx\acs@manuscript\acs@tempa + \acs@killabstract + \acs@killsecs +\fi % \end{macrocode} -% \PrintChanges -% \PrintIndex -% \Finale -% \iffalse -%<*bib> +% +%\iffalse +%</jacsat> +%<*achre4> +%\fi +%\subsection{\emph{Acc.\ Chem.\ Res.}} +% \begin{macrocode} +\ProvidesFile{achre4.cfg} + [\acs@ver achemso configuration: Acc. Chem. Res.] +\acs@setkeys{ + abbreviate=true, + biblabel=plain, + biochem=false, + maxauthors=15, + super=true, + usetitle=false} +\acs@validtype{article,suppinfo} +\renewcommand*{\abstractname}{Conspectus} +% \end{macrocode} +%\iffalse +%</achre4> +%<*acbcct> +%\fi +%\subsection{\emph{ACS Chem.\ Biol.}} +% \begin{macrocode} +\ProvidesFile{acbcct.cfg} + [\acs@ver achemso configuration: ACS Chem. Biol.] +\acs@setkeys{ + abbreviate=true, + biblabel=fullstop, + biochem=true, + maxauthors=15, + super=false, + usetitle=true} +\acs@validtype{article,letter,review,suppinfo} +% \end{macrocode} +%\iffalse +%</acbcct> +%<*ancac3> +%\fi +%\subsection{\emph{ACS Nano}} +% \begin{macrocode} +\ProvidesFile{acbcct.cfg} + [\acs@ver achemso configuration: ACS Nano] +\acs@setkeys{ + abbreviate=true, + biblabel=fullstop, + biochem=false, + maxauthors=15, + super=true, + usetitle=true} +\acs@validtype{perspective,article,suppinfo} +% \end{macrocode} +%\iffalse +%</ancac3> +%<*ancham> +%\fi +%\subsection{\emph{Anal.\ Chem.}} +% \begin{macrocode} +\ProvidesFile{ancham.cfg} + [\acs@ver achemso configuration: Anal. Chem.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=false} +\acs@validtype{article,suppinfo,note} +% \end{macrocode} +%\iffalse +%</ancham> +%<*bichaw> +%\fi +%\subsection{\emph{Biochemistry}} +% \begin{macrocode} +\ProvidesFile{biochem.cfg} + [\acs@ver achemso configuration: Biochemistry] +\acs@setkeys{ + abbreviate=true, + biblabel=fullstop, + biochem=true, + maxauthors=15, + super=false, + usetitle=true} +\acs@validtype{article,communication,suppinfo} +% \end{macrocode} +%\iffalse +%</bichaw> +%<*bcches> +%\fi +%\subsection{\emph{Bioconjugate Chem.}} +% \begin{macrocode} +\ProvidesFile{bcches.cfg} + [\acs@ver achemso configuration: Bioconjugate Chem.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=true, + maxauthors=15, + super=false, + usetitle=true} +\acs@validtype{article,communication,suppinfo} +% \end{macrocode} +%\iffalse +%</bcches> +%<*bomaf6> +%\fi +%\subsection{\emph{Biomacromolecules}} +% \begin{macrocode} +\ProvidesFile{bomaf6.cfg} + [\acs@ver achemso configuration: Biomacromolecules] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=false, + usetitle=true} +\acs@validtype{article,communication,suppinfo} +% \end{macrocode} +%\iffalse +%</bomaf6> +%<*bipret> +%\fi +%\subsection{\emph{Biotechnol.\ Prog.}} +% \begin{macrocode} +\ProvidesFile{bipret.cfg} + [\acs@ver achemso configuration: Biotechnol. Prog.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=false, + usetitle=true} +\acs@validtype{article,review,suppinfo} +% \end{macrocode} +%\iffalse +%</bipret> +%<*crtoec> +%\fi +%\subsection{\emph{Chem.\ Res.\ Toxicol.}} +% \begin{macrocode} +\ProvidesFile{crtoec.cfg} + [\acs@ver achemso configuration: Chem. Res. Toxicol.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=true, + maxauthors=15, + super=false, + usetitle=true} +\acs@validtype{perspective,article,review,profile,suppinfo} +% \end{macrocode} +%\iffalse +%</crtoec> +%<*chreay> +%\fi +%\subsection{\emph{Chem.\ Rev.}} +% For \emph{Chem.\ Rev.}, the usual start. +% \begin{macrocode} +\ProvidesFile{chreay.cfg} + [\acs@ver achemso configuration: Chem. Rev.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=0, + super=true, + usetitle=false} +\acs@validtype[review]{review} +% \end{macrocode} +%\begin{macro}{\bibsection} +% Some changes are needed as the bibliography should be numbered. +% This is done with the \cs{bibsection} macro, as \pkg{natbib} sets +% this up rather than \cs{thebibliography}. +% \begin{macrocode} +\AtBeginDocument{ + \renewcommand*{\bibsection}{\section{\refname}}} +% \end{macrocode} +%\end{macro} +%\iffalse +%</chreay> +%<*cmatex> +%\fi +%\subsection{\emph{Chem.\ Mater.}} +% \begin{macrocode} +\ProvidesFile{cmatex.cfg} + [\acs@ver achemso configuration: Chem. Mater.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=false} +\acs@validtype{article,communication,suppinfo} +\renewcommand*{\acs@tempa}{communication} +\ifx\acs@manuscript\acs@tempa + \acs@killabstract + \acs@killsecs +\fi +% \end{macrocode} +%\iffalse +%</cmatex> +%<*cgdefu> +%\fi +%\subsection{\emph{Cryst.\ Growth Des.}} +% \begin{macrocode} +\ProvidesFile{cgdefu.cfg} + [\acs@ver achemso configuration: Cryst. Growth Des.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=false} +\acs@validtype{perspective,article,communication,suppinfo} +\renewcommand*{\acs@tempa}{communication} +\ifx\acs@manuscript\acs@tempa + \acs@killsecs +\fi +% \end{macrocode} +%\iffalse +%</cgdefu> +%<*enfuem> +%\fi +%\subsection{\emph{Energy Fuels}} +% \begin{macrocode} +\ProvidesFile{enfuem.cfg} + [\acs@ver achemso configuration: Energy Fuels] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=false} +\acs@validtype{review,article,suppinfo} +% \end{macrocode} +%\iffalse +%</enfuem> +%<*esthag> +%\fi +%\subsection{\emph{Environ.\ Sci.\ Technol.}} +% \begin{macrocode} +\ProvidesFile{esthag.cfg} + [\acs@ver achemso configuration: Environ. Sci. Technol.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=false, + usetitle=true} +\acs@validtype{article,suppinfo} +% \end{macrocode} +%\iffalse +%</esthag> +%<*iecred> +%\fi +%\subsection{\emph{Ind.\ Eng.\ Chem.\ Res.}} +% \begin{macrocode} +\ProvidesFile{iecred.cfg} + [\acs@ver achemso configuration: Ind. Eng. Chem. Res.] +\acs@setkeys{ + abbreviate=true, + biblabel=fullstop, + biochem=false, + maxauthors=15, + super=true, + usetitle=true} +\acs@validtype{article,communication,suppinfo} +\renewcommand*{\acs@tempa}{suppinfo} +\ifx\acs@manuscript\acs@tempa + \acs@setkeys{maxauthors=0} +\fi +% \end{macrocode} +%\iffalse +%</iecred> +%<*inoraj> +%\fi +%\subsection{\emph{Inorg.\ Chem.}} +% \begin{macrocode} +\ProvidesFile{inoraj.cfg} + [\acs@ver achemso configuration: Inorg. Chem.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=false} +\acs@validtype{article,communication,suppinfo} +\renewcommand*{\acs@tempa}{communication} +\ifx\acs@manuscript\acs@tempa + \acs@killabstract + \acs@killsecs +\fi +% \end{macrocode} +%\iffalse +%</inoraj> +%<*jafcau> +%\fi +%\subsection{\emph{J.~Agric.\ Food Chem.}} +% \begin{macrocode} +\ProvidesFile{jafcau.cfg} + [\acs@ver achemso configuration: J. Agric. Food Chem.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=false, + usetitle=true} +\acs@validtype{article,suppinfo} +% \end{macrocode} +%\iffalse +%</jafcau> +%<*jceaax> +%\fi +%\subsection{\emph{J.~Chem.\ Eng. Data}} +% \begin{macrocode} +\ProvidesFile{jceaax.cfg} + [\acs@ver achemso configuration: J. Chem. Eng. Data] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=true} +\acs@validtype{article,suppinfo} +% \end{macrocode} +%\iffalse +%</jceaax> +%<*jcisd8> +%\fi +%\subsection{\emph{J.~Chem.\ Inf.\ Model.}} +% \begin{macrocode} +\ProvidesFile{jcisd8.cfg} + [\acs@ver achemso configuration: J. Chem. Inf. Model.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=true} +\acs@validtype{article,suppinfo} +% \end{macrocode} +%\iffalse +%</jcisd8> +%<*jctcce> +%\fi +%\subsection{\emph{J.~Chem.\ Theory Comput.}} +%\changes{v3.0a}{2008/08/21}{Added section numbers for +% \emph{J.~Chem.\ Theory Comput.}} +% \begin{macrocode} +\ProvidesFile{jctcce.cfg} + [\acs@ver achemso configuration: J. Chem. Theory Comput.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=false} +\acs@validtype{article,suppinfo} +\AtBeginDocument{\acs@restsecnums} +% \end{macrocode} +%\iffalse +%</jctcce> +%<*jcchff> +%\fi +%\subsection{\emph{J.~Comb.\ Chem.}} +% \begin{macrocode} +\ProvidesFile{jcchff.cfg} + [\acs@ver achemso configuration: J. Comb. Chem.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=false} +\acs@validtype{article,report,perspective,suppinfo} +% \end{macrocode} +%\iffalse +%</jcchff> +%<*jmcmar> +%\fi +%\subsection{\emph{J.~Med.\ Chem.}} +% \begin{macrocode} +\ProvidesFile{jmcmar.cfg} + [\acs@ver achemso configuration: J. Med. Chem.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=true} +\acs@validtype{perspective,letter,article,suppinfo} +% \end{macrocode} +%\iffalse +%</jmcmar> +%<*jnprdf> +%\fi +%\subsection{\emph{J.~Nat.\ Prod.}} +% \begin{macrocode} +\ProvidesFile{jnprdf.cfg} + [\acs@ver achemso configuration: J. Nat. Prod.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=false} +\acs@validtype{article,communication,suppinfo} +\renewcommand*{\acs@tempa}{communication} +\ifx\acs@manuscript\acs@tempa + \acs@killabstract + \acs@killsecs +\fi +% \end{macrocode} +%\iffalse +%</jnprdf> +%<*joceah> +%\fi +%\subsection{\emph{J.~Org.\ Chem.}} +% \begin{macrocode} +\ProvidesFile{joceah.cfg} + [\acs@ver achemso configuration: J. Org. Chem.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=false} +\acs@validtype{article,communication,suppinfo} +\renewcommand*{\acs@tempa}{communication} +\ifx\acs@manuscript\acs@tempa + \acs@killabstract + \acs@killsecs +\fi +% \end{macrocode} +%\iffalse +%</joceah> +%<*jpcafh> +%\fi +%\subsection{\emph{J.~Phys.\ Chem.~A}} +% \begin{macrocode} +\ProvidesFile{jpcafh.cfg} + [\acs@ver achemso configuration: J. Phys. Chem. A] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=false} +\acs@validtype{letter,article,suppinfo} +% \end{macrocode} +%\iffalse +%</jpcafh> +%<*jpcbfk> +%\fi +%\subsection{\emph{J.~Phys.\ Chem.~B}} +% \begin{macrocode} +\ProvidesFile{jpcbfk.cfg} + [\acs@ver achemso configuration: J. Phys. Chem. B] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=false} +\acs@validtype{letter,article,suppinfo} +% \end{macrocode} +%\iffalse +%</jpcbfk> +%<*jpccck> +%\fi +%\subsection{\emph{J.~Phys.\ Chem.~C}} +% \begin{macrocode} +\ProvidesFile{jpccck.cfg} + [\acs@ver achemso configuration: J. Phys. Chem. C] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=false} +\acs@validtype{letter,article,suppinfo} +% \end{macrocode} +%\iffalse +%</jpccck> +%<*jprobs> +%\fi +%\subsection{\emph{J.~Proteome Res.}} +% \begin{macrocode} +\ProvidesFile{jprobs.cfg} + [\acs@ver achemso configuration: J. Proteome Res.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=true} +\acs@validtype{review,article,suppinfo} +% \end{macrocode} +%\iffalse +%</jprobs> +%<*langd5> +%\fi +%\subsection{\emph{Langmuir}} +% \begin{macrocode} +\ProvidesFile{langd5.cfg} + [\acs@ver achemso configuration: Langmuir] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=false} +\acs@validtype{letter,article,suppinfo} +% \end{macrocode} +%\iffalse +%</langd5> +%<*mamobx> +%\fi +%\subsection{\emph{Macromolecules}} +% \begin{macrocode} +\ProvidesFile{mamobx.cfg} + [\acs@ver achemso configuration: Macromolecules] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=false} +\acs@validtype{communication,article,suppinfo} +% \end{macrocode} +%\iffalse +%</mamobx> +%<*mpohbp> +%\fi +%\subsection{\emph{Mol.\ Pharm.}} +% \begin{macrocode} +\ProvidesFile{mamobx.cfg} + [\acs@ver achemso configuration: Mol. Pharm.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=true} +\acs@validtype{article,suppinfo} +% \end{macrocode} +%\iffalse +%</mpohbp> +%<*nalefd> +%\fi +%\subsection{\emph{Nano Lett.}} +% \begin{macrocode} +\ProvidesFile{nalefd.cfg} + [\acs@ver achemso configuration: Nano Lett.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=false} +\acs@validtype[letter]{letter} +% \end{macrocode} +%\iffalse +%</nalefd> +%<*orlef7> +%\fi +%\subsection{\emph{Org.\ Lett.}} +% \begin{macrocode} +\ProvidesFile{orlef7.cfg} + [\acs@ver achemso configuration: Org. Lett.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=false} +\acs@validtype[letter]{letter} +% \end{macrocode} +%\iffalse +%</orlef7> +%<*oprdfk> +%\fi +%\subsection{\emph{Org.\ Proc.\ Res.\ Dev.}} +% \begin{macrocode} +\ProvidesFile{oprdfk.cfg} + [\acs@ver achemso configuration: Org. Proc. Res. Dev.] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=false} +\acs@validtype{highlight,article,review,suppinfo} +% \end{macrocode} +%\iffalse +%</oprdfk> +%<*orgnd7> +%\fi +%\subsection{\emph{Organometallics}} +% \begin{macrocode} +\ProvidesFile{orgnd7.cfg} + [\acs@ver achemso configuration: Organometallics] +\acs@setkeys{ + abbreviate=true, + biblabel=brackets, + biochem=false, + maxauthors=15, + super=true, + usetitle=false} +\acs@validtype{communication,article,suppinfo} +% \end{macrocode} +%\iffalse +%</orgnd7> +%\fi +% +%\Finale +%\iffalse +%<*refs> +@ARTICLE{Abernethy2003, + author = {Colin D. Abernethy and Gareth M. Codd and Mark D. Spicer + and Michelle K. Taylor}, + title = {{A} highly stable {N}-heterocyclic carbene complex of + trichloro-oxo-vanadium(\textsc{v}) displaying novel + {C}l---{C}(carbene) bonding interactions}, + journal = {{J}. {A}m. {C}hem. {S}oc.}, + year = {2003}, + volume = {125}, + pages = {1128--1129}, + number = {5}, + doi = {10.1021/ja0276321}, +} + +@MISC{ACS2007, + url = {http://pubs.acs.org/books/references.shtml}, +} + +@ARTICLE{Arduengo1992, + author = {Arduengo, III, Anthony J. and H. V. Rasika Dias and + Richard L. Harlow and Michael Kline}, + title = {{E}lectronic stabilization of nucleophilic carbenes}, + journal = {{J}.~{A}m.\ {C}hem.\ {S}oc.}, + year = {1992}, + volume = {114}, + pages = {5530--5534}, + number = {14}, + doi = {10.1021/ja00040a007}, +} + +@ARTICLE{Arduengo1994, + author = {Arduengo, III, Anthony J. and Siegfried F. Gamper and + Joseph C. Calabrese and Fredric Davidson}, + title = {{L}ow-coordinate carbene complexes of nickel(0) and + platinum(0)}, + journal = jacsat, + year = {1994}, + volume = {116}, + pages = {4391--4394}, + number = {10}, + doi = {10.1021/ja00089a029}, +} + +@ARTICLE{Eisenstein2005, + author = {Appelhans, Leah N. and Zuccaccia, Daniele and Kovacevic, + Anes and Chianese, Anthony R. and Miecznikowski, John R. and + Macchioni, Aleco and Clot, Eric and Eisenstein, Odile and + Crabtree, Robert H.}, + title = {{A}n anion-dependent switch in selectivity results from a + change of {C}---{H} activation mechanism in the reaction of an + imidazolium salt with \ce{IrH5(PPh3)2}}, + journal = {{J}.~{A}m.\ {C}hem. {S}oc.}, + year = {2005}, + volume = {127}, + pages = {16299--16311}, + number = {46}, + doi = {10.1021/ja055317j}, +} + +@BOOK{Coghill2006, + title = {{T}he {ACS} {S}tyle {G}uide}, + publisher = {{O}xford {U}niversity {P}ress, {I}nc. and + {T}he {A}merican {C}hemical {S}ociety}, + year = {2006}, + editor = {Coghill, Anne M. and Garson, Lorrin R.}, + address = {{N}ew {Y}ork}, + edition = {3}, + subtitle = {{E}ffective {C}ommunication of {S}cientific + {I}nformation}, +} + +@BOOK{Cotton1999, + title = {{A}dvanced {I}norganic {C}hemistry}, + publisher = {Wiley}, + year = {1999}, + author = {Cotton, Frank Albert and Wilkinson, Geoffrery and + Murillio, Carlos A. and Bochmann, Manfred}, + address = {Chichester}, + edition = {6}, +} + +@MANUAL{Pople2003, + title = {{G}aussian 03}, + author = {M.~J. Frisch and G.~W. Trucks and H.~B. Schlegel and G.~E. Scuseria + and M.~A. Robb and J.~R. Cheeseman and Montgomery and Jr. and J. + A. and T. Vreven and K.~N. Kudin and J.~C. Burant and J.~M. Millam + and S.~S. Iyengar and J. Tomasi and V. Barone and B. Mennucci and + M. Cossi and G. Scalmani and N. Rega and G.~A. Petersson and H. Nakatsuji + and M. Hada and M. Ehara and K. Toyota and R. Fukuda and J. Hasegawa + and M. Ishida and T. Nakajima and Y. Honda and O. Kitao and H. Nakai + and M. Klene and X. Li and J.~E. Knox and H.~P. Hratchian and J.~B. + Cross and V. Bakken and C. Adamo and J. Jaramillo and R. Gomperts + and R.~E. Stratmann and O. Yazyev and A.~J. Austin and R. Cammi and + C. Pomelli and J.~W. Ochterski and P.~Y. Ayala and K. Morokuma and + G.~A. Voth and P. Salvador and J.~J. Dannenberg and V.~G. Zakrzewski + and S. Dapprich and A.~D. Daniels and M.~C. Strain and O. Farkas + and D.~K. Malick and A.~D. Rabuck and K. Raghavachari and J.~B. Foresman + and J.~V. Ortiz and Q. Cui and A.~G. Baboul and S. Clifford and J. + Cioslowski and B.~B. Stefanov and G. Liu and A. Liashenko and P. + Piskorz and I. Komaromi and R.~L. Martin and D.~J. Fox and T. Keith + and M.~A. Al-Laham and C.~Y. Peng and A. Nanayakkara and M. Challacombe + and P.~M.~W. Gill and B. Johnson and W. Chen and M.~W. Wong and C. + Gonzalez and J.~A. Pople}, + organization = {Gaussian, Inc.}, + address = {Wallingford, CT}, + year = {2004}, + howpublished = {Gaussian, Inc., Wallingford, CT, USA}, + institution = {Gaussian, Inc.}, + publisher = {Gaussian, Inc.} +} + +@ARTICLE{Mena2000, + author = {Angel Abarca and Pilar G\'omez-Sal and Avelino Mart\'in + and Miguel Mena and Josep Mar\'ia Poblet and Carlos Y\'elamos}, + title = {{A}mmonolysis of mono(pentamethylcyclopentadienyl) + titanium(\textsc{iv}) derivatives}, + journal = {Inorg. Chem.}, + year = {2000}, + volume = {39}, + pages = {642--651}, + number = {4}, + doi = {10.1021/ic9907718}, +} +%</refs> +%<*demo> +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% This is a (brief) model paper using the achemso class +%% The document class accepts keyval options, which should include +%% the target journal and optionally the macuscript tye +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\documentclass[journal=jacsat,manuscript=article]{achemso} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Place any additional packages needed here. Only include packages +%% which are essential, to avoid problems later. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage[version=3]{mhchem} % Formula subscripts using \ce{} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% If issues arise when submitting your manuscript, you may want to +%% un-comment the next line. This provides information on the +%% version of every file you have used. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%\listfiles + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Place any additional macros here. Please use \newcommand* where +%% possible, and avoid layout changing macros (which are not used +%% when typesetting). +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand*{\mycommand}[1]{\texttt{\emph{#1}}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Meta-data block +%% --------------- +%% Each author should be given as a separate \author command. +%% +%% Corresponding authors should have an e-mail given after the author +%% name as an \email command. +%% +%% The affiliation of authors is given after the authors; each +%% \affiliation command applies to all preceding authors not already +%% assigned an affiliation. +%% +%% The affiliation takes an option argument for the short name. This +%% will typically be something like "University of Somewhere". +%% +%% The \altaffiliation macro should be used for new address, etc. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\author{Andrew N. Other} +\author{Fred T. Secondauthor} +\altaffiliation{Current address: Some other place, Othert\"own, +Germany} +\author{I. Ken Groupleader} +\email{i.k.groupleader@unknown.uu} +\affiliation[Unknown University] +{Department of Chemistry, Unknown University, Unknown Town} +\author{Susanne K. Laborator} +\email{s.k.laborator@bigpharma.co} +\affiliation[BigPharma] +{Lead Discovery, BigPharma, Big Town, USA} +\author{Kay T. Finally} +\affiliation[Unknown University] +{Department of Chemistry, Unknown University, Unknown Town} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% The document title should be given as usual +%% A short title can be given as a *suggestion* for running headers. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\title[\texttt{achemso} demonstration] +{A demonstration of the \textsf{achemso} \LaTeX\ class} + +\begin{document} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% The manuscript does not need to include \maketitle, which is +%% executed automatically. The document should begin with an +%% abstract, if appropriate. If one is given and should not be, the +%% contents will be gobbled. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{abstract} + This is an example document for the \textsf{achemso} document + class, intended for submissions to the American Chemical Society + for publication. The class is based on the standard \LaTeXe\ + \textsf{report} file, and does not seek to reproduce the appearance + of a published paper. + + This is an abstract for the \textsf{achemso} document class + demonstration document. An abstract is only allowed for certain + manuscript types. The selection of \texttt{journal} and + \texttt{type} will determine if an abstract is valid. If not, the + class will issue an appropriate error. +\end{abstract} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Start the main part of the manuscript here. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Introduction} +This is a paragraph of text to fill the introduction of the +demonstration file. The demonstration file attempts to show the +modifications of the standard \LaTeX\ macros that are implemented by +the \textsf{achemso} class. These are mainly concerned with content, +as opposed to appearance. + +\section{Results and discussion} + +\subsection{Outline} + +The document layout should follow the style of the journal concerned. +Where appropriate, sections and subsections should be added in the +normal way. If the class options are set correctly, warnings will be +given if these should not be present. + +\subsection{References} + +The class makes various changes to the way that references are +handled. The class loads \textsf{natbib}, and also the appropriate +bibliography style. References can be made using the normal method; +the citation should be placed before any punctuation, as the class +will move it if using a superscript citation style +\cite{Mena2000,Abernethy2003}. The use of \textsf{natbib} allows the +use of the various citation commands of that package: +\citeauthor{Abernethy2003} have shown something, or in +\citeyear{Cotton1999}. Long lists of authors will be automatically +truncated in most article formats, but not in supplementary +information or reviews \cite{Pople2003}. + +Multiple citations to be combined into a list can be given as +a single citation. This uses the \textsf{mciteplus} package +\cite{Arduengo1992,*Eisenstein2005,*Arduengo1994}. Citations +other than the first of the list should be indicated with a star. + +The class also handles notes to be added to the bibliography. These +should be given in place in the document \bibnote{This is a note. +The text will be moved the the references section. The title of the +section will change to ``Notes and References''.}. As with +citations, the text should be placed before punctuation. A note is +also generated if a citation has an optional note. This assumes that +the whole work has already been cited: odd numbering will result if +this is not the case \cite[p.~1]{Cotton1999}. + +\subsection{Floats} + +New float types are automatically set up by the class file. The +means graphics are included as follows (\ref{sch:example}). As +illustrated, the float is ``here'' if possible. +\begin{scheme} + Your scheme graphic would go here: \texttt{.eps} format\\ + for \LaTeX\, or \texttt{.pdf} (or \texttt{.png}) for pdf\LaTeX\\ + \textsc{ChemDraw} files are best saved as \texttt{.eps} files;\\ + these can be scaled without loss of quality, and can be\\ + converted to \texttt{.pdf} files easily using \texttt{eps2pdf}.\\ + %\includegraphics{graphic} + \caption{An example scheme} + \label{sch:example} +\end{scheme} + +\subsection{Math(s)} + +The \textsf{achemso} class does not load any particular additional +support for mathematics. If the author \emph{needs} things like +\textsf{amsmath}, they should be loaded in the preamble. However, +the basics should work fine. Some inline material $ y = mx + c$ +followed by some display. \[ A = \pi r^2 \] + +\section{Experimental} + +The usual experimental details should appear here. This could +include a table, which can be referenced as \ref{tbl:example}. Notice +that the caption is positioned at the top of the table. Do not worry +about the appearance of the table: this will be altered during +production. +\begin{table} + \caption{An example table} + \label{tbl:example} + \begin{tabular}{ll} + \hline + Header one & Header two \\ + \hline + Entry one & Entry two \\ + Entry three & Entry four \\ + Entry five & Entry five \\ + Entry seven & Entry eight \\ + \hline + \end{tabular} +\end{table} + +The example file also loads the \textsf{mhchem} package, so +that formulas are easy to input: \texttt{\textbackslash +\ce\{H2SO4\}} gives \ce{H2SO4}. See the use in the +bibliography file (when using titles in the references +section). + +The use of new commands should be limited to simple things which will +not interfere with the production process. For example, +\texttt{\textbackslash mycommand} has been defined in this example, +to give italic, monospaced text: \mycommand{some text}. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% The "Acknowledgement" section can be given in all manuscript +%% classes. Rather than use \section, an appropriate macro is +%% provided that will always work. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\acknowledgement + +Thanks to Mats Dahlgren for version one of \textsf{achemso}, +and Donald Arseneau for the code taken from \textsf{cite} to +move citations after punctuation. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% The same is true for Supporting Information, which should use the +%% \suppinfo macro. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\suppinfo + +The entire \textsf{achemso} bundle is generated by running +\texttt{achemso.dtx} through \TeX. Running \LaTeX\ on the same file +will generate the general documentation for both the class and +package files. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% The appropriate \bibliography command should be placed here. +%% Notice that the class file automatically sets \bibliographystyle +%% and also names the section correctly. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\bibliography{achemso} + +\end{document} +%</demo> +%<*bst> ENTRY { address -%<list> annotate author booktitle chapter + ctrl-use-title + ctrl-etal-number doi edition editor howpublished institution journal -%<nat> key + key note number organization @@ -790,15 +2758,15 @@ ENTRY year } {} - { - label -%<nat> extra.label -%<nat> short.list + { label + extra.label + 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 } FUNCTION {init.state.consts} { #0 'before.all := @@ -808,17 +2776,21 @@ FUNCTION {init.state.consts} #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 } + +%% The number of names that force "et al." to be used +FUNCTION {default.etal.number} { #15 } + FUNCTION {add.comma} { ", " * } FUNCTION {add.semicolon} { "; " * } -% \end{macrocode} -% For authors/editors we need to be able to add either a semi-colon -% or a comma. This is done using a switching function, defined here. -% \begin{macrocode} - +%<*!bio> FUNCTION {add.comma.or.semicolon} { #1 separate.by.semicolon = 'add.semicolon @@ -826,6 +2798,7 @@ FUNCTION {add.comma.or.semicolon} if$ } +%</!bio> FUNCTION {add.colon} { ": " * } @@ -871,29 +2844,6 @@ FUNCTION {output.check} if$ } -% \end{macrocode} -% For the standard file types, |output.bibitem| can come here. -% The same is not true for styles supporting \pkg{natbib}, and so -% |output.bibitem| occurs later for those styles. -% \iffalse -%<*!nat> -% \fi -% \begin{macrocode} -FUNCTION {output.bibitem} -{ newline$ - "\bibitem{" write$ - cite$ write$ - "}" write$ - newline$ - "" - before.all 'output.state := -} - -% \end{macrocode} -% \iffalse -%</!nat> -% \fi -% \begin{macrocode} FUNCTION {new.block} { output.state before.all = 'skip$ @@ -911,29 +2861,9 @@ FUNCTION {new.sentence} } if$ } -%<*list> - -FUNCTION {add.note} -{ annotate empty$ - 'skip$ - { new.block - "{\footnotesize " annotate * "}" * output } - if$ -} -%</list> - -%<*!mcp> -FUNCTION {fin.entry} -%<list>{ add.note -%<list> add.period$ -%<!list>{ add.period$ - write$ - newline$ -} -%</!mcp> -%<*mcp> INTEGERS {would.add.period.textlen} + FUNCTION {would.add.period} { duplicate$ add.period$ @@ -967,7 +2897,6 @@ FUNCTION {fin.entry} "\EndOfBibitem" write$ } -%</mcp> FUNCTION {not} { { #0 } { #1 } @@ -1144,6 +3073,67 @@ FUNCTION {extract.num} if$ } +FUNCTION {chr.to.value} +{ chr.to.int$ #48 - + duplicate$ duplicate$ + #0 < swap$ #9 > or + { #48 + int.to.chr$ + " is not a number..." * + warning$ + pop$ #0 + } + {} + if$ +} + + +%% Some tricks from "Tame the BeaST" to convert a string +%% to a number +INTEGERS { a b } + +FUNCTION {mult} +{ 'a := + 'b := + b #0 < + {#-1 #0 b - 'b :=} + {#1} + if$ + #0 + {b #0 >} + { a + + b #1 - 'b := + } + while$ + swap$ + 'skip$ + {#0 swap$ -} + if$ +} + +FUNCTION {str.to.int.aux} +{ {duplicate$ empty$ not} + { swap$ #10 mult 'a := + duplicate$ #1 #1 substring$ + chr.to.value a + + swap$ + #2 global.max$ substring$ + } + while$ + pop$ +} + +FUNCTION {str.to.int} +{ duplicate$ #1 #1 substring$ "-" = + {#1 swap$ #2 global.max$ substring$} + {#0 swap$} + if$ + #0 swap$ str.to.int.aux + swap$ + {#0 swap$ -} + {} + if$ +} + FUNCTION {bibinfo.check} { swap$ duplicate$ missing$ @@ -1209,7 +3199,7 @@ FUNCTION {format.names} #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := - numnames #15 > + numnames etal.number > etal.number #0 > and { s #1 "{vv~}{ll,}{~f.}{,~jj}" format.name$ 't := t bbl.etal space.connect } @@ -1218,14 +3208,16 @@ FUNCTION {format.names} { s nameptr "{vv~}{ll,}{~f.}{,~jj}" format.name$ 't := nameptr #1 > { namesleft #1 > - { add.comma.or.semicolon t * } +%<!bio> { add.comma.or.semicolon t * } +%<bio> { add.comma t * } { numnames #2 > { "" * } 'skip$ if$ t "others," = { bbl.etal space.connect } - { add.comma.or.semicolon t * } +%<!bio> { add.comma.or.semicolon t * } +%<bio> { add.comma bbl.and space.connect t space.connect } if$ } if$ @@ -1244,7 +3236,7 @@ FUNCTION {format.authors} { author empty$ { "" } { #1 'author.or.editor := - #1 'separate.by.semicolon := +%<!bio> #1 'separate.by.semicolon := author format.names } if$ @@ -1254,7 +3246,7 @@ FUNCTION {format.editors} { editor empty$ { "" } { #2 'author.or.editor := - #0 'separate.by.semicolon := +%<!bio> #0 'separate.by.semicolon := editor format.names add.comma editor num.names$ #1 > @@ -1317,6 +3309,16 @@ FUNCTION {format.title} if$ } +%% The add.title function only does anything if the appropriate +%% flag is set. +FUNCTION {add.title} +{ is.use.title + { title format.title.noemph "title" output.check + new.sentence } + 'skip$ + if$ +} + FUNCTION {format.number.series} { volume empty$ { number empty$ @@ -1339,12 +3341,6 @@ FUNCTION {format.url} if$ } -% The specialised |output.bibitem| needed for \pkg{natbib} support now -% follows, along with the various support macros it needs. -% \iffalse -%<*nat> -% \fi -% \begin{macrocode} FUNCTION {format.full.names} {'s := #1 'nameptr := @@ -1415,7 +3411,8 @@ FUNCTION {make.full.names} if$ } -FUNCTION {output.bibitem} { newline$ +FUNCTION {output.bibitem} +{ newline$ "\bibitem[" write$ label write$ ")" make.full.names duplicate$ short.list = @@ -1430,11 +3427,6 @@ FUNCTION {output.bibitem} { newline$ before.all 'output.state := } -% \end{macrocode} -% \iffalse -%</nat> -% \fi -% \begin{macrocode} FUNCTION {n.dashify} { 't := "" @@ -1460,6 +3452,7 @@ FUNCTION {n.dashify} while$ } +%<*!bio> FUNCTION {format.date} { year empty$ { "" } @@ -1467,6 +3460,17 @@ FUNCTION {format.date} if$ } +%</!bio> +%<*bio> +FUNCTION {format.date} +{ year empty$ + { "" } + { "(" year ")" * * } + if$ +} + +%</bio> + FUNCTION {format.bdate} { year empty$ { "There's no year in " cite$ * warning$ } @@ -1524,7 +3528,6 @@ FUNCTION {format.pages} if$ } - FUNCTION {format.pages.required} { pages empty$ { "" @@ -1671,11 +3674,12 @@ FUNCTION {article} { output.bibitem format.authors "author" output.check after.item 'output.state := -%<iecr> title format.title.noemph "title" output.check -%<iecr> new.sentence +%<bio> format.date "year" output.check +%<bio> after.item 'output.state := + add.title journal emphasize "journal" output.check after.item 'output.state := - format.date "year" output.check +%<!bio> format.date "year" output.check volume empty$ { "" format.pages.nopp output @@ -1915,19 +3919,6 @@ FUNCTION {proceedings} fin.entry } -FUNCTION {remark} -{ output.bibitem - note "note" output.check - fin.entry -} - -FUNCTION {submitted} -{ output.bibitem - format.authors "author" output.check - bbl.submitted output - fin.entry -} - FUNCTION {techreport} { output.bibitem format.authors "author" output.check @@ -1973,6 +3964,41 @@ FUNCTION {unpublished} empty.doi.note } +%% Convert the strings "yes" or "no" to #1 or #0 respectively +FUNCTION {yes.no.to.int} +{ "l" change.case$ duplicate$ + "yes" = + { pop$ #1 } + { duplicate$ "no" = + { pop$ #0 } + { "unknown Boolean " quote$ * swap$ * quote$ * + " in " * cite$ * warning$ + #0 + } + if$ + } + if$ +} + +%% 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 := } + if$ + ctrl-etal-number + empty$ + { skip$ } + { ctrl-etal-number + str.to.int + 'etal.number := } + if$ +} + FUNCTION {conference} {inproceedings} FUNCTION {other} {patent} @@ -1992,121 +4018,53 @@ MACRO {oct} {"Oct."} MACRO {nov} {"Nov."} MACRO {dec} {"Dec."} -MACRO {acchemr} {"Acc.\ Chem.\ Res."} -MACRO {aacsa} {"Adv.\ {ACS} Abstr."} -MACRO {anchem} {"Anal.\ Chem."} -MACRO {bioch} {"Biochemistry"} -MACRO {bicoc} {"Bioconj.\ Chem."} % *** -MACRO {bitech} {"Biotechnol.\ Progr."} % *** -MACRO {chemeng} {"Chem.\ Eng.\ News"} -MACRO {chs} {"Chem.\ Health Safety"} % *** -MACRO {crt} {"Chem.\ Res.\ Toxicol."} % *** -MACRO {chemrev} {"Chem.\ Rev."} % *** -MACRO {cmat} {"Chem.\ Mater."} % *** -MACRO {chemtech} {"{CHEMTECH}"} % *** -MACRO {enfu} {"Energy Fuels"} % *** -MACRO {envst} {"Environ.\ Sci.\ Technol."} -MACRO {iecf} {"Ind.\ Eng.\ Chem.\ Fundam."} -MACRO {iecpdd} {"Ind.\ Eng.\ Chem.\ Proc.\ Des.\ Dev."} -MACRO {iecprd} {"Ind.\ Eng.\ Chem.\ Prod.\ Res.\ Dev."} -MACRO {iecr} {"Ind.\ Eng.\ Chem.\ Res."} % *** -MACRO {inor} {"Inorg.\ Chem."} -MACRO {jafc} {"J.~Agric.\ Food Chem."} -MACRO {jacs} {"J.~Am.\ Chem.\ Soc."} -MACRO {jced} {"J.~Chem.\ Eng.\ Data"} -MACRO {jcics} {"J.~Chem.\ Inf.\ Comput.\ Sci."} -MACRO {jmc} {"J.~Med.\ Chem."} -MACRO {joc} {"J.~Org.\ Chem."} -MACRO {jps} {"J.~Pharm.\ Sci."} -MACRO {jpcrd} {"J.~Phys.\ Chem.\ Ref.\ Data"} % *** -MACRO {jpc} {"J.~Phys.\ Chem."} -MACRO {jpca} {"J.~Phys.\ Chem.~A"} -MACRO {jpcb} {"J.~Phys.\ Chem.~B"} -MACRO {lang} {"Langmuir"} -MACRO {macro} {"Macromolecules"} -MACRO {orgmet} {"Organometallics"} -MACRO {orglett} {"Org.\ Lett."} - -MACRO {jft} {"J.~Chem.\ Soc., Faraday Trans."} -MACRO {jft1} {"J.~Chem.\ Soc., Faraday Trans.\ 1"} -MACRO {jft2} {"J.~Chem.\ Soc., Faraday Trans.\ 2"} -MACRO {tfs} {"Trans.\ Faraday Soc."} -MACRO {jcis} {"J.~Colloid Interface Sci."} -MACRO {acis} {"Adv.~Colloid Interface Sci."} -MACRO {cs} {"Colloids Surf."} -MACRO {csa} {"Colloids Surf.\ A"} -MACRO {csb} {"Colloids Surf.\ B"} -MACRO {pcps} {"Progr.\ Colloid Polym.\ Sci."} -MACRO {jmr} {"J.~Magn.\ Reson."} -MACRO {jmra} {"J.~Magn.\ Reson.\ A"} -MACRO {jmrb} {"J.~Magn.\ Reson.\ B"} -MACRO {sci} {"Science"} -MACRO {nat} {"Nature"} -MACRO {jcch} {"J.~Comput.\ Chem."} -MACRO {cca} {"Croat.\ Chem.\ Acta"} -MACRO {angew} {"Angew.\ Chem., Int.\ Ed."} -MACRO {chemeurj} {"Chem.---Eur.\ J."} - -MACRO {poly} {"Polymer"} -MACRO {ajp} {"Am.\ J.\ Phys."} -MACRO {rsi} {"Rev.\ Sci.\ Instrum."} -MACRO {jcp} {"J.~Chem.\ Phys."} -MACRO {cpl} {"Chem.\ Phys.\ Lett."} -MACRO {molph} {"Mol.\ Phys."} -MACRO {pac} {"Pure Appl.\ Chem."} -MACRO {jbc} {"J.~Biol.\ Chem."} -MACRO {tl} {"Tetrahedron Lett."} -MACRO {psisoe} {"Proc.\ SPIE-Int.\ Soc.\ Opt.\ Eng."} -MACRO {prb} {"Phys.\ Rev.\ B:\ Condens.\ Matter Mater. Phys."} -MACRO {jap} {"J.~Appl.\ Phys."} -MACRO {pnac} {"Proc.\ Natl.\ Acad.\ Sci.\ U.S.A."} -MACRO {bba} {"Biochim.\ Biophys.\ Acta"} -MACRO {nar} {"Nucleic.\ Acid Res."} +%% The ACS journals by CODEN +MACRO {achre4} {"Acc.\ Chem.\ Res."} +MACRO {acbcct} {"ACS Chem.\ Biol."} +MACRO {ancac3} {"ACS Nano"} +MACRO {ancham} {"Anal.\ Chem."} +MACRO {bichaw} {"Biochemistry"} +MACRO {bcches} {"Bioconjugate Chem."} +MACRO {bomaf6} {"Biomacromolecules"} +MACRO {bipret} {"Biotechnol.\ Prog."} +MACRO {crtoec} {"Chem.\ Res.\ Toxicol."} +MACRO {chreay} {"Chem.\ Rev."} +MACRO {cmatex} {"Chem.\ Mater."} +MACRO {cgdefu} {"Cryst.\ Growth Des."} +MACRO {enfuem} {"Energy Fuels"} +MACRO {esthag} {"Environ.\ Sci.\ Technol."} +MACRO {iechad} {"Ind.\ Eng.\ Chem.\ Res."} +MACRO {inoraj} {"Inorg.\ Chem."} +MACRO {jafcau} {"J.~Agric.\ Food Chem."} +MACRO {jceaax} {"J.~Chem.\ Eng.\ Data"} +MACRO {jcisd8} {"J.~Chem.\ Inf.\ Model."} +MACRO {jctcce} {"J.~Chem.\ Theory Comput."} +MACRO {jcchff} {"J. Comb. Chem."} +MACRO {jmcmar} {"J. Med. Chem."} +MACRO {jnprdf} {"J. Nat. Prod."} +MACRO {joceah} {"J.~Org.\ Chem."} +MACRO {jpcafh} {"J.~Phys.\ Chem.~A"} +MACRO {jpcbfk} {"J.~Phys.\ Chem.~B"} +MACRO {jpccck} {"J.~Phys.\ Chem.~C"} +MACRO {jprobs} {"J.~Proteome Res."} +MACRO {jacsat} {"J.~Am.\ Chem.\ Soc."} +MACRO {langd5} {"Langmuir"} +MACRO {mamobx} {"Macromolecules"} +MACRO {mpohbp} {"Mol.\ Pharm."} +MACRO {nalefd} {"Nano Lett."} +MACRO {orlef7} {"Org.\ Lett."} +MACRO {oprdfk} {"Org.\ Proc.\ Res.\ Dev."} +MACRO {orgnd7} {"Organometallics"} READ -% \end{macrocode} -% The nature of the initialise code depends on whether we need to -% support \pkg{natbib}. First the simple case is handled. -% \iffalse -%<*!nat> -% \fi -% \begin{macrocode} -STRINGS { longest.label } - -INTEGERS { number.label longest.label.width } - -FUNCTION {initialize.longest.label} -{ "" 'longest.label := - #1 'number.label := - #0 'longest.label.width := -} - -FUNCTION {longest.label.pass} -{ number.label int.to.str$ 'label := - number.label #1 + 'number.label := - label width$ longest.label.width > - { label 'longest.label := - label width$ 'longest.label.width := - } - 'skip$ - if$ +FUNCTION {initialize.controls} +{ default.is.use.title 'is.use.title := + default.etal.number 'etal.number := } -EXECUTE {initialize.longest.label} - -ITERATE {longest.label.pass} +EXECUTE {initialize.controls} -% \end{macrocode} -% \iffalse -%</!nat> -% \fi -% Now the \pkg{natbib} system is sorted out, basically by copying from -% \file{plainnat.bst}. -% \iffalse -%<*nat> -% \fi -% \begin{macrocode} INTEGERS { len } FUNCTION {chop.word} @@ -2256,30 +4214,6 @@ EXECUTE {initialize.longest.label} ITERATE {forward.pass} -% \end{macrocode} -% \iffalse -%</nat> -% \fi - -%<*!mcp> -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - "\providecommand{\url}[1]{\texttt{#1}}" - write$ newline$ - "\providecommand{\refin}[1]{\\ \textbf{Referenced in:} #1}" - write$ newline$ -%<nat> "\providecommand{\natexlab}[1]{#1}" -%<nat> write$ newline$ -%<!nat> "\begin{thebibliography}{" longest.label * "}" * -%<nat> "\begin{thebibliography}{" number.label int.to.str$ * "}" * - write$ newline$ -} - -%</!mcp> -%<*mcp> FUNCTION {begin.bib} { preamble$ empty$ 'skip$ @@ -2287,15 +4221,19 @@ FUNCTION {begin.bib} if$ "\ifx\mcitethebibliography\mciteundefinedmacro" write$ newline$ - "\PackageError{achemsoM.bst}{mciteplus.sty has not been loaded}" + "\PackageError" + write$ +%<!bio> "{achemso.bst}" +%<bio> "{biochem.bst}" + write$ + "{mciteplus.sty has not been loaded}" write$ newline$ "{This bibstyle requires the use of the mciteplus package.}\fi" write$ newline$ -%<!nat> "\begin{mcitethebibliography}{" longest.label * "}" * write$ newline$ -%<nat> "\begin{mcitethebibliography}{" number.label int.to.str$ * "}" * -%<nat> write$ newline$ -%<nat> "\providecommand{\natexlab}[1]{#1}" -%<nat> write$ newline$ + "\begin{mcitethebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\providecommand*{\natexlab}[1]{#1}" + write$ newline$ "\mciteSetBstSublistMode{f}" write$ newline$ "\mciteSetBstMaxWidthForm{subitem}{(\alph{mcitesubitemcount})}" @@ -2306,58 +4244,40 @@ FUNCTION {begin.bib} write$ newline$ } -%</mcp> EXECUTE {begin.bib} EXECUTE {init.state.consts} ITERATE {call.type$} -%<*!mcp> -FUNCTION {end.bib} -{ newline$ - "\end{thebibliography}" write$ newline$ -} - -%</!mcp> -%<*mcp> FUNCTION {end.bib} { newline$ "\end{mcitethebibliography}" write$ newline$ } -%</mcp> EXECUTE {end.bib} -%</bib> -%<*database> -@BOOK{Coghill2006, - title = {{T}he {ACS} {S}tyle {G}uide}, - publisher = {{O}xford {U}niversity {P}ress, {I}nc. and - {T}he {A}merican {C}hemical {S}ociety}, - year = {2006}, - editor = {Coghill, Anne M. and Garson, Lorrin R.}, - address = {{N}ew {Y}ork}, - edition = {3}, - subtitle = {{E}ffective {C}ommunication of {S}cientific {I}nformation}, -} - -@MISC{ACS2007, - url = {http://pubs.acs.org/books/references.shtml}, -} -%</database> +%</bst> %<*jawltxdoc> \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{jawltxdoc} \usepackage[T1]{fontenc} -\usepackage[english,UKenglish]{babel} +\usepackage{lmodern} +\usepackage[final]{listings,graphicx,microtype} \usepackage[scaled=0.95]{helvet} \usepackage[version=3]{mhchem} -\usepackage[final]{microtype} \usepackage[osf]{mathpazo} -\usepackage{booktabs,array,url,graphicx,courier,xspace} -\usepackage{upgreek,ifpdf,listings,float,caption,longtable} +\usepackage{booktabs,array,url,courier,xspace,varioref} +\usepackage{upgreek,ifpdf,float,caption,longtable,babel} +\begingroup + \@ifundefined{eTeXversion} + {\aftergroup\@gobble} + {\aftergroup\@firstofone} +\endgroup + {\usepackage{etoolbox}} \floatstyle{plaintop} \restylefloat{table} +\labelformat{figure}{\figurename~#1} +\labelformat{table}{\tablename~#1} \ifpdf \usepackage{embedfile} \embedfile[% @@ -2369,125 +4289,148 @@ EXECUTE {end.bib} \IfFileExists{\jobname.sty} {\usepackage{\jobname}}{} \usepackage[numbered]{hypdoc} +\setcounter{IndexColumns}{2} \newlength\LaTeXwidth \newlength\LaTeXoutdent \newlength\LaTeXgap \setlength\LaTeXgap{1em} \setlength\LaTeXoutdent{-0.15\textwidth} -\newcommand*{\typesetexampleandcode}{% - \begin{list}{}{% - \setlength\itemindent{0pt} - \setlength\leftmargin\LaTeXoutdent - \setlength\rightmargin{0pt} - } - \item - \setlength\LaTeXoutdent{-0.15\textwidth} - \begin{minipage}[c]{\textwidth-\LaTeXwidth-\LaTeXoutdent-\LaTeXgap} - \lst@sampleInput - \end{minipage}% - \hfill% - \begin{minipage}[c]{\LaTeXwidth}% - \hbox to\linewidth{\box\lst@samplebox\hss}% - \end{minipage}% - \end{list} -} -\newcommand*{\typesetcodeandexample}{% - \begin{list}{}{% - \setlength\itemindent{0pt} - \setlength\leftmargin{0pt} - \setlength\rightmargin{0pt} - } - \item - \begin{minipage}[c]{\LaTeXwidth}% - \hbox to\linewidth{\box\lst@samplebox\hss}% - \end{minipage}% - \lst@sampleInput - \end{list} -} -\newcommand*{\typesetfloatexample}{% - \begin{list}{}{% - \setlength\itemindent{0pt} - \setlength\leftmargin{0pt} - \setlength\rightmargin{0pt} - } - \item - \lst@sampleInput - \begin{minipage}[c]{\LaTeXwidth}% - \hbox to\linewidth{\box\lst@samplebox\hss}% - \end{minipage}% - \end{list} -} -\newcommand*{\typesetcodeonly}{% - \begin{list}{}{% - \setlength\itemindent{0pt} - \setlength\leftmargin{0pt} - \setlength\rightmargin{0pt} - } - \item - \begin{minipage}[c]{\LaTeXwidth}% - \hbox to\linewidth{\box\lst@samplebox\hss}% - \end{minipage}% - \end{list} -} +\newbox\lst@samplebox \edef\LaTeXexamplefile{\jobname.tmp} \lst@RequireAspects{writefile} -\newbox\lst@samplebox -\lstnewenvironment{LaTeXexample}[1][\typesetexampleandcode]{% - \let\typesetexample#1 +\lstnewenvironment{LaTeXexample}[1][example]{% \global\let\lst@intname\@empty + \ifcsname LaTeXcode#1\endcsname + \expandafter\let\expandafter\LaTeXcode + \csname LaTeXcode#1\endcsname + \expandafter\let\expandafter\LaTeXcodeend + \csname LaTeXcode#1end\endcsname + \else + \PackageError{jawltxdoc} + {Undefined example type `#1'} + \@ehd + \let\LaTeXcode\relax + \let\LaTeXcodeend\relax + \fi + \LaTeXcode} + {\lst@EndWriteFile + \LaTeXcodeend} +\newcommand*{\LaTeXcodeexample}{% \setbox\lst@samplebox=\hbox\bgroup - \setkeys{lst}{tabsize=4,gobble=3,breakindent=0pt,% - basicstyle=\small\ttfamily,basewidth=0.51em,% - keywordstyle=\color{blue}} - \lst@BeginAlsoWriteFile{\LaTeXexamplefile} -}{% - \lst@EndWriteFile\egroup - \setlength\LaTeXwidth{\wd\lst@samplebox} - \typesetexample% -} -\newcommand*{\lst@sampleInput}{% + \LaTeXcodefloat} +\let\LaTeXcoderesultonly\LaTeXcodeexample +\newcommand*{\LaTeXcodeexampleend}{% + \egroup + \setlength\LaTeXwidth{\wd\lst@samplebox}% + \begin{list}{}{% + \setlength\itemindent{0pt} + \setlength\leftmargin\LaTeXoutdent + \setlength\rightmargin{0pt}}% + \item + \setlength\LaTeXoutdent{-0.15\textwidth} + \begin{minipage}[c]{% + \textwidth-\LaTeXwidth-\LaTeXoutdent-\LaTeXgap} + \LaTeXcodefloatend + \end{minipage}% + \hfill + \begin{minipage}[c]{\LaTeXwidth}% + \hbox to\linewidth{\box\lst@samplebox\hss}% + \end{minipage}% + \end{list}} +\newcommand*{\LaTeXcodefloat}{% + \setkeys{lst}{tabsize=4,gobble=3,breakindent=0pt, + basicstyle=\small\ttfamily,basewidth=0.51em, + keywordstyle=\color{blue}}% + \lst@BeginAlsoWriteFile{\LaTeXexamplefile}} +\let\LaTeXcodenoexample\LaTeXcodefloat +\let\LaTeXcodenoexampleend\@empty +\newcommand*{\LaTeXcodefloatend}{% \MakePercentComment\catcode`\^^M=10\relax - \small% + \small {\setkeys{lst}{SelectCharTable=\lst@ReplaceInput{\^\^I}% {\lst@ProcessTabulator}}% \leavevmode \input{\LaTeXexamplefile}}% - \MakePercentIgnore% -} -\def\DescribeOption{\leavevmode\@bsphack\begingroup\MakePrivateLetters + \MakePercentIgnore} +\newcommand*{\LaTeXcoderesultonlyend}{\egroup\LaTeXcodefloatend} +\lstnewenvironment{BibTeXexample}{% + \global\let\lst@intname\@empty + \setbox\lst@samplebox=\hbox\bgroup + \setkeys{lst}{tabsize=4,gobble=3,breakindent=0pt, + basicstyle=\small\ttfamily,basewidth=0.51em, + keywordstyle=\color{black}} + \lst@BeginAlsoWriteFile{\LaTeXexamplefile}} + {\lst@EndWriteFile + \LaTeXcodeexampleend} +\newcommand*{\DescribeOption}{% + \leavevmode\@bsphack\begingroup\MakePrivateLetters \Describe@Option} -\def\Describe@Option#1{\endgroup +\newcommand*{\Describe@Option}[1]{\endgroup \marginpar{\raggedleft\PrintDescribeEnv{#1}}% \SpecialOptionIndex{#1}\@esphack\ignorespaces} -\def\SpecialOptionIndex#1{\@bsphack +\newcommand*{\SpecialOptionIndex}[1]{\@bsphack \index{#1\actualchar{\protect\ttfamily#1} (option)\encapchar usage}% - \index{options:\levelchar#1\actualchar{\protect\ttfamily#1}\encapchar - usage}\@esphack} + \index{options:\levelchar#1\actualchar{\protect\ttfamily#1}% + \encapchar usage}\@esphack} +\newcommand*{\indexopt}[1]{\DescribeOption{#1}\opt{#1}} +\newcommand*{\DescribeOptionInfo}[2]{% + \DescribeOption{#1}% + \opt{#1=\meta{#2}}\xspace} +\newcommand*{\ofixarg}[1]{% + {\ttfamily[}% + \ifmmode \expandafter \nfss@text \fi + {% + \meta@font@select + \edef\meta@hyphen@restore{% + \hyphenchar\the\font\the\hyphenchar\font}% + \hyphenchar\font\m@ne + \language\l@nohyphenation + #1\/% + \meta@hyphen@restore + }% + {\ttfamily]}} \newcommand*{\pkg}[1]{\textsf{#1}} \newcommand*{\currpkg}{\pkg{\jobname}\xspace} \newcommand*{\opt}[1]{\texttt{#1}} +\newcommand*{\defaultopt}[1]{\opt{\textbf{#1}}} \newcommand*{\file}[1]{\texttt{#1}} \newcommand*{\ext}[1]{\file{.#1}} \newcommand*{\latin}[1]{\emph{#1}} \newcommand*{\etc}{% \@ifnextchar. {\latin{etc}} - {\latin{etc.}} - \xspace} + {\latin{etc}.\xspace}} \newcommand*{\eg}{% \@ifnextchar. {\latin{e.g}} - {\latin{e.g.}} - \xspace} + {\latin{e.g}.\xspace}} \newcommand*{\ie}{% \@ifnextchar. {\latin{i.e}} - {\latin{i.e.}} - \xspace} + {\latin{i.e}.\xspace}} +\newcommand*{\etal}{% + \@ifnextchar. + {\latin{et~al.}} + {\latin{et~al}.\xspace}} \newcommand*{\AMS}{{\protect\usefont{OMS}{cmsy}{m}{n}% A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}} \providecommand*{\eTeX}{\ensuremath{\varepsilon}-\TeX} -\newcommand*{\XeTeX} +\DeclareRobustCommand*{\XeTeX} {X\kern-.125em\lower.5ex\hbox{\reflectbox{E}}\kern-.1667em\TeX} +\providecommand*{\CTAN}{\textsc{ctan}} +\@ifpackageloaded{etoolbox} + {\patchcmd{\@addmarginpar} + {\@latex@warning@no@line {Marginpar on page \thepage\space moved}} + {\relax}{}{}} + {} +\newcounter{argument} +\g@addto@macro\endmacro{\setcounter{argument}{0}} +\newcommand*\darg[1]{% + \stepcounter{argument}% + {\ttfamily\char`\#\theargument~:~}#1\par\noindent\ignorespaces} +\newcommand*\doarg[1]{% + \stepcounter{argument}% + {\ttfamily\makebox[0pt][r]{[}% + \char`\#\theargument]:~}#1\par\noindent\ignorespaces} %</jawltxdoc> %\fi |