diff options
Diffstat (limited to 'Master/texmf-dist/bibtex/bst/achemso/achemso.bst')
-rw-r--r-- | Master/texmf-dist/bibtex/bst/achemso/achemso.bst | 41 |
1 files changed, 32 insertions, 9 deletions
diff --git a/Master/texmf-dist/bibtex/bst/achemso/achemso.bst b/Master/texmf-dist/bibtex/bst/achemso/achemso.bst index bf2dd563a22..f924271cb24 100644 --- a/Master/texmf-dist/bibtex/bst/achemso/achemso.bst +++ b/Master/texmf-dist/bibtex/bst/achemso/achemso.bst @@ -8,7 +8,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 @@ -39,10 +39,13 @@ ENTRY year } {} - { label } + { + label + } 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 := @@ -58,6 +61,14 @@ FUNCTION {add.comma} FUNCTION {add.semicolon} { "; " * } + +FUNCTION {add.comma.or.semicolon} +{ #1 separate.by.semicolon = + 'add.semicolon + 'add.comma + if$ +} + FUNCTION {add.colon} { ": " * } @@ -367,22 +378,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$ @@ -401,7 +412,9 @@ FUNCTION {format.authors} { author empty$ { "" } { #1 'author.or.editor := - author format.names } + #1 'separate.by.semicolon := + author format.names + } if$ } @@ -409,6 +422,7 @@ FUNCTION {format.editors} { editor empty$ { "" } { #2 'author.or.editor := + #0 'separate.by.semicolon := editor format.names add.comma editor num.names$ #1 > @@ -486,7 +500,8 @@ FUNCTION {format.number.series} if$ } -FUNCTION {n.dashify} { 't := +FUNCTION {n.dashify} +{ 't := "" { t empty$ not } { t #1 #1 substring$ "-" = @@ -826,6 +841,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 } @@ -835,6 +855,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 @@ -1130,6 +1151,7 @@ EXECUTE {initialize.longest.label} ITERATE {longest.label.pass} + FUNCTION {begin.bib} { preamble$ empty$ 'skip$ @@ -1137,7 +1159,8 @@ FUNCTION {begin.bib} if$ "\providecommand{\refin}[1]{\\ \textbf{Referenced in:} #1}" write$ newline$ - "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + "\begin{thebibliography}{" longest.label * "}" * + write$ newline$ } EXECUTE {begin.bib} |