summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/bibtex
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2007-01-17 11:58:23 +0000
committerNorbert Preining <preining@logic.at>2007-01-17 11:58:23 +0000
commitb5ec079766fa8d6dbc259d58e0718df9f0700c4e (patch)
tree4d068e57f0f953b5f4d2f8cb9df6853c8692c455 /Master/texmf-dist/bibtex
parent4afa224933dab11361f36492a645254f1bbe7173 (diff)
achemso update from CTAN
git-svn-id: svn://tug.org/texlive/trunk@3548 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/bibtex')
-rw-r--r--Master/texmf-dist/bibtex/bst/achemso/achemso.bst1074
-rw-r--r--Master/texmf-dist/bibtex/bst/achemso/achemsol.bst1105
2 files changed, 1271 insertions, 908 deletions
diff --git a/Master/texmf-dist/bibtex/bst/achemso/achemso.bst b/Master/texmf-dist/bibtex/bst/achemso/achemso.bst
index fa59deec2ac..5ab72d0fa8f 100644
--- a/Master/texmf-dist/bibtex/bst/achemso/achemso.bst
+++ b/Master/texmf-dist/bibtex/bst/achemso/achemso.bst
@@ -1,27 +1,31 @@
-%%
+%%
%% This is file `achemso.bst',
%% generated with the docstrip utility.
-%%
+%%
%% The original source files were:
-%%
-%% achemso.dtx (with options: `huvudkod')
-%%
-%% Copyright (c) 1995-97 by Mats Dahlgren <matsd@homenet.se>.
-%% All rights reserved. See the file `achemso.ins' for information
-%% on how you may (re-)distribute the `achemso' package files.
-%%
+%%
+%% achemso.dtx (with options: `bib')
+%% ----------------------------------------------------------------
+%% The achemso package - A BibTeX style for American Chemical
+%% Society publications
+%% Maintained by Joseph A. Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Originally developed by Mats Dahlgren
+%% (c) 1996-98 by Mats Dahlgren
+%% (c) 2007 Joseph Wright
+%% Released under the LaTeX Project Public license v1.3 or later
+%% ----------------------------------------------------------------
ENTRY
{ address
author
booktitle
chapter
+ doi
edition
editor
howpublished
institution
journal
- key
- month
note
number
organization
@@ -33,36 +37,50 @@ ENTRY
type
volume
year
- annotate
}
{}
{ label }
-INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+INTEGERS { output.state before.all mid.sentence after.sentence }
+INTEGERS { after.block after.item author.or.editor }
FUNCTION {init.state.consts}
{ #0 'before.all :=
#1 'mid.sentence :=
#2 'after.sentence :=
#3 'after.block :=
+ #4 'after.item :=
}
+FUNCTION {add.comma}
+{ ", " * }
+
+FUNCTION {add.semicolon}
+{ "; " * }
+
+FUNCTION {add.colon}
+{ ": " * }
+
STRINGS { s t }
FUNCTION {output.nonnull}
{ 's :=
output.state mid.sentence =
- { " " * write$ }
+ { add.comma write$ }
{ output.state after.block =
- { ", " * write$
- newline$
- "\newblock " write$
-}
-{ output.state before.all =
- 'write$
- { add.period$ " " * write$ }
- if$
-}
+ { add.semicolon write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { output.state after.item =
+ { " " * write$ }
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ }
if$
mid.sentence 'output.state :=
}
@@ -80,7 +98,7 @@ FUNCTION {output}
FUNCTION {output.check}
{ 't :=
duplicate$ empty$
- { pop$ "empty " t * " in " * cite$ * warning$ }
+ { pop$ "Empty " t * " in " * cite$ * warning$ }
'output.nonnull
if$
}
@@ -95,12 +113,6 @@ FUNCTION {output.bibitem}
before.all 'output.state :=
}
-FUNCTION {fin.entry}
-{ add.period$
- write$
- newline$
-}
-
FUNCTION {new.block}
{ output.state before.all =
'skip$
@@ -108,10 +120,11 @@ FUNCTION {new.block}
if$
}
-FUNCTION {new.sentence}
-{ skip$
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
}
-
FUNCTION {not}
{ { #0 }
{ #1 }
@@ -130,22 +143,6 @@ FUNCTION {or}
if$
}
-FUNCTION {new.block.checka}
-{ empty$
- 'skip$
- 'new.block
- if$
-}
-
-FUNCTION {new.block.checkb}
-{ empty$
- swap$ empty$
- and
- 'skip$
- 'new.block
- if$
-}
-
FUNCTION {field.or.null}
{ duplicate$ empty$
{ pop$ "" }
@@ -156,176 +153,388 @@ FUNCTION {field.or.null}
FUNCTION {emphasize}
{ duplicate$ empty$
{ pop$ "" }
- { "\textit{" swap$ * "}" * }
+ { "\emph{" swap$ * "}" * }
if$
}
-FUNCTION {emphasizec}
+FUNCTION {boldface}
{ duplicate$ empty$
{ pop$ "" }
- { "\textit{" swap$ * ",}" * }
+ { "\textbf{" swap$ * "}" * }
if$
}
-FUNCTION {emphasizesc}
+FUNCTION {paren}
{ duplicate$ empty$
{ pop$ "" }
- { "\textit{" swap$ * ";}" * }
+ { "(" swap$ * ")" * }
if$
}
-FUNCTION {slantc}
-{ duplicate$ empty$
- { pop$ "" }
- { "\textsl{" swap$ * ",}" * }
+FUNCTION {bbl.and}
+{ "and" }
+
+FUNCTION {bbl.chapter}
+{ "Chapter" }
+
+FUNCTION {bbl.editor}
+{ "Ed." }
+
+FUNCTION {bbl.editors}
+{ "Eds." }
+
+FUNCTION {bbl.edition}
+{ "ed." }
+
+FUNCTION {bbl.etal}
+{ "et~al." }
+
+FUNCTION {bbl.in}
+{ "In" }
+
+FUNCTION {bbl.inpress}
+{ "in press" }
+
+FUNCTION {bbl.msc}
+{ "M.Sc.\ thesis" }
+
+FUNCTION {bbl.page}
+{ "p" }
+
+FUNCTION {bbl.pages}
+{ "pp" }
+
+FUNCTION {bbl.phd}
+{ "Ph.D.\ thesis" }
+
+FUNCTION {bbl.submitted}
+{ "submitted for publication" }
+
+FUNCTION {bbl.techreport}
+{ "Technical Report" }
+
+FUNCTION {bbl.volume}
+{ "Vol." }
+
+FUNCTION {bbl.first}
+{ "1st" }
+
+FUNCTION {bbl.second}
+{ "2nd" }
+
+FUNCTION {bbl.third}
+{ "3rd" }
+
+FUNCTION {bbl.fourth}
+{ "4th" }
+
+FUNCTION {bbl.fifth}
+{ "5th" }
+
+FUNCTION {bbl.st}
+{ "st" }
+
+FUNCTION {bbl.nd}
+{ "nd" }
+
+FUNCTION {bbl.rd}
+{ "rd" }
+
+FUNCTION {bbl.th}
+{ "th" }
+
+FUNCTION {eng.ord}
+{ duplicate$ "1" swap$ *
+ #-2 #1 substring$ "1" =
+ { bbl.th * }
+ { duplicate$ #-1 #1 substring$
+ duplicate$ "1" =
+ { pop$ bbl.st * }
+ { duplicate$ "2" =
+ { pop$ bbl.nd * }
+ { "3" =
+ { bbl.rd * }
+ { bbl.th * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION{is.a.digit}
+{ duplicate$ "" =
+ {pop$ #0}
+ {chr.to.int$ #48 - duplicate$
+ #0 < swap$ #9 > or not}
if$
}
-FUNCTION {emboldenc}
-{ duplicate$ empty$
- { pop$ "" }
- { "\textbf{" swap$ * ",}" * }
+FUNCTION{is.a.number}
+{
+ { duplicate$ #1 #1 substring$ is.a.digit }
+ {#2 global.max$ substring$}
+ while$
+ "" =
+}
+
+FUNCTION {extract.num}
+{ duplicate$ 't :=
+ "" 's :=
+ { t empty$ not }
+ { t #1 #1 substring$
+ t #2 global.max$ substring$ 't :=
+ duplicate$ is.a.number
+ { s swap$ * 's := }
+ { pop$ "" 't := }
+ if$
+ }
+ while$
+ s empty$
+ 'skip$
+ { pop$ s }
if$
}
-INTEGERS { nameptr namesleft numnames }
+FUNCTION {bibinfo.check}
+{ swap$
+ duplicate$ missing$
+ { pop$ pop$
+ ""
+ }
+ { duplicate$ empty$
+ {
+ swap$ pop$
+ }
+ { swap$
+ pop$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {convert.edition}
+{ extract.num "l" change.case$ 's :=
+ s "first" = s "1" = or
+ { bbl.first 't := }
+ { s "second" = s "2" = or
+ { bbl.second 't := }
+ { s "third" = s "3" = or
+ { bbl.third 't := }
+ { s "fourth" = s "4" = or
+ { bbl.fourth 't := }
+ { s "fifth" = s "5" = or
+ { bbl.fifth 't := }
+ { s #1 #1 substring$ is.a.number
+ { s eng.ord 't := }
+ { edition 't := }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ t
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
-INTEGERS { etal }
+FUNCTION {space.connect}
+{ " " swap$ * * }
+
+INTEGERS { nameptr namesleft numnames }
FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
+ numnames 'namesleft :=
numnames #15 >
- s numnames "{ll}" format.name$ "others" = numnames #1 > and
- or 'etal :=
- etal
- { #1 #1 + 'namesleft := }
- { numnames 'namesleft := }
- if$
- { namesleft #0 > }
- { s nameptr "{vv~}{ll,}{~jj,}{~f.}" format.name$ 't :=
- nameptr #1 >
-{ namesleft #1 >
- { ";\ \ " * t * }
- { nameptr #2 >
-{ "" * }
-'skip$
- if$
- t "others" =
- etal or
-{ " \textit{et al.}\ " * }
-{ ";\ \ " * t * }
- if$
+ { s #1 "{vv~}{ll,}{~jj,}{~f.}" format.name$ 't :=
+ t bbl.etal space.connect
}
+ {
+ { namesleft #0 > }
+ { s nameptr "{vv~}{ll,}{~jj,}{~f.}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { add.semicolon t * }
+ { numnames #2 >
+ { "" * }
+ 'skip$
+ if$
+ t "others," =
+ { bbl.etal space.connect }
+ { add.semicolon t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ }
if$
}
-'t
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
-}
FUNCTION {format.authors}
{ author empty$
{ "" }
- { author format.names }
+ { #1 'author.or.editor :=
+ author format.names }
if$
}
FUNCTION {format.editors}
{ editor empty$
{ "" }
- { editor format.names
+ { #2 'author.or.editor :=
+ editor format.names
+ add.comma
editor num.names$ #1 >
-{ ",\ \ Eds.; " * }
-{ ",\ \ Ed.; " * }
+ { bbl.editors }
+ { bbl.editor }
if$
+ *
}
if$
}
-FUNCTION {n.dashify}
+FUNCTION {n.separate.multi}
{ 't :=
""
- { t empty$ not }
- { t #1 #1 substring$ "-" =
-{ t #1 #2 substring$ "--" = not
- { "--" *
- t #2 global.max$ substring$ 't :=
- }
- { { t #1 #1 substring$ "-" = }
-{ "-" *
- t #2 global.max$ substring$ 't :=
-}
+ #0 'numnames :=
+ t text.length$ #4 > t is.a.number and
+ {
+ { t empty$ not }
+ { t #-1 #1 substring$ is.a.number
+ { numnames #1 + 'numnames := }
+ { #0 'numnames := }
+ if$
+ t #-1 #1 substring$ swap$ *
+ t #-2 global.max$ substring$ 't :=
+ numnames #4 =
+ { duplicate$ #1 #1 substring$ swap$
+ #2 global.max$ substring$
+ "," swap$ * *
+ #1 'numnames :=
+ }
+ 'skip$
+ if$
+ }
while$
}
+ { t swap$ * }
if$
}
-{ t #1 #1 substring$ *
- t #2 global.max$ substring$ 't :=
-}
- if$
- }
- while$
-}
-FUNCTION {format.date}
-{ year empty$
+FUNCTION {format.bvolume}
+{ volume empty$
{ "" }
- 'year
+ { bbl.volume volume tie.or.space.connect }
if$
}
-FUNCTION {tie.or.space.connect}
-{ duplicate$ text.length$ #3 <
- { "~" }
- { " " }
- if$
- swap$ * *
-}
-
-FUNCTION {either.or.check}
-{ empty$
- 'pop$
- { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+FUNCTION {format.title.noemph}
+{ 't :=
+ t empty$
+ { "" }
+ { t }
if$
}
-FUNCTION {format.bvolume}
-{ volume empty$
+FUNCTION {format.title}
+{ 't :=
+ t empty$
{ "" }
- { "volume" volume tie.or.space.connect
- series empty$
-'skip$
-{ " of " * series emphasize * }
- if$
- "volume and number" number either.or.check
- }
+ { t emphasize }
if$
}
FUNCTION {format.number.series}
{ volume empty$
{ number empty$
-{ series field.or.null }
- { series empty$
- { "there's a number but no series in " cite$ * warning$ }
- { series " " * number * "; " * }
+ { series field.or.null }
+ { series empty$
+ { "There is a number but no series in " cite$ * warning$ }
+ { series number space.connect }
+ if$
+ }
+ if$
+ }
+ { "" }
if$
}
+
+FUNCTION {n.dashify} { 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
if$
}
+ while$
+}
+
+FUNCTION {format.date}
+{ year empty$
{ "" }
+ { year boldface }
+ if$
+}
+
+FUNCTION {format.bdate}
+{ year empty$
+ { "There's no year in " cite$ * warning$ }
+ 'year
+ if$
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "Can't use both " swap$ * " fields in " * cite$ * warning$ }
if$
}
FUNCTION {format.edition}
-{ edition empty$
- { "" }
- { edition " ed.;" * }
+{ edition duplicate$ empty$
+ 'skip$
+ { convert.edition
+ bbl.edition bibinfo.check
+ " " * bbl.edition *
+ }
if$
}
@@ -343,8 +552,8 @@ FUNCTION {multi.page.check}
swap$ duplicate$ "," =
swap$ "+" =
or or
-{ #1 'multiresult := }
-{ t #2 global.max$ substring$ 't := }
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
if$
}
while$
@@ -355,343 +564,311 @@ FUNCTION {format.pages}
{ pages empty$
{ "" }
{ pages multi.page.check
-{ "pages" pages n.dashify tie.or.space.connect }
-{ "page" pages tie.or.space.connect }
- if$
+ { bbl.pages pages n.dashify tie.or.space.connect }
+ { bbl.page pages tie.or.space.connect }
+ if$
}
if$
}
-FUNCTION {format.pages.a}
+FUNCTION {format.pages.required}
{ pages empty$
- { "" }
- { "page" pages tie.or.space.connect }
+ { ""
+ "There are no page numbers for " cite$ * warning$
+ output
+ }
+ { pages multi.page.check
+ { bbl.pages pages n.dashify tie.or.space.connect }
+ { bbl.page pages tie.or.space.connect }
+ if$
+ }
if$
}
-FUNCTION {format.yr.vol.pages}
-{ year field.or.null emboldenc
- " " swap$ * *
- volume field.or.null slantc
- " " swap$ * *
- pages empty$
- 'skip$
- { duplicate$ empty$
-{ pop$ format.pages.a }
-{ " " * pages * }
+FUNCTION {format.pages.nopp}
+{ pages empty$
+ { ""
+ "There are no page numbers for " cite$ * warning$
+ output
+ }
+ { pages multi.page.check
+ { pages n.dashify space.connect }
+ { pages space.connect }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.pages.patent}
+{ pages empty$
+ { "There is no patent number for " cite$ * warning$ }
+ { pages multi.page.check
+ { pages n.dashify }
+ { pages n.separate.multi }
if$
}
if$
}
+FUNCTION {format.vol.pages}
+{ volume emphasize field.or.null
+ duplicate$ empty$
+ { pop$ format.pages.required }
+ { add.comma pages n.dashify * }
+ if$
+}
+
FUNCTION {format.chapter.pages}
{ chapter empty$
'format.pages
{ type empty$
-{ "Chapter" }
-{ type "l" change.case$ }
+ { bbl.chapter }
+ { type "l" change.case$ }
if$
chapter tie.or.space.connect
pages empty$
-'skip$
-{ ", " * format.pages * }
+ 'skip$
+ { add.comma format.pages * }
if$
}
if$
}
-FUNCTION {empty.misc.check}
-{ author empty$ title empty$ howpublished empty$
- month empty$ year empty$ note empty$
- and and and and and
- { "all relevant fields are empty in " cite$ * warning$ }
- 'skip$
- if$
-}
-
-FUNCTION {format.thesis}
-{ type empty$
- {"Thesis,"}
- {type " thesis," * }
- if$
-}
-
-FUNCTION {format.article.crossref}
-{ key empty$
- { journal empty$
-{ "need key or journal for " cite$ * " to crossref " * crossref *
- warning$
- ""
-}
-{ "In " journal * }
- if$
+FUNCTION {format.title.in}
+{ 's :=
+ s empty$
+ { "" }
+ { editor empty$
+ { bbl.in s format.title space.connect }
+ { bbl.in s format.title space.connect
+ add.semicolon format.editors *
+ }
+ if$
}
- { "In " key * }
if$
- " \cite{" * crossref * "}" *
}
-FUNCTION {format.crossref.editor}
-{ editor #1 "{vv~}{ll}" format.name$
- editor num.names$ duplicate$
- #2 >
- { pop$ " et~al." * }
- { #2 <
-'skip$
-{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- { " et~al." * }
- { " and " * editor #2 "{vv~}{ll}" format.name$ * }
- if$
-}
+FUNCTION {format.pub.address}
+{ publisher empty$
+ { "" }
+ { address empty$
+ { publisher }
+ { publisher add.colon address *}
if$
}
if$
}
-FUNCTION {format.book.crossref}
-{ volume empty$
- { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
- "In "
- }
- { "Volume" volume tie.or.space.connect
- " of " *
- }
- if$
- editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
-{ series empty$
- { "need editor, key, or series for " cite$ * " to crossref " *
- crossref * warning$
- "" *
- }
- { "\textit{" * series * "}" * }
- if$
-}
-{ key * }
+FUNCTION {format.school.address}
+{ school empty$
+ { "" }
+ { address empty$
+ { school }
+ { school add.colon address *}
if$
}
- { format.crossref.editor * }
if$
- " \cite{" * crossref * "}" *
}
-FUNCTION {format.incoll.inproc.crossref}
-{ editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
-{ booktitle empty$
- { "need editor, key, or booktitle for " cite$ * " to crossref " *
- crossref * warning$
- ""
- }
- { "In \textit{" booktitle * ",}" * }
- if$
-}
-{ "In " key * }
+FUNCTION {format.organization.address}
+{ organization empty$
+ { "" }
+ { address empty$
+ { organization }
+ { organization add.colon address *}
if$
}
- { "In " format.crossref.editor * }
if$
- " \cite{" * crossref * "}" *
}
-FUNCTION {in.book}
- { "In " output
- booktitle emphasize
- volume empty$
- {skip$}
- {", Vol.~" * volume *}
- if$
- edition empty$
- {";" * output}
- {"," * output
- edition " ed.;\" * output}
- if$
- editor missing$
- { skip$ }
- { format.editors output }
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ year empty$ note empty$
+ and and and and
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
if$
- format.number.series output
- new.sentence
- publisher ":" * "publisher" output.check
- address "," * "address" output.check
}
-FUNCTION {book.vol.ed}
-{ "" volume empty$
- {skip$}
- {" Vol.~" * volume *}
- if$
- edition empty$
- {";" * output}
- {"," * output
- edition " ed.;\" * output}
+FUNCTION {empty.doi.note}
+{ doi empty$ note empty$ and
+ { "Need either a note or DOI for " cite$ * warning$ }
+ 'skip$
if$
}
-FUNCTION {thesis.affilation}
-{ school "," * "school" output.check
- institution empty$
+FUNCTION {format.thesis.type}
+{ type empty$
'skip$
- {institution "," * output}
+ { pop$
+ type emphasize
+ }
if$
}
FUNCTION {article}
{ output.bibitem
format.authors "author" output.check
- crossref missing$
- { journal field.or.null emphasize
- format.yr.vol.pages
- output
- }
- { format.article.crossref output.nonnull
- format.pages output
+ after.item 'output.state :=
+ journal emphasize "journal" output.check
+ after.item 'output.state :=
+ format.date "year" output.check
+ volume empty$
+ { ""
+ format.pages.nopp output
}
+ { format.vol.pages output }
if$
note output
fin.entry
}
-FUNCTION {submitted}
+FUNCTION {book}
{ output.bibitem
- format.authors "author" output.check
+ author empty$
+ { booktitle empty$
+ { title format.title "title" output.check }
+ { booktitle format.title "booktitle" output.check }
+ if$
+ new.block
+ editor empty$
+ { "Need either an author or editor for " cite$ * warning$ }
+ { "" format.editors * "editor" output.check }
+ if$
+ }
+ { format.authors output
+ after.item 'output.state :=
+ "author and editor" editor either.or.check
+ booktitle empty$
+ { title format.title "title" output.check }
+ { booktitle format.title "booktitle" output.check }
+ if$
+ }
+ if$
+ format.edition output
+ new.block
+ format.number.series output
new.block
- "submitted for publication in" output
- note empty$
- { journal emphasize "journal" output.check }
- { journal emphasizec "journal" output.check
- note output }
+ format.pub.address "publisher" output.check
+ format.bdate "year" output.check
+ new.block
+ format.bvolume output
+ pages empty$
+ 'skip$
+ { format.pages output }
if$
+ note output
fin.entry
}
-FUNCTION {inpress}
+FUNCTION {booklet}
{ output.bibitem
- format.authors "author" output.check
- journal emphasizec "journal" output.check
- "in press" output
+ format.authors output
+ after.item 'output.state :=
+ title format.title "title" output.check
+ howpublished output
+ address output
+ format.date output
note output
fin.entry
}
-FUNCTION {book}
+FUNCTION {inbook}
{ output.bibitem
author empty$
- { format.editors "author and editor" output.check }
- { format.authors output.nonnull
- crossref missing$
-{ "author and editor" editor either.or.check }
-'skip$
- if$
+ { title format.title "title" output.check
+ new.block
+ editor empty$
+ { "Need at least an author or an editor for " cite$ * warning$ }
+ { "" format.editors * "editor" output.check }
+ if$
}
- if$
- booktitle empty$
- { title emphasizesc output }
- { booktitle emphasizesc output }
- if$
- crossref missing$
- { format.bvolume output
- format.number.series output
- new.sentence
- publisher ":" * "publisher" output.check
- address "," * "address" output.check
+ { format.authors output
+ after.item 'output.state :=
+ title format.title.in "title" output.check
}
- { format.book.crossref output.nonnull }
if$
format.edition output
- format.date "year" output.check
+ new.block
+ format.number.series output
+ 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
fin.entry
}
-FUNCTION {booklet}
+FUNCTION {incollection}
{ output.bibitem
- format.authors "author" output.check
- " ``" title * "'', " * "title" output.check
- howpublished empty$
- { skip$ }
- { howpublished "," * output}
- if$
- address empty$
- { skip$ }
- { address "," * output}
+ author empty$
+ { booktitle format.title "booktitle" output.check
+ new.block
+ editor empty$
+ { "Need at least an author or an editor for " cite$ * warning$ }
+ { "" format.editors * "editor" output.check }
+ if$
+ }
+ { format.authors output
+ after.item 'output.state :=
+ booktitle format.title.in "booktitle" output.check
+ }
if$
- format.date "year" output.check
+ format.edition output
+ new.block
+ format.number.series output
+ new.block
+ format.pub.address "publisher" output.check
+ format.bdate "year" output.check
+ format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
note output
fin.entry
}
-FUNCTION {inbook}
+FUNCTION {inpress}
{ output.bibitem
format.authors "author" output.check
- " " title * ". " * "title" output.check
- in.book
- chapter empty$
- {format.date "year" output.check}
- {year empty$
- { "empty year field in " * cite$ * warning$ }
- { year "; " * output
- format.chapter.pages output }
- if$
+ after.item 'output.state :=
+ journal emphasize "journal" output.check
+ doi empty$
+ { bbl.inpress output }
+ { after.item 'output.state :=
+ format.date output
+ "DOI:" doi tie.or.space.connect output
}
if$
note output
fin.entry
}
-FUNCTION {incollection}
+FUNCTION {inproceedings}
{ output.bibitem
format.authors "author" output.check
- " " title * ". " * "title" output.check
- in.book
- format.date "year" output.check
+ after.item 'output.state :=
+ booktitle format.title.noemph "booktitle" output.check
+ address output
+ format.bdate "year" output.check
+ pages empty$
+ 'skip$
+ { new.block
+ format.pages output }
+ if$
note output
fin.entry
}
-FUNCTION {inproceedings} { inbook }
-
-FUNCTION {conference} { inbook }
-
FUNCTION {manual}
{ output.bibitem
- author empty$
- { organization empty$
-'skip$
-{ organization ", " * address * output
-}
- if$
- }
- { format.authors output.nonnull }
- if$
- "``" title * "'', " * "title" output.check
- author empty$
- { organization empty$
-{ address empty$
- 'skip$
- { address "," * output }
- if$
-}
-'skip$
- if$
- }
- { organization empty$
- 'skip$
- { organization "," * output
- address empty$
- 'skip$
- { address "," * output }
- if$
- }
- if$
- }
- if$
+ format.authors output
+ after.item 'output.state :=
+ title format.title "title" output.check
+ new.block
+ format.organization.address output
format.edition output
- format.date output
+ format.bdate output
note output
fin.entry
}
@@ -699,10 +876,10 @@ FUNCTION {manual}
FUNCTION {mastersthesis}
{ output.bibitem
format.authors "author" output.check
- "``" title * "'', " * "title" output.check
- "Master's thesis, " output
- thesis.affilation
- format.date "year" output.check
+ after.item 'output.state :=
+ bbl.msc format.thesis.type output
+ format.school.address "school" output.check
+ format.bdate "year" output.check
note output
fin.entry
}
@@ -710,81 +887,82 @@ FUNCTION {mastersthesis}
FUNCTION {misc}
{ output.bibitem
format.authors output
- title empty$
- 'skip$
- { "``" title * "'', " * output }
- if$
- howpublished empty$
- 'skip$
- {howpublished "," * output }
- if$
- format.date output
+ after.item 'output.state :=
+ title format.title output
+ howpublished output
+ year output
note output
fin.entry
empty.misc.check
}
+FUNCTION {patent}
+{ output.bibitem
+ format.authors "author" output.check
+ after.item 'output.state :=
+ journal emphasize "journal" output.check
+ format.pages.patent "pages" output.check
+ format.bdate "year" output.check
+ note output
+ fin.entry
+}
+
FUNCTION {phdthesis}
{ output.bibitem
format.authors "author" output.check
- title emphasizec "title" output.check
- format.thesis output.nonnull
- thesis.affilation
- format.date "year" output.check
+ after.item 'output.state :=
+ bbl.phd format.thesis.type output
+ format.school.address "school" output.check
+ format.bdate "year" output.check
note output
fin.entry
}
FUNCTION {proceedings}
{ output.bibitem
- editor empty$
- { organization output }
- { format.editors output.nonnull }
- if$
- booktitle empty$
- { title emphasizec output }
- { booktitle emphasizec output }
- if$
- book.vol.ed
- format.number.series output
- publisher empty$
- { address empty$
- { format.date "year" output.check }
- { address "," * output
- format.date "year" output.check }
- if$
- }
- { address empty$
- { publisher "," * output
- format.date "year" output.check }
- { publisher ": " * address * "," * output
- format.date "year" output.check }
- if$
- }
+ title format.title.noemph "title" output.check
+ address output
+ format.bdate "year" output.check
+ pages empty$
+ 'skip$
+ { new.block
+ format.pages output }
if$
note output
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
- "``" title * "'', " * "title" output.check
+ after.item 'output.state :=
+ title format.title "title" output.check
+ institution
type empty$
- { "Technical Report" }
+ 'bbl.techreport
'type
if$
+ space.connect
number empty$
- { ", " * }
- { " " * number * "," * }
+ { "t" change.case$ }
+ { number tie.or.space.connect }
if$
- output.nonnull
- institution "," * "institution" output.check
- address empty$
- { skip$ }
- { address "," * output }
- if$
- format.date "year" output.check
+ output
+ format.pub.address output
+ format.bdate "year" output.check
note output
fin.entry
}
@@ -792,23 +970,27 @@ FUNCTION {techreport}
FUNCTION {unpublished}
{ output.bibitem
format.authors "author" output.check
- note empty$
- { "Unpublished data" output }
- { year empty$
- { note output }
- { note ", " * year * output }
- if$ }
+ after.item 'output.state :=
+ journal empty$
+ 'skip$
+ { journal emphasize "journal" output.check }
+ if$
+ doi empty$
+ { note output }
+ { after.item 'output.state :=
+ format.date output
+ "DOI:" doi tie.or.space.connect output
+ }
if$
fin.entry
+ empty.doi.note
}
-FUNCTION {remark}
-{ output.bibitem
- note "note" output.check
- fin.entry
-}
+FUNCTION {conference} {inproceedings}
+
+FUNCTION {other} {patent}
-FUNCTION {default.type} { misc }
+FUNCTION {default.type} {misc}
MACRO {jan} {"Jan."}
MACRO {feb} {"Feb."}
@@ -851,13 +1033,16 @@ 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 {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."}
@@ -868,10 +1053,12 @@ 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 {sci} {"Science (Washington,~D.C.)"}
MACRO {nat} {"Nature (London)"}
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."}
@@ -940,4 +1127,5 @@ FUNCTION {end.bib}
EXECUTE {end.bib}
%%
+%%
%% End of file `achemso.bst'.
diff --git a/Master/texmf-dist/bibtex/bst/achemso/achemsol.bst b/Master/texmf-dist/bibtex/bst/achemso/achemsol.bst
index 76dd071dd1c..287c8fb78c7 100644
--- a/Master/texmf-dist/bibtex/bst/achemso/achemsol.bst
+++ b/Master/texmf-dist/bibtex/bst/achemso/achemsol.bst
@@ -1,27 +1,32 @@
-%%
+%%
%% This is file `achemsol.bst',
%% generated with the docstrip utility.
-%%
+%%
%% The original source files were:
-%%
-%% achemso.dtx (with options: `listhuvudkod')
-%%
-%% Copyright (c) 1995-97 by Mats Dahlgren <matsd@homenet.se>.
-%% All rights reserved. See the file `achemso.ins' for information
-%% on how you may (re-)distribute the `achemso' package files.
-%%
+%%
+%% achemso.dtx (with options: `bib,list')
+%% ----------------------------------------------------------------
+%% The achemso package - A BibTeX style for American Chemical
+%% Society publications
+%% Maintained by Joseph A. Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Originally developed by Mats Dahlgren
+%% (c) 1996-98 by Mats Dahlgren
+%% (c) 2007 Joseph Wright
+%% Released under the LaTeX Project Public license v1.3 or later
+%% ----------------------------------------------------------------
ENTRY
{ address
+ annotate
author
booktitle
chapter
+ doi
edition
editor
howpublished
institution
journal
- key
- month
note
number
organization
@@ -33,36 +38,50 @@ ENTRY
type
volume
year
- annotate
}
{}
{ label }
-INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+INTEGERS { output.state before.all mid.sentence after.sentence }
+INTEGERS { after.block after.item author.or.editor }
FUNCTION {init.state.consts}
{ #0 'before.all :=
#1 'mid.sentence :=
#2 'after.sentence :=
#3 'after.block :=
+ #4 'after.item :=
}
+FUNCTION {add.comma}
+{ ", " * }
+
+FUNCTION {add.semicolon}
+{ "; " * }
+
+FUNCTION {add.colon}
+{ ": " * }
+
STRINGS { s t }
FUNCTION {output.nonnull}
{ 's :=
output.state mid.sentence =
- { " " * write$ }
+ { add.comma write$ }
{ output.state after.block =
- { ", " * write$
- newline$
- "\newblock " write$
-}
-{ output.state before.all =
- 'write$
- { add.period$ " " * write$ }
- if$
-}
+ { add.semicolon write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { output.state after.item =
+ { " " * write$ }
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ }
if$
mid.sentence 'output.state :=
}
@@ -80,7 +99,7 @@ FUNCTION {output}
FUNCTION {output.check}
{ 't :=
duplicate$ empty$
- { pop$ "empty " t * " in " * cite$ * warning$ }
+ { pop$ "Empty " t * " in " * cite$ * warning$ }
'output.nonnull
if$
}
@@ -95,12 +114,6 @@ FUNCTION {output.bibitem}
before.all 'output.state :=
}
-FUNCTION {fin.entry}
-{ add.period$
- write$
- newline$
-}
-
FUNCTION {new.block}
{ output.state before.all =
'skip$
@@ -108,10 +121,20 @@ FUNCTION {new.block}
if$
}
-FUNCTION {new.sentence}
-{ skip$
+FUNCTION {add.note}
+{ annotate empty$
+ 'skip$
+ { new.block
+ "{\footnotesize " annotate * "}" * output }
+ if$
}
+FUNCTION {fin.entry}
+{ add.note
+ add.period$
+ write$
+ newline$
+}
FUNCTION {not}
{ { #0 }
{ #1 }
@@ -130,22 +153,6 @@ FUNCTION {or}
if$
}
-FUNCTION {new.block.checka}
-{ empty$
- 'skip$
- 'new.block
- if$
-}
-
-FUNCTION {new.block.checkb}
-{ empty$
- swap$ empty$
- and
- 'skip$
- 'new.block
- if$
-}
-
FUNCTION {field.or.null}
{ duplicate$ empty$
{ pop$ "" }
@@ -156,176 +163,388 @@ FUNCTION {field.or.null}
FUNCTION {emphasize}
{ duplicate$ empty$
{ pop$ "" }
- { "\textit{" swap$ * "}" * }
+ { "\emph{" swap$ * "}" * }
if$
}
-FUNCTION {emphasizec}
+FUNCTION {boldface}
{ duplicate$ empty$
{ pop$ "" }
- { "\textit{" swap$ * ",}" * }
+ { "\textbf{" swap$ * "}" * }
if$
}
-FUNCTION {emphasizesc}
+FUNCTION {paren}
{ duplicate$ empty$
{ pop$ "" }
- { "\textit{" swap$ * ";}" * }
+ { "(" swap$ * ")" * }
if$
}
-FUNCTION {slantc}
-{ duplicate$ empty$
- { pop$ "" }
- { "\textsl{" swap$ * ",}" * }
+FUNCTION {bbl.and}
+{ "and" }
+
+FUNCTION {bbl.chapter}
+{ "Chapter" }
+
+FUNCTION {bbl.editor}
+{ "Ed." }
+
+FUNCTION {bbl.editors}
+{ "Eds." }
+
+FUNCTION {bbl.edition}
+{ "ed." }
+
+FUNCTION {bbl.etal}
+{ "et~al." }
+
+FUNCTION {bbl.in}
+{ "In" }
+
+FUNCTION {bbl.inpress}
+{ "in press" }
+
+FUNCTION {bbl.msc}
+{ "M.Sc.\ thesis" }
+
+FUNCTION {bbl.page}
+{ "p" }
+
+FUNCTION {bbl.pages}
+{ "pp" }
+
+FUNCTION {bbl.phd}
+{ "Ph.D.\ thesis" }
+
+FUNCTION {bbl.submitted}
+{ "submitted for publication" }
+
+FUNCTION {bbl.techreport}
+{ "Technical Report" }
+
+FUNCTION {bbl.volume}
+{ "Vol." }
+
+FUNCTION {bbl.first}
+{ "1st" }
+
+FUNCTION {bbl.second}
+{ "2nd" }
+
+FUNCTION {bbl.third}
+{ "3rd" }
+
+FUNCTION {bbl.fourth}
+{ "4th" }
+
+FUNCTION {bbl.fifth}
+{ "5th" }
+
+FUNCTION {bbl.st}
+{ "st" }
+
+FUNCTION {bbl.nd}
+{ "nd" }
+
+FUNCTION {bbl.rd}
+{ "rd" }
+
+FUNCTION {bbl.th}
+{ "th" }
+
+FUNCTION {eng.ord}
+{ duplicate$ "1" swap$ *
+ #-2 #1 substring$ "1" =
+ { bbl.th * }
+ { duplicate$ #-1 #1 substring$
+ duplicate$ "1" =
+ { pop$ bbl.st * }
+ { duplicate$ "2" =
+ { pop$ bbl.nd * }
+ { "3" =
+ { bbl.rd * }
+ { bbl.th * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION{is.a.digit}
+{ duplicate$ "" =
+ {pop$ #0}
+ {chr.to.int$ #48 - duplicate$
+ #0 < swap$ #9 > or not}
if$
}
-FUNCTION {emboldenc}
-{ duplicate$ empty$
- { pop$ "" }
- { "\textbf{" swap$ * ",}" * }
+FUNCTION{is.a.number}
+{
+ { duplicate$ #1 #1 substring$ is.a.digit }
+ {#2 global.max$ substring$}
+ while$
+ "" =
+}
+
+FUNCTION {extract.num}
+{ duplicate$ 't :=
+ "" 's :=
+ { t empty$ not }
+ { t #1 #1 substring$
+ t #2 global.max$ substring$ 't :=
+ duplicate$ is.a.number
+ { s swap$ * 's := }
+ { pop$ "" 't := }
+ if$
+ }
+ while$
+ s empty$
+ 'skip$
+ { pop$ s }
if$
}
-INTEGERS { nameptr namesleft numnames }
+FUNCTION {bibinfo.check}
+{ swap$
+ duplicate$ missing$
+ { pop$ pop$
+ ""
+ }
+ { duplicate$ empty$
+ {
+ swap$ pop$
+ }
+ { swap$
+ pop$
+ }
+ if$
+ }
+ if$
+}
-INTEGERS { etal }
+FUNCTION {convert.edition}
+{ extract.num "l" change.case$ 's :=
+ s "first" = s "1" = or
+ { bbl.first 't := }
+ { s "second" = s "2" = or
+ { bbl.second 't := }
+ { s "third" = s "3" = or
+ { bbl.third 't := }
+ { s "fourth" = s "4" = or
+ { bbl.fourth 't := }
+ { s "fifth" = s "5" = or
+ { bbl.fifth 't := }
+ { s #1 #1 substring$ is.a.number
+ { s eng.ord 't := }
+ { edition 't := }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ t
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {space.connect}
+{ " " swap$ * * }
+
+INTEGERS { nameptr namesleft numnames }
FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
+ numnames 'namesleft :=
numnames #15 >
- s numnames "{ll}" format.name$ "others" = numnames #1 > and
- or 'etal :=
- etal
- { #1 #1 + 'namesleft := }
- { numnames 'namesleft := }
- if$
- { namesleft #0 > }
- { s nameptr "{vv~}{ll,}{~jj,}{~f.}" format.name$ 't :=
- nameptr #1 >
-{ namesleft #1 >
- { ";\ \ " * t * }
- { nameptr #2 >
-{ "" * }
-'skip$
- if$
- t "others" =
- etal or
-{ " \textit{et al.}\ " * }
-{ ";\ \ " * t * }
- if$
+ { s #1 "{vv~}{ll,}{~jj,}{~f.}" format.name$ 't :=
+ t bbl.etal space.connect
}
+ {
+ { namesleft #0 > }
+ { s nameptr "{vv~}{ll,}{~jj,}{~f.}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { add.semicolon t * }
+ { numnames #2 >
+ { "" * }
+ 'skip$
+ if$
+ t "others," =
+ { bbl.etal space.connect }
+ { add.semicolon t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ }
if$
}
-'t
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
-}
FUNCTION {format.authors}
{ author empty$
{ "" }
- { author format.names }
+ { #1 'author.or.editor :=
+ author format.names }
if$
}
FUNCTION {format.editors}
{ editor empty$
{ "" }
- { editor format.names
+ { #2 'author.or.editor :=
+ editor format.names
+ add.comma
editor num.names$ #1 >
-{ ",\ \ Eds.; " * }
-{ ",\ \ Ed.; " * }
+ { bbl.editors }
+ { bbl.editor }
if$
+ *
}
if$
}
-FUNCTION {n.dashify}
+FUNCTION {n.separate.multi}
{ 't :=
""
- { t empty$ not }
- { t #1 #1 substring$ "-" =
-{ t #1 #2 substring$ "--" = not
- { "--" *
- t #2 global.max$ substring$ 't :=
- }
- { { t #1 #1 substring$ "-" = }
-{ "-" *
- t #2 global.max$ substring$ 't :=
-}
+ #0 'numnames :=
+ t text.length$ #4 > t is.a.number and
+ {
+ { t empty$ not }
+ { t #-1 #1 substring$ is.a.number
+ { numnames #1 + 'numnames := }
+ { #0 'numnames := }
+ if$
+ t #-1 #1 substring$ swap$ *
+ t #-2 global.max$ substring$ 't :=
+ numnames #4 =
+ { duplicate$ #1 #1 substring$ swap$
+ #2 global.max$ substring$
+ "," swap$ * *
+ #1 'numnames :=
+ }
+ 'skip$
+ if$
+ }
while$
}
+ { t swap$ * }
if$
}
-{ t #1 #1 substring$ *
- t #2 global.max$ substring$ 't :=
-}
- if$
- }
- while$
-}
-FUNCTION {format.date}
-{ year empty$
+FUNCTION {format.bvolume}
+{ volume empty$
{ "" }
- 'year
- if$
-}
-
-FUNCTION {tie.or.space.connect}
-{ duplicate$ text.length$ #3 <
- { "~" }
- { " " }
+ { bbl.volume volume tie.or.space.connect }
if$
- swap$ * *
}
-FUNCTION {either.or.check}
-{ empty$
- 'pop$
- { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+FUNCTION {format.title.noemph}
+{ 't :=
+ t empty$
+ { "" }
+ { t }
if$
}
-FUNCTION {format.bvolume}
-{ volume empty$
+FUNCTION {format.title}
+{ 't :=
+ t empty$
{ "" }
- { "volume" volume tie.or.space.connect
- series empty$
-'skip$
-{ " of " * series emphasize * }
- if$
- "volume and number" number either.or.check
- }
+ { t emphasize }
if$
}
FUNCTION {format.number.series}
{ volume empty$
{ number empty$
-{ series field.or.null }
- { series empty$
- { "there's a number but no series in " cite$ * warning$ }
- { series " " * number * "; " * }
+ { series field.or.null }
+ { series empty$
+ { "There is a number but no series in " cite$ * warning$ }
+ { series number space.connect }
+ if$
+ }
+ if$
+ }
+ { "" }
if$
}
+
+FUNCTION {n.dashify} { 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
if$
}
+ while$
+}
+
+FUNCTION {format.date}
+{ year empty$
{ "" }
+ { year boldface }
+ if$
+}
+
+FUNCTION {format.bdate}
+{ year empty$
+ { "There's no year in " cite$ * warning$ }
+ 'year
+ if$
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "Can't use both " swap$ * " fields in " * cite$ * warning$ }
if$
}
FUNCTION {format.edition}
-{ edition empty$
- { "" }
- { edition " ed.;" * }
+{ edition duplicate$ empty$
+ 'skip$
+ { convert.edition
+ bbl.edition bibinfo.check
+ " " * bbl.edition *
+ }
if$
}
@@ -343,8 +562,8 @@ FUNCTION {multi.page.check}
swap$ duplicate$ "," =
swap$ "+" =
or or
-{ #1 'multiresult := }
-{ t #2 global.max$ substring$ 't := }
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
if$
}
while$
@@ -355,483 +574,433 @@ FUNCTION {format.pages}
{ pages empty$
{ "" }
{ pages multi.page.check
-{ "pages" pages n.dashify tie.or.space.connect }
-{ "page" pages tie.or.space.connect }
- if$
+ { bbl.pages pages n.dashify tie.or.space.connect }
+ { bbl.page pages tie.or.space.connect }
+ if$
}
if$
}
-FUNCTION {format.pages.a}
+FUNCTION {format.pages.required}
{ pages empty$
- { "" }
- { "page" pages tie.or.space.connect }
+ { ""
+ "There are no page numbers for " cite$ * warning$
+ output
+ }
+ { pages multi.page.check
+ { bbl.pages pages n.dashify tie.or.space.connect }
+ { bbl.page pages tie.or.space.connect }
+ if$
+ }
if$
}
-FUNCTION {format.yr.vol.pages}
-{ year field.or.null emboldenc
- " " swap$ * *
- volume field.or.null slantc
- " " swap$ * *
- pages empty$
- 'skip$
- { duplicate$ empty$
-{ pop$ format.pages.a }
-{ " " * pages * }
+FUNCTION {format.pages.nopp}
+{ pages empty$
+ { ""
+ "There are no page numbers for " cite$ * warning$
+ output
+ }
+ { pages multi.page.check
+ { pages n.dashify space.connect }
+ { pages space.connect }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.pages.patent}
+{ pages empty$
+ { "There is no patent number for " cite$ * warning$ }
+ { pages multi.page.check
+ { pages n.dashify }
+ { pages n.separate.multi }
if$
}
if$
}
+FUNCTION {format.vol.pages}
+{ volume emphasize field.or.null
+ duplicate$ empty$
+ { pop$ format.pages.required }
+ { add.comma pages n.dashify * }
+ if$
+}
+
FUNCTION {format.chapter.pages}
{ chapter empty$
'format.pages
{ type empty$
-{ "Chapter" }
-{ type "l" change.case$ }
+ { bbl.chapter }
+ { type "l" change.case$ }
if$
chapter tie.or.space.connect
pages empty$
-'skip$
-{ ", " * format.pages * }
+ 'skip$
+ { add.comma format.pages * }
if$
}
if$
}
-FUNCTION {empty.misc.check}
-{ author empty$ title empty$ howpublished empty$
- month empty$ year empty$ note empty$
- and and and and and
- { "all relevant fields are empty in " cite$ * warning$ }
- 'skip$
- if$
-}
-
-FUNCTION {format.thesis}
-{ type empty$
- {"Thesis,"}
- {type " thesis," * }
- if$
-}
-
-FUNCTION {format.article.crossref}
-{ key empty$
- { journal empty$
-{ "need key or journal for " cite$ * " to crossref " * crossref *
- warning$
- ""
-}
-{ "In " journal * }
- if$
+FUNCTION {format.title.in}
+{ 's :=
+ s empty$
+ { "" }
+ { editor empty$
+ { bbl.in s format.title space.connect }
+ { bbl.in s format.title space.connect
+ add.semicolon format.editors *
+ }
+ if$
}
- { "In " key * }
if$
- " \cite{" * crossref * "}" *
}
-FUNCTION {format.crossref.editor}
-{ editor #1 "{vv~}{ll}" format.name$
- editor num.names$ duplicate$
- #2 >
- { pop$ " et~al." * }
- { #2 <
-'skip$
-{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- { " et~al." * }
- { " and " * editor #2 "{vv~}{ll}" format.name$ * }
- if$
-}
+FUNCTION {format.pub.address}
+{ publisher empty$
+ { "" }
+ { address empty$
+ { publisher }
+ { publisher add.colon address *}
if$
}
if$
}
-FUNCTION {format.book.crossref}
-{ volume empty$
- { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
- "In "
- }
- { "Volume" volume tie.or.space.connect
- " of " *
- }
- if$
- editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
-{ series empty$
- { "need editor, key, or series for " cite$ * " to crossref " *
- crossref * warning$
- "" *
- }
- { "\textit{" * series * "}" * }
- if$
-}
-{ key * }
+FUNCTION {format.school.address}
+{ school empty$
+ { "" }
+ { address empty$
+ { school }
+ { school add.colon address *}
if$
}
- { format.crossref.editor * }
if$
- " \cite{" * crossref * "}" *
}
-FUNCTION {format.incoll.inproc.crossref}
-{ editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
-{ booktitle empty$
- { "need editor, key, or booktitle for " cite$ * " to crossref " *
- crossref * warning$
- ""
- }
- { "In \textit{" booktitle * ",}" * }
- if$
-}
-{ "In " key * }
+FUNCTION {format.organization.address}
+{ organization empty$
+ { "" }
+ { address empty$
+ { organization }
+ { organization add.colon address *}
if$
}
- { "In " format.crossref.editor * }
if$
- " \cite{" * crossref * "}" *
}
-FUNCTION {in.book}
- { "In " output
- booktitle emphasize
- volume empty$
- {skip$}
- {", Vol.~" * volume *}
- if$
- edition empty$
- {";" * output}
- {"," * output
- edition " ed.;\" * output}
- if$
- editor missing$
- { skip$ }
- { format.editors output }
- if$
- format.number.series output
- new.sentence
- publisher ":" * "publisher" output.check
- address "," * "address" output.check
-}
-
-FUNCTION {book.vol.ed}
-{ "" volume empty$
- {skip$}
- {" Vol.~" * volume *}
- if$
- edition empty$
- {";" * output}
- {"," * output
- edition " ed.;\" * output}
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ year empty$ note empty$
+ and and and and
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
if$
}
-FUNCTION {thesis.affilation}
-{ school "," * "school" output.check
- institution empty$
+FUNCTION {empty.doi.note}
+{ doi empty$ note empty$ and
+ { "Need either a note or DOI for " cite$ * warning$ }
'skip$
- {institution "," * output}
if$
}
-FUNCTION {add.note}
-{ annotate empty$
+FUNCTION {format.thesis.type}
+{ type empty$
'skip$
- { new.block
- "{\footnotesize " annotate * "}" * output }
+ { pop$
+ type emphasize
+ }
if$
}
FUNCTION {article}
{ output.bibitem
format.authors "author" output.check
- crossref missing$
- { journal field.or.null emphasize
- format.yr.vol.pages
- output
- }
- { format.article.crossref output.nonnull
- format.pages output
+ after.item 'output.state :=
+ journal emphasize "journal" output.check
+ after.item 'output.state :=
+ format.date "year" output.check
+ volume empty$
+ { ""
+ format.pages.nopp output
}
+ { format.vol.pages output }
if$
note output
- add.note
fin.entry
}
-FUNCTION {submitted}
+FUNCTION {book}
{ output.bibitem
- format.authors "author" output.check
+ author empty$
+ { booktitle empty$
+ { title format.title "title" output.check }
+ { booktitle format.title "booktitle" output.check }
+ if$
+ new.block
+ editor empty$
+ { "Need either an author or editor for " cite$ * warning$ }
+ { "" format.editors * "editor" output.check }
+ if$
+ }
+ { format.authors output
+ after.item 'output.state :=
+ "author and editor" editor either.or.check
+ booktitle empty$
+ { title format.title "title" output.check }
+ { booktitle format.title "booktitle" output.check }
+ if$
+ }
+ if$
+ format.edition output
+ new.block
+ format.number.series output
+ new.block
+ format.pub.address "publisher" output.check
+ format.bdate "year" output.check
new.block
- "submitted for publication in" output
- note empty$
- { journal emphasize "journal" output.check }
- { journal emphasizec "journal" output.check
- note output }
+ format.bvolume output
+ pages empty$
+ 'skip$
+ { format.pages output }
if$
- add.note
+ note output
fin.entry
}
-FUNCTION {inpress}
+FUNCTION {booklet}
{ output.bibitem
- format.authors "author" output.check
- journal emphasizec "journal" output.check
- "in press" output
+ format.authors output
+ after.item 'output.state :=
+ title format.title "title" output.check
+ howpublished output
+ address output
+ format.date output
note output
- add.note
fin.entry
}
-FUNCTION {book}
+FUNCTION {inbook}
{ output.bibitem
author empty$
- { format.editors "author and editor" output.check }
- { format.authors output.nonnull
- crossref missing$
-{ "author and editor" editor either.or.check }
-'skip$
- if$
+ { title format.title "title" output.check
+ new.block
+ editor empty$
+ { "Need at least an author or an editor for " cite$ * warning$ }
+ { "" format.editors * "editor" output.check }
+ if$
}
- if$
- booktitle empty$
- { title emphasizesc output }
- { booktitle emphasizesc output }
- if$
- crossref missing$
- { format.bvolume output
- format.number.series output
- new.sentence
- publisher ":" * "publisher" output.check
- address "," * "address" output.check
+ { format.authors output
+ after.item 'output.state :=
+ title format.title.in "title" output.check
}
- { format.book.crossref output.nonnull }
if$
format.edition output
- format.date "year" output.check
+ new.block
+ format.number.series output
+ 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
- add.note
fin.entry
}
-FUNCTION {booklet}
+FUNCTION {incollection}
{ output.bibitem
- format.authors "author" output.check
- " ``" title * "'', " * "title" output.check
- howpublished empty$
- { skip$ }
- { howpublished "," * output}
- if$
- address empty$
- { skip$ }
- { address "," * output}
+ author empty$
+ { booktitle format.title "booktitle" output.check
+ new.block
+ editor empty$
+ { "Need at least an author or an editor for " cite$ * warning$ }
+ { "" format.editors * "editor" output.check }
+ if$
+ }
+ { format.authors output
+ after.item 'output.state :=
+ booktitle format.title.in "booktitle" output.check
+ }
if$
- format.date "year" output.check
+ format.edition output
+ new.block
+ format.number.series output
+ new.block
+ format.pub.address "publisher" output.check
+ format.bdate "year" output.check
+ format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
note output
- add.note
fin.entry
}
-FUNCTION {inbook}
+FUNCTION {inpress}
{ output.bibitem
format.authors "author" output.check
- " " title * ". " * "title" output.check
- in.book
- chapter empty$
- {format.date "year" output.check}
- {year empty$
- { "empty year field in " * cite$ * warning$ }
- { year "; " * output
- format.chapter.pages output }
- if$
+ after.item 'output.state :=
+ journal emphasize "journal" output.check
+ doi empty$
+ { bbl.inpress output }
+ { after.item 'output.state :=
+ format.date output
+ "DOI:" doi tie.or.space.connect output
}
if$
note output
- add.note
fin.entry
}
-FUNCTION {incollection}
+FUNCTION {inproceedings}
{ output.bibitem
format.authors "author" output.check
- " " title * ". " * "title" output.check
- in.book
- format.date "year" output.check
+ after.item 'output.state :=
+ booktitle format.title.noemph "booktitle" output.check
+ address output
+ format.bdate "year" output.check
+ pages empty$
+ 'skip$
+ { new.block
+ format.pages output }
+ if$
note output
- add.note
fin.entry
}
-FUNCTION {inproceedings} { inbook }
-
-FUNCTION {conference} { inbook }
-
FUNCTION {manual}
{ output.bibitem
- author empty$
- { organization empty$
-'skip$
-{ organization ", " * address * output
-}
- if$
- }
- { format.authors output.nonnull }
- if$
- "``" title * "'', " * "title" output.check
- author empty$
- { organization empty$
-{ address empty$
- 'skip$
- { address "," * output }
- if$
-}
-'skip$
- if$
- }
- { organization empty$
- 'skip$
- { organization "," * output
- address empty$
- 'skip$
- { address "," * output }
- if$
- }
- if$
- }
- if$
+ format.authors output
+ after.item 'output.state :=
+ title format.title "title" output.check
+ new.block
+ format.organization.address output
format.edition output
- format.date output
+ format.bdate output
note output
- add.note
fin.entry
}
FUNCTION {mastersthesis}
{ output.bibitem
format.authors "author" output.check
- "``" title * "'', " * "title" output.check
- "Master's thesis, " output
- thesis.affilation
- format.date "year" output.check
+ after.item 'output.state :=
+ bbl.msc format.thesis.type output
+ format.school.address "school" output.check
+ format.bdate "year" output.check
note output
- add.note
fin.entry
}
FUNCTION {misc}
{ output.bibitem
format.authors output
- title empty$
- 'skip$
- { "``" title * "'', " * output }
- if$
- howpublished empty$
- 'skip$
- {howpublished "," * output }
- if$
- format.date output
+ after.item 'output.state :=
+ title format.title output
+ howpublished output
+ year output
note output
- add.note
fin.entry
empty.misc.check
}
+FUNCTION {patent}
+{ output.bibitem
+ format.authors "author" output.check
+ after.item 'output.state :=
+ journal emphasize "journal" output.check
+ format.pages.patent "pages" output.check
+ format.bdate "year" output.check
+ note output
+ fin.entry
+}
+
FUNCTION {phdthesis}
{ output.bibitem
format.authors "author" output.check
- title emphasizec "title" output.check
- format.thesis output.nonnull
- thesis.affilation
- format.date "year" output.check
+ after.item 'output.state :=
+ bbl.phd format.thesis.type output
+ format.school.address "school" output.check
+ format.bdate "year" output.check
note output
- add.note
fin.entry
}
FUNCTION {proceedings}
{ output.bibitem
- editor empty$
- { organization output }
- { format.editors output.nonnull }
- if$
- booktitle empty$
- { title emphasizec output }
- { booktitle emphasizec output }
- if$
- book.vol.ed
- format.number.series output
- publisher empty$
- { address empty$
- { format.date "year" output.check }
- { address "," * output
- format.date "year" output.check }
- if$
- }
- { address empty$
- { publisher "," * output
- format.date "year" output.check }
- { publisher ": " * address * "," * output
- format.date "year" output.check }
- if$
- }
+ title format.title.noemph "title" output.check
+ address output
+ format.bdate "year" output.check
+ pages empty$
+ 'skip$
+ { new.block
+ format.pages output }
if$
note output
- add.note
+ 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
- "``" title * "'', " * "title" output.check
+ after.item 'output.state :=
+ title format.title "title" output.check
+ institution
type empty$
- { "Technical Report" }
+ 'bbl.techreport
'type
if$
+ space.connect
number empty$
- { ", " * }
- { " " * number * "," * }
+ { "t" change.case$ }
+ { number tie.or.space.connect }
if$
- output.nonnull
- institution "," * "institution" output.check
- address empty$
- { skip$ }
- { address "," * output }
- if$
- format.date "year" output.check
+ output
+ format.pub.address output
+ format.bdate "year" output.check
note output
- add.note
fin.entry
}
FUNCTION {unpublished}
{ output.bibitem
format.authors "author" output.check
- note empty$
- { "Unpublished data" output }
- { year empty$
- { note output }
- { note ", " * year * output }
- if$ }
- if$
- add.note
+ after.item 'output.state :=
+ journal empty$
+ 'skip$
+ { journal emphasize "journal" output.check }
+ if$
+ doi empty$
+ { note output }
+ { after.item 'output.state :=
+ format.date output
+ "DOI:" doi tie.or.space.connect output
+ }
+ if$
fin.entry
+ empty.doi.note
}
-FUNCTION {remark}
-{ output.bibitem
- note "note" output.check
- add.note
- fin.entry
-}
+FUNCTION {conference} {inproceedings}
+
+FUNCTION {other} {patent}
-FUNCTION {default.type} { misc }
+FUNCTION {default.type} {misc}
MACRO {jan} {"Jan."}
MACRO {feb} {"Feb."}
@@ -874,13 +1043,16 @@ 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 {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."}
@@ -891,10 +1063,12 @@ 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 {sci} {"Science (Washington,~D.C.)"}
MACRO {nat} {"Nature (London)"}
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."}
@@ -963,4 +1137,5 @@ FUNCTION {end.bib}
EXECUTE {end.bib}
%%
+%%
%% End of file `achemsol.bst'.