summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/bibtex/bst/rsc
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-12-26 23:29:48 +0000
committerKarl Berry <karl@freefriends.org>2006-12-26 23:29:48 +0000
commit729ce53995492a87f35451ca5aa1075beca00c6b (patch)
tree30494c8c41d92c218424b0893754a1e9963cb38c /Master/texmf-dist/bibtex/bst/rsc
parentbbd8230e72add61180e3071b90bf5c6a48908650 (diff)
rsc update
git-svn-id: svn://tug.org/texlive/trunk@2956 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/bibtex/bst/rsc')
-rw-r--r--Master/texmf-dist/bibtex/bst/rsc/rsc-mc.bst998
-rw-r--r--Master/texmf-dist/bibtex/bst/rsc/rsc.bst857
2 files changed, 1260 insertions, 595 deletions
diff --git a/Master/texmf-dist/bibtex/bst/rsc/rsc-mc.bst b/Master/texmf-dist/bibtex/bst/rsc/rsc-mc.bst
new file mode 100644
index 00000000000..f865a76f0ab
--- /dev/null
+++ b/Master/texmf-dist/bibtex/bst/rsc/rsc-mc.bst
@@ -0,0 +1,998 @@
+%%
+%% This is file `rsc-mc.bst',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rsc.dtx (with options: `bib-mc')
+%% ----------------------------------------------------------------
+%% The rsc package - BibTeX and macro support for Royal Society
+%% of Chemistry style articles
+%% Maintained by Joseph A. Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the GNU General Public License
+%% See http://www.gnu.org/licenses/gpl.txt
+%% ----------------------------------------------------------------
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ doi
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ }
+ {}
+ { label }
+
+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}
+{ duplicate$
+ #-1 #1 substring$ "}" =
+ { #-2 #1024 substring$ ";} " * }
+ { ", " * }
+ if$
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+ { ", " * write$ }
+ { output.state after.block =
+ { add.comma write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { output.state after.item =
+ { " " * write$ }
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "Empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+ "\bibitem{" write$
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+FUNCTION {fin.entry}
+{ write$
+ "\relax" write$
+ newline$
+ "\relax" write$
+}
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "\emph{" swap$ * "}" * }
+ if$
+}
+
+FUNCTION {boldface}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "\textbf{" swap$ * "}" * }
+ if$
+}
+
+FUNCTION {paren}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "(" swap$ * ")" * }
+ if$
+}
+
+FUNCTION {bbl.chapter}
+{ "ch." }
+
+FUNCTION {bbl.ed}
+{ "ed. " }
+
+FUNCTION {bbl.edition}
+{ "edn." }
+
+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.num}
+{ chr.to.int$
+ duplicate$ "0" chr.to.int$ < not
+ swap$ "9" chr.to.int$ > not and
+}
+
+FUNCTION {extract.num}
+{ duplicate$ 't :=
+ "" 's :=
+ { t empty$ not }
+ { t #1 #1 substring$
+ t #2 global.max$ substring$ 't :=
+ duplicate$ is.num
+ { s swap$ * 's := }
+ { pop$ "" 't := }
+ if$
+ }
+ while$
+ s empty$
+ 'skip$
+ { pop$ s }
+ if$
+}
+
+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.num
+ { 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 :=
+ { namesleft #0 > }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "" * }
+ 'skip$
+ if$
+ t "others" =
+ { " \emph{et~al.}" * }
+ { " and " * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { #1 'author.or.editor :=
+ author format.names }
+ if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { #2 'author.or.editor :=
+ bbl.ed *
+ editor format.names
+ }
+ if$
+}
+
+FUNCTION{is.a.digit}
+{
+ duplicate$ "" =
+ {pop$ #0}
+ {chr.to.int$ #48 - duplicate$
+ #0 < swap$ #9 > or not}
+ if$
+}
+
+FUNCTION{is.a.number}
+{
+ {duplicate$ #1 #1 substring$ is.a.digit }
+ {#2 global.max$ substring$}
+ while$
+ "" =
+}
+FUNCTION {n.separate.multi}
+{ 't :=
+ ""
+ #0 'numnames :=
+ t text.length$ #4 > t is.a.number and
+ {
+ { t empty$ not }
+ { t #-1 #1 substring$ is.num
+ { 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$
+}
+
+FUNCTION {format.title.noemph}
+{ title empty$
+ { "" }
+ { title }
+ if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ { title emphasize }
+ if$
+}
+
+FUNCTION {format.booktitle}
+{ booktitle title empty$
+ { "" }
+ { booktitle emphasize }
+ 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 }
+ 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.bvolume}
+{ volume empty$
+ { "" }
+ { bbl.volume volume tie.or.space.connect }
+ if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "no." }
+ { "No." }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "There's a number but no series in " cite$ * warning$ }
+ { " in " * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {format.edition}
+{ edition duplicate$ empty$
+ 'skip$
+ { convert.edition
+ bbl.edition bibinfo.check
+ " " * bbl.edition *
+ }
+ if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { bbl.pages pages n.dashify tie.or.space.connect }
+ { bbl.page pages tie.or.space.connect }
+ if$
+ }
+ if$
+}
+
+
+FUNCTION {format.pages.required}
+{ pages empty$
+ { ""
+ "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.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 boldface field.or.null
+ duplicate$ empty$
+ { pop$ format.pages.required }
+ { ", " * pages n.dashify * }
+ if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { bbl.chapter }
+ { type "l" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ pages empty$
+ 'skip$
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { "in " booktitle emphasize * }
+ { "in " format.editors * ", " * booktitle emphasize * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.title.ed}
+{ title empty$
+ { "" }
+ { editor empty$
+ { " in " title emphasize * }
+ { " in " title emphasize * ", " * format.editors * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.booktitle.ed}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { " in " booktitle emphasize * }
+ { " in " booktitle emphasize * ", " * format.editors * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.pub.address}
+{ publisher empty$
+ { "" }
+ { address empty$
+ { publisher }
+ { publisher ", " * address *}
+ if$
+ }
+ if$
+}
+
+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 {empty.doi.note}
+{ doi empty$ note empty$ and
+ { "Need either a note or DOI for " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type emphasize
+ }
+ if$
+}
+
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ journal emphasize "journal" output.check
+ format.date "year" output.check
+ volume empty$
+ { ""
+ format.pages.nopp output
+ }
+ { format.vol.pages output }
+ if$
+ fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.title "title" output.check
+ editor empty$
+ { "Need either an author or editor for " cite$ * warning$ }
+ { "" format.editors * "editor" output.check }
+ if$
+ }
+ { format.authors output.nonnull
+ "author and editor" editor either.or.check
+ format.title "title" output.check
+ }
+ if$
+ format.pub.address "publisher" output.check
+ format.edition output
+ format.bdate "year" output.check
+ format.bvolume output
+ fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ format.title "title" output.check
+ howpublished output
+ address output
+ format.date output
+ fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.title "title" output.check
+ editor empty$
+ { "Need at least an author or an editor for " cite$ * warning$ }
+ { "" format.editors * "editor" output.check }
+ if$
+ }
+ { format.authors output.nonnull
+ format.in.title.ed "title" output.check
+ }
+ if$
+ format.pub.address "publisher" output.check
+ format.edition output
+ format.bdate "year" output.check
+ format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
+ fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+ author empty$
+ { format.booktitle "booktitle" output.check
+ editor empty$
+ { "Need at least an author or an editor for " cite$ * warning$ }
+ { "" format.editors * "editor" output.check }
+ if$
+ }
+ { format.authors output.nonnull
+ format.in.booktitle.ed "booktitle" output.check
+ }
+ if$
+ format.pub.address "publisher" output.check
+ format.edition output
+ format.bdate "year" output.check
+ format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
+ fin.entry
+}
+
+FUNCTION {inpress}
+{ output.bibitem
+ format.authors "author" output.check
+ journal emphasize "journal" output.check
+ bbl.inpress output
+ fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ booktitle "booktitle" output.check
+ address output
+ format.date "year" output.check
+ fin.entry
+}
+
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ format.title "title" output.check
+ author empty$
+ { organization empty$
+ { address output }
+ 'skip$
+ if$
+ }
+ { organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ bbl.msc emphasize format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ format.title output
+ howpublished output
+ format.bdate output
+ note output
+ fin.entry
+ empty.misc.check
+}
+
+FUNCTION {patent}
+{ output.bibitem
+ organization empty$
+ { format.authors "author and organization" output.check }
+ { author empty$
+ { organization }
+ { format.authors organization paren space.connect }
+ if$
+ "author and organization" output.check
+ }
+ if$
+ journal emphasize "journal" output.check
+ format.pages.patent "pages" output.check
+ format.date "year" output.check
+ fin.entry
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ bbl.phd emphasize format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ format.title.noemph "title" output.check
+ address output
+ format.date "year" output.check
+ 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
+ format.title "title" output.check
+ institution
+ type empty$
+ 'bbl.techreport
+ 'type
+ if$
+ space.connect
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+ output.nonnull
+ format.pub.address output
+ format.date "year" output.check
+ fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ journal empty$
+ 'skip$
+ { journal emphasize "journal" output.check }
+ if$
+ doi empty$
+ { note output }
+ { format.date output
+ "DOI:" doi tie.or.space.connect output }
+ if$
+ fin.entry
+ empty.doi.note
+}
+
+FUNCTION {conference} {inproceedings}
+
+FUNCTION {other} {patent}
+
+FUNCTION {default.type} {misc}
+
+MACRO {jan} {"January"}
+MACRO {feb} {"February"}
+MACRO {mar} {"March"}
+MACRO {apr} {"April"}
+MACRO {may} {"May"}
+MACRO {jun} {"June"}
+MACRO {jul} {"July"}
+MACRO {aug} {"August"}
+MACRO {sep} {"September"}
+MACRO {oct} {"October"}
+MACRO {nov} {"November"}
+MACRO {dec} {"December"}
+
+READ
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+{ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{mcbibliography}{" longest.label * "}" * write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+ "\end{mcbibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
+\endinput
+%%
+%% End of file `rsc-mc.bst'.
diff --git a/Master/texmf-dist/bibtex/bst/rsc/rsc.bst b/Master/texmf-dist/bibtex/bst/rsc/rsc.bst
index 856d6a976c2..82b778ac3e9 100644
--- a/Master/texmf-dist/bibtex/bst/rsc/rsc.bst
+++ b/Master/texmf-dist/bibtex/bst/rsc/rsc.bst
@@ -1,58 +1,18 @@
-% ----------------------------------------------------------------
-% BibTeX bibliography style `rsc' for Dalton Trans.,
-% Org. Biomol. Chem., Chem. Commun., Phys. Chem. Chem. Phys., etc.
-% ----------------------------------------------------------------
-%
-% ----------------------------------------------------------------
-% Maintained by Joseph A. Wright
-% E-mail: joseph.wright@morningstar2.co.uk
-% Released under the GNU General Public License
-% See http://www.gnu.org/licenses/gpl.txt
-% ----------------------------------------------------------------
-
-% ----------------------------------------------------------------
-% History
-% 2006-10-30 Improvements to patent number handling; automatic
-% digit grouping. Patent assignee recognised from
-% organization field. Added support for non-standard
-% types as in achemso.bst
-% 2006-10-22 Added converters for edition numbers (to change
-% 1 to 1st, 2 to 2nd, etc.) from custom-bib
-% package.
-% 2006-06-27 Substantial improvements to output consistency
-% with RSC style requirements.
-% Improved support for unpublished works, in press
-% and so on.
-% ----------------------------------------------------------------
-%
-% ----------------------------------------------------------------
-% Usage notes:
-% 1) Other than the 'article' reference type, the RSC publication
-% rules give only limited guidance. I have therefore had to
-% look at a number of real-world examples, and pick the useage
-% I am happiest with. So of the layout is therefore more of
-% a personal preference than anything else.
-% 2) Patents. Patents can be saves as type 'patent' or 'other'
-% Fill in as for article, and the correct formatting will
-% result (Authors, "Journal", Year). Any other use of 'other'
-% will give the same result. Patent numbers are automatically
-% digit-grouped if they are purely made up of digits. Assignee
-% is given in the organization field.
-% 3) Unpublished. If a journal is given (for example, for
-% submitted or in press articles), then this will be printed.
-% Use the 'note' field for the status of the references
-% (personal communication, in press, etc.)
-% 4) In press articles with DOI. If unpublished articles have
-% a DOI given, this will be given in the output, with
-% the year added as well. In this case, no 'note' is added
-% 5) Miscellaneous (e.g. software). Use the 'howpublished' field
-% for organisation, address etc.
-% 6) The non-standard types remark, inpress and submitted are
-% supported for compatibility with achemso.bst. Note that they
-% are implemented to act in the same way as the rest of this
-% style.
-% ----------------------------------------------------------------
-
+%%
+%% This is file `rsc.bst',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rsc.dtx (with options: `bib')
+%% ----------------------------------------------------------------
+%% The rsc package - BibTeX and macro support for Royal Society
+%% of Chemistry style articles
+%% Maintained by Joseph A. Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the GNU General Public License
+%% See http://www.gnu.org/licenses/gpl.txt
+%% ----------------------------------------------------------------
ENTRY
{ address
author
@@ -64,8 +24,6 @@ ENTRY
howpublished
institution
journal
- key
- month
note
number
organization
@@ -81,7 +39,8 @@ ENTRY
{}
{ label }
-INTEGERS { output.state before.all mid.sentence after.sentence after.block after.item author.or.editor }
+INTEGERS { output.state before.all mid.sentence after.sentence }
+INTEGERS { after.block after.item author.or.editor }
FUNCTION {init.state.consts}
{ #0 'before.all :=
@@ -91,14 +50,6 @@ FUNCTION {init.state.consts}
#4 'after.item :=
}
-FUNCTION {add.semicolon}
-{ duplicate$
- #-1 #1 substring$ "}" =
- { #-2 #1024 substring$ ";} " * }
- { "; " * }
- if$
-}
-
FUNCTION {add.comma}
{ duplicate$
#-1 #1 substring$ "}" =
@@ -144,7 +95,7 @@ FUNCTION {output}
FUNCTION {output.check}
{ 't :=
duplicate$ empty$
- { pop$ "empty " t * " in " * cite$ * warning$ }
+ { pop$ "Empty " t * " in " * cite$ * warning$ }
'output.nonnull
if$
}
@@ -158,42 +109,11 @@ FUNCTION {output.bibitem}
""
before.all 'output.state :=
}
-
FUNCTION {fin.entry}
{ add.period$
write$
newline$
}
-
-FUNCTION {new.block}
-{ output.state before.all =
- 'skip$
- { after.block 'output.state := }
- if$
-}
-
-FUNCTION {new.sentence}
-{ output.state after.block =
- 'skip$
- { output.state before.all =
- 'skip$
- { after.sentence 'output.state := }
- if$
- }
- if$
-}
-
-FUNCTION {new.item}
-{ duplicate$ empty$
- { skip$ }
- { output.state mid.sentence =
- { after.item 'output.state := }
- { skip$ }
- if$
- }
- if$
-}
-
FUNCTION {not}
{ { #0 }
{ #1 }
@@ -212,45 +132,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 {new.sentence.checka}
-{ empty$
- 'skip$
- 'new.sentence
- if$
-}
-
-FUNCTION {new.sentence.checkb}
-{ empty$
- swap$ empty$
- and
- 'skip$
- 'new.sentence
- if$
-}
-
-FUNCTION {new.item.checka}
-{ empty$
- 'skip$
- 'new.item
- if$
-}
-
FUNCTION {field.or.null}
{ duplicate$ empty$
{ pop$ "" }
@@ -279,7 +160,39 @@ FUNCTION {paren}
if$
}
-% Some functions taken from custombib.tex
+FUNCTION {bbl.chapter}
+{ "ch." }
+
+FUNCTION {bbl.ed}
+{ "ed. " }
+
+FUNCTION {bbl.edition}
+{ "edn." }
+
+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" }
@@ -400,6 +313,19 @@ FUNCTION {convert.edition}
t
}
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {space.connect}
+{ " "
+ swap$ * *
+}
+
INTEGERS { nameptr namesleft numnames }
FUNCTION {format.names}
@@ -408,7 +334,7 @@ FUNCTION {format.names}
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
- { s nameptr "{f.~}{vv~}{ll}{ jj}" format.name$ 't :=
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
nameptr #1 >
{ namesleft #1 >
{ ", " * t * }
@@ -443,81 +369,12 @@ FUNCTION {format.editors}
{ editor empty$
{ "" }
{ #2 'author.or.editor :=
- editor num.names$ #1 >
- { "ed. " * }
- { "ed. " * }
- if$
+ bbl.ed *
editor format.names
}
if$
}
-INTEGERS { a b }
-
-FUNCTION {mult}
-{
- 'a := %% we store the first value
- 'b := %% we store the second value
-
- b #0 < %% We remember the sign of b, and
- {#-1 #0 b - 'b :=} %% then consider its absolute value.
- {#1} %%
- if$ %%
-
- #0 %% Put 0 on the stack.
- {b #0 >} %% While b is strictly positive,
- { %% we add a to the value on the stack
- a + %% and decrement b.
- b #1 - 'b := %%
- } %%
- while$ %%
-
- swap$ %% Last, we take the opposite
- 'skip$ %% if b was negative.
- {#0 swap$ -} %%
- if$ %%
-}
-
-FUNCTION {chr.to.value.silent} %% The ASCII code of a character
-{
- chr.to.int$ #48 - %% ASCII value of "0" -> 48
- duplicate$ duplicate$ %% "1" -> 49
- #0 < swap$ #9 > or %% ...
- { pop$ pop$ "0" #0 }
- {}
- if$
-}
-
-FUNCTION {str.to.int.aux.silent} %% The auxiliary function
-{
- {duplicate$ empty$ not} %% While the string is not empty
- { %% consider its first char
- swap$ #10 mult 'a := %% and ``add'' it at the end of
- duplicate$ #1 #1 substring$ %% the result.
- chr.to.value.silent a +
- swap$
- #2 global.max$ substring$
- }
- while$
- pop$
-}
-
-FUNCTION {str.to.int.silent}
-{ %% Handling negative values
- duplicate$ #1 #1 substring$ "-" =
- {#1 swap$ #2 global.max$ substring$}
- {#0 swap$}
- if$
- %% Initialization, and then
- #0 swap$ str.to.int.aux.silent %% call to the aux. funtion
- swap$
- {#0 swap$ -} %% And handle the sign.
- {}
- if$
-}
-
-% Two functions from Nicolas Markey
-
FUNCTION{is.a.digit}
{
duplicate$ "" =
@@ -528,20 +385,19 @@ FUNCTION{is.a.digit}
}
FUNCTION{is.a.number}
-{
+{
{duplicate$ #1 #1 substring$ is.a.digit }
{#2 global.max$ substring$}
while$
"" =
}
-
FUNCTION {n.separate.multi}
{ 't :=
""
#0 'numnames :=
- t text.length$ #4 > t is.a.number and % Test that t is both:
- { % 1) a number
- { t empty$ not } % 2) over four digits long
+ t text.length$ #4 > t is.a.number and
+ {
+ { t empty$ not }
{ t #-1 #1 substring$ is.num
{ numnames #1 + 'numnames := }
{ #0 'numnames := }
@@ -558,31 +414,29 @@ FUNCTION {n.separate.multi}
if$
}
while$
- }
+ }
{ t swap$ * }
if$
}
-% Need a different format for books with editors
-% than for editors in a collection
-
-FUNCTION {format.editors.paren}
-{ editor empty$
+FUNCTION {format.title.noemph}
+{ title empty$
{ "" }
- { editor format.names
- #2 'author.or.editor :=
- editor num.names$ #1 >
- { * " (ed.)" }
- { * " (ed.)" }
- if$
- }
+ { title }
if$
}
FUNCTION {format.title}
{ title empty$
{ "" }
- { title "t" change.case$ }
+ { title emphasize }
+ if$
+}
+
+FUNCTION {format.booktitle}
+{ booktitle title empty$
+ { "" }
+ { booktitle emphasize }
if$
}
@@ -620,45 +474,22 @@ FUNCTION {format.date}
FUNCTION {format.bdate}
{ year empty$
- { "there's no year in " cite$ * warning$ }
+ { "There's no year in " cite$ * warning$ }
'year
if$
}
-FUNCTION {format.btitle}
-{ title emphasize
-}
-
-FUNCTION {tie.or.space.connect}
-{ duplicate$ text.length$ #3 <
- { "~" }
- { " " }
- if$
- swap$ * *
-}
-
-FUNCTION {space.connect}
-{ " "
- swap$ * *
-}
-
FUNCTION {either.or.check}
{ empty$
'pop$
- { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ { "Can't use both " swap$ * " fields in " * cite$ * warning$ }
if$
}
FUNCTION {format.bvolume}
{ volume empty$
{ "" }
- { "vol." volume tie.or.space.connect
- series empty$
- 'skip$
- { " of " * series emphasize * }
- if$
- "volume and number" number either.or.check
- }
+ { bbl.volume volume tie.or.space.connect }
if$
}
@@ -672,7 +503,7 @@ FUNCTION {format.number.series}
if$
number tie.or.space.connect
series empty$
- { "there's a number but no series in " cite$ * warning$ }
+ { "There's a number but no series in " cite$ * warning$ }
{ " in " * series * }
if$
}
@@ -683,15 +514,11 @@ FUNCTION {format.number.series}
}
FUNCTION {format.edition}
-{ edition duplicate$ empty$ 'skip$
- {
- convert.edition
- output.state mid.sentence =
- { "l" }
- { "t" }
- if$ change.case$
- "edn." bibinfo.check
- " " * "edn." *
+{ edition duplicate$ empty$
+ 'skip$
+ { convert.edition
+ bbl.edition bibinfo.check
+ " " * bbl.edition *
}
if$
}
@@ -710,8 +537,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$
@@ -722,27 +549,44 @@ FUNCTION {format.pages}
{ pages empty$
{ "" }
{ pages multi.page.check
- { "pp." pages n.dashify tie.or.space.connect }
- { "p." 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.required}
+{ pages empty$
+ { ""
+ "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.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$
+ { pages n.dashify space.connect }
+ { pages space.connect }
+ if$
}
if$
}
FUNCTION {format.pages.patent}
{ pages empty$
- { "there is no patent number for " cite$ * warning$ }
+ { "There is no patent number for " cite$ * warning$ }
{ pages multi.page.check
{ pages n.dashify }
{ pages n.separate.multi }
@@ -751,36 +595,11 @@ FUNCTION {format.pages.patent}
if$
}
-FUNCTION {format.vol.num.pages}
-{ volume boldface field.or.null
- number empty$
- 'skip$
- { "(" number * ")" * *
- volume empty$
- { "there's a number but no volume in " cite$ * warning$ }
- 'skip$
- if$
- }
- if$
- pages empty$
- 'skip$
- { duplicate$ empty$
- { pop$ format.pages }
- { ", " * pages n.dashify * }
- if$
- }
- if$
-}
-
FUNCTION {format.vol.pages}
{ volume boldface field.or.null
- pages empty$
- 'skip$
- { duplicate$ empty$
- { pop$ format.pages }
+ duplicate$ empty$
+ { pop$ format.pages.required }
{ ", " * pages n.dashify * }
- if$
- }
if$
}
@@ -788,7 +607,7 @@ FUNCTION {format.chapter.pages}
{ chapter empty$
'format.pages
{ type empty$
- { "ch." }
+ { bbl.chapter }
{ type "l" change.case$ }
if$
chapter tie.or.space.connect
@@ -811,14 +630,14 @@ FUNCTION {format.in.ed.booktitle}
if$
}
-FUNCTION {format.title.incoll}
+FUNCTION {format.in.title.ed}
{ title empty$
{ "" }
- { author empty$
- { title emphasize *}
- { ", " * title emphasize *}
- if$
- }
+ { editor empty$
+ { " in " title emphasize * }
+ { " in " title emphasize * ", " * format.editors * }
+ if$
+ }
if$
}
@@ -826,10 +645,10 @@ FUNCTION {format.in.booktitle.ed}
{ booktitle empty$
{ "" }
{ editor empty$
- { " in " booktitle emphasize * }
- { " in " booktitle emphasize * ", " * format.editors * }
- if$
- }
+ { " in " booktitle emphasize * }
+ { " in " booktitle emphasize * ", " * format.editors * }
+ if$
+ }
if$
}
@@ -840,298 +659,157 @@ FUNCTION {format.pub.address}
{ publisher }
{ publisher ", " * address *}
if$
- }
+ }
if$
}
FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
- month empty$ year empty$ note empty$
- and and and and and
+ year empty$ note empty$
+ and and and and
{ "all relevant fields are empty in " cite$ * warning$ }
'skip$
if$
}
-FUNCTION {format.thesis.type}
-{ type empty$
+FUNCTION {empty.doi.note}
+{ doi empty$ note empty$ and
+ { "Need either a note or DOI for " cite$ * warning$ }
'skip$
- { pop$
- type "t" change.case$
- }
if$
}
-FUNCTION {format.tr.number}
+FUNCTION {format.thesis.type}
{ type empty$
- { "Technical Report" }
- 'type
- if$
- number empty$
- { "t" change.case$ }
- { number tie.or.space.connect }
- if$
-}
-
-FUNCTION {format.article.crossref}
-{ key empty$
- { journal empty$
- { "need key or journal for " cite$ * " to crossref " * crossref *
- warning$
- ""
- }
- { "In \emph{" journal * "\/}" * }
- if$
- }
- { "In " key * }
- if$
- " \cite{" * crossref * "}" *
-}
-
-FUNCTION {format.crossref.editor}
-{ editor #1 "{vv~}{ll}" format.name$
- editor num.names$ duplicate$
- #2 >
- { pop$ " \emph{et~al.}" * }
- { #2 <
'skip$
- { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- { " \emph{et~al.}" * }
- { " and " * editor #2 "{vv~}{ll}" format.name$ * }
- if$
- }
- 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$
- "" *
- }
- { "\emph{" * series * "\/}" * }
- if$
- }
- { key * }
- 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 \emph{" booktitle * "\/}" * }
- if$
- }
- { "In " key * }
- if$
+ { pop$
+ type emphasize
}
- { "In " format.crossref.editor * }
if$
- " \cite{" * crossref * "}" *
}
FUNCTION {article}
{ output.bibitem
format.authors "author" output.check
- crossref missing$
- { journal emphasize "journal" output.check
- format.date "year" output.check
- volume empty$
- { ""
- format.pages.nopp output
- }
- { format.vol.pages output }
- if$
- }
- { format.article.crossref output.nonnull
- format.pages output
- }
- if$
- fin.entry
-}
-
-FUNCTION {patent}
-{ output.bibitem
- organization empty$
- { format.authors "author" output.check }
- { format.authors
- " (" organization ")" * * *
- "author" output.check
- }
- if$
journal emphasize "journal" output.check
- format.pages.patent "pages" output.check
format.date "year" output.check
+ volume empty$
+ { ""
+ format.pages.nopp output
+ }
+ { format.vol.pages output }
+ if$
fin.entry
}
-FUNCTION { other } { patent }
-
FUNCTION {book}
{ output.bibitem
author empty$
- { format.editors.paren "author and editor" output.check }
- { format.authors output.nonnull
- crossref missing$
- { "author and editor" editor either.or.check }
- 'skip$
- if$
+ { format.title "title" output.check
+ editor empty$
+ { "Need either an author or editor for " cite$ * warning$ }
+ { "" format.editors * "editor" output.check }
+ if$
}
- if$
- format.btitle "title" output.check
- crossref missing$
- { % Suspect these are not needed
- % But hold on to just in case!
- % format.bvolume output
- % format.number.series output
- format.pub.address "publisher" output.check
+ { format.authors output.nonnull
+ "author and editor" editor either.or.check
+ format.title "title" output.check
}
- { format.book.crossref output.nonnull }
if$
+ format.pub.address "publisher" output.check
format.edition output
format.bdate "year" output.check
- new.block
+ format.bvolume output
fin.entry
}
FUNCTION {booklet}
{ output.bibitem
- format.authors output new.item
+ format.authors output
format.title "title" output.check
- howpublished address new.block.checkb
howpublished output
address output
format.date output
- new.block
fin.entry
}
FUNCTION {inbook}
{ output.bibitem
author empty$
- { format.editors "author and editor" output.check }
- { format.authors output.nonnull }
- if$
- format.in.booktitle.ed "title" output.check
- crossref missing$
- { format.pub.address "publisher" output.check
- format.bdate "year" output.check
- new.block
- format.bvolume output
- format.chapter.pages "chapter and pages" output.check
- new.block
- format.number.series output
+ { format.title "title" output.check
+ editor empty$
+ { "Need at least an author or an editor for " cite$ * warning$ }
+ { "" format.editors * "editor" output.check }
+ if$
}
- { format.chapter.pages "chapter and pages" output.check
- new.block
- format.book.crossref output.nonnull
+ { format.authors output.nonnull
+ format.in.title.ed "title" output.check
}
if$
+ format.pub.address "publisher" output.check
format.edition output
- new.block
+ format.bdate "year" output.check
+ format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
fin.entry
}
FUNCTION {incollection}
{ output.bibitem
- format.authors "" output
- format.title.incoll output
- crossref missing$
- { format.in.booktitle.ed "booktitle" output.check
- format.number.series output
- new.block
- format.pub.address "publisher" output.check
- format.edition output
- format.bdate "year" output.check
- new.block
- format.bvolume output
- format.chapter.pages output
+ author empty$
+ { format.booktitle "booktitle" output.check
+ editor empty$
+ { "Need at least an author or an editor for " cite$ * warning$ }
+ { "" format.editors * "editor" output.check }
+ if$
}
- { format.incoll.inproc.crossref output.nonnull
- format.chapter.pages output
+ { format.authors output.nonnull
+ format.in.booktitle.ed "booktitle" output.check
}
if$
- new.block
+ format.pub.address "publisher" output.check
+ format.edition output
+ format.bdate "year" output.check
+ format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
fin.entry
}
-FUNCTION {inproceedings}
+FUNCTION {inpress}
{ output.bibitem
- format.authors "author" output.check new.item
- crossref missing$
- { format.btitle "title" output.check
- format.number.series output
- format.in.ed.booktitle "booktitle" output.check
- format.bvolume output
- format.pages output
- address empty$
- { organization publisher new.sentence.checkb
- organization output
- publisher output
- format.bdate "year" output.check
- }
- { address output.nonnull
- format.bdate "year" output.check
- new.sentence
- organization output
- publisher output
- }
- if$
- }
- { format.incoll.inproc.crossref output.nonnull
- format.pages output
- }
- if$
- new.block
+ format.authors "author" output.check
+ journal emphasize "journal" output.check
+ bbl.inpress output
fin.entry
}
-FUNCTION {conference} { inproceedings }
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ booktitle "booktitle" output.check
+ address output
+ format.date "year" output.check
+ fin.entry
+}
FUNCTION {manual}
{ output.bibitem
author empty$
{ organization empty$
- 'skip$
- { organization output.nonnull
- address output
- }
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
if$
}
- {format.authors output.nonnull}
+ { format.authors output.nonnull }
if$
- format.btitle "title" output.check
+ format.title "title" output.check
author empty$
{ organization empty$
- { address output
- }
- 'skip$
- if$
+ { address output }
+ 'skip$
+ if$
}
{ organization output
address output
@@ -1139,87 +817,95 @@ FUNCTION {manual}
if$
format.edition output
format.date output
- new.block
fin.entry
}
-
FUNCTION {mastersthesis}
{ output.bibitem
format.authors "author" output.check
- "M.Sc.~thesis" emphasize format.thesis.type output.nonnull
+ bbl.msc emphasize format.thesis.type output.nonnull
school "school" output.check
address output
format.date "year" output.check
- new.block
fin.entry
}
FUNCTION {misc}
{ output.bibitem
format.authors output
- format.title emphasize output
+ format.title output
howpublished output
format.bdate output
- new.block
+ note output
fin.entry
empty.misc.check
}
+FUNCTION {patent}
+{ output.bibitem
+ organization empty$
+ { format.authors "author and organization" output.check }
+ { author empty$
+ { organization }
+ { format.authors organization paren space.connect }
+ if$
+ "author and organization" output.check
+ }
+ if$
+ journal emphasize "journal" output.check
+ format.pages.patent "pages" output.check
+ format.date "year" output.check
+ fin.entry
+}
+
FUNCTION {phdthesis}
{ output.bibitem
format.authors "author" output.check
- "Ph.D.~thesis" emphasize format.thesis.type output.nonnull
+ bbl.phd emphasize format.thesis.type output.nonnull
school "school" output.check
address output
format.date "year" output.check
- new.block
fin.entry
}
FUNCTION {proceedings}
{ output.bibitem
- editor empty$
- { organization output }
- { format.editors output.nonnull new.item }
- if$
- new.block
- format.btitle "title" output.check
- format.bvolume output
- format.number.series output
- address empty$
- { editor empty$
- { publisher new.sentence.checka }
- { organization publisher new.sentence.checkb
- organization output
- }
- if$
- publisher output
- format.date "year" output.check
- }
- { address output.nonnull
- format.date "year" output.check
- new.sentence
- editor empty$
- 'skip$
- { organization output }
- if$
- publisher output
- }
- if$
- new.block
+ format.title.noemph "title" output.check
+ address output
+ format.date "year" output.check
+ 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 new.item
- format.title "title" output.check new.item
- format.tr.number output.nonnull
- institution "institution" output.check
- address output
+ format.authors "author" output.check
+ format.title "title" output.check
+ institution
+ type empty$
+ 'bbl.techreport
+ 'type
+ if$
+ space.connect
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+ output.nonnull
+ format.pub.address output
format.date "year" output.check
- new.block
fin.entry
}
@@ -1227,45 +913,23 @@ FUNCTION {unpublished}
{ output.bibitem
format.authors "author" output.check
journal empty$
- {}
+ 'skip$
{ journal emphasize "journal" output.check }
if$
doi empty$
{ note output }
- { format.date "year" output.check
+ { format.date output
"DOI:" doi tie.or.space.connect output }
if$
fin.entry
+ empty.doi.note
}
-% The next three dunctions are taken from
-% achemso to provide compatiblity. They have
-% been modified to conform to the approach taken by
-% the rest of this style.
-
-FUNCTION { submitted }
-{ output.bibitem
- format.authors "author" output.check
- "submitted for publication in"
- journal emphasize space.connect "journal" output.check
- fin.entry
-}
+FUNCTION {conference} {inproceedings}
-FUNCTION { inpress }
-{ output.bibitem
- format.authors "author" output.check
- journal emphasize "journal" output.check
- "in press" output
- fin.entry
-}
-
-FUNCTION { remark }
-{ output.bibitem
- note "note" output.check
- fin.entry
-}
+FUNCTION {other} {patent}
-FUNCTION {default.type} { misc }
+FUNCTION {default.type} {misc}
MACRO {jan} {"January"}
MACRO {feb} {"February"}
@@ -1327,3 +991,6 @@ FUNCTION {end.bib}
}
EXECUTE {end.bib}
+\endinput
+%%
+%% End of file `rsc.bst'.