diff options
author | Norbert Preining <preining@logic.at> | 2006-11-09 13:18:02 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2006-11-09 13:18:02 +0000 |
commit | 3696c8f2a98b5e48514a3608e0156c676b63470a (patch) | |
tree | 99006293861d5004c6de0938b605f6ef0e4b554a /Master/texmf-dist/bibtex/bst/rsc/rsc.bst | |
parent | aa10b19a7c6ffac34c3b21c9ac9afb7dc827cec4 (diff) |
The Krakow-Vienna train ride update
package updates:
ccaption cdpbundl chem-journal clefval coordsys dingbat dramatist
egplot filecontents lcd maybemath metaobj metaplot mwcls pdfscreen
pst-bar rsc dpfloat footbib jurabib
added to ctan-tpm-check (and re-indented the long list)
no changes between CTAN and depot, only added to the WorkingTPM list
acmtrans bibunits bitfield blindtext bophook cherokee citeref
cmdtrack colorinfo compactbib courier-scaled courseoutline coursepaper
crop custom-bib cvsty dancers dashbox dcpic decimal digiconfigs
dinat directory eCards eemeir ellipsis engrec envbig epiolmec epsf
eqparbox eskd ethiop-t1 euro eurosans exam examplep expressg
extarrows extsizes fp fribrief functan gatech-thesis ginpenc greenpoint
hands hitec hvfloat hyperxmp inlinebib invoice isorot isotope jpsj
kalender kerkis keystroke labels layouts lcg leaflet leawood lgreek
limap lipsum listliketab logpap ltablex ltxindex mailing makebox
makecirc makeglos maple mceinleger menu metatex mftinc mhs multicap
mwrite nath nature ntgclass numline ofs ogham oldstyle papercdcase
paresse parrun permute phaistos pittetd plates preprint prettyref
program pseudocode pspicture pst-fr3d pst-math qcm rccol rcsinfo
resume robustindex sae sauerj
updates with changed files, but no added/removed files:
ccaption cdpbundl chem-journal clefval coordsys dingbat dramatist
egplot filecontents lcd maybemath metaobj metaplot mwcls pdfscreen
pst-bar rsc
updates with changes and added/removed files:
dpfloat footbib jurabib
git-svn-id: svn://tug.org/texlive/trunk@2411 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/bibtex/bst/rsc/rsc.bst')
-rw-r--r-- | Master/texmf-dist/bibtex/bst/rsc/rsc.bst | 356 |
1 files changed, 320 insertions, 36 deletions
diff --git a/Master/texmf-dist/bibtex/bst/rsc/rsc.bst b/Master/texmf-dist/bibtex/bst/rsc/rsc.bst index 25d816ea9b8..856d6a976c2 100644 --- a/Master/texmf-dist/bibtex/bst/rsc/rsc.bst +++ b/Master/texmf-dist/bibtex/bst/rsc/rsc.bst @@ -1,50 +1,56 @@ % ---------------------------------------------------------------- % BibTeX bibliography style `rsc' for Dalton Trans., -% Org. Biomol. Chem., etc. +% Org. Biomol. Chem., Chem. Commun., Phys. Chem. Chem. Phys., etc. % ---------------------------------------------------------------- % % ---------------------------------------------------------------- % Maintained by Joseph A. Wright % E-mail: joseph.wright@morningstar2.co.uk +% Released under the GNU General Public License +% See http://www.gnu.org/licenses/gpl.txt % ---------------------------------------------------------------- % ---------------------------------------------------------------- % History +% 2006-10-30 Improvements to patent number handling; automatic +% digit grouping. Patent assignee recognised from +% organization field. Added support for non-standard +% types as in achemso.bst +% 2006-10-22 Added converters for edition numbers (to change +% 1 to 1st, 2 to 2nd, etc.) from custom-bib +% package. % 2006-06-27 Substantial improvements to output consistency -% with RSC style requirements +% with RSC style requirements. % Improved support for unpublished works, in press % and so on. % ---------------------------------------------------------------- % % ---------------------------------------------------------------- -% Usage notes -% 1) Patents. Patents can be saves as type 'patent' or 'other' +% Usage notes: +% 1) Other than the 'article' reference type, the RSC publication +% rules give only limited guidance. I have therefore had to +% look at a number of real-world examples, and pick the useage +% I am happiest with. So of the layout is therefore more of +% a personal preference than anything else. +% 2) Patents. Patents can be saves as type 'patent' or 'other' % Fill in as for article, and the correct formatting will % result (Authors, "Journal", Year). Any other use of 'other' -% will give the same result. -% 2) Unpublished. If a journal is given (for example, for +% will give the same result. Patent numbers are automatically +% digit-grouped if they are purely made up of digits. Assignee +% is given in the organization field. +% 3) Unpublished. If a journal is given (for example, for % submitted or in press articles), then this will be printed. % Use the 'note' field for the status of the references % (personal communication, in press, etc.) -% 3) In press articles with DOI. If unpublished articles have +% 4) In press articles with DOI. If unpublished articles have % a DOI given, this will be given in the output, with % the year added as well. In this case, no 'note' is added -% 4) Miscellaneous (e.g. software). Use the 'howpublished' field -% for organisation,address etc. -% ---------------------------------------------------------------- -% -% ---------------------------------------------------------------- -% Based on original file from BibTeX distribution. Notice from -% that file is reproduced below: -% ---------------------------------------------------------------- -% version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. -% Copyright (C) 1985, all rights reserved. -% Copying of this file is authorized only if either -% (1) you make absolutely no changes to your copy, including name, or -% (2) if you do make changes, you name it something other than -% btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. -% This restriction helps ensure that all standard styles are identical. -% The file btxbst.doc has the documentation for this style. +% 5) Miscellaneous (e.g. software). Use the 'howpublished' field +% for organisation, address etc. +% 6) The non-standard types remark, inpress and submitted are +% supported for compatibility with achemso.bst. Note that they +% are implemented to act in the same way as the rest of this +% style. % ---------------------------------------------------------------- ENTRY @@ -273,6 +279,127 @@ FUNCTION {paren} if$ } +% Some functions taken from custombib.tex +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} + +FUNCTION {convert.edition} +{ extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s eng.ord 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + INTEGERS { nameptr namesleft numnames } FUNCTION {format.names} @@ -325,6 +452,117 @@ FUNCTION {format.editors} if$ } +INTEGERS { a b } + +FUNCTION {mult} +{ + 'a := %% we store the first value + 'b := %% we store the second value + + b #0 < %% We remember the sign of b, and + {#-1 #0 b - 'b :=} %% then consider its absolute value. + {#1} %% + if$ %% + + #0 %% Put 0 on the stack. + {b #0 >} %% While b is strictly positive, + { %% we add a to the value on the stack + a + %% and decrement b. + b #1 - 'b := %% + } %% + while$ %% + + swap$ %% Last, we take the opposite + 'skip$ %% if b was negative. + {#0 swap$ -} %% + if$ %% +} + +FUNCTION {chr.to.value.silent} %% The ASCII code of a character +{ + chr.to.int$ #48 - %% ASCII value of "0" -> 48 + duplicate$ duplicate$ %% "1" -> 49 + #0 < swap$ #9 > or %% ... + { pop$ pop$ "0" #0 } + {} + if$ +} + +FUNCTION {str.to.int.aux.silent} %% The auxiliary function +{ + {duplicate$ empty$ not} %% While the string is not empty + { %% consider its first char + swap$ #10 mult 'a := %% and ``add'' it at the end of + duplicate$ #1 #1 substring$ %% the result. + chr.to.value.silent a + + swap$ + #2 global.max$ substring$ + } + while$ + pop$ +} + +FUNCTION {str.to.int.silent} +{ %% Handling negative values + duplicate$ #1 #1 substring$ "-" = + {#1 swap$ #2 global.max$ substring$} + {#0 swap$} + if$ + %% Initialization, and then + #0 swap$ str.to.int.aux.silent %% call to the aux. funtion + swap$ + {#0 swap$ -} %% And handle the sign. + {} + if$ +} + +% Two functions from Nicolas Markey + +FUNCTION{is.a.digit} +{ + duplicate$ "" = + {pop$ #0} + {chr.to.int$ #48 - duplicate$ + #0 < swap$ #9 > or not} + if$ +} + +FUNCTION{is.a.number} +{ + {duplicate$ #1 #1 substring$ is.a.digit } + {#2 global.max$ substring$} + while$ + "" = +} + +FUNCTION {n.separate.multi} +{ 't := + "" + #0 'numnames := + t text.length$ #4 > t is.a.number and % Test that t is both: + { % 1) a number + { t empty$ not } % 2) over four digits long + { t #-1 #1 substring$ is.num + { numnames #1 + 'numnames := } + { #0 'numnames := } + if$ + t #-1 #1 substring$ swap$ * + t #-2 global.max$ substring$ 't := + numnames #4 = + { duplicate$ #1 #1 substring$ swap$ + #2 global.max$ substring$ + "\," swap$ * * + #1 'numnames := + } + 'skip$ + if$ + } + while$ + } + { t swap$ * } + if$ +} + % Need a different format for books with editors % than for editors in a collection @@ -445,12 +683,15 @@ FUNCTION {format.number.series} } FUNCTION {format.edition} -{ edition empty$ - { "" } - { output.state mid.sentence = - { edition "l" change.case$ " edn." * } - { edition "t" change.case$ " edn." * } - if$ +{ edition duplicate$ empty$ 'skip$ + { + convert.edition + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edn." bibinfo.check + " " * "edn." * } if$ } @@ -499,6 +740,17 @@ FUNCTION {format.pages.nopp} 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.num.pages} { volume boldface field.or.null number empty$ @@ -640,11 +892,11 @@ FUNCTION {format.crossref.editor} { editor #1 "{vv~}{ll}" format.name$ editor num.names$ duplicate$ #2 > - { pop$ " et~al." * } + { pop$ " \emph{et~al.}" * } { #2 < 'skip$ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { " et~al." * } + { " \emph{et~al.}" * } { " and " * editor #2 "{vv~}{ll}" format.name$ * } if$ } @@ -725,10 +977,15 @@ FUNCTION {article} FUNCTION {patent} { output.bibitem - format.authors "author" output.check + organization empty$ + { format.authors "author" output.check } + { format.authors + " (" organization ")" * * * + "author" output.check + } + if$ journal emphasize "journal" output.check - " " - format.pages.nopp output + format.pages.patent "pages" output.check format.date "year" output.check fin.entry } @@ -890,7 +1147,7 @@ FUNCTION {manual} FUNCTION {mastersthesis} { output.bibitem format.authors "author" output.check - "M.Sc.~thesis" format.thesis.type output.nonnull + "M.Sc.~thesis" emphasize format.thesis.type output.nonnull school "school" output.check address output format.date "year" output.check @@ -912,7 +1169,7 @@ FUNCTION {misc} FUNCTION {phdthesis} { output.bibitem format.authors "author" output.check - "Ph.D.~thesis" format.thesis.type output.nonnull + "Ph.D.~thesis" emphasize format.thesis.type output.nonnull school "school" output.check address output format.date "year" output.check @@ -981,6 +1238,33 @@ FUNCTION {unpublished} fin.entry } +% The next three dunctions are taken from +% achemso to provide compatiblity. They have +% been modified to conform to the approach taken by +% the rest of this style. + +FUNCTION { submitted } +{ output.bibitem + format.authors "author" output.check + "submitted for publication in" + journal emphasize space.connect "journal" output.check + fin.entry +} + +FUNCTION { inpress } +{ output.bibitem + format.authors "author" output.check + journal emphasize "journal" output.check + "in press" output + fin.entry +} + +FUNCTION { remark } +{ output.bibitem + note "note" output.check + fin.entry +} + FUNCTION {default.type} { misc } MACRO {jan} {"January"} |