From 06ebf7d14fd3c483ed229b86d938732cf3f6a5d2 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 8 Sep 2008 00:26:52 +0000 Subject: rsc 3.0 (27aug08) git-svn-id: svn://tug.org/texlive/trunk@10467 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/bibtex/bst/rsc/angew-mc.bst | 1059 ------------------- Master/texmf-dist/bibtex/bst/rsc/angew.bst | 560 ++++++++-- Master/texmf-dist/bibtex/bst/rsc/angewM.bst | 1098 -------------------- Master/texmf-dist/bibtex/bst/rsc/angewnat.bst | 1264 ----------------------- Master/texmf-dist/bibtex/bst/rsc/angewnatM.bst | 1304 ------------------------ Master/texmf-dist/bibtex/bst/rsc/rsc-mc.bst | 979 ------------------ Master/texmf-dist/bibtex/bst/rsc/rsc.bst | 637 ++++++++++-- Master/texmf-dist/bibtex/bst/rsc/rscM.bst | 1018 ------------------ Master/texmf-dist/bibtex/bst/rsc/rscnat.bst | 1184 --------------------- Master/texmf-dist/bibtex/bst/rsc/rscnatM.bst | 1224 ---------------------- Master/texmf-dist/doc/latex/rsc/README | 31 +- Master/texmf-dist/doc/latex/rsc/rsc-manual.pdf | Bin 0 -> 123886 bytes Master/texmf-dist/doc/latex/rsc/rsc.bib | 48 + Master/texmf-dist/doc/latex/rsc/rsc.pdf | Bin 140018 -> 194307 bytes Master/texmf-dist/source/latex/rsc/rsc.dtx | 1248 +++++++++++++---------- Master/texmf-dist/source/latex/rsc/rsc.ins | 110 +- Master/texmf-dist/tex/latex/rsc/rsc.sty | 89 +- 17 files changed, 1921 insertions(+), 9932 deletions(-) delete mode 100644 Master/texmf-dist/bibtex/bst/rsc/angew-mc.bst delete mode 100644 Master/texmf-dist/bibtex/bst/rsc/angewM.bst delete mode 100644 Master/texmf-dist/bibtex/bst/rsc/angewnat.bst delete mode 100644 Master/texmf-dist/bibtex/bst/rsc/angewnatM.bst delete mode 100644 Master/texmf-dist/bibtex/bst/rsc/rsc-mc.bst delete mode 100644 Master/texmf-dist/bibtex/bst/rsc/rscM.bst delete mode 100644 Master/texmf-dist/bibtex/bst/rsc/rscnat.bst delete mode 100644 Master/texmf-dist/bibtex/bst/rsc/rscnatM.bst create mode 100644 Master/texmf-dist/doc/latex/rsc/rsc-manual.pdf create mode 100644 Master/texmf-dist/doc/latex/rsc/rsc.bib diff --git a/Master/texmf-dist/bibtex/bst/rsc/angew-mc.bst b/Master/texmf-dist/bibtex/bst/rsc/angew-mc.bst deleted file mode 100644 index b9a0619d3a0..00000000000 --- a/Master/texmf-dist/bibtex/bst/rsc/angew-mc.bst +++ /dev/null @@ -1,1059 +0,0 @@ -%% -%% This is file `angew-mc.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% rsc.dtx (with options: `bib,angew,mc') -%% ---------------------------------------------------------------- -%% The rsc package - BibTeX support for Royal Society of Chemistry -%% and Wiley style article -%% Maintained by Joseph Wright -%% E-mail: joseph.wright@morningstar2.co.uk -%% Released under the LaTeX Project Public License v1.3 or later -%% See http://www.latex-project.org/lppl.txt -%% ---------------------------------------------------------------- -%% -ENTRY - { address - author - booktitle - chapter - doi - edition - editor - howpublished - institution - journal - note - number - organization - pages - publisher - school - series - title - type - url - 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} -{ ", " * } - -STRINGS { s t } - -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { 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$ } - 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.and} -{ "and" } - -FUNCTION {bbl.chapter} -{ "Chapter" } - -FUNCTION {bbl.editor} -{ "Ed.:" } - -FUNCTION {bbl.editors} -{ "Eds.:" } - -FUNCTION {bbl.edition} -{ "ed." } - -FUNCTION {bbl.etal} -{ "et~al." emphasize } - -FUNCTION {bbl.in} -{ "in" } - -FUNCTION {bbl.inpress} -{ "in press" } - -FUNCTION {bbl.msc} -{ "MSc thesis" } - -FUNCTION {bbl.page} -{ "p." } - -FUNCTION {bbl.pages} -{ "pp." } - -FUNCTION {bbl.phd} -{ "PhD 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$ -} - -INTEGERS{ l } - -FUNCTION{string.length} -{ #1 'l := - { duplicate$ duplicate$ #1 l substring$ = not } - { l #1 + 'l := } - while$ - pop$ l -} - -STRINGS{replace find text} - -INTEGERS{find_length} - -FUNCTION{find.replace} -{ 'replace := - 'find := - 'text := - find string.length 'find_length := - "" - { text empty$ not } - { text #1 find_length substring$ find = - { replace * - text #1 find_length + global.max$ substring$ 'text := - } - { text #1 #1 substring$ * - text #2 global.max$ substring$ 'text := - } - if$ - } - while$ -} - -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} -{ 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$ -} - -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$ * * -} - -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 > - { add.comma t * } - { numnames #2 > - { "" * } - 'skip$ - if$ - t "others" = - { bbl.etal space.connect } - { add.comma 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 {strip.comma} -{ duplicate$ - string.length 'find_length := - duplicate$ - find_length #1 - #1 substring$ - "," = - { #1 find_length #2 - substring$ - " " * - } - 'skip$ - if$ -} - -FUNCTION {format.editors} -{ editor empty$ - { "" } - { #2 'author.or.editor := - strip.comma - editor num.names$ #1 > - { bbl.editors } - { bbl.editor } - if$ - " " * - editor format.names * paren - } - if$ -} - -FUNCTION {n.separate.multi} -{ '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$ -} - -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bbl.volume volume tie.or.space.connect } - if$ -} - -FUNCTION {format.title.noemph} -{ 't := - t empty$ - { "" } - { t } - if$ -} - -FUNCTION {format.title} -{ 't := - t empty$ - { "" } - { t emphasize } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { "\url{" url * "}" * } - if$ -} - -FUNCTION {format.title.vol} -{ 't := - t empty$ - { "" } - { t emphasize } - if$ - volume empty$ - 'skip$ - { format.bvolume emphasize - swap$ add.comma swap$ * - } - 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 boldface } - if$ -} - -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "Can't use both " swap$ * " fields in " * cite$ * warning$ } - 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 } - 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$ - { bbl.chapter } - { type "l" change.case$ } - if$ - chapter tie.or.space.connect - pages empty$ - 'skip$ - { add.comma format.pages * } - if$ - } - if$ -} - -FUNCTION {format.title.in} -{ 's := - after.item 'output.state := - s empty$ - { "" } - { editor empty$ - { bbl.in s format.title space.connect } - { bbl.in s format.title space.connect - add.comma format.editors * - } - if$ - } - if$ -} - -FUNCTION {format.title.vol.in} -{ 's := - after.item 'output.state := - s empty$ - { "" } - { editor empty$ - { bbl.in s format.title.vol space.connect } - { bbl.in s format.title.vol space.connect - add.comma format.editors * - } - if$ - } - if$ -} - -FUNCTION {format.pub.address} -{ publisher empty$ - { "" } - { address empty$ - { publisher } - { publisher add.comma address *} - if$ - } - if$ -} - -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - year empty$ note empty$ url empty$ - and 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 "," "" find.replace emphasize - "journal" output.check - after.item 'output.state := - format.date "year" output.check - volume empty$ - { "" - format.pages.nopp output - } - { format.vol.pages output } - if$ - fin.entry -} - -FUNCTION {book} -{ output.bibitem - author empty$ - { title format.title.vol "title" output.check - editor empty$ - { "Need either an author or editor for " cite$ * warning$ } - { "" format.editors * "editor" output.check } - if$ - } - { format.authors output - "author and editor" editor either.or.check - title format.title.vol "title" output.check - } - if$ - format.pub.address "publisher" output.check - format.edition output - format.bdate "year" output.check - pages empty$ - 'skip$ - { format.pages output } - if$ - fin.entry -} - -FUNCTION {booklet} -{ output.bibitem - format.authors output - title format.title "title" output.check - howpublished output - address output - format.date output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { title format.title.vol "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 - title format.title.vol.in "title" output.check - } - if$ - format.pub.address "publisher" output.check - format.edition output - format.bdate "year" output.check - format.chapter.pages "chapter and pages" output.check - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - author empty$ - { booktitle format.title.vol "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 - booktitle format.title.vol.in "booktitle" output.check - } - if$ - format.pub.address "publisher" output.check - format.edition output - format.bdate "year" output.check - 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 format.title "booktitle" output.check - address output - format.date "year" output.check - pages empty$ - 'skip$ - { format.pages output } - if$ - fin.entry -} - -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization empty$ - 'skip$ - { organization output - address output - } - if$ - } - { format.authors output } - if$ - title format.title.noemph "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 format.thesis.type output - school "school" output.check - address output - format.date "year" output.check - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - title empty$ - 'skip$ - { title format.title output } - if$ - howpublished output - format.date output - format.url 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 format.thesis.type output - school "school" output.check - address output - format.date "year" output.check - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - title format.title "title" output.check - address output - format.date "year" output.check - pages empty$ - 'skip$ - { format.pages output } - if$ - 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 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 - 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 } - { "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$ - "\providecommand{\url}[1]{\texttt{#1}}" - write$ newline$ - "\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} -%% -%% -%% End of file `angew-mc.bst'. diff --git a/Master/texmf-dist/bibtex/bst/rsc/angew.bst b/Master/texmf-dist/bibtex/bst/rsc/angew.bst index bb6521b1d52..9859c2fad86 100644 --- a/Master/texmf-dist/bibtex/bst/rsc/angew.bst +++ b/Master/texmf-dist/bibtex/bst/rsc/angew.bst @@ -6,11 +6,11 @@ %% %% rsc.dtx (with options: `bib,angew') %% ---------------------------------------------------------------- -%% The rsc package - BibTeX support for Royal Society of Chemistry -%% and Wiley style article +%% The rsc package --- BibTeX styles for Royal Society of Chemistry +%% and Wiley journals %% Maintained by Joseph Wright %% E-mail: joseph.wright@morningstar2.co.uk -%% Released under the LaTeX Project Public License v1.3 or later +%% Released under the LaTeX Project Public License v1.3c or later %% See http://www.latex-project.org/lppl.txt %% ---------------------------------------------------------------- %% @@ -19,12 +19,16 @@ ENTRY author booktitle chapter + ctrl-use-title + ctrl-etal-number + ctrl-use-doi-all doi edition editor howpublished institution journal + key note number organization @@ -39,10 +43,14 @@ ENTRY year } {} - { label } + { label + extra.label + short.list + } -INTEGERS { output.state before.all mid.sentence after.sentence } -INTEGERS { after.block after.item author.or.editor } +INTEGERS { output.state before.all mid.sentence } +INTEGERS { after.sentence after.block after.item } +INTEGERS { author.or.editor } FUNCTION {init.state.consts} { #0 'before.all := @@ -52,6 +60,14 @@ FUNCTION {init.state.consts} #4 'after.item := } +INTEGERS { is.use.title etal.number use.doi.all } + +FUNCTION {default.is.use.title} { #0 } + +FUNCTION {default.etal.number} { #0 } + +FUNCTION {default.use.doi.all} { #0 } + FUNCTION {add.comma} { ", " * } @@ -97,23 +113,41 @@ FUNCTION {output.check} if$ } -FUNCTION {output.bibitem} -{ newline$ - "\bibitem{" write$ - cite$ write$ - "}" write$ - newline$ - "" - before.all 'output.state := +INTEGERS { would.add.period.textlen } + +FUNCTION {would.add.period} +{ duplicate$ + add.period$ + text.length$ + 'would.add.period.textlen := + duplicate$ + text.length$ + would.add.period.textlen = + { #0 } + { #1 } + if$ } FUNCTION {fin.entry} -{ add.period$ +{ would.add.period + { "\relax" * write$ newline$ + "\mciteBstWouldAddEndPuncttrue" write$ newline$ + "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}" + write$ newline$ + "{\mcitedefaultendpunct}{\mcitedefaultseppunct}\relax" + } + { "\relax" * write$ newline$ + "\mciteBstWouldAddEndPunctfalse" write$ newline$ + "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}" + write$ newline$ + "{}{\mcitedefaultseppunct}\relax" + } + if$ write$ newline$ + "\EndOfBibitem" write$ } - FUNCTION {not} { { #0 } { #1 } @@ -166,6 +200,9 @@ FUNCTION {bbl.and} FUNCTION {bbl.chapter} { "Chapter" } +FUNCTION {bbl.doi} +{ "DOI" } + FUNCTION {bbl.editor} { "Ed.:" } @@ -286,6 +323,19 @@ FUNCTION{find.replace} while$ } +FUNCTION {chr.to.value} +{ chr.to.int$ #48 - + duplicate$ duplicate$ + #0 < swap$ #9 > or + { #48 + int.to.chr$ + " is not a number..." * + warning$ + pop$ #0 + } + {} + if$ +} + FUNCTION{is.a.digit} { duplicate$ "" = {pop$ #0} @@ -385,28 +435,35 @@ FUNCTION {format.names} #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { add.comma t * } - { numnames #2 > - { "" * } - 'skip$ - if$ - t "others" = - { bbl.etal space.connect } + numnames etal.number > etal.number #0 > and + { s #1 "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + t bbl.etal space.connect + } + { + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > { add.comma t * } + { numnames #2 > + { "" * } + 'skip$ + if$ + t "others" = + { bbl.etal space.connect } + { add.comma t * } + if$ + } if$ } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } + if$ } FUNCTION {format.authors} @@ -437,7 +494,7 @@ FUNCTION {format.editors} strip.comma editor num.names$ #1 > { bbl.editors } - { bbl.editor } + { bbl.editor } if$ " " * editor format.names * paren @@ -445,6 +502,17 @@ FUNCTION {format.editors} if$ } +FUNCTION {format.doi} +{ use.doi.all + { doi empty$ + { bbl.doi doi tie.or.space.connect output } + 'skip$ + if$ + } + 'skip$ + if$ +} + FUNCTION {n.separate.multi} { 't := "" @@ -517,6 +585,91 @@ FUNCTION {format.title.vol} if$ } +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { bbl.etal * } + { bbl.and space.connect t space.connect } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.full} +{ author empty$ + { editor empty$ + { "" } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.full} +{ author empty$ + { "" } + { author format.full.names } + if$ +} + +FUNCTION {editor.full} +{ editor empty$ + { "" } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.full + { type$ "proceedings" = + 'editor.full + 'author.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} { newline$ + "\bibitem[" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + FUNCTION {n.dashify} { 't := "" { t empty$ not } @@ -558,7 +711,8 @@ FUNCTION {format.bdate} 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$ } @@ -737,16 +891,20 @@ FUNCTION {format.thesis.type} FUNCTION {article} { output.bibitem format.authors "author" output.check + is.use.title + { title format.title.noemph "title" output.check } + 'skip$ + if$ + journal "," "" find.replace emphasize "journal" output.check after.item 'output.state := format.date "year" output.check volume empty$ - { "" - format.pages.nopp output - } - { format.vol.pages output } + { "" format.pages.nopp output } + { format.vol.pages output } if$ + format.doi fin.entry } @@ -755,7 +913,8 @@ FUNCTION {book} author empty$ { title format.title.vol "title" output.check editor empty$ - { "Need either an author or editor for " cite$ * warning$ } + { "Need either an author or editor for " + cite$ * warning$ } { "" format.editors * "editor" output.check } if$ } @@ -771,6 +930,7 @@ FUNCTION {book} 'skip$ { format.pages output } if$ + format.doi fin.entry } @@ -781,6 +941,7 @@ FUNCTION {booklet} howpublished output address output format.date output + format.doi fin.entry } @@ -789,7 +950,8 @@ FUNCTION {inbook} author empty$ { title format.title.vol "title" output.check editor empty$ - { "Need at least an author or an editor for " cite$ * warning$ } + { "Need at least an author or an editor for " + cite$ * warning$ } { "" format.editors * "editor" output.check } if$ } @@ -801,26 +963,33 @@ FUNCTION {inbook} format.edition output format.bdate "year" output.check format.chapter.pages "chapter and pages" output.check + format.doi fin.entry } FUNCTION {incollection} { output.bibitem author empty$ - { booktitle format.title.vol "booktitle" output.check + { booktitle + format.title.vol + "booktitle" output.check editor empty$ - { "Need at least an author or an editor for " cite$ * warning$ } + { "Need at least an author or an editor for " + cite$ * warning$ } { "" format.editors * "editor" output.check } if$ } { format.authors output - booktitle format.title.vol.in "booktitle" output.check + booktitle + format.title.vol + "booktitle" output.check } if$ format.pub.address "publisher" output.check format.edition output format.bdate "year" output.check format.chapter.pages "chapter and pages" output.check + format.doi fin.entry } @@ -829,6 +998,7 @@ FUNCTION {inpress} format.authors "author" output.check journal emphasize "journal" output.check bbl.inpress output + format.doi fin.entry } @@ -842,6 +1012,7 @@ FUNCTION {inproceedings} 'skip$ { format.pages output } if$ + format.doi fin.entry } @@ -870,6 +1041,7 @@ FUNCTION {manual} if$ format.edition output format.date output + format.doi fin.entry } @@ -880,6 +1052,7 @@ FUNCTION {mastersthesis} school "school" output.check address output format.date "year" output.check + format.doi fin.entry } @@ -894,6 +1067,7 @@ FUNCTION {misc} format.date output format.url output note output + format.doi fin.entry empty.misc.check } @@ -912,6 +1086,7 @@ FUNCTION {patent} journal emphasize "journal" output.check format.pages.patent "pages" output.check format.date "year" output.check + format.doi fin.entry } @@ -922,6 +1097,7 @@ FUNCTION {phdthesis} school "school" output.check address output format.date "year" output.check + format.doi fin.entry } @@ -934,19 +1110,7 @@ FUNCTION {proceedings} 'skip$ { format.pages output } if$ - fin.entry -} - -FUNCTION {remark} -{ output.bibitem - note "note" output.check - fin.entry -} - -FUNCTION {submitted} -{ output.bibitem - format.authors "author" output.check - bbl.submitted output + format.doi fin.entry } @@ -967,6 +1131,7 @@ FUNCTION {techreport} output format.pub.address output format.date "year" output.check + format.doi fin.entry } @@ -979,12 +1144,98 @@ FUNCTION {unpublished} if$ doi empty$ { note output } - { "DOI" doi tie.or.space.connect output } + { + bbl.doi doi tie.or.space.connect output + } if$ fin.entry empty.doi.note } +INTEGERS { a b } + +FUNCTION {mult} +{ 'a := + 'b := + b #0 < + {#-1 #0 b - 'b :=} + {#1} + if$ + #0 + {b #0 >} + { a + + b #1 - 'b := + } + while$ + swap$ + 'skip$ + {#0 swap$ -} + if$ +} + +FUNCTION {str.to.int.aux} +{ {duplicate$ empty$ not} + { swap$ #10 mult 'a := + duplicate$ #1 #1 substring$ + chr.to.value a + + swap$ + #2 global.max$ substring$ + } + while$ + pop$ +} + +FUNCTION {str.to.int} +{ duplicate$ #1 #1 substring$ "-" = + {#1 swap$ #2 global.max$ substring$} + {#0 swap$} + if$ + #0 swap$ str.to.int.aux + swap$ + {#0 swap$ -} + {} + if$ +} + +FUNCTION {yes.no.to.int} +{ "l" change.case$ duplicate$ + "yes" = + { pop$ #1 } + { duplicate$ "no" = + { pop$ #0 } + { "unknown Boolean " quote$ * swap$ * quote$ * + " in " * cite$ * warning$ + #0 + } + if$ + } + if$ +} + +FUNCTION {Control} +{ ctrl-use-title + empty$ + { skip$ } + { ctrl-use-title + yes.no.to.int + 'is.use.title := } + if$ + ctrl-etal-number + empty$ + { skip$ } + { ctrl-etal-number + str.to.int + 'etal.number := } + if$ + ctrl-use-doi-all + empty$ + { skip$ } + { ctrl-use-doi-all + yes.no.to.int + 'use.doi.all := } + if$ +} + FUNCTION {conference} {inproceedings} FUNCTION {other} {patent} @@ -1006,39 +1257,197 @@ MACRO {dec} {"December"} READ -STRINGS { longest.label } +FUNCTION {initialize.controls} +{ default.is.use.title 'is.use.title := + default.etal.number 'etal.number := + default.use.doi.all 'use.doi.all := +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ bbl.etal space.connect } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { bbl.etal space.connect } + { bbl.and space.connect s #2 "{vv~}{ll}" + format.name$ space.connect } + if$ + } + if$ + } + if$ +} -INTEGERS { number.label longest.label.width } +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 + text.prefix$ } + if$ + } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 + text.prefix$ } + if$ + } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +ITERATE {calc.label} + +STRINGS { longest.label last.label next.extra } + +INTEGERS { longest.label.width last.extra.num number.label } FUNCTION {initialize.longest.label} { "" 'longest.label := - #1 'number.label := + #0 int.to.chr$ 'last.label := + "" 'next.extra := #0 'longest.label.width := + #0 'last.extra.num := + #0 'number.label := } -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 := +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := } - 'skip$ if$ + number.label #1 + 'number.label := } EXECUTE {initialize.longest.label} -ITERATE {longest.label.pass} +ITERATE {forward.pass} FUNCTION {begin.bib} { preamble$ empty$ 'skip$ { preamble$ write$ newline$ } if$ - "\providecommand{\url}[1]{\texttt{#1}}" + "\ifx\mcitethebibliography\mciteundefinedmacro" + write$ newline$ + " \PackageError" + "{angew.bst}" + "{mciteplus.sty has not been loaded}" * * + write$ newline$ + " {This bibstyle requires the use of the" + " mciteplus package.}" * + write$ newline$ + "\fi" + write$ newline$ + "\begin{mcitethebibliography}{" + number.label int.to.str$ * "}" * + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\mciteSetBstSublistMode{f}" + write$ newline$ + "\mciteSetBstMaxWidthForm{subitem}" + write$ newline$ + "{\alph{mcitesubitemcount})}" + write$ newline$ + "\mciteSetBstSublistLabelBeginEnd" + write$ newline$ + "{\mcitemaxwidthsubitemform\space}" + write$ newline$ + "{\relax}{\relax}" write$ newline$ - "\begin{thebibliography}{" longest.label * "}" * write$ newline$ } EXECUTE {begin.bib} @@ -1049,10 +1458,7 @@ ITERATE {call.type$} FUNCTION {end.bib} { newline$ - "\end{thebibliography}" write$ newline$ + "\end{mcitethebibliography}" write$ newline$ } EXECUTE {end.bib} -%% -%% -%% End of file `angew.bst'. diff --git a/Master/texmf-dist/bibtex/bst/rsc/angewM.bst b/Master/texmf-dist/bibtex/bst/rsc/angewM.bst deleted file mode 100644 index f30f6348225..00000000000 --- a/Master/texmf-dist/bibtex/bst/rsc/angewM.bst +++ /dev/null @@ -1,1098 +0,0 @@ -%% -%% This is file `angewM.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% rsc.dtx (with options: `bib,angew,mcp') -%% ---------------------------------------------------------------- -%% The rsc package - BibTeX support for Royal Society of Chemistry -%% and Wiley style article -%% Maintained by Joseph Wright -%% E-mail: joseph.wright@morningstar2.co.uk -%% Released under the LaTeX Project Public License v1.3 or later -%% See http://www.latex-project.org/lppl.txt -%% ---------------------------------------------------------------- -%% -ENTRY - { address - author - booktitle - chapter - doi - edition - editor - howpublished - institution - journal - note - number - organization - pages - publisher - school - series - title - type - url - 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} -{ ", " * } - -STRINGS { s t } - -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { 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$ } - 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 := -} - -INTEGERS {would.add.period.textlen} -FUNCTION {would.add.period} -{ duplicate$ - add.period$ - text.length$ - 'would.add.period.textlen := - duplicate$ - text.length$ - would.add.period.textlen = - { #0 } - { #1 } - if$ -} - -FUNCTION {fin.entry} -{ would.add.period - { "\relax" * write$ newline$ - "\mciteBstWouldAddEndPuncttrue" write$ newline$ - "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}" - write$ newline$ - "{\mcitedefaultendpunct}{\mcitedefaultseppunct}\relax" - } - { "\relax" * write$ newline$ - "\mciteBstWouldAddEndPunctfalse" write$ newline$ - "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}" - write$ newline$ - "{}{\mcitedefaultseppunct}\relax" - } - if$ - write$ - newline$ - "\EndOfBibitem" 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.and} -{ "and" } - -FUNCTION {bbl.chapter} -{ "Chapter" } - -FUNCTION {bbl.editor} -{ "Ed.:" } - -FUNCTION {bbl.editors} -{ "Eds.:" } - -FUNCTION {bbl.edition} -{ "ed." } - -FUNCTION {bbl.etal} -{ "et~al." emphasize } - -FUNCTION {bbl.in} -{ "in" } - -FUNCTION {bbl.inpress} -{ "in press" } - -FUNCTION {bbl.msc} -{ "MSc thesis" } - -FUNCTION {bbl.page} -{ "p." } - -FUNCTION {bbl.pages} -{ "pp." } - -FUNCTION {bbl.phd} -{ "PhD 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$ -} - -INTEGERS{ l } - -FUNCTION{string.length} -{ #1 'l := - { duplicate$ duplicate$ #1 l substring$ = not } - { l #1 + 'l := } - while$ - pop$ l -} - -STRINGS{replace find text} - -INTEGERS{find_length} - -FUNCTION{find.replace} -{ 'replace := - 'find := - 'text := - find string.length 'find_length := - "" - { text empty$ not } - { text #1 find_length substring$ find = - { replace * - text #1 find_length + global.max$ substring$ 'text := - } - { text #1 #1 substring$ * - text #2 global.max$ substring$ 'text := - } - if$ - } - while$ -} - -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} -{ 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$ -} - -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$ * * -} - -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 > - { add.comma t * } - { numnames #2 > - { "" * } - 'skip$ - if$ - t "others" = - { bbl.etal space.connect } - { add.comma 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 {strip.comma} -{ duplicate$ - string.length 'find_length := - duplicate$ - find_length #1 - #1 substring$ - "," = - { #1 find_length #2 - substring$ - " " * - } - 'skip$ - if$ -} - -FUNCTION {format.editors} -{ editor empty$ - { "" } - { #2 'author.or.editor := - strip.comma - editor num.names$ #1 > - { bbl.editors } - { bbl.editor } - if$ - " " * - editor format.names * paren - } - if$ -} - -FUNCTION {n.separate.multi} -{ '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$ -} - -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bbl.volume volume tie.or.space.connect } - if$ -} - -FUNCTION {format.title.noemph} -{ 't := - t empty$ - { "" } - { t } - if$ -} - -FUNCTION {format.title} -{ 't := - t empty$ - { "" } - { t emphasize } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { "\url{" url * "}" * } - if$ -} - -FUNCTION {format.title.vol} -{ 't := - t empty$ - { "" } - { t emphasize } - if$ - volume empty$ - 'skip$ - { format.bvolume emphasize - swap$ add.comma swap$ * - } - 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 boldface } - if$ -} - -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "Can't use both " swap$ * " fields in " * cite$ * warning$ } - 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 } - 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$ - { bbl.chapter } - { type "l" change.case$ } - if$ - chapter tie.or.space.connect - pages empty$ - 'skip$ - { add.comma format.pages * } - if$ - } - if$ -} - -FUNCTION {format.title.in} -{ 's := - after.item 'output.state := - s empty$ - { "" } - { editor empty$ - { bbl.in s format.title space.connect } - { bbl.in s format.title space.connect - add.comma format.editors * - } - if$ - } - if$ -} - -FUNCTION {format.title.vol.in} -{ 's := - after.item 'output.state := - s empty$ - { "" } - { editor empty$ - { bbl.in s format.title.vol space.connect } - { bbl.in s format.title.vol space.connect - add.comma format.editors * - } - if$ - } - if$ -} - -FUNCTION {format.pub.address} -{ publisher empty$ - { "" } - { address empty$ - { publisher } - { publisher add.comma address *} - if$ - } - if$ -} - -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - year empty$ note empty$ url empty$ - and 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 "," "" find.replace emphasize - "journal" output.check - after.item 'output.state := - format.date "year" output.check - volume empty$ - { "" - format.pages.nopp output - } - { format.vol.pages output } - if$ - fin.entry -} - -FUNCTION {book} -{ output.bibitem - author empty$ - { title format.title.vol "title" output.check - editor empty$ - { "Need either an author or editor for " cite$ * warning$ } - { "" format.editors * "editor" output.check } - if$ - } - { format.authors output - "author and editor" editor either.or.check - title format.title.vol "title" output.check - } - if$ - format.pub.address "publisher" output.check - format.edition output - format.bdate "year" output.check - pages empty$ - 'skip$ - { format.pages output } - if$ - fin.entry -} - -FUNCTION {booklet} -{ output.bibitem - format.authors output - title format.title "title" output.check - howpublished output - address output - format.date output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { title format.title.vol "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 - title format.title.vol.in "title" output.check - } - if$ - format.pub.address "publisher" output.check - format.edition output - format.bdate "year" output.check - format.chapter.pages "chapter and pages" output.check - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - author empty$ - { booktitle format.title.vol "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 - booktitle format.title.vol.in "booktitle" output.check - } - if$ - format.pub.address "publisher" output.check - format.edition output - format.bdate "year" output.check - 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 format.title "booktitle" output.check - address output - format.date "year" output.check - pages empty$ - 'skip$ - { format.pages output } - if$ - fin.entry -} - -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization empty$ - 'skip$ - { organization output - address output - } - if$ - } - { format.authors output } - if$ - title format.title.noemph "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 format.thesis.type output - school "school" output.check - address output - format.date "year" output.check - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - title empty$ - 'skip$ - { title format.title output } - if$ - howpublished output - format.date output - format.url 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 format.thesis.type output - school "school" output.check - address output - format.date "year" output.check - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - title format.title "title" output.check - address output - format.date "year" output.check - pages empty$ - 'skip$ - { format.pages output } - if$ - 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 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 - 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 } - { "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$ - "\ifx\mcitethebibliography\mciteundefinedmacro" - write$ newline$ - "\PackageError{angewM.bst}{mciteplus.sty has not been loaded}" - write$ newline$ - "{This bibstyle requires the use of the mciteplus package.}\fi" - write$ newline$ - "\begin{mcitethebibliography}{" longest.label * "}" * write$ newline$ - "\mciteSetBstSublistMode{f}" - write$ newline$ - "\mciteSetBstMaxWidthForm{subitem}{\alph{mcitesubitemcount})}" - write$ newline$ - "\mciteSetBstSublistLabelBeginEnd{\mcitemaxwidthsubitemform\space}" - write$ newline$ - "{\relax}{\relax}" - write$ newline$ -} - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -FUNCTION {end.bib} -{ newline$ - "\end{mcitethebibliography}" write$ newline$ -} - -EXECUTE {end.bib} -%% -%% -%% End of file `angewM.bst'. diff --git a/Master/texmf-dist/bibtex/bst/rsc/angewnat.bst b/Master/texmf-dist/bibtex/bst/rsc/angewnat.bst deleted file mode 100644 index a089a1ab60b..00000000000 --- a/Master/texmf-dist/bibtex/bst/rsc/angewnat.bst +++ /dev/null @@ -1,1264 +0,0 @@ -%% -%% This is file `angewnat.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% rsc.dtx (with options: `bib,angew,nat') -%% ---------------------------------------------------------------- -%% The rsc package - BibTeX support for Royal Society of Chemistry -%% and Wiley style article -%% Maintained by Joseph Wright -%% E-mail: joseph.wright@morningstar2.co.uk -%% Released under the LaTeX Project Public License v1.3 or later -%% See http://www.latex-project.org/lppl.txt -%% ---------------------------------------------------------------- -%% -ENTRY - { address - author - booktitle - chapter - doi - edition - editor - howpublished - institution - journal - key - note - number - organization - pages - publisher - school - series - title - type - url - volume - year - } - {} - { label - extra.label - short.list - } - -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} -{ ", " * } - -STRINGS { s t } - -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { 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$ } - 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 {fin.entry} -{ add.period$ - write$ - newline$ -} - - -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.and} -{ "and" } - -FUNCTION {bbl.chapter} -{ "Chapter" } - -FUNCTION {bbl.editor} -{ "Ed.:" } - -FUNCTION {bbl.editors} -{ "Eds.:" } - -FUNCTION {bbl.edition} -{ "ed." } - -FUNCTION {bbl.etal} -{ "et~al." emphasize } - -FUNCTION {bbl.in} -{ "in" } - -FUNCTION {bbl.inpress} -{ "in press" } - -FUNCTION {bbl.msc} -{ "MSc thesis" } - -FUNCTION {bbl.page} -{ "p." } - -FUNCTION {bbl.pages} -{ "pp." } - -FUNCTION {bbl.phd} -{ "PhD 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$ -} - -INTEGERS{ l } - -FUNCTION{string.length} -{ #1 'l := - { duplicate$ duplicate$ #1 l substring$ = not } - { l #1 + 'l := } - while$ - pop$ l -} - -STRINGS{replace find text} - -INTEGERS{find_length} - -FUNCTION{find.replace} -{ 'replace := - 'find := - 'text := - find string.length 'find_length := - "" - { text empty$ not } - { text #1 find_length substring$ find = - { replace * - text #1 find_length + global.max$ substring$ 'text := - } - { text #1 #1 substring$ * - text #2 global.max$ substring$ 'text := - } - if$ - } - while$ -} - -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} -{ 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$ -} - -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$ * * -} - -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 > - { add.comma t * } - { numnames #2 > - { "" * } - 'skip$ - if$ - t "others" = - { bbl.etal space.connect } - { add.comma 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 {strip.comma} -{ duplicate$ - string.length 'find_length := - duplicate$ - find_length #1 - #1 substring$ - "," = - { #1 find_length #2 - substring$ - " " * - } - 'skip$ - if$ -} - -FUNCTION {format.editors} -{ editor empty$ - { "" } - { #2 'author.or.editor := - strip.comma - editor num.names$ #1 > - { bbl.editors } - { bbl.editor } - if$ - " " * - editor format.names * paren - } - if$ -} - -FUNCTION {n.separate.multi} -{ '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$ -} - -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bbl.volume volume tie.or.space.connect } - if$ -} - -FUNCTION {format.title.noemph} -{ 't := - t empty$ - { "" } - { t } - if$ -} - -FUNCTION {format.title} -{ 't := - t empty$ - { "" } - { t emphasize } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { "\url{" url * "}" * } - if$ -} - -FUNCTION {format.title.vol} -{ 't := - t empty$ - { "" } - { t emphasize } - if$ - volume empty$ - 'skip$ - { format.bvolume emphasize - swap$ add.comma swap$ * - } - if$ - } - -FUNCTION {format.full.names} -{'s := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{vv~}{ll}" format.name$ 't := - nameptr #1 > - { - namesleft #1 > - { ", " * t * } - { - numnames #2 > - { "," * } - 'skip$ - if$ - t "others" = - { bbl.etal * } - { bbl.and space.connect t space.connect } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {author.editor.full} -{ author empty$ - { editor empty$ - { "" } - { editor format.full.names } - if$ - } - { author format.full.names } - if$ -} - -FUNCTION {author.full} -{ author empty$ - { "" } - { author format.full.names } - if$ -} - -FUNCTION {editor.full} -{ editor empty$ - { "" } - { editor format.full.names } - if$ -} - -FUNCTION {make.full.names} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.full - { type$ "proceedings" = - 'editor.full - 'author.full - if$ - } - if$ -} - -FUNCTION {output.bibitem} { newline$ - "\bibitem[" write$ - label write$ - ")" make.full.names duplicate$ short.list = - { pop$ } - { * } - if$ - "]{" * write$ - cite$ write$ - "}" write$ - newline$ - "" - before.all 'output.state := -} - -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 boldface } - if$ -} - -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "Can't use both " swap$ * " fields in " * cite$ * warning$ } - 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 } - 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$ - { bbl.chapter } - { type "l" change.case$ } - if$ - chapter tie.or.space.connect - pages empty$ - 'skip$ - { add.comma format.pages * } - if$ - } - if$ -} - -FUNCTION {format.title.in} -{ 's := - after.item 'output.state := - s empty$ - { "" } - { editor empty$ - { bbl.in s format.title space.connect } - { bbl.in s format.title space.connect - add.comma format.editors * - } - if$ - } - if$ -} - -FUNCTION {format.title.vol.in} -{ 's := - after.item 'output.state := - s empty$ - { "" } - { editor empty$ - { bbl.in s format.title.vol space.connect } - { bbl.in s format.title.vol space.connect - add.comma format.editors * - } - if$ - } - if$ -} - -FUNCTION {format.pub.address} -{ publisher empty$ - { "" } - { address empty$ - { publisher } - { publisher add.comma address *} - if$ - } - if$ -} - -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - year empty$ note empty$ url empty$ - and 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 "," "" find.replace emphasize - "journal" output.check - after.item 'output.state := - format.date "year" output.check - volume empty$ - { "" - format.pages.nopp output - } - { format.vol.pages output } - if$ - fin.entry -} - -FUNCTION {book} -{ output.bibitem - author empty$ - { title format.title.vol "title" output.check - editor empty$ - { "Need either an author or editor for " cite$ * warning$ } - { "" format.editors * "editor" output.check } - if$ - } - { format.authors output - "author and editor" editor either.or.check - title format.title.vol "title" output.check - } - if$ - format.pub.address "publisher" output.check - format.edition output - format.bdate "year" output.check - pages empty$ - 'skip$ - { format.pages output } - if$ - fin.entry -} - -FUNCTION {booklet} -{ output.bibitem - format.authors output - title format.title "title" output.check - howpublished output - address output - format.date output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { title format.title.vol "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 - title format.title.vol.in "title" output.check - } - if$ - format.pub.address "publisher" output.check - format.edition output - format.bdate "year" output.check - format.chapter.pages "chapter and pages" output.check - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - author empty$ - { booktitle format.title.vol "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 - booktitle format.title.vol.in "booktitle" output.check - } - if$ - format.pub.address "publisher" output.check - format.edition output - format.bdate "year" output.check - 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 format.title "booktitle" output.check - address output - format.date "year" output.check - pages empty$ - 'skip$ - { format.pages output } - if$ - fin.entry -} - -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization empty$ - 'skip$ - { organization output - address output - } - if$ - } - { format.authors output } - if$ - title format.title.noemph "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 format.thesis.type output - school "school" output.check - address output - format.date "year" output.check - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - title empty$ - 'skip$ - { title format.title output } - if$ - howpublished output - format.date output - format.url 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 format.thesis.type output - school "school" output.check - address output - format.date "year" output.check - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - title format.title "title" output.check - address output - format.date "year" output.check - pages empty$ - 'skip$ - { format.pages output } - if$ - 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 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 - 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 } - { "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 - -INTEGERS { len } - -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -FUNCTION {format.lab.names} -{ 's := - s #1 "{vv~}{ll}" format.name$ - s num.names$ duplicate$ - #2 > - { pop$ bbl.etal space.connect } - { #2 < - 'skip$ - { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { bbl.etal space.connect } - { bbl.and space.connect s #2 "{vv~}{ll}" format.name$ space.connect } - if$ - } - if$ - } - if$ -} - -FUNCTION {author.key.label} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {author.editor.key.label} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { editor format.lab.names } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {author.key.organization.label} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - 'key - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {editor.key.organization.label} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - 'key - if$ - } - { editor format.lab.names } - if$ -} - -FUNCTION {calc.short.authors} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label - { type$ "proceedings" = - 'editor.key.organization.label - { type$ "manual" = - 'author.key.organization.label - 'author.key.label - if$ - } - if$ - } - if$ - 'short.list := -} - -FUNCTION {calc.label} -{ calc.short.authors - short.list - "(" - * - year duplicate$ empty$ - short.list key field.or.null = or - { pop$ "" } - 'skip$ - if$ - * - 'label := -} - -ITERATE {calc.label} - -STRINGS { longest.label last.label next.extra } - -INTEGERS { longest.label.width last.extra.num number.label } - -FUNCTION {initialize.longest.label} -{ "" 'longest.label := - #0 int.to.chr$ 'last.label := - "" 'next.extra := - #0 'longest.label.width := - #0 'last.extra.num := - #0 'number.label := -} - -FUNCTION {forward.pass} -{ last.label label = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - label 'last.label := - } - if$ - number.label #1 + 'number.label := -} - -EXECUTE {initialize.longest.label} - -ITERATE {forward.pass} - -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - "\providecommand{\url}[1]{\texttt{#1}}" - write$ newline$ - "\begin{thebibliography}{" number.label int.to.str$ * "}" * - write$ newline$ - "\providecommand{\natexlab}[1]{#1}" - write$ newline$ -} - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -FUNCTION {end.bib} -{ newline$ - "\end{thebibliography}" write$ newline$ -} - -EXECUTE {end.bib} -%% -%% -%% End of file `angewnat.bst'. diff --git a/Master/texmf-dist/bibtex/bst/rsc/angewnatM.bst b/Master/texmf-dist/bibtex/bst/rsc/angewnatM.bst deleted file mode 100644 index e7d26bd52dc..00000000000 --- a/Master/texmf-dist/bibtex/bst/rsc/angewnatM.bst +++ /dev/null @@ -1,1304 +0,0 @@ -%% -%% This is file `angewnatM.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% rsc.dtx (with options: `bib,angew,nat,mcp') -%% ---------------------------------------------------------------- -%% The rsc package - BibTeX support for Royal Society of Chemistry -%% and Wiley style article -%% Maintained by Joseph Wright -%% E-mail: joseph.wright@morningstar2.co.uk -%% Released under the LaTeX Project Public License v1.3 or later -%% See http://www.latex-project.org/lppl.txt -%% ---------------------------------------------------------------- -%% -ENTRY - { address - author - booktitle - chapter - doi - edition - editor - howpublished - institution - journal - key - note - number - organization - pages - publisher - school - series - title - type - url - volume - year - } - {} - { label - extra.label - short.list - } - -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} -{ ", " * } - -STRINGS { s t } - -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { 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$ } - 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$ -} - -INTEGERS {would.add.period.textlen} -FUNCTION {would.add.period} -{ duplicate$ - add.period$ - text.length$ - 'would.add.period.textlen := - duplicate$ - text.length$ - would.add.period.textlen = - { #0 } - { #1 } - if$ -} - -FUNCTION {fin.entry} -{ would.add.period - { "\relax" * write$ newline$ - "\mciteBstWouldAddEndPuncttrue" write$ newline$ - "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}" - write$ newline$ - "{\mcitedefaultendpunct}{\mcitedefaultseppunct}\relax" - } - { "\relax" * write$ newline$ - "\mciteBstWouldAddEndPunctfalse" write$ newline$ - "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}" - write$ newline$ - "{}{\mcitedefaultseppunct}\relax" - } - if$ - write$ - newline$ - "\EndOfBibitem" 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.and} -{ "and" } - -FUNCTION {bbl.chapter} -{ "Chapter" } - -FUNCTION {bbl.editor} -{ "Ed.:" } - -FUNCTION {bbl.editors} -{ "Eds.:" } - -FUNCTION {bbl.edition} -{ "ed." } - -FUNCTION {bbl.etal} -{ "et~al." emphasize } - -FUNCTION {bbl.in} -{ "in" } - -FUNCTION {bbl.inpress} -{ "in press" } - -FUNCTION {bbl.msc} -{ "MSc thesis" } - -FUNCTION {bbl.page} -{ "p." } - -FUNCTION {bbl.pages} -{ "pp." } - -FUNCTION {bbl.phd} -{ "PhD 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$ -} - -INTEGERS{ l } - -FUNCTION{string.length} -{ #1 'l := - { duplicate$ duplicate$ #1 l substring$ = not } - { l #1 + 'l := } - while$ - pop$ l -} - -STRINGS{replace find text} - -INTEGERS{find_length} - -FUNCTION{find.replace} -{ 'replace := - 'find := - 'text := - find string.length 'find_length := - "" - { text empty$ not } - { text #1 find_length substring$ find = - { replace * - text #1 find_length + global.max$ substring$ 'text := - } - { text #1 #1 substring$ * - text #2 global.max$ substring$ 'text := - } - if$ - } - while$ -} - -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} -{ 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$ -} - -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$ * * -} - -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 > - { add.comma t * } - { numnames #2 > - { "" * } - 'skip$ - if$ - t "others" = - { bbl.etal space.connect } - { add.comma 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 {strip.comma} -{ duplicate$ - string.length 'find_length := - duplicate$ - find_length #1 - #1 substring$ - "," = - { #1 find_length #2 - substring$ - " " * - } - 'skip$ - if$ -} - -FUNCTION {format.editors} -{ editor empty$ - { "" } - { #2 'author.or.editor := - strip.comma - editor num.names$ #1 > - { bbl.editors } - { bbl.editor } - if$ - " " * - editor format.names * paren - } - if$ -} - -FUNCTION {n.separate.multi} -{ '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$ -} - -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bbl.volume volume tie.or.space.connect } - if$ -} - -FUNCTION {format.title.noemph} -{ 't := - t empty$ - { "" } - { t } - if$ -} - -FUNCTION {format.title} -{ 't := - t empty$ - { "" } - { t emphasize } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { "\url{" url * "}" * } - if$ -} - -FUNCTION {format.title.vol} -{ 't := - t empty$ - { "" } - { t emphasize } - if$ - volume empty$ - 'skip$ - { format.bvolume emphasize - swap$ add.comma swap$ * - } - if$ - } - -FUNCTION {format.full.names} -{'s := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{vv~}{ll}" format.name$ 't := - nameptr #1 > - { - namesleft #1 > - { ", " * t * } - { - numnames #2 > - { "," * } - 'skip$ - if$ - t "others" = - { bbl.etal * } - { bbl.and space.connect t space.connect } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {author.editor.full} -{ author empty$ - { editor empty$ - { "" } - { editor format.full.names } - if$ - } - { author format.full.names } - if$ -} - -FUNCTION {author.full} -{ author empty$ - { "" } - { author format.full.names } - if$ -} - -FUNCTION {editor.full} -{ editor empty$ - { "" } - { editor format.full.names } - if$ -} - -FUNCTION {make.full.names} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.full - { type$ "proceedings" = - 'editor.full - 'author.full - if$ - } - if$ -} - -FUNCTION {output.bibitem} { newline$ - "\bibitem[" write$ - label write$ - ")" make.full.names duplicate$ short.list = - { pop$ } - { * } - if$ - "]{" * write$ - cite$ write$ - "}" write$ - newline$ - "" - before.all 'output.state := -} - -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 boldface } - if$ -} - -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "Can't use both " swap$ * " fields in " * cite$ * warning$ } - 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 } - 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$ - { bbl.chapter } - { type "l" change.case$ } - if$ - chapter tie.or.space.connect - pages empty$ - 'skip$ - { add.comma format.pages * } - if$ - } - if$ -} - -FUNCTION {format.title.in} -{ 's := - after.item 'output.state := - s empty$ - { "" } - { editor empty$ - { bbl.in s format.title space.connect } - { bbl.in s format.title space.connect - add.comma format.editors * - } - if$ - } - if$ -} - -FUNCTION {format.title.vol.in} -{ 's := - after.item 'output.state := - s empty$ - { "" } - { editor empty$ - { bbl.in s format.title.vol space.connect } - { bbl.in s format.title.vol space.connect - add.comma format.editors * - } - if$ - } - if$ -} - -FUNCTION {format.pub.address} -{ publisher empty$ - { "" } - { address empty$ - { publisher } - { publisher add.comma address *} - if$ - } - if$ -} - -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - year empty$ note empty$ url empty$ - and 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 "," "" find.replace emphasize - "journal" output.check - after.item 'output.state := - format.date "year" output.check - volume empty$ - { "" - format.pages.nopp output - } - { format.vol.pages output } - if$ - fin.entry -} - -FUNCTION {book} -{ output.bibitem - author empty$ - { title format.title.vol "title" output.check - editor empty$ - { "Need either an author or editor for " cite$ * warning$ } - { "" format.editors * "editor" output.check } - if$ - } - { format.authors output - "author and editor" editor either.or.check - title format.title.vol "title" output.check - } - if$ - format.pub.address "publisher" output.check - format.edition output - format.bdate "year" output.check - pages empty$ - 'skip$ - { format.pages output } - if$ - fin.entry -} - -FUNCTION {booklet} -{ output.bibitem - format.authors output - title format.title "title" output.check - howpublished output - address output - format.date output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { title format.title.vol "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 - title format.title.vol.in "title" output.check - } - if$ - format.pub.address "publisher" output.check - format.edition output - format.bdate "year" output.check - format.chapter.pages "chapter and pages" output.check - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - author empty$ - { booktitle format.title.vol "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 - booktitle format.title.vol.in "booktitle" output.check - } - if$ - format.pub.address "publisher" output.check - format.edition output - format.bdate "year" output.check - 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 format.title "booktitle" output.check - address output - format.date "year" output.check - pages empty$ - 'skip$ - { format.pages output } - if$ - fin.entry -} - -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization empty$ - 'skip$ - { organization output - address output - } - if$ - } - { format.authors output } - if$ - title format.title.noemph "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 format.thesis.type output - school "school" output.check - address output - format.date "year" output.check - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - title empty$ - 'skip$ - { title format.title output } - if$ - howpublished output - format.date output - format.url 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 format.thesis.type output - school "school" output.check - address output - format.date "year" output.check - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - title format.title "title" output.check - address output - format.date "year" output.check - pages empty$ - 'skip$ - { format.pages output } - if$ - 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 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 - 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 } - { "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 - -INTEGERS { len } - -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -FUNCTION {format.lab.names} -{ 's := - s #1 "{vv~}{ll}" format.name$ - s num.names$ duplicate$ - #2 > - { pop$ bbl.etal space.connect } - { #2 < - 'skip$ - { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { bbl.etal space.connect } - { bbl.and space.connect s #2 "{vv~}{ll}" format.name$ space.connect } - if$ - } - if$ - } - if$ -} - -FUNCTION {author.key.label} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {author.editor.key.label} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { editor format.lab.names } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {author.key.organization.label} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - 'key - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {editor.key.organization.label} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - 'key - if$ - } - { editor format.lab.names } - if$ -} - -FUNCTION {calc.short.authors} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label - { type$ "proceedings" = - 'editor.key.organization.label - { type$ "manual" = - 'author.key.organization.label - 'author.key.label - if$ - } - if$ - } - if$ - 'short.list := -} - -FUNCTION {calc.label} -{ calc.short.authors - short.list - "(" - * - year duplicate$ empty$ - short.list key field.or.null = or - { pop$ "" } - 'skip$ - if$ - * - 'label := -} - -ITERATE {calc.label} - -STRINGS { longest.label last.label next.extra } - -INTEGERS { longest.label.width last.extra.num number.label } - -FUNCTION {initialize.longest.label} -{ "" 'longest.label := - #0 int.to.chr$ 'last.label := - "" 'next.extra := - #0 'longest.label.width := - #0 'last.extra.num := - #0 'number.label := -} - -FUNCTION {forward.pass} -{ last.label label = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - label 'last.label := - } - if$ - number.label #1 + 'number.label := -} - -EXECUTE {initialize.longest.label} - -ITERATE {forward.pass} - -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - "\ifx\mcitethebibliography\mciteundefinedmacro" - write$ newline$ - "\PackageError{angewM.bst}{mciteplus.sty has not been loaded}" - write$ newline$ - "{This bibstyle requires the use of the mciteplus package.}\fi" - write$ newline$ - "\begin{mcitethebibliography}{" number.label int.to.str$ * "}" * - write$ newline$ - "\providecommand{\natexlab}[1]{#1}" - write$ newline$ - "\mciteSetBstSublistMode{f}" - write$ newline$ - "\mciteSetBstMaxWidthForm{subitem}{\alph{mcitesubitemcount})}" - write$ newline$ - "\mciteSetBstSublistLabelBeginEnd{\mcitemaxwidthsubitemform\space}" - write$ newline$ - "{\relax}{\relax}" - write$ newline$ -} - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -FUNCTION {end.bib} -{ newline$ - "\end{mcitethebibliography}" write$ newline$ -} - -EXECUTE {end.bib} -%% -%% -%% End of file `angewnatM.bst'. diff --git a/Master/texmf-dist/bibtex/bst/rsc/rsc-mc.bst b/Master/texmf-dist/bibtex/bst/rsc/rsc-mc.bst deleted file mode 100644 index 7d880ae6fb7..00000000000 --- a/Master/texmf-dist/bibtex/bst/rsc/rsc-mc.bst +++ /dev/null @@ -1,979 +0,0 @@ -%% -%% This is file `rsc-mc.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% rsc.dtx (with options: `bib,rsc,mc') -%% ---------------------------------------------------------------- -%% The rsc package - BibTeX support for Royal Society of Chemistry -%% and Wiley style article -%% Maintained by Joseph Wright -%% E-mail: joseph.wright@morningstar2.co.uk -%% Released under the LaTeX Project Public License v1.3 or later -%% See http://www.latex-project.org/lppl.txt -%% ---------------------------------------------------------------- -%% -ENTRY - { address - author - booktitle - chapter - doi - edition - editor - howpublished - institution - journal - note - number - organization - pages - publisher - school - series - title - type - url - 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} -{ ", " * } - -STRINGS { s t } - -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { 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$ } - 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.and} -{ "and" } - -FUNCTION {bbl.chapter} -{ "ch." } - -FUNCTION {bbl.editor} -{ "ed." } - - -FUNCTION {bbl.edition} -{ "edn." } - -FUNCTION {bbl.etal} -{ "et~al." emphasize } - -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{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$ -} - -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$ * * -} - -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 > - { add.comma t * } - { numnames #2 > - { "" * } - 'skip$ - if$ - t "others" = - { bbl.etal space.connect } - { bbl.and space.connect t space.connect } - 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.editor " " * * - editor format.names - } - if$ -} - -FUNCTION {n.separate.multi} -{ '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$ -} - -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bbl.volume volume tie.or.space.connect } - if$ -} - -FUNCTION {format.title.noemph} -{ 't := - t empty$ - { "" } - { t } - if$ -} - -FUNCTION {format.title} -{ 't := - t empty$ - { "" } - { t emphasize } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { "\url{" url * "}" * } - 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.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 } - { add.comma 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$ - { add.comma format.pages * } - if$ - } - 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.comma format.editors * - } - if$ - } - if$ -} - -FUNCTION {format.pub.address} -{ publisher empty$ - { "" } - { address empty$ - { publisher } - { publisher add.comma address *} - if$ - } - if$ -} - -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - year empty$ note empty$ url empty$ - and 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$ - { title 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 - "author and editor" editor either.or.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 - title format.title "title" output.check - howpublished output - address output - format.date output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { 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 - title format.title.in "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$ - { 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$ - } - { format.authors output - booktitle format.title.in "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 format.title.noemph "booktitle" output.check - address output - format.date "year" output.check - pages empty$ - 'skip$ - { format.pages output } - if$ - fin.entry -} - -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization empty$ - 'skip$ - { organization output - address output - } - if$ - } - { format.authors output } - if$ - title 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 - school "school" output.check - address output - format.date "year" output.check - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - title empty$ - 'skip$ - { title format.title output } - if$ - howpublished output - year output - format.url 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 - school "school" output.check - address output - format.date "year" output.check - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - title format.title.noemph "title" output.check - address output - format.date "year" output.check - pages empty$ - 'skip$ - { format.pages output } - if$ - 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 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 - 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$ - "\providecommand{\url}[1]{\texttt{#1}}" - write$ newline$ - "\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} -%% -%% -%% 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 7ad2dc8f67d..b89f80a15e7 100644 --- a/Master/texmf-dist/bibtex/bst/rsc/rsc.bst +++ b/Master/texmf-dist/bibtex/bst/rsc/rsc.bst @@ -6,11 +6,11 @@ %% %% rsc.dtx (with options: `bib,rsc') %% ---------------------------------------------------------------- -%% The rsc package - BibTeX support for Royal Society of Chemistry -%% and Wiley style article +%% The rsc package --- BibTeX styles for Royal Society of Chemistry +%% and Wiley journals %% Maintained by Joseph Wright %% E-mail: joseph.wright@morningstar2.co.uk -%% Released under the LaTeX Project Public License v1.3 or later +%% Released under the LaTeX Project Public License v1.3c or later %% See http://www.latex-project.org/lppl.txt %% ---------------------------------------------------------------- %% @@ -19,12 +19,16 @@ ENTRY author booktitle chapter + ctrl-use-title + ctrl-etal-number + ctrl-use-doi-all doi edition editor howpublished institution journal + key note number organization @@ -39,10 +43,14 @@ ENTRY year } {} - { label } + { label + extra.label + short.list + } -INTEGERS { output.state before.all mid.sentence after.sentence } -INTEGERS { after.block after.item author.or.editor } +INTEGERS { output.state before.all mid.sentence } +INTEGERS { after.sentence after.block after.item } +INTEGERS { author.or.editor } FUNCTION {init.state.consts} { #0 'before.all := @@ -52,6 +60,14 @@ FUNCTION {init.state.consts} #4 'after.item := } +INTEGERS { is.use.title etal.number use.doi.all } + +FUNCTION {default.is.use.title} { #0 } + +FUNCTION {default.etal.number} { #0 } + +FUNCTION {default.use.doi.all} { #0 } + FUNCTION {add.comma} { ", " * } @@ -97,23 +113,41 @@ FUNCTION {output.check} if$ } -FUNCTION {output.bibitem} -{ newline$ - "\bibitem{" write$ - cite$ write$ - "}" write$ - newline$ - "" - before.all 'output.state := +INTEGERS { would.add.period.textlen } + +FUNCTION {would.add.period} +{ duplicate$ + add.period$ + text.length$ + 'would.add.period.textlen := + duplicate$ + text.length$ + would.add.period.textlen = + { #0 } + { #1 } + if$ } FUNCTION {fin.entry} -{ add.period$ +{ would.add.period + { "\relax" * write$ newline$ + "\mciteBstWouldAddEndPuncttrue" write$ newline$ + "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}" + write$ newline$ + "{\mcitedefaultendpunct}{\mcitedefaultseppunct}\relax" + } + { "\relax" * write$ newline$ + "\mciteBstWouldAddEndPunctfalse" write$ newline$ + "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}" + write$ newline$ + "{}{\mcitedefaultseppunct}\relax" + } + if$ write$ newline$ + "\EndOfBibitem" write$ } - FUNCTION {not} { { #0 } { #1 } @@ -166,6 +200,9 @@ FUNCTION {bbl.and} FUNCTION {bbl.chapter} { "ch." } +FUNCTION {bbl.doi} +{ "DOI:" } + FUNCTION {bbl.editor} { "ed." } @@ -251,6 +288,52 @@ FUNCTION {eng.ord} if$ } +INTEGERS{ l } + +FUNCTION{string.length} +{ #1 'l := + { duplicate$ duplicate$ #1 l substring$ = not } + { l #1 + 'l := } + while$ + pop$ l +} + +STRINGS{replace find text} + +INTEGERS{find_length} + +FUNCTION{find.replace} +{ 'replace := + 'find := + 'text := + find string.length 'find_length := + "" + { text empty$ not } + { text #1 find_length substring$ find = + { replace * + text #1 find_length + global.max$ substring$ 'text := + } + { text #1 #1 substring$ * + text #2 global.max$ substring$ 'text := + } + if$ + } + while$ +} + +FUNCTION {chr.to.value} +{ chr.to.int$ #48 - + duplicate$ duplicate$ + #0 < swap$ #9 > or + { #48 + int.to.chr$ + " is not a number..." * + warning$ + pop$ #0 + } + {} + if$ +} + FUNCTION{is.a.digit} { duplicate$ "" = {pop$ #0} @@ -350,28 +433,35 @@ FUNCTION {format.names} #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { add.comma t * } - { numnames #2 > - { "" * } - 'skip$ - if$ - t "others" = - { bbl.etal space.connect } - { bbl.and space.connect t space.connect } + numnames etal.number > etal.number #0 > and + { s #1 "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + t bbl.etal space.connect + } + { + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { add.comma t * } + { numnames #2 > + { "" * } + 'skip$ + if$ + t "others" = + { bbl.etal space.connect } + { bbl.and space.connect t space.connect } + if$ + } if$ } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } + if$ } FUNCTION {format.authors} @@ -382,6 +472,19 @@ FUNCTION {format.authors} if$ } +FUNCTION {strip.comma} +{ duplicate$ + string.length 'find_length := + duplicate$ + find_length #1 - #1 substring$ + "," = + { #1 find_length #2 - substring$ + " " * + } + 'skip$ + if$ +} + FUNCTION {format.editors} { editor empty$ { "" } @@ -392,6 +495,17 @@ FUNCTION {format.editors} if$ } +FUNCTION {format.doi} +{ use.doi.all + { doi empty$ + { bbl.doi doi tie.or.space.connect output } + 'skip$ + if$ + } + 'skip$ + if$ +} + FUNCTION {n.separate.multi} { 't := "" @@ -450,6 +564,105 @@ FUNCTION {format.url} if$ } +FUNCTION {format.title.vol} +{ 't := + t empty$ + { "" } + { t emphasize } + if$ + volume empty$ + 'skip$ + { format.bvolume emphasize + swap$ add.comma swap$ * + } + if$ + } + +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { bbl.etal * } + { bbl.and space.connect t space.connect } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.full} +{ author empty$ + { editor empty$ + { "" } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.full} +{ author empty$ + { "" } + { author format.full.names } + if$ +} + +FUNCTION {editor.full} +{ editor empty$ + { "" } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.full + { type$ "proceedings" = + 'editor.full + 'author.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} { newline$ + "\bibitem[" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + FUNCTION {n.dashify} { 't := "" { t empty$ not } @@ -491,7 +704,8 @@ FUNCTION {format.bdate} 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$ } @@ -615,6 +829,21 @@ FUNCTION {format.title.in} if$ } +FUNCTION {format.title.vol.in} +{ 's := + after.item 'output.state := + s empty$ + { "" } + { editor empty$ + { bbl.in s format.title.vol space.connect } + { bbl.in s format.title.vol space.connect + add.comma format.editors * + } + if$ + } + if$ +} + FUNCTION {format.pub.address} { publisher empty$ { "" } @@ -654,14 +883,17 @@ FUNCTION {format.thesis.type} FUNCTION {article} { output.bibitem format.authors "author" output.check + is.use.title + { title format.title.noemph "title" output.check } + 'skip$ + if$ journal emphasize "journal" output.check format.date "year" output.check volume empty$ - { "" - format.pages.nopp output - } - { format.vol.pages output } + { "" format.pages.nopp output } + { format.vol.pages output } if$ + format.doi fin.entry } @@ -670,7 +902,8 @@ FUNCTION {book} author empty$ { title format.title "title" output.check editor empty$ - { "Need either an author or editor for " cite$ * warning$ } + { "Need either an author or editor for " + cite$ * warning$ } { "" format.editors * "editor" output.check } if$ } @@ -687,6 +920,7 @@ FUNCTION {book} 'skip$ { format.pages output } if$ + format.doi fin.entry } @@ -697,6 +931,7 @@ FUNCTION {booklet} howpublished output address output format.date output + format.doi fin.entry } @@ -705,7 +940,8 @@ FUNCTION {inbook} author empty$ { title format.title "title" output.check editor empty$ - { "Need at least an author or an editor for " cite$ * warning$ } + { "Need at least an author or an editor for " + cite$ * warning$ } { "" format.editors * "editor" output.check } if$ } @@ -718,20 +954,26 @@ FUNCTION {inbook} format.bdate "year" output.check format.bvolume output format.chapter.pages "chapter and pages" output.check + format.doi fin.entry } FUNCTION {incollection} { output.bibitem author empty$ - { booktitle format.title "booktitle" output.check + { booktitle + format.title + "booktitle" output.check editor empty$ - { "Need at least an author or an editor for " cite$ * warning$ } + { "Need at least an author or an editor for " + cite$ * warning$ } { "" format.editors * "editor" output.check } if$ } { format.authors output - booktitle format.title.in "booktitle" output.check + booktitle + format.title + "booktitle" output.check } if$ format.pub.address "publisher" output.check @@ -739,6 +981,7 @@ FUNCTION {incollection} format.bdate "year" output.check format.bvolume output format.chapter.pages "chapter and pages" output.check + format.doi fin.entry } @@ -747,6 +990,7 @@ FUNCTION {inpress} format.authors "author" output.check journal emphasize "journal" output.check bbl.inpress output + format.doi fin.entry } @@ -760,6 +1004,7 @@ FUNCTION {inproceedings} 'skip$ { format.pages output } if$ + format.doi fin.entry } @@ -788,6 +1033,7 @@ FUNCTION {manual} if$ format.edition output format.date output + format.doi fin.entry } @@ -798,6 +1044,7 @@ FUNCTION {mastersthesis} school "school" output.check address output format.date "year" output.check + format.doi fin.entry } @@ -812,6 +1059,7 @@ FUNCTION {misc} year output format.url output note output + format.doi fin.entry empty.misc.check } @@ -830,6 +1078,7 @@ FUNCTION {patent} journal emphasize "journal" output.check format.pages.patent "pages" output.check format.date "year" output.check + format.doi fin.entry } @@ -840,6 +1089,7 @@ FUNCTION {phdthesis} school "school" output.check address output format.date "year" output.check + format.doi fin.entry } @@ -852,19 +1102,7 @@ FUNCTION {proceedings} 'skip$ { format.pages output } if$ - fin.entry -} - -FUNCTION {remark} -{ output.bibitem - note "note" output.check - fin.entry -} - -FUNCTION {submitted} -{ output.bibitem - format.authors "author" output.check - bbl.submitted output + format.doi fin.entry } @@ -885,6 +1123,7 @@ FUNCTION {techreport} output format.pub.address output format.date "year" output.check + format.doi fin.entry } @@ -897,14 +1136,99 @@ FUNCTION {unpublished} if$ doi empty$ { note output } - { format.date output - "DOI:" doi tie.or.space.connect output - } + { + format.date output + bbl.doi doi tie.or.space.connect output + } if$ fin.entry empty.doi.note } +INTEGERS { a b } + +FUNCTION {mult} +{ 'a := + 'b := + b #0 < + {#-1 #0 b - 'b :=} + {#1} + if$ + #0 + {b #0 >} + { a + + b #1 - 'b := + } + while$ + swap$ + 'skip$ + {#0 swap$ -} + if$ +} + +FUNCTION {str.to.int.aux} +{ {duplicate$ empty$ not} + { swap$ #10 mult 'a := + duplicate$ #1 #1 substring$ + chr.to.value a + + swap$ + #2 global.max$ substring$ + } + while$ + pop$ +} + +FUNCTION {str.to.int} +{ duplicate$ #1 #1 substring$ "-" = + {#1 swap$ #2 global.max$ substring$} + {#0 swap$} + if$ + #0 swap$ str.to.int.aux + swap$ + {#0 swap$ -} + {} + if$ +} + +FUNCTION {yes.no.to.int} +{ "l" change.case$ duplicate$ + "yes" = + { pop$ #1 } + { duplicate$ "no" = + { pop$ #0 } + { "unknown Boolean " quote$ * swap$ * quote$ * + " in " * cite$ * warning$ + #0 + } + if$ + } + if$ +} + +FUNCTION {Control} +{ ctrl-use-title + empty$ + { skip$ } + { ctrl-use-title + yes.no.to.int + 'is.use.title := } + if$ + ctrl-etal-number + empty$ + { skip$ } + { ctrl-etal-number + str.to.int + 'etal.number := } + if$ + ctrl-use-doi-all + empty$ + { skip$ } + { ctrl-use-doi-all + yes.no.to.int + 'use.doi.all := } + if$ +} + FUNCTION {conference} {inproceedings} FUNCTION {other} {patent} @@ -926,39 +1250,197 @@ MACRO {dec} {"December"} READ -STRINGS { longest.label } +FUNCTION {initialize.controls} +{ default.is.use.title 'is.use.title := + default.etal.number 'etal.number := + default.use.doi.all 'use.doi.all := +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ bbl.etal space.connect } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { bbl.etal space.connect } + { bbl.and space.connect s #2 "{vv~}{ll}" + format.name$ space.connect } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 + text.prefix$ } + if$ + } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 + text.prefix$ } + if$ + } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +ITERATE {calc.label} + +STRINGS { longest.label last.label next.extra } -INTEGERS { number.label longest.label.width } +INTEGERS { longest.label.width last.extra.num number.label } FUNCTION {initialize.longest.label} { "" 'longest.label := - #1 'number.label := + #0 int.to.chr$ 'last.label := + "" 'next.extra := #0 'longest.label.width := + #0 'last.extra.num := + #0 'number.label := } -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 := +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := } - 'skip$ if$ + number.label #1 + 'number.label := } EXECUTE {initialize.longest.label} -ITERATE {longest.label.pass} +ITERATE {forward.pass} FUNCTION {begin.bib} { preamble$ empty$ 'skip$ { preamble$ write$ newline$ } if$ - "\providecommand{\url}[1]{\texttt{#1}}" + "\ifx\mcitethebibliography\mciteundefinedmacro" + write$ newline$ + " \PackageError" + "{rsc.bst}" + "{mciteplus.sty has not been loaded}" * * + write$ newline$ + " {This bibstyle requires the use of the" + " mciteplus package.}" * + write$ newline$ + "\fi" + write$ newline$ + "\begin{mcitethebibliography}{" + number.label int.to.str$ * "}" * + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\mciteSetBstSublistMode{f}" + write$ newline$ + "\mciteSetBstMaxWidthForm{subitem}" + write$ newline$ + "{(\emph{\alph{mcitesubitemcount}})}" + write$ newline$ + "\mciteSetBstSublistLabelBeginEnd" + write$ newline$ + "{\mcitemaxwidthsubitemform\space}" + write$ newline$ + "{\relax}{\relax}" write$ newline$ - "\begin{thebibliography}{" longest.label * "}" * write$ newline$ } EXECUTE {begin.bib} @@ -969,10 +1451,7 @@ ITERATE {call.type$} FUNCTION {end.bib} { newline$ - "\end{thebibliography}" write$ newline$ + "\end{mcitethebibliography}" write$ newline$ } EXECUTE {end.bib} -%% -%% -%% End of file `rsc.bst'. diff --git a/Master/texmf-dist/bibtex/bst/rsc/rscM.bst b/Master/texmf-dist/bibtex/bst/rsc/rscM.bst deleted file mode 100644 index aa7a45d014b..00000000000 --- a/Master/texmf-dist/bibtex/bst/rsc/rscM.bst +++ /dev/null @@ -1,1018 +0,0 @@ -%% -%% This is file `rscM.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% rsc.dtx (with options: `bib,rsc,mcp') -%% ---------------------------------------------------------------- -%% The rsc package - BibTeX support for Royal Society of Chemistry -%% and Wiley style article -%% Maintained by Joseph Wright -%% E-mail: joseph.wright@morningstar2.co.uk -%% Released under the LaTeX Project Public License v1.3 or later -%% See http://www.latex-project.org/lppl.txt -%% ---------------------------------------------------------------- -%% -ENTRY - { address - author - booktitle - chapter - doi - edition - editor - howpublished - institution - journal - note - number - organization - pages - publisher - school - series - title - type - url - 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} -{ ", " * } - -STRINGS { s t } - -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { 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$ } - 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 := -} - -INTEGERS {would.add.period.textlen} -FUNCTION {would.add.period} -{ duplicate$ - add.period$ - text.length$ - 'would.add.period.textlen := - duplicate$ - text.length$ - would.add.period.textlen = - { #0 } - { #1 } - if$ -} - -FUNCTION {fin.entry} -{ would.add.period - { "\relax" * write$ newline$ - "\mciteBstWouldAddEndPuncttrue" write$ newline$ - "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}" - write$ newline$ - "{\mcitedefaultendpunct}{\mcitedefaultseppunct}\relax" - } - { "\relax" * write$ newline$ - "\mciteBstWouldAddEndPunctfalse" write$ newline$ - "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}" - write$ newline$ - "{}{\mcitedefaultseppunct}\relax" - } - if$ - write$ - newline$ - "\EndOfBibitem" 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.and} -{ "and" } - -FUNCTION {bbl.chapter} -{ "ch." } - -FUNCTION {bbl.editor} -{ "ed." } - - -FUNCTION {bbl.edition} -{ "edn." } - -FUNCTION {bbl.etal} -{ "et~al." emphasize } - -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{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$ -} - -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$ * * -} - -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 > - { add.comma t * } - { numnames #2 > - { "" * } - 'skip$ - if$ - t "others" = - { bbl.etal space.connect } - { bbl.and space.connect t space.connect } - 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.editor " " * * - editor format.names - } - if$ -} - -FUNCTION {n.separate.multi} -{ '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$ -} - -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bbl.volume volume tie.or.space.connect } - if$ -} - -FUNCTION {format.title.noemph} -{ 't := - t empty$ - { "" } - { t } - if$ -} - -FUNCTION {format.title} -{ 't := - t empty$ - { "" } - { t emphasize } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { "\url{" url * "}" * } - 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.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 } - { add.comma 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$ - { add.comma format.pages * } - if$ - } - 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.comma format.editors * - } - if$ - } - if$ -} - -FUNCTION {format.pub.address} -{ publisher empty$ - { "" } - { address empty$ - { publisher } - { publisher add.comma address *} - if$ - } - if$ -} - -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - year empty$ note empty$ url empty$ - and 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$ - { title 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 - "author and editor" editor either.or.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 - title format.title "title" output.check - howpublished output - address output - format.date output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { 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 - title format.title.in "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$ - { 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$ - } - { format.authors output - booktitle format.title.in "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 format.title.noemph "booktitle" output.check - address output - format.date "year" output.check - pages empty$ - 'skip$ - { format.pages output } - if$ - fin.entry -} - -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization empty$ - 'skip$ - { organization output - address output - } - if$ - } - { format.authors output } - if$ - title 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 - school "school" output.check - address output - format.date "year" output.check - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - title empty$ - 'skip$ - { title format.title output } - if$ - howpublished output - year output - format.url 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 - school "school" output.check - address output - format.date "year" output.check - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - title format.title.noemph "title" output.check - address output - format.date "year" output.check - pages empty$ - 'skip$ - { format.pages output } - if$ - 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 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 - 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$ - "\ifx\mcitethebibliography\mciteundefinedmacro" - write$ newline$ - "\PackageError{rscM.bst}{mciteplus.sty has not been loaded}" - write$ newline$ - "{This bibstyle requires the use of the mciteplus package.}\fi" - write$ newline$ - "\begin{mcitethebibliography}{" longest.label * "}" * write$ newline$ - "\mciteSetBstSublistMode{f}" - write$ newline$ - "\mciteSetBstMaxWidthForm{subitem}{(\emph{\alph{mcitesubitemcount}})}" - write$ newline$ - "\mciteSetBstSublistLabelBeginEnd{\mcitemaxwidthsubitemform\space}" - write$ newline$ - "{\relax}{\relax}" - write$ newline$ -} - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -FUNCTION {end.bib} -{ newline$ - "\end{mcitethebibliography}" write$ newline$ -} - -EXECUTE {end.bib} -%% -%% -%% End of file `rscM.bst'. diff --git a/Master/texmf-dist/bibtex/bst/rsc/rscnat.bst b/Master/texmf-dist/bibtex/bst/rsc/rscnat.bst deleted file mode 100644 index b14ec4e19bf..00000000000 --- a/Master/texmf-dist/bibtex/bst/rsc/rscnat.bst +++ /dev/null @@ -1,1184 +0,0 @@ -%% -%% This is file `rscnat.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% rsc.dtx (with options: `bib,rsc,nat') -%% ---------------------------------------------------------------- -%% The rsc package - BibTeX support for Royal Society of Chemistry -%% and Wiley style article -%% Maintained by Joseph Wright -%% E-mail: joseph.wright@morningstar2.co.uk -%% Released under the LaTeX Project Public License v1.3 or later -%% See http://www.latex-project.org/lppl.txt -%% ---------------------------------------------------------------- -%% -ENTRY - { address - author - booktitle - chapter - doi - edition - editor - howpublished - institution - journal - key - note - number - organization - pages - publisher - school - series - title - type - url - volume - year - } - {} - { label - extra.label - short.list - } - -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} -{ ", " * } - -STRINGS { s t } - -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { 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$ } - 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 {fin.entry} -{ add.period$ - write$ - newline$ -} - - -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.and} -{ "and" } - -FUNCTION {bbl.chapter} -{ "ch." } - -FUNCTION {bbl.editor} -{ "ed." } - - -FUNCTION {bbl.edition} -{ "edn." } - -FUNCTION {bbl.etal} -{ "et~al." emphasize } - -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{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$ -} - -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$ * * -} - -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 > - { add.comma t * } - { numnames #2 > - { "" * } - 'skip$ - if$ - t "others" = - { bbl.etal space.connect } - { bbl.and space.connect t space.connect } - 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.editor " " * * - editor format.names - } - if$ -} - -FUNCTION {n.separate.multi} -{ '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$ -} - -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bbl.volume volume tie.or.space.connect } - if$ -} - -FUNCTION {format.title.noemph} -{ 't := - t empty$ - { "" } - { t } - if$ -} - -FUNCTION {format.title} -{ 't := - t empty$ - { "" } - { t emphasize } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { "\url{" url * "}" * } - if$ -} - -FUNCTION {format.full.names} -{'s := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{vv~}{ll}" format.name$ 't := - nameptr #1 > - { - namesleft #1 > - { ", " * t * } - { - numnames #2 > - { "," * } - 'skip$ - if$ - t "others" = - { bbl.etal * } - { bbl.and space.connect t space.connect } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {author.editor.full} -{ author empty$ - { editor empty$ - { "" } - { editor format.full.names } - if$ - } - { author format.full.names } - if$ -} - -FUNCTION {author.full} -{ author empty$ - { "" } - { author format.full.names } - if$ -} - -FUNCTION {editor.full} -{ editor empty$ - { "" } - { editor format.full.names } - if$ -} - -FUNCTION {make.full.names} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.full - { type$ "proceedings" = - 'editor.full - 'author.full - if$ - } - if$ -} - -FUNCTION {output.bibitem} { newline$ - "\bibitem[" write$ - label write$ - ")" make.full.names duplicate$ short.list = - { pop$ } - { * } - if$ - "]{" * write$ - cite$ write$ - "}" write$ - newline$ - "" - before.all 'output.state := -} - -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.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 } - { add.comma 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$ - { add.comma format.pages * } - if$ - } - 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.comma format.editors * - } - if$ - } - if$ -} - -FUNCTION {format.pub.address} -{ publisher empty$ - { "" } - { address empty$ - { publisher } - { publisher add.comma address *} - if$ - } - if$ -} - -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - year empty$ note empty$ url empty$ - and 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$ - { title 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 - "author and editor" editor either.or.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 - title format.title "title" output.check - howpublished output - address output - format.date output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { 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 - title format.title.in "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$ - { 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$ - } - { format.authors output - booktitle format.title.in "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 format.title.noemph "booktitle" output.check - address output - format.date "year" output.check - pages empty$ - 'skip$ - { format.pages output } - if$ - fin.entry -} - -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization empty$ - 'skip$ - { organization output - address output - } - if$ - } - { format.authors output } - if$ - title 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 - school "school" output.check - address output - format.date "year" output.check - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - title empty$ - 'skip$ - { title format.title output } - if$ - howpublished output - year output - format.url 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 - school "school" output.check - address output - format.date "year" output.check - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - title format.title.noemph "title" output.check - address output - format.date "year" output.check - pages empty$ - 'skip$ - { format.pages output } - if$ - 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 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 - 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 - -INTEGERS { len } - -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -FUNCTION {format.lab.names} -{ 's := - s #1 "{vv~}{ll}" format.name$ - s num.names$ duplicate$ - #2 > - { pop$ bbl.etal space.connect } - { #2 < - 'skip$ - { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { bbl.etal space.connect } - { bbl.and space.connect s #2 "{vv~}{ll}" format.name$ space.connect } - if$ - } - if$ - } - if$ -} - -FUNCTION {author.key.label} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {author.editor.key.label} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { editor format.lab.names } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {author.key.organization.label} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - 'key - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {editor.key.organization.label} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - 'key - if$ - } - { editor format.lab.names } - if$ -} - -FUNCTION {calc.short.authors} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label - { type$ "proceedings" = - 'editor.key.organization.label - { type$ "manual" = - 'author.key.organization.label - 'author.key.label - if$ - } - if$ - } - if$ - 'short.list := -} - -FUNCTION {calc.label} -{ calc.short.authors - short.list - "(" - * - year duplicate$ empty$ - short.list key field.or.null = or - { pop$ "" } - 'skip$ - if$ - * - 'label := -} - -ITERATE {calc.label} - -STRINGS { longest.label last.label next.extra } - -INTEGERS { longest.label.width last.extra.num number.label } - -FUNCTION {initialize.longest.label} -{ "" 'longest.label := - #0 int.to.chr$ 'last.label := - "" 'next.extra := - #0 'longest.label.width := - #0 'last.extra.num := - #0 'number.label := -} - -FUNCTION {forward.pass} -{ last.label label = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - label 'last.label := - } - if$ - number.label #1 + 'number.label := -} - -EXECUTE {initialize.longest.label} - -ITERATE {forward.pass} - -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - "\providecommand{\url}[1]{\texttt{#1}}" - write$ newline$ - "\begin{thebibliography}{" number.label int.to.str$ * "}" * - write$ newline$ - "\providecommand{\natexlab}[1]{#1}" - write$ newline$ -} - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -FUNCTION {end.bib} -{ newline$ - "\end{thebibliography}" write$ newline$ -} - -EXECUTE {end.bib} -%% -%% -%% End of file `rscnat.bst'. diff --git a/Master/texmf-dist/bibtex/bst/rsc/rscnatM.bst b/Master/texmf-dist/bibtex/bst/rsc/rscnatM.bst deleted file mode 100644 index 67957cd8aea..00000000000 --- a/Master/texmf-dist/bibtex/bst/rsc/rscnatM.bst +++ /dev/null @@ -1,1224 +0,0 @@ -%% -%% This is file `rscnatM.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% rsc.dtx (with options: `bib,rsc,nat,mcp') -%% ---------------------------------------------------------------- -%% The rsc package - BibTeX support for Royal Society of Chemistry -%% and Wiley style article -%% Maintained by Joseph Wright -%% E-mail: joseph.wright@morningstar2.co.uk -%% Released under the LaTeX Project Public License v1.3 or later -%% See http://www.latex-project.org/lppl.txt -%% ---------------------------------------------------------------- -%% -ENTRY - { address - author - booktitle - chapter - doi - edition - editor - howpublished - institution - journal - key - note - number - organization - pages - publisher - school - series - title - type - url - volume - year - } - {} - { label - extra.label - short.list - } - -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} -{ ", " * } - -STRINGS { s t } - -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { 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$ } - 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$ -} - -INTEGERS {would.add.period.textlen} -FUNCTION {would.add.period} -{ duplicate$ - add.period$ - text.length$ - 'would.add.period.textlen := - duplicate$ - text.length$ - would.add.period.textlen = - { #0 } - { #1 } - if$ -} - -FUNCTION {fin.entry} -{ would.add.period - { "\relax" * write$ newline$ - "\mciteBstWouldAddEndPuncttrue" write$ newline$ - "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}" - write$ newline$ - "{\mcitedefaultendpunct}{\mcitedefaultseppunct}\relax" - } - { "\relax" * write$ newline$ - "\mciteBstWouldAddEndPunctfalse" write$ newline$ - "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}" - write$ newline$ - "{}{\mcitedefaultseppunct}\relax" - } - if$ - write$ - newline$ - "\EndOfBibitem" 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.and} -{ "and" } - -FUNCTION {bbl.chapter} -{ "ch." } - -FUNCTION {bbl.editor} -{ "ed." } - - -FUNCTION {bbl.edition} -{ "edn." } - -FUNCTION {bbl.etal} -{ "et~al." emphasize } - -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{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$ -} - -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$ * * -} - -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 > - { add.comma t * } - { numnames #2 > - { "" * } - 'skip$ - if$ - t "others" = - { bbl.etal space.connect } - { bbl.and space.connect t space.connect } - 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.editor " " * * - editor format.names - } - if$ -} - -FUNCTION {n.separate.multi} -{ '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$ -} - -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bbl.volume volume tie.or.space.connect } - if$ -} - -FUNCTION {format.title.noemph} -{ 't := - t empty$ - { "" } - { t } - if$ -} - -FUNCTION {format.title} -{ 't := - t empty$ - { "" } - { t emphasize } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { "\url{" url * "}" * } - if$ -} - -FUNCTION {format.full.names} -{'s := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{vv~}{ll}" format.name$ 't := - nameptr #1 > - { - namesleft #1 > - { ", " * t * } - { - numnames #2 > - { "," * } - 'skip$ - if$ - t "others" = - { bbl.etal * } - { bbl.and space.connect t space.connect } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {author.editor.full} -{ author empty$ - { editor empty$ - { "" } - { editor format.full.names } - if$ - } - { author format.full.names } - if$ -} - -FUNCTION {author.full} -{ author empty$ - { "" } - { author format.full.names } - if$ -} - -FUNCTION {editor.full} -{ editor empty$ - { "" } - { editor format.full.names } - if$ -} - -FUNCTION {make.full.names} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.full - { type$ "proceedings" = - 'editor.full - 'author.full - if$ - } - if$ -} - -FUNCTION {output.bibitem} { newline$ - "\bibitem[" write$ - label write$ - ")" make.full.names duplicate$ short.list = - { pop$ } - { * } - if$ - "]{" * write$ - cite$ write$ - "}" write$ - newline$ - "" - before.all 'output.state := -} - -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.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 } - { add.comma 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$ - { add.comma format.pages * } - if$ - } - 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.comma format.editors * - } - if$ - } - if$ -} - -FUNCTION {format.pub.address} -{ publisher empty$ - { "" } - { address empty$ - { publisher } - { publisher add.comma address *} - if$ - } - if$ -} - -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - year empty$ note empty$ url empty$ - and 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$ - { title 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 - "author and editor" editor either.or.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 - title format.title "title" output.check - howpublished output - address output - format.date output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { 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 - title format.title.in "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$ - { 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$ - } - { format.authors output - booktitle format.title.in "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 format.title.noemph "booktitle" output.check - address output - format.date "year" output.check - pages empty$ - 'skip$ - { format.pages output } - if$ - fin.entry -} - -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization empty$ - 'skip$ - { organization output - address output - } - if$ - } - { format.authors output } - if$ - title 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 - school "school" output.check - address output - format.date "year" output.check - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - title empty$ - 'skip$ - { title format.title output } - if$ - howpublished output - year output - format.url 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 - school "school" output.check - address output - format.date "year" output.check - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - title format.title.noemph "title" output.check - address output - format.date "year" output.check - pages empty$ - 'skip$ - { format.pages output } - if$ - 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 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 - 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 - -INTEGERS { len } - -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -FUNCTION {format.lab.names} -{ 's := - s #1 "{vv~}{ll}" format.name$ - s num.names$ duplicate$ - #2 > - { pop$ bbl.etal space.connect } - { #2 < - 'skip$ - { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { bbl.etal space.connect } - { bbl.and space.connect s #2 "{vv~}{ll}" format.name$ space.connect } - if$ - } - if$ - } - if$ -} - -FUNCTION {author.key.label} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {author.editor.key.label} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { editor format.lab.names } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {author.key.organization.label} -{ author empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - 'key - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {editor.key.organization.label} -{ editor empty$ - { key empty$ - { organization empty$ - { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - 'key - if$ - } - { editor format.lab.names } - if$ -} - -FUNCTION {calc.short.authors} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label - { type$ "proceedings" = - 'editor.key.organization.label - { type$ "manual" = - 'author.key.organization.label - 'author.key.label - if$ - } - if$ - } - if$ - 'short.list := -} - -FUNCTION {calc.label} -{ calc.short.authors - short.list - "(" - * - year duplicate$ empty$ - short.list key field.or.null = or - { pop$ "" } - 'skip$ - if$ - * - 'label := -} - -ITERATE {calc.label} - -STRINGS { longest.label last.label next.extra } - -INTEGERS { longest.label.width last.extra.num number.label } - -FUNCTION {initialize.longest.label} -{ "" 'longest.label := - #0 int.to.chr$ 'last.label := - "" 'next.extra := - #0 'longest.label.width := - #0 'last.extra.num := - #0 'number.label := -} - -FUNCTION {forward.pass} -{ last.label label = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - label 'last.label := - } - if$ - number.label #1 + 'number.label := -} - -EXECUTE {initialize.longest.label} - -ITERATE {forward.pass} - -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - "\ifx\mcitethebibliography\mciteundefinedmacro" - write$ newline$ - "\PackageError{rscM.bst}{mciteplus.sty has not been loaded}" - write$ newline$ - "{This bibstyle requires the use of the mciteplus package.}\fi" - write$ newline$ - "\begin{mcitethebibliography}{" number.label int.to.str$ * "}" * - write$ newline$ - "\providecommand{\natexlab}[1]{#1}" - write$ newline$ - "\mciteSetBstSublistMode{f}" - write$ newline$ - "\mciteSetBstMaxWidthForm{subitem}{(\emph{\alph{mcitesubitemcount}})}" - write$ newline$ - "\mciteSetBstSublistLabelBeginEnd{\mcitemaxwidthsubitemform\space}" - write$ newline$ - "{\relax}{\relax}" - write$ newline$ -} - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -FUNCTION {end.bib} -{ newline$ - "\end{mcitethebibliography}" write$ newline$ -} - -EXECUTE {end.bib} -%% -%% -%% End of file `rscnatM.bst'. diff --git a/Master/texmf-dist/doc/latex/rsc/README b/Master/texmf-dist/doc/latex/rsc/README index a2c8cdbb4f5..403984ff8e4 100644 --- a/Master/texmf-dist/doc/latex/rsc/README +++ b/Master/texmf-dist/doc/latex/rsc/README @@ -1,15 +1,16 @@ ----------------------------------------------------------------- -The rsc package - BibTeX support for Royal Society of Chemistry -and Wiley style articles -Maintained by Joseph Wright -E-mail: joseph.wright@morningstar2.co.uk -Released under the LaTeX Project Public License v1.3 or later -See http://www.latex-project.org/lppl.txt ----------------------------------------------------------------- - -The rsc package provides BibTeX style files to produce -bibliographies in accordance with the guidelines of the Royal -Society of Chemistry and Wiley chemistry-related journals. The -style files are available in versions for the standard LaTeX -citation methods and for use with natbib. Versions for use -with mcite and mciteplus are also available. +---------------------------------------------------------------- +The rsc package --- BibTeX styles for Royal Society of Chemistry +and Wiley journals +Maintained by Joseph Wright +E-mail: joseph.wright@morningstar2.co.uk +Released under the LaTeX Project Public License v1.3c or later +See http://www.latex-project.org/lppl.txt +---------------------------------------------------------------- + +The rsc package provides BibTeX style files to produce +bibliographies in accordance with the guidelines of the Royal +Society of Chemistry and Wiley chemistry-related journals. The +styles require the use of natbib and mciteplus. In addition, a +short LaTeX package is included; this provides a convenient +user interface to the customisation hooks made available by the +BibTeX styles. diff --git a/Master/texmf-dist/doc/latex/rsc/rsc-manual.pdf b/Master/texmf-dist/doc/latex/rsc/rsc-manual.pdf new file mode 100644 index 00000000000..7cffef52108 Binary files /dev/null and b/Master/texmf-dist/doc/latex/rsc/rsc-manual.pdf differ diff --git a/Master/texmf-dist/doc/latex/rsc/rsc.bib b/Master/texmf-dist/doc/latex/rsc/rsc.bib new file mode 100644 index 00000000000..842170afbab --- /dev/null +++ b/Master/texmf-dist/doc/latex/rsc/rsc.bib @@ -0,0 +1,48 @@ +@ARTICLE{Abernethy2003, + author = {Colin D. Abernethy and Gareth M. Codd and Mark D. Spicer + and Michelle K. Taylor}, + title = {{A} highly stable {N}-heterocyclic carbene complex of + trichloro-oxo-vanadium(\textsc{v}) displaying novel + {C}l---{C}(carbene) bonding interactions}, + journal = {{J}. {A}m. {C}hem. {S}oc.}, + year = {2003}, + volume = {125}, + pages = {1128--1129}, + number = {5}, + doi = {10.1021/ja0276321}, +} + +@ARTICLE{Arduengo1992, + author = {Arduengo, III, Anthony J. and H. V. Rasika Dias and + Richard L. Harlow and Michael Kline}, + title = {{E}lectronic stabilization of nucleophilic carbenes}, + journal = {{J}.~{A}m.\ {C}hem.\ {S}oc.}, + year = {1992}, + volume = {114}, + pages = {5530--5534}, + number = {14}, + doi = {10.1021/ja00040a007}, +} + +@ARTICLE{Arduengo1994, + author = {Arduengo, III, Anthony J. and Siegfried F. Gamper and + Joseph C. Calabrese and Fredric Davidson}, + title = {{L}ow-coordinate carbene complexes of nickel(0) and + platinum(0)}, + journal = jacsat, + year = {1994}, + volume = {116}, + pages = {4391--4394}, + number = {10}, + doi = {10.1021/ja00089a029}, +} + +@BOOK{Cotton1999, + title = {{A}dvanced {I}norganic {C}hemistry}, + publisher = {Wiley}, + year = {1999}, + author = {Cotton, Frank Albert and Wilkinson, Geoffrery and + Murillio, Carlos A. and Bochmann, Manfred}, + address = {Chichester}, + edition = {6}, +} diff --git a/Master/texmf-dist/doc/latex/rsc/rsc.pdf b/Master/texmf-dist/doc/latex/rsc/rsc.pdf index 415ba5ef02d..a61237adba4 100644 Binary files a/Master/texmf-dist/doc/latex/rsc/rsc.pdf and b/Master/texmf-dist/doc/latex/rsc/rsc.pdf differ diff --git a/Master/texmf-dist/source/latex/rsc/rsc.dtx b/Master/texmf-dist/source/latex/rsc/rsc.dtx index 7256cac6f41..dd5d0d8d577 100644 --- a/Master/texmf-dist/source/latex/rsc/rsc.dtx +++ b/Master/texmf-dist/source/latex/rsc/rsc.dtx @@ -5,33 +5,38 @@ % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either -% version 1.3 of this license or (at your option) any later +% version 1.3c of this license or (at your option) any later % version. The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3c or later is part of all distributions of % LaTeX version 2005/12/01 or later. % -% This work has the LPPL maintenance status ``maintained.'' +% This work has the LPPL maintenance status `maintained'. % % The current maintainer of this work is Joseph Wright. % % This work consists of the source file rsc.dtx % and the derived files rsc.ins, % rsc.sty, -% rsc.pdf, % rsc.bst, -% rscM.bst -% rscnat.bst, -% rsc-mc.bst, % angew.bst, -% angeM.bst -% angewnat.bst, -% angew-mc.bst and -% jawltxdoc.sty +% jawltxdoc.sty, +% rsc-manual.pdf and +% rsc.pdf +% +% TDS-ready files: +% The compressed file rsc.tds.zip contains an unpacked version of +% all of the files included here, and pre-compiled documentation +% in PDF format. Simply decompress rsc.tds.dtx in your local TeX +% directory, run your hash program (texhash, initexmf +% --update-fndb, etc.) and everything will be ready to go. The +% user documentation for the package is called rsc-manual.pdf; the +% file rsc.pdf includes the user manual and the full source code. +% % Unpacking: -% (a) If achemso.ins is present: +% (a) If rsc.ins is present: % tex rsc.ins -% (b) Without achemso.ins: +% (b) Without rsc.ins: % tex rsc.dtx % (c) If you use LaTeX to generate files: % latex \let\install=y\input{rsc.dtx} @@ -39,9 +44,10 @@ % Documentation: % (a) Without write18 enabled: % pdflatex rsc.dtx -% makeindex -s gglo.ist -o rsc.gls rsc.glo +% bibtex8 --wolfgang rsc +% makeindex -s gind.ist rsc.idx +% makeindex -s gglo.ist -o rsc.gls rsc.glo % pdflatex rsc.dtx -% makeindex -s gglo.ist -o rsc.gls rsc.glo % pdflatex rsc.dtx % (b) With write18 enabled: % pdflatex rsc.dtx @@ -49,14 +55,15 @@ % pdflatex rsc.dtx % % Installation: -% Copy rsc.sty and the *.bst files to a location -% searched by TeX, and if required by your TeX installation, -% run the appropriate command to build a hash of files -% (texhash, mpm --update-db, etc.) +% Copy rsc.sty and the two .bst files to a location searched by +% TeX, and if required by your TeX installation, run the +% appropriate command to build a hash of files (texhash, initexmf +% --update-fndb, etc.) % % Note: -% The jawltxdoc.sty file is not needed for installation, -% only for building the documentation. It may be deleted. +% The jawltxdoc.sty file is not needed for installation, only for +% building the documentation; it may be deleted after producing +% the documentation (if necessary). % %<*ignore> % This is all taken verbatim from Heiko Oberdiek's packages @@ -74,54 +81,68 @@ \askforoverwritefalse \preamble ---------------------------------------------------------------- - The rsc package - BibTeX support for Royal Society of Chemistry - and Wiley style article + The rsc package --- BibTeX styles for Royal Society of Chemistry + and Wiley journals Maintained by Joseph Wright E-mail: joseph.wright@morningstar2.co.uk - Released under the LaTeX Project Public License v1.3 or later + Released under the LaTeX Project Public License v1.3c or later See http://www.latex-project.org/lppl.txt ---------------------------------------------------------------- \endpreamble -\Msg{Generating achemso files:} -\usedir{tex/latex/contib/rsc} +\Msg{Generating rsc files:} +\generate{\file{jawltxdoc.sty}{\from{\jobname.dtx}{jawltxdoc}} +} +\usedir{tex/latex/rsc} +\generate{\file{\jobname.sty}{\from{\jobname.dtx}{package}} +} +\usedir{source/latex/rsc} \generate{\file{\jobname.ins}{\from{\jobname.dtx}{install}} - \file{\jobname.sty}{\from{\jobname.dtx}{package}} - \file{jawltxdoc.sty}{\from{\jobname.dtx}{jawltxdoc}} } -\declarepostamble\bibtexable -\endpostamble +\nopostamble \usedir{bibtex/bst/rsc} -\generate{\usepostamble\bibtexable - \file{rsc.bst}{\from{rsc.dtx}{bib,rsc}} - \file{rscnat.bst}{\from{rsc.dtx}{bib,rsc,nat}} - \file{rsc-mc.bst}{\from{rsc.dtx}{bib,rsc,mc}} +\generate{\file{rsc.bst}{\from{rsc.dtx}{bib,rsc}} \file{angew.bst}{\from{rsc.dtx}{bib,angew}} - \file{angewnat.bst}{\from{rsc.dtx}{bib,angew,nat}} - \file{angew-mc.bst}{\from{rsc.dtx}{bib,angew,mc}} } -\generate{\usepostamble\bibtexable - \file{rscM.bst}{\from{rsc.dtx}{bib,rsc,mcp}} - \file{angewM.bst}{\from{rsc.dtx}{bib,angew,mcp}} - \file{rscnatM.bst}{\from{rsc.dtx}{bib,rsc,nat,mcp}} - \file{angewnatM.bst}{\from{rsc.dtx}{bib,angew,nat,mcp}} +\nopreamble\nopostamble +\usedir{doc/latex/rsc} +\generate{\file{README.txt}{\from{\jobname.dtx}{readme}} + \file{\jobname.bib}{\from{\jobname.dtx}{refs}} } \endbatchfile % +%<*readme> +---------------------------------------------------------------- +The rsc package --- BibTeX styles for Royal Society of Chemistry +and Wiley journals +Maintained by Joseph Wright +E-mail: joseph.wright@morningstar2.co.uk +Released under the LaTeX Project Public License v1.3c or later +See http://www.latex-project.org/lppl.txt +---------------------------------------------------------------- + +The rsc package provides BibTeX style files to produce +bibliographies in accordance with the guidelines of the Royal +Society of Chemistry and Wiley chemistry-related journals. The +styles require the use of natbib and mciteplus. In addition, a +short LaTeX package is included; this provides a convenient +user interface to the customisation hooks made available by the +BibTeX styles. +% %<*ignore> \fi % Will Robertson's trick +\immediate\write18{bibtex8 --wolfgang \jobname} +\immediate\write18{makeindex -s gglo.ist -o \jobname.gls \jobname.glo} \immediate\write18{makeindex -s gglo.ist -o \jobname.gls \jobname.glo} % %<*driver> \PassOptionsToClass{a4paper}{article} -\documentclass{ltxdoc} +\documentclass[german,english,UKenglish]{ltxdoc} \EnableCrossrefs \CodelineIndex \RecordChanges %\OnlyDescription -% The various formatting commands used in this file are collected -% together in |jawltxdoc|. \usepackage{jawltxdoc} \begin{document} \DocInput{\jobname.dtx} @@ -129,7 +150,7 @@ % % \fi % -%\CheckSum{42} +%\CheckSum{118} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z @@ -149,26 +170,16 @@ % %\GetFileInfo{\jobname.sty} % -%\changes{v2.1}{2007/08/05}{Moved float centring to -% \pkg{chemscheme} package} -%\changes{v2.0}{2007/07/21}{Complete re-write of float support} -%\changes{v2.0}{2007/07/21}{General tidying of code} -%\changes{v1.0}{2006/11/08}{Initial release of packaged rsc.bst} -%\changes{v2.1a}{2007/08/24}{Fixed error in \BibTeX\ misc output} -%\changes{v2.2}{2007/10/16}{Added \textsc{url} support to -% \texttt{Misc} field} -%\changes{v2.2}{2007/10/16}{License change to LPPL} -%\changes{v2.2}{2007/10/16}{Improved packaging} -%\changes{v2.2}{2007/10/16}{\LaTeX\ package converted to stub} -%\changes{v2.2a}{2008/01/16}{Added \pkg{mciteplus} support} -%\changes{v2.2a}{2008/01/16}{Documentation improvements} -%\changes{v2.2b}{2008/01/16}{Added combined \pkg{mciteplus} and -% \pkg{natbib} support} +%\changes{v1.0}{2006/11/08}{Initial release of packaged +% \file{rsc.bst}} +%\changes{v2.0}{2007/07/21}{First re-write of package} +%\changes{v3.0}{2008/07/20}{Second re-write of package} % -%\DoNotIndex{} +%\setkeys{lst}{language=[LaTeX]{TeX},moretexcs={citet, +% citeyear,citeauthor}} % -%\title{The \currpkg\ package --- \texorpdfstring{\BibTeX}{BibTeX} -% support for Royal Society of Chemistry and Wiley style articles^^A +%\title{\currpkg\ --- \texorpdfstring{\BibTeX}{BibTeX} styles for +% Royal Society of Chemistry and Wiley journals^^A % \thanks{This file describes version \fileversion, last revised % \filedate.}} %\author{Joseph Wright^^A @@ -180,12 +191,17 @@ %\begin{abstract} % The \currpkg package provides \BibTeX\ style files to produce % bibliographies in accordance with the guidelines of the Royal -% Society of Chemistry and Wiley chemistry-related journals. The -% style files are available in versions for the standard \LaTeX\ -% citation methods and for use with \pkg{natbib}. Versions for use -% with \pkg{mcite} and \pkg{mciteplus} are also available. +% Society of Chemistry and Wiley chemistry-related journals. The +% styles require the use of \pkg{natbib} and \pkg{mciteplus}. In +% addition, a short \LaTeX\ package is included; this provides a +% convenient user interface to the customisation hooks made available +% by the \BibTeX\ styles. %\end{abstract} % +%\begin{multicols}{2} +% \tableofcontents +%\end{multicols} +% %\section{Introduction} % Although synthetic chemists do not, in the main, use \LaTeX\ for % the preparation of journal articles, it would be nice to be able to @@ -196,222 +212,211 @@ % of Chemistry. The package also provides support for the style used % in Wiley-published journals. % -% The \ext{bst} files are available in a number of variations. Those -% for RSC journals are names \file{rsc\meta{id}.bst}, those for Wiley -% journals are \file{angew\meta{id}.bst}. The value of \meta{id} can -% be: -%\begin{itemize} -% \item \meta{(none)} For use with standard \LaTeX\ citations (or -% the \pkg{cite} package; -% \item \meta{nat} \pkg{natbib}-compatible styles (which need the -% \opt{numbers,super} options with \pkg{natbib}; -% \item \meta{M} Designed for use with the \pkg{mciteplus} package; -% \item \meta{natM} Combine \pkg{mciteplus} and \pkg{natbib} support; -% \item \meta{-mc} For use with the \pkg{mcite} package, and provided -% for back-compatibility only. -%\end{itemize} -% -% For backward-compatibility the package provides the -% \file{rsc.sty} file. This has been superseded by the -% \pkg{chemstyle} package, and may be dropped in a future version of -% \pkg{rsc}. +% As of version 3, this bundle requires the use of \pkg{natbib} and +% \pkg{mciteplus}. These two packages make creating bibliographies +% much easier for chemists. As both require correctly-designed +% \BibTeX\ styles, providing versions supporting different combinations +% had become error-prone and confusing. % -%\section{Bibliography design decisions} -% Along with almost every \BibTeX\ style file, much of the \ext{bst} -% file design is inherited from the original \BibTeX\ style files -% provided by Oren Patashnik. However, while the original styles -% were designed to be flexible, the style files here are designed to -% do a single job. Thus much of the original flexibility has been -% stripped out to give a clearer design. This has many be achieved by -% removing unused functions. The style files provided here are -% therefore poor examples for others to work from! -% -% Chemistry journals give only minimal guidance on the format of -% references other than for journal articles. Most of the -% other types are therefore based on current practice in -% RSC and Wiley journals. Some of this is contradictory, and so -% I have gone with I feel is most consistent. -% Please e-mail me if you feel I have got things wrong! -% -%\section{Bibliography usage information} -%\subsection{Cross-references} -% Unlike most \BibTeX\ styles, the style files provided here do not -% support cross-referencing between references. Using \opt{crossref} -% will still fill in missing information, but will not output ``see -% ref.~X''. Chemistry references do not lend themselves to the use -% of \opt{crossref}. -% -%\subsection{Notes} -% As in \file{pccp.bst}, notes are not output for most reference -% types. The reasoning here is that it is difficult to predict how -% people will want to use notes. In chemistry, they may be used in -% several forms, for example: -%\begin{itemize} -% \item See for example: I. V. Gostunskaya, V. S. Petrova, A. I. -% Leonava, V. A. Mironava, M. Abubaker, and B. Kazanski, -% \emph{Neftekhimiya}, 1967, \textbf{7}, 3--8. -% \item I. V. Gostunskaya, V. S. Petrova, A. I. Leonava, V. A. -% Mironava, M. Abubaker, and B. Kazanski, \emph{Neftekhimiya}, 1967, -% \textbf{7}, 3--8 and references therein. -% \item I. V. Gostunskaya, V. S. Petrova, A. I. Leonava, V. A. -% Mironava, M. Abubaker, and B. Kazanski, \emph{Neftekhimiya}, 1967, -% \textbf{7}, 3--8 (\emph{Chem. Abs.}, 1967, \textbf{67}, 21276t). -%\end{itemize} -% This is pretty much impossible to handle automatically, especially as -% the format you want might change depending on the report you are -% writing. So I would recommend using the |misc| type, and doing the -% formatting by hand. If other people feel the behaviour is not the -% best solution, please e-mail me. -% -%\subsection{Multiple citations} -% By default, \BibTeX\ does not handle producing compound references. -% The \pkg{mciteplus} package solves this problem, and is highly -% recommended to users of \currpkg. This allows you to put something -% like: -%\begin{LaTeXexample}[\typesetcodeonly] +%\section{Using the styles} +% The styles are used in the normal way for \BibTeX\ styles, as the +% argument to the \cs{bibliographystyle} macro. As both \pkg{natbib} +% and \pkg{mciteplus} are required, these must of course be loaded. +% Citations can then be given as normal: +%\begin{LaTeXexample} +% Some standard citations +% \cite{Abernethy2003,Cotton1999}.\\ +% A multiple citation +% \cite{Arduengo1992,*Arduengo1994}.\\ +% Some \textsf{natbib}-specific features: +% \citet{Abernethy2003} have said something, +% as reported by \citeauthor{Cotton1999}, +% in \citeyear{Arduengo1992}. +%\end{LaTeXexample} +% To make life slightly easier for the user, a small \LaTeX\ package +% accompanies the \BibTeX\ files. It automatically loads the support +% packages, and handles customisation (see the next section). +%\begin{LaTeXexample}[noexample] % \documentclass{article} -% \usepackage{mciteplus} +% \usepackage{rsc} % \begin{document} -% \cite{Ofele1968,*Abernethy2000} -% \bibliography{example} -% \bibliographystyle{rscM} +% % Document body here +% \bibliographystyle{rsc} % or angew +% \bibliography{your-bibtex-database} % \end{document} %\end{LaTeXexample} -% and get output of the form: -%\begin{enumerate} -% \item (\emph{a}) K.~\"Ofele, \emph{J.~Organomet.~Chem.}, 1968, -% \textbf{12}, P42--P43; (\emph{b}) C.~D.~Abernethy, A.~H.~Cowley -% and R.~A.\ Jones, \emph{J.~Organomet.~Chem.}, 2000, -% \textbf{596}, 3--5. -%\end{enumerate} -% in the bibliography. % -% Previous versions of \currpkg recommended the \pkg{mcite} package -% for compound citations. With the release of \pkg{mciteplus}, -% \pkg{mcite} is superseded for this -% purpose.\footnote{\pkg{mciteplus} fixes a number of bugs in -% \pkg{mcite} and adds the ability to add labels to each compound -% reference.} However, \currpkg continues to provide the -% \file{rsc-mc} and \file{angew-mc} \BibTeX\ styles for users of -% \pkg{mcite}. +%\section{Customising the styles: the \texorpdfstring{\LaTeX}{LaTeX} +% package} +% Both of the styles provide a small number of control hooks to +% modify the output behaviour. These can be altered directly, using +% a mechanism similar to that used by \pkg{IEEEtrans}. However, for +% most users, this is overly complex. A short \LaTeX\ package is +% therefore provided, which provides high-level access to the +% customisation. % -%\subsection{\pkg{natbib} support} -% The files \file{rscnat.bst} and \file{angewnat.bst} provide support -% for the generation of bibliographies for use with the \pkg{natbib} -% package. As well as altering the \cs{bibliographystyle} command -% appropriately, you also need to load \pkg{natbib}. The \currpkg -% package file provides the option \opt{natbib}, which loads -% \pkg{natbib} automatically (normally, \currpkg loads the \pkg{cite} -% package). +%\DescribeOption{maxnames} +%\DescribeOption{usetitle} +%\DescribeOption{usedoi} +% The \opt{maxnames} option sets whether and when a long list of +% authors is truncated, and takes an integer value. Giving the value +% \opt{0} means that no truncation occurs, otherwise the list is +% truncated if the number of names exceeds the given value. The +% \opt{usetitle} and \opt{usedoi} options are simple Boolean +% switches. The \opt{usetitle} option sets whether to include the +% titles of journal articles in the bibliography. The default is +% \opt{false}; the only \textsc{rsc} journal using article titles is +% \emph{Photochemical \& Photobiological Sciences}. The \opt{usedoi} +% option forces the use of \textsc{doi} information in cases where it +% would not normally be present (for example journal articles with +% page ranges available). This is intended to make it easier for +% readers to find journal information. % -%\subsection{Additional entry types} -% In order to ensure compatibility with the \pkg{achemso} package, -% the non-standard entry types |remark|, |inpress| and |submitted| -% are supported. The implementation is modelled on -% \file{achemso.bst}, but the |notes| field is not used for |inpress| -% and |submitted|. +%\DescribeOption{super} +% The \opt{super} Boolean option turns on superscript citations, and +% is \opt{true} by default. It also causes the \pkg{natmove} package +% to be loaded if available (\pkg{natmove} is part of the +% \pkg{achemso} bundle). This ensures that citations appear +% \emph{after} punctuation even if given before in the text. This +% documentation has been compiled using \pkg{natmove}: see the input +% of the example citations in the previous section. % -%\StopEventually{} +%\bibliographystyle{rsc} +%\StopEventually{% +% \PrintChanges +% \PrintIndex +% \bibliography{rsc}} % -% \iffalse +%\iffalse %<*package> -% \fi -%\section{The package code} -%\subsection{Setup code} -% First of all, the package identifies itself. +%\fi +% +%\section{The \texorpdfstring{\LaTeX}{LaTeX} source} +% The package starts with the usual identification. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{rsc}[2008/01/16 v2.2b - Useful chemistry functions] -% \end{macrocode} -% A warning is given that the package has been superseded. -% \begin{macrocode} -\PackageInfo{rsc}{The rsc package has been superseded!} -% \end{macrocode} -% Various options from the original package have to -% be processed correctly. -% \begin{macrocode} -\DeclareOption{floatleft}{\AtEndOfPackage{\floatcontentsleft}} -\DeclareOption{fl}{\ExecuteOptions{floatleft}} -\DeclareOption{natbib}{\AtEndOfPackage{% - \RequirePackage[numbers,sort&compress,super]{natbib}}} -% \end{macrocode} -% The default option is \opt{rsc}. This loads \pkg{chemstyle} with -% the appropriate option, then alters the bibliography format and -% reports back to the user. -% \begin{macrocode} -\DeclareOption{rsc}{% - \PassOptionsToPackage{\CurrentOption}{chemstyle}% - \def\@biblabel#1{#1}% - \PackageInfo{rsc}% - {Loading the chemstyle package with the `rsc' option}% -} +\ProvidesPackage{rsc} + [2008/08/27 v3.0 Support for RSC and Wiley journals] +\RequirePackage{mciteplus,kvoptions} % \end{macrocode} -% The other possible journal style is |angew|. Once again, -% |chemstyle| is loaded and information is given. A bit of -% re-formatting of citations is then carried out as the |chemstyle| -% package does not do this. +%\begin{macro}{\ifrsc@super} +%\begin{macro}{\ifrsc@usetitle} +%\begin{macro}{\ifrsc@usedoi} +%\begin{macro}{\rsc@maxauthors} +% To make life easier for the user, the control values for the +% bibliography are converted into \LaTeX\ package options using +% \pkg{kvoptions}. % \begin{macrocode} -\DeclareOption{angew}{% - \PassOptionsToPackage{\CurrentOption}{chemstyle}% - \PackageInfo{rsc}% - {Loading the chemstyle package with the `angew' option}% - \AtBeginDocument{% - \@ifpackageloaded{natbib} - {\renewcommand*\NAT@open{[}\renewcommand*\NAT@close{]}} - {\def\@citess#1{\textsuperscript{[#1]}}} - } -} +\SetupKeyvalOptions{ + family = rsc, + prefix = rsc@} +\DeclareBoolOption{super} +\DeclareBoolOption{usetitle} +\DeclareBoolOption{usedoi} +\DeclareStringOption{maxauthors} +\setkeys{rsc}{ + maxauthors = 0, + usetitle = false, + usedoi = false, + super = true} +\ProcessKeyvalOptions{rsc} % \end{macrocode} -% Anything else is passed to \pkg{chemstyle}. +%\end{macro} +%\end{macro} +%\end{macro} +%\end{macro} +%\begin{macro}{\rsc@prefix} +%\begin{macro}{\rsc@msg} +% Some set up work is carried out for writing to the control +% bibliography. % \begin{macrocode} -\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{chemstyle}} +\newcommand*{\rsc@prefix}{rsc-} +\edef\rsc@msg{% + This is an auxiliary file used by the `rsc' package.^^J% + This file may safely be deleted. It will be recreated as + required.^^J} % \end{macrocode} -% The \currpkg option is the default. +%\end{macro} +%\end{macro} +%\begin{macro}{\rsc@out} +%\begin{macro}{\rsc@stream} +% Assuming files are being written, the control values are placed in +% the control \BibTeX\ database. % \begin{macrocode} -\ExecuteOptions{rsc} -\ProcessOptions\relax +\if@filesw + \newwrite\rsc@out + \newcommand*\rsc@stream{\rsc@prefix\jobname.bib}% + \immediate\openout\rsc@out\rsc@stream\relax + \immediate\write\rsc@out{\rsc@msg}% + \edef\@tempa#1#2{\space\space#1\space=\space"#2",^^J}% + \immediate\write\rsc@out{% + @Control\string{rsc-control,^^J% + \@tempa{ctrl-use-title}{\ifrsc@usetitle yes\else no\fi}% + \@tempa{ctrl-etal-number}{\rsc@maxauthors}% + \@tempa{ctrl-use-doi-all}{\ifrsc@usedoi yes\else no\fi}% + \string}^^J}% +\fi % \end{macrocode} -% \pkg{chemstyle} can now be loaded. +%\end{macro} +%\end{macro} +%\begin{macro}{\rsc@bibliography} +%\begin{macro}{\bibliography} +% Finally, the control database and a suitable citation are added to +% the document body. The citation has to come right at the end of +% the \cs{document} macro. % \begin{macrocode} -\RequirePackage{chemstyle} -\floatcontentscentre +\AtBeginDocument{ + \let\rsc@bibliography\bibliography + \renewcommand*{\bibliography}[1]{% + \rsc@bibliography{\rsc@prefix\jobname,#1}}} +\g@addto@macro{\document}{% + \if@filesw + \immediate\write\@auxout{% + \string\citation\string{rsc-control\string}}% + \fi} % \end{macrocode} -% If \pkg{natbib} is not loaded, then \pkg{cite} is needed. +%\end{macro} +%\end{macro} +% Citation support is loaded. % \begin{macrocode} -\AtEndOfPackage{ - \@ifpackageloaded{natbib}{} - {\RequirePackage[super]{cite}} -} +\ifrsc@super + \RequirePackage[sort&compress,numbers,super]{natbib} + \IfFileExists{natmove.sty} + {\RequirePackage{natmove}} + {} +\else + \RequirePackage[sort&compress,numbers]{natbib} +\fi % \end{macrocode} % -% \iffalse +%\iffalse % -% \fi -%\section{The \texorpdfstring{\BibTeX}{BibTeX} style files} -% A great deal of the \BibTeX\ style file information is lifted more -% or less directly from the standard style files, the -% \pkg{custom-bib} package or \emph{Taming the BeaST}. The rest -% consists of minor edits to obtain the correct format or support the -% \pkg{natbib}, \pkg{mcite} and \pkg{mciteplus} packages. Only two -% functions are novel to this package, and are given here for the -% interested reader. -% -% \iffalse %<*bib> +%\fi +%\section{The \texorpdfstring{\BibTeX}{BibTeX} source} +% Very little of the \BibTeX\ source is very exciting, with +% most of it taken from the standard classes, the \pkg{natbib} and +% \pkg{mciteplus} classes or \emph{Tame the BeaST}. % \begin{macrocode} ENTRY { address author booktitle chapter +% \end{macrocode} +% The next three entries are used to allow formatting control, in +% the style of \pkg{biblatex}. +% \begin{macrocode} + ctrl-use-title + ctrl-etal-number + ctrl-use-doi-all doi edition editor howpublished institution journal -% key + key note number organization @@ -426,16 +431,14 @@ ENTRY year } {} -% { label } -%<*nat> { label extra.label short.list } -% -INTEGERS { output.state before.all mid.sentence after.sentence } -INTEGERS { after.block after.item author.or.editor } +INTEGERS { output.state before.all mid.sentence } +INTEGERS { after.sentence after.block after.item } +INTEGERS { author.or.editor } FUNCTION {init.state.consts} { #0 'before.all := @@ -445,6 +448,29 @@ FUNCTION {init.state.consts} #4 'after.item := } +% \end{macrocode} +% Using a trick from \pkg{biblatex}, some integers are made available +% to control some formatting aspects without needing a new style. +% \begin{macrocode} +INTEGERS { is.use.title etal.number use.doi.all } + +% \end{macrocode} +% A simple Boolean switch for controlling title output. +% \begin{macrocode} +FUNCTION {default.is.use.title} { #0 } + +% \end{macrocode} +% The number of names that force ``\emph{et al.}'' to be used +%If set to 0, all names are displayed +% \begin{macrocode} +FUNCTION {default.etal.number} { #0 } + +% \end{macrocode} +% A simple Boolean switch for controlling DOI printing for normal +% entries. +% \begin{macrocode} +FUNCTION {default.use.doi.all} { #0 } + FUNCTION {add.comma} { ", " * } @@ -490,37 +516,11 @@ FUNCTION {output.check} if$ } -%<*!nat> -FUNCTION {output.bibitem} -{ newline$ - "\bibitem{" write$ - cite$ write$ - "}" write$ - newline$ - "" - before.all 'output.state := -} - -% -%<*!mc&!mcp> -FUNCTION {fin.entry} -{ add.period$ - write$ - newline$ -} - -% -%<*mc> -FUNCTION {fin.entry} -{ write$ - "\relax" write$ - newline$ - "\relax" write$ -} +% \end{macrocode} +% Some functions taken more or less verbatim from \pkg{mciteplus}. +% \begin{macrocode} +INTEGERS { would.add.period.textlen } -% -%<*mcp> -INTEGERS {would.add.period.textlen} FUNCTION {would.add.period} { duplicate$ add.period$ @@ -554,8 +554,6 @@ FUNCTION {fin.entry} "\EndOfBibitem" write$ } -% - FUNCTION {not} { { #0 } { #1 } @@ -602,6 +600,10 @@ FUNCTION {paren} if$ } +% \end{macrocode} +% Using independent strings makes editing easier. Here, a number of +% variations between the RSC and Wiley styles show up. +% \begin{macrocode} FUNCTION {bbl.and} { "and" } @@ -609,6 +611,10 @@ FUNCTION {bbl.chapter} %{ "ch." } %{ "Chapter" } +FUNCTION {bbl.doi} +%{ "DOI:" } +%{ "DOI" } + FUNCTION {bbl.editor} %{ "ed." } %{ "Ed.:" } @@ -702,7 +708,9 @@ FUNCTION {eng.ord} if$ } -%<*angew> +% \end{macrocode} +% A search and replace system taken from \emph{Tame the BeaST}. +% \begin{macrocode} INTEGERS{ l } FUNCTION{string.length} @@ -736,7 +744,22 @@ FUNCTION{find.replace} while$ } -% +% \end{macrocode} +% Also some checks on whether a ``string'' is really a number. +% \begin{macrocode} +FUNCTION {chr.to.value} +{ chr.to.int$ #48 - + duplicate$ duplicate$ + #0 < swap$ #9 > or + { #48 + int.to.chr$ + " is not a number..." * + warning$ + pop$ #0 + } + {} + if$ +} + FUNCTION{is.a.digit} { duplicate$ "" = {pop$ #0} @@ -836,29 +859,40 @@ FUNCTION {format.names} #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := - { namesleft #0 > } - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := - nameptr #1 > - { namesleft #1 > - { add.comma t * } - { numnames #2 > - { "" * } - 'skip$ - if$ - t "others" = - { bbl.etal space.connect } -% { bbl.and space.connect t space.connect } -% { add.comma t * } +% \end{macrocode} +% Names are truncated if there are more than |etal.number|, and it is +% not set to zero. +% \begin{macrocode} + numnames etal.number > etal.number #0 > and + { s #1 "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + t bbl.etal space.connect + } + { + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { add.comma t * } + { numnames #2 > + { "" * } + 'skip$ + if$ + t "others" = + { bbl.etal space.connect } +% { bbl.and space.connect t space.connect } +% { add.comma t * } + if$ + } if$ } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } + if$ } FUNCTION {format.authors} @@ -870,14 +904,9 @@ FUNCTION {format.authors} } % \end{macrocode} -% \fi -% The |strip.comma| function is used to ``unwind'' -% the comma added by output.nonnull, so that editors -% in brackets are easy to do. This is needed for the |angew| -% option. -% \iffalse -%<*angew> -% \fi +% The |strip.comma| function is used to ``unwind'' the comma added by +% |output.nonnull|, so that editors in brackets are easy to do. This +% is needed for the Wiley style. % \begin{macrocode} FUNCTION {strip.comma} { duplicate$ @@ -892,37 +921,38 @@ FUNCTION {strip.comma} if$ } -% \end{macrocode} -% \iffalse -% -% \begin{macrocode} FUNCTION {format.editors} { editor empty$ { "" } { #2 'author.or.editor := -%<*rsc> - bbl.editor " " * * - editor format.names -% -%<*angew> - strip.comma - editor num.names$ #1 > - { bbl.editors } - { bbl.editor } +% bbl.editor " " * * +% editor format.names +% strip.comma +% editor num.names$ #1 > +% { bbl.editors } +% { bbl.editor } +% if$ +% " " * +% editor format.names * paren + } + if$ +} + +FUNCTION {format.doi} +{ use.doi.all + { doi empty$ + { bbl.doi doi tie.or.space.connect output } + 'skip$ if$ - " " * - editor format.names * paren -% } + 'skip$ if$ } % \end{macrocode} -% \fi -% -% |n.separate| is given in the |custom-bib| package. The following -% function is modified to separate out a number of any length into -% digit groups, \emph{e.g.}~12345 turns into 12\,345, 1234567 in +% |n.separate| is given in the \pkg{custom-bib} package. The +% following function is modified to separate out a number of any +% length into digit groups, \eg~12345 turns into 12\,345, 1234567 in % 1\,234\,567 but 1234 or a12345 are left alone. % \begin{macrocode} FUNCTION {n.separate.multi} @@ -957,9 +987,6 @@ FUNCTION {n.separate.multi} if$ } -% \end{macrocode} -% \iffalse -% \begin{macrocode} FUNCTION {format.bvolume} { volume empty$ { "" } @@ -990,7 +1017,6 @@ FUNCTION {format.url} if$ } -%<*angew> FUNCTION {format.title.vol} { 't := t empty$ @@ -1005,8 +1031,6 @@ FUNCTION {format.title.vol} if$ } -% -%<*nat> FUNCTION {format.full.names} {'s := #1 'nameptr := @@ -1092,7 +1116,6 @@ FUNCTION {output.bibitem} { newline$ before.all 'output.state := } -% FUNCTION {n.dashify} { 't := "" { t empty$ not } @@ -1136,7 +1159,8 @@ FUNCTION {format.bdate} 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$ } @@ -1263,7 +1287,6 @@ FUNCTION {format.title.in} if$ } -%<*angew> FUNCTION {format.title.vol.in} { 's := after.item 'output.state := @@ -1279,7 +1302,6 @@ FUNCTION {format.title.vol.in} if$ } -% FUNCTION {format.pub.address} { publisher empty$ { "" } @@ -1319,19 +1341,25 @@ FUNCTION {format.thesis.type} FUNCTION {article} { output.bibitem format.authors "author" output.check +% \end{macrocode} +% To allow titles to appear in article citations without needing a +% separate \BibTeX\ style file. +% \begin{macrocode} + is.use.title + { title format.title.noemph "title" output.check } + 'skip$ + if$ % journal emphasize "journal" output.check -%<*angew> - journal "," "" find.replace emphasize - "journal" output.check - after.item 'output.state := -% +% +% journal "," "" find.replace emphasize +% "journal" output.check +% after.item 'output.state := format.date "year" output.check volume empty$ - { "" - format.pages.nopp output - } - { format.vol.pages output } + { "" format.pages.nopp output } + { format.vol.pages output } if$ + format.doi fin.entry } @@ -1341,7 +1369,8 @@ FUNCTION {book} % { title format.title "title" output.check % { title format.title.vol "title" output.check editor empty$ - { "Need either an author or editor for " cite$ * warning$ } + { "Need either an author or editor for " + cite$ * warning$ } { "" format.editors * "editor" output.check } if$ } @@ -1359,6 +1388,7 @@ FUNCTION {book} 'skip$ { format.pages output } if$ + format.doi fin.entry } @@ -1369,6 +1399,7 @@ FUNCTION {booklet} howpublished output address output format.date output + format.doi fin.entry } @@ -1378,7 +1409,8 @@ FUNCTION {inbook} % { title format.title "title" output.check % { title format.title.vol "title" output.check editor empty$ - { "Need at least an author or an editor for " cite$ * warning$ } + { "Need at least an author or an editor for " + cite$ * warning$ } { "" format.editors * "editor" output.check } if$ } @@ -1392,22 +1424,28 @@ FUNCTION {inbook} format.bdate "year" output.check % format.bvolume output format.chapter.pages "chapter and pages" output.check + format.doi fin.entry } FUNCTION {incollection} { output.bibitem author empty$ -% { booktitle format.title "booktitle" output.check -% { booktitle format.title.vol "booktitle" output.check + { booktitle +% format.title +% format.title.vol + "booktitle" output.check editor empty$ - { "Need at least an author or an editor for " cite$ * warning$ } + { "Need at least an author or an editor for " + cite$ * warning$ } { "" format.editors * "editor" output.check } if$ } { format.authors output -% booktitle format.title.in "booktitle" output.check -% booktitle format.title.vol.in "booktitle" output.check + booktitle +% format.title +% format.title.vol + "booktitle" output.check } if$ format.pub.address "publisher" output.check @@ -1415,6 +1453,7 @@ FUNCTION {incollection} format.bdate "year" output.check % format.bvolume output format.chapter.pages "chapter and pages" output.check + format.doi fin.entry } @@ -1423,6 +1462,7 @@ FUNCTION {inpress} format.authors "author" output.check journal emphasize "journal" output.check bbl.inpress output + format.doi fin.entry } @@ -1437,6 +1477,7 @@ FUNCTION {inproceedings} 'skip$ { format.pages output } if$ + format.doi fin.entry } @@ -1466,6 +1507,7 @@ FUNCTION {manual} if$ format.edition output format.date output + format.doi fin.entry } @@ -1477,6 +1519,7 @@ FUNCTION {mastersthesis} school "school" output.check address output format.date "year" output.check + format.doi fin.entry } @@ -1492,6 +1535,7 @@ FUNCTION {misc} % format.date output format.url output note output + format.doi fin.entry empty.misc.check } @@ -1510,6 +1554,7 @@ FUNCTION {patent} journal emphasize "journal" output.check format.pages.patent "pages" output.check format.date "year" output.check + format.doi fin.entry } @@ -1521,6 +1566,7 @@ FUNCTION {phdthesis} school "school" output.check address output format.date "year" output.check + format.doi fin.entry } @@ -1534,19 +1580,7 @@ FUNCTION {proceedings} 'skip$ { format.pages output } if$ - fin.entry -} - -FUNCTION {remark} -{ output.bibitem - note "note" output.check - fin.entry -} - -FUNCTION {submitted} -{ output.bibitem - format.authors "author" output.check - bbl.submitted output + format.doi fin.entry } @@ -1567,6 +1601,7 @@ FUNCTION {techreport} output format.pub.address output format.date "year" output.check + format.doi fin.entry } @@ -1579,17 +1614,104 @@ FUNCTION {unpublished} if$ doi empty$ { note output } -%<*rsc> - { format.date output - "DOI:" doi tie.or.space.connect output - } -% -% { "DOI" doi tie.or.space.connect output } + { +% format.date output + bbl.doi doi tie.or.space.connect output + } if$ fin.entry empty.doi.note } +% \end{macrocode} +% Using the same mechanism as in \pkg{biblatex}, control of output +% can be achieved using a special entry type. The auxiliary macros +% come from \pkg{biblatex} and \emph{Tame the BeaST}. +% \begin{macrocode} +INTEGERS { a b } + +FUNCTION {mult} +{ 'a := + 'b := + b #0 < + {#-1 #0 b - 'b :=} + {#1} + if$ + #0 + {b #0 >} + { a + + b #1 - 'b := + } + while$ + swap$ + 'skip$ + {#0 swap$ -} + if$ +} + +FUNCTION {str.to.int.aux} +{ {duplicate$ empty$ not} + { swap$ #10 mult 'a := + duplicate$ #1 #1 substring$ + chr.to.value a + + swap$ + #2 global.max$ substring$ + } + while$ + pop$ +} + +FUNCTION {str.to.int} +{ duplicate$ #1 #1 substring$ "-" = + {#1 swap$ #2 global.max$ substring$} + {#0 swap$} + if$ + #0 swap$ str.to.int.aux + swap$ + {#0 swap$ -} + {} + if$ +} + +FUNCTION {yes.no.to.int} +{ "l" change.case$ duplicate$ + "yes" = + { pop$ #1 } + { duplicate$ "no" = + { pop$ #0 } + { "unknown Boolean " quote$ * swap$ * quote$ * + " in " * cite$ * warning$ + #0 + } + if$ + } + if$ +} + +FUNCTION {Control} +{ ctrl-use-title + empty$ + { skip$ } + { ctrl-use-title + yes.no.to.int + 'is.use.title := } + if$ + ctrl-etal-number + empty$ + { skip$ } + { ctrl-etal-number + str.to.int + 'etal.number := } + if$ + ctrl-use-doi-all + empty$ + { skip$ } + { ctrl-use-doi-all + yes.no.to.int + 'use.doi.all := } + if$ +} + FUNCTION {conference} {inproceedings} FUNCTION {other} {patent} @@ -1611,34 +1733,15 @@ MACRO {dec} {"December"} READ -%<*!nat> -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$ +% \end{macrocode} +% Set up the special control entries. +% \begin{macrocode} +FUNCTION {initialize.controls} +{ default.is.use.title 'is.use.title := + default.etal.number 'etal.number := + default.use.doi.all 'use.doi.all := } -EXECUTE {initialize.longest.label} - -ITERATE {longest.label.pass} - -% -%<*nat> INTEGERS { len } FUNCTION {chop.word} @@ -1660,7 +1763,8 @@ FUNCTION {format.lab.names} 'skip$ { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = { bbl.etal space.connect } - { bbl.and space.connect s #2 "{vv~}{ll}" format.name$ space.connect } + { bbl.and space.connect s #2 "{vv~}{ll}" + format.name$ space.connect } if$ } if$ @@ -1699,7 +1803,8 @@ FUNCTION {author.key.organization.label} { key empty$ { organization empty$ { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } + { "The " #4 organization chop.word #3 + text.prefix$ } if$ } 'key @@ -1714,7 +1819,8 @@ FUNCTION {editor.key.organization.label} { key empty$ { organization empty$ { cite$ #1 #3 substring$ } - { "The " #4 organization chop.word #3 text.prefix$ } + { "The " #4 organization chop.word #3 + text.prefix$ } if$ } 'key @@ -1788,25 +1894,6 @@ EXECUTE {initialize.longest.label} ITERATE {forward.pass} -% -%<*!mcp> -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - "\providecommand{\url}[1]{\texttt{#1}}" - write$ newline$ -% "\begin{thebibliography}{" longest.label * "}" * write$ newline$ -% "\begin{mcbibliography}{" longest.label * "}" * write$ newline$ -% "\begin{thebibliography}{" number.label int.to.str$ * "}" * -% write$ newline$ -% "\providecommand{\natexlab}[1]{#1}" -% write$ newline$ -} - -% -%<*mcp> FUNCTION {begin.bib} { preamble$ empty$ 'skip$ @@ -1814,73 +1901,126 @@ FUNCTION {begin.bib} if$ "\ifx\mcitethebibliography\mciteundefinedmacro" write$ newline$ -% "\PackageError{rscM.bst}{mciteplus.sty has not been loaded}" -% "\PackageError{angewM.bst}{mciteplus.sty has not been loaded}" + " \PackageError" +% "{rsc.bst}" +% "{angew.bst}" + "{mciteplus.sty has not been loaded}" * * + write$ newline$ + " {This bibstyle requires the use of the" + " mciteplus package.}" * + write$ newline$ + "\fi" + write$ newline$ + "\begin{mcitethebibliography}{" + number.label int.to.str$ * "}" * write$ newline$ - "{This bibstyle requires the use of the mciteplus package.}\fi" + "\providecommand{\natexlab}[1]{#1}" write$ newline$ -% "\begin{mcitethebibliography}{" longest.label * "}" * write$ newline$ -% "\begin{mcitethebibliography}{" number.label int.to.str$ * "}" * -% write$ newline$ -% "\providecommand{\natexlab}[1]{#1}" -% write$ newline$ "\mciteSetBstSublistMode{f}" write$ newline$ -% "\mciteSetBstMaxWidthForm{subitem}{(\emph{\alph{mcitesubitemcount}})}" -% "\mciteSetBstMaxWidthForm{subitem}{\alph{mcitesubitemcount})}" + "\mciteSetBstMaxWidthForm{subitem}" write$ newline$ - "\mciteSetBstSublistLabelBeginEnd{\mcitemaxwidthsubitemform\space}" +% "{(\emph{\alph{mcitesubitemcount}})}" +% "{\alph{mcitesubitemcount})}" + write$ newline$ + "\mciteSetBstSublistLabelBeginEnd" + write$ newline$ + "{\mcitemaxwidthsubitemform\space}" write$ newline$ "{\relax}{\relax}" write$ newline$ } -% EXECUTE {begin.bib} EXECUTE {init.state.consts} ITERATE {call.type$} -%<*!mc&!mcp> -FUNCTION {end.bib} -{ newline$ - "\end{thebibliography}" write$ newline$ -} - -% -%<*mc> -FUNCTION {end.bib} -{ newline$ - "\end{mcbibliography}" write$ newline$ -} - -% -%<*mcp> FUNCTION {end.bib} { newline$ "\end{mcitethebibliography}" write$ newline$ } -% EXECUTE {end.bib} % \end{macrocode} +%\iffalse % %\fi -%\PrintChanges +% %\Finale %\iffalse +%<*refs> +@ARTICLE{Abernethy2003, + author = {Colin D. Abernethy and Gareth M. Codd and Mark D. Spicer + and Michelle K. Taylor}, + title = {{A} highly stable {N}-heterocyclic carbene complex of + trichloro-oxo-vanadium(\textsc{v}) displaying novel + {C}l---{C}(carbene) bonding interactions}, + journal = {{J}. {A}m. {C}hem. {S}oc.}, + year = {2003}, + volume = {125}, + pages = {1128--1129}, + number = {5}, + doi = {10.1021/ja0276321}, +} + +@ARTICLE{Arduengo1992, + author = {Arduengo, III, Anthony J. and H. V. Rasika Dias and + Richard L. Harlow and Michael Kline}, + title = {{E}lectronic stabilization of nucleophilic carbenes}, + journal = {{J}.~{A}m.\ {C}hem.\ {S}oc.}, + year = {1992}, + volume = {114}, + pages = {5530--5534}, + number = {14}, + doi = {10.1021/ja00040a007}, +} + +@ARTICLE{Arduengo1994, + author = {Arduengo, III, Anthony J. and Siegfried F. Gamper and + Joseph C. Calabrese and Fredric Davidson}, + title = {{L}ow-coordinate carbene complexes of nickel(0) and + platinum(0)}, + journal = jacsat, + year = {1994}, + volume = {116}, + pages = {4391--4394}, + number = {10}, + doi = {10.1021/ja00089a029}, +} + +@BOOK{Cotton1999, + title = {{A}dvanced {I}norganic {C}hemistry}, + publisher = {Wiley}, + year = {1999}, + author = {Cotton, Frank Albert and Wilkinson, Geoffrery and + Murillio, Carlos A. and Bochmann, Manfred}, + address = {Chichester}, + edition = {6}, +} +% %<*jawltxdoc> \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{jawltxdoc} \usepackage[T1]{fontenc} -\usepackage[english,UKenglish]{babel} +\usepackage{lmodern} +\usepackage[final]{listings,graphicx,microtype} \usepackage[scaled=0.95]{helvet} \usepackage[version=3]{mhchem} -\usepackage[final]{microtype} \usepackage[osf]{mathpazo} -\usepackage{booktabs,array,url,graphicx,courier,xspace} -\usepackage{upgreek,ifpdf,listings} +\usepackage{booktabs,array,url,courier,xspace,varioref} +\usepackage{upgreek,ifpdf,float,caption,longtable,babel} +\begingroup + \@ifundefined{eTeXversion} + {\aftergroup\@gobble} + {\aftergroup\@firstofone} +\endgroup + {\usepackage{etoolbox}} +\floatstyle{plaintop} +\restylefloat{table} +\labelformat{figure}{\figurename~#1} +\labelformat{table}{\tablename~#1} \ifpdf \usepackage{embedfile} \embedfile[% @@ -1892,118 +2032,148 @@ EXECUTE {end.bib} \IfFileExists{\jobname.sty} {\usepackage{\jobname}}{} \usepackage[numbered]{hypdoc} +\setcounter{IndexColumns}{2} \newlength\LaTeXwidth \newlength\LaTeXoutdent \newlength\LaTeXgap \setlength\LaTeXgap{1em} \setlength\LaTeXoutdent{-0.15\textwidth} -\newcommand*{\typesetexampleandcode}{% - \begin{list}{}{% - \setlength\itemindent{0pt} - \setlength\leftmargin\LaTeXoutdent - \setlength\rightmargin{0pt} - } - \item - \setlength\LaTeXoutdent{-0.15\textwidth} - \begin{minipage}[c]{\textwidth-\LaTeXwidth-\LaTeXoutdent-\LaTeXgap} - \lst@sampleInput - \end{minipage}% - \hfill% - \begin{minipage}[c]{\LaTeXwidth}% - \hbox to\linewidth{\box\lst@samplebox\hss}% - \end{minipage}% - \end{list} -} -\newcommand*{\typesetcodeandexample}{% - \begin{list}{}{% - \setlength\itemindent{0pt} - \setlength\leftmargin{0pt} - \setlength\rightmargin{0pt} - } - \item - \begin{minipage}[c]{\LaTeXwidth}% - \hbox to\linewidth{\box\lst@samplebox\hss}% - \end{minipage}% - \lst@sampleInput - \end{list} -} -\newcommand*{\typesetfloatexample}{% - \begin{list}{}{% - \setlength\itemindent{0pt} - \setlength\leftmargin{0pt} - \setlength\rightmargin{0pt} - } - \item - \lst@sampleInput - \begin{minipage}[c]{\LaTeXwidth}% - \hbox to\linewidth{\box\lst@samplebox\hss}% - \end{minipage}% - \end{list} -} -\newcommand*{\typesetcodeonly}{% - \begin{list}{}{% - \setlength\itemindent{0pt} - \setlength\leftmargin{0pt} - \setlength\rightmargin{0pt} - } - \item - \begin{minipage}[c]{\LaTeXwidth}% - \hbox to\linewidth{\box\lst@samplebox\hss}% - \end{minipage}% - \end{list} -} +\newbox\lst@samplebox \edef\LaTeXexamplefile{\jobname.tmp} \lst@RequireAspects{writefile} -\newbox\lst@samplebox -\lstnewenvironment{LaTeXexample}[1][\typesetexampleandcode]{% - \let\typesetexample#1 +\lstnewenvironment{LaTeXexample}[1][example]{% \global\let\lst@intname\@empty + \ifcsname LaTeXcode#1\endcsname + \expandafter\let\expandafter\LaTeXcode + \csname LaTeXcode#1\endcsname + \expandafter\let\expandafter\LaTeXcodeend + \csname LaTeXcode#1end\endcsname + \else + \PackageError{jawltxdoc} + {Undefined example type `#1'} + \@ehd + \let\LaTeXcode\relax + \let\LaTeXcodeend\relax + \fi + \LaTeXcode} + {\lst@EndWriteFile + \LaTeXcodeend} +\newcommand*{\LaTeXcodeexample}{% \setbox\lst@samplebox=\hbox\bgroup - \setkeys{lst}{language=[LaTeX]{TeX},tabsize=4,gobble=3,% - breakindent=0pt,basicstyle=\small\ttfamily,basewidth=0.51em,% - keywordstyle=\color{blue},% - morekeywords={% notes2bib - niibsetup,bibnote,bibnotetext,bibnotemark,thebibnote,% - flushnotestack,citenote,printbibnotes}} - \lst@BeginAlsoWriteFile{\LaTeXexamplefile} -}{% - \lst@EndWriteFile\egroup - \setlength\LaTeXwidth{\wd\lst@samplebox} - \typesetexample% -} -\newcommand*{\lst@sampleInput}{% + \LaTeXcodefloat} +\let\LaTeXcoderesultonly\LaTeXcodeexample +\newcommand*{\LaTeXcodeexampleend}{% + \egroup + \setlength\LaTeXwidth{\wd\lst@samplebox}% + \begin{list}{}{% + \setlength\itemindent{0pt} + \setlength\leftmargin\LaTeXoutdent + \setlength\rightmargin{0pt}}% + \item + \setlength\LaTeXoutdent{-0.15\textwidth} + \begin{minipage}[c]{% + \textwidth-\LaTeXwidth-\LaTeXoutdent-\LaTeXgap} + \LaTeXcodefloatend + \end{minipage}% + \hfill + \begin{minipage}[c]{\LaTeXwidth}% + \hbox to\linewidth{\box\lst@samplebox\hss}% + \end{minipage}% + \end{list}} +\newcommand*{\LaTeXcodefloat}{% + \setkeys{lst}{tabsize=4,gobble=3,breakindent=0pt, + basicstyle=\small\ttfamily,basewidth=0.51em, + keywordstyle=\color{blue}}% + \lst@BeginAlsoWriteFile{\LaTeXexamplefile}} +\let\LaTeXcodenoexample\LaTeXcodefloat +\let\LaTeXcodenoexampleend\@empty +\newcommand*{\LaTeXcodefloatend}{% \MakePercentComment\catcode`\^^M=10\relax - \small% + \small {\setkeys{lst}{SelectCharTable=\lst@ReplaceInput{\^\^I}% {\lst@ProcessTabulator}}% \leavevmode \input{\LaTeXexamplefile}}% - \MakePercentIgnore% -} + \MakePercentIgnore} +\newcommand*{\LaTeXcoderesultonlyend}{\egroup\LaTeXcodefloatend} +\lstnewenvironment{BibTeXexample}{% + \global\let\lst@intname\@empty + \setbox\lst@samplebox=\hbox\bgroup + \setkeys{lst}{tabsize=4,gobble=3,breakindent=0pt, + basicstyle=\small\ttfamily,basewidth=0.51em, + keywordstyle=\color{black}} + \lst@BeginAlsoWriteFile{\LaTeXexamplefile}} + {\lst@EndWriteFile + \LaTeXcodeexampleend} +\newcommand*{\DescribeOption}{% + \leavevmode\@bsphack\begingroup\MakePrivateLetters + \Describe@Option} +\newcommand*{\Describe@Option}[1]{\endgroup + \marginpar{\raggedleft\PrintDescribeEnv{#1}}% + \SpecialOptionIndex{#1}\@esphack\ignorespaces} +\newcommand*{\SpecialOptionIndex}[1]{\@bsphack + \index{#1\actualchar{\protect\ttfamily#1} + (option)\encapchar usage}% + \index{options:\levelchar#1\actualchar{\protect\ttfamily#1}% + \encapchar usage}\@esphack} +\newcommand*{\indexopt}[1]{\DescribeOption{#1}\opt{#1}} +\newcommand*{\DescribeOptionInfo}[2]{% + \DescribeOption{#1}% + \opt{#1=\meta{#2}}\xspace} +\newcommand*{\ofixarg}[1]{% + {\ttfamily[}% + \ifmmode \expandafter \nfss@text \fi + {% + \meta@font@select + \edef\meta@hyphen@restore{% + \hyphenchar\the\font\the\hyphenchar\font}% + \hyphenchar\font\m@ne + \language\l@nohyphenation + #1\/% + \meta@hyphen@restore + }% + {\ttfamily]}} \newcommand*{\pkg}[1]{\textsf{#1}} \newcommand*{\currpkg}{\pkg{\jobname}\xspace} \newcommand*{\opt}[1]{\texttt{#1}} +\newcommand*{\defaultopt}[1]{\opt{\textbf{#1}}} \newcommand*{\file}[1]{\texttt{#1}} \newcommand*{\ext}[1]{\file{.#1}} \newcommand*{\latin}[1]{\emph{#1}} \newcommand*{\etc}{% \@ifnextchar. {\latin{etc}} - {\latin{etc.}} - \xspace} + {\latin{etc}.\xspace}} \newcommand*{\eg}{% \@ifnextchar. {\latin{e.g}} - {\latin{e.g.}} - \xspace} + {\latin{e.g}.\xspace}} \newcommand*{\ie}{% \@ifnextchar. {\latin{i.e}} - {\latin{i.e.}} - \xspace} + {\latin{i.e}.\xspace}} +\newcommand*{\etal}{% + \@ifnextchar. + {\latin{et~al.}} + {\latin{et~al}.\xspace}} \newcommand*{\AMS}{{\protect\usefont{OMS}{cmsy}{m}{n}% A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}} \providecommand*{\eTeX}{\ensuremath{\varepsilon}-\TeX} -\newcommand*{\XeTeX} +\DeclareRobustCommand*{\XeTeX} {X\kern-.125em\lower.5ex\hbox{\reflectbox{E}}\kern-.1667em\TeX} +\providecommand*{\CTAN}{\textsc{ctan}} +\@ifpackageloaded{etoolbox} + {\patchcmd{\@addmarginpar} + {\@latex@warning@no@line {Marginpar on page \thepage\space moved}} + {\relax}{}{}} + {} +\newcounter{argument} +\g@addto@macro\endmacro{\setcounter{argument}{0}} +\newcommand*\darg[1]{% + \stepcounter{argument}% + {\ttfamily\char`\#\theargument~:~}#1\par\noindent\ignorespaces} +\newcommand*\doarg[1]{% + \stepcounter{argument}% + {\ttfamily\makebox[0pt][r]{[}% + \char`\#\theargument]:~}#1\par\noindent\ignorespaces} % %\fi diff --git a/Master/texmf-dist/source/latex/rsc/rsc.ins b/Master/texmf-dist/source/latex/rsc/rsc.ins index c0967115191..afe2edd1d0d 100644 --- a/Master/texmf-dist/source/latex/rsc/rsc.ins +++ b/Master/texmf-dist/source/latex/rsc/rsc.ins @@ -1,57 +1,53 @@ -%% -%% This is file `rsc.ins', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% rsc.dtx (with options: `install') -%% ---------------------------------------------------------------- -%% The rsc package - BibTeX support for Royal Society of Chemistry -%% and Wiley style article -%% Maintained by Joseph Wright -%% E-mail: joseph.wright@morningstar2.co.uk -%% Released under the LaTeX Project Public License v1.3 or later -%% See http://www.latex-project.org/lppl.txt -%% ---------------------------------------------------------------- -%% -\input docstrip.tex -\keepsilent -\askforoverwritefalse -\preamble - ---------------------------------------------------------------- - The rsc package - BibTeX support for Royal Society of Chemistry - and Wiley style article - Maintained by Joseph Wright - E-mail: joseph.wright@morningstar2.co.uk - Released under the LaTeX Project Public License v1.3 or later - See http://www.latex-project.org/lppl.txt - ---------------------------------------------------------------- - -\endpreamble -\Msg{Generating achemso files:} -\usedir{tex/latex/contib/rsc} -\generate{\file{\jobname.ins}{\from{\jobname.dtx}{install}} - \file{\jobname.sty}{\from{\jobname.dtx}{package}} - \file{jawltxdoc.sty}{\from{\jobname.dtx}{jawltxdoc}} -} -\declarepostamble\bibtexable -\endpostamble -\usedir{bibtex/bst/rsc} -\generate{\usepostamble\bibtexable - \file{rsc.bst}{\from{rsc.dtx}{bib,rsc}} - \file{rscnat.bst}{\from{rsc.dtx}{bib,rsc,nat}} - \file{rsc-mc.bst}{\from{rsc.dtx}{bib,rsc,mc}} - \file{angew.bst}{\from{rsc.dtx}{bib,angew}} - \file{angewnat.bst}{\from{rsc.dtx}{bib,angew,nat}} - \file{angew-mc.bst}{\from{rsc.dtx}{bib,angew,mc}} -} -\generate{\usepostamble\bibtexable - \file{rscM.bst}{\from{rsc.dtx}{bib,rsc,mcp}} - \file{angewM.bst}{\from{rsc.dtx}{bib,angew,mcp}} - \file{rscnatM.bst}{\from{rsc.dtx}{bib,rsc,nat,mcp}} - \file{angewnatM.bst}{\from{rsc.dtx}{bib,angew,nat,mcp}} -} -\endbatchfile -\endinput -%% -%% End of file `rsc.ins'. +%% +%% This is file `rsc.ins', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rsc.dtx (with options: `install') +%% ---------------------------------------------------------------- +%% The rsc package --- BibTeX styles for Royal Society of Chemistry +%% and Wiley journals +%% Maintained by Joseph Wright +%% E-mail: joseph.wright@morningstar2.co.uk +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% ---------------------------------------------------------------- +%% +\input docstrip.tex +\keepsilent +\askforoverwritefalse +\preamble + ---------------------------------------------------------------- + The rsc package --- BibTeX styles for Royal Society of Chemistry + and Wiley journals + Maintained by Joseph Wright + E-mail: joseph.wright@morningstar2.co.uk + Released under the LaTeX Project Public License v1.3c or later + See http://www.latex-project.org/lppl.txt + ---------------------------------------------------------------- + +\endpreamble +\Msg{Generating rsc files:} +\generate{\file{jawltxdoc.sty}{\from{\jobname.dtx}{jawltxdoc}} +} +\usedir{tex/latex/rsc} +\generate{\file{\jobname.sty}{\from{\jobname.dtx}{package}} +} +\usedir{source/latex/rsc} +\generate{\file{\jobname.ins}{\from{\jobname.dtx}{install}} +} +\nopostamble +\usedir{bibtex/bst/rsc} +\generate{\file{rsc.bst}{\from{rsc.dtx}{bib,rsc}} + \file{angew.bst}{\from{rsc.dtx}{bib,angew}} +} +\nopreamble\nopostamble +\usedir{doc/latex/rsc} +\generate{\file{README.txt}{\from{\jobname.dtx}{readme}} + \file{\jobname.bib}{\from{\jobname.dtx}{refs}} +} +\endbatchfile +\endinput +%% +%% End of file `rsc.ins'. diff --git a/Master/texmf-dist/tex/latex/rsc/rsc.sty b/Master/texmf-dist/tex/latex/rsc/rsc.sty index 865d990d08c..2b31377782a 100644 --- a/Master/texmf-dist/tex/latex/rsc/rsc.sty +++ b/Master/texmf-dist/tex/latex/rsc/rsc.sty @@ -6,47 +6,66 @@ %% %% rsc.dtx (with options: `package') %% ---------------------------------------------------------------- -%% The rsc package - BibTeX support for Royal Society of Chemistry -%% and Wiley style article +%% The rsc package --- BibTeX styles for Royal Society of Chemistry +%% and Wiley journals %% Maintained by Joseph Wright %% E-mail: joseph.wright@morningstar2.co.uk -%% Released under the LaTeX Project Public License v1.3 or later +%% Released under the LaTeX Project Public License v1.3c or later %% See http://www.latex-project.org/lppl.txt %% ---------------------------------------------------------------- %% \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{rsc}[2008/01/16 v2.2b - Useful chemistry functions] -\PackageInfo{rsc}{The rsc package has been superseded!} -\DeclareOption{floatleft}{\AtEndOfPackage{\floatcontentsleft}} -\DeclareOption{fl}{\ExecuteOptions{floatleft}} -\DeclareOption{natbib}{\AtEndOfPackage{% - \RequirePackage[numbers,sort&compress,super]{natbib}}} -\DeclareOption{rsc}{% - \PassOptionsToPackage{\CurrentOption}{chemstyle}% - \def\@biblabel#1{#1}% - \PackageInfo{rsc}% - {Loading the chemstyle package with the `rsc' option}% -} -\DeclareOption{angew}{% - \PassOptionsToPackage{\CurrentOption}{chemstyle}% - \PackageInfo{rsc}% - {Loading the chemstyle package with the `angew' option}% - \AtBeginDocument{% - \@ifpackageloaded{natbib} - {\renewcommand*\NAT@open{[}\renewcommand*\NAT@close{]}} - {\def\@citess#1{\textsuperscript{[#1]}}} - } -} -\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{chemstyle}} -\ExecuteOptions{rsc} -\ProcessOptions\relax -\RequirePackage{chemstyle} -\floatcontentscentre -\AtEndOfPackage{ - \@ifpackageloaded{natbib}{} - {\RequirePackage[super]{cite}} -} +\ProvidesPackage{rsc} + [2008/08/27 v3.0 Support for RSC and Wiley journals] +\RequirePackage{mciteplus,kvoptions} +\SetupKeyvalOptions{ + family = rsc, + prefix = rsc@} +\DeclareBoolOption{super} +\DeclareBoolOption{usetitle} +\DeclareBoolOption{usedoi} +\DeclareStringOption{maxauthors} +\setkeys{rsc}{ + maxauthors = 0, + usetitle = false, + usedoi = false, + super = true} +\ProcessKeyvalOptions{rsc} +\newcommand*{\rsc@prefix}{rsc-} +\edef\rsc@msg{% + This is an auxiliary file used by the `rsc' package.^^J% + This file may safely be deleted. It will be recreated as + required.^^J} +\if@filesw + \newwrite\rsc@out + \newcommand*\rsc@stream{\rsc@prefix\jobname.bib}% + \immediate\openout\rsc@out\rsc@stream\relax + \immediate\write\rsc@out{\rsc@msg}% + \edef\@tempa#1#2{\space\space#1\space=\space"#2",^^J}% + \immediate\write\rsc@out{% + @Control\string{rsc-control,^^J% + \@tempa{ctrl-use-title}{\ifrsc@usetitle yes\else no\fi}% + \@tempa{ctrl-etal-number}{\rsc@maxauthors}% + \@tempa{ctrl-use-doi-all}{\ifrsc@usedoi yes\else no\fi}% + \string}^^J}% +\fi +\AtBeginDocument{ + \let\rsc@bibliography\bibliography + \renewcommand*{\bibliography}[1]{% + \rsc@bibliography{\rsc@prefix\jobname,#1}}} +\g@addto@macro{\document}{% + \if@filesw + \immediate\write\@auxout{% + \string\citation\string{rsc-control\string}}% + \fi} +\ifrsc@super + \RequirePackage[sort&compress,numbers,super]{natbib} + \IfFileExists{natmove.sty} + {\RequirePackage{natmove}} + {} +\else + \RequirePackage[sort&compress,numbers]{natbib} +\fi \endinput %% %% End of file `rsc.sty'. -- cgit v1.2.3