From 498a57b54b9d627acb94b05c6bcb1129b57c0310 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 16 Jul 2007 16:12:53 +0000 Subject: achemso 2.2b (9jul07) git-svn-id: svn://tug.org/texlive/trunk@4610 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/achemso/achemso.dtx | 523 ++++++++++++++++++--- Master/texmf-dist/source/latex/achemso/achemso.ins | 4 +- 2 files changed, 458 insertions(+), 69 deletions(-) (limited to 'Master/texmf-dist/source') diff --git a/Master/texmf-dist/source/latex/achemso/achemso.dtx b/Master/texmf-dist/source/latex/achemso/achemso.dtx index 24e83c19dfa..24df719bfe5 100644 --- a/Master/texmf-dist/source/latex/achemso/achemso.dtx +++ b/Master/texmf-dist/source/latex/achemso/achemso.dtx @@ -2,7 +2,7 @@ % ---------------------------------------------------------------- % The achemso package - A BibTeX style for American Chemical % Society publications -% Maintained by Joseph A. Wright +% Maintained by Joseph Wright % E-mail: joseph.wright@morningstar2.co.uk % Originally developed by Mats Dahlgren % (c) 1996-98 by Mats Dahlgren @@ -12,33 +12,53 @@ % %\NeedsTeXFormat{LaTeX2e}[2005/12/01] %\ProvidesPackage{achemso} -% [2007/02/15 v2.1 Enhancements for ACS publications] +% [2007/07/09 v2.2b Enhancements for ACS publications] % %<*driver> -\documentclass[a4paper]{ltxdoc} -\usepackage[T1]{fontenc} -\usepackage{booktabs,array} % Used to get nice-looking tables -\usepackage{url} -\usepackage{achemso} +\documentclass{ltxdoc} \EnableCrossrefs -%\DisableCrossrefs % Say \DisableCrossrefs if index is ready -\RecordChanges % Gather update information -\CodelineIndex % Index code by line number +\CodelineIndex +\RecordChanges %\OnlyDescription -\GetFileInfo{achemso.sty} -\title{The \textsf{achemso} package --- A BibTeX style for American - Chemical Society publications\thanks{This file has version - number \fileversion, last revised \filedate.}} -\author{Joseph Wright - \thanks{E-mail: - joseph.wright@morningstar2.co.uk}} -\date{\filedate} +\usepackage[T1]{fontenc} +\usepackage[english,UKenglish]{babel} +\usepackage{mathpazo,booktabs,array} +\usepackage[final]{microtype} +\usepackage[colorlinks]{hyperref} +\usepackage{\jobname} \begin{document} - \DocInput{achemso.dtx} + \DocInput{\jobname.dtx} \end{document} % % \fi -% \CheckSum{88} +% +% \CheckSum{277} +% +% \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 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \GetFileInfo{\jobname.sty} +% +% \title{The \textsf{achemso} package --- A BibTeX style for American +% Chemical Society publications} +% \author{Joseph Wright% +% \thanks{E-mail: joseph.wright@morningstar2.co.uk}} +% \date{\filedate} +% +% \CheckSum{118} % \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} @@ -49,11 +69,19 @@ % 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 \texttt{natbib} support} +% \changes{v2.2a}{2007/07/08}{Fixed separation of editor names} +% \changes{v2.2a}{2007/07/08}{Bug fixes to \texttt{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} % % \DoNotIndex{\def,\else,\fi,\global,\texttt,\ifx,\newif,\undefined} % \DoNotIndex{\ProcessOptions,\DeclareOption,\OptionNotUsed,\@gobble} % \DoNotIndex{\RequirePackage,\PackageWarning,\renewcommand,\@eha} -% \DoNotIndex{\@ifpackageloaded,\PackageError,\relax,\emph} +% \DoNotIndex{\@ifpackageloaded,\PackageError,\relax,\emph,\textit} +% \DoNotIndex{\newcommand,\renewcommand} % % \maketitle % @@ -178,9 +206,12 @@ % 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; the consensus of -% current practice in \emph{Journal of the American Chemical Society} -% has been taken as the correct approach. In addition to the problem +% 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. @@ -211,12 +242,11 @@ % The requirements for entries in the BibTeX database are slightly % different using |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 +% ACS bibliographies. In particular, journal articles do not % require a title (the |title| field is ignored). Articles -% in books only need the title of the book; the title of the -% subunit (given in |title|) is again ignored. This is the practice -% in \emph{Journal of the American Chemical Society}: some of the -% other journals may take a different approach. +% 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} % @@ -228,7 +258,7 @@ % correctly: this will automatically be prefixed with ``version'' by % the style file. % -% \subsection{The \textsf{annotate} field} +% \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 @@ -246,24 +276,31 @@ % 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 |\refin| command is intended for tracking citations +% The \cmd{\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 writers own papers. +% 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 |.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 +% highly cited by \emph{Chem.\ Abs.}\ The interested user should % consult the |.bst| files for full details. % +% \subsection{\texttt{natbib} support} +% +% As of version 2.2, a |natbib| compatible style file, |achemnat| is +% provided. The style file provides the appropriate option, +% |natbib|, to load this BibTeX file along with |natbib|, setting up +% the appropriate options. +% % \section{The LaTeX Package} % -% The current version of |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 +% The current version of |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 @@ -274,13 +311,12 @@ % \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 |cite| package), and the package ensures that the -% bibliography will be named ``References'' in all standard document -% types.\footnote{This only works if the |babel| package is -% \emph{not} loaded.} +% (using the |cite| or |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 +% |babel| package is \emph{not} loaded.} % -% The |achemso| package has four options: |note|, -% |list|, and |number|: +% The |achemso| package has five options: % \begin{description} % \item[|note|] If the bibliography contains notes as well % as citations, then the section heading should be @@ -298,10 +334,13 @@ % output, using the |showkeys| package. % \item[|notsuper|] Switches from superscript citations % (\emph{e.g.}~Author \emph{et al.}$^3$) to -% in-text ones in italics (\emph{e.g.} Author +% in-text ones in italics (\emph{e.g.}~Author % \emph{et al.}~(\emph{3})). There is a |super| % option for completeness, which simply gives the default % behaviour. +% \item[|natbib|] Uses |natbib| rather than |cite| for citation +% formatting; this also loads the |achemnat| style in place +% of |achemso|. % \end{description} % % \StopEventually{\PrintChanges% @@ -317,7 +356,7 @@ % can detect the version of achemso in use. % \begin{macrocode} %<*package> -\def\ACSver{\texttt{achemso} v2.1 (2007/02/15)} +\def\ACSver{\texttt{achemso} v2.2b (2007/07/09)} % \end{macrocode} % \end{macro} % \begin{macro}{\ACS@sctnnmbr} @@ -326,39 +365,66 @@ % \changes{v2.0}{2007/01/17}{Boolean values made internal to package} % \begin{macro}{\ACS@super} % \changes{v2.1}{2007/02/15}{New Boolean for citation control} -% Four Boolean values are used to handle the options. +% \begin{macro}{\ACS@natbib} +% \changes{v2.2a}{2007/07/08}{New Boolean for |natbib| support} +% Boolean values are used to handle the options. % \begin{macrocode} \newif \ifACS@sctnnmbr \ACS@sctnnmbrfalse -\newif \ifACS@lst \ACS@lstfalse +\newif \ifACS@list \ACS@listfalse \newif \ifACS@note \ACS@notefalse \newif \ifACS@super \ACS@supertrue +\newif \ifACS@natbib \ACS@natbibfalse % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % The options are processed. % \begin{macrocode} \DeclareOption{note}{\global\ACS@notetrue} \DeclareOption{number}{\global\ACS@sctnnmbrtrue} -\DeclareOption{list}{} +\DeclareOption{super}{\global\ACS@supertrue} +\DeclareOption{list}{\global\ACS@listtrue} \DeclareOption{notsuper}{\global\ACS@superfalse} +\DeclareOption{natbib}{\global\ACS@natbibtrue} \DeclareOption*{\OptionNotUsed} \ProcessOptions % \end{macrocode} % \changes{v2.1}{2007/02/15}{|cite| package is loaded with different % options depending on citation style requested} +% \changes{v2.2a}{2007/07/08}{|natbib| support added} % The |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@super - \RequirePackage[super,nospace]{cite} +\ifACS@natbib + \ifACS@super + \RequirePackage[numbers,sort&compress,super]{natbib} + \else +% \end{macrocode} +% For in-line citations with |natbib|, we have to do a +% bit of work to get things to look right. |natbib| uses +% \cmd{\citenumfont} to format the numbers, but it is not defined +% by default, so we have to use \cmd{\newcommand}. +% \begin{macrocode} + \RequirePackage[numbers,sort&compress,round]{natbib} + \newcommand*{\citenumfont}{\textit} + \fi \else - \RequirePackage{cite} - \def\citeleft{(} - \def\citeright{)} - \def\citeform{\emph{#1}} + \ifACS@super + \RequirePackage[super,nospace]{cite} + \else +% \end{macrocode} +% Again in-line citations need some format changes. In the case of +% |cite|, everything is defined initially. Thus we can use +% \cmd{\renewcommand} for everything. +% \begin{macrocode} + \RequirePackage{cite} + \renewcommand\citeleft{(} + \renewcommand\citeright{)} + \renewcommand\citeform[1]{\emph{#1}} + \fi \fi % \end{macrocode} % If the |babel| package is loaded, the |note| option does not @@ -407,7 +473,7 @@ % \end{macro} % If the |number| option is set, the |tocbibind| package is % used to number the bibliography. -% \changes{v2.0}{2007/01/17}{Switched to using \textsf{tocbibind} +% \changes{v2.0}{2007/01/17}{Switched to using \texttt{tocbibind} % to produce number bibliography} % \begin{macrocode} \ifACS@sctnnmbr @@ -420,15 +486,24 @@ % for listing the entire database. The |list| option of the % package selects this, and for listing also generates boxed % labels for each reference. The |showkeys| package provides -% this functionality. +% this functionality. If |natbib| is asked for, then the appropriate +% style files are used in place of the standard ones. % \changes{v2.0}{2007/01/17}{Replaced custom code with -% \textsf{showkeys} package} +% \texttt{showkeys} package} % \begin{macrocode} -\ifACS@lst - \bibliographystyle{achemsol} +\ifACS@list + \ifACS@natbib + \bibliographystyle{achemlnt} + \else + \bibliographystyle{achemsol} + \fi \RequirePackage[notcite]{showkeys} \else - \bibliographystyle{achemso} + \ifACS@natbib + \bibliographystyle{achemnat} + \else + \bibliographystyle{achemso} + \fi \fi % \end{macrocode} % \end{macro} @@ -472,6 +547,7 @@ ENTRY howpublished institution journal +% key note number organization @@ -485,10 +561,15 @@ ENTRY year } {} - { label } + { + 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 } FUNCTION {init.state.consts} { #0 'before.all := @@ -504,6 +585,18 @@ 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} + +FUNCTION {add.comma.or.semicolon} +{ #1 separate.by.semicolon = + 'add.semicolon + 'add.comma + if$ +} + FUNCTION {add.colon} { ": " * } @@ -549,6 +642,14 @@ FUNCTION {output.check} if$ } +% \end{macrocode} +% For the standard file types, |output.bibitem| can come here. +% The same is not true for styles supporting |natbib|, and so +% |output.bibitem| occurs later for those styles. +% \iffalse +%<*!nat> +% \fi +% \begin{macrocode} FUNCTION {output.bibitem} { newline$ "\bibitem{" write$ @@ -559,6 +660,11 @@ FUNCTION {output.bibitem} before.all 'output.state := } +% \end{macrocode} +% \iffalse +% +% \fi +% \begin{macrocode} FUNCTION {new.block} { output.state before.all = 'skip$ @@ -825,22 +931,22 @@ FUNCTION {format.names} s num.names$ 'numnames := numnames 'namesleft := numnames #15 > - { s #1 "{vv~}{ll,}{~jj,}{~f.}" format.name$ 't := + { s #1 "{vv~}{ll,}{~f.}{,~jj}" format.name$ 't := t bbl.etal space.connect } { { namesleft #0 > } - { s nameptr "{vv~}{ll,}{~jj,}{~f.}" format.name$ 't := + { s nameptr "{vv~}{ll,}{~f.}{,~jj}" format.name$ 't := nameptr #1 > { namesleft #1 > - { add.semicolon t * } + { add.comma.or.semicolon t * } { numnames #2 > { "" * } 'skip$ if$ t "others," = { bbl.etal space.connect } - { add.semicolon t * } + { add.comma.or.semicolon t * } if$ } if$ @@ -859,7 +965,9 @@ FUNCTION {format.authors} { author empty$ { "" } { #1 'author.or.editor := - author format.names } + #1 'separate.by.semicolon := + author format.names + } if$ } @@ -867,6 +975,7 @@ FUNCTION {format.editors} { editor empty$ { "" } { #2 'author.or.editor := + #0 'separate.by.semicolon := editor format.names add.comma editor num.names$ #1 > @@ -944,7 +1053,104 @@ FUNCTION {format.number.series} if$ } -FUNCTION {n.dashify} { 't := +% The specialised |output.bibitem| needed for |natbib| support now +% follows, along with the various support macros it needs. +% \iffalse +%<*nat> +% \fi +% \begin{macrocode} +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { bbl.etal * } + { bbl.and space.connect t space.connect } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.full} +{ author empty$ + { editor empty$ + { "" } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.full} +{ author empty$ + { "" } + { author format.full.names } + if$ +} + +FUNCTION {editor.full} +{ editor empty$ + { "" } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.full + { type$ "proceedings" = + 'editor.full + 'author.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} { newline$ + "\bibitem[" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +% \end{macrocode} +% \iffalse +% +% \fi +% \begin{macrocode} +FUNCTION {n.dashify} +{ 't := "" { t empty$ not } { t #1 #1 substring$ "-" = @@ -1285,6 +1491,11 @@ FUNCTION {incollection} } { format.authors output after.item 'output.state := + title empty$ + 'skip$ + { title format.title.noemph output } + if$ + after.sentence 'output.state := booktitle format.title.in "booktitle" output.check format.edition output } @@ -1294,6 +1505,7 @@ FUNCTION {incollection} new.block format.pub.address "publisher" output.check format.bdate "year" output.check + new.block format.bvolume output format.chapter.pages "chapter and pages" output.check note output @@ -1564,6 +1776,13 @@ MACRO {nar} {"Nucleic.\ Acid Res."} READ +% \end{macrocode} +% The nature of the initialise code depends on whether we need to +% support |natbib|. First the simple case is handled. +% \iffalse +%<*!nat> +% \fi +% \begin{macrocode} STRINGS { longest.label } INTEGERS { number.label longest.label.width } @@ -1589,6 +1808,170 @@ EXECUTE {initialize.longest.label} ITERATE {longest.label.pass} +% \end{macrocode} +% \iffalse +% +% \fi +% Now the |natbib| system is sorted out, basically by copying from +% |plainnat.bst|. +% \iffalse +%<*nat> +% \fi +% \begin{macrocode} +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ bbl.etal space.connect } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { bbl.etal space.connect } + { bbl.and space.connect s #2 "{vv~}{ll}" format.name$ space.connect } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +ITERATE {calc.label} + +STRINGS { longest.label last.label next.extra } + +INTEGERS { longest.label.width last.extra.num number.label } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := + #0 'number.label := +} + +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +% \end{macrocode} +% \iffalse +% +% \fi + FUNCTION {begin.bib} { preamble$ empty$ 'skip$ @@ -1596,7 +1979,11 @@ FUNCTION {begin.bib} if$ "\providecommand{\refin}[1]{\\ \textbf{Referenced in:} #1}" write$ newline$ - "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +% "\providecommand{\natexlab}[1]{#1}" +% write$ newline$ +% "\begin{thebibliography}{" longest.label * "}" * +% "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ } EXECUTE {begin.bib} diff --git a/Master/texmf-dist/source/latex/achemso/achemso.ins b/Master/texmf-dist/source/latex/achemso/achemso.ins index 4aea77ef341..3947bf80030 100644 --- a/Master/texmf-dist/source/latex/achemso/achemso.ins +++ b/Master/texmf-dist/source/latex/achemso/achemso.ins @@ -4,7 +4,7 @@ ---------------------------------------------------------------- The achemso package - A BibTeX style for American Chemical Society publications -Maintained by Joseph A. Wright +Maintained by Joseph Wright E-mail: joseph.wright@morningstar2.co.uk Originally developed by Mats Dahlgren (c) 1996-98 by Mats Dahlgren @@ -27,7 +27,9 @@ Released under the LaTeX Project Public license v1.3 or later \usedir{bibtex/bst/achemso} \generate{\usepostamble\bibtexable \file{achemso.bst}{\from{achemso.dtx}{bib}} + \file{achemnat.bst}{\from{achemso.dtx}{bib,nat}} \file{achemsol.bst}{\from{achemso.dtx}{bib,list}} + \file{achemlnt.bst}{\from{achemso.dtx}{bib,list,nat}} } \generate{\usepostamble\empty\usepreamble\empty \file{achemso.bib}{\from{achemso.dtx}{database}} -- cgit v1.2.3