From ae9b91f93a72faaf468c54d28dc3e09fccd562d9 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 3 Jan 2007 01:19:34 +0000 Subject: rsc update (1jan07) git-svn-id: svn://tug.org/texlive/trunk@3106 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/bibtex/bst/rsc/rsc.bst | 295 ++++++++++++++----------------- 1 file changed, 130 insertions(+), 165 deletions(-) (limited to 'Master/texmf-dist/bibtex/bst/rsc/rsc.bst') diff --git a/Master/texmf-dist/bibtex/bst/rsc/rsc.bst b/Master/texmf-dist/bibtex/bst/rsc/rsc.bst index 82b778ac3e9..012d9609d01 100644 --- a/Master/texmf-dist/bibtex/bst/rsc/rsc.bst +++ b/Master/texmf-dist/bibtex/bst/rsc/rsc.bst @@ -4,10 +4,10 @@ %% %% The original source files were: %% -%% rsc.dtx (with options: `bib') +%% rsc.dtx (with options: `bib,rsc') %% ---------------------------------------------------------------- %% The rsc package - BibTeX and macro support for Royal Society -%% of Chemistry style articles +%% of Chemistry and Wiley chemistry articles %% Maintained by Joseph A. Wright %% E-mail: joseph.wright@morningstar2.co.uk %% Released under the GNU General Public License @@ -51,34 +51,29 @@ FUNCTION {init.state.consts} } FUNCTION {add.comma} -{ duplicate$ - #-1 #1 substring$ "}" = - { #-2 #1024 substring$ ";} " * } - { ", " * } - if$ -} +{ ", " * } STRINGS { s t } FUNCTION {output.nonnull} { 's := output.state mid.sentence = - { ", " * write$ } + { add.comma write$ } { output.state after.block = - { add.comma write$ - newline$ - "\newblock " write$ - } - { output.state before.all = - 'write$ - { output.state after.item = - { " " * write$ } - { add.period$ " " * write$ } + { add.comma write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.item = + { " " * write$ } + { add.period$ " " * write$ } + if$ + } if$ } - if$ - } - if$ + if$ mid.sentence 'output.state := } if$ @@ -109,6 +104,7 @@ FUNCTION {output.bibitem} "" before.all 'output.state := } + FUNCTION {fin.entry} { add.period$ write$ @@ -160,15 +156,24 @@ FUNCTION {paren} if$ } +FUNCTION {bbl.and} +{ "and" } + FUNCTION {bbl.chapter} { "ch." } -FUNCTION {bbl.ed} -{ "ed. " } +FUNCTION {bbl.editor} +{ "ed." } FUNCTION {bbl.edition} { "edn." } +FUNCTION {bbl.etal} +{ "et~al." emphasize } + +FUNCTION {bbl.in} +{ "in" } + FUNCTION {bbl.inpress} { "in press" } @@ -191,7 +196,7 @@ FUNCTION {bbl.techreport} { "Technical Report" } FUNCTION {bbl.volume} -{ "vol."} +{ "vol." } FUNCTION {bbl.first} { "1st" } @@ -241,10 +246,20 @@ FUNCTION {eng.ord} if$ } -FUNCTION {is.num} -{ chr.to.int$ - duplicate$ "0" chr.to.int$ < not - swap$ "9" chr.to.int$ > not and +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 {extract.num} @@ -253,7 +268,7 @@ FUNCTION {extract.num} { t empty$ not } { t #1 #1 substring$ t #2 global.max$ substring$ 't := - duplicate$ is.num + duplicate$ is.a.number { s swap$ * 's := } { pop$ "" 't := } if$ @@ -268,8 +283,7 @@ FUNCTION {extract.num} FUNCTION {bibinfo.check} { swap$ duplicate$ missing$ - { - pop$ pop$ + { pop$ pop$ "" } { duplicate$ empty$ @@ -296,7 +310,7 @@ FUNCTION {convert.edition} { bbl.fourth 't := } { s "fifth" = s "5" = or { bbl.fifth 't := } - { s #1 #1 substring$ is.num + { s #1 #1 substring$ is.a.number { s eng.ord 't := } { edition 't := } if$ @@ -322,9 +336,7 @@ FUNCTION {tie.or.space.connect} } FUNCTION {space.connect} -{ " " - swap$ * * -} +{ " " swap$ * * } INTEGERS { nameptr namesleft numnames } @@ -334,26 +346,26 @@ FUNCTION {format.names} 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$ + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { add.comma t * } + { numnames #2 > + { "" * } + 'skip$ if$ - t "others" = - { " \emph{et~al.}" * } - { " and " * t * } + t "others" = + { bbl.etal space.connect } + { bbl.and space.connect t space.connect } if$ - } - if$ - } - 't + } + if$ + } + 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := - } + } while$ } @@ -369,28 +381,12 @@ FUNCTION {format.editors} { editor empty$ { "" } { #2 'author.or.editor := - bbl.ed * + bbl.editor " " * * 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 := "" @@ -398,7 +394,7 @@ FUNCTION {n.separate.multi} t text.length$ #4 > t is.a.number and { { t empty$ not } - { t #-1 #1 substring$ is.num + { t #-1 #1 substring$ is.a.number { numnames #1 + 'numnames := } { #0 'numnames := } if$ @@ -419,29 +415,30 @@ FUNCTION {n.separate.multi} if$ } -FUNCTION {format.title.noemph} -{ title empty$ +FUNCTION {format.bvolume} +{ volume empty$ { "" } - { title } + { bbl.volume volume tie.or.space.connect } if$ } -FUNCTION {format.title} -{ title empty$ +FUNCTION {format.title.noemph} +{ 't := + t empty$ { "" } - { title emphasize } + { t } if$ } -FUNCTION {format.booktitle} -{ booktitle title empty$ +FUNCTION {format.title} +{ 't := + t empty$ { "" } - { booktitle emphasize } + { t emphasize } if$ } -FUNCTION {n.dashify} -{ 't := +FUNCTION {n.dashify} { 't := "" { t empty$ not } { t #1 #1 substring$ "-" = @@ -468,7 +465,7 @@ FUNCTION {n.dashify} FUNCTION {format.date} { year empty$ { "" } - { year } + 'year if$ } @@ -486,33 +483,6 @@ FUNCTION {either.or.check} 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$ @@ -570,6 +540,7 @@ FUNCTION {format.pages.required} } if$ } + FUNCTION {format.pages.nopp} { pages empty$ { "" @@ -599,7 +570,7 @@ FUNCTION {format.vol.pages} { volume boldface field.or.null duplicate$ empty$ { pop$ format.pages.required } - { ", " * pages n.dashify * } + { add.comma pages n.dashify * } if$ } @@ -613,40 +584,21 @@ FUNCTION {format.chapter.pages} chapter tie.or.space.connect pages empty$ 'skip$ - { ", " * format.pages * } + { add.comma 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$ +FUNCTION {format.title.in} +{ 's := + s empty$ { "" } { editor empty$ - { " in " booktitle emphasize * } - { " in " booktitle emphasize * ", " * format.editors * } + { bbl.in s format.title space.connect } + { bbl.in s format.title space.connect + add.comma format.editors * + } if$ } if$ @@ -657,7 +609,7 @@ FUNCTION {format.pub.address} { "" } { address empty$ { publisher } - { publisher ", " * address *} + { publisher add.comma address *} if$ } if$ @@ -705,28 +657,32 @@ FUNCTION {article} FUNCTION {book} { output.bibitem author empty$ - { format.title "title" output.check + { title format.title "title" output.check editor empty$ - { "Need either an author or editor for " cite$ * warning$ } - { "" format.editors * "editor" output.check } - if$ + { "Need either an author or editor for " cite$ * warning$ } + { "" format.editors * "editor" output.check } + if$ } - { format.authors output.nonnull + { format.authors output "author and editor" editor either.or.check - format.title "title" output.check + title format.title "title" output.check } if$ format.pub.address "publisher" output.check format.edition output format.bdate "year" output.check format.bvolume output + pages empty$ + 'skip$ + { format.pages output } + if$ fin.entry } FUNCTION {booklet} { output.bibitem format.authors output - format.title "title" output.check + title format.title "title" output.check howpublished output address output format.date output @@ -736,14 +692,14 @@ FUNCTION {booklet} FUNCTION {inbook} { output.bibitem author empty$ - { format.title "title" output.check + { title 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 + { format.authors output + title format.title.in "title" output.check } if$ format.pub.address "publisher" output.check @@ -757,14 +713,14 @@ FUNCTION {inbook} FUNCTION {incollection} { output.bibitem author empty$ - { format.booktitle "booktitle" output.check + { booktitle format.title "booktitle" output.check editor empty$ - { "Need at least an author or an editor for " cite$ * warning$ } - { "" format.editors * "editor" output.check } - if$ + { "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 + { format.authors output + booktitle format.title.in "booktitle" output.check } if$ format.pub.address "publisher" output.check @@ -786,9 +742,13 @@ FUNCTION {inpress} FUNCTION {inproceedings} { output.bibitem format.authors "author" output.check - booktitle "booktitle" output.check + booktitle format.title.noemph "booktitle" output.check address output format.date "year" output.check + pages empty$ + 'skip$ + { format.pages output } + if$ fin.entry } @@ -797,14 +757,14 @@ FUNCTION {manual} author empty$ { organization empty$ 'skip$ - { organization output.nonnull + { organization output address output } if$ } - { format.authors output.nonnull } + { format.authors output } if$ - format.title "title" output.check + title format.title "title" output.check author empty$ { organization empty$ { address output } @@ -823,7 +783,7 @@ FUNCTION {manual} FUNCTION {mastersthesis} { output.bibitem format.authors "author" output.check - bbl.msc emphasize format.thesis.type output.nonnull + bbl.msc emphasize format.thesis.type output school "school" output.check address output format.date "year" output.check @@ -833,9 +793,9 @@ FUNCTION {mastersthesis} FUNCTION {misc} { output.bibitem format.authors output - format.title output + title format.title output howpublished output - format.bdate output + year output note output fin.entry empty.misc.check @@ -861,7 +821,7 @@ FUNCTION {patent} FUNCTION {phdthesis} { output.bibitem format.authors "author" output.check - bbl.phd emphasize format.thesis.type output.nonnull + bbl.phd emphasize format.thesis.type output school "school" output.check address output format.date "year" output.check @@ -870,9 +830,13 @@ FUNCTION {phdthesis} FUNCTION {proceedings} { output.bibitem - format.title.noemph "title" output.check + title format.title.noemph "title" output.check address output format.date "year" output.check + pages empty$ + 'skip$ + { format.pages output } + if$ fin.entry } @@ -892,7 +856,7 @@ FUNCTION {submitted} FUNCTION {techreport} { output.bibitem format.authors "author" output.check - format.title "title" output.check + title format.title "title" output.check institution type empty$ 'bbl.techreport @@ -903,7 +867,7 @@ FUNCTION {techreport} { "t" change.case$ } { number tie.or.space.connect } if$ - output.nonnull + output format.pub.address output format.date "year" output.check fin.entry @@ -919,7 +883,8 @@ FUNCTION {unpublished} doi empty$ { note output } { format.date output - "DOI:" doi tie.or.space.connect output } + "DOI:" doi tie.or.space.connect output + } if$ fin.entry empty.doi.note @@ -991,6 +956,6 @@ FUNCTION {end.bib} } EXECUTE {end.bib} -\endinput +%% %% %% End of file `rsc.bst'. -- cgit v1.2.3