                    achemso

– A BibTEX style for Chemistry Publications^{∗}

Mats Dahlgren

                         (matsd@homenet.se)

1997/02/22

Abstract

The achemso package provides a BibTEX style in accordance with the requirements of the journals of The American Chemical Society. It consists of both a BibTEX style file and a L^{A}TEX package file. Also provided, is a BibTEX style file to be used for bibliography data base listings via an option to the L^{A}TEX package achemso. This file and the package: Copyright \begin{matrix}c \\ ◯ \end{matrix} 1995-1997 by Mats Dahlgren. All rights reserved.

1 Introduction

Since the journals of The American Chemical Society (ACS) do no accept manuscripts which are using the standard BibTEX formats, the need for such a style package has been around for a while. I do sincerely hope that what I have accomplished with this package is (i) that using L^{A}TEX and BibTEX should be as easy as any other manuscript preparation system when preparing manuscripts for an ACS journal; (ii) that the package is doing this correctly. The reference handeling in the refernece list and in the text is aimed to be in accordance with the requirements of Accounts of Chemical Research, Chemical Reviwes, Inorganic Chemistry, Journal of the American Chemical Society, Journal of Chemical Information and Computer Sciences, Journal of Medicinal Chemistry, Journal of Organic Chemistry, The Journal of Physical Chemistry, Langmuir, Macromolecules, and Organometallics. (All these journals use the same reference format.)

   The package consists of four files, achemso.bst, achemsol.bst, achemso.dtx and achemso.ins.

After running achemso.ins trough L^{A}TEX, you should also have the files achemso.sty and acslist.tex. The latter is a L^{A}TEX input file (template file) to provide listing of a BibTEX data base. This very documentation was obtained by running L^{A}TEX on achemso.dtx.

However, there is already a L^{A}TEX 2.09 and BibTEX style package called acsarticle and acs.bst, which are not “ACS” as in ‘American Chemical Society’ (rather, this package is formatting the output according to the instructions of Advances in Control Systems). Hence, this new package had to be given another name. The name of choice was then achemso, which is made from the words “American Chemical Society”.

The achemso package has been tested with L^{A}TEX 2ε of 1995/12/01 patch level 2 running TEX 3.1415 and L^{A}TEX2e of 1996/06/01 (test release) running TEX 3.14159 both together with BibTEX version 0.99c, all under OpenVMS. Please send bug reports (see below), corrections, additions, suggestions, etc. to me at matsd@homenet.se.

∗This document describes achemso v.0.99 and was last updated on 1997/02/22.

The present version of the package is 0.99, of 1997/02/22. It differs from previous versions in a change of the handeling of phdthesis, mastersthesis, and book. Version 0.1 produced an error for these entry types if the optional field institution was empty. This bug has been removed.^{1} In the book entry type, there was a comma which should be a semicolon. With version 0.3, Donald Arsenau’s package overcite is loaded, making collapsing and sorting of references automatic. Version 0.4 was modified to work better with the December 1995 release of L^{A}TEX 2ε; it also has the .bst files incorporated in achemso.dtx. Version 0.99 was issued due to some changes in the documentation and my change of e-mail addresses.

1.1 Note

This is in parts still a preliminary version of the package achemso. Some items in the reference list may not come out perfectly according to the ACS style. There is no guarantee that the predefined journal abbreviations are correct.

2 The L^{A}TEX Package

To work properly, a call to the achemso package must be done in a \usepackge command in the L^{A}TEX input file. The achemso package can take three options, namely note, list, and number. The \bibliographystyle command required for a document with a bibliography is included in the L^{A}TEX package file. The package options can be used together in any combination. Also, the overcite package must be installed on the system.

The achemso package redefines the bibliography environment to start a new page. If the note option is used, the heading of the reference list will read “References and Notes” instead of “References”, which is the default. (If used together with the babel package, there may be strange results. This is a minor problem since the ACS only accepts manuscripts in English.)

In the text, references are printed as superscripts with numbers. If there are more than two consecutive numbers at one occurence, the numbers will appear “collapsed”, that is like this^{11−14} rather than.^{11,12,13,14} The citations can be given in any order, thanks to the sorting done by the overcite package, which is loaded by the achemso package. If only the reference number is desired, such as in “… see reference 13.”, the command \citenum{key} can be used. \citenum emits only the numeral of the reference without any formatting.

2.1 The note option

note The option note is to be used when there are notes (of footnote-type) in the text. The text of these notes have to be placed in a BibTEX entry of the kind remark^{2} (see also below). I recommend a seperate .bib-file for the notes, which is then called for in the \bibliography-command. In this way, the notes will be sorted in automatically in the proper place in the reference list, while they still are easily kept out of the listings of the entire BibTEX data base. Also, the heading of the bibliography will read “References and Notes” and not only “References”.

2.2 The list option

list To produce a listing of the entire BibTEX data base, use the list option for the achemso package. It makes use of another .bst-file, called achemsol.bst, which is also included in the achemso package distribution. It only differs from achemso.bst in that it adds the information of the field annotate to every item in the list when present. annotate is an optional field for all entry types.

1Thanks to Johan Fröberg (emgion@physchem.kth.se) for bringing my attention to the problem.

2The term “note” is already used for an entry field in BibTEX.

When usnig the list option, the BibTEX keys will be typesetted in a framed box in the left margin. This feature is adapted from showtags.sty by Nelson H. F. Beebe (beebe@math.utah.edu).^{3}

\refin For use in the annotate field is a L^{A}TEX macro \refin defined by achemso.bst and achemsol.bst. This command takes one argument (normally text) which is preceeded by the text “Referenced in: ”. \refin is meant to facilitate in keeping track of in which publication(s) the bibliography item has been cited. Personally, I keep information in my data-base on in which of my own publications I have cited the article (or whatever) in question. It is for this purpouse the \refin command exsists.

2.3 The number option

number If a section number is desired for the bibliography in a document, the number option should be used with the achemso package. The only difference with respect to the default version is the adding of a section number to the heading. (It makes use of \section rather than \section* as the default.)

3 The BibTEX listing file

To obtain a listing of a BibTEX data base in an easy way, only very minor changes are needed to the file acslist.tex.^{4} When running L^{A}TEX on this file, you will be provided with a complete listing of the data base as the output, with the labels used in framed boxes to the left of the data base entries. acslist.tex uses the list option of the package file (surprise!). To get rid of the sectioning heading in the data base listing, you can include the following line in acslist.tex:

  \renewcommand{\refname}{ }

4 The BibTEX style

The .bst-files in the achemso package are based on the standard BibTEX style unsrt.bst.

4.1 Extra Entry Types

inpress The BibTEX style achemso defines three non-standard entry types, inpress, submitted, and

submitted
remark

remark. The inpress and submitted entries are intended for journal articles which have not yet been published, but are “in press” or “submitted”, respectively. The remark entry type is to be used to obtain notes intermixed in the reference list (see also section 2.1 above).

3Many thanks to Nelson H. F. Beebe for letting me incorporate his code into achemso.

4You must specify the name(s) of your .bib-file(s).

4.2 The Data Base Entries

This section explains which data base entry types are recognized by achemso and which fields are required, optional, and ignored for the different entries. Note that achemso is not as robust as many other BibTEX styles, and may in some cases not warn that a required field is missing. The only way to detect this is to look in the final bibliography listing, which for the incomplete entries is likely to look strange. The following entries are recognized:

Entry type  Entry fields

article  R: author, journal, year, volume, pages

               O: note

book  R: author or editor, title or booktitle, publisher, address, year

               O: volume, series, edition, note

booklet  R: author, title, year

               O: howpublished, address, note

conference  R: author, title, booktitle, editor, publisher, address, year

               O: volume, edition, type, chapter, pages, note

inbook  R: author, title, booktitle, editor, publisher, address, year

               O: volume, edition, type, chapter, pages, note

incollection R: author, title, booktitle, editor, publisher, address, year

               O: volume, edition, note

inpress  R: author, journal

               O: note

inproceedings R: author, title, booktitle, editor, publisher, address, year

               O: volume, edition, type, chapter, pages, note

manual  R: title

               O: author, organization, address, edition, year, note

mastersthesis R: author, title, school, year

               O: institution, note

misc  R: none

               O: author, title, howpublished, year, note

phdthesis  R: author, title, school, year

               O: type, institution, note

proceedings  R: editor or organization, title or booktitle, year

               O: volume, edition, publisher, address, note

remark  R: note

O: none

submitted  R: author, journal

               O: note

techreport  R: author, title, institution

               O: type, number, address, note

unpublished  R: author

               O: year, note

R: denotes required fields; O: denotes optional filelds.

The following fields are avaliable: address, author, booktitle, chapter, edition, editor,
howpublished, institution, journal, key, month, note, number, organization, pages,
publisher, school, series, title, type, volume, year, and annotate. All the fields have their

general meanings. All fields not specified above are ignored for that entry type.

4.3 Predefined Journal Abbriviations

In the achemso package, some journal names are defined. These journals are the journals of ACS, some other frequently cited in Physical Chemsitry, and the ten most cited according to Chemical Abstracs. The predefined ACS journal names are:

Abbreviation Appearance in list  Full journal name
acchemr  Acc. Chem. Res.  Accounts of Chemical Research
aacsa  Adv. ACS Abstr.  Advance ACS Abstracts
anchem  Anal. Chem.  Analytical Chemistry
bioch  Biochemistry  Biochemistry
bicoc  Bioconj. Chem.  (?) Bioconjugate Chemistry
bitech  Biotechnol. Progr.  (?) Biotechnology Progress
chemeng  Chem. Eng. News  Chemical & Engineering News
chs  Chem. Health Safety  (?) Chemical Health & Safety
crt  Chem. Res. Tox.  (?) Chemical Research in toxicology
chemrev  Chem. Rev.  Chemical Reviews
cmat  Chem. Mater.  Chemistry of Materials
chemtech  CHEMTECH  CHEMTECH
enfu  Energy & Fuels  (?) Energy & Fuels
envst  Environ. Sci. Technol.  Environmental Science and Technology
iecf  Ind. Eng. Chem. Fundam. Industrial & Engineering Chemistry

Fundamentals

iecpdd Ind. Eng. Chem. Proc. Industrial & Engineering Chemistry
Des. Dev.  Process Design and Development
iecprd Ind. Eng. Chem. Prod. Industrial & Engineering Chemistry
Res. Dev.  Product Research and Development
iecr Ind. Eng. Chem. Res. Industrial & Engineering Chemistry

Research

inor  Inorg. Chem.  Inorganic Chemistry
jafc  J. Agric. Food Chem.  Journal of Agricultural and Food Chemistry
jacs  J. Am. Chem. Soc.  Journal of the American Chemical Society
jced  J. Chem. Eng. Data  Journal of Chemical and Engineering Data
jcics  J. Chem. Inf. Comput. Sci. Journal of Chemical Information and

Computer Sciences

jmc  J. Med. Chem.  Journal of Medicinal Chemistry
joc  J. Org. Chem.  Journal of Organic Chemistry
jps  J. Pharm. Sci.  Journal of Pharmaceutical Sciences
jpcrd  J. Phys. Chem. Ref. Data Journal of Physical and Chemical

Reference Data

jpc  J. Phys. Chem.  The Journal of Physical Chemistry
lang  Langmuir  Langmuir
macro  Macromolecules  Macromolecules
orgmet  Organometallics  Organometallics

Other predefined journal names are:

Abbreviation Appearance in list  Full journal name
jft J. Chem. Soc., Faraday Trans. Journal of the Chemical Society,

Faraday Transactions

jft1  J. Chem. Soc., Faraday Trans. 1 Journal of the Chemical Society,

Faraday Transactions 1

jft2  J. Chem. Soc., Faraday Trans. 2 Journal of the Chemical Society,

Faraday Transactions 2

tfs  Trans. Faraday Soc.  Transactions of the Faraday Society
jcis  J. Colloid Interface Sci.  Journal of Colloid and Interface Science
acis  Adv. Colloid Interface Sci.  Advances in Colloid and Interface Science
cs  Colloids Surf.  Colloid and Surfaces
csa  Colloids Surf. A: Physiochem.  Colloid and Surfaces A: Physiochemical
Eng. Aspects and Engineering Aspects
csb  Colloids Surf. B: Biointerfaces  Colloid and Surfaces B: Biointerfaces
pcps  Progr. Colloid Polym. Sci.  Progress in Colloid and Polymer Science
jmr  J. Magn. Reson.  Journal of Magnetic Resonance
jmra  J. Magn. Reson. A  Journal of Magnetic Resonance, Series A
jmrb  J. Magn. Reson. B  Journal of Magnetic Resonance, Series B
sci  Science  Science
nat  Nature (London)  Nature
jcch  J. Comput. Chem.  Journal of Computational Chemistry
cca  Croat. Chem. Acta  Croatica Chemica Acta
poly  Polymer  Polymer
ajp  Am. J. Phys.  American Journal of Physics
rsi  Rev. Sci. Instrum.  Review of Scientific Instruments
jcp  J. Chem. Phys.  Journal of Chemical Physics
cpl  Chem. Phys. Lett.  Chemical Physics Letters
molph  Mol. Phys.  Molecular Physics
pac  Pure Appl. Chem.  Pure and Applied Chemistry
jbc  J. Biol. Chem.  Journal of Biological Chemistry
tl  Tetrahedron Lett.  Tetrahedron Letters
psisoe  Proc. SPIE-Int. Soc. Opt. Eng.  (?)
prb  Phys. Rev. B: Condens. Matter  Physics Review B: Condensed Matter
jap  J. Appl. Phys.  Journal of Applied Physics
pnac  Proc. Natl. Acad. Sci. U. S. A.  Proceedings of the National Academy

of Sciences of the U. S. A.

bba  Biochim. Biophys. Acta  Biochimica et Boiphysica Acta
nar  Nucleic Acid Res.  Nucleic Acid Research (?)

5 Known Problems and Limitations

At the present (1997/02/22), the following problems are known:

• When printing a data base listing using the list option (such as when type-setting acslist.tex), there may on rare occations occur a page-break between the framed box of the label and the BibTEX entry itself.

• Some of the pre-defined journal abbreviations may not be entirely correct, I have not been able to check some of them (since those journals are not avaliable at our library). If someone finds an error in the journal names, I’ll be most grateful to be informed on how the correct abbreviation is.

• Compatibility with other L^{A}TEX packages, both standard and non-standard, may be poor.

6 Bugs and Suggestions for Improvements

Bug reports and suggestions for improvements are most welcome. Especially corrections of (possible) errors in the journal abbreviations are wanted – please e-mail me! If you find any other error (an error in the L^{A}TEX or BibTEX code) please report them too! Before filing a (code) bug report, please take the following actions:

1. Ensure your problem is not due to your inputfile;

2. Ensure your problem is not due to your own package(s) or class(es);

3. Ensure your problem is not covered in the section ”Known Problems” above;

4. Try to locate the problem by writing a minimal L^{A}TEX input file which reproduces the problem.

Include the command

  \setcounter{errorcontextlines}{999}

in your input;

5. Run your file through L^{A}TEX;

6. Send a description of your problem, the input file and the log file via e-mail to:

   matsd@homenet.se.

Enjoy your L^{A}TEX!mats d.

7 The Package Code

The package code is not very complicated. For the interested reader(s), it is presented here.

First, the file is to identify itself and set the flags used for options handeling to F:

 1 \NeedsTeXFormat{LaTeX2e}[1995/12/01]
 2 \ProvidesPackage{achemso}[1997/02/22 version 0.99.]
 3 \def\achemsover{\texttt{achemso} version 0.99 (1997/02/22)}
 4 \newif \ifsctnnmbr \sctnnmbrfalse
 5 \newif \iflst      \lstfalse

Then, the options are processed, and the support package overcite by Donald Arsenau is loaded:

 6 \DeclareOption{note}{\renewcommand{\refname}{References and Notes}}
 7 \DeclareOption{number}{\global\sctnnmbrtrue}
 8 \DeclareOption{list}{\global\lsttrue}
 9 \DeclareOption*{\OptionNotUsed}
10 \ProcessOptions
11 \RequirePackage[nospace]{overcite}

If we are to print a complete listing, the file achemsol.bst is to be used, and the code to produce the framed labels read. Otherwise, the file achemso.bst should be called for in

\bibliographystyle.
12 \iflst
13 \bibliographystyle{achemsol}
14 \if@twocolumn
15 \else
16  \reversemarginpar
17 \fi
18 \def\@bibitem#1{\item\if@filesw \immediate\write\@auxout
19  {\string\bibcite{#1}{\the\value{\@listctr}}}\fi\ignorespaces
20  \@showtag{#1}}
21 \def\@lbibitem[#1]#2{\item[\@biblabel{#1}\hfill]\if@filesw
22  {\let\protect\noexpand
23  \immediate
24  \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces
25  \@showtag{#2}}
26 \newcommand{\thecitetag}[1]{\fbox{\texttt{#1}}}
27 \def\@showtag#1{\@tempdima=\baselineskip
28  \addtolength{\@tempdima}{0.5ex}
29  \marginpar{\hfill\raisebox{-\@tempdima}[0pt][0pt]{\thecitetag{#1}}}}
30 \else
31 \bibliographystyle{achemso}
32 \fi

Here is the part which redefines the thebibliography environment and make it start a new page. If we are printing a list, no new page should be started, since this list is likely to be just about everything in that document. At the end, a redefinition of \@biblabel is included to get rid of the brackets in the reference list.

33 \renewenvironment{thebibliography}[1]
34  {\iflst \else \par\clearpage \fi
35  \ifsctnnmbr
36  \section{\refname
37  \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}}%
38  \else
39  \section*{\refname

40  \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}}%
41  \fi
42  \list{\@biblabel{\@arabic\c@enumiv}}%
43  {\settowidth\labelwidth{\@biblabel{#1}}%
44  \leftmargin\labelwidth
45  \advance\leftmargin\labelsep
46  \@openbib@code
47  \usecounter{enumiv}%
48  \let\p@enumiv\@empty
49  \renewcommand\theenumiv{\@arabic\c@enumiv}}%
50  \sloppy\clubpenalty4000\widowpenalty4000%
51  \sfcode`\.\@m}
52  {\def\@noitemerr
53  {\@latex@warning{Empty `thebibliography' environment}}%
54  \endlist}
55 \def\@biblabel#1{#1.}

7.1 List template file

This is the template file for listing the BibTEX data base, acslist.tex:

56 \documentclass[11pt]{article}
57 \usepackage[list]{achemso}
58 \begin{document}
59 \cite{*}
60 \bibliography{refer}  %%%%  Change `refer' to the name(s)
61 \end{document}        %%%%  of your BibTeX data base(s).

Copyright \begin{matrix}c \\ ◯ \end{matrix} 1994-96 by Mats Dahlgren.