diff options
Diffstat (limited to 'src/doxygen_bst.h')
-rw-r--r-- | src/doxygen_bst.h | 760 |
1 files changed, 367 insertions, 393 deletions
diff --git a/src/doxygen_bst.h b/src/doxygen_bst.h index 6298713..c51f2df 100644 --- a/src/doxygen_bst.h +++ b/src/doxygen_bst.h @@ -1,31 +1,10 @@ -"%% doxygen.bst\n" -"%% This is a modification of plainhtml.bst; the original copyright notice\n" -"%% follows.\n" -"\n" -"%% ORIGINAL COPYRIGHT NOTICE OF plainhtml.bst\n" -"%%\n" -"%% plainhtml.bst\n" -"%%\n" -"%% Part of bibhtml, version 2.0.1, released 2009 November 2\n" -"%% Hg node 6ca3807543d6.\n" -"%% See <http://purl.org/nxg/dist/bibhtml>\n" -"%%\n" -"%% Copyright 1999, 2005, 2006, 2009, Norman Gray <norman@astro.gla.ac.uk>\n" -"%%\n" -"%% This is a modification of a modification!\n" -"%%\n" -"%%% Modification of BibTeX style file /usr/local/texlive/2008/texmf-dist/bibtex/bst/base/plain.bst\n" -"%%% ... by urlbst, version 0.6-4 (marked with \"% urlbst\")\n" -"%%% See <http://purl.org/nxg/dist/urlbst>\n" -"%%% Added webpage entry type, and url and lastchecked fields.\n" -"%%% Added eprint support.\n" -"%%% Added DOI support.\n" -"%%% Added PUBMED support.\n" -"%%% Added hyperref support.\n" -"%%% Original headers follow...\n" -"\n" -"% BibTeX standard bibliography style `plain'\n" -" % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.\n" +" % \n" +" % \n" +" % This file is either \"html-btxbst.doc\" or was derived from\n" +" % \"html-btxbst.doc\" using cpp. \"html-btxbst.doc\" itself was edited\n" +" % from \"btxbst.doc\" and \"named.bst\".\n" +" % The following copyright information is from btxbst.doc:\n" +" % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09.\n" " % Copyright (C) 1985, all rights reserved.\n" " % Copying of this file is authorized only if either\n" " % (1) you make absolutely no changes to your copy, including name, or\n" @@ -33,6 +12,8 @@ " % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.\n" " % This restriction helps ensure that all standard styles are identical.\n" " % The file btxbst.doc has the documentation for this style.\n" +" % \"named\" style (sorted keys of the form [name, year])\n" +" % Some code for this was taken from \"named.bst\".\n" "\n" "ENTRY\n" " { address\n" @@ -57,76 +38,36 @@ " type\n" " volume\n" " year\n" -" eprint % urlbst\n" -" doi % urlbst\n" -" pubmed % urlbst\n" -" url % urlbst\n" -" lastchecked % urlbst\n" +" dvi\n" +" html\n" +" keywords\n" +" pdf\n" +" postscript\n" +" url\n" +" doi\n" +" mailto\n" " }\n" " {}\n" -" { label }\n" +" { label extra.label sort.label }\n" "\n" -"INTEGERS { output.state before.all mid.sentence after.sentence after.block doiform }\n" +"INTEGERS { output.state before.all mid.sentence after.sentence after.block }\n" "\n" -"STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl pubmedprefix pubmedurl openinlinelink closeinlinelink } % urlbst...\n" -"INTEGERS { inlinelinks makeinlinelink addeprints adddoiresolver addpubmedresolver }\n" -"% Following constants may be adjusted by hand, if desired\n" -"FUNCTION {init.urlbst.variables}\n" -"{\n" -" \"Available from: \" 'urlintro := % prefix before URL\n" -" \"http://arxiv.org/abs/\" 'eprinturl := % prefix to make URL from eprint ref\n" -" \"arXiv:\" 'eprintprefix := % text prefix printed before eprint ref\n" -" \"http://dx.doi.org/\" 'doiurl := % prefix to make URL from DOI\n" -" \"doi:\" 'doiprefix := % text prefix printed before DOI ref\n" -" \"http://www.ncbi.nlm.nih.gov/pubmed/\" 'pubmedurl := % prefix to make URL from PUBMED\n" -" \"PMID:\" 'pubmedprefix := % text prefix printed before PUBMED ref\n" -" #1 'addeprints := % 0=no eprints; 1=include eprints\n" -" #1 'adddoiresolver := % 0=no DOI resolver; 1=include it\n" -" #1 'addpubmedresolver := % 0=no PUBMED resolver; 1=include it\n" -" #1 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles\n" -" #1 'doiform := % 0=simple, but can produce invalid HTML; 1=needs post-processing\n" -" % the following are internal state variables, not config constants\n" -" #0 'makeinlinelink := % state variable managed by possibly.setup.inlinelink\n" -" \"\" 'openinlinelink := % ditto\n" -" \"\" 'closeinlinelink := % ditto\n" -"}\n" -"INTEGERS { \n" -" bracket.state\n" -" outside.brackets\n" -" open.brackets\n" -" within.brackets\n" -" close.brackets\n" -" close.first.block\n" -"}\n" -"% ...urlbst to here\n" "FUNCTION {init.state.consts}\n" -"{ #0 'outside.brackets := % urlbst\n" -" #1 'open.brackets :=\n" -" #2 'within.brackets :=\n" -" #3 'close.brackets :=\n" -"\n" -" #0 'before.all :=\n" +"{ #0 'before.all :=\n" " #1 'mid.sentence :=\n" " #2 'after.sentence :=\n" " #3 'after.block :=\n" -" #0 'close.first.block :=\n" "}\n" "\n" "STRINGS { s t }\n" "\n" -"% urlbst\n" -"FUNCTION {output.nonnull.original}\n" +"FUNCTION {output.nonnull}\n" "{ 's :=\n" " output.state mid.sentence =\n" " { \", \" * write$ }\n" " { output.state after.block =\n" " { add.period$ write$\n" -" % close the <dt> after the end of the first block\n" -" close.first.block\n" -" { newline$\n" -" #0 'close.first.block := }\n" -" { newline$ }\n" -" if$\n" +" newline$\n" " }\n" " { output.state before.all =\n" " 'write$\n" @@ -140,84 +81,6 @@ " s\n" "}\n" "\n" -"% urlbst...\n" -"% The following three functions are for handling inlinelink. They wrap\n" -"% a block of text which is potentially output with write$ by multiple\n" -"% other functions, so we don't know the content a priori.\n" -"% They communicate between each other using the variables makeinlinelink\n" -"% (which is true if a link should be made), and closeinlinelink (which holds\n" -"% the string which should close any current link. They can be called\n" -"% at any time, but start.inlinelink will be a no-op unless something has\n" -"% previously set makeinlinelink true, and the two ...end.inlinelink functions\n" -"% will only do their stuff if start.inlinelink has previously set\n" -"% closeinlinelink to be non-empty.\n" -"FUNCTION {possibly.setup.inlinelink}\n" -"{ makeinlinelink\n" -" { \"<a href=\" quote$ * url * quote$ * \">\" * 'openinlinelink :=\n" -" \"</a>\" 'closeinlinelink :=\n" -" #0 'makeinlinelink := }\n" -" 'skip$\n" -" if$ % makeinlinelink\n" -"}\n" -"FUNCTION {add.inlinelink}\n" -"{ openinlinelink empty$\n" -" 'skip$\n" -" { openinlinelink swap$ * closeinlinelink *\n" -" \"\" 'openinlinelink :=\n" -" }\n" -" if$\n" -"}\n" -"FUNCTION {output.nonnull}\n" -"{ % Save the thing we've been asked to output\n" -" 's :=\n" -" % If the bracket-state is close.brackets, then add a close-bracket to\n" -" % what is currently at the top of the stack, and set bracket.state\n" -" % to outside.brackets\n" -" bracket.state close.brackets =\n" -" { \"]\" *\n" -" outside.brackets 'bracket.state :=\n" -" }\n" -" 'skip$\n" -" if$\n" -" bracket.state outside.brackets =\n" -" { % We're outside all brackets -- this is the normal situation.\n" -" % Write out what's currently at the top of the stack, using the\n" -" % original output.nonnull function.\n" -" s\n" -" add.inlinelink\n" -" output.nonnull.original % invoke the original output.nonnull\n" -" }\n" -" { % Still in brackets. Add open-bracket or (continuation) comma, add the\n" -" % new text (in s) to the top of the stack, and move to the close-brackets\n" -" % state, ready for next time (unless inbrackets resets it). If we come\n" -" % into this branch, then output.state is carefully undisturbed.\n" -" bracket.state open.brackets =\n" -" { \" [\" * }\n" -" { \", \" * } % bracket.state will be within.brackets\n" -" if$ \n" -" s * \n" -" close.brackets 'bracket.state :=\n" -" }\n" -" if$\n" -"}\n" -"\n" -"% Call this function just before adding something which should be presented in \n" -"% brackets. bracket.state is handled specially within output.nonnull.\n" -"FUNCTION {inbrackets}\n" -"{ bracket.state close.brackets =\n" -" { within.brackets 'bracket.state := } % reset the state: not open nor closed\n" -" { open.brackets 'bracket.state := }\n" -" if$\n" -"}\n" -"\n" -"FUNCTION {format.lastchecked}\n" -"{ lastchecked empty$\n" -" { \"\" }\n" -" { inbrackets \"cited \" lastchecked * }\n" -" if$\n" -"}\n" -"% ...urlbst to here\n" -"\n" "FUNCTION {output}\n" "{ duplicate$ empty$\n" " 'pop$\n" @@ -233,21 +96,50 @@ " if$\n" "}\n" "\n" -"FUNCTION {output.bibitem.original}\n" +"FUNCTION {output.bibitem}\n" "{ newline$\n" -" cite$ write$\n" -" newline$\n" -" \"[\" label * \"] \" * write$\n" -" % the <dt> is closed within output.nonnull, as long as close.first.block is true\n" -" #1 'close.first.block :=\n" -" newline$\n" +" author empty$\n" +" { editor empty$\n" +" { organization empty$\n" +" 'skip$\n" +" { \"<!-- Authors: \" organization purify$ * \" -->\" * write$ newline$ }\n" +" if$\n" +" } \n" +" { \"<!-- Authors: \" editor purify$ * \" -->\" * write$ newline$ }\n" +" if$\n" +" }\n" +" { \"<!-- Authors: \" author purify$ * \" -->\" * write$ newline$ }\n" +" if$\n" +" keywords empty$\n" +" 'skip$\n" +" { \"<!-- Keywords: \" keywords * \" -->\" * write$ newline$ }\n" +" if$\n" +" \"<dt><a name=\" quote$ * \"CITEREF_\" * cite$ * quote$ * \">[\" * label * \"]</a></dt><dd>\" * write$\n" " \"\"\n" " before.all 'output.state :=\n" "}\n" "\n" -"FUNCTION {fin.entry.original}\n" +"FUNCTION {fin.entry}\n" "{ add.period$\n" " write$\n" +" postscript empty$\n" +" 'skip$\n" +" { newline$ \"<!-- PostScript: \" postscript * \" -->\" * write$ }\n" +" if$\n" +" pdf empty$\n" +" 'skip$\n" +" { newline$ \"<!-- PDF: \" pdf * \" -->\" * write$ }\n" +" if$\n" +" dvi empty$\n" +" 'skip$\n" +" { newline$ \"<!-- DVI: \" dvi * \" -->\" * write$ }\n" +" if$\n" +" doi empty$\n" +" 'skip$\n" +" { newline$ \"<!-- DOI: \" doi * \" -->\" * write$ }\n" +" if$\n" +" \"</dd>\" write$\n" +" newline$\n" " newline$\n" "}\n" "\n" @@ -287,6 +179,22 @@ " if$\n" "}\n" "\n" +"FUNCTION {str.to.int}\n" +"{\n" +" 's :=\n" +" #0\n" +" { s empty$ not }\n" +" { % Multiply the number on the top of the stack by 10 = 1010 binary\n" +" duplicate$ + % x2\n" +" duplicate$ % x2 x2\n" +" duplicate$ + duplicate$ + % x2 x8\n" +" +\n" +" s #1 #1 substring$ chr.to.int$ #48 - + % #48 is ascii for '0'\n" +" s #2 global.max$ substring$ 's :=\n" +" }\n" +" while$\n" +"}\n" +"\n" "FUNCTION {new.block.checka}\n" "{ empty$\n" " 'skip$\n" @@ -326,17 +234,39 @@ " if$\n" "}\n" "\n" -"FUNCTION {bold}\n" +"FUNCTION {emphasize}\n" "{ duplicate$ empty$\n" " { pop$ \"\" }\n" -" { \"<b>\" swap$ * \"</b>\" * }\n" +" { \"<em>\" swap$ * \"</em>\" * }\n" " if$\n" "}\n" "\n" -"FUNCTION {emphasize}\n" -"{ duplicate$ empty$\n" -" { pop$ \"\" }\n" -" { \"<em>\" swap$ * \"</em>\" * }\n" +"FUNCTION {add.link} % title\n" +"{\n" +" 't :=\n" +" t empty$\n" +" { \"\" }\n" +" { url empty$\n" +" { html empty$\n" +" { t }\n" +" { \"<a href=\" quote$ * html * quote$ * \">\" * t * \"</a>\" * }\n" +" if$ }\n" +" { \"<a href=\" quote$ * url * quote$ * \">\" * t * \"</a>\" * }\n" +" if$\n" +" }\n" +" if$\n" +"}\n" +"\n" +"FUNCTION {add.mailto} % authors\n" +"{\n" +" 't :=\n" +" t empty$\n" +" { \"\" }\n" +" { mailto empty$\n" +" { t }\n" +" { \"<a href=\" quote$ * \"mailto:\" * mailto * quote$ * \">\" * t * \"</a>\" * }\n" +" if$\n" +" }\n" " if$\n" "}\n" "\n" @@ -349,6 +279,7 @@ " numnames 'namesleft :=\n" " { namesleft #0 > }\n" " { s nameptr \"{ff~}{vv~}{ll}{, jj}\" format.name$ 't :=\n" +" \"\\bibxhtmlname{\" t * \"}\" * 't :=\n" " nameptr #1 >\n" " { namesleft #1 >\n" " { \", \" * t * }\n" @@ -376,7 +307,7 @@ " { \"\" }\n" " { author format.names }\n" " if$\n" -" bold\n" +" add.mailto\n" "}\n" "\n" "FUNCTION {format.editors}\n" @@ -396,6 +327,7 @@ " { \"\" }\n" " { title \"t\" change.case$ }\n" " if$\n" +" add.link\n" "}\n" "\n" "FUNCTION {n.dashify}\n" @@ -438,11 +370,11 @@ " if$\n" " }\n" " if$\n" -" bold\n" "}\n" "\n" "FUNCTION {format.btitle}\n" "{ title emphasize\n" +" add.link\n" "}\n" "\n" "FUNCTION {tie.or.space.connect}\n" @@ -616,18 +548,20 @@ "}\n" "\n" "FUNCTION {format.article.crossref}\n" -"{ key empty$\n" +"{\n" +" \"In <a href=\" quote$ * \"#\" * crossref * quote$ * \">\" *\n" +" key empty$\n" " { journal empty$\n" " { \"need key or journal for \" cite$ * \" to crossref \" * crossref *\n" " warning$\n" " \"\"\n" " }\n" -" { \"In <em>\" journal * \"</em>\" * }\n" +" { \"<cite>\" * journal * \"</cite>\" * }\n" " if$\n" " }\n" -" { \"In \" key * }\n" +" { key * }\n" " if$\n" -" \" <span class='cite'>\" * crossref * \"</span>\" *\n" +" \"</a> \\citelabel{\" * crossref * \"}\" *\n" "}\n" "\n" "FUNCTION {format.crossref.editor}\n" @@ -656,6 +590,7 @@ " \" of \" *\n" " }\n" " if$\n" +" \"<a href=\" * quote$ * \"#\" * crossref * quote$ * \">\" *\n" " editor empty$\n" " editor field.or.null author field.or.null =\n" " or\n" @@ -665,7 +600,7 @@ " crossref * warning$\n" " \"\" *\n" " }\n" -" { \"<em>\" * series * \"</em>\" * }\n" +" { \"<cite>\" * series * \"</cite>\" * }\n" " if$\n" " }\n" " { key * }\n" @@ -673,11 +608,13 @@ " }\n" " { format.crossref.editor * }\n" " if$\n" -" \" <span class='cite'>\" * crossref * \"</span>\" *\n" +" \"</a> \\citelabel{\" * crossref * \"}\" *\n" "}\n" "\n" "FUNCTION {format.incoll.inproc.crossref}\n" -"{ editor empty$\n" +"{\n" +" \"In <a href=\" quote$ * \"#\" * crossref * quote$ * \">\" *\n" +" editor empty$\n" " editor field.or.null author field.or.null =\n" " or\n" " { key empty$\n" @@ -686,171 +623,26 @@ " crossref * warning$\n" " \"\"\n" " }\n" -" { \"In <em>\" booktitle * \"</em>\" * }\n" +" { \"<cite>\" * booktitle * \"</cite>\" * }\n" " if$\n" " }\n" -" { \"In \" key * }\n" +" { key * }\n" " if$\n" " }\n" -" { \"In \" format.crossref.editor * }\n" -" if$\n" -" \" <span class='cite'>\" * crossref * \"</span>\" *\n" -"}\n" -"\n" -"% urlbst...\n" -"% Functions for making hypertext links.\n" -"FUNCTION {make.href}\n" -"{ \n" -" \"<a href='\" swap$ * \"'><code>\" * swap$ * \"</code></a>\" *\n" -"}\n" -"\n" -"% If inlinelinks is true, then format.url should be a no-op, since it's\n" -"% (a) redundant, and (b) could end up as a link-within-a-link.\n" -"FUNCTION {format.url}\n" -"{ inlinelinks #1 = url empty$ or\n" -" { \"\" }\n" -" { urlintro \"<code>\" * url * \"</code>\" * }\n" -" if$\n" -"}\n" -"\n" -"FUNCTION {format.eprint}\n" -"{ eprint empty$\n" -" { \"\" }\n" -" { eprintprefix eprint * eprinturl eprint * make.href }\n" -" if$\n" -"}\n" -"\n" -"FUNCTION {format.doi}\n" -"{ doi empty$\n" -" { \"\" }\n" -" { doiform #0 =\n" -" { doiprefix doi * doiurl doi * make.href }\n" -" { \"DOI:{\" doi * \"}\" * }\n" -" if$\n" -" }\n" -" if$\n" -"}\n" -"\n" -"FUNCTION {format.pubmed}\n" -"{ pubmed empty$\n" -" { \"\" }\n" -" { pubmedprefix pubmed * pubmedurl pubmed * make.href }\n" -" if$\n" -"}\n" -"\n" -"% Output a URL. We can't use the more normal idiom (something like\n" -"% `format.url output'), because the `inbrackets' within\n" -"% format.lastchecked applies to everything between calls to `output',\n" -"% so that `format.url format.lastchecked * output' ends up with both\n" -"% the URL and the lastchecked in brackets.\n" -"FUNCTION {output.url}\n" -"{ url empty$\n" -" 'skip$ \n" -" { new.block \n" -" format.url output\n" -" format.lastchecked output \n" -" }\n" -" if$\n" -"}\n" -"\n" -"FUNCTION {output.web.refs}\n" -"{\n" -" new.block\n" -" output.url\n" -" addeprints eprint empty$ not and\n" -" { format.eprint output.nonnull }\n" -" 'skip$\n" -" if$\n" -" adddoiresolver doi empty$ not and\n" -" { format.doi output.nonnull }\n" -" 'skip$\n" -" if$\n" -" addpubmedresolver pubmed empty$ not and\n" -" { format.pubmed output.nonnull }\n" -" 'skip$\n" -" if$\n" -"}\n" -"\n" -"% Wrapper for output.bibitem.original.\n" -"% If the URL field is not empty, set makeinlinelink to be true,\n" -"% so that an inline link will be started at the next opportunity\n" -"FUNCTION {output.bibitem}\n" -"{ outside.brackets 'bracket.state :=\n" -" output.bibitem.original\n" -" inlinelinks url empty$ not and\n" -" { #1 'makeinlinelink := }\n" -" { #0 'makeinlinelink := }\n" -" if$\n" -"}\n" -"\n" -"% Wrapper for fin.entry.original\n" -"FUNCTION {fin.entry}\n" -"{ output.web.refs % urlbst\n" -" makeinlinelink % ooops, it appears we didn't have a title for inlinelink\n" -" { possibly.setup.inlinelink % add some artificial link text here, as a fallback\n" -" \"[link]\" output.nonnull }\n" -" 'skip$\n" -" if$\n" -" bracket.state close.brackets = % urlbst\n" -" { \"]\" * }\n" -" 'skip$\n" -" if$\n" -" fin.entry.original\n" -"}\n" -"\n" -"% Webpage entry type.\n" -"% Title and url fields required;\n" -"% author, note, year, month, and lastchecked fields optional\n" -"% See references \n" -"% ISO 690-2 http://www.nlc-bnc.ca/iso/tc46sc9/standard/690-2e.htm\n" -"% http://www.classroom.net/classroom/CitingNetResources.html\n" -"% http://neal.ctstateu.edu/history/cite.html\n" -"% http://www.cas.usf.edu/english/walker/mla.html\n" -"% for citation formats for web pages.\n" -"FUNCTION {webpage}\n" -"{ output.bibitem\n" -" author empty$\n" -" { editor empty$\n" -" 'skip$ % author and editor both optional\n" -" { format.editors output.nonnull }\n" -" if$\n" -" }\n" -" { editor empty$\n" -" { format.authors output.nonnull }\n" -" { \"can't use both author and editor fields in \" cite$ * warning$ }\n" -" if$\n" -" }\n" -" if$\n" -" new.block\n" -" title empty$ 'skip$ 'possibly.setup.inlinelink if$\n" -" format.title \"title\" output.check\n" -" inbrackets \"online\" output\n" -" new.block\n" -" year empty$\n" -" 'skip$\n" -" { format.date \"year\" output.check }\n" +" { format.crossref.editor * }\n" " if$\n" -" % We don't need to output the URL details ('lastchecked' and 'url'),\n" -" % because fin.entry does that for us, using output.web.refs. The only\n" -" % reason we would want to put them here is if we were to decide that\n" -" % they should go in front of the rather miscellaneous information in 'note'.\n" -" new.block\n" -" note output\n" -" fin.entry\n" +" \"</a> \\citelabel{\" * crossref * \"}\" *\n" "}\n" -"% ...urlbst to here\n" -"\n" "\n" "FUNCTION {article}\n" "{ output.bibitem\n" " format.authors \"author\" output.check\n" " new.block\n" -" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n" " format.title \"title\" output.check\n" " new.block\n" " crossref missing$\n" " { journal emphasize \"journal\" output.check\n" -" possibly.setup.inlinelink format.vol.num.pages output% urlbst\n" +" format.vol.num.pages output\n" " format.date \"year\" output.check\n" " }\n" " { format.article.crossref output.nonnull\n" @@ -874,7 +666,6 @@ " }\n" " if$\n" " new.block\n" -" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n" " format.btitle \"title\" output.check\n" " crossref missing$\n" " { format.bvolume output\n" @@ -899,7 +690,6 @@ "{ output.bibitem\n" " format.authors output\n" " new.block\n" -" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n" " format.title \"title\" output.check\n" " howpublished address new.block.checkb\n" " howpublished output\n" @@ -922,7 +712,6 @@ " }\n" " if$\n" " new.block\n" -" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n" " format.btitle \"title\" output.check\n" " crossref missing$\n" " { format.bvolume output\n" @@ -949,7 +738,6 @@ "{ output.bibitem\n" " format.authors \"author\" output.check\n" " new.block\n" -" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n" " format.title \"title\" output.check\n" " new.block\n" " crossref missing$\n" @@ -976,7 +764,6 @@ "{ output.bibitem\n" " format.authors \"author\" output.check\n" " new.block\n" -" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n" " format.title \"title\" output.check\n" " new.block\n" " crossref missing$\n" @@ -1022,7 +809,6 @@ " { format.authors output.nonnull }\n" " if$\n" " new.block\n" -" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n" " format.btitle \"title\" output.check\n" " author empty$\n" " { organization empty$\n" @@ -1048,7 +834,6 @@ "{ output.bibitem\n" " format.authors \"author\" output.check\n" " new.block\n" -" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n" " format.title \"title\" output.check\n" " new.block\n" " \"Master's thesis\" format.thesis.type output.nonnull\n" @@ -1064,7 +849,6 @@ "{ output.bibitem\n" " format.authors output\n" " title howpublished new.block.checkb\n" -" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n" " format.title output\n" " howpublished new.block.checka\n" " howpublished output\n" @@ -1079,7 +863,6 @@ "{ output.bibitem\n" " format.authors \"author\" output.check\n" " new.block\n" -" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n" " format.btitle \"title\" output.check\n" " new.block\n" " \"PhD thesis\" format.thesis.type output.nonnull\n" @@ -1098,7 +881,6 @@ " { format.editors output.nonnull }\n" " if$\n" " new.block\n" -" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n" " format.btitle \"title\" output.check\n" " format.bvolume output\n" " format.number.series output\n" @@ -1131,7 +913,6 @@ "{ output.bibitem\n" " format.authors \"author\" output.check\n" " new.block\n" -" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n" " format.title \"title\" output.check\n" " new.block\n" " format.tr.number output.nonnull\n" @@ -1147,7 +928,6 @@ "{ output.bibitem\n" " format.authors \"author\" output.check\n" " new.block\n" -" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n" " format.title \"title\" output.check\n" " new.block\n" " note \"note\" output.check\n" @@ -1156,37 +936,70 @@ "}\n" "\n" "FUNCTION {default.type} { misc }\n" +"\n" "MACRO {jan} {\"January\"}\n" +"\n" "MACRO {feb} {\"February\"}\n" +"\n" "MACRO {mar} {\"March\"}\n" +"\n" "MACRO {apr} {\"April\"}\n" +"\n" "MACRO {may} {\"May\"}\n" +"\n" "MACRO {jun} {\"June\"}\n" +"\n" "MACRO {jul} {\"July\"}\n" +"\n" "MACRO {aug} {\"August\"}\n" +"\n" "MACRO {sep} {\"September\"}\n" +"\n" "MACRO {oct} {\"October\"}\n" +"\n" "MACRO {nov} {\"November\"}\n" +"\n" "MACRO {dec} {\"December\"}\n" +"\n" "MACRO {acmcs} {\"ACM Computing Surveys\"}\n" +"\n" "MACRO {acta} {\"Acta Informatica\"}\n" +"\n" "MACRO {cacm} {\"Communications of the ACM\"}\n" +"\n" "MACRO {ibmjrd} {\"IBM Journal of Research and Development\"}\n" +"\n" "MACRO {ibmsj} {\"IBM Systems Journal\"}\n" +"\n" "MACRO {ieeese} {\"IEEE Transactions on Software Engineering\"}\n" +"\n" "MACRO {ieeetc} {\"IEEE Transactions on Computers\"}\n" -"MACRO {ieeetcad} {\"IEEE Transactions on Computer-Aided Design of Integrated Circuits\"}\n" +"\n" +"MACRO {ieeetcad}\n" +" {\"IEEE Transactions on Computer-Aided Design of Integrated Circuits\"}\n" +"\n" "MACRO {ipl} {\"Information Processing Letters\"}\n" +"\n" "MACRO {jacm} {\"Journal of the ACM\"}\n" +"\n" "MACRO {jcss} {\"Journal of Computer and System Sciences\"}\n" +"\n" "MACRO {scp} {\"Science of Computer Programming\"}\n" +"\n" "MACRO {sicomp} {\"SIAM Journal on Computing\"}\n" +"\n" "MACRO {tocs} {\"ACM Transactions on Computer Systems\"}\n" +"\n" "MACRO {tods} {\"ACM Transactions on Database Systems\"}\n" +"\n" "MACRO {tog} {\"ACM Transactions on Graphics\"}\n" +"\n" "MACRO {toms} {\"ACM Transactions on Mathematical Software\"}\n" +"\n" "MACRO {toois} {\"ACM Transactions on Office Information Systems\"}\n" +"\n" "MACRO {toplas} {\"ACM Transactions on Programming Languages and Systems\"}\n" +"\n" "MACRO {tcs} {\"Theoretical Computer Science\"}\n" "\n" "READ\n" @@ -1207,6 +1020,177 @@ " if$\n" "}\n" "\n" +"\n" +"FUNCTION {format.lab.names}\n" +"{ 's :=\n" +" s num.names$ 'numnames :=\n" +" numnames #1 =\n" +" { s #1 \"{vv }{ll}\" format.name$ }\n" +" { numnames #2 =\n" +" { s #1 \"{vv }{ll }and \" format.name$ s #2 \"{vv }{ll}\" format.name$ * }\n" +" { s #1 \"{vv }{ll }\" format.name$ \"et~al.\" * }\n" +" if$\n" +" }\n" +" if$\n" +"}\n" +"\n" +"FUNCTION {author.key.label}\n" +"{ author empty$\n" +" { key empty$\n" +" { cite$ #1 #3 substring$ }\n" +" { key }\n" +" if$\n" +" }\n" +" { author format.lab.names }\n" +" if$\n" +"}\n" +"\n" +"FUNCTION {author.editor.key.label}\n" +"{ author empty$\n" +" { editor empty$\n" +" { key empty$\n" +" { cite$ #1 #3 substring$ }\n" +" { key }\n" +" if$\n" +" }\n" +" { editor format.lab.names }\n" +" if$\n" +" }\n" +" { author format.lab.names }\n" +" if$\n" +"}\n" +"\n" +"FUNCTION {author.key.organization.label}\n" +"{ author empty$\n" +" { key empty$\n" +" { organization empty$\n" +" { cite$ #1 #3 substring$ }\n" +" { \"The \" #4 organization chop.word #3 text.prefix$ }\n" +" if$\n" +" }\n" +" { key }\n" +" if$\n" +" }\n" +" { author format.lab.names }\n" +" if$\n" +"}\n" +"\n" +"FUNCTION {editor.key.organization.label}\n" +"{ editor empty$\n" +" { key empty$\n" +" { organization empty$\n" +" { cite$ #1 #3 substring$ }\n" +" { \"The \" #4 organization chop.word #3 text.prefix$ }\n" +" if$\n" +" }\n" +" { key }\n" +" if$\n" +" }\n" +" { editor format.lab.names }\n" +" if$\n" +"}\n" +"\n" +"FUNCTION {month.to.int}\n" +"{\n" +" \"l\" change.case$ #3 text.prefix$\n" +" 's :=\n" +" s \"jan\" = { #1 } {\n" +" s \"feb\" = { #2 } {\n" +" s \"mar\" = { #3 } {\n" +" s \"apr\" = { #4 } {\n" +" s \"may\" = { #5 } {\n" +" s \"jun\" = { #6 } {\n" +" s \"jul\" = { #7 } {\n" +" s \"aug\" = { #8 } {\n" +" s \"sep\" = { #9 } {\n" +" s \"oct\" = { #10 } {\n" +" s \"nov\" = { #11 } {\n" +" s \"dec\" = { #12 } { #13 } % 13 if nothing matches\n" +" if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$\n" +"}\n" +"\n" +"INTEGERS { done c } \n" +"FUNCTION { get.day }\n" +"{ month field.or.null 's :=\n" +" \n" +" % Strip out month name\n" +" #0 'done := \n" +" { s \"\" = not done not and }\n" +" { s #1 #1 substring$ \" \" = 'done :=\n" +" s #2 global.max$ substring$ 's :=\n" +" }\n" +" while$\n" +"\n" +" % Build up first number in t\n" +" \"0\" 't :=\n" +" #0 'done :=\n" +" { s \"\" = not done not and }\n" +" { s #1 #1 substring$ chr.to.int$ 'c :=\n" +" c #47 > c #58 < and\n" +" { t c int.to.chr$ * 't := }\n" +" { #1 'done := }\n" +" if$\n" +" s #2 global.max$ substring$ 's :=\n" +" }\n" +" while$\n" +"\n" +" t str.to.int\n" +"}\n" +"\n" +"FUNCTION { sortify.fourdigit }\n" +"{ 's :=\n" +" s empty$\n" +" { \"0000\" }\n" +" { s\n" +" }\n" +" if$\n" +"}\n" +"\n" +"FUNCTION { sortify.twodigit }\n" +"{ 's :=\n" +" s empty$\n" +" { \"00\" }\n" +" { s\n" +" str.to.int #10 + int.to.str$\n" +" }\n" +" if$\n" +"}\n" +"\n" +"FUNCTION {calc.label}\n" +"{ type$ \"book\" =\n" +" type$ \"inbook\" =\n" +" or\n" +" 'author.editor.key.label\n" +" { type$ \"proceedings\" =\n" +" 'editor.key.organization.label\n" +" { type$ \"manual\" =\n" +" 'author.key.organization.label\n" +" 'author.key.label\n" +" if$\n" +" }\n" +" if$\n" +" }\n" +" if$\n" +" duplicate$\n" +"\n" +" year empty$\n" +" 'skip$\n" +" { \", \" * }\n" +" if$\n" +" year field.or.null purify$ * % CHANGED - pfps - 15 Feb 1989\n" +" 'label :=\n" +"\n" +" year field.or.null purify$\n" +" #-1 #4 substring$ \n" +" sortify.fourdigit \n" +" \" \" *\n" +" month field.or.null month.to.int int.to.str$ sortify.twodigit *\n" +" \" \" * \n" +" get.day int.to.str$ sortify.twodigit *\n" +" \" \" *\n" +" * sortify 'sort.label :=\n" +"}\n" +"\n" "FUNCTION {sort.format.names}\n" "{ 's :=\n" " #1 'nameptr :=\n" @@ -1220,7 +1204,7 @@ " if$\n" " s nameptr \"{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}\" format.name$ 't :=\n" " nameptr numnames = t \"others\" = and\n" -" { \"et al\" * }\n" +" { \"et al.\" * }\n" " { t sortify * }\n" " if$\n" " nameptr #1 + 'nameptr :=\n" @@ -1304,36 +1288,9 @@ " if$\n" "}\n" "\n" -"FUNCTION {presort.by.author}\n" -"{ type$ \"book\" =\n" -" type$ \"inbook\" =\n" -" or\n" -" 'author.editor.sort\n" -" { type$ \"proceedings\" =\n" -" 'editor.organization.sort\n" -" { type$ \"manual\" =\n" -" 'author.organization.sort\n" -" 'author.sort\n" -" if$\n" -" }\n" -" if$\n" -" }\n" -" if$\n" -" \" \"\n" -" *\n" -" year field.or.null sortify\n" -" *\n" -" \" \"\n" -" *\n" -" title field.or.null\n" -" sort.format.title\n" -" *\n" -" #1 entry.max$ substring$\n" -" 'sort.key$ :=\n" -"}\n" -"\n" -"FUNCTION {presort.by.year}\n" -"{ year field.or.null sortify\n" +"FUNCTION {presort}\n" +"{ calc.label\n" +" sort.label\n" " \" \"\n" " *\n" " type$ \"book\" =\n" @@ -1353,6 +1310,10 @@ " *\n" " \" \"\n" " *\n" +" year field.or.null sortify\n" +" *\n" +" \" \"\n" +" *\n" " title field.or.null\n" " sort.format.title\n" " *\n" @@ -1360,55 +1321,68 @@ " 'sort.key$ :=\n" "}\n" "\n" -"ITERATE {presort.by.author}\n" +"ITERATE {presort}\n" "\n" "SORT\n" "\n" -"STRINGS { longest.label }\n" +"STRINGS { longest.label last.sort.label next.extra }\n" "\n" -"INTEGERS { number.label longest.label.width }\n" +"INTEGERS { longest.label.width last.extra.num }\n" "\n" "FUNCTION {initialize.longest.label}\n" "{ \"\" 'longest.label :=\n" -" #1 'number.label :=\n" +" #0 int.to.chr$ 'last.sort.label :=\n" +" \"\" 'next.extra :=\n" " #0 'longest.label.width :=\n" +" #0 'last.extra.num :=\n" +"}\n" +"\n" +"FUNCTION {forward.pass}\n" +"{ last.sort.label sort.label =\n" +" { last.extra.num #1 + 'last.extra.num :=\n" +" last.extra.num int.to.chr$ 'extra.label :=\n" +" }\n" +" { \"a\" chr.to.int$ 'last.extra.num :=\n" +" \"\" 'extra.label :=\n" +" sort.label 'last.sort.label :=\n" +" }\n" +" if$\n" "}\n" "\n" -"FUNCTION {longest.label.pass}\n" -"{ number.label int.to.str$ 'label :=\n" -" number.label #1 + 'number.label :=\n" +"FUNCTION {reverse.pass}\n" +"{ next.extra \"b\" =\n" +" { \"a\" 'extra.label := }\n" +" 'skip$\n" +" if$\n" +" label extra.label * 'label :=\n" " label width$ longest.label.width >\n" " { label 'longest.label :=\n" " label width$ 'longest.label.width :=\n" " }\n" " 'skip$\n" " if$\n" +" extra.label 'next.extra :=\n" "}\n" "\n" "EXECUTE {initialize.longest.label}\n" "\n" -"ITERATE {longest.label.pass}\n" +"ITERATE {forward.pass}\n" +"\n" +"REVERSE {reverse.pass}\n" "\n" "FUNCTION {begin.bib}\n" -"{ preamble$ empty$\n" -" 'skip$\n" -" { preamble$ write$ newline$ }\n" -" if$\n" -" %\"/** \\page bibref References\" write$ newline$\n" -" newline$\n" +"{\n" +" \"# label-style: default\" write$ newline$\n" "}\n" "\n" "EXECUTE {begin.bib}\n" "\n" -"EXECUTE {init.urlbst.variables}\n" "EXECUTE {init.state.consts}\n" "\n" "ITERATE {call.type$}\n" "\n" "FUNCTION {end.bib}\n" "{ newline$\n" -" %\"*/\" write$ newline$\n" "}\n" "\n" "EXECUTE {end.bib}\n" -"\n" |