summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/bibtex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-03-18 23:53:14 +0000
committerKarl Berry <karl@freefriends.org>2010-03-18 23:53:14 +0000
commitaeb40e4eddc0e83dfd8f55c18ffd3b94540c0f47 (patch)
treeae4269d5a89406c04493af63b04c8fabc71fb754 /Master/texmf-dist/bibtex
parent481fc83998309f749f51e74a5e711829a5a3c80b (diff)
revtex 4.1p (17mar10)
git-svn-id: svn://tug.org/texlive/trunk@17498 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/bibtex')
-rw-r--r--Master/texmf-dist/bibtex/bst/revtex/aipauth4-1.bst1288
-rw-r--r--Master/texmf-dist/bibtex/bst/revtex/aipauth4-1long.bst2736
-rw-r--r--Master/texmf-dist/bibtex/bst/revtex/aipnum4-1.bst1764
-rw-r--r--Master/texmf-dist/bibtex/bst/revtex/aipnum4-1long.bst2442
-rw-r--r--Master/texmf-dist/bibtex/bst/revtex/apsrev4-1.bst1789
-rw-r--r--Master/texmf-dist/bibtex/bst/revtex/apsrev4-1long.bst2469
-rw-r--r--Master/texmf-dist/bibtex/bst/revtex/apsrmp4-1.bst1337
-rw-r--r--Master/texmf-dist/bibtex/bst/revtex/apsrmp4-1long.bst2762
8 files changed, 4907 insertions, 11680 deletions
diff --git a/Master/texmf-dist/bibtex/bst/revtex/aipauth4-1.bst b/Master/texmf-dist/bibtex/bst/revtex/aipauth4-1.bst
index 6aaab0d206b..797719716b8 100644
--- a/Master/texmf-dist/bibtex/bst/revtex/aipauth4-1.bst
+++ b/Master/texmf-dist/bibtex/bst/revtex/aipauth4-1.bst
@@ -4,13 +4,13 @@
%%
%% The original source files were:
%%
-%% merlin.mbs (with options: `head,ay,nat,lang,pres,pres-bf,vonx,nm-rev,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,blkyear,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% physjour.mbs (with options: `ay,nat,lang,pres,pres-bf,vonx,nm-rev,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,blkyear,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% geojour.mbs (with options: `ay,nat,lang,pres,pres-bf,vonx,nm-rev,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,blkyear,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% photjour.mbs (with options: `ay,nat,lang,pres,pres-bf,vonx,nm-rev,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,blkyear,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% merlin.mbs (with options: `tail,ay,nat,lang,pres,pres-bf,vonx,nm-rev,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,blkyear,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
+%% merlin.mbs (with options: `head,ay,nat,lang,pres,pres-bf,vonx,nm-rev,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,blkyear,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
+%% physjour.mbs (with options: `ay,nat,lang,pres,pres-bf,vonx,nm-rev,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,blkyear,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
+%% geojour.mbs (with options: `ay,nat,lang,pres,pres-bf,vonx,nm-rev,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,blkyear,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
+%% photjour.mbs (with options: `ay,nat,lang,pres,pres-bf,vonx,nm-rev,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,blkyear,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
+%% merlin.mbs (with options: `tail,ay,nat,lang,pres,pres-bf,vonx,nm-rev,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,blkyear,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
%% ----------------------------------------
-%% *** REVTeX-compatible aipauth4-1.bst 2009-10-08 ***
+%% *** REVTeX-compatible aipauth4-1.bst 2009-10-25 ***
%%
%% Copyright 1994-2007 Patrick W Daly
% ===============================================================
@@ -24,7 +24,6 @@
% version 1 of the License, or any later version.
% ===============================================================
% Name and version information of the main mbs file:
- % \ProvidesFile{merlin.mbs}[2008/01/17 4.21 (PWD, AO, DPC)]
% For use with BibTeX version 0.99a or later
%-------------------------------------------------------------------
% This bibliography style file is intended for texts in ENGLISH
@@ -55,7 +54,7 @@
% \citeyear{key} ==>> 1990
%---------------------------------------------------------------------
-FUNCTION {id.bst} {"Merlin.mbs v4.21 2009-07-09. "}
+FUNCTION {id.bst} {"merlin.mbs 2010-03-15 4.21a (PWD, AO, DPC)"}
ENTRY
{
address
@@ -114,6 +113,7 @@ INTEGERS
}
STRINGS { bibfield output.bibfield }
+
FUNCTION {not}
{ { #0 }
{ #1 }
@@ -138,6 +138,399 @@ FUNCTION {non.stop}
#-1 #1 substring$ "." =
}
+INTEGERS { arith.mulitplier arith.multiplicand }
+
+FUNCTION {multiply}
+{
+ 'arith.multiplicand :=
+ 'arith.mulitplier :=
+ #0
+ { arith.mulitplier #0 > }
+ { arith.multiplicand +
+ arith.mulitplier #1 - 'arith.mulitplier :=
+ }
+ while$
+}
+
+FUNCTION {chr.to.hex}
+{
+ chr.to.int$
+ duplicate$ "0" chr.to.int$ -
+ duplicate$ duplicate$ #0 < swap$ #9 > or not
+ { swap$ pop$ }
+ { pop$
+ duplicate$ "A" chr.to.int$ -
+ duplicate$ duplicate$ #0 < swap$ #5 > or not
+ { swap$ pop$ #10 + }
+ { pop$
+ duplicate$ "a" chr.to.int$ -
+ duplicate$ duplicate$ #0 < swap$ #5 > or not
+ { swap$ pop$ #10 + }
+ { pop$
+ pop$ #-1
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+INTEGERS { arith.accumulator }
+
+FUNCTION {str.to.hex}
+{ #0 'arith.accumulator :=
+ { duplicate$ empty$ not }
+ { duplicate$ #1 #1 substring$ chr.to.hex
+ duplicate$ #0 <
+ { pop$ pop$ ""
+ }
+ { arith.accumulator #16 multiply + 'arith.accumulator :=
+ #2 global.max$ substring$
+ }
+ if$
+ }
+ while$
+ pop$ arith.accumulator
+}
+
+FUNCTION {diagn.cmntlog}
+{
+ duplicate$ top$ "%" swap$ * write$ newline$
+}
+
+INTEGERS { control.key control.author control.editor control.title control.pages control.eprint control.year }
+
+INTEGERS { control.author.jnrlst control.author.dotless control.author.nospace control.author.initials control.author.nocomma control.author.first control.author.reversed }
+
+FUNCTION { control.init }
+{
+ #0
+ 'control.key :=
+ #0
+ #1 +
+ #8 +
+ 'control.author :=
+ #0
+ 'control.author.jnrlst :=
+ #0
+ 'control.author.dotless :=
+ #0
+ 'control.author.nospace :=
+ #1
+ 'control.author.initials :=
+ #0
+ 'control.author.nocomma :=
+ #0
+ 'control.author.first :=
+ #1
+ 'control.author.reversed :=
+ #0
+ 'control.editor :=
+ #-1
+ 'control.title :=
+ #0
+ 'control.pages :=
+ #0
+ 'control.eprint :=
+ #1
+ 'control.year :=
+}
+
+FUNCTION {warning.dependency}
+{
+ " (dependency: " * swap$ * ") set " * swap$ int.to.str$ * warning$
+}
+
+FUNCTION {control.check}
+{
+ control.editor
+ {
+ "editor formatted same as author"
+ control.author.reversed {
+ duplicate$ #0 swap$ "reversed" warning.dependency
+ #0 'control.author.reversed :=
+ } 'skip$ if$
+ control.author.first {
+ duplicate$ #0 swap$ "first" warning.dependency
+ #0 'control.author.first :=
+ } 'skip$ if$
+ control.author.nocomma {
+ duplicate$ #0 swap$ "nocomma" warning.dependency
+ #0 'control.author.nocomma :=
+ } 'skip$ if$
+ pop$
+ } 'skip$ if$
+ control.author.reversed 'skip$
+ {
+ "not reversed"
+ control.author.nospace {
+ duplicate$ #0 swap$ "nospace" warning.dependency
+ #0 'control.author.nospace :=
+ } 'skip$ if$
+ control.author.jnrlst 'skip$ {
+ duplicate$ #1 swap$ "jnrlst" warning.dependency
+ #1 'control.author.jnrlst :=
+ } if$
+ control.author.initials {
+ duplicate$ ", initials" *
+ control.author.dotless {
+ duplicate$ #0 swap$ "dotless" warning.dependency
+ #0 'control.author.dotless :=
+ } 'skip$ if$
+ pop$
+ } 'skip$ if$
+ pop$
+ }
+ if$
+ control.author.initials 'skip$ {
+ "not initials"
+ control.author.nocomma {
+ duplicate$ #0 swap$ "nocomma" warning.dependency
+ #0 'control.author.nocomma :=
+ } 'skip$ if$
+ control.author.nospace {
+ duplicate$ #0 swap$ "nospace" warning.dependency
+ #0 'control.author.nospace :=
+ } 'skip$ if$
+ control.author.dotless 'skip$ {
+ duplicate$ #1 swap$ "dotless" warning.dependency
+ #1 'control.author.dotless :=
+ } if$
+ pop$
+ } if$
+}
+
+FUNCTION {control.parse}
+{
+ duplicate$ duplicate$ missing$
+ {
+ pop$ pop$ pop$
+ }
+ { empty$
+ {
+ pop$ #-1
+ }{
+ str.to.hex
+ }
+ if$
+ swap$ :=
+ }
+ if$
+}
+
+FUNCTION {control.dump}
+{
+ duplicate$ missing$ { pop$ "N/A" } 'skip$ if$
+ "{" swap$ * "}, " *
+ *
+}
+
+INTEGERS { decode.threshold }
+
+FUNCTION {control.decode}
+{
+ - duplicate$
+ #0 <
+ {
+ skip$ pop$ swap$ #0
+ }
+ {
+ swap$ pop$ swap$ #1
+ }
+ if$
+ swap$ :=
+}
+
+FUNCTION {control.author.decode}
+{
+ control.author
+ duplicate$ duplicate$ #0 < swap$ #128 < not or
+ {
+ int.to.str$ "(" swap$ * ")" *
+ "Control cannot interpret author " swap$ *
+ warning$
+ }{
+ 'control.author.jnrlst swap$ duplicate$ #64 control.decode
+ 'control.author.dotless swap$ duplicate$ #32 control.decode
+ 'control.author.nospace swap$ duplicate$ #16 control.decode
+ 'control.author.initials swap$ duplicate$ #8 control.decode
+ 'control.author.nocomma swap$ duplicate$ #4 control.decode
+ 'control.author.first swap$ duplicate$ #2 control.decode
+ 'control.author.reversed swap$ duplicate$ #1 control.decode
+ duplicate$ #0 =
+ 'skip$
+ {
+ "Control: residue of author"
+ "(" swap$ * ")" * *
+ warning$
+ }
+ if$
+ pop$
+ }
+ if$
+}
+
+FUNCTION {control.setup}
+{
+ type$ cite$ "{" swap$ * "}, " * *
+ "control.key" key control.dump *
+ "control.author" author control.dump *
+ "control.editor" editor control.dump *
+ "control.title" title control.dump *
+ "control.pages" pages control.dump *
+ "control.year" year control.dump *
+ "control.eprint" eprint control.dump *
+ top$
+ 'control.key key control.parse
+ 'control.author author control.parse
+ 'control.editor editor control.parse
+ 'control.title title control.parse
+ 'control.pages pages control.parse
+ 'control.year year control.parse
+ 'control.eprint eprint control.parse
+ control.author.decode
+}
+
+FUNCTION {control.pass}
+{ type$ "control" = 'control.setup 'skip$ if$
+}
+
+FUNCTION {control.presort}
+{
+}
+
+FUNCTION {control.forward}
+{
+}
+
+FUNCTION {control.reverse}
+{
+}
+
+FUNCTION {control.sort}
+{
+}
+
+FUNCTION {control.longest.label}
+{
+}
+
+FUNCTION {control.key.bib}
+{
+ "Control: key "
+ control.key
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ pop$ *
+ diagn.cmntlog
+}
+
+FUNCTION {control.author.bib}
+{
+ "Control: author "
+ control.author "(" swap$ int.to.str$ * ")" * *
+ control.author.reversed { " reversed" * }{} if$
+ control.author.first { " first" * }{} if$
+ control.author.nocomma { " nocomma" * }{} if$
+ control.author.initials { " initials" * }{} if$
+ control.author.nospace { " nospace" * }{} if$
+ control.author.dotless { " dotless" * }{} if$
+ control.author.jnrlst { " jnrlst" * }{} if$
+ diagn.cmntlog
+}
+
+FUNCTION {control.editor.bib}
+{
+ "Control: editor formatted "
+ control.editor
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ duplicate$ #0 < {
+ pop$
+ "disabled!"
+ } {
+ #0 > {
+ "identically to author"
+ } {
+ "differently from author"
+ } if$
+ } if$ * *
+ diagn.cmntlog
+}
+
+FUNCTION {control.title.bib}
+{
+ "Control: production of article title "
+ control.title
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ duplicate$ #0 < {
+ pop$
+ "disabled"
+ } {
+ #0 > {
+ "required"
+ } {
+ "allowed"
+ } if$
+ } if$ * *
+ diagn.cmntlog
+}
+
+FUNCTION {control.pages.bib}
+{
+ "Control: page "
+ control.pages
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ duplicate$ #0 < {
+ pop$
+ "none"
+ } {
+ #0 > {
+ "range"
+ } {
+ "single"
+ } if$
+ } if$ * *
+ diagn.cmntlog
+}
+
+FUNCTION {control.year.bib}
+{
+ "Control: year "
+ control.year
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ duplicate$ #0 < {
+ pop$
+ "disabled!"
+ } {
+ #0 > {
+ "truncated"
+ } {
+ "verbatim"
+ } if$
+ } if$ * *
+ diagn.cmntlog
+}
+
+FUNCTION {control.eprint.bib}
+{
+ "Control: production of eprint "
+ control.eprint
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ #0 < { "disabled" } { "enabled" } if$ * *
+ diagn.cmntlog
+}
+
+FUNCTION {control.bib}
+{
+ control.key.bib
+ control.author.bib
+ control.editor.bib
+ control.title.bib
+ control.pages.bib
+ control.year.bib
+ control.eprint.bib
+}
+
FUNCTION {init.state.consts}
{
#0 'before.all :=
@@ -182,7 +575,7 @@ FUNCTION {show.stackstring.two}{
duplicate$ "2(" swap$ * ")" * top$
}
-FUNCTION {bibfield.command}{ "\bibfield"}
+FUNCTION {bibfield.command}{ "\bibfield "}
FUNCTION {output.nonnull}
{
@@ -212,9 +605,7 @@ FUNCTION {output.nonnull}
output.bibfield duplicate$ empty$ 'pop$
{
bibfield.command
- "{" * swap$ * "}{%" * write$ newline$
- " " swap$ * "}%" * write$ newline$
- " "
+ " {" * swap$ * "} {" * swap$ * "}" *
}
if$
write$
@@ -245,6 +636,12 @@ FUNCTION {output}
if$
}
+FUNCTION {output.nopunct}
+{
+ punctuation.no 'punctuation.state :=
+ output.nonnull
+}
+
FUNCTION {output.check}
{ swap$
duplicate$ empty$
@@ -253,9 +650,9 @@ FUNCTION {output.check}
if$
}
-FUNCTION {bbl.open} { "\BibitemOpen" }
+FUNCTION {bbl.open} { "\BibitemOpen " }
-FUNCTION {bbl.shut} { "\BibitemShut" }
+FUNCTION {bbl.shut} { "\BibitemShut " }
FUNCTION {bibitem.shut.stop} { bbl.shut "{Stop}%" * }
@@ -332,7 +729,7 @@ FUNCTION {add.blank}
FUNCTION {no.blank.or.punct}
{
- "\hspace{0pt}" *
+ "\hspace {0pt}" *
before.all 'output.state :=
}
@@ -342,6 +739,23 @@ FUNCTION {date.block}
skip$
}
+STRINGS {z}
+FUNCTION {remove.dots}
+{
+ control.author.dotless {
+ 'z :=
+ ""
+ { z empty$ not }
+ { z #1 #1 substring$
+ z #2 global.max$ substring$ 'z :=
+ duplicate$ "." = 'pop$
+ { * }
+ if$
+ }
+ while$
+ } 'skip$ if$
+}
+
FUNCTION {new.block.checkb}
{ empty$
swap$ empty$
@@ -363,7 +777,7 @@ FUNCTION {emphasize}
duplicate$ empty$
{ pop$ "" }
{
- "\emph{" swap$ * "}" *
+ "\emph {" swap$ * "}" *
}
if$
}
@@ -371,7 +785,7 @@ FUNCTION {emphasize}
FUNCTION {bolden}
{ duplicate$ empty$
{ pop$ "" }
- { "\textbf{" swap$ * "}" * }
+ { "\textbf {" swap$ * "}" * }
if$
}
@@ -380,7 +794,7 @@ FUNCTION {bib.name.font}
duplicate$ empty$
{ pop$ "" }
{
- "\bibnamefont{" swap$ * "}" *
+ "\bibnamefont {" swap$ * "}" *
}
if$
}
@@ -390,7 +804,7 @@ FUNCTION {bib.fname.font}
duplicate$ empty$
{ pop$ "" }
{
- "\bibfnamefont{" swap$ * "}" *
+ "\bibfnamefont {" swap$ * "}" *
}
if$
}
@@ -400,7 +814,7 @@ FUNCTION {cite.name.font}
duplicate$ empty$
{ pop$ "" }
{
- "\citenamefont{" swap$ * "}" *
+ "\citenamefont {" swap$ * "}" *
}
if$
}
@@ -424,6 +838,7 @@ FUNCTION {space.word}
% Here are the language-specific definitions for explicit words.
% Each function has a name bbl.xxx where xxx is the English word.
% The language selected here is ENGLISH
+
FUNCTION {bbl.and}
{
"and"
@@ -563,7 +978,7 @@ MACRO {dec} {"Dec."}
FUNCTION {bbl.url.prefix}
{
- "\urlprefix"
+ "\urlprefix "
}
FUNCTION {eng.ord}
@@ -875,7 +1290,7 @@ MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
MACRO {tcs} {"Theor. Comput. Sci."}
-FUNCTION {bibinfo.command} { "\bibinfo" }
+FUNCTION {bibinfo.command} { "\bibinfo " }
FUNCTION {bibinfo.check}
{ swap$
@@ -889,7 +1304,7 @@ FUNCTION {bibinfo.check}
swap$ pop$
}{
swap$
- bibinfo.command " {" * swap$ * "} {" * swap$ * "}" *
+ bibinfo.command "{" * swap$ * "} {" * swap$ * "}" *
}
if$
}
@@ -927,11 +1342,14 @@ FUNCTION {archiv.prefix.base}
FUNCTION {eprint.command}
{
- "\Eprint"
+ "\Eprint "
}
FUNCTION {format.eprint}
-{ eprint duplicate$ empty$
+{
+ eprint duplicate$ empty$
+ control.eprint #0 <
+ or
{ pop$ "" }
{
duplicate$
@@ -939,13 +1357,13 @@ FUNCTION {format.eprint}
archive duplicate$ empty$ { pop$ archiv.base } 'skip$ if$ *
"/" *
swap$ *
- "{" swap$ * "}" *
+ "{" swap$ * "} " *
swap$
""
archivePrefix duplicate$ empty$ { pop$ "" } { ":" * } if$ *
swap$ *
primaryClass duplicate$ empty$ { pop$ "" } { " [" swap$ * "]" * } if$ *
- "{" swap$ * "}" *
+ "{" swap$ * "} " *
*
eprint.command swap$ *
}
@@ -967,7 +1385,7 @@ FUNCTION {format.url}
url duplicate$ empty$
{ pop$ "" }
{
- "\url"
+ "\url "
"{" * swap$ * "}" *
}
if$
@@ -990,127 +1408,339 @@ FUNCTION {check.speaker}
STRINGS { bibinfo}
+FUNCTION {format.names.fname}
+{
+ control.author.initials {
+ control.author.dotless {
+ control.author.nospace {
+ "f{}"
+ } {
+ "f{~}"
+ } if$
+ } {
+ control.author.nospace {
+ "f{.}."
+ } {
+ "f."
+ } if$
+ } if$
+ } {
+ "ff"
+ } if$
+}
+
+FUNCTION {bracify}
+{
+ "{" swap$ * "}" *
+}
+
+FUNCTION {name.comma}
+{
+ control.author.nocomma 'skip$ { "," swap$ * } if$
+}
+
+FUNCTION {format.names.format.onefont}
+{
+ "{vv~}{ll}"
+ nameptr #1 >
+ control.author.first
+ and
+ control.author.reversed not
+ or
+ {
+ control.author.initials {
+ "f"
+ control.author.dotless 'skip$ {
+ "." *
+ } if$
+ "~" *
+ } {
+ "ff"
+ } if$
+ bracify
+ swap$
+ } {
+ format.names.fname
+ " " swap$ *
+ name.comma
+ bracify
+ }
+ if$
+ "jj"
+ " " swap$ *
+ name.comma
+ bracify
+ control.author.jnrlst 'skip$ 'swap$ if$
+ * *
+}
+
+FUNCTION {format.names.onefont}
+{
+ s nameptr format.names.format.onefont format.name$
+ remove.dots
+ bib.name.font
+}
+
+FUNCTION {format.names.morfont}
+{ s nameptr
+ "{vv~}{ll}" format.name$ bib.name.font
+ nameptr #1 >
+ control.author.first
+ and
+ control.author.reversed not
+ or
+ {
+ s nameptr
+ control.author.initials {
+ "f" % default: name + surname + comma junior
+ } {
+ "ff"
+ } if$
+ control.author.dotless 'skip$ {
+ "." * % nm-init % Initials. + surname (J. F. Smith) control.author.initials
+ } if$
+ bracify
+ format.name$ duplicate$ empty$ 'skip$
+ { tie.or.space.prefix bib.fname.font swap$ * }
+ if$
+ swap$
+ *
+ s nameptr
+ "{jj}" format.name$ duplicate$ empty$ 'skip$
+ { bib.fname.font ", " swap$ * }
+ if$
+ } {
+ s nameptr
+ format.names.fname
+ "jj"
+ " "
+ name.comma
+ control.author.jnrlst {
+ swap$ * skip$
+ } {
+ skip$ * swap$
+ } if$
+ bracify swap$ bracify swap$
+ *
+ format.name$
+ remove.dots
+ duplicate$ empty$ 'skip$
+ { bib.fname.font " " swap$ * }
+ if$
+ } if$
+ *
+}
+
+FUNCTION {names.punctuate}
+{
+ "," *
+ " " *
+}
+
FUNCTION {format.names}
{ 'bibinfo :=
- duplicate$ empty$ 'skip$ {
- 's :=
- "" 't :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- "{vv~}{ll}" format.name$ bib.name.font
- s nameptr
- "{jj, }{f.}"
- format.name$ duplicate$ empty$ 'skip$
- { bib.fname.font ", " swap$ * }
- if$
- *
- bibinfo bibinfo.check
- type$ "presentation" =
- { check.speaker }
- 'skip$
- if$
- 't :=
- nameptr #1 >
- {
- namesleft #1 >
- {
- ", " *
- t *
- }{
- s nameptr "{ll}" format.name$ duplicate$ "others" =
- { 't := }
- { pop$ }
- if$
- numnames #2 >
- {
- "," *
- }
- 'skip$
- if$
- t "others" =
- {
- " " * bbl.etal
- emphasize
- *
- }{
- bbl.and
- space.word *
- t *
- }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
+ duplicate$ empty$ { pop$ "" } {
+ duplicate$ num.names$
+ duplicate$ 'numnames :=
+ 'namesleft :=
+ 's :=
+ #1 'nameptr :=
+ ""
+ { namesleft #0 > }
+ {
+ format.names.morfont
+ bibinfo bibinfo.check
+ type$ "presentation" =
+ 'check.speaker
+ 'skip$
+ if$
+ 't :=
+ nameptr #1 > not
+ {
+ t *
+ } {
+ namesleft #1 >
+ {
+ names.punctuate
+ t *
+ } {
+ s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { 't := }
+ { pop$ }
+ if$
+ numnames #2 >
+ 'names.punctuate
+ 'skip$
+ if$
+ t "others" =
+ {
+ " " *
+ bbl.etal
+ emphasize
+ *
+ } {
+ bbl.and
+ space.word *
+ t *
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
} if$
}
-FUNCTION {format.names.ed}
+FUNCTION {format.names.ed.onefont}
{
- 'bibinfo :=
- duplicate$ empty$ 'skip$ {
- 's :=
- "" 't :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- "{f.}" format.name$ duplicate$ empty$ 'skip$
+ s nameptr
+ control.author.initials {
+ control.author.dotless {
+ control.author.nospace {
+ "{f{}~}{vv~}{ll}{ jj}" % nm-rvx|nm-rvcx
+ } {
+ "{f{~}~}{vv~}{ll}{ jj}" % nm-rv
+ } if$
+ } {
+ control.author.nospace {
+ "{f{.}.~}{vv~}{ll}{ jj}" % nm-rvv|nm-rvvc
+ }{
+ "{f.~}{vv~}{ll}{, jj}" % nm-init|nm-rev|nm-rev1
+ } if$
+ } if$
+ } {
+ "{ff~}{vv~}{ll}{, jj}"
+ } if$
+ format.name$
+ remove.dots
+ bib.name.font
+}
+
+FUNCTION {format.names.ed.morfont}
+{
+ control.author.reversed { %
+ control.author.initials { %
+ control.author.dotless { %
+ s nameptr
+ control.author.nospace { % nm-rvx nm-rvcx
+ "{f{}}"
+ } { % nm-rv
+ "{f{~}}"
+ } if$
+ format.name$ duplicate$ empty$ 'skip$
+ { tie.or.space.prefix bib.fname.font swap$ * }
+ if$
+ s nameptr
+ "{vv~}{ll}" format.name$ bib.name.font *
+ s nameptr
+ "{jj}" format.name$
+ remove.dots
+ duplicate$ empty$ 'skip$
+ { bib.fname.font " " swap$ * }
+ if$
+ } { % !control.author.dotless
+ s nameptr
+ control.author.nospace { % nm-rvv
+ "{ff}"
+ } { % nm-rev nm-rev1
+ "{f.}"
+ } if$
+ format.name$ duplicate$ empty$ 'skip$
+ { tie.or.space.prefix bib.fname.font swap$ * }
+ if$
+ s nameptr
+ "{vv~}{ll}" format.name$ bib.name.font *
+ s nameptr
+ "{jj}" format.name$
+ duplicate$ empty$ 'skip$
+ { bib.fname.font ", " swap$ * }
+ if$
+ } if$
+ } { % Full names !control.author.initials nm-revf nm-revv1
+ s nameptr
+ "{ff}"
+ format.name$ duplicate$ empty$ 'skip$
{ tie.or.space.prefix bib.fname.font swap$ * }
if$
s nameptr
"{vv~}{ll}" format.name$ bib.name.font *
s nameptr
- "{jj}" format.name$ duplicate$ empty$ 'skip$
+ "{jj}" format.name$
+ duplicate$ empty$ 'skip$
{ bib.fname.font ", " swap$ * }
if$
- *
- bibinfo bibinfo.check
- 't :=
- nameptr #1 >
- {
- namesleft #1 >
- {
- ", " *
- t *
- }{
- s nameptr "{ll}" format.name$ duplicate$ "others" =
- { 't := }
- { pop$ }
- if$
- numnames #2 >
- {
- "," *
- }
- { skip$ }
- if$
- t "others" =
- {
+ } if$
+ } { % !control.author.reversed nm-init
+ s nameptr
+ "{f.}"
+ format.name$ duplicate$ empty$ 'skip$
+ { tie.or.space.prefix bib.fname.font swap$ * }
+ if$
+ s nameptr
+ "{vv~}{ll}" format.name$ bib.name.font *
+ s nameptr
+ "{jj}" format.name$
+ duplicate$ empty$ 'skip$
+ { bib.fname.font ", " swap$ * }
+ if$
+ } if$
+ *
+}
- " " * bbl.etal emphasize *
- }{
- bbl.and
- space.word * t *
- }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
+FUNCTION {format.names.ed}
+{
+ control.editor #0 > {
+ format.names
+ } {
+ 'bibinfo :=
+ duplicate$ empty$ 'skip$ {
+ 's :=
+ "" 't :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ {
+ format.names.ed.morfont
+ bibinfo bibinfo.check
+ 't :=
+ nameptr #1 >
+ {
+ namesleft #1 >
+ {
+ names.punctuate
+ t *
+ }{
+ s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { 't := }
+ { pop$ }
+ if$
+ numnames #2 >
+ 'names.punctuate
+ 'skip$
+ if$
+ t "others" =
+ {
+ " " * bbl.etal emphasize *
+ }{
+ bbl.and
+ space.word * t *
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ } if$
} if$
}
@@ -1175,18 +1805,28 @@ FUNCTION {doi.base}
"http://dx.doi.org/"
}
+FUNCTION {noop.command}
+{
+ "\href@noop "
+}
+
FUNCTION {doi.command}
{
- "\doi"
+ "\doi "
}
FUNCTION {doi.command.href}
{
- "\Doi"
+ "\Doi "
+}
+
+FUNCTION {href.command}
+{
+ "\href "
}
FUNCTION {format.doi}
-{ doi "doi" bibinfo.check
+{ doi
duplicate$ empty$ 'skip$
{
new.block.comma
@@ -1195,22 +1835,67 @@ FUNCTION {format.doi}
if$
}
-FUNCTION {add.doi}
+FUNCTION {add.doi.old}
{
duplicate$ empty$ 'skip$
{
- doi duplicate$ empty$ 'pop$
+ doi duplicate$ empty$
{
- "{" swap$ * "}" *
- swap$
- "{" swap$ * "}" *
- *
- doi.command.href swap$ *
+ pop$
+ url duplicate$ empty$
+ {
+ pop$
+ }{
+ href.command " {" * swap$ * "} {" * swap$ * "}" *
+ }
+ if$
+ }
+ {
+ doi.command.href " {" * swap$ * "} {" * swap$ * "}" *
}
if$
}
if$
}
+FUNCTION {link.tag.open}
+{
+ doi duplicate$ empty$
+ {
+ pop$
+ url duplicate$ empty$
+ {
+ pop$ "" noop.command
+ }{
+ href.command
+ }
+ if$
+ }
+ {
+ doi.command.href
+ }
+ if$
+ "{" * swap$ * "} {" *
+}
+
+FUNCTION {link.tag.shut}
+{
+ "}"
+}
+
+FUNCTION {link.open}
+{
+ link.tag.open output.nopunct
+}
+
+FUNCTION {link.shut}
+{
+ link.tag.shut *
+}
+
+FUNCTION {add.doi}
+{
+ link.tag.open swap$ * link.tag.shut *
+}
FUNCTION {select.language}
{ duplicate$ empty$
@@ -1244,7 +1929,7 @@ FUNCTION {format.note}
FUNCTION {bbl.enquote}
{
- "\enquote"
+ "\enquote "
}
FUNCTION {string.enquote}
@@ -1252,7 +1937,7 @@ FUNCTION {string.enquote}
punctuation.no 'punctuation.state :=
non.stop {
block.punctuation
- } { "." } if$
+ } { "" } if$
swap$ pop$
*
bbl.enquote "{" * swap$ * "}" *
@@ -1279,6 +1964,14 @@ FUNCTION {end.quote.title}
if$
}
+FUNCTION {format.name.apply}
+{
+ s nameptr
+ "{vv~}{ll}"
+ format.name$
+ cite.name.font
+}
+
FUNCTION {format.full.names}
{
's :=
@@ -1287,10 +1980,7 @@ FUNCTION {format.full.names}
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
- { s nameptr
- "{vv~}{ll}"
- format.name$
- cite.name.font
+ { format.name.apply
't :=
nameptr #1 >
{
@@ -1366,13 +2056,13 @@ FUNCTION {output.bibitem}
""
label
*
- ")" *
make.full.names duplicate$ short.list =
{ pop$ }{ * } if$
- "{" swap$ * "}" *
+ bracify
"[" swap$ * "]" *
- "{" * cite$ * "}%" *
- "\bibitem"
+ cite$ bracify "%" *
+ *
+ "\bibitem "
swap$ *
write$ newline$
" "
@@ -1668,7 +2358,16 @@ FUNCTION {format.journal.pages}
{ pop$ pop$ format.pages }
{ volnum.punct *
swap$
- first.page
+ control.pages duplicate$ #0 < {
+ pop$ pop$
+ }{
+ #0 >
+ {
+ n.dashify
+ }{
+ first.page
+ } if$
+ } if$
"pages" bibinfo.check
*
}
@@ -1699,7 +2398,6 @@ FUNCTION {eid.or.pages}
FUNCTION {format.ser.vol.num}
{
series "series" bibinfo.check output
- after.punctuation 'output.state :=
volume field.or.null
duplicate$ empty$ 'skip$
{
@@ -1774,7 +2472,7 @@ FUNCTION {format.in.ed.booktitle}
{
format.booktitle duplicate$ empty$ 'pop$
{
- add.doi
+ add.doi
word.in swap$ * output.nonnull
bookaddress "address" bibinfo.check output
format.number.series "series and number" bibinfo.check output
@@ -1788,7 +2486,7 @@ FUNCTION {format.in.ed.booktitle.inbook}
{
format.booktitle duplicate$ empty$ 'pop$
{
- add.doi
+ add.doi
word.in swap$ * output.nonnull
bookaddress "address" bibinfo.check output
format.number.series "series and number" bibinfo.check output
@@ -1930,6 +2628,27 @@ FUNCTION {format.school.address.output}
output
}
+FUNCTION {article.title.produce}
+{
+ control.title duplicate$ #0 <
+ { pop$
+ }{
+ format.title
+ "title" 'bibfield :=
+ swap$ #0 >
+ {
+ "title" output.check
+ }{
+ output
+ } if$
+ new.block.comma
+ } if$
+}
+
+FUNCTION {control}
+{
+}
+
FUNCTION {article}
{ output.bibitem
format.authors
@@ -1938,18 +2657,20 @@ FUNCTION {article}
}{ output } if$
author format.key output
new.block.comma
+ article.title.produce
output.article.booktitle
crossref missing$
{
+ link.open
journal
"journal" bibinfo.warn
- pages empty$ 'skip$ { add.doi } if$
"journal" 'bibfield :=
output
format.ser.vol.num
output
eid.or.pages
format.date.output.check
+ link.shut
}{
format.article.crossref output.nonnull
format.pages output
@@ -1963,7 +2684,6 @@ FUNCTION {article}
new.sentence.comma
format.note output
format.eprint output
- format.url output
format.translation output
fin.entry
}
@@ -1972,25 +2692,28 @@ FUNCTION {book}
{ output.bibitem
author empty$
{
+ format.editors "author and editor" output.check
+ editor format.key output
}{
format.authors output.nonnull
- crossref missing$ { editor.check.book } 'skip$ if$
+% crossref missing$ { editor.check.book } 'skip$ if$
}
if$
new.block.comma
+ link.open
format.btitle
- add.doi
"title" output.check
+ link.shut
format.edition output
author empty$
{
- format.editor.in output
- editor format.key output
}
{
+ format.editor.in output
+ editor format.key output
}
if$
- format.number.series output
+ format.number.series output
crossref missing$
{
format.bvolume output
@@ -2003,13 +2726,12 @@ FUNCTION {book}
}
if$
format.isbn output
- format.chapter.pages
- output
+ format.chapter.pages
+ output
new.block.comma
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
@@ -2018,9 +2740,10 @@ FUNCTION {booklet}
format.authors output
author format.key output
new.block.comma
+ link.open
format.title
- add.doi
"title" output.check
+ link.shut
new.block.comma
howpublished "howpublished" bibinfo.check output
address "address" bibinfo.check output
@@ -2031,7 +2754,12 @@ FUNCTION {booklet}
new.sentence.comma
format.note output
format.eprint output
- format.url output
+ fin.entry
+}
+
+FUNCTION {footnote}
+{ output.bibitem
+ format.note output
fin.entry
}
@@ -2078,7 +2806,6 @@ FUNCTION {inbook}
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
@@ -2087,6 +2814,7 @@ FUNCTION {incollection}
format.authors "author" output.check
author format.key output
new.block.comma
+ article.title.produce
crossref missing$
{
format.in.ed.booktitle
@@ -2103,7 +2831,6 @@ FUNCTION {incollection}
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
@@ -2112,6 +2839,7 @@ FUNCTION {inproceedings}
format.authors "author" output.check
author format.key output
new.block.comma
+ article.title.produce
crossref missing$
{
format.in.ed.booktitle
@@ -2128,7 +2856,6 @@ FUNCTION {inproceedings}
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
@@ -2138,9 +2865,10 @@ FUNCTION {manual}
format.authors output
author format.key output
new.block.comma
+ link.open
format.btitle
- add.doi
"title" output.check
+ link.shut
organization "organization" bibinfo.check output
address "address" bibinfo.check output
format.edition output
@@ -2149,7 +2877,6 @@ FUNCTION {manual}
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
@@ -2161,17 +2888,17 @@ FUNCTION {mastersthesis}
format.btitle
output
new.block.comma
+ link.open
bbl.mthesis
format.thesis.type
- add.doi
output.nonnull
+ link.shut
format.school.address.output
format.date.output.check
new.block.comma
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
@@ -2180,9 +2907,10 @@ FUNCTION {misc}
format.authors output
author format.key output
new.block.comma
+ link.open
format.title
- add.doi
output
+ link.shut
new.block.comma
howpublished "howpublished" bibinfo.check output
format.date.output
@@ -2190,7 +2918,6 @@ FUNCTION {misc}
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
@@ -2202,17 +2929,17 @@ FUNCTION {phdthesis}
format.btitle
output
new.block.comma
+ link.open
bbl.phdthesis
format.thesis.type
- add.doi
output.nonnull
+ link.shut
format.school.address.output
format.date.output.check
new.block.comma
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
@@ -2221,7 +2948,10 @@ FUNCTION {presentation}
format.authors output
author format.key output
new.block.comma
- format.title output
+ link.open
+ format.title
+ output
+ link.shut
new.block.comma
format.organization.address "organization and address" output.check
month "month" output.check
@@ -2233,7 +2963,6 @@ FUNCTION {presentation}
type missing$ 'skip$
{"(" type capitalize * ")" * output}
if$
- new.block.comma format.url output
fin.entry
}
@@ -2242,9 +2971,10 @@ FUNCTION {proceedings}
format.editors output
editor format.key output
new.block.comma
+ link.open
format.btitle
- add.doi
"title" output.check
+ link.shut
bookaddress "address" bibinfo.check output
format.number.series output
format.bvolume output
@@ -2255,7 +2985,6 @@ FUNCTION {proceedings}
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
@@ -2264,9 +2993,10 @@ FUNCTION {techreport}
format.authors "author" output.check
author format.key output
new.block.comma
+ link.open
format.title
- add.doi
"title" output.check
+ link.shut
new.block.comma
format.tr.number
output.nonnull
@@ -2276,7 +3006,6 @@ FUNCTION {techreport}
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
@@ -2285,26 +3014,35 @@ FUNCTION {unpublished}
format.authors "author" output.check
author format.key output
new.block.comma
+ link.open
format.title
- add.doi
"title" output.check
+ link.shut
format.date.output
new.block.comma
new.sentence.comma
format.note "note" output.check
format.eprint output
- format.url output
fin.entry
}
FUNCTION {default.type} { misc }
+
READ
+
+EXECUTE {control.init}
+
+ITERATE {control.pass}
+
+EXECUTE {control.check}
+
FUNCTION {sortify}
{ purify$
"l" change.case$
}
INTEGERS { len }
+
FUNCTION {chop.word}
{ 's :=
'len :=
@@ -2314,28 +3052,29 @@ FUNCTION {chop.word}
if$
}
+FUNCTION {cite.name.font.apply}
+{
+ word.space * bbl.etal
+ emphasize
+ *
+}
+
FUNCTION {format.lab.names}
{ 's :=
"" 't :=
- s #1
- "{vv~}{ll}"
- format.name$
- cite.name.font
+ #1 'nameptr :=
+ format.name.apply
s num.names$ duplicate$
#2 >
{ pop$
- word.space * bbl.etal
- emphasize
- *
+ cite.name.font.apply
}{
#2 <
'skip$
{
s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
{
- word.space * bbl.etal
- emphasize
- *
+ cite.name.font.apply
}{
bbl.and space.word *
s #2 "{vv~}{ll}" format.name$
@@ -2401,19 +3140,18 @@ FUNCTION {calc.short.authors}
}
FUNCTION {calc.label}
-{ calc.short.authors
+{
+ calc.short.authors
short.list
- "("
- *
year duplicate$ empty$
{
pop$ ""
}{
- purify$ #-1 #4 substring$
+ control.year #0 > { purify$ #-1 #4 substring$ } 'skip$ if$
}
if$
- *
- 'label :=
+ "(" swap$ * ")" *
+ * 'label :=
}
FUNCTION {sort.format.names}
@@ -2424,7 +3162,13 @@ FUNCTION {sort.format.names}
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
- "{ll{ }}{ f{ }}{ jj{ }}"
+ "{ll{ }}"
+ control.author.initials {
+ "{ f{ }}" *
+ }{
+ "{ ff{ }}" *
+ } if$
+ "{ jj{ }}" *
format.name$ 't :=
nameptr #1 >
{
@@ -2485,6 +3229,11 @@ FUNCTION {author.editor.sort}
if$
}
+FUNCTION {year.sort.key}
+{
+ year
+}
+
FUNCTION {editor.sort}
{ editor empty$
{ key empty$
@@ -2498,8 +3247,21 @@ FUNCTION {editor.sort}
if$
}
-FUNCTION {presort}
-{ calc.label
+INTEGERS { seq.num }
+
+FUNCTION {init.seq}
+{ #0 'seq.num :=}
+
+EXECUTE {init.seq}
+
+FUNCTION {int.to.fix}
+{ "000000000" swap$ int.to.str$ *
+ #-1 #10 substring$
+}
+
+FUNCTION {label.presort}
+{
+ calc.label
label sortify
" "
*
@@ -2519,17 +3281,24 @@ FUNCTION {presort}
*
" "
*
- title field.or.null
- sort.format.title
+ title field.or.null sort.format.title
*
#1 entry.max$ substring$
'sort.key$ :=
}
-ITERATE {presort}
+FUNCTION {presort.pass}
+{ type$ "control" = 'control.presort 'label.presort if$
+}
+
+ITERATE {presort.pass}
+
SORT
+
STRINGS { last.label next.extra }
+
INTEGERS { last.extra.num number.label }
+
FUNCTION {initialize.extra.label.stuff}
{ #0 int.to.chr$ 'last.label :=
"" 'next.extra :=
@@ -2537,8 +3306,9 @@ FUNCTION {initialize.extra.label.stuff}
#0 'number.label :=
}
-FUNCTION {forward.pass}
-{ last.label label =
+FUNCTION {label.forward}
+{
+ last.label label =
{ last.extra.num #1 + 'last.extra.num :=
last.extra.num int.to.chr$ 'extra.label :=
}
@@ -2550,7 +3320,7 @@ FUNCTION {forward.pass}
number.label #1 + 'number.label :=
}
-FUNCTION {reverse.pass}
+FUNCTION {label.reverse}
{ next.extra "b" =
{ "a" 'extra.label := }
'skip$
@@ -2566,31 +3336,47 @@ FUNCTION {reverse.pass}
}
EXECUTE {initialize.extra.label.stuff}
+
+FUNCTION {forward.pass}
+{ type$ "control" = 'control.forward 'label.forward if$
+}
+
ITERATE {forward.pass}
+
+FUNCTION {reverse.pass}
+{ type$ "control" = 'control.reverse 'label.reverse if$
+}
+
REVERSE {reverse.pass}
-FUNCTION {bib.sort.order}
+
+FUNCTION {sortkey.sort}
{ sort.label
" "
*
- year
+ year.sort.key
field.or.null sortify
*
" "
*
- title field.or.null
- sort.format.title
+ title field.or.null sort.format.title
*
#1 entry.max$ substring$
'sort.key$ :=
}
-ITERATE {bib.sort.order}
+FUNCTION {bib.sort.pass}
+{ type$ "control" = 'control.sort 'sortkey.sort if$
+}
+
+ITERATE {bib.sort.pass}
+
SORT
+
FUNCTION {init.bib.eprint}
{
- "\texttt{"
+ "\texttt {"
pop$
- "\providecommand \url [0]{\begingroup\@sanitize \@url }%" write$ newline$
+ "\providecommand \url [0]{\begingroup\@sanitize@url \@url }%" write$ newline$
"\providecommand \@url [1]{\endgroup\@href {#1}{" "}}%" bbl.url.prefix swap$ * * write$ newline$
"\providecommand " " [0]{URL }%" bbl.url.prefix swap$ * * write$ newline$
eprint.command "\providecommand " swap$ * "[0]{\href }%" * write$ newline$
@@ -2599,36 +3385,26 @@ FUNCTION {init.bib.eprint}
FUNCTION {init.bib.doi}
{
"\@ifxundefined \urlstyle {%" write$ newline$
- " \providecommand \doi [1]{doi:\discretionary{}{}{}#1}%" write$ newline$
+ " \providecommand " doi.command " [0]{\begingroup \@sanitize@url \@doi}%" * * write$ newline$
+ " \providecommand \@doi [1]{\endgroup \@@startlink {\doibase #1}doi:\discretionary {}{}{}#1\@@endlink }%" write$ newline$
"}{%" write$ newline$
- " \providecommand \doi [0]{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url }%"
- write$ newline$
+ " \providecommand " doi.command " [0]{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url }%" * * write$ newline$
"}%" write$ newline$
- "\providecommand \doibase [0]{" doi.base * "}%" * write$ newline$
- doi.command.href "\providecommand " swap$ * "[1]{\href{\doibase#1}}%" * write$ newline$
+ "\providecommand \doibase [0]{" doi.base "}%" * * write$ newline$
+ "\providecommand " doi.command.href "[0]{\begingroup \@sanitize@url \@Doi }%" * * write$ newline$
+ "\providecommand \@Doi [1]{\endgroup\@@startlink{\doibase#1}\@@Doi}%" write$ newline$
+ "\providecommand \@@Doi [1]{#1\@@endlink}%" write$ newline$
}
FUNCTION {init.bib.hypertex}
{
- "\providecommand\href[0]{\@sanitize\@href}%" write$ newline$
- "\providecommand\@href[1]{\endgroup\@@startlink{#1}\endgroup\@@href}%" write$ newline$
- "\providecommand\@@href[1]{#1\@@endlink}%" write$ newline$
- "\providecommand \@sanitize [0]{\begingroup\catcode`\&12\catcode`\#12\relax}%" write$ newline$
- "\@ifxundefined \pdfoutput {\@firstoftwo}{%" write$ newline$
- " \@ifnum{\z@=\pdfoutput}{\@firstoftwo}{\@secondoftwo}%" write$ newline$
- "}{%" write$ newline$
- " \providecommand\@@startlink[1]{\leavevmode\special{html:<a href=" quote$ * "#1" * quote$ * ">}}%" * write$ newline$
- " \providecommand\@@endlink[0]{\special{html:</a>}}%" write$ newline$
- "}{%" write$ newline$
- " \providecommand\@@startlink[1]{%" write$ newline$
- " \leavevmode" write$ newline$
- " \pdfstartlink" write$ newline$
- " attr{/Border[0 0 1 ]/H/I/C[0 1 1]}%" write$ newline$
- " user{/Subtype/Link/A<</Type/Action/S/URI/URI(#1)>>}%" write$ newline$
- " \relax" write$ newline$
- " }%" write$ newline$
- " \providecommand\@@endlink[0]{\pdfendlink}%" write$ newline$
- "}%" write$ newline$
+ "\providecommand " noop.command "[0]{\@secondoftwo}%" * * write$ newline$
+ "\providecommand " href.command "[0]{\begingroup \@sanitize@url \@href}%" * * write$ newline$
+ "\providecommand \@href[1]{\@@startlink{#1}\@@href}%" write$ newline$
+ "\providecommand \@@href[1]{\endgroup#1\@@endlink}%" write$ newline$
+ "\providecommand \@sanitize@url [0]{\catcode `\\12\catcode `\$12\catcode `\&12\catcode `\#12\catcode `\^12\catcode `\_12\catcode `\%12\relax}%" write$ newline$
+ "\providecommand \@@startlink[1]{}%" write$ newline$
+ "\providecommand \@@endlink[0]{}%" write$ newline$
}
FUNCTION {init.bib.namefont}
@@ -2683,15 +3459,18 @@ FUNCTION {init.bib}
{
warn.bib
"\makeatletter" write$ newline$
- "\providecommand \@ifxundefined [1]{%" write$ newline$
- " \ifx #1\undefined \expandafter \@firstoftwo" write$ newline$
- " \else \expandafter \@secondoftwo" write$ newline$
- "\fi" write$ newline$
+ "\providecommand \@ifxundefined [1]{%" write$ newline$
+ " \@ifx{#1\undefined}" write$ newline$
"}%" write$ newline$
"\providecommand \@ifnum [1]{%" write$ newline$
" \ifnum #1\expandafter \@firstoftwo" write$ newline$
" \else \expandafter \@secondoftwo" write$ newline$
- "\fi" write$ newline$
+ " \fi" write$ newline$
+ "}%" write$ newline$
+ "\providecommand \@ifx [1]{%" write$ newline$
+ " \ifx #1\expandafter \@firstoftwo" write$ newline$
+ " \else \expandafter \@secondoftwo" write$ newline$
+ " \fi" write$ newline$
"}%" write$ newline$
init.bib.ay
init.bib.quote
@@ -2709,7 +3488,8 @@ FUNCTION {init.bib}
FUNCTION {begin.bib}
{
- id.bst duplicate$ top$ "%" swap$ * write$ newline$
+ id.bst diagn.cmntlog
+ control.bib
preamble$ empty$
'skip$
{ preamble$ write$ newline$ }
@@ -2722,8 +3502,11 @@ FUNCTION {begin.bib}
}
EXECUTE {begin.bib}
+
EXECUTE {init.state.consts}
+
ITERATE {call.type$}
+
FUNCTION {end.bib}
{ newline$
"\end{thebibliography}%"
@@ -2731,6 +3514,7 @@ FUNCTION {end.bib}
}
EXECUTE {end.bib}
+
%% End of customized bst file
%%
%% End of file `aipauth4-1.bst'.
diff --git a/Master/texmf-dist/bibtex/bst/revtex/aipauth4-1long.bst b/Master/texmf-dist/bibtex/bst/revtex/aipauth4-1long.bst
deleted file mode 100644
index eb28f1f8f36..00000000000
--- a/Master/texmf-dist/bibtex/bst/revtex/aipauth4-1long.bst
+++ /dev/null
@@ -1,2736 +0,0 @@
-%%
-%% This is file `aipauth4-1long.bst',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% merlin.mbs (with options: `head,ay,nat,lang,pres,pres-bf,vonx,nm-revf,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,blkyear,yr-par,date-nil-x,tit-qq,inproceedings-chapter,article-title-o,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% physjour.mbs (with options: `ay,nat,lang,pres,pres-bf,vonx,nm-revf,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,blkyear,yr-par,date-nil-x,tit-qq,inproceedings-chapter,article-title-o,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% geojour.mbs (with options: `ay,nat,lang,pres,pres-bf,vonx,nm-revf,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,blkyear,yr-par,date-nil-x,tit-qq,inproceedings-chapter,article-title-o,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% photjour.mbs (with options: `ay,nat,lang,pres,pres-bf,vonx,nm-revf,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,blkyear,yr-par,date-nil-x,tit-qq,inproceedings-chapter,article-title-o,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% merlin.mbs (with options: `tail,ay,nat,lang,pres,pres-bf,vonx,nm-revf,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,blkyear,yr-par,date-nil-x,tit-qq,inproceedings-chapter,article-title-o,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% ----------------------------------------
-%% *** REVTeX-compatible aipauth4-1long.bst 2009-10-08 ***
-%%
-%% Copyright 1994-2007 Patrick W Daly
- % ===============================================================
- % IMPORTANT NOTICE:
- % This bibliographic style (bst) file has been generated from one or
- % more master bibliographic style (mbs) files, listed above.
- %
- % This generated file can be redistributed and/or modified under the terms
- % of the LaTeX Project Public License Distributed from CTAN
- % archives in directory macros/latex/base/lppl.txt; either
- % version 1 of the License, or any later version.
- % ===============================================================
- % Name and version information of the main mbs file:
- % \ProvidesFile{merlin.mbs}[2008/01/17 4.21 (PWD, AO, DPC)]
- % For use with BibTeX version 0.99a or later
- %-------------------------------------------------------------------
- % This bibliography style file is intended for texts in ENGLISH
- % This is an author-year citation style bibliography. As such, it is
- % non-standard LaTeX, and requires a special package file to function properly.
- % Such a package is natbib.sty by Patrick W. Daly
- % The form of the \bibitem entries is
- % \bibitem[Jones et al.(1990)]{key}...
- % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
- % The essential feature is that the label (the part in brackets) consists
- % of the author names, as they should appear in the citation, with the year
- % in parentheses following. There must be no space before the opening
- % parenthesis!
- % With natbib v5.3, a full list of authors may also follow the year.
- % In natbib.sty, it is possible to define the type of enclosures that is
- % really wanted (brackets or parentheses), but in either case, there must
- % be parentheses in the label.
- % The \cite command functions as follows:
- % \citet{key} ==>> Jones et al. (1990)
- % \citet*{key} ==>> Jones, Baker, and Smith (1990)
- % \citep{key} ==>> (Jones et al., 1990)
- % \citep*{key} ==>> (Jones, Baker, and Smith, 1990)
- % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)
- % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990)
- % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32)
- % \citeauthor{key} ==>> Jones et al.
- % \citeauthor*{key} ==>> Jones, Baker, and Smith
- % \citeyear{key} ==>> 1990
- %---------------------------------------------------------------------
-
-FUNCTION {id.bst} {"Merlin.mbs v4.21 2009-07-09. "}
-ENTRY
-{
- address
- archive
- archivePrefix
- author
- bookaddress
- booktitle
- chapter
- collaboration
- doi
- edition
- editor
- eid
- eprint
- howpublished
- institution
- isbn
- issn
- journal
- key
- language
- month
- note
- number
- organization
- pages
- primaryClass
- publisher
- school
- SLACcitation
- series
- title
- translation
- type
- url
- volume
- year
-}{
-}{
- label
- extra.label sort.label
- short.list
-}
-
-INTEGERS
-{
- output.state before.all
- after.word after.punctuation
- after.sentence after.block
-}
-
-INTEGERS
-{
- punctuation.state punctuation.no punctuation.space punctuation.yes
-}
-
-STRINGS { bibfield output.bibfield }
-FUNCTION {not}
-{ { #0 }
- { #1 }
- if$
-}
-
-FUNCTION {and}
-{ 'skip$
- { pop$ #0 }
- if$
-}
-
-FUNCTION {or}
-{ { pop$ #1 }
- 'skip$
- if$
-}
-
-FUNCTION {non.stop}
-{ duplicate$
- "}" * add.period$
- #-1 #1 substring$ "." =
-}
-
-FUNCTION {init.state.consts}
-{
- #0 'before.all :=
- #1 'after.word :=
- #2 'after.punctuation :=
- #3 'after.sentence :=
- #4 'after.block :=
- #0 'punctuation.no :=
- #1 'punctuation.space :=
- #2 'punctuation.yes :=
- "" 'bibfield :=
- "" 'output.bibfield :=
-}
-
-STRINGS { s t}
-FUNCTION {block.punctuation}
-{ ""
- "," *
-}
-
-FUNCTION {word.space}
-{
- "\ "
-}
-
-FUNCTION {show.stackstring.one}{
- "(" *
- output.state int.to.str$ *
- "," * punctuation.state int.to.str$ *
- ")" * top$
- duplicate$ "1(" swap$ * ")" * top$
-}
-
-FUNCTION {show.stackstring.two}{
- "(" *
- output.state int.to.str$ *
- "," * punctuation.state int.to.str$ *
- ")" * top$
- swap$
- duplicate$ "1(" swap$ * ")" * top$
- swap$
- duplicate$ "2(" swap$ * ")" * top$
-}
-
-FUNCTION {bibfield.command}{ "\bibfield"}
-
-FUNCTION {output.nonnull}
-{
- swap$
- output.state after.word =
- {
- block.punctuation *
- word.space *
- }
- {
- output.state after.punctuation =
- {
- word.space *
- }
- {
- output.state after.block = output.state after.sentence = or
- {
- add.period$
- "\EOS\ " *
- }{
- }
- if$
- }
- if$
- }
- if$
- output.bibfield duplicate$ empty$ 'pop$
- {
- bibfield.command
- "{" * swap$ * "}{%" * write$ newline$
- " " swap$ * "}%" * write$ newline$
- " "
- }
- if$
- write$
- bibfield 'output.bibfield := "" 'bibfield :=
- output.state after.block =
- {
- newline$
- "\newblock " write$
- }
- 'skip$
- if$
- punctuation.state duplicate$
- punctuation.yes 'punctuation.state :=
- punctuation.no =
- { pop$ before.all }
- { punctuation.yes = { after.word }{ after.punctuation } if$ }
- if$
- 'output.state :=
-}
-
-FUNCTION {output}
-{ duplicate$ empty$
- {
- pop$
- "" 'bibfield :=
- }
- 'output.nonnull
- if$
-}
-
-FUNCTION {output.check}
-{ swap$
- duplicate$ empty$
- { pop$ "empty " swap$ * " in " * cite$ * warning$ }
- { swap$ pop$ output.nonnull }
- if$
-}
-
-FUNCTION {bbl.open} { "\BibitemOpen" }
-
-FUNCTION {bbl.shut} { "\BibitemShut" }
-
-FUNCTION {bibitem.shut.stop} { bbl.shut "{Stop}%" * }
-
-FUNCTION {bibitem.shut.nostop} { bbl.shut "{NoStop}%" * }
-
-FUNCTION {bibitem.shut}
-{
- non.stop
- {
- bibitem.shut.nostop *
- }{
- bibitem.shut.stop *
- }
- if$
-}
-
-FUNCTION {html.itag} {
- "p"
-}
-
-FUNCTION {html.ltag} {
- ""
-}
-
-FUNCTION {output.SLACcitation}
-{ SLACcitation empty$
- 'skip$
- {
- newline$
- SLACcitation write$
- }
- if$
-}
-
-FUNCTION {fin.entry}
-{
- bibitem.shut
- write$
- output.SLACcitation
-}
-
-FUNCTION {new.block}
-{ output.state before.all =
- 'skip$
- { after.block 'output.state := }
- if$
-}
-
-FUNCTION {new.block.comma}
-{
-}
-
-FUNCTION {new.sentence}
-{ output.state after.block = output.state before.all = or
- 'skip$
- { after.sentence 'output.state := }
- if$
-}
-
-FUNCTION {new.sentence.comma}
-{
-}
-
-FUNCTION {sentence.or.colon}
-{
- new.sentence
-}
-
-FUNCTION {add.blank}
-{
- word.space *
- before.all 'output.state :=
-}
-
-FUNCTION {no.blank.or.punct}
-{
- "\hspace{0pt}" *
- before.all 'output.state :=
-}
-
-FUNCTION {date.block}
-{
- new.block.comma
- skip$
-}
-
-FUNCTION {new.block.checkb}
-{ empty$
- swap$ empty$
- and
- 'skip$
- 'new.block
- if$
-}
-
-FUNCTION {field.or.null}
-{ duplicate$ empty$
- { pop$ "" }
- 'skip$
- if$
-}
-
-FUNCTION {emphasize}
-{
- duplicate$ empty$
- { pop$ "" }
- {
- "\emph{" swap$ * "}" *
- }
- if$
-}
-
-FUNCTION {bolden}
-{ duplicate$ empty$
- { pop$ "" }
- { "\textbf{" swap$ * "}" * }
- if$
-}
-
-FUNCTION {bib.name.font}
-{
- duplicate$ empty$
- { pop$ "" }
- {
- "\bibnamefont{" swap$ * "}" *
- }
- if$
-}
-
-FUNCTION {bib.fname.font}
-{
- duplicate$ empty$
- { pop$ "" }
- {
- "\bibfnamefont{" swap$ * "}" *
- }
- if$
-}
-
-FUNCTION {cite.name.font}
-{
- duplicate$ empty$
- { pop$ "" }
- {
- "\citenamefont{" swap$ * "}" *
- }
- if$
-}
-
-FUNCTION {tie.or.space.prefix}
-{ duplicate$ text.length$ #3 <
- { "~" }
- { word.space }
- if$
- swap$
-}
-
-FUNCTION {capitalize}
-{
- "u" change.case$ "t" change.case$
-}
-
-FUNCTION {space.word}
-{ word.space swap$ * word.space * }
-
- % Here are the language-specific definitions for explicit words.
- % Each function has a name bbl.xxx where xxx is the English word.
- % The language selected here is ENGLISH
-FUNCTION {bbl.and}
-{
- "and"
-}
-
-FUNCTION {bbl.etal}
-{
- "et~al."
-}
-
-FUNCTION {bbl.editors}
-{
- "eds."
-}
-
-FUNCTION {bbl.editor}
-{
- "ed."
-}
-
-FUNCTION {bbl.edby}
-{ "edited by" }
-
-FUNCTION {bbl.edition}
-{
- "ed."
-}
-
-FUNCTION {bbl.volume}
-{
- "vol."
-}
-
-FUNCTION {bbl.of}
-{ "of" }
-
-FUNCTION {bbl.number}
-{
- "no."
-}
-
-FUNCTION {bbl.nr}
-{ "no." }
-
-FUNCTION {bbl.in}
-{ "in" }
-
-FUNCTION {bbl.pages}
-{
- "pp."
-}
-
-FUNCTION {bbl.page}
-{
- "p."
-}
-
-FUNCTION {bbl.eidpp}
-{ "pages" }
-
-FUNCTION {bbl.chapter}
-{
- "chap."
-}
-
-FUNCTION {bbl.techrep}
-{
- "Tech. Rep."
-}
-
-FUNCTION {bbl.mthesis}
-{ "Master's thesis" }
-
-FUNCTION {bbl.phdthesis}
-{ "Ph.D. thesis" }
-
-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" }
-
-MACRO {jan} {"Jan."}
-
-MACRO {feb} {"Feb."}
-
-MACRO {mar} {"Mar."}
-
-MACRO {apr} {"Apr."}
-
-MACRO {may} {"May"}
-
-MACRO {jun} {"Jun."}
-
-MACRO {jul} {"Jul."}
-
-MACRO {aug} {"Aug."}
-
-MACRO {sep} {"Sep."}
-
-MACRO {oct} {"Oct."}
-
-MACRO {nov} {"Nov."}
-
-MACRO {dec} {"Dec."}
-
-FUNCTION {bbl.url.prefix}
-{
- "\urlprefix"
-}
-
-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$
-}
-
- %-------------------------------------------------------------------
- % Begin module:
- % \ProvidesFile{physjour.mbs}[2002/01/14 2.2 (PWD)]
-MACRO {aa}{"Astron. \& Astrophys."}
-MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."}
-MACRO {aj} {"Astron. J."}
-MACRO {aph} {"Acta Phys."}
-MACRO {advp} {"Adv. Phys."}
-MACRO {ajp} {"Amer. J. Phys."}
-MACRO {ajm} {"Amer. J. Math."}
-MACRO {amsci} {"Amer. Sci."}
-MACRO {anofd} {"Ann. Fluid Dyn."}
-MACRO {am} {"Ann. Math."}
-MACRO {ap} {"Ann. Phys. (NY)"}
-MACRO {adp} {"Ann. Phys. (Leipzig)"}
-MACRO {ao} {"Appl. Opt."}
-MACRO {apl} {"Appl. Phys. Lett."}
-MACRO {app} {"Astroparticle Phys."}
-MACRO {apj} {"Astrophys. J."}
-MACRO {apjsup} {"Astrophys. J. Suppl."}
-MACRO {apss} {"Astrophys. Space Sci."}
-MACRO {araa} {"Ann. Rev. Astron. Astrophys."}
-MACRO {baas} {"Bull. Amer. Astron. Soc."}
-MACRO {baps} {"Bull. Amer. Phys. Soc."}
-MACRO {cmp} {"Comm. Math. Phys."}
-MACRO {cpam} {"Commun. Pure Appl. Math."}
-MACRO {cppcf} {"Comm. Plasma Phys. \& Controlled Fusion"}
-MACRO {cpc} {"Comp. Phys. Comm."}
-MACRO {cqg} {"Class. Quant. Grav."}
-MACRO {cra} {"C. R. Acad. Sci. A"}
-MACRO {fed} {"Fusion Eng. \& Design"}
-MACRO {ft} {"Fusion Tech."}
-MACRO {grg} {"Gen. Relativ. Gravit."}
-MACRO {ieeens} {"IEEE Trans. Nucl. Sci."}
-MACRO {ieeeps} {"IEEE Trans. Plasma Sci."}
-MACRO {ijimw} {"Interntl. J. Infrared \& Millimeter Waves"}
-MACRO {ip} {"Infrared Phys."}
-MACRO {irp} {"Infrared Phys."}
-MACRO {jap} {"J. Appl. Phys."}
-MACRO {jasa} {"J. Acoust. Soc. America"}
-MACRO {jcp} {"J. Comp. Phys."}
-MACRO {jetp} {"Sov. Phys.--JETP"}
-MACRO {jfe} {"J. Fusion Energy"}
-MACRO {jfm} {"J. Fluid Mech."}
-MACRO {jmp} {"J. Math. Phys."}
-MACRO {jne} {"J. Nucl. Energy"}
-MACRO {jnec} {"J. Nucl. Energy, C: Plasma Phys., Accelerators, Thermonucl. Res."}
-MACRO {jnm} {"J. Nucl. Mat."}
-MACRO {jpc} {"J. Phys. Chem."}
-MACRO {jpp} {"J. Plasma Phys."}
-MACRO {jpsj} {"J. Phys. Soc. Japan"}
-MACRO {jsi} {"J. Sci. Instrum."}
-MACRO {jvst} {"J. Vac. Sci. \& Tech."}
-MACRO {nat} {"Nature"}
-MACRO {nature} {"Nature"}
-MACRO {nedf} {"Nucl. Eng. \& Design/Fusion"}
-MACRO {nf} {"Nucl. Fusion"}
-MACRO {nim} {"Nucl. Inst. \& Meth."}
-MACRO {nimpr} {"Nucl. Inst. \& Meth. in Phys. Res."}
-MACRO {np} {"Nucl. Phys."}
-MACRO {npb} {"Nucl. Phys. B"}
-MACRO {nt/f} {"Nucl. Tech./Fusion"}
-MACRO {npbpc} {"Nucl. Phys. B (Proc. Suppl.)"}
-MACRO {inc} {"Nuovo Cimento"}
-MACRO {nc} {"Nuovo Cimento"}
-MACRO {pf} {"Phys. Fluids"}
-MACRO {pfa} {"Phys. Fluids A: Fluid Dyn."}
-MACRO {pfb} {"Phys. Fluids B: Plasma Phys."}
-MACRO {pl} {"Phys. Lett."}
-MACRO {pla} {"Phys. Lett. A"}
-MACRO {plb} {"Phys. Lett. B"}
-MACRO {prep} {"Phys. Rep."}
-MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"}
-MACRO {pp} {"Phys. Plasmas"}
-MACRO {ppcf} {"Plasma Phys. \& Controlled Fusion"}
-MACRO {phitrsl} {"Philos. Trans. Roy. Soc. London"}
-MACRO {prl} {"Phys. Rev. Lett."}
-MACRO {pr} {"Phys. Rev."}
-MACRO {physrev} {"Phys. Rev."}
-MACRO {pra} {"Phys. Rev. A"}
-MACRO {prb} {"Phys. Rev. B"}
-MACRO {prc} {"Phys. Rev. C"}
-MACRO {prd} {"Phys. Rev. D"}
-MACRO {pre} {"Phys. Rev. E"}
-MACRO {ps} {"Phys. Scripta"}
-MACRO {procrsl} {"Proc. Roy. Soc. London"}
-MACRO {rmp} {"Rev. Mod. Phys."}
-MACRO {rsi} {"Rev. Sci. Inst."}
-MACRO {science} {"Science"}
-MACRO {sciam} {"Sci. Am."}
-MACRO {sam} {"Stud. Appl. Math."}
-MACRO {sjpp} {"Sov. J. Plasma Phys."}
-MACRO {spd} {"Sov. Phys.--Doklady"}
-MACRO {sptp} {"Sov. Phys.--Tech. Phys."}
-MACRO {spu} {"Sov. Phys.--Uspeki"}
-MACRO {st} {"Sky and Telesc."}
- % End module: physjour.mbs
- %-------------------------------------------------------------------
- % Begin module:
- % \ProvidesFile{geojour.mbs}[2002/07/10 2.0h (PWD)]
-MACRO {aisr} {"Adv. Space Res."}
-MACRO {ag} {"Ann. Geophys."}
-MACRO {anigeo} {"Ann. Geofis."}
-MACRO {angl} {"Ann. Glaciol."}
-MACRO {andmet} {"Ann. d. Meteor."}
-MACRO {andgeo} {"Ann. d. Geophys."}
-MACRO {andphy} {"Ann. Phys.-Paris"}
-MACRO {afmgb} {"Arch. Meteor. Geophys. Bioklimatol."}
-MACRO {atph} {"Atm\'osphera"}
-MACRO {aao} {"Atmos. Ocean"}
-MACRO {ass}{"Astrophys. Space Sci."}
-MACRO {atenv} {"Atmos. Environ."}
-MACRO {aujag} {"Aust. J. Agr. Res."}
-MACRO {aumet} {"Aust. Meteorol. Mag."}
-MACRO {blmet} {"Bound.-Lay. Meteorol."}
-MACRO {bams} {"Bull. Amer. Meteorol. Soc."}
-MACRO {cch} {"Clim. Change"}
-MACRO {cdyn} {"Clim. Dynam."}
-MACRO {cbul} {"Climatol. Bull."}
-MACRO {cap} {"Contrib. Atmos. Phys."}
-MACRO {dsr} {"Deep-Sea Res."}
-MACRO {dhz} {"Dtsch. Hydrogr. Z."}
-MACRO {dao} {"Dynam. Atmos. Oceans"}
-MACRO {eco} {"Ecology"}
-MACRO {empl}{"Earth, Moon and Planets"}
-MACRO {envres} {"Environ. Res."}
-MACRO {envst} {"Environ. Sci. Technol."}
-MACRO {ecms} {"Estuarine Coastal Mar. Sci."}
-MACRO {expa}{"Exper. Astron."}
-MACRO {geoint} {"Geofis. Int."}
-MACRO {geopub} {"Geofys. Publ."}
-MACRO {geogeo} {"Geol. Geofiz."}
-MACRO {gafd} {"Geophys. Astrophys. Fluid Dyn."}
-MACRO {gfd} {"Geophys. Fluid Dyn."}
-MACRO {geomag} {"Geophys. Mag."}
-MACRO {georl} {"Geophys. Res. Lett."}
-MACRO {grl} {"Geophys. Res. Lett."}
-MACRO {ga} {"Geophysica"}
-MACRO {gs} {"Geophysics"}
-MACRO {ieeetap} {"IEEE Trans. Antenn. Propag."}
-MACRO {ijawp} {"Int. J. Air Water Pollut."}
-MACRO {ijc} {"Int. J. Climatol."}
-MACRO {ijrs} {"Int. J. Remote Sens."}
-MACRO {jam} {"J. Appl. Meteorol."}
-MACRO {jaot} {"J. Atmos. Ocean. Technol."}
-MACRO {jatp} {"J. Atmos. Terr. Phys."}
-MACRO {jastp} {"J. Atmos. Solar-Terr. Phys."}
-MACRO {jce} {"J. Climate"}
-MACRO {jcam} {"J. Climate Appl. Meteor."}
-MACRO {jcm} {"J. Climate Meteor."}
-MACRO {jcy} {"J. Climatol."}
-MACRO {jgr} {"J. Geophys. Res."}
-MACRO {jga} {"J. Glaciol."}
-MACRO {jh} {"J. Hydrol."}
-MACRO {jmr} {"J. Mar. Res."}
-MACRO {jmrj} {"J. Meteor. Res. Japan"}
-MACRO {jm} {"J. Meteor."}
-MACRO {jpo} {"J. Phys. Oceanogr."}
-MACRO {jra} {"J. Rech. Atmos."}
-MACRO {jaes} {"J. Aeronaut. Sci."}
-MACRO {japca} {"J. Air Pollut. Control Assoc."}
-MACRO {jas} {"J. Atmos. Sci."}
-MACRO {jmts} {"J. Mar. Technol. Soc."}
-MACRO {jmsj} {"J. Meteorol. Soc. Japan"}
-MACRO {josj} {"J. Oceanogr. Soc. Japan"}
-MACRO {jwm} {"J. Wea. Mod."}
-MACRO {lao} {"Limnol. Oceanogr."}
-MACRO {mwl} {"Mar. Wea. Log"}
-MACRO {mau} {"Mausam"}
-MACRO {meteor} {"``Meteor'' Forschungsergeb."}
-MACRO {map} {"Meteorol. Atmos. Phys."}
-MACRO {metmag} {"Meteor. Mag."}
-MACRO {metmon} {"Meteor. Monogr."}
-MACRO {metrun} {"Meteor. Rundsch."}
-MACRO {metzeit} {"Meteor. Z."}
-MACRO {metgid} {"Meteor. Gidrol."}
-MACRO {mwr} {"Mon. Weather Rev."}
-MACRO {nwd} {"Natl. Weather Dig."}
-MACRO {nzjmfr} {"New Zeal. J. Mar. Freshwater Res."}
-MACRO {npg} {"Nonlin. Proc. Geophys."}
-MACRO {om} {"Oceanogr. Meteorol."}
-MACRO {ocac} {"Oceanol. Acta"}
-MACRO {oceanus} {"Oceanus"}
-MACRO {paleoc} {"Paleoceanography"}
-MACRO {pce} {"Phys. Chem. Earth"}
-MACRO {pmg} {"Pap. Meteor. Geophys."}
-MACRO {ppom} {"Pap. Phys. Oceanogr. Meteor."}
-MACRO {physzeit} {"Phys. Z."}
-MACRO {pps} {"Planet. Space Sci."}
-MACRO {pss} {"Planet. Space Sci."}
-MACRO {pag} {"Pure Appl. Geophys."}
-MACRO {qjrms} {"Quart. J. Roy. Meteorol. Soc."}
-MACRO {quatres} {"Quat. Res."}
-MACRO {rsci} {"Radio Sci."}
-MACRO {rse} {"Remote Sens. Environ."}
-MACRO {rgeo} {"Rev. Geophys."}
-MACRO {rgsp} {"Rev. Geophys. Space Phys."}
-MACRO {rdgeo} {"Rev. Geofis."}
-MACRO {revmeta} {"Rev. Meteorol."}
-MACRO {sgp}{"Surveys in Geophys."}
-MACRO {sp} {"Solar Phys."}
-MACRO {ssr} {"Space Sci. Rev."}
-MACRO {tellus} {"Tellus"}
-MACRO {tac} {"Theor. Appl. Climatol."}
-MACRO {tagu} {"Trans. Am. Geophys. Union (EOS)"}
-MACRO {wrr} {"Water Resour. Res."}
-MACRO {weather} {"Weather"}
-MACRO {wafc} {"Weather Forecast."}
-MACRO {ww} {"Weatherwise"}
-MACRO {wmob} {"WMO Bull."}
-MACRO {zeitmet} {"Z. Meteorol."}
- % End module: geojour.mbs
- %-------------------------------------------------------------------
- % Begin module:
- % \ProvidesFile{photjour.mbs}[1999/02/24 2.0b (PWD)]
-
-MACRO {appopt} {"Appl. Opt."}
-MACRO {bell} {"Bell Syst. Tech. J."}
-MACRO {ell} {"Electron. Lett."}
-MACRO {jasp} {"J. Appl. Spectr."}
-MACRO {jqe} {"IEEE J. Quantum Electron."}
-MACRO {jlwt} {"J. Lightwave Technol."}
-MACRO {jmo} {"J. Mod. Opt."}
-MACRO {josa} {"J. Opt. Soc. America"}
-MACRO {josaa} {"J. Opt. Soc. Amer.~A"}
-MACRO {josab} {"J. Opt. Soc. Amer.~B"}
-MACRO {jdp} {"J. Phys. (Paris)"}
-MACRO {oc} {"Opt. Commun."}
-MACRO {ol} {"Opt. Lett."}
-MACRO {phtl} {"IEEE Photon. Technol. Lett."}
-MACRO {pspie} {"Proc. Soc. Photo-Opt. Instrum. Eng."}
-MACRO {sse} {"Solid-State Electron."}
-MACRO {sjot} {"Sov. J. Opt. Technol."}
-MACRO {sjqe} {"Sov. J. Quantum Electron."}
-MACRO {sleb} {"Sov. Phys.--Leb. Inst. Rep."}
-MACRO {stph} {"Sov. Phys.--Techn. Phys."}
-MACRO {stphl} {"Sov. Techn. Phys. Lett."}
-MACRO {vr} {"Vision Res."}
-MACRO {zph} {"Z. f. Physik"}
-MACRO {zphb} {"Z. f. Physik~B"}
-MACRO {zphd} {"Z. f. Physik~D"}
-
-MACRO {CLEO} {"CLEO"}
-MACRO {ASSL} {"Adv. Sol.-State Lasers"}
-MACRO {OSA} {"OSA"}
- % End module: photjour.mbs
-%% Copyright 1994-2007 Patrick W Daly
-MACRO {acmcs} {"ACM Comput. Surv."}
-
-MACRO {acta} {"Acta Inf."}
-
-MACRO {cacm} {"Commun. ACM"}
-
-MACRO {ibmjrd} {"IBM J. Res. Dev."}
-
-MACRO {ibmsj} {"IBM Syst.~J."}
-
-MACRO {ieeese} {"IEEE Trans. Software Eng."}
-
-MACRO {ieeetc} {"IEEE Trans. Comput."}
-
-MACRO {ieeetcad}
- {"IEEE Trans. Comput. Aid. Des."}
-
-MACRO {ipl} {"Inf. Process. Lett."}
-
-MACRO {jacm} {"J.~ACM"}
-
-MACRO {jcss} {"J.~Comput. Syst. Sci."}
-
-MACRO {scp} {"Sci. Comput. Program."}
-
-MACRO {sicomp} {"SIAM J. Comput."}
-
-MACRO {tocs} {"ACM Trans. Comput. Syst."}
-
-MACRO {tods} {"ACM Trans. Database Syst."}
-
-MACRO {tog} {"ACM Trans. Graphic."}
-
-MACRO {toms} {"ACM Trans. Math. Software"}
-
-MACRO {toois} {"ACM Trans. Office Inf. Syst."}
-
-MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
-
-MACRO {tcs} {"Theor. Comput. Sci."}
-
-FUNCTION {bibinfo.command} { "\bibinfo" }
-
-FUNCTION {bibinfo.check}
-{ swap$
- duplicate$ missing$
- {
- pop$
- pop$ ""
- }{
- duplicate$ empty$
- {
- swap$ pop$
- }{
- swap$
- bibinfo.command " {" * swap$ * "} {" * swap$ * "}" *
- }
- if$
- }
- if$
-}
-
-FUNCTION {bibinfo.warn}
-{ swap$
- duplicate$ missing$
- {
- swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
- ""
- }{
- duplicate$ empty$
- {
- swap$ "empty " swap$ * " in " * cite$ * warning$
- }{
- swap$
- bibinfo.command " {" * swap$ * "} {" * swap$ * "}" *
- }
- if$
- }
- if$
-}
-
-FUNCTION {archiv.base}
-{
- "http://arxiv.org/abs"
-}
-
-FUNCTION {archiv.prefix.base}
-{
- "arXiv"
-}
-
-FUNCTION {eprint.command}
-{
- "\Eprint"
-}
-
-FUNCTION {format.eprint}
-{ eprint duplicate$ empty$
- { pop$ "" }
- {
- duplicate$
- ""
- archive duplicate$ empty$ { pop$ archiv.base } 'skip$ if$ *
- "/" *
- swap$ *
- "{" swap$ * "}" *
- swap$
- ""
- archivePrefix duplicate$ empty$ { pop$ "" } { ":" * } if$ *
- swap$ *
- primaryClass duplicate$ empty$ { pop$ "" } { " [" swap$ * "]" * } if$ *
- "{" swap$ * "}" *
- *
- eprint.command swap$ *
- }
- if$
-}
-
-FUNCTION {format.translation}
-{ translation duplicate$ empty$
- 'skip$
- { ""
- "\translation{" * swap$ * "}" *
- punctuation.space 'punctuation.state :=
- }
- if$
-}
-
-FUNCTION {format.url}
-{
- url duplicate$ empty$
- { pop$ "" }
- {
- "\url"
- "{" * swap$ * "}" *
- }
- if$
-}
-
-INTEGERS { nameptr namesleft numnames }
-
-FUNCTION {check.speaker}
-{ key empty$ 'skip$
- { key nameptr int.to.str$ =
- {
- bolden
- }
- 'skip$
- if$
- }
- if$
-}
-
-
-STRINGS { bibinfo}
-
-FUNCTION {format.names}
-{ 'bibinfo :=
- duplicate$ empty$ 'skip$ {
- 's :=
- "" 't :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- "{vv~}{ll}" format.name$ bib.name.font
- s nameptr
- "{jj, }{ff}"
- format.name$ duplicate$ empty$ 'skip$
- { bib.fname.font ", " swap$ * }
- if$
- *
- bibinfo bibinfo.check
- type$ "presentation" =
- { check.speaker }
- 'skip$
- if$
- 't :=
- nameptr #1 >
- {
- namesleft #1 >
- {
- ", " *
- t *
- }{
- s nameptr "{ll}" format.name$ duplicate$ "others" =
- { 't := }
- { pop$ }
- if$
- numnames #2 >
- {
- "," *
- }
- 'skip$
- if$
- t "others" =
- {
- " " * bbl.etal
- emphasize
- *
- }{
- bbl.and
- space.word *
- t *
- }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
- } if$
-}
-
-FUNCTION {format.names.ed}
-{
- 'bibinfo :=
- duplicate$ empty$ 'skip$ {
- 's :=
- "" 't :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- "{ff}" format.name$ duplicate$ empty$ 'skip$
- { tie.or.space.prefix bib.fname.font swap$ * }
- if$
- s nameptr
- "{vv~}{ll}" format.name$ bib.name.font *
- s nameptr
- "{jj}" format.name$ duplicate$ empty$ 'skip$
- { bib.fname.font ", " swap$ * }
- if$
- *
- bibinfo bibinfo.check
- 't :=
- nameptr #1 >
- {
- namesleft #1 >
- {
- ", " *
- t *
- }{
- s nameptr "{ll}" format.name$ duplicate$ "others" =
- { 't := }
- { pop$ }
- if$
- numnames #2 >
- {
- "," *
- }
- { skip$ }
- if$
- t "others" =
- {
-
- " " * bbl.etal emphasize *
- }{
- bbl.and
- space.word * t *
- }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
- } if$
-}
-
-FUNCTION {format.key}
-{ empty$
- { key field.or.null }
- { "" }
- if$
-}
-
-FUNCTION {format.authors}
-{ author "author" format.names
- duplicate$ empty$ 'skip$
- { collaboration "collaboration" bibinfo.check
- duplicate$ empty$ 'skip$
- { " (" swap$ * ")" * }
- if$
- *
- }
- if$
- "author" 'bibfield :=
-}
-
-FUNCTION {get.bbl.editor}
-{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$
-}
-
-FUNCTION {format.editors}
-{ editor "editor" format.names duplicate$ empty$ 'skip$
- {
- "," *
- word.space *
- get.bbl.editor
- *
- }
- if$
-}
-
-FUNCTION {format.isbn}
-{
- isbn "isbn" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- new.block.comma
- "ISBN " swap$ *
- }
- if$
-}
-
-FUNCTION {format.issn}
-{ issn "issn" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- new.block.comma
- "ISSN " swap$ *
- }
- if$
-}
-
-FUNCTION {doi.base}
-{
- "http://dx.doi.org/"
-}
-
-FUNCTION {doi.command}
-{
- "\doi"
-}
-
-FUNCTION {doi.command.href}
-{
- "\Doi"
-}
-
-FUNCTION {format.doi}
-{ doi "doi" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- new.block.comma
- doi.command "{" * swap$ * "}" *
- }
- if$
-}
-
-FUNCTION {add.doi}
-{
- duplicate$ empty$ 'skip$
- {
- doi duplicate$ empty$ 'pop$
- {
- "{" swap$ * "}" *
- swap$
- "{" swap$ * "}" *
- *
- doi.command.href swap$ *
- }
- if$
- }
- if$
-}
-
-FUNCTION {select.language}
-{ duplicate$ empty$
- 'pop$
- { language empty$
- 'skip$
- { "{\selectlanguage {" language * "}" * swap$ * "}" * }
- if$
- }
- if$
-}
-
-FUNCTION {format.note}
-{
- note empty$
- { "" }
- { note #1 #1 substring$
- duplicate$ "{" =
- 'skip$
- {
- output.state after.word = output.state after.punctuation = or
- { "l" }
- { "u" }
- if$ change.case$
- }
- if$
- note #2 global.max$ substring$ * "note" bibinfo.check
- }
- if$
-}
-
-FUNCTION {bbl.enquote}
-{
- "\enquote"
-}
-
-FUNCTION {string.enquote}
-{
- punctuation.no 'punctuation.state :=
- non.stop {
- block.punctuation
- } { "." } if$
- swap$ pop$
- *
- bbl.enquote "{" * swap$ * "}" *
- word.space *
-}
-
-FUNCTION {format.title}
-{ title
- duplicate$ empty$ 'skip$ { "t" change.case$ } if$
- duplicate$ "title" bibinfo.check swap$
- duplicate$ empty$ 'pop$
- {
- punctuation.yes 'punctuation.state :=
- string.enquote
- select.language
- }
- if$
-}
-
-FUNCTION {end.quote.title}
-{ title empty$
- 'skip$
- { before.all 'output.state := }
- if$
-}
-
-FUNCTION {format.full.names}
-{
- 's :=
- "" 't :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- "{vv~}{ll}"
- format.name$
- cite.name.font
- 't :=
- nameptr #1 >
- {
- namesleft #1 >
- { ", " * t * }
- {
- s nameptr "{ll}" format.name$ duplicate$ "others" =
- {
- 't :=
- }
- 'pop$
- if$
- t "others" =
- {
- " " * bbl.etal
- emphasize *
- }{
- numnames #2 > { "," * }{ skip$ } if$
- bbl.and
- space.word * t *
- }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
-}
-
-FUNCTION {make.full.names}
-{
- key editor author
- type$ "proceedings" =
- type$ "book" =
- type$ "inbook" =
- or { pop$ }{ { pop$ "" }{ swap$ pop$ "" swap$ } if$ } if$
- duplicate$ empty$
- { pop$
- duplicate$ empty$
- { pop$
- duplicate$ empty$
- { pop$
- cite$ #1 #3 substring$
- }{
- skip$
- }
- if$
- }
- { swap$ pop$ format.full.names }
- if$
- }
- { swap$ pop$ swap$ pop$ format.full.names }
- if$
-}
-
-FUNCTION {year.bibitem}
-{
- year duplicate$ empty$
- { pop$ ""
- }{
- skip$
- } if$
- extra.label *
-}
-
-FUNCTION {output.bibitem}
-{
- newline$
- ""
- label
- *
- ")" *
- make.full.names duplicate$ short.list =
- { pop$ }{ * } if$
- "{" swap$ * "}" *
- "[" swap$ * "]" *
- "{" * cite$ * "}%" *
- "\bibitem"
- swap$ *
- write$ newline$
- " "
- duplicate$ bbl.open * write$ newline$
- before.all 'output.state :=
- punctuation.yes 'punctuation.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 {word.in}
-{
- bbl.in
- word.space *
-}
-
-FUNCTION {date.encapsulate}
-{
- duplicate$ empty$
- 'skip$
- {
- before.all 'output.state :=
- " (" swap$ * ")" *
- }
- if$
-}
-
-FUNCTION {format.date}
-{
- year "year" bibinfo.check duplicate$ empty$
- {
- }
- 'skip$
- if$
- extra.label *
- date.encapsulate
-}
-
-FUNCTION {format.date.output.check}
-{
- format.date
- "year" output.check
-}
-
-FUNCTION {format.date.output}
-{
- format.date.output.check
-}
-
-FUNCTION {format.btitle}
-{
- booktitle duplicate$ empty$ { pop$
- title
- } 'skip$ if$
- "title" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- emphasize
- select.language
- }
- if$
-}
-
-FUNCTION {either.or.check}
-{ empty$
- 'pop$
- { "can't use both " swap$ * " fields in " * cite$ * warning$ }
- if$
-}
-
-FUNCTION {editor.check.book}
-{ editor empty$ 'skip$
- {
- "can't use both author and editor fields in " cite$ *
- ": try using @inbook instead" *
- warning$
- }
- if$
-}
-
-FUNCTION {format.bvolume}
-{ volume duplicate$ empty$
- { pop$ "" }
- {
- "volume and number" number either.or.check
- bbl.volume
- capitalize
- swap$
- tie.or.space.prefix "volume" bibinfo.check * *
- series "series" bibinfo.check duplicate$ empty$ 'pop$
- {
- ", "
- * swap$ *
- }
- if$
- }
- if$
-}
-
-FUNCTION {format.number}
-{
- bbl.number
- output.state after.word = output.state after.punctuation = or
- #1 or
- #0 and
- 'skip$
- { capitalize }
- if$
- number tie.or.space.prefix "number" bibinfo.check * *
-}
-
-FUNCTION {format.number.series}
-{ volume empty$
- { number empty$
- { series field.or.null }
- {
- series empty$
- {
- number "number" bibinfo.check
- }{
- format.number
- series "series" bibinfo.check
- word.space * swap$ *
- }
- 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 {convert.edition}
-{ extract.num "l" change.case$ 's :=
- s "first" = s "1" = or
- { bbl.first 't := }
- { s "second" = s "2" = or
- { bbl.second 't := }
- { s "third" = s "3" = or
- { bbl.third 't := }
- { s "fourth" = s "4" = or
- { bbl.fourth 't := }
- { s "fifth" = s "5" = or
- { bbl.fifth 't := }
- { s #1 #1 substring$ is.num
- { s
- eng.ord
- 't := }
- { edition 't := }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- t
-}
-
-FUNCTION {format.edition}
-{ edition duplicate$ empty$ 'skip$
- {
- convert.edition
- output.state after.word = output.state after.punctuation = or
- { "l" }
- { "t" }
- if$ change.case$
- "edition" bibinfo.check
- word.space * 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 duplicate$ empty$
- 'skip$
- { duplicate$ multi.page.check
- {
- bbl.pages swap$
- n.dashify
- }{
- bbl.page swap$
- }
- if$
- tie.or.space.prefix
- "pages" bibinfo.check
- * *
- }
- if$
-}
-
-FUNCTION {format.book.pages}
-{
- pages duplicate$ empty$ 'skip$
- {
- "pages" bibinfo.check word.space bbl.pages * *
- }
- if$
-}
-
-FUNCTION {volnum.punct}
-{
- ","
- word.space *
-}
-
-FUNCTION {format.journal.pages}
-{ pages duplicate$ empty$ 'pop$
- { swap$ duplicate$ empty$
- { pop$ pop$ format.pages }
- { volnum.punct *
- swap$
- n.dashify
- "pages" bibinfo.check
- *
- }
- if$
- }
- if$
-}
-
-FUNCTION {format.journal.eid}
-{ eid "eid" bibinfo.check
- duplicate$ empty$ 'pop$
- { swap$ duplicate$ empty$ 'skip$
- { volnum.punct * }
- if$
- swap$ *
- }
- if$
-}
-
-FUNCTION {eid.or.pages}
-{
- eid empty$
- { format.journal.pages }
- { format.journal.eid }
- if$
-}
-
-FUNCTION {format.ser.vol.num}
-{
- series "series" bibinfo.check output
- after.punctuation 'output.state :=
- volume field.or.null
- duplicate$ empty$ 'skip$
- {
- "volume" bibinfo.check
- }
- if$
- bolden
-}
-
-FUNCTION {format.chapter.pages}
-{ chapter empty$
- {
- format.pages
- }
- { type empty$
- {
- bbl.chapter
- capitalize
- }{
- type
- capitalize
- "type" bibinfo.check
- }
- if$
- chapter tie.or.space.prefix
- "chapter" bibinfo.check
- * *
- pages empty$
- 'skip$
- { ", " * format.pages * }
- if$
- }
- if$
-}
-
-FUNCTION {format.booktitle}
-{
- booktitle duplicate$ "booktitle" bibinfo.check swap$
- duplicate$ empty$ 'pop$
- {
- punctuation.yes 'punctuation.state :=
- pop$ emphasize
- select.language
- }
- if$
-}
-
-FUNCTION {format.editor.in}
-{
- editor "editor" format.names.ed duplicate$ empty$ 'skip$
- {
- bbl.edby
- word.space * swap$ *
- }
- if$
-}
-
-FUNCTION {output.article.booktitle}
-{
- format.booktitle
- "booktitle" 'bibfield :=
- output
- bookaddress "address" bibinfo.check duplicate$ empty$ 'pop$
- {
- "address" 'bibfield :=
- output.nonnull after.punctuation 'output.state :=
- }
- if$
-}
-
-FUNCTION {format.in.ed.booktitle}
-{
- format.booktitle duplicate$ empty$ 'pop$
- {
- add.doi
- word.in swap$ * output.nonnull
- bookaddress "address" bibinfo.check output
- format.number.series "series and number" bibinfo.check output
- format.bvolume output
- format.editor.in "editor" bibinfo.check output
- }
- if$
-}
-
-FUNCTION {format.in.ed.booktitle.inbook}
-{
- format.booktitle duplicate$ empty$ 'pop$
- {
- add.doi
- word.in swap$ * output.nonnull
- bookaddress "address" bibinfo.check output
- format.number.series "series and number" bibinfo.check output
- format.bvolume output
- author empty$ 'skip$
- { format.editor.in "editor" bibinfo.check output }
- if$
- }
- if$
-}
-
-FUNCTION {format.thesis.type}
-{ type duplicate$ empty$
- 'pop$
- { swap$ pop$
- "t" change.case$ "type" bibinfo.check
- }
- if$
-}
-
-FUNCTION {format.tr.number}
-{ number "number" bibinfo.check
- type duplicate$ empty$
- { pop$ bbl.techrep }
- 'skip$
- if$
- "type" bibinfo.check
- swap$ duplicate$ empty$
- { pop$ "t" change.case$ }
- { tie.or.space.prefix * * }
- if$
-}
-
-FUNCTION {format.article.crossref}
-{
- word.in
- " \cite{" * crossref * "}" *
-}
-
-FUNCTION {format.book.crossref}
-{ volume duplicate$ empty$
- { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
- pop$ word.in
- }
- { bbl.volume
- swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
- }
- if$
- " \cite{" * crossref * "}" *
-}
-
-FUNCTION {format.incoll.inproc.crossref}
-{
- word.in
- " \cite{" * crossref * "}" *
-}
-
-FUNCTION {format.org.or.pub}
-{ 't :=
- ""
- address "address" bibinfo.check
- duplicate$ empty$
- { pop$ t }
- { t duplicate$ empty$
- { pop$ }
- {
- "," word.space *
- * swap$ *
- }
- if$
- }
- if$
- *
- year duplicate$ empty$
- {
- "empty year in " cite$ *
- warning$
- pop$ ""
- }
- 'skip$
- if$
- duplicate$ empty$
- { pop$ }
- {
- "year" bibinfo.check
- swap$
- duplicate$ empty$
- { pop$ }
- {
- "," *
- word.space *
- swap$ *
- }
- if$
- }
- if$
- duplicate$ empty$ 'skip$ {
- ""
- "(" * swap$ * ")" *
- after.punctuation 'output.state :=
- punctuation.space 'punctuation.state :=
- } if$
-}
-
-FUNCTION {format.publisher.address}
-{ publisher "publisher" bibinfo.warn format.org.or.pub
-}
-
-FUNCTION {format.organization.address}
-{ organization "organization" bibinfo.check format.org.or.pub
-}
-
-FUNCTION {format.organization.publisher.address}
-{
- publisher empty$
- { format.organization.address }
- { organization "organization" bibinfo.check output
- format.publisher.address
- }
- if$
-}
-
-FUNCTION {format.school.address.output}
-{
- school "school" bibinfo.warn
- address "address" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- swap$
- duplicate$ empty$ 'skip$
- {
- ", " *
- }
- if$
- swap$
- }
- if$
- *
- output
-}
-
-FUNCTION {article}
-{ output.bibitem
- format.authors
- booktitle empty$ {
- "author" output.check
- }{ output } if$
- author format.key output
- new.block.comma
- format.title
- "title" 'bibfield :=
- output
- new.block.comma
- output.article.booktitle
- crossref missing$
- {
- journal
- "journal" bibinfo.warn
- pages empty$ 'skip$ { add.doi } if$
- "journal" 'bibfield :=
- output
- format.ser.vol.num
- output
- eid.or.pages
- format.date.output.check
- }{
- format.article.crossref output.nonnull
- format.pages output
- }
- if$
- format.issn output
- pages empty$ {
- format.doi output
- } 'skip$ if$
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- format.translation output
- fin.entry
-}
-
-FUNCTION {book}
-{ output.bibitem
- author empty$
- {
- }{
- format.authors output.nonnull
- crossref missing$ { editor.check.book } 'skip$ if$
- }
- if$
- new.block.comma
- format.btitle
- add.doi
- "title" output.check
- format.edition output
- author empty$
- {
- format.editor.in output
- editor format.key output
- }
- {
- }
- if$
- format.number.series output
- crossref missing$
- {
- format.bvolume output
- new.block.comma
- format.publisher.address output
- }{
- new.block.comma
- format.book.crossref output.nonnull
- format.date.output.check
- }
- if$
- format.isbn output
- format.chapter.pages
- output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {booklet}
-{ output.bibitem
- format.authors output
- author format.key output
- new.block.comma
- format.title
- add.doi
- "title" output.check
- new.block.comma
- howpublished "howpublished" bibinfo.check output
- address "address" bibinfo.check output
- format.date.output
- format.isbn output
- format.book.pages output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {inbook}
-{ output.bibitem
- author empty$
- {
- format.editors "editor" output.check
- editor format.key output
- }{
- format.authors output.nonnull
- author format.key output
- }
- if$
- new.block.comma
-
- format.title output
- new.block.comma
-
- crossref missing$
- {
- format.in.ed.booktitle.inbook
- format.publisher.address output
- format.chapter.pages
- "chapter and pages"
- output.check
- new.block.comma
- format.edition output
- new.block.comma
- }{
- format.chapter.pages
- "chapter and pages"
- output.check
- new.block.comma
- format.book.crossref output.nonnull
- format.date.output.check
- }
- if$
- crossref missing$
- { format.isbn output }
- 'skip$
- if$
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {incollection}
-{ output.bibitem
- format.authors "author" output.check
- author format.key output
- new.block.comma
- format.title
- output
- new.block.comma
- crossref missing$
- {
- format.in.ed.booktitle
- format.publisher.address output
- format.edition output
- format.chapter.pages output
- format.isbn output
- }{
- format.incoll.inproc.crossref output.nonnull
- format.chapter.pages output
- }
- if$
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {inproceedings}
-{ output.bibitem
- format.authors "author" output.check
- author format.key output
- new.block.comma
- format.title
- output
- new.block.comma
- crossref missing$
- {
- format.in.ed.booktitle
- format.organization.publisher.address output
- format.chapter.pages output
- format.isbn output
- format.issn output
- }{
- format.incoll.inproc.crossref output.nonnull
- format.chapter.pages output
- }
- if$
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {conference} { inproceedings }
-FUNCTION {manual}
-{ output.bibitem
- format.authors output
- author format.key output
- new.block.comma
- format.btitle
- add.doi
- "title" output.check
- organization "organization" bibinfo.check output
- address "address" bibinfo.check output
- format.edition output
- format.date.output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {mastersthesis}
-{ output.bibitem
- format.authors "author" output.check
- author format.key output
- new.block.comma
- format.btitle
- output
- new.block.comma
- bbl.mthesis
- format.thesis.type
- add.doi
- output.nonnull
- format.school.address.output
- format.date.output.check
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {misc}
-{ output.bibitem
- format.authors output
- author format.key output
- new.block.comma
- format.title
- add.doi
- output
- new.block.comma
- howpublished "howpublished" bibinfo.check output
- format.date.output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {phdthesis}
-{ output.bibitem
- format.authors "author" output.check
- author format.key output
- new.block.comma
- format.btitle
- output
- new.block.comma
- bbl.phdthesis
- format.thesis.type
- add.doi
- output.nonnull
- format.school.address.output
- format.date.output.check
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {presentation}
-{ output.bibitem
- format.authors output
- author format.key output
- new.block.comma
- format.title output
- new.block.comma
- format.organization.address "organization and address" output.check
- month "month" output.check
- year "year" output.check
- new.block.comma
- new.sentence.comma
- format.note output
- new.sentence
- type missing$ 'skip$
- {"(" type capitalize * ")" * output}
- if$
- new.block.comma format.url output
- fin.entry
-}
-
-FUNCTION {proceedings}
-{ output.bibitem
- format.editors output
- editor format.key output
- new.block.comma
- format.btitle
- add.doi
- "title" output.check
- bookaddress "address" bibinfo.check output
- format.number.series output
- format.bvolume output
- format.organization.publisher.address output
- format.isbn output
- format.issn output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {techreport}
-{ output.bibitem
- format.authors "author" output.check
- author format.key output
- new.block.comma
- format.title
- add.doi
- "title" output.check
- new.block.comma
- format.tr.number
- output.nonnull
- institution "institution" bibinfo.warn
- format.org.or.pub output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {unpublished}
-{ output.bibitem
- format.authors "author" output.check
- author format.key output
- new.block.comma
- format.title
- add.doi
- "title" output.check
- format.date.output
- new.block.comma
- new.sentence.comma
- format.note "note" output.check
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {default.type} { misc }
-READ
-FUNCTION {sortify}
-{ purify$
- "l" change.case$
-}
-
-INTEGERS { len }
-FUNCTION {chop.word}
-{ 's :=
- 'len :=
- s #1 len substring$ =
- { s len #1 + global.max$ substring$ }
- 's
- if$
-}
-
-FUNCTION {format.lab.names}
-{ 's :=
- "" 't :=
- s #1
- "{vv~}{ll}"
- format.name$
- cite.name.font
- s num.names$ duplicate$
- #2 >
- { pop$
- word.space * bbl.etal
- emphasize
- *
- }{
- #2 <
- 'skip$
- {
- s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- {
- word.space * bbl.etal
- emphasize
- *
- }{
- bbl.and space.word *
- s #2 "{vv~}{ll}" format.name$
- cite.name.font
- *
- }
- 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 {editor.key.label}
-{ editor empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- 'key
- if$
- }
- { editor format.lab.names }
- if$
-}
-
-FUNCTION {calc.short.authors}
-{ type$ "book" =
- type$ "inbook" =
- or
- 'author.editor.key.label
- { type$ "proceedings" =
- 'editor.key.label
- 'author.key.label
- if$
- }
- if$
- 'short.list :=
-}
-
-FUNCTION {calc.label}
-{ calc.short.authors
- short.list
- "("
- *
- year duplicate$ empty$
- {
- pop$ ""
- }{
- purify$ #-1 #4 substring$
- }
- if$
- *
- 'label :=
-}
-
-FUNCTION {sort.format.names}
-{ 's :=
- #1 'nameptr :=
- ""
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- "{ll{ }}{ ff{ }}{ jj{ }}"
- format.name$ 't :=
- nameptr #1 >
- {
- " " *
- namesleft #1 = t "others" = and
- { "zzzzz" * }
- {
- t sortify *
- }
- if$
- }
- { t sortify * }
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
-}
-
-FUNCTION {sort.format.title}
-{ 't :=
- "A " #2
- "An " #3
- "The " #4 t chop.word
- chop.word
- chop.word
- sortify
- #1 global.max$ substring$
-}
-
-FUNCTION {author.sort}
-{ author empty$
- { key empty$
- { "to sort, need author or key in " cite$ * warning$
- ""
- }
- { key sortify }
- if$
- }
- { author sort.format.names }
- if$
-}
-
-FUNCTION {author.editor.sort}
-{ author empty$
- { editor empty$
- { key empty$
- { "to sort, need author, editor, or key in " cite$ * warning$
- ""
- }
- { key sortify }
- if$
- }
- { editor sort.format.names }
- if$
- }
- { author sort.format.names }
- if$
-}
-
-FUNCTION {editor.sort}
-{ editor empty$
- { key empty$
- { "to sort, need editor or key in " cite$ * warning$
- ""
- }
- { key sortify }
- if$
- }
- { editor sort.format.names }
- if$
-}
-
-FUNCTION {presort}
-{ calc.label
- label sortify
- " "
- *
- type$ "book" =
- type$ "inbook" =
- or
- 'author.editor.sort
- { type$ "proceedings" =
- 'editor.sort
- 'author.sort
- if$
- }
- if$
- #1 entry.max$ substring$
- 'sort.label :=
- sort.label
- *
- " "
- *
- title field.or.null
- sort.format.title
- *
- #1 entry.max$ substring$
- 'sort.key$ :=
-}
-
-ITERATE {presort}
-SORT
-STRINGS { last.label next.extra }
-INTEGERS { last.extra.num number.label }
-FUNCTION {initialize.extra.label.stuff}
-{ #0 int.to.chr$ 'last.label :=
- "" 'next.extra :=
- #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 :=
-}
-
-FUNCTION {reverse.pass}
-{ next.extra "b" =
- { "a" 'extra.label := }
- 'skip$
- if$
- extra.label 'next.extra :=
- extra.label
- duplicate$ empty$
- 'skip$
- { "{\natexlab{" swap$ * "}}" * }
- if$
- 'extra.label :=
- label extra.label * 'label :=
-}
-
-EXECUTE {initialize.extra.label.stuff}
-ITERATE {forward.pass}
-REVERSE {reverse.pass}
-FUNCTION {bib.sort.order}
-{ sort.label
- " "
- *
- year
- field.or.null sortify
- *
- " "
- *
- title field.or.null
- sort.format.title
- *
- #1 entry.max$ substring$
- 'sort.key$ :=
-}
-
-ITERATE {bib.sort.order}
-SORT
-FUNCTION {init.bib.eprint}
-{
- "\texttt{"
- pop$
- "\providecommand \url [0]{\begingroup\@sanitize \@url }%" write$ newline$
- "\providecommand \@url [1]{\endgroup\@href {#1}{" "}}%" bbl.url.prefix swap$ * * write$ newline$
- "\providecommand " " [0]{URL }%" bbl.url.prefix swap$ * * write$ newline$
- eprint.command "\providecommand " swap$ * "[0]{\href }%" * write$ newline$
-}
-
-FUNCTION {init.bib.doi}
-{
- "\@ifxundefined \urlstyle {%" write$ newline$
- " \providecommand \doi [1]{doi:\discretionary{}{}{}#1}%" write$ newline$
- "}{%" write$ newline$
- " \providecommand \doi [0]{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url }%"
- write$ newline$
- "}%" write$ newline$
- "\providecommand \doibase [0]{" doi.base * "}%" * write$ newline$
- doi.command.href "\providecommand " swap$ * "[1]{\href{\doibase#1}}%" * write$ newline$
-}
-
-FUNCTION {init.bib.hypertex}
-{
- "\providecommand\href[0]{\@sanitize\@href}%" write$ newline$
- "\providecommand\@href[1]{\endgroup\@@startlink{#1}\endgroup\@@href}%" write$ newline$
- "\providecommand\@@href[1]{#1\@@endlink}%" write$ newline$
- "\providecommand \@sanitize [0]{\begingroup\catcode`\&12\catcode`\#12\relax}%" write$ newline$
- "\@ifxundefined \pdfoutput {\@firstoftwo}{%" write$ newline$
- " \@ifnum{\z@=\pdfoutput}{\@firstoftwo}{\@secondoftwo}%" write$ newline$
- "}{%" write$ newline$
- " \providecommand\@@startlink[1]{\leavevmode\special{html:<a href=" quote$ * "#1" * quote$ * ">}}%" * write$ newline$
- " \providecommand\@@endlink[0]{\special{html:</a>}}%" write$ newline$
- "}{%" write$ newline$
- " \providecommand\@@startlink[1]{%" write$ newline$
- " \leavevmode" write$ newline$
- " \pdfstartlink" write$ newline$
- " attr{/Border[0 0 1 ]/H/I/C[0 1 1]}%" write$ newline$
- " user{/Subtype/Link/A<</Type/Action/S/URI/URI(#1)>>}%" write$ newline$
- " \relax" write$ newline$
- " }%" write$ newline$
- " \providecommand\@@endlink[0]{\pdfendlink}%" write$ newline$
- "}%" write$ newline$
-}
-
-FUNCTION {init.bib.namefont}
-{
- "\providecommand \bibnamefont [1]{#1}%" write$ newline$
- "\providecommand \bibfnamefont [1]{#1}%" write$ newline$
- "\providecommand \citenamefont [1]{#1}%" write$ newline$
-}
-
-FUNCTION {init.bib.quote}
-{
- "\providecommand " bbl.enquote * " [1]{" *
- "``" "''"
- "#1" swap$ "}%" * * * * write$ newline$
-}
-
-FUNCTION {init.bib.ay}
-{
- "\providecommand \natexlab [1]{#1}%"
- write$ newline$
-}
-
-FUNCTION {init.bib.bibinfo}
-{
- bibinfo.command "\providecommand " swap$ * " [0]{\@secondoftwo}%" * write$ newline$
- bibfield.command "\providecommand " swap$ * " [0]{\@secondoftwo}%" * write$ newline$
-}
-
-FUNCTION {init.bib.lang}
-{
- "\providecommand \selectlanguage [0]{\@gobble}%" write$ newline$
-}
-
-FUNCTION {init.bib.endbibitem}
-{
- "\providecommand " bbl.open * "[0]{}%" * write$ newline$
- "\providecommand \bibitemStop [0]{}%" write$ newline$
- "\providecommand \bibitemNoStop [0]{.\EOS\space}%" write$ newline$
- "\providecommand \EOS [0]{\spacefactor3000\relax}%" write$ newline$
-}
-
-FUNCTION {init.bib.translation}
-{
- "\providecommand \translation [1]{[#1]}%" write$ newline$
-}
-
-FUNCTION {warn.bib}
-{
-}
-
-FUNCTION {init.bib}
-{
- warn.bib
- "\makeatletter" write$ newline$
- "\providecommand \@ifxundefined [1]{%" write$ newline$
- " \ifx #1\undefined \expandafter \@firstoftwo" write$ newline$
- " \else \expandafter \@secondoftwo" write$ newline$
- "\fi" write$ newline$
- "}%" write$ newline$
- "\providecommand \@ifnum [1]{%" write$ newline$
- " \ifnum #1\expandafter \@firstoftwo" write$ newline$
- " \else \expandafter \@secondoftwo" write$ newline$
- "\fi" write$ newline$
- "}%" write$ newline$
- init.bib.ay
- init.bib.quote
- init.bib.namefont
- init.bib.hypertex
- init.bib.eprint
- init.bib.doi
- init.bib.lang
- init.bib.bibinfo
- init.bib.translation
- init.bib.endbibitem
- "\providecommand " bbl.shut * " [1]{\csname bibitem#1\endcsname}%" * write$ newline$
- "%</preamble>" write$
-}
-
-FUNCTION {begin.bib}
-{
- id.bst duplicate$ top$ "%" swap$ * write$ newline$
- preamble$ empty$
- 'skip$
- { preamble$ write$ newline$ }
- if$
- "\begin{thebibliography}{"
- number.label int.to.str$
- * "}%" *
- write$ newline$
- init.bib
-}
-
-EXECUTE {begin.bib}
-EXECUTE {init.state.consts}
-ITERATE {call.type$}
-FUNCTION {end.bib}
-{ newline$
- "\end{thebibliography}%"
- write$ newline$
-}
-
-EXECUTE {end.bib}
-%% End of customized bst file
-%%
-%% End of file `aipauth4-1long.bst'.
diff --git a/Master/texmf-dist/bibtex/bst/revtex/aipnum4-1.bst b/Master/texmf-dist/bibtex/bst/revtex/aipnum4-1.bst
index 9ab4e1654d5..1c08fb60c2f 100644
--- a/Master/texmf-dist/bibtex/bst/revtex/aipnum4-1.bst
+++ b/Master/texmf-dist/bibtex/bst/revtex/aipnum4-1.bst
@@ -4,13 +4,13 @@
%%
%% The original source files were:
%%
-%% merlin.mbs (with options: `head,lang,pres,pres-bf,seq-no,vonx,nm-init,ed-au,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% physjour.mbs (with options: `lang,pres,pres-bf,seq-no,vonx,nm-init,ed-au,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% geojour.mbs (with options: `lang,pres,pres-bf,seq-no,vonx,nm-init,ed-au,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% photjour.mbs (with options: `lang,pres,pres-bf,seq-no,vonx,nm-init,ed-au,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% merlin.mbs (with options: `tail,lang,pres,pres-bf,seq-no,vonx,nm-init,ed-au,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
+%% merlin.mbs (with options: `head,ay,nat,lang,pres,pres-bf,seq-no,vonx,nm-init,ed-au,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,blkyear,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
+%% physjour.mbs (with options: `ay,nat,lang,pres,pres-bf,seq-no,vonx,nm-init,ed-au,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,blkyear,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
+%% geojour.mbs (with options: `ay,nat,lang,pres,pres-bf,seq-no,vonx,nm-init,ed-au,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,blkyear,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
+%% photjour.mbs (with options: `ay,nat,lang,pres,pres-bf,seq-no,vonx,nm-init,ed-au,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,blkyear,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
+%% merlin.mbs (with options: `tail,ay,nat,lang,pres,pres-bf,seq-no,vonx,nm-init,ed-au,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,blkyear,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
%% ----------------------------------------
-%% *** REVTeX-compatible aipnum4-1.bst 2009-10-08 ***
+%% *** REVTeX-compatible aipnum4-1.bst 2009-10-25 ***
%%
%% Copyright 1994-2007 Patrick W Daly
% ===============================================================
@@ -24,23 +24,37 @@
% version 1 of the License, or any later version.
% ===============================================================
% Name and version information of the main mbs file:
- % \ProvidesFile{merlin.mbs}[2008/01/17 4.21 (PWD, AO, DPC)]
% For use with BibTeX version 0.99a or later
%-------------------------------------------------------------------
% This bibliography style file is intended for texts in ENGLISH
- % This is a numerical citation style, and as such is standard LaTeX.
- % It requires no extra package to interface to the main text.
+ % This is an author-year citation style bibliography. As such, it is
+ % non-standard LaTeX, and requires a special package file to function properly.
+ % Such a package is natbib.sty by Patrick W. Daly
% The form of the \bibitem entries is
- % \bibitem{key}...
- % Usage of \cite is as follows:
- % \cite{key} ==>> [#]
- % \cite[chap. 2]{key} ==>> [#, chap. 2]
- % where # is a number determined by the ordering in the reference list.
- % The order in the reference list is that by which the works were originally
- % cited in the text, or that in the database.
+ % \bibitem[Jones et al.(1990)]{key}...
+ % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
+ % The essential feature is that the label (the part in brackets) consists
+ % of the author names, as they should appear in the citation, with the year
+ % in parentheses following. There must be no space before the opening
+ % parenthesis!
+ % With natbib v5.3, a full list of authors may also follow the year.
+ % In natbib.sty, it is possible to define the type of enclosures that is
+ % really wanted (brackets or parentheses), but in either case, there must
+ % be parentheses in the label.
+ % The \cite command functions as follows:
+ % \citet{key} ==>> Jones et al. (1990)
+ % \citet*{key} ==>> Jones, Baker, and Smith (1990)
+ % \citep{key} ==>> (Jones et al., 1990)
+ % \citep*{key} ==>> (Jones, Baker, and Smith, 1990)
+ % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)
+ % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990)
+ % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32)
+ % \citeauthor{key} ==>> Jones et al.
+ % \citeauthor*{key} ==>> Jones, Baker, and Smith
+ % \citeyear{key} ==>> 1990
%---------------------------------------------------------------------
-FUNCTION {id.bst} {"Merlin.mbs v4.21 2009-07-09. "}
+FUNCTION {id.bst} {"merlin.mbs 2010-03-15 4.21a (PWD, AO, DPC)"}
ENTRY
{
address
@@ -82,6 +96,8 @@ ENTRY
}{
}{
label
+ extra.label sort.label
+ short.list
}
INTEGERS
@@ -97,6 +113,7 @@ INTEGERS
}
STRINGS { bibfield output.bibfield }
+
FUNCTION {not}
{ { #0 }
{ #1 }
@@ -121,6 +138,398 @@ FUNCTION {non.stop}
#-1 #1 substring$ "." =
}
+INTEGERS { arith.mulitplier arith.multiplicand }
+
+FUNCTION {multiply}
+{
+ 'arith.multiplicand :=
+ 'arith.mulitplier :=
+ #0
+ { arith.mulitplier #0 > }
+ { arith.multiplicand +
+ arith.mulitplier #1 - 'arith.mulitplier :=
+ }
+ while$
+}
+
+FUNCTION {chr.to.hex}
+{
+ chr.to.int$
+ duplicate$ "0" chr.to.int$ -
+ duplicate$ duplicate$ #0 < swap$ #9 > or not
+ { swap$ pop$ }
+ { pop$
+ duplicate$ "A" chr.to.int$ -
+ duplicate$ duplicate$ #0 < swap$ #5 > or not
+ { swap$ pop$ #10 + }
+ { pop$
+ duplicate$ "a" chr.to.int$ -
+ duplicate$ duplicate$ #0 < swap$ #5 > or not
+ { swap$ pop$ #10 + }
+ { pop$
+ pop$ #-1
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+INTEGERS { arith.accumulator }
+
+FUNCTION {str.to.hex}
+{ #0 'arith.accumulator :=
+ { duplicate$ empty$ not }
+ { duplicate$ #1 #1 substring$ chr.to.hex
+ duplicate$ #0 <
+ { pop$ pop$ ""
+ }
+ { arith.accumulator #16 multiply + 'arith.accumulator :=
+ #2 global.max$ substring$
+ }
+ if$
+ }
+ while$
+ pop$ arith.accumulator
+}
+
+FUNCTION {diagn.cmntlog}
+{
+ duplicate$ top$ "%" swap$ * write$ newline$
+}
+
+INTEGERS { control.key control.author control.editor control.title control.pages control.eprint control.year }
+
+INTEGERS { control.author.jnrlst control.author.dotless control.author.nospace control.author.initials control.author.nocomma control.author.first control.author.reversed }
+
+FUNCTION { control.init }
+{
+ #0
+ 'control.key :=
+ #0
+ #8 +
+ 'control.author :=
+ #0
+ 'control.author.jnrlst :=
+ #0
+ 'control.author.dotless :=
+ #0
+ 'control.author.nospace :=
+ #1
+ 'control.author.initials :=
+ #0
+ 'control.author.nocomma :=
+ #0
+ 'control.author.first :=
+ #0
+ 'control.author.reversed :=
+ #1
+ 'control.editor :=
+ #-1
+ 'control.title :=
+ #0
+ 'control.pages :=
+ #0
+ 'control.eprint :=
+ #1
+ 'control.year :=
+}
+
+FUNCTION {warning.dependency}
+{
+ " (dependency: " * swap$ * ") set " * swap$ int.to.str$ * warning$
+}
+
+FUNCTION {control.check}
+{
+ control.editor
+ {
+ "editor formatted same as author"
+ control.author.reversed {
+ duplicate$ #0 swap$ "reversed" warning.dependency
+ #0 'control.author.reversed :=
+ } 'skip$ if$
+ control.author.first {
+ duplicate$ #0 swap$ "first" warning.dependency
+ #0 'control.author.first :=
+ } 'skip$ if$
+ control.author.nocomma {
+ duplicate$ #0 swap$ "nocomma" warning.dependency
+ #0 'control.author.nocomma :=
+ } 'skip$ if$
+ pop$
+ } 'skip$ if$
+ control.author.reversed 'skip$
+ {
+ "not reversed"
+ control.author.nospace {
+ duplicate$ #0 swap$ "nospace" warning.dependency
+ #0 'control.author.nospace :=
+ } 'skip$ if$
+ control.author.jnrlst 'skip$ {
+ duplicate$ #1 swap$ "jnrlst" warning.dependency
+ #1 'control.author.jnrlst :=
+ } if$
+ control.author.initials {
+ duplicate$ ", initials" *
+ control.author.dotless {
+ duplicate$ #0 swap$ "dotless" warning.dependency
+ #0 'control.author.dotless :=
+ } 'skip$ if$
+ pop$
+ } 'skip$ if$
+ pop$
+ }
+ if$
+ control.author.initials 'skip$ {
+ "not initials"
+ control.author.nocomma {
+ duplicate$ #0 swap$ "nocomma" warning.dependency
+ #0 'control.author.nocomma :=
+ } 'skip$ if$
+ control.author.nospace {
+ duplicate$ #0 swap$ "nospace" warning.dependency
+ #0 'control.author.nospace :=
+ } 'skip$ if$
+ control.author.dotless 'skip$ {
+ duplicate$ #1 swap$ "dotless" warning.dependency
+ #1 'control.author.dotless :=
+ } if$
+ pop$
+ } if$
+}
+
+FUNCTION {control.parse}
+{
+ duplicate$ duplicate$ missing$
+ {
+ pop$ pop$ pop$
+ }
+ { empty$
+ {
+ pop$ #-1
+ }{
+ str.to.hex
+ }
+ if$
+ swap$ :=
+ }
+ if$
+}
+
+FUNCTION {control.dump}
+{
+ duplicate$ missing$ { pop$ "N/A" } 'skip$ if$
+ "{" swap$ * "}, " *
+ *
+}
+
+INTEGERS { decode.threshold }
+
+FUNCTION {control.decode}
+{
+ - duplicate$
+ #0 <
+ {
+ skip$ pop$ swap$ #0
+ }
+ {
+ swap$ pop$ swap$ #1
+ }
+ if$
+ swap$ :=
+}
+
+FUNCTION {control.author.decode}
+{
+ control.author
+ duplicate$ duplicate$ #0 < swap$ #128 < not or
+ {
+ int.to.str$ "(" swap$ * ")" *
+ "Control cannot interpret author " swap$ *
+ warning$
+ }{
+ 'control.author.jnrlst swap$ duplicate$ #64 control.decode
+ 'control.author.dotless swap$ duplicate$ #32 control.decode
+ 'control.author.nospace swap$ duplicate$ #16 control.decode
+ 'control.author.initials swap$ duplicate$ #8 control.decode
+ 'control.author.nocomma swap$ duplicate$ #4 control.decode
+ 'control.author.first swap$ duplicate$ #2 control.decode
+ 'control.author.reversed swap$ duplicate$ #1 control.decode
+ duplicate$ #0 =
+ 'skip$
+ {
+ "Control: residue of author"
+ "(" swap$ * ")" * *
+ warning$
+ }
+ if$
+ pop$
+ }
+ if$
+}
+
+FUNCTION {control.setup}
+{
+ type$ cite$ "{" swap$ * "}, " * *
+ "control.key" key control.dump *
+ "control.author" author control.dump *
+ "control.editor" editor control.dump *
+ "control.title" title control.dump *
+ "control.pages" pages control.dump *
+ "control.year" year control.dump *
+ "control.eprint" eprint control.dump *
+ top$
+ 'control.key key control.parse
+ 'control.author author control.parse
+ 'control.editor editor control.parse
+ 'control.title title control.parse
+ 'control.pages pages control.parse
+ 'control.year year control.parse
+ 'control.eprint eprint control.parse
+ control.author.decode
+}
+
+FUNCTION {control.pass}
+{ type$ "control" = 'control.setup 'skip$ if$
+}
+
+FUNCTION {control.presort}
+{
+}
+
+FUNCTION {control.forward}
+{
+}
+
+FUNCTION {control.reverse}
+{
+}
+
+FUNCTION {control.sort}
+{
+}
+
+FUNCTION {control.longest.label}
+{
+}
+
+FUNCTION {control.key.bib}
+{
+ "Control: key "
+ control.key
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ pop$ *
+ diagn.cmntlog
+}
+
+FUNCTION {control.author.bib}
+{
+ "Control: author "
+ control.author "(" swap$ int.to.str$ * ")" * *
+ control.author.reversed { " reversed" * }{} if$
+ control.author.first { " first" * }{} if$
+ control.author.nocomma { " nocomma" * }{} if$
+ control.author.initials { " initials" * }{} if$
+ control.author.nospace { " nospace" * }{} if$
+ control.author.dotless { " dotless" * }{} if$
+ control.author.jnrlst { " jnrlst" * }{} if$
+ diagn.cmntlog
+}
+
+FUNCTION {control.editor.bib}
+{
+ "Control: editor formatted "
+ control.editor
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ duplicate$ #0 < {
+ pop$
+ "disabled!"
+ } {
+ #0 > {
+ "identically to author"
+ } {
+ "differently from author"
+ } if$
+ } if$ * *
+ diagn.cmntlog
+}
+
+FUNCTION {control.title.bib}
+{
+ "Control: production of article title "
+ control.title
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ duplicate$ #0 < {
+ pop$
+ "disabled"
+ } {
+ #0 > {
+ "required"
+ } {
+ "allowed"
+ } if$
+ } if$ * *
+ diagn.cmntlog
+}
+
+FUNCTION {control.pages.bib}
+{
+ "Control: page "
+ control.pages
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ duplicate$ #0 < {
+ pop$
+ "none"
+ } {
+ #0 > {
+ "range"
+ } {
+ "single"
+ } if$
+ } if$ * *
+ diagn.cmntlog
+}
+
+FUNCTION {control.year.bib}
+{
+ "Control: year "
+ control.year
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ duplicate$ #0 < {
+ pop$
+ "disabled!"
+ } {
+ #0 > {
+ "truncated"
+ } {
+ "verbatim"
+ } if$
+ } if$ * *
+ diagn.cmntlog
+}
+
+FUNCTION {control.eprint.bib}
+{
+ "Control: production of eprint "
+ control.eprint
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ #0 < { "disabled" } { "enabled" } if$ * *
+ diagn.cmntlog
+}
+
+FUNCTION {control.bib}
+{
+ control.key.bib
+ control.author.bib
+ control.editor.bib
+ control.title.bib
+ control.pages.bib
+ control.year.bib
+ control.eprint.bib
+}
+
FUNCTION {init.state.consts}
{
#0 'before.all :=
@@ -165,7 +574,7 @@ FUNCTION {show.stackstring.two}{
duplicate$ "2(" swap$ * ")" * top$
}
-FUNCTION {bibfield.command}{ "\bibfield"}
+FUNCTION {bibfield.command}{ "\bibfield "}
FUNCTION {output.nonnull}
{
@@ -195,9 +604,7 @@ FUNCTION {output.nonnull}
output.bibfield duplicate$ empty$ 'pop$
{
bibfield.command
- "{" * swap$ * "}{%" * write$ newline$
- " " swap$ * "}%" * write$ newline$
- " "
+ " {" * swap$ * "} {" * swap$ * "}" *
}
if$
write$
@@ -228,6 +635,12 @@ FUNCTION {output}
if$
}
+FUNCTION {output.nopunct}
+{
+ punctuation.no 'punctuation.state :=
+ output.nonnull
+}
+
FUNCTION {output.check}
{ swap$
duplicate$ empty$
@@ -236,9 +649,9 @@ FUNCTION {output.check}
if$
}
-FUNCTION {bbl.open} { "\BibitemOpen" }
+FUNCTION {bbl.open} { "\BibitemOpen " }
-FUNCTION {bbl.shut} { "\BibitemShut" }
+FUNCTION {bbl.shut} { "\BibitemShut " }
FUNCTION {bibitem.shut.stop} { bbl.shut "{Stop}%" * }
@@ -315,7 +728,7 @@ FUNCTION {add.blank}
FUNCTION {no.blank.or.punct}
{
- "\hspace{0pt}" *
+ "\hspace {0pt}" *
before.all 'output.state :=
}
@@ -325,11 +738,21 @@ FUNCTION {date.block}
skip$
}
-FUNCTION {new.block.checka}
-{ empty$
- 'skip$
- 'new.block
- if$
+STRINGS {z}
+FUNCTION {remove.dots}
+{
+ control.author.dotless {
+ 'z :=
+ ""
+ { z empty$ not }
+ { z #1 #1 substring$
+ z #2 global.max$ substring$ 'z :=
+ duplicate$ "." = 'pop$
+ { * }
+ if$
+ }
+ while$
+ } 'skip$ if$
}
FUNCTION {new.block.checkb}
@@ -341,22 +764,6 @@ FUNCTION {new.block.checkb}
if$
}
-FUNCTION {new.sentence.checka}
-{ empty$
- 'skip$
- 'new.sentence
- if$
-}
-
-FUNCTION {new.sentence.checkb}
-{ empty$
- swap$ empty$
- and
- 'skip$
- 'new.sentence
- if$
-}
-
FUNCTION {field.or.null}
{ duplicate$ empty$
{ pop$ "" }
@@ -369,7 +776,7 @@ FUNCTION {emphasize}
duplicate$ empty$
{ pop$ "" }
{
- "\emph{" swap$ * "}" *
+ "\emph {" swap$ * "}" *
}
if$
}
@@ -377,7 +784,7 @@ FUNCTION {emphasize}
FUNCTION {bolden}
{ duplicate$ empty$
{ pop$ "" }
- { "\textbf{" swap$ * "}" * }
+ { "\textbf {" swap$ * "}" * }
if$
}
@@ -386,7 +793,7 @@ FUNCTION {bib.name.font}
duplicate$ empty$
{ pop$ "" }
{
- "\bibnamefont{" swap$ * "}" *
+ "\bibnamefont {" swap$ * "}" *
}
if$
}
@@ -396,7 +803,7 @@ FUNCTION {bib.fname.font}
duplicate$ empty$
{ pop$ "" }
{
- "\bibfnamefont{" swap$ * "}" *
+ "\bibfnamefont {" swap$ * "}" *
}
if$
}
@@ -406,7 +813,7 @@ FUNCTION {cite.name.font}
duplicate$ empty$
{ pop$ "" }
{
- "\citenamefont{" swap$ * "}" *
+ "\citenamefont {" swap$ * "}" *
}
if$
}
@@ -430,6 +837,7 @@ FUNCTION {space.word}
% Here are the language-specific definitions for explicit words.
% Each function has a name bbl.xxx where xxx is the English word.
% The language selected here is ENGLISH
+
FUNCTION {bbl.and}
{
"and"
@@ -569,7 +977,7 @@ MACRO {dec} {"Dec."}
FUNCTION {bbl.url.prefix}
{
- "\urlprefix"
+ "\urlprefix "
}
FUNCTION {eng.ord}
@@ -881,7 +1289,7 @@ MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
MACRO {tcs} {"Theor. Comput. Sci."}
-FUNCTION {bibinfo.command} { "\bibinfo" }
+FUNCTION {bibinfo.command} { "\bibinfo " }
FUNCTION {bibinfo.check}
{ swap$
@@ -895,7 +1303,7 @@ FUNCTION {bibinfo.check}
swap$ pop$
}{
swap$
- bibinfo.command " {" * swap$ * "} {" * swap$ * "}" *
+ bibinfo.command "{" * swap$ * "} {" * swap$ * "}" *
}
if$
}
@@ -933,11 +1341,14 @@ FUNCTION {archiv.prefix.base}
FUNCTION {eprint.command}
{
- "\Eprint"
+ "\Eprint "
}
FUNCTION {format.eprint}
-{ eprint duplicate$ empty$
+{
+ eprint duplicate$ empty$
+ control.eprint #0 <
+ or
{ pop$ "" }
{
duplicate$
@@ -945,13 +1356,13 @@ FUNCTION {format.eprint}
archive duplicate$ empty$ { pop$ archiv.base } 'skip$ if$ *
"/" *
swap$ *
- "{" swap$ * "}" *
+ "{" swap$ * "} " *
swap$
""
archivePrefix duplicate$ empty$ { pop$ "" } { ":" * } if$ *
swap$ *
primaryClass duplicate$ empty$ { pop$ "" } { " [" swap$ * "]" * } if$ *
- "{" swap$ * "}" *
+ "{" swap$ * "} " *
*
eprint.command swap$ *
}
@@ -973,7 +1384,7 @@ FUNCTION {format.url}
url duplicate$ empty$
{ pop$ "" }
{
- "\url"
+ "\url "
"{" * swap$ * "}" *
}
if$
@@ -996,75 +1407,347 @@ FUNCTION {check.speaker}
STRINGS { bibinfo}
+FUNCTION {format.names.fname}
+{
+ control.author.initials {
+ control.author.dotless {
+ control.author.nospace {
+ "f{}"
+ } {
+ "f{~}"
+ } if$
+ } {
+ control.author.nospace {
+ "f{.}."
+ } {
+ "f."
+ } if$
+ } if$
+ } {
+ "ff"
+ } if$
+}
+
+FUNCTION {bracify}
+{
+ "{" swap$ * "}" *
+}
+
+FUNCTION {name.comma}
+{
+ control.author.nocomma 'skip$ { "," swap$ * } if$
+}
+
+FUNCTION {format.names.format.onefont}
+{
+ "{vv~}{ll}"
+ nameptr #1 >
+ control.author.first
+ and
+ control.author.reversed not
+ or
+ {
+ control.author.initials {
+ "f"
+ control.author.dotless 'skip$ {
+ "." *
+ } if$
+ "~" *
+ } {
+ "ff"
+ } if$
+ bracify
+ swap$
+ } {
+ format.names.fname
+ " " swap$ *
+ name.comma
+ bracify
+ }
+ if$
+ "jj"
+ " " swap$ *
+ name.comma
+ bracify
+ control.author.jnrlst 'skip$ 'swap$ if$
+ * *
+}
+
+FUNCTION {format.names.onefont}
+{
+ s nameptr format.names.format.onefont format.name$
+ remove.dots
+ bib.name.font
+}
+
+FUNCTION {format.names.morfont}
+{ s nameptr
+ "{vv~}{ll}" format.name$ bib.name.font
+ nameptr #1 >
+ control.author.first
+ and
+ control.author.reversed not
+ or
+ {
+ s nameptr
+ control.author.initials {
+ "f" % default: name + surname + comma junior
+ } {
+ "ff"
+ } if$
+ control.author.dotless 'skip$ {
+ "." * % nm-init % Initials. + surname (J. F. Smith) control.author.initials
+ } if$
+ bracify
+ format.name$ duplicate$ empty$ 'skip$
+ { tie.or.space.prefix bib.fname.font swap$ * }
+ if$
+ swap$
+ *
+ s nameptr
+ "{jj}" format.name$ duplicate$ empty$ 'skip$
+ { bib.fname.font ", " swap$ * }
+ if$
+ } {
+ s nameptr
+ format.names.fname
+ "jj"
+ " "
+ name.comma
+ control.author.jnrlst {
+ swap$ * skip$
+ } {
+ skip$ * swap$
+ } if$
+ bracify swap$ bracify swap$
+ *
+ format.name$
+ remove.dots
+ duplicate$ empty$ 'skip$
+ { bib.fname.font " " swap$ * }
+ if$
+ } if$
+ *
+}
+
+FUNCTION {names.punctuate}
+{
+ "," *
+ " " *
+}
+
FUNCTION {format.names}
{ 'bibinfo :=
- duplicate$ empty$ 'skip$ {
- 's :=
- "" 't :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- "{f.}" format.name$ duplicate$ empty$ 'skip$
+ duplicate$ empty$ { pop$ "" } {
+ duplicate$ num.names$
+ duplicate$ 'numnames :=
+ 'namesleft :=
+ 's :=
+ #1 'nameptr :=
+ ""
+ { namesleft #0 > }
+ {
+ format.names.morfont
+ bibinfo bibinfo.check
+ type$ "presentation" =
+ 'check.speaker
+ 'skip$
+ if$
+ 't :=
+ nameptr #1 > not
+ {
+ t *
+ } {
+ namesleft #1 >
+ {
+ names.punctuate
+ t *
+ } {
+ s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { 't := }
+ { pop$ }
+ if$
+ numnames #2 >
+ 'names.punctuate
+ 'skip$
+ if$
+ t "others" =
+ {
+ " " *
+ bbl.etal
+ emphasize
+ *
+ } {
+ bbl.and
+ space.word *
+ t *
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ } if$
+}
+
+FUNCTION {format.names.ed.onefont}
+{
+ s nameptr
+ control.author.initials {
+ control.author.dotless {
+ control.author.nospace {
+ "{f{}~}{vv~}{ll}{ jj}" % nm-rvx|nm-rvcx
+ } {
+ "{f{~}~}{vv~}{ll}{ jj}" % nm-rv
+ } if$
+ } {
+ control.author.nospace {
+ "{f{.}.~}{vv~}{ll}{ jj}" % nm-rvv|nm-rvvc
+ }{
+ "{f.~}{vv~}{ll}{, jj}" % nm-init|nm-rev|nm-rev1
+ } if$
+ } if$
+ } {
+ "{ff~}{vv~}{ll}{, jj}"
+ } if$
+ format.name$
+ remove.dots
+ bib.name.font
+}
+
+FUNCTION {format.names.ed.morfont}
+{
+ control.author.reversed { %
+ control.author.initials { %
+ control.author.dotless { %
+ s nameptr
+ control.author.nospace { % nm-rvx nm-rvcx
+ "{f{}}"
+ } { % nm-rv
+ "{f{~}}"
+ } if$
+ format.name$ duplicate$ empty$ 'skip$
+ { tie.or.space.prefix bib.fname.font swap$ * }
+ if$
+ s nameptr
+ "{vv~}{ll}" format.name$ bib.name.font *
+ s nameptr
+ "{jj}" format.name$
+ remove.dots
+ duplicate$ empty$ 'skip$
+ { bib.fname.font " " swap$ * }
+ if$
+ } { % !control.author.dotless
+ s nameptr
+ control.author.nospace { % nm-rvv
+ "{ff}"
+ } { % nm-rev nm-rev1
+ "{f.}"
+ } if$
+ format.name$ duplicate$ empty$ 'skip$
+ { tie.or.space.prefix bib.fname.font swap$ * }
+ if$
+ s nameptr
+ "{vv~}{ll}" format.name$ bib.name.font *
+ s nameptr
+ "{jj}" format.name$
+ duplicate$ empty$ 'skip$
+ { bib.fname.font ", " swap$ * }
+ if$
+ } if$
+ } { % Full names !control.author.initials nm-revf nm-revv1
+ s nameptr
+ "{ff}"
+ format.name$ duplicate$ empty$ 'skip$
{ tie.or.space.prefix bib.fname.font swap$ * }
if$
s nameptr
"{vv~}{ll}" format.name$ bib.name.font *
s nameptr
- "{jj}" format.name$ duplicate$ empty$ 'skip$
+ "{jj}" format.name$
+ duplicate$ empty$ 'skip$
{ bib.fname.font ", " swap$ * }
if$
- *
- bibinfo bibinfo.check
- type$ "presentation" =
- { check.speaker }
- 'skip$
- if$
- 't :=
- nameptr #1 >
- {
- namesleft #1 >
- {
- ", " *
- t *
- }{
- s nameptr "{ll}" format.name$ duplicate$ "others" =
- { 't := }
- { pop$ }
- if$
- numnames #2 >
- {
- "," *
- }
- 'skip$
- if$
- t "others" =
- {
- " " * bbl.etal
- emphasize
- *
- }{
- bbl.and
- space.word *
- t *
- }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
+ } if$
+ } { % !control.author.reversed nm-init
+ s nameptr
+ "{f.}"
+ format.name$ duplicate$ empty$ 'skip$
+ { tie.or.space.prefix bib.fname.font swap$ * }
+ if$
+ s nameptr
+ "{vv~}{ll}" format.name$ bib.name.font *
+ s nameptr
+ "{jj}" format.name$
+ duplicate$ empty$ 'skip$
+ { bib.fname.font ", " swap$ * }
+ if$
} if$
+ *
}
FUNCTION {format.names.ed}
{
- format.names
+ control.editor #0 > {
+ format.names
+ } {
+ 'bibinfo :=
+ duplicate$ empty$ 'skip$ {
+ 's :=
+ "" 't :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ {
+ format.names.ed.morfont
+ bibinfo bibinfo.check
+ 't :=
+ nameptr #1 >
+ {
+ namesleft #1 >
+ {
+ names.punctuate
+ t *
+ }{
+ s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { 't := }
+ { pop$ }
+ if$
+ numnames #2 >
+ 'names.punctuate
+ 'skip$
+ if$
+ t "others" =
+ {
+ " " * bbl.etal emphasize *
+ }{
+ bbl.and
+ space.word * t *
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ } if$
+ } if$
+}
+
+FUNCTION {format.key}
+{ empty$
+ { key field.or.null }
+ { "" }
+ if$
}
FUNCTION {format.authors}
@@ -1121,18 +1804,28 @@ FUNCTION {doi.base}
"http://dx.doi.org/"
}
+FUNCTION {noop.command}
+{
+ "\href@noop "
+}
+
FUNCTION {doi.command}
{
- "\doi"
+ "\doi "
}
FUNCTION {doi.command.href}
{
- "\Doi"
+ "\Doi "
+}
+
+FUNCTION {href.command}
+{
+ "\href "
}
FUNCTION {format.doi}
-{ doi "doi" bibinfo.check
+{ doi
duplicate$ empty$ 'skip$
{
new.block.comma
@@ -1141,22 +1834,67 @@ FUNCTION {format.doi}
if$
}
-FUNCTION {add.doi}
+FUNCTION {add.doi.old}
{
duplicate$ empty$ 'skip$
{
- doi duplicate$ empty$ 'pop$
+ doi duplicate$ empty$
{
- "{" swap$ * "}" *
- swap$
- "{" swap$ * "}" *
- *
- doi.command.href swap$ *
+ pop$
+ url duplicate$ empty$
+ {
+ pop$
+ }{
+ href.command " {" * swap$ * "} {" * swap$ * "}" *
+ }
+ if$
+ }
+ {
+ doi.command.href " {" * swap$ * "} {" * swap$ * "}" *
}
if$
}
if$
}
+FUNCTION {link.tag.open}
+{
+ doi duplicate$ empty$
+ {
+ pop$
+ url duplicate$ empty$
+ {
+ pop$ "" noop.command
+ }{
+ href.command
+ }
+ if$
+ }
+ {
+ doi.command.href
+ }
+ if$
+ "{" * swap$ * "} {" *
+}
+
+FUNCTION {link.tag.shut}
+{
+ "}"
+}
+
+FUNCTION {link.open}
+{
+ link.tag.open output.nopunct
+}
+
+FUNCTION {link.shut}
+{
+ link.tag.shut *
+}
+
+FUNCTION {add.doi}
+{
+ link.tag.open swap$ * link.tag.shut *
+}
FUNCTION {select.language}
{ duplicate$ empty$
@@ -1190,7 +1928,7 @@ FUNCTION {format.note}
FUNCTION {bbl.enquote}
{
- "\enquote"
+ "\enquote "
}
FUNCTION {string.enquote}
@@ -1198,7 +1936,7 @@ FUNCTION {string.enquote}
punctuation.no 'punctuation.state :=
non.stop {
block.punctuation
- } { "." } if$
+ } { "" } if$
swap$ pop$
*
bbl.enquote "{" * swap$ * "}" *
@@ -1225,22 +1963,105 @@ FUNCTION {end.quote.title}
if$
}
+FUNCTION {format.name.apply}
+{
+ s nameptr
+ "{vv~}{ll}"
+ format.name$
+ cite.name.font
+}
+
+FUNCTION {format.full.names}
+{
+ 's :=
+ "" 't :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { format.name.apply
+ 't :=
+ nameptr #1 >
+ {
+ namesleft #1 >
+ { ", " * t * }
+ {
+ s nameptr "{ll}" format.name$ duplicate$ "others" =
+ {
+ 't :=
+ }
+ 'pop$
+ if$
+ t "others" =
+ {
+ " " * bbl.etal
+ emphasize *
+ }{
+ numnames #2 > { "," * }{ skip$ } if$
+ bbl.and
+ space.word * t *
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {make.full.names}
+{
+ key editor author
+ type$ "proceedings" =
+ type$ "book" =
+ type$ "inbook" =
+ or { pop$ }{ { pop$ "" }{ swap$ pop$ "" swap$ } if$ } if$
+ duplicate$ empty$
+ { pop$
+ duplicate$ empty$
+ { pop$
+ duplicate$ empty$
+ { pop$
+ cite$ #1 #3 substring$
+ }{
+ skip$
+ }
+ if$
+ }
+ { swap$ pop$ format.full.names }
+ if$
+ }
+ { swap$ pop$ swap$ pop$ format.full.names }
+ if$
+}
+
FUNCTION {year.bibitem}
{
year duplicate$ empty$
{ pop$ ""
- "????" *
}{
skip$
} if$
+ extra.label *
}
FUNCTION {output.bibitem}
{
newline$
""
- "{" * cite$ * "}%" *
- "\bibitem"
+ label
+ *
+ make.full.names duplicate$ short.list =
+ { pop$ }{ * } if$
+ bracify
+ "[" swap$ * "]" *
+ cite$ bracify "%" *
+ *
+ "\bibitem "
swap$ *
write$ newline$
" "
@@ -1294,23 +2115,12 @@ FUNCTION {date.encapsulate}
FUNCTION {format.date}
{
- month "month" bibinfo.check
- duplicate$ empty$
- year "year" bibinfo.check duplicate$ empty$
- { swap$ 'skip$
- { "there's a month but no year in " cite$ * warning$ }
- if$
- *
- }{
- swap$ 'skip$
- {
- swap$
- word.space * swap$
- }
- if$
- *
+ year "year" bibinfo.check duplicate$ empty$
+ {
}
+ 'skip$
if$
+ extra.label *
date.encapsulate
}
@@ -1322,7 +2132,7 @@ FUNCTION {format.date.output.check}
FUNCTION {format.date.output}
{
- format.date output
+ format.date.output.check
}
FUNCTION {format.btitle}
@@ -1547,7 +2357,16 @@ FUNCTION {format.journal.pages}
{ pop$ pop$ format.pages }
{ volnum.punct *
swap$
- first.page
+ control.pages duplicate$ #0 < {
+ pop$ pop$
+ }{
+ #0 >
+ {
+ n.dashify
+ }{
+ first.page
+ } if$
+ } if$
"pages" bibinfo.check
*
}
@@ -1578,7 +2397,6 @@ FUNCTION {eid.or.pages}
FUNCTION {format.ser.vol.num}
{
series "series" bibinfo.check output
- after.punctuation 'output.state :=
volume field.or.null
duplicate$ empty$ 'skip$
{
@@ -1653,7 +2471,7 @@ FUNCTION {format.in.ed.booktitle}
{
format.booktitle duplicate$ empty$ 'pop$
{
- add.doi
+ add.doi
word.in swap$ * output.nonnull
bookaddress "address" bibinfo.check output
format.number.series "series and number" bibinfo.check output
@@ -1667,7 +2485,7 @@ FUNCTION {format.in.ed.booktitle.inbook}
{
format.booktitle duplicate$ empty$ 'pop$
{
- add.doi
+ add.doi
word.in swap$ * output.nonnull
bookaddress "address" bibinfo.check output
format.number.series "series and number" bibinfo.check output
@@ -1679,15 +2497,6 @@ FUNCTION {format.in.ed.booktitle.inbook}
if$
}
-FUNCTION {empty.misc.check}
-{ author empty$ title empty$ howpublished empty$
- month empty$ year empty$ note empty$
- and and and and and
- { "all relevant fields are empty in " cite$ * warning$ }
- 'skip$
- if$
-}
-
FUNCTION {format.thesis.type}
{ type duplicate$ empty$
'pop$
@@ -1712,52 +2521,10 @@ FUNCTION {format.tr.number}
FUNCTION {format.article.crossref}
{
- key duplicate$ empty$
- { pop$
- journal duplicate$ empty$
- { "need key or journal for " cite$ * " to crossref " * crossref * warning$ }
- { "journal" bibinfo.check emphasize word.in swap$ * }
- if$
- }
- { word.in swap$ * word.space *}
- if$
+ word.in
" \cite{" * crossref * "}" *
}
-FUNCTION {format.crossref.editor}
-{ editor #1 "{vv~}{ll}" format.name$
- bib.name.font
- "editor" bibinfo.check
- editor num.names$ duplicate$
- #2 >
- { pop$
- "editor" bibinfo.check
- word.space * bbl.etal
- emphasize
- *
- }
- { #2 <
- 'skip$
- { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- {
- "editor" bibinfo.check
- word.space * bbl.etal
- emphasize
- *
- }{
- bbl.and space.word
- * editor #2 "{vv~}{ll}" format.name$
- bib.name.font
- "editor" bibinfo.check
- *
- }
- if$
- }
- if$
- }
- if$
-}
-
FUNCTION {format.book.crossref}
{ volume duplicate$ empty$
{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$
@@ -1767,44 +2534,12 @@ FUNCTION {format.book.crossref}
swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
}
if$
- editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
- { series empty$
- { "need editor, key, or series for " cite$ * " to crossref " *
- crossref * warning$
- "" *
- }
- { series emphasize * }
- if$
- }
- { key * }
- if$
- }
- { format.crossref.editor * }
- if$
" \cite{" * crossref * "}" *
}
FUNCTION {format.incoll.inproc.crossref}
{
- editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
- { format.booktitle duplicate$ empty$
- { "need editor, key, or booktitle for " cite$ * " to crossref " *
- crossref * warning$
- }
- { word.in swap$ * }
- if$
- }
- { word.in key * word.space *}
- if$
- }
- { word.in format.crossref.editor * word.space *}
- if$
+ word.in
" \cite{" * crossref * "}" *
}
@@ -1892,25 +2627,49 @@ FUNCTION {format.school.address.output}
output
}
+FUNCTION {article.title.produce}
+{
+ control.title duplicate$ #0 <
+ { pop$
+ }{
+ format.title
+ "title" 'bibfield :=
+ swap$ #0 >
+ {
+ "title" output.check
+ }{
+ output
+ } if$
+ new.block.comma
+ } if$
+}
+
+FUNCTION {control}
+{
+}
+
FUNCTION {article}
{ output.bibitem
format.authors
booktitle empty$ {
"author" output.check
}{ output } if$
+ author format.key output
new.block.comma
+ article.title.produce
output.article.booktitle
crossref missing$
{
+ link.open
journal
"journal" bibinfo.warn
- pages empty$ 'skip$ { add.doi } if$
"journal" 'bibfield :=
output
format.ser.vol.num
output
eid.or.pages
format.date.output.check
+ link.shut
}{
format.article.crossref output.nonnull
format.pages output
@@ -1924,7 +2683,6 @@ FUNCTION {article}
new.sentence.comma
format.note output
format.eprint output
- format.url output
format.translation output
fin.entry
}
@@ -1933,24 +2691,28 @@ FUNCTION {book}
{ output.bibitem
author empty$
{
+ format.editors "author and editor" output.check
+ editor format.key output
}{
format.authors output.nonnull
- crossref missing$ { editor.check.book } 'skip$ if$
+% crossref missing$ { editor.check.book } 'skip$ if$
}
if$
new.block.comma
+ link.open
format.btitle
- add.doi
"title" output.check
+ link.shut
format.edition output
author empty$
{
- format.editor.in output
}
{
+ format.editor.in output
+ editor format.key output
}
if$
- format.number.series output
+ format.number.series output
crossref missing$
{
format.bvolume output
@@ -1963,23 +2725,24 @@ FUNCTION {book}
}
if$
format.isbn output
- format.chapter.pages
- output
+ format.chapter.pages
+ output
new.block.comma
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
FUNCTION {booklet}
{ output.bibitem
format.authors output
+ author format.key output
new.block.comma
+ link.open
format.title
- add.doi
"title" output.check
+ link.shut
new.block.comma
howpublished "howpublished" bibinfo.check output
address "address" bibinfo.check output
@@ -1990,7 +2753,12 @@ FUNCTION {booklet}
new.sentence.comma
format.note output
format.eprint output
- format.url output
+ fin.entry
+}
+
+FUNCTION {footnote}
+{ output.bibitem
+ format.note output
fin.entry
}
@@ -1999,8 +2767,10 @@ FUNCTION {inbook}
author empty$
{
format.editors "editor" output.check
+ editor format.key output
}{
format.authors output.nonnull
+ author format.key output
}
if$
new.block.comma
@@ -2035,14 +2805,15 @@ FUNCTION {inbook}
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
FUNCTION {incollection}
{ output.bibitem
format.authors "author" output.check
+ author format.key output
new.block.comma
+ article.title.produce
crossref missing$
{
format.in.ed.booktitle
@@ -2059,14 +2830,15 @@ FUNCTION {incollection}
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
FUNCTION {inproceedings}
{ output.bibitem
format.authors "author" output.check
+ author format.key output
new.block.comma
+ article.title.produce
crossref missing$
{
format.in.ed.booktitle
@@ -2083,112 +2855,102 @@ FUNCTION {inproceedings}
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
FUNCTION {conference} { inproceedings }
FUNCTION {manual}
{ output.bibitem
- author empty$
- { organization "organization" bibinfo.check
- duplicate$ empty$ 'pop$
- { output
- address "address" bibinfo.check output
- }
- if$
- }{
- format.authors output.nonnull
- }
- if$
+ format.authors output
+ author format.key output
new.block.comma
+ link.open
format.btitle
- add.doi
"title" output.check
- author empty$
- { organization empty$
- {
- address "address" bibinfo.check output
- }
- 'skip$
- if$
- }{
+ link.shut
organization "organization" bibinfo.check output
address "address" bibinfo.check output
- }
- if$
format.edition output
format.date.output
new.block.comma
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
FUNCTION {mastersthesis}
{ output.bibitem
format.authors "author" output.check
+ author format.key output
new.block.comma
format.btitle
output
new.block.comma
+ link.open
bbl.mthesis
format.thesis.type
- add.doi
output.nonnull
+ link.shut
format.school.address.output
format.date.output.check
new.block.comma
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
FUNCTION {misc}
{ output.bibitem
format.authors output
- format.title output
+ author format.key output
+ new.block.comma
+ link.open
+ format.title
+ output
+ link.shut
+ new.block.comma
howpublished "howpublished" bibinfo.check output
format.date.output
new.block.comma
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
- empty.misc.check
}
FUNCTION {phdthesis}
{ output.bibitem
format.authors "author" output.check
+ author format.key output
new.block.comma
format.btitle
output
new.block.comma
+ link.open
bbl.phdthesis
format.thesis.type
- add.doi
output.nonnull
+ link.shut
format.school.address.output
format.date.output.check
new.block.comma
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
FUNCTION {presentation}
{ output.bibitem
format.authors output
+ author format.key output
new.block.comma
- format.title output
+ link.open
+ format.title
+ output
+ link.shut
new.block.comma
format.organization.address "organization and address" output.check
month "month" output.check
@@ -2200,52 +2962,40 @@ FUNCTION {presentation}
type missing$ 'skip$
{"(" type capitalize * ")" * output}
if$
- new.block.comma format.url output
fin.entry
}
FUNCTION {proceedings}
{ output.bibitem
- editor empty$
- { organization "organization" bibinfo.check output }
- { format.editors output.nonnull }
- if$
+ format.editors output
+ editor format.key output
new.block.comma
+ link.open
format.btitle
- add.doi
"title" output.check
+ link.shut
bookaddress "address" bibinfo.check output
format.number.series output
format.bvolume output
- editor empty$
- {
- publisher empty$
- {
- }{
- format.publisher.address output
- }
- if$
- }{
- format.organization.publisher.address output
- }
- if$
+ format.organization.publisher.address output
format.isbn output
format.issn output
new.block.comma
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
FUNCTION {techreport}
{ output.bibitem
format.authors "author" output.check
+ author format.key output
new.block.comma
+ link.open
format.title
- add.doi
"title" output.check
+ link.shut
new.block.comma
format.tr.number
output.nonnull
@@ -2255,55 +3005,368 @@ FUNCTION {techreport}
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
FUNCTION {unpublished}
{ output.bibitem
format.authors "author" output.check
+ author format.key output
new.block.comma
+ link.open
format.title
- add.doi
"title" output.check
+ link.shut
format.date.output
new.block.comma
new.sentence.comma
format.note "note" output.check
format.eprint output
- format.url output
fin.entry
}
FUNCTION {default.type} { misc }
+
READ
-STRINGS { longest.label }
-INTEGERS { number.label longest.label.width }
-FUNCTION {initialize.longest.label}
-{ "" 'longest.label :=
- #1 'number.label :=
- #0 'longest.label.width :=
+
+EXECUTE {control.init}
+
+ITERATE {control.pass}
+
+EXECUTE {control.check}
+
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
}
-FUNCTION {longest.label.pass}
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+FUNCTION {cite.name.font.apply}
{
- number.label int.to.str$ 'label :=
- number.label #1 + 'number.label :=
- label width$ longest.label.width >
- { label 'longest.label :=
- label width$ 'longest.label.width :=
+ word.space * bbl.etal
+ emphasize
+ *
+}
+
+FUNCTION {format.lab.names}
+{ 's :=
+ "" 't :=
+ #1 'nameptr :=
+ format.name.apply
+ s num.names$ duplicate$
+ #2 >
+ { pop$
+ cite.name.font.apply
+ }{
+ #2 <
+ 'skip$
+ {
+ s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ {
+ cite.name.font.apply
+ }{
+ bbl.and space.word *
+ s #2 "{vv~}{ll}" format.name$
+ cite.name.font
+ *
+ }
+ 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 {editor.key.label}
+{ editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key
+ if$
+ }
+ { editor format.lab.names }
+ if$
+}
+
+FUNCTION {calc.short.authors}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.label
+ { type$ "proceedings" =
+ 'editor.key.label
+ 'author.key.label
+ if$
+ }
+ if$
+ 'short.list :=
+}
+
+FUNCTION {calc.label}
+{
+ calc.short.authors
+ short.list
+ year duplicate$ empty$
+ {
+ pop$ ""
+ }{
+ control.year #0 > { purify$ #-1 #4 substring$ } 'skip$ if$
+ }
+ if$
+ "(" swap$ * ")" *
+ * 'label :=
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr
+ "{ll{ }}"
+ control.author.initials {
+ "{ f{ }}" *
+ }{
+ "{ ff{ }}" *
+ } if$
+ "{ jj{ }}" *
+ format.name$ 't :=
+ nameptr #1 >
+ {
+ " " *
+ namesleft #1 = t "others" = and
+ { "zzzzz" * }
+ {
+ t sortify *
+ }
+ if$
+ }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {year.sort.key}
+{
+ year
+}
+
+FUNCTION {editor.sort}
+{ editor empty$
+ { key empty$
+ { "to sort, need editor or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
}
+ { editor sort.format.names }
+ if$
+}
+
+INTEGERS { seq.num }
+
+FUNCTION {init.seq}
+{ #0 'seq.num :=}
+
+EXECUTE {init.seq}
+
+FUNCTION {int.to.fix}
+{ "000000000" swap$ int.to.str$ *
+ #-1 #10 substring$
+}
+
+FUNCTION {label.presort}
+{
+ calc.label
+ label sortify
+ " "
+ *
+ seq.num #1 + 'seq.num :=
+ seq.num int.to.fix
+ 'sort.label :=
+ sort.label
+ *
+ " "
+ *
+ title field.or.null sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+FUNCTION {presort.pass}
+{ type$ "control" = 'control.presort 'label.presort if$
+}
+
+ITERATE {presort.pass}
+
+SORT
+
+STRINGS { last.label next.extra }
+
+INTEGERS { last.extra.num number.label }
+
+FUNCTION {initialize.extra.label.stuff}
+{ #0 int.to.chr$ 'last.label :=
+ "" 'next.extra :=
+ #0 'last.extra.num :=
+ #0 'number.label :=
+}
+
+FUNCTION {label.forward}
+{
+ 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 :=
+}
+
+FUNCTION {label.reverse}
+{ next.extra "b" =
+ { "a" 'extra.label := }
'skip$
if$
+ extra.label 'next.extra :=
+ extra.label
+ duplicate$ empty$
+ 'skip$
+ { "{\natexlab{" swap$ * "}}" * }
+ if$
+ 'extra.label :=
+ label extra.label * 'label :=
+}
+
+EXECUTE {initialize.extra.label.stuff}
+
+FUNCTION {forward.pass}
+{ type$ "control" = 'control.forward 'label.forward if$
+}
+
+ITERATE {forward.pass}
+
+FUNCTION {reverse.pass}
+{ type$ "control" = 'control.reverse 'label.reverse if$
+}
+
+REVERSE {reverse.pass}
+
+FUNCTION {sortkey.sort}
+{ sort.label
+ " "
+ *
+ year.sort.key
+ field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+FUNCTION {bib.sort.pass}
+{ type$ "control" = 'control.sort 'sortkey.sort if$
}
-EXECUTE {initialize.longest.label}
-ITERATE {longest.label.pass}
+ITERATE {bib.sort.pass}
+
+SORT
+
FUNCTION {init.bib.eprint}
{
- "\texttt{"
+ "\texttt {"
pop$
- "\providecommand \url [0]{\begingroup\@sanitize \@url }%" write$ newline$
+ "\providecommand \url [0]{\begingroup\@sanitize@url \@url }%" write$ newline$
"\providecommand \@url [1]{\endgroup\@href {#1}{" "}}%" bbl.url.prefix swap$ * * write$ newline$
"\providecommand " " [0]{URL }%" bbl.url.prefix swap$ * * write$ newline$
eprint.command "\providecommand " swap$ * "[0]{\href }%" * write$ newline$
@@ -2312,36 +3375,26 @@ FUNCTION {init.bib.eprint}
FUNCTION {init.bib.doi}
{
"\@ifxundefined \urlstyle {%" write$ newline$
- " \providecommand \doi [1]{doi:\discretionary{}{}{}#1}%" write$ newline$
+ " \providecommand " doi.command " [0]{\begingroup \@sanitize@url \@doi}%" * * write$ newline$
+ " \providecommand \@doi [1]{\endgroup \@@startlink {\doibase #1}doi:\discretionary {}{}{}#1\@@endlink }%" write$ newline$
"}{%" write$ newline$
- " \providecommand \doi [0]{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url }%"
- write$ newline$
+ " \providecommand " doi.command " [0]{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url }%" * * write$ newline$
"}%" write$ newline$
- "\providecommand \doibase [0]{" doi.base * "}%" * write$ newline$
- doi.command.href "\providecommand " swap$ * "[1]{\href{\doibase#1}}%" * write$ newline$
+ "\providecommand \doibase [0]{" doi.base "}%" * * write$ newline$
+ "\providecommand " doi.command.href "[0]{\begingroup \@sanitize@url \@Doi }%" * * write$ newline$
+ "\providecommand \@Doi [1]{\endgroup\@@startlink{\doibase#1}\@@Doi}%" write$ newline$
+ "\providecommand \@@Doi [1]{#1\@@endlink}%" write$ newline$
}
FUNCTION {init.bib.hypertex}
{
- "\providecommand\href[0]{\@sanitize\@href}%" write$ newline$
- "\providecommand\@href[1]{\endgroup\@@startlink{#1}\endgroup\@@href}%" write$ newline$
- "\providecommand\@@href[1]{#1\@@endlink}%" write$ newline$
- "\providecommand \@sanitize [0]{\begingroup\catcode`\&12\catcode`\#12\relax}%" write$ newline$
- "\@ifxundefined \pdfoutput {\@firstoftwo}{%" write$ newline$
- " \@ifnum{\z@=\pdfoutput}{\@firstoftwo}{\@secondoftwo}%" write$ newline$
- "}{%" write$ newline$
- " \providecommand\@@startlink[1]{\leavevmode\special{html:<a href=" quote$ * "#1" * quote$ * ">}}%" * write$ newline$
- " \providecommand\@@endlink[0]{\special{html:</a>}}%" write$ newline$
- "}{%" write$ newline$
- " \providecommand\@@startlink[1]{%" write$ newline$
- " \leavevmode" write$ newline$
- " \pdfstartlink" write$ newline$
- " attr{/Border[0 0 1 ]/H/I/C[0 1 1]}%" write$ newline$
- " user{/Subtype/Link/A<</Type/Action/S/URI/URI(#1)>>}%" write$ newline$
- " \relax" write$ newline$
- " }%" write$ newline$
- " \providecommand\@@endlink[0]{\pdfendlink}%" write$ newline$
- "}%" write$ newline$
+ "\providecommand " noop.command "[0]{\@secondoftwo}%" * * write$ newline$
+ "\providecommand " href.command "[0]{\begingroup \@sanitize@url \@href}%" * * write$ newline$
+ "\providecommand \@href[1]{\@@startlink{#1}\@@href}%" write$ newline$
+ "\providecommand \@@href[1]{\endgroup#1\@@endlink}%" write$ newline$
+ "\providecommand \@sanitize@url [0]{\catcode `\\12\catcode `\$12\catcode `\&12\catcode `\#12\catcode `\^12\catcode `\_12\catcode `\%12\relax}%" write$ newline$
+ "\providecommand \@@startlink[1]{}%" write$ newline$
+ "\providecommand \@@endlink[0]{}%" write$ newline$
}
FUNCTION {init.bib.namefont}
@@ -2358,6 +3411,12 @@ FUNCTION {init.bib.quote}
"#1" swap$ "}%" * * * * write$ newline$
}
+FUNCTION {init.bib.ay}
+{
+ "\providecommand \natexlab [1]{#1}%"
+ write$ newline$
+}
+
FUNCTION {init.bib.bibinfo}
{
bibinfo.command "\providecommand " swap$ * " [0]{\@secondoftwo}%" * write$ newline$
@@ -2390,16 +3449,20 @@ FUNCTION {init.bib}
{
warn.bib
"\makeatletter" write$ newline$
- "\providecommand \@ifxundefined [1]{%" write$ newline$
- " \ifx #1\undefined \expandafter \@firstoftwo" write$ newline$
- " \else \expandafter \@secondoftwo" write$ newline$
- "\fi" write$ newline$
+ "\providecommand \@ifxundefined [1]{%" write$ newline$
+ " \@ifx{#1\undefined}" write$ newline$
"}%" write$ newline$
"\providecommand \@ifnum [1]{%" write$ newline$
" \ifnum #1\expandafter \@firstoftwo" write$ newline$
" \else \expandafter \@secondoftwo" write$ newline$
- "\fi" write$ newline$
+ " \fi" write$ newline$
+ "}%" write$ newline$
+ "\providecommand \@ifx [1]{%" write$ newline$
+ " \ifx #1\expandafter \@firstoftwo" write$ newline$
+ " \else \expandafter \@secondoftwo" write$ newline$
+ " \fi" write$ newline$
"}%" write$ newline$
+ init.bib.ay
init.bib.quote
init.bib.namefont
init.bib.hypertex
@@ -2415,21 +3478,25 @@ FUNCTION {init.bib}
FUNCTION {begin.bib}
{
- id.bst duplicate$ top$ "%" swap$ * write$ newline$
+ id.bst diagn.cmntlog
+ control.bib
preamble$ empty$
'skip$
{ preamble$ write$ newline$ }
if$
"\begin{thebibliography}{"
- longest.label
+ number.label int.to.str$
* "}%" *
write$ newline$
init.bib
}
EXECUTE {begin.bib}
+
EXECUTE {init.state.consts}
+
ITERATE {call.type$}
+
FUNCTION {end.bib}
{ newline$
"\end{thebibliography}%"
@@ -2437,6 +3504,7 @@ FUNCTION {end.bib}
}
EXECUTE {end.bib}
+
%% End of customized bst file
%%
%% End of file `aipnum4-1.bst'.
diff --git a/Master/texmf-dist/bibtex/bst/revtex/aipnum4-1long.bst b/Master/texmf-dist/bibtex/bst/revtex/aipnum4-1long.bst
deleted file mode 100644
index 484be1f8794..00000000000
--- a/Master/texmf-dist/bibtex/bst/revtex/aipnum4-1long.bst
+++ /dev/null
@@ -1,2442 +0,0 @@
-%%
-%% This is file `aipnum4-1long.bst',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% merlin.mbs (with options: `head,lang,pres,pres-bf,seq-no,vonx,ed-au,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,yr-par,date-nil-x,tit-qq,inproceedings-chapter,article-title-o,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% physjour.mbs (with options: `lang,pres,pres-bf,seq-no,vonx,ed-au,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,yr-par,date-nil-x,tit-qq,inproceedings-chapter,article-title-o,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% geojour.mbs (with options: `lang,pres,pres-bf,seq-no,vonx,ed-au,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,yr-par,date-nil-x,tit-qq,inproceedings-chapter,article-title-o,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% photjour.mbs (with options: `lang,pres,pres-bf,seq-no,vonx,ed-au,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,yr-par,date-nil-x,tit-qq,inproceedings-chapter,article-title-o,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% merlin.mbs (with options: `tail,lang,pres,pres-bf,seq-no,vonx,ed-au,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,yr-par,date-nil-x,tit-qq,inproceedings-chapter,article-title-o,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,techreport-institution-par,vol-bf,vnum-x,volp-com,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% ----------------------------------------
-%% *** REVTeX-compatible aipnum4-1long.bst 2009-10-08 ***
-%%
-%% Copyright 1994-2007 Patrick W Daly
- % ===============================================================
- % IMPORTANT NOTICE:
- % This bibliographic style (bst) file has been generated from one or
- % more master bibliographic style (mbs) files, listed above.
- %
- % This generated file can be redistributed and/or modified under the terms
- % of the LaTeX Project Public License Distributed from CTAN
- % archives in directory macros/latex/base/lppl.txt; either
- % version 1 of the License, or any later version.
- % ===============================================================
- % Name and version information of the main mbs file:
- % \ProvidesFile{merlin.mbs}[2008/01/17 4.21 (PWD, AO, DPC)]
- % For use with BibTeX version 0.99a or later
- %-------------------------------------------------------------------
- % This bibliography style file is intended for texts in ENGLISH
- % This is a numerical citation style, and as such is standard LaTeX.
- % It requires no extra package to interface to the main text.
- % The form of the \bibitem entries is
- % \bibitem{key}...
- % Usage of \cite is as follows:
- % \cite{key} ==>> [#]
- % \cite[chap. 2]{key} ==>> [#, chap. 2]
- % where # is a number determined by the ordering in the reference list.
- % The order in the reference list is that by which the works were originally
- % cited in the text, or that in the database.
- %---------------------------------------------------------------------
-
-FUNCTION {id.bst} {"Merlin.mbs v4.21 2009-07-09. "}
-ENTRY
-{
- address
- archive
- archivePrefix
- author
- bookaddress
- booktitle
- chapter
- collaboration
- doi
- edition
- editor
- eid
- eprint
- howpublished
- institution
- isbn
- issn
- journal
- key
- language
- month
- note
- number
- organization
- pages
- primaryClass
- publisher
- school
- SLACcitation
- series
- title
- translation
- type
- url
- volume
- year
-}{
-}{
- label
-}
-
-INTEGERS
-{
- output.state before.all
- after.word after.punctuation
- after.sentence after.block
-}
-
-INTEGERS
-{
- punctuation.state punctuation.no punctuation.space punctuation.yes
-}
-
-STRINGS { bibfield output.bibfield }
-FUNCTION {not}
-{ { #0 }
- { #1 }
- if$
-}
-
-FUNCTION {and}
-{ 'skip$
- { pop$ #0 }
- if$
-}
-
-FUNCTION {or}
-{ { pop$ #1 }
- 'skip$
- if$
-}
-
-FUNCTION {non.stop}
-{ duplicate$
- "}" * add.period$
- #-1 #1 substring$ "." =
-}
-
-FUNCTION {init.state.consts}
-{
- #0 'before.all :=
- #1 'after.word :=
- #2 'after.punctuation :=
- #3 'after.sentence :=
- #4 'after.block :=
- #0 'punctuation.no :=
- #1 'punctuation.space :=
- #2 'punctuation.yes :=
- "" 'bibfield :=
- "" 'output.bibfield :=
-}
-
-STRINGS { s t}
-FUNCTION {block.punctuation}
-{ ""
- "," *
-}
-
-FUNCTION {word.space}
-{
- "\ "
-}
-
-FUNCTION {show.stackstring.one}{
- "(" *
- output.state int.to.str$ *
- "," * punctuation.state int.to.str$ *
- ")" * top$
- duplicate$ "1(" swap$ * ")" * top$
-}
-
-FUNCTION {show.stackstring.two}{
- "(" *
- output.state int.to.str$ *
- "," * punctuation.state int.to.str$ *
- ")" * top$
- swap$
- duplicate$ "1(" swap$ * ")" * top$
- swap$
- duplicate$ "2(" swap$ * ")" * top$
-}
-
-FUNCTION {bibfield.command}{ "\bibfield"}
-
-FUNCTION {output.nonnull}
-{
- swap$
- output.state after.word =
- {
- block.punctuation *
- word.space *
- }
- {
- output.state after.punctuation =
- {
- word.space *
- }
- {
- output.state after.block = output.state after.sentence = or
- {
- add.period$
- "\EOS\ " *
- }{
- }
- if$
- }
- if$
- }
- if$
- output.bibfield duplicate$ empty$ 'pop$
- {
- bibfield.command
- "{" * swap$ * "}{%" * write$ newline$
- " " swap$ * "}%" * write$ newline$
- " "
- }
- if$
- write$
- bibfield 'output.bibfield := "" 'bibfield :=
- output.state after.block =
- {
- newline$
- "\newblock " write$
- }
- 'skip$
- if$
- punctuation.state duplicate$
- punctuation.yes 'punctuation.state :=
- punctuation.no =
- { pop$ before.all }
- { punctuation.yes = { after.word }{ after.punctuation } if$ }
- if$
- 'output.state :=
-}
-
-FUNCTION {output}
-{ duplicate$ empty$
- {
- pop$
- "" 'bibfield :=
- }
- 'output.nonnull
- if$
-}
-
-FUNCTION {output.check}
-{ swap$
- duplicate$ empty$
- { pop$ "empty " swap$ * " in " * cite$ * warning$ }
- { swap$ pop$ output.nonnull }
- if$
-}
-
-FUNCTION {bbl.open} { "\BibitemOpen" }
-
-FUNCTION {bbl.shut} { "\BibitemShut" }
-
-FUNCTION {bibitem.shut.stop} { bbl.shut "{Stop}%" * }
-
-FUNCTION {bibitem.shut.nostop} { bbl.shut "{NoStop}%" * }
-
-FUNCTION {bibitem.shut}
-{
- non.stop
- {
- bibitem.shut.nostop *
- }{
- bibitem.shut.stop *
- }
- if$
-}
-
-FUNCTION {html.itag} {
- "p"
-}
-
-FUNCTION {html.ltag} {
- ""
-}
-
-FUNCTION {output.SLACcitation}
-{ SLACcitation empty$
- 'skip$
- {
- newline$
- SLACcitation write$
- }
- if$
-}
-
-FUNCTION {fin.entry}
-{
- bibitem.shut
- write$
- output.SLACcitation
-}
-
-FUNCTION {new.block}
-{ output.state before.all =
- 'skip$
- { after.block 'output.state := }
- if$
-}
-
-FUNCTION {new.block.comma}
-{
-}
-
-FUNCTION {new.sentence}
-{ output.state after.block = output.state before.all = or
- 'skip$
- { after.sentence 'output.state := }
- if$
-}
-
-FUNCTION {new.sentence.comma}
-{
-}
-
-FUNCTION {sentence.or.colon}
-{
- new.sentence
-}
-
-FUNCTION {add.blank}
-{
- word.space *
- before.all 'output.state :=
-}
-
-FUNCTION {no.blank.or.punct}
-{
- "\hspace{0pt}" *
- before.all 'output.state :=
-}
-
-FUNCTION {date.block}
-{
- new.block.comma
- skip$
-}
-
-FUNCTION {new.block.checka}
-{ empty$
- 'skip$
- 'new.block
- if$
-}
-
-FUNCTION {new.block.checkb}
-{ empty$
- swap$ empty$
- and
- 'skip$
- 'new.block
- if$
-}
-
-FUNCTION {new.sentence.checka}
-{ empty$
- 'skip$
- 'new.sentence
- if$
-}
-
-FUNCTION {new.sentence.checkb}
-{ empty$
- swap$ empty$
- and
- 'skip$
- 'new.sentence
- if$
-}
-
-FUNCTION {field.or.null}
-{ duplicate$ empty$
- { pop$ "" }
- 'skip$
- if$
-}
-
-FUNCTION {emphasize}
-{
- duplicate$ empty$
- { pop$ "" }
- {
- "\emph{" swap$ * "}" *
- }
- if$
-}
-
-FUNCTION {bolden}
-{ duplicate$ empty$
- { pop$ "" }
- { "\textbf{" swap$ * "}" * }
- if$
-}
-
-FUNCTION {bib.name.font}
-{
- duplicate$ empty$
- { pop$ "" }
- {
- "\bibnamefont{" swap$ * "}" *
- }
- if$
-}
-
-FUNCTION {bib.fname.font}
-{
- duplicate$ empty$
- { pop$ "" }
- {
- "\bibfnamefont{" swap$ * "}" *
- }
- if$
-}
-
-FUNCTION {cite.name.font}
-{
- duplicate$ empty$
- { pop$ "" }
- {
- "\citenamefont{" swap$ * "}" *
- }
- if$
-}
-
-FUNCTION {tie.or.space.prefix}
-{ duplicate$ text.length$ #3 <
- { "~" }
- { word.space }
- if$
- swap$
-}
-
-FUNCTION {capitalize}
-{
- "u" change.case$ "t" change.case$
-}
-
-FUNCTION {space.word}
-{ word.space swap$ * word.space * }
-
- % Here are the language-specific definitions for explicit words.
- % Each function has a name bbl.xxx where xxx is the English word.
- % The language selected here is ENGLISH
-FUNCTION {bbl.and}
-{
- "and"
-}
-
-FUNCTION {bbl.etal}
-{
- "et~al."
-}
-
-FUNCTION {bbl.editors}
-{
- "eds."
-}
-
-FUNCTION {bbl.editor}
-{
- "ed."
-}
-
-FUNCTION {bbl.edby}
-{ "edited by" }
-
-FUNCTION {bbl.edition}
-{
- "ed."
-}
-
-FUNCTION {bbl.volume}
-{
- "vol."
-}
-
-FUNCTION {bbl.of}
-{ "of" }
-
-FUNCTION {bbl.number}
-{
- "no."
-}
-
-FUNCTION {bbl.nr}
-{ "no." }
-
-FUNCTION {bbl.in}
-{ "in" }
-
-FUNCTION {bbl.pages}
-{
- "pp."
-}
-
-FUNCTION {bbl.page}
-{
- "p."
-}
-
-FUNCTION {bbl.eidpp}
-{ "pages" }
-
-FUNCTION {bbl.chapter}
-{
- "chap."
-}
-
-FUNCTION {bbl.techrep}
-{
- "Tech. Rep."
-}
-
-FUNCTION {bbl.mthesis}
-{ "Master's thesis" }
-
-FUNCTION {bbl.phdthesis}
-{ "Ph.D. thesis" }
-
-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" }
-
-MACRO {jan} {"Jan."}
-
-MACRO {feb} {"Feb."}
-
-MACRO {mar} {"Mar."}
-
-MACRO {apr} {"Apr."}
-
-MACRO {may} {"May"}
-
-MACRO {jun} {"Jun."}
-
-MACRO {jul} {"Jul."}
-
-MACRO {aug} {"Aug."}
-
-MACRO {sep} {"Sep."}
-
-MACRO {oct} {"Oct."}
-
-MACRO {nov} {"Nov."}
-
-MACRO {dec} {"Dec."}
-
-FUNCTION {bbl.url.prefix}
-{
- "\urlprefix"
-}
-
-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$
-}
-
- %-------------------------------------------------------------------
- % Begin module:
- % \ProvidesFile{physjour.mbs}[2002/01/14 2.2 (PWD)]
-MACRO {aa}{"Astron. \& Astrophys."}
-MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."}
-MACRO {aj} {"Astron. J."}
-MACRO {aph} {"Acta Phys."}
-MACRO {advp} {"Adv. Phys."}
-MACRO {ajp} {"Amer. J. Phys."}
-MACRO {ajm} {"Amer. J. Math."}
-MACRO {amsci} {"Amer. Sci."}
-MACRO {anofd} {"Ann. Fluid Dyn."}
-MACRO {am} {"Ann. Math."}
-MACRO {ap} {"Ann. Phys. (NY)"}
-MACRO {adp} {"Ann. Phys. (Leipzig)"}
-MACRO {ao} {"Appl. Opt."}
-MACRO {apl} {"Appl. Phys. Lett."}
-MACRO {app} {"Astroparticle Phys."}
-MACRO {apj} {"Astrophys. J."}
-MACRO {apjsup} {"Astrophys. J. Suppl."}
-MACRO {apss} {"Astrophys. Space Sci."}
-MACRO {araa} {"Ann. Rev. Astron. Astrophys."}
-MACRO {baas} {"Bull. Amer. Astron. Soc."}
-MACRO {baps} {"Bull. Amer. Phys. Soc."}
-MACRO {cmp} {"Comm. Math. Phys."}
-MACRO {cpam} {"Commun. Pure Appl. Math."}
-MACRO {cppcf} {"Comm. Plasma Phys. \& Controlled Fusion"}
-MACRO {cpc} {"Comp. Phys. Comm."}
-MACRO {cqg} {"Class. Quant. Grav."}
-MACRO {cra} {"C. R. Acad. Sci. A"}
-MACRO {fed} {"Fusion Eng. \& Design"}
-MACRO {ft} {"Fusion Tech."}
-MACRO {grg} {"Gen. Relativ. Gravit."}
-MACRO {ieeens} {"IEEE Trans. Nucl. Sci."}
-MACRO {ieeeps} {"IEEE Trans. Plasma Sci."}
-MACRO {ijimw} {"Interntl. J. Infrared \& Millimeter Waves"}
-MACRO {ip} {"Infrared Phys."}
-MACRO {irp} {"Infrared Phys."}
-MACRO {jap} {"J. Appl. Phys."}
-MACRO {jasa} {"J. Acoust. Soc. America"}
-MACRO {jcp} {"J. Comp. Phys."}
-MACRO {jetp} {"Sov. Phys.--JETP"}
-MACRO {jfe} {"J. Fusion Energy"}
-MACRO {jfm} {"J. Fluid Mech."}
-MACRO {jmp} {"J. Math. Phys."}
-MACRO {jne} {"J. Nucl. Energy"}
-MACRO {jnec} {"J. Nucl. Energy, C: Plasma Phys., Accelerators, Thermonucl. Res."}
-MACRO {jnm} {"J. Nucl. Mat."}
-MACRO {jpc} {"J. Phys. Chem."}
-MACRO {jpp} {"J. Plasma Phys."}
-MACRO {jpsj} {"J. Phys. Soc. Japan"}
-MACRO {jsi} {"J. Sci. Instrum."}
-MACRO {jvst} {"J. Vac. Sci. \& Tech."}
-MACRO {nat} {"Nature"}
-MACRO {nature} {"Nature"}
-MACRO {nedf} {"Nucl. Eng. \& Design/Fusion"}
-MACRO {nf} {"Nucl. Fusion"}
-MACRO {nim} {"Nucl. Inst. \& Meth."}
-MACRO {nimpr} {"Nucl. Inst. \& Meth. in Phys. Res."}
-MACRO {np} {"Nucl. Phys."}
-MACRO {npb} {"Nucl. Phys. B"}
-MACRO {nt/f} {"Nucl. Tech./Fusion"}
-MACRO {npbpc} {"Nucl. Phys. B (Proc. Suppl.)"}
-MACRO {inc} {"Nuovo Cimento"}
-MACRO {nc} {"Nuovo Cimento"}
-MACRO {pf} {"Phys. Fluids"}
-MACRO {pfa} {"Phys. Fluids A: Fluid Dyn."}
-MACRO {pfb} {"Phys. Fluids B: Plasma Phys."}
-MACRO {pl} {"Phys. Lett."}
-MACRO {pla} {"Phys. Lett. A"}
-MACRO {plb} {"Phys. Lett. B"}
-MACRO {prep} {"Phys. Rep."}
-MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"}
-MACRO {pp} {"Phys. Plasmas"}
-MACRO {ppcf} {"Plasma Phys. \& Controlled Fusion"}
-MACRO {phitrsl} {"Philos. Trans. Roy. Soc. London"}
-MACRO {prl} {"Phys. Rev. Lett."}
-MACRO {pr} {"Phys. Rev."}
-MACRO {physrev} {"Phys. Rev."}
-MACRO {pra} {"Phys. Rev. A"}
-MACRO {prb} {"Phys. Rev. B"}
-MACRO {prc} {"Phys. Rev. C"}
-MACRO {prd} {"Phys. Rev. D"}
-MACRO {pre} {"Phys. Rev. E"}
-MACRO {ps} {"Phys. Scripta"}
-MACRO {procrsl} {"Proc. Roy. Soc. London"}
-MACRO {rmp} {"Rev. Mod. Phys."}
-MACRO {rsi} {"Rev. Sci. Inst."}
-MACRO {science} {"Science"}
-MACRO {sciam} {"Sci. Am."}
-MACRO {sam} {"Stud. Appl. Math."}
-MACRO {sjpp} {"Sov. J. Plasma Phys."}
-MACRO {spd} {"Sov. Phys.--Doklady"}
-MACRO {sptp} {"Sov. Phys.--Tech. Phys."}
-MACRO {spu} {"Sov. Phys.--Uspeki"}
-MACRO {st} {"Sky and Telesc."}
- % End module: physjour.mbs
- %-------------------------------------------------------------------
- % Begin module:
- % \ProvidesFile{geojour.mbs}[2002/07/10 2.0h (PWD)]
-MACRO {aisr} {"Adv. Space Res."}
-MACRO {ag} {"Ann. Geophys."}
-MACRO {anigeo} {"Ann. Geofis."}
-MACRO {angl} {"Ann. Glaciol."}
-MACRO {andmet} {"Ann. d. Meteor."}
-MACRO {andgeo} {"Ann. d. Geophys."}
-MACRO {andphy} {"Ann. Phys.-Paris"}
-MACRO {afmgb} {"Arch. Meteor. Geophys. Bioklimatol."}
-MACRO {atph} {"Atm\'osphera"}
-MACRO {aao} {"Atmos. Ocean"}
-MACRO {ass}{"Astrophys. Space Sci."}
-MACRO {atenv} {"Atmos. Environ."}
-MACRO {aujag} {"Aust. J. Agr. Res."}
-MACRO {aumet} {"Aust. Meteorol. Mag."}
-MACRO {blmet} {"Bound.-Lay. Meteorol."}
-MACRO {bams} {"Bull. Amer. Meteorol. Soc."}
-MACRO {cch} {"Clim. Change"}
-MACRO {cdyn} {"Clim. Dynam."}
-MACRO {cbul} {"Climatol. Bull."}
-MACRO {cap} {"Contrib. Atmos. Phys."}
-MACRO {dsr} {"Deep-Sea Res."}
-MACRO {dhz} {"Dtsch. Hydrogr. Z."}
-MACRO {dao} {"Dynam. Atmos. Oceans"}
-MACRO {eco} {"Ecology"}
-MACRO {empl}{"Earth, Moon and Planets"}
-MACRO {envres} {"Environ. Res."}
-MACRO {envst} {"Environ. Sci. Technol."}
-MACRO {ecms} {"Estuarine Coastal Mar. Sci."}
-MACRO {expa}{"Exper. Astron."}
-MACRO {geoint} {"Geofis. Int."}
-MACRO {geopub} {"Geofys. Publ."}
-MACRO {geogeo} {"Geol. Geofiz."}
-MACRO {gafd} {"Geophys. Astrophys. Fluid Dyn."}
-MACRO {gfd} {"Geophys. Fluid Dyn."}
-MACRO {geomag} {"Geophys. Mag."}
-MACRO {georl} {"Geophys. Res. Lett."}
-MACRO {grl} {"Geophys. Res. Lett."}
-MACRO {ga} {"Geophysica"}
-MACRO {gs} {"Geophysics"}
-MACRO {ieeetap} {"IEEE Trans. Antenn. Propag."}
-MACRO {ijawp} {"Int. J. Air Water Pollut."}
-MACRO {ijc} {"Int. J. Climatol."}
-MACRO {ijrs} {"Int. J. Remote Sens."}
-MACRO {jam} {"J. Appl. Meteorol."}
-MACRO {jaot} {"J. Atmos. Ocean. Technol."}
-MACRO {jatp} {"J. Atmos. Terr. Phys."}
-MACRO {jastp} {"J. Atmos. Solar-Terr. Phys."}
-MACRO {jce} {"J. Climate"}
-MACRO {jcam} {"J. Climate Appl. Meteor."}
-MACRO {jcm} {"J. Climate Meteor."}
-MACRO {jcy} {"J. Climatol."}
-MACRO {jgr} {"J. Geophys. Res."}
-MACRO {jga} {"J. Glaciol."}
-MACRO {jh} {"J. Hydrol."}
-MACRO {jmr} {"J. Mar. Res."}
-MACRO {jmrj} {"J. Meteor. Res. Japan"}
-MACRO {jm} {"J. Meteor."}
-MACRO {jpo} {"J. Phys. Oceanogr."}
-MACRO {jra} {"J. Rech. Atmos."}
-MACRO {jaes} {"J. Aeronaut. Sci."}
-MACRO {japca} {"J. Air Pollut. Control Assoc."}
-MACRO {jas} {"J. Atmos. Sci."}
-MACRO {jmts} {"J. Mar. Technol. Soc."}
-MACRO {jmsj} {"J. Meteorol. Soc. Japan"}
-MACRO {josj} {"J. Oceanogr. Soc. Japan"}
-MACRO {jwm} {"J. Wea. Mod."}
-MACRO {lao} {"Limnol. Oceanogr."}
-MACRO {mwl} {"Mar. Wea. Log"}
-MACRO {mau} {"Mausam"}
-MACRO {meteor} {"``Meteor'' Forschungsergeb."}
-MACRO {map} {"Meteorol. Atmos. Phys."}
-MACRO {metmag} {"Meteor. Mag."}
-MACRO {metmon} {"Meteor. Monogr."}
-MACRO {metrun} {"Meteor. Rundsch."}
-MACRO {metzeit} {"Meteor. Z."}
-MACRO {metgid} {"Meteor. Gidrol."}
-MACRO {mwr} {"Mon. Weather Rev."}
-MACRO {nwd} {"Natl. Weather Dig."}
-MACRO {nzjmfr} {"New Zeal. J. Mar. Freshwater Res."}
-MACRO {npg} {"Nonlin. Proc. Geophys."}
-MACRO {om} {"Oceanogr. Meteorol."}
-MACRO {ocac} {"Oceanol. Acta"}
-MACRO {oceanus} {"Oceanus"}
-MACRO {paleoc} {"Paleoceanography"}
-MACRO {pce} {"Phys. Chem. Earth"}
-MACRO {pmg} {"Pap. Meteor. Geophys."}
-MACRO {ppom} {"Pap. Phys. Oceanogr. Meteor."}
-MACRO {physzeit} {"Phys. Z."}
-MACRO {pps} {"Planet. Space Sci."}
-MACRO {pss} {"Planet. Space Sci."}
-MACRO {pag} {"Pure Appl. Geophys."}
-MACRO {qjrms} {"Quart. J. Roy. Meteorol. Soc."}
-MACRO {quatres} {"Quat. Res."}
-MACRO {rsci} {"Radio Sci."}
-MACRO {rse} {"Remote Sens. Environ."}
-MACRO {rgeo} {"Rev. Geophys."}
-MACRO {rgsp} {"Rev. Geophys. Space Phys."}
-MACRO {rdgeo} {"Rev. Geofis."}
-MACRO {revmeta} {"Rev. Meteorol."}
-MACRO {sgp}{"Surveys in Geophys."}
-MACRO {sp} {"Solar Phys."}
-MACRO {ssr} {"Space Sci. Rev."}
-MACRO {tellus} {"Tellus"}
-MACRO {tac} {"Theor. Appl. Climatol."}
-MACRO {tagu} {"Trans. Am. Geophys. Union (EOS)"}
-MACRO {wrr} {"Water Resour. Res."}
-MACRO {weather} {"Weather"}
-MACRO {wafc} {"Weather Forecast."}
-MACRO {ww} {"Weatherwise"}
-MACRO {wmob} {"WMO Bull."}
-MACRO {zeitmet} {"Z. Meteorol."}
- % End module: geojour.mbs
- %-------------------------------------------------------------------
- % Begin module:
- % \ProvidesFile{photjour.mbs}[1999/02/24 2.0b (PWD)]
-
-MACRO {appopt} {"Appl. Opt."}
-MACRO {bell} {"Bell Syst. Tech. J."}
-MACRO {ell} {"Electron. Lett."}
-MACRO {jasp} {"J. Appl. Spectr."}
-MACRO {jqe} {"IEEE J. Quantum Electron."}
-MACRO {jlwt} {"J. Lightwave Technol."}
-MACRO {jmo} {"J. Mod. Opt."}
-MACRO {josa} {"J. Opt. Soc. America"}
-MACRO {josaa} {"J. Opt. Soc. Amer.~A"}
-MACRO {josab} {"J. Opt. Soc. Amer.~B"}
-MACRO {jdp} {"J. Phys. (Paris)"}
-MACRO {oc} {"Opt. Commun."}
-MACRO {ol} {"Opt. Lett."}
-MACRO {phtl} {"IEEE Photon. Technol. Lett."}
-MACRO {pspie} {"Proc. Soc. Photo-Opt. Instrum. Eng."}
-MACRO {sse} {"Solid-State Electron."}
-MACRO {sjot} {"Sov. J. Opt. Technol."}
-MACRO {sjqe} {"Sov. J. Quantum Electron."}
-MACRO {sleb} {"Sov. Phys.--Leb. Inst. Rep."}
-MACRO {stph} {"Sov. Phys.--Techn. Phys."}
-MACRO {stphl} {"Sov. Techn. Phys. Lett."}
-MACRO {vr} {"Vision Res."}
-MACRO {zph} {"Z. f. Physik"}
-MACRO {zphb} {"Z. f. Physik~B"}
-MACRO {zphd} {"Z. f. Physik~D"}
-
-MACRO {CLEO} {"CLEO"}
-MACRO {ASSL} {"Adv. Sol.-State Lasers"}
-MACRO {OSA} {"OSA"}
- % End module: photjour.mbs
-%% Copyright 1994-2007 Patrick W Daly
-MACRO {acmcs} {"ACM Comput. Surv."}
-
-MACRO {acta} {"Acta Inf."}
-
-MACRO {cacm} {"Commun. ACM"}
-
-MACRO {ibmjrd} {"IBM J. Res. Dev."}
-
-MACRO {ibmsj} {"IBM Syst.~J."}
-
-MACRO {ieeese} {"IEEE Trans. Software Eng."}
-
-MACRO {ieeetc} {"IEEE Trans. Comput."}
-
-MACRO {ieeetcad}
- {"IEEE Trans. Comput. Aid. Des."}
-
-MACRO {ipl} {"Inf. Process. Lett."}
-
-MACRO {jacm} {"J.~ACM"}
-
-MACRO {jcss} {"J.~Comput. Syst. Sci."}
-
-MACRO {scp} {"Sci. Comput. Program."}
-
-MACRO {sicomp} {"SIAM J. Comput."}
-
-MACRO {tocs} {"ACM Trans. Comput. Syst."}
-
-MACRO {tods} {"ACM Trans. Database Syst."}
-
-MACRO {tog} {"ACM Trans. Graphic."}
-
-MACRO {toms} {"ACM Trans. Math. Software"}
-
-MACRO {toois} {"ACM Trans. Office Inf. Syst."}
-
-MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
-
-MACRO {tcs} {"Theor. Comput. Sci."}
-
-FUNCTION {bibinfo.command} { "\bibinfo" }
-
-FUNCTION {bibinfo.check}
-{ swap$
- duplicate$ missing$
- {
- pop$
- pop$ ""
- }{
- duplicate$ empty$
- {
- swap$ pop$
- }{
- swap$
- bibinfo.command " {" * swap$ * "} {" * swap$ * "}" *
- }
- if$
- }
- if$
-}
-
-FUNCTION {bibinfo.warn}
-{ swap$
- duplicate$ missing$
- {
- swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
- ""
- }{
- duplicate$ empty$
- {
- swap$ "empty " swap$ * " in " * cite$ * warning$
- }{
- swap$
- bibinfo.command " {" * swap$ * "} {" * swap$ * "}" *
- }
- if$
- }
- if$
-}
-
-FUNCTION {archiv.base}
-{
- "http://arxiv.org/abs"
-}
-
-FUNCTION {archiv.prefix.base}
-{
- "arXiv"
-}
-
-FUNCTION {eprint.command}
-{
- "\Eprint"
-}
-
-FUNCTION {format.eprint}
-{ eprint duplicate$ empty$
- { pop$ "" }
- {
- duplicate$
- ""
- archive duplicate$ empty$ { pop$ archiv.base } 'skip$ if$ *
- "/" *
- swap$ *
- "{" swap$ * "}" *
- swap$
- ""
- archivePrefix duplicate$ empty$ { pop$ "" } { ":" * } if$ *
- swap$ *
- primaryClass duplicate$ empty$ { pop$ "" } { " [" swap$ * "]" * } if$ *
- "{" swap$ * "}" *
- *
- eprint.command swap$ *
- }
- if$
-}
-
-FUNCTION {format.translation}
-{ translation duplicate$ empty$
- 'skip$
- { ""
- "\translation{" * swap$ * "}" *
- punctuation.space 'punctuation.state :=
- }
- if$
-}
-
-FUNCTION {format.url}
-{
- url duplicate$ empty$
- { pop$ "" }
- {
- "\url"
- "{" * swap$ * "}" *
- }
- if$
-}
-
-INTEGERS { nameptr namesleft numnames }
-
-FUNCTION {check.speaker}
-{ key empty$ 'skip$
- { key nameptr int.to.str$ =
- {
- bolden
- }
- 'skip$
- if$
- }
- if$
-}
-
-
-STRINGS { bibinfo}
-
-FUNCTION {format.names}
-{ 'bibinfo :=
- duplicate$ empty$ 'skip$ {
- 's :=
- "" 't :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- "{ff}" format.name$ duplicate$ empty$ 'skip$
- { tie.or.space.prefix bib.fname.font swap$ * }
- if$
- s nameptr
- "{vv~}{ll}" format.name$ bib.name.font *
- s nameptr
- "{jj}" format.name$ duplicate$ empty$ 'skip$
- { bib.fname.font ", " swap$ * }
- if$
- *
- bibinfo bibinfo.check
- type$ "presentation" =
- { check.speaker }
- 'skip$
- if$
- 't :=
- nameptr #1 >
- {
- namesleft #1 >
- {
- ", " *
- t *
- }{
- s nameptr "{ll}" format.name$ duplicate$ "others" =
- { 't := }
- { pop$ }
- if$
- numnames #2 >
- {
- "," *
- }
- 'skip$
- if$
- t "others" =
- {
- " " * bbl.etal
- emphasize
- *
- }{
- bbl.and
- space.word *
- t *
- }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
- } if$
-}
-
-FUNCTION {format.names.ed}
-{
- format.names
-}
-
-FUNCTION {format.authors}
-{ author "author" format.names
- duplicate$ empty$ 'skip$
- { collaboration "collaboration" bibinfo.check
- duplicate$ empty$ 'skip$
- { " (" swap$ * ")" * }
- if$
- *
- }
- if$
- "author" 'bibfield :=
-}
-
-FUNCTION {get.bbl.editor}
-{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$
-}
-
-FUNCTION {format.editors}
-{ editor "editor" format.names duplicate$ empty$ 'skip$
- {
- "," *
- word.space *
- get.bbl.editor
- *
- }
- if$
-}
-
-FUNCTION {format.isbn}
-{
- isbn "isbn" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- new.block.comma
- "ISBN " swap$ *
- }
- if$
-}
-
-FUNCTION {format.issn}
-{ issn "issn" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- new.block.comma
- "ISSN " swap$ *
- }
- if$
-}
-
-FUNCTION {doi.base}
-{
- "http://dx.doi.org/"
-}
-
-FUNCTION {doi.command}
-{
- "\doi"
-}
-
-FUNCTION {doi.command.href}
-{
- "\Doi"
-}
-
-FUNCTION {format.doi}
-{ doi "doi" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- new.block.comma
- doi.command "{" * swap$ * "}" *
- }
- if$
-}
-
-FUNCTION {add.doi}
-{
- duplicate$ empty$ 'skip$
- {
- doi duplicate$ empty$ 'pop$
- {
- "{" swap$ * "}" *
- swap$
- "{" swap$ * "}" *
- *
- doi.command.href swap$ *
- }
- if$
- }
- if$
-}
-
-FUNCTION {select.language}
-{ duplicate$ empty$
- 'pop$
- { language empty$
- 'skip$
- { "{\selectlanguage {" language * "}" * swap$ * "}" * }
- if$
- }
- if$
-}
-
-FUNCTION {format.note}
-{
- note empty$
- { "" }
- { note #1 #1 substring$
- duplicate$ "{" =
- 'skip$
- {
- output.state after.word = output.state after.punctuation = or
- { "l" }
- { "u" }
- if$ change.case$
- }
- if$
- note #2 global.max$ substring$ * "note" bibinfo.check
- }
- if$
-}
-
-FUNCTION {bbl.enquote}
-{
- "\enquote"
-}
-
-FUNCTION {string.enquote}
-{
- punctuation.no 'punctuation.state :=
- non.stop {
- block.punctuation
- } { "." } if$
- swap$ pop$
- *
- bbl.enquote "{" * swap$ * "}" *
- word.space *
-}
-
-FUNCTION {format.title}
-{ title
- duplicate$ empty$ 'skip$ { "t" change.case$ } if$
- duplicate$ "title" bibinfo.check swap$
- duplicate$ empty$ 'pop$
- {
- punctuation.yes 'punctuation.state :=
- string.enquote
- select.language
- }
- if$
-}
-
-FUNCTION {end.quote.title}
-{ title empty$
- 'skip$
- { before.all 'output.state := }
- if$
-}
-
-FUNCTION {year.bibitem}
-{
- year duplicate$ empty$
- { pop$ ""
- "????" *
- }{
- skip$
- } if$
-}
-
-FUNCTION {output.bibitem}
-{
- newline$
- ""
- "{" * cite$ * "}%" *
- "\bibitem"
- swap$ *
- write$ newline$
- " "
- duplicate$ bbl.open * write$ newline$
- before.all 'output.state :=
- punctuation.yes 'punctuation.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 {word.in}
-{
- bbl.in
- word.space *
-}
-
-FUNCTION {date.encapsulate}
-{
- duplicate$ empty$
- 'skip$
- {
- before.all 'output.state :=
- " (" swap$ * ")" *
- }
- if$
-}
-
-FUNCTION {format.date}
-{
- month "month" bibinfo.check
- duplicate$ empty$
- year "year" bibinfo.check duplicate$ empty$
- { swap$ 'skip$
- { "there's a month but no year in " cite$ * warning$ }
- if$
- *
- }{
- swap$ 'skip$
- {
- swap$
- word.space * swap$
- }
- if$
- *
- }
- if$
- date.encapsulate
-}
-
-FUNCTION {format.date.output.check}
-{
- format.date
- "year" output.check
-}
-
-FUNCTION {format.date.output}
-{
- format.date output
-}
-
-FUNCTION {format.btitle}
-{
- booktitle duplicate$ empty$ { pop$
- title
- } 'skip$ if$
- "title" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- emphasize
- select.language
- }
- if$
-}
-
-FUNCTION {either.or.check}
-{ empty$
- 'pop$
- { "can't use both " swap$ * " fields in " * cite$ * warning$ }
- if$
-}
-
-FUNCTION {editor.check.book}
-{ editor empty$ 'skip$
- {
- "can't use both author and editor fields in " cite$ *
- ": try using @inbook instead" *
- warning$
- }
- if$
-}
-
-FUNCTION {format.bvolume}
-{ volume duplicate$ empty$
- { pop$ "" }
- {
- "volume and number" number either.or.check
- bbl.volume
- capitalize
- swap$
- tie.or.space.prefix "volume" bibinfo.check * *
- series "series" bibinfo.check duplicate$ empty$ 'pop$
- {
- ", "
- * swap$ *
- }
- if$
- }
- if$
-}
-
-FUNCTION {format.number}
-{
- bbl.number
- output.state after.word = output.state after.punctuation = or
- #1 or
- #0 and
- 'skip$
- { capitalize }
- if$
- number tie.or.space.prefix "number" bibinfo.check * *
-}
-
-FUNCTION {format.number.series}
-{ volume empty$
- { number empty$
- { series field.or.null }
- {
- series empty$
- {
- number "number" bibinfo.check
- }{
- format.number
- series "series" bibinfo.check
- word.space * swap$ *
- }
- 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 {convert.edition}
-{ extract.num "l" change.case$ 's :=
- s "first" = s "1" = or
- { bbl.first 't := }
- { s "second" = s "2" = or
- { bbl.second 't := }
- { s "third" = s "3" = or
- { bbl.third 't := }
- { s "fourth" = s "4" = or
- { bbl.fourth 't := }
- { s "fifth" = s "5" = or
- { bbl.fifth 't := }
- { s #1 #1 substring$ is.num
- { s
- eng.ord
- 't := }
- { edition 't := }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- t
-}
-
-FUNCTION {format.edition}
-{ edition duplicate$ empty$ 'skip$
- {
- convert.edition
- output.state after.word = output.state after.punctuation = or
- { "l" }
- { "t" }
- if$ change.case$
- "edition" bibinfo.check
- word.space * 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 duplicate$ empty$
- 'skip$
- { duplicate$ multi.page.check
- {
- bbl.pages swap$
- n.dashify
- }{
- bbl.page swap$
- }
- if$
- tie.or.space.prefix
- "pages" bibinfo.check
- * *
- }
- if$
-}
-
-FUNCTION {format.book.pages}
-{
- pages duplicate$ empty$ 'skip$
- {
- "pages" bibinfo.check word.space bbl.pages * *
- }
- if$
-}
-
-FUNCTION {volnum.punct}
-{
- ","
- word.space *
-}
-
-FUNCTION {format.journal.pages}
-{ pages duplicate$ empty$ 'pop$
- { swap$ duplicate$ empty$
- { pop$ pop$ format.pages }
- { volnum.punct *
- swap$
- n.dashify
- "pages" bibinfo.check
- *
- }
- if$
- }
- if$
-}
-
-FUNCTION {format.journal.eid}
-{ eid "eid" bibinfo.check
- duplicate$ empty$ 'pop$
- { swap$ duplicate$ empty$ 'skip$
- { volnum.punct * }
- if$
- swap$ *
- }
- if$
-}
-
-FUNCTION {eid.or.pages}
-{
- eid empty$
- { format.journal.pages }
- { format.journal.eid }
- if$
-}
-
-FUNCTION {format.ser.vol.num}
-{
- series "series" bibinfo.check output
- after.punctuation 'output.state :=
- volume field.or.null
- duplicate$ empty$ 'skip$
- {
- "volume" bibinfo.check
- }
- if$
- bolden
-}
-
-FUNCTION {format.chapter.pages}
-{ chapter empty$
- {
- format.pages
- }
- { type empty$
- {
- bbl.chapter
- capitalize
- }{
- type
- capitalize
- "type" bibinfo.check
- }
- if$
- chapter tie.or.space.prefix
- "chapter" bibinfo.check
- * *
- pages empty$
- 'skip$
- { ", " * format.pages * }
- if$
- }
- if$
-}
-
-FUNCTION {format.booktitle}
-{
- booktitle duplicate$ "booktitle" bibinfo.check swap$
- duplicate$ empty$ 'pop$
- {
- punctuation.yes 'punctuation.state :=
- pop$ emphasize
- select.language
- }
- if$
-}
-
-FUNCTION {format.editor.in}
-{
- editor "editor" format.names.ed duplicate$ empty$ 'skip$
- {
- bbl.edby
- word.space * swap$ *
- }
- if$
-}
-
-FUNCTION {output.article.booktitle}
-{
- format.booktitle
- "booktitle" 'bibfield :=
- output
- bookaddress "address" bibinfo.check duplicate$ empty$ 'pop$
- {
- "address" 'bibfield :=
- output.nonnull after.punctuation 'output.state :=
- }
- if$
-}
-
-FUNCTION {format.in.ed.booktitle}
-{
- format.booktitle duplicate$ empty$ 'pop$
- {
- add.doi
- word.in swap$ * output.nonnull
- bookaddress "address" bibinfo.check output
- format.number.series "series and number" bibinfo.check output
- format.bvolume output
- format.editor.in "editor" bibinfo.check output
- }
- if$
-}
-
-FUNCTION {format.in.ed.booktitle.inbook}
-{
- format.booktitle duplicate$ empty$ 'pop$
- {
- add.doi
- word.in swap$ * output.nonnull
- bookaddress "address" bibinfo.check output
- format.number.series "series and number" bibinfo.check output
- format.bvolume output
- author empty$ 'skip$
- { format.editor.in "editor" bibinfo.check output }
- if$
- }
- if$
-}
-
-FUNCTION {empty.misc.check}
-{ author empty$ title empty$ howpublished empty$
- month empty$ year empty$ note empty$
- and and and and and
- { "all relevant fields are empty in " cite$ * warning$ }
- 'skip$
- if$
-}
-
-FUNCTION {format.thesis.type}
-{ type duplicate$ empty$
- 'pop$
- { swap$ pop$
- "t" change.case$ "type" bibinfo.check
- }
- if$
-}
-
-FUNCTION {format.tr.number}
-{ number "number" bibinfo.check
- type duplicate$ empty$
- { pop$ bbl.techrep }
- 'skip$
- if$
- "type" bibinfo.check
- swap$ duplicate$ empty$
- { pop$ "t" change.case$ }
- { tie.or.space.prefix * * }
- if$
-}
-
-FUNCTION {format.article.crossref}
-{
- key duplicate$ empty$
- { pop$
- journal duplicate$ empty$
- { "need key or journal for " cite$ * " to crossref " * crossref * warning$ }
- { "journal" bibinfo.check emphasize word.in swap$ * }
- if$
- }
- { word.in swap$ * word.space *}
- if$
- " \cite{" * crossref * "}" *
-}
-
-FUNCTION {format.crossref.editor}
-{ editor #1 "{vv~}{ll}" format.name$
- bib.name.font
- "editor" bibinfo.check
- editor num.names$ duplicate$
- #2 >
- { pop$
- "editor" bibinfo.check
- word.space * bbl.etal
- emphasize
- *
- }
- { #2 <
- 'skip$
- { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- {
- "editor" bibinfo.check
- word.space * bbl.etal
- emphasize
- *
- }{
- bbl.and space.word
- * editor #2 "{vv~}{ll}" format.name$
- bib.name.font
- "editor" bibinfo.check
- *
- }
- if$
- }
- if$
- }
- if$
-}
-
-FUNCTION {format.book.crossref}
-{ volume duplicate$ empty$
- { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
- pop$ word.in
- }
- { bbl.volume
- swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
- }
- if$
- editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
- { series empty$
- { "need editor, key, or series for " cite$ * " to crossref " *
- crossref * warning$
- "" *
- }
- { series emphasize * }
- if$
- }
- { key * }
- if$
- }
- { format.crossref.editor * }
- if$
- " \cite{" * crossref * "}" *
-}
-
-FUNCTION {format.incoll.inproc.crossref}
-{
- editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
- { format.booktitle duplicate$ empty$
- { "need editor, key, or booktitle for " cite$ * " to crossref " *
- crossref * warning$
- }
- { word.in swap$ * }
- if$
- }
- { word.in key * word.space *}
- if$
- }
- { word.in format.crossref.editor * word.space *}
- if$
- " \cite{" * crossref * "}" *
-}
-
-FUNCTION {format.org.or.pub}
-{ 't :=
- ""
- address "address" bibinfo.check
- duplicate$ empty$
- { pop$ t }
- { t duplicate$ empty$
- { pop$ }
- {
- "," word.space *
- * swap$ *
- }
- if$
- }
- if$
- *
- year duplicate$ empty$
- {
- "empty year in " cite$ *
- warning$
- pop$ ""
- }
- 'skip$
- if$
- duplicate$ empty$
- { pop$ }
- {
- "year" bibinfo.check
- swap$
- duplicate$ empty$
- { pop$ }
- {
- "," *
- word.space *
- swap$ *
- }
- if$
- }
- if$
- duplicate$ empty$ 'skip$ {
- ""
- "(" * swap$ * ")" *
- after.punctuation 'output.state :=
- punctuation.space 'punctuation.state :=
- } if$
-}
-
-FUNCTION {format.publisher.address}
-{ publisher "publisher" bibinfo.warn format.org.or.pub
-}
-
-FUNCTION {format.organization.address}
-{ organization "organization" bibinfo.check format.org.or.pub
-}
-
-FUNCTION {format.organization.publisher.address}
-{
- publisher empty$
- { format.organization.address }
- { organization "organization" bibinfo.check output
- format.publisher.address
- }
- if$
-}
-
-FUNCTION {format.school.address.output}
-{
- school "school" bibinfo.warn
- address "address" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- swap$
- duplicate$ empty$ 'skip$
- {
- ", " *
- }
- if$
- swap$
- }
- if$
- *
- output
-}
-
-FUNCTION {article}
-{ output.bibitem
- format.authors
- booktitle empty$ {
- "author" output.check
- }{ output } if$
- new.block.comma
- format.title
- "title" 'bibfield :=
- output
- new.block.comma
- output.article.booktitle
- crossref missing$
- {
- journal
- "journal" bibinfo.warn
- pages empty$ 'skip$ { add.doi } if$
- "journal" 'bibfield :=
- output
- format.ser.vol.num
- output
- eid.or.pages
- format.date.output.check
- }{
- format.article.crossref output.nonnull
- format.pages output
- }
- if$
- format.issn output
- pages empty$ {
- format.doi output
- } 'skip$ if$
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- format.translation output
- fin.entry
-}
-
-FUNCTION {book}
-{ output.bibitem
- author empty$
- {
- }{
- format.authors output.nonnull
- crossref missing$ { editor.check.book } 'skip$ if$
- }
- if$
- new.block.comma
- format.btitle
- add.doi
- "title" output.check
- format.edition output
- author empty$
- {
- format.editor.in output
- }
- {
- }
- if$
- format.number.series output
- crossref missing$
- {
- format.bvolume output
- new.block.comma
- format.publisher.address output
- }{
- new.block.comma
- format.book.crossref output.nonnull
- format.date.output.check
- }
- if$
- format.isbn output
- format.chapter.pages
- output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {booklet}
-{ output.bibitem
- format.authors output
- new.block.comma
- format.title
- add.doi
- "title" output.check
- new.block.comma
- howpublished "howpublished" bibinfo.check output
- address "address" bibinfo.check output
- format.date.output
- format.isbn output
- format.book.pages output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {inbook}
-{ output.bibitem
- author empty$
- {
- format.editors "editor" output.check
- }{
- format.authors output.nonnull
- }
- if$
- new.block.comma
-
- format.title output
- new.block.comma
-
- crossref missing$
- {
- format.in.ed.booktitle.inbook
- format.publisher.address output
- format.chapter.pages
- "chapter and pages"
- output.check
- new.block.comma
- format.edition output
- new.block.comma
- }{
- format.chapter.pages
- "chapter and pages"
- output.check
- new.block.comma
- format.book.crossref output.nonnull
- format.date.output.check
- }
- if$
- crossref missing$
- { format.isbn output }
- 'skip$
- if$
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {incollection}
-{ output.bibitem
- format.authors "author" output.check
- new.block.comma
- format.title
- output
- new.block.comma
- crossref missing$
- {
- format.in.ed.booktitle
- format.publisher.address output
- format.edition output
- format.chapter.pages output
- format.isbn output
- }{
- format.incoll.inproc.crossref output.nonnull
- format.chapter.pages output
- }
- if$
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {inproceedings}
-{ output.bibitem
- format.authors "author" output.check
- new.block.comma
- format.title
- output
- new.block.comma
- crossref missing$
- {
- format.in.ed.booktitle
- format.organization.publisher.address output
- format.chapter.pages output
- format.isbn output
- format.issn output
- }{
- format.incoll.inproc.crossref output.nonnull
- format.chapter.pages output
- }
- if$
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {conference} { inproceedings }
-FUNCTION {manual}
-{ output.bibitem
- author empty$
- { organization "organization" bibinfo.check
- duplicate$ empty$ 'pop$
- { output
- address "address" bibinfo.check output
- }
- if$
- }{
- format.authors output.nonnull
- }
- if$
- new.block.comma
- format.btitle
- add.doi
- "title" output.check
- author empty$
- { organization empty$
- {
- address "address" bibinfo.check output
- }
- 'skip$
- if$
- }{
- organization "organization" bibinfo.check output
- address "address" bibinfo.check output
- }
- if$
- format.edition output
- format.date.output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {mastersthesis}
-{ output.bibitem
- format.authors "author" output.check
- new.block.comma
- format.btitle
- output
- new.block.comma
- bbl.mthesis
- format.thesis.type
- add.doi
- output.nonnull
- format.school.address.output
- format.date.output.check
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {misc}
-{ output.bibitem
- format.authors output
- format.title output
- howpublished "howpublished" bibinfo.check output
- format.date.output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
- empty.misc.check
-}
-
-FUNCTION {phdthesis}
-{ output.bibitem
- format.authors "author" output.check
- new.block.comma
- format.btitle
- output
- new.block.comma
- bbl.phdthesis
- format.thesis.type
- add.doi
- output.nonnull
- format.school.address.output
- format.date.output.check
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {presentation}
-{ output.bibitem
- format.authors output
- new.block.comma
- format.title output
- new.block.comma
- format.organization.address "organization and address" output.check
- month "month" output.check
- year "year" output.check
- new.block.comma
- new.sentence.comma
- format.note output
- new.sentence
- type missing$ 'skip$
- {"(" type capitalize * ")" * output}
- if$
- new.block.comma format.url output
- fin.entry
-}
-
-FUNCTION {proceedings}
-{ output.bibitem
- editor empty$
- { organization "organization" bibinfo.check output }
- { format.editors output.nonnull }
- if$
- new.block.comma
- format.btitle
- add.doi
- "title" output.check
- bookaddress "address" bibinfo.check output
- format.number.series output
- format.bvolume output
- editor empty$
- {
- publisher empty$
- {
- }{
- format.publisher.address output
- }
- if$
- }{
- format.organization.publisher.address output
- }
- if$
- format.isbn output
- format.issn output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {techreport}
-{ output.bibitem
- format.authors "author" output.check
- new.block.comma
- format.title
- add.doi
- "title" output.check
- new.block.comma
- format.tr.number
- output.nonnull
- institution "institution" bibinfo.warn
- format.org.or.pub output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {unpublished}
-{ output.bibitem
- format.authors "author" output.check
- new.block.comma
- format.title
- add.doi
- "title" output.check
- format.date.output
- new.block.comma
- new.sentence.comma
- format.note "note" output.check
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {default.type} { misc }
-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 {init.bib.eprint}
-{
- "\texttt{"
- pop$
- "\providecommand \url [0]{\begingroup\@sanitize \@url }%" write$ newline$
- "\providecommand \@url [1]{\endgroup\@href {#1}{" "}}%" bbl.url.prefix swap$ * * write$ newline$
- "\providecommand " " [0]{URL }%" bbl.url.prefix swap$ * * write$ newline$
- eprint.command "\providecommand " swap$ * "[0]{\href }%" * write$ newline$
-}
-
-FUNCTION {init.bib.doi}
-{
- "\@ifxundefined \urlstyle {%" write$ newline$
- " \providecommand \doi [1]{doi:\discretionary{}{}{}#1}%" write$ newline$
- "}{%" write$ newline$
- " \providecommand \doi [0]{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url }%"
- write$ newline$
- "}%" write$ newline$
- "\providecommand \doibase [0]{" doi.base * "}%" * write$ newline$
- doi.command.href "\providecommand " swap$ * "[1]{\href{\doibase#1}}%" * write$ newline$
-}
-
-FUNCTION {init.bib.hypertex}
-{
- "\providecommand\href[0]{\@sanitize\@href}%" write$ newline$
- "\providecommand\@href[1]{\endgroup\@@startlink{#1}\endgroup\@@href}%" write$ newline$
- "\providecommand\@@href[1]{#1\@@endlink}%" write$ newline$
- "\providecommand \@sanitize [0]{\begingroup\catcode`\&12\catcode`\#12\relax}%" write$ newline$
- "\@ifxundefined \pdfoutput {\@firstoftwo}{%" write$ newline$
- " \@ifnum{\z@=\pdfoutput}{\@firstoftwo}{\@secondoftwo}%" write$ newline$
- "}{%" write$ newline$
- " \providecommand\@@startlink[1]{\leavevmode\special{html:<a href=" quote$ * "#1" * quote$ * ">}}%" * write$ newline$
- " \providecommand\@@endlink[0]{\special{html:</a>}}%" write$ newline$
- "}{%" write$ newline$
- " \providecommand\@@startlink[1]{%" write$ newline$
- " \leavevmode" write$ newline$
- " \pdfstartlink" write$ newline$
- " attr{/Border[0 0 1 ]/H/I/C[0 1 1]}%" write$ newline$
- " user{/Subtype/Link/A<</Type/Action/S/URI/URI(#1)>>}%" write$ newline$
- " \relax" write$ newline$
- " }%" write$ newline$
- " \providecommand\@@endlink[0]{\pdfendlink}%" write$ newline$
- "}%" write$ newline$
-}
-
-FUNCTION {init.bib.namefont}
-{
- "\providecommand \bibnamefont [1]{#1}%" write$ newline$
- "\providecommand \bibfnamefont [1]{#1}%" write$ newline$
- "\providecommand \citenamefont [1]{#1}%" write$ newline$
-}
-
-FUNCTION {init.bib.quote}
-{
- "\providecommand " bbl.enquote * " [1]{" *
- "``" "''"
- "#1" swap$ "}%" * * * * write$ newline$
-}
-
-FUNCTION {init.bib.bibinfo}
-{
- bibinfo.command "\providecommand " swap$ * " [0]{\@secondoftwo}%" * write$ newline$
- bibfield.command "\providecommand " swap$ * " [0]{\@secondoftwo}%" * write$ newline$
-}
-
-FUNCTION {init.bib.lang}
-{
- "\providecommand \selectlanguage [0]{\@gobble}%" write$ newline$
-}
-
-FUNCTION {init.bib.endbibitem}
-{
- "\providecommand " bbl.open * "[0]{}%" * write$ newline$
- "\providecommand \bibitemStop [0]{}%" write$ newline$
- "\providecommand \bibitemNoStop [0]{.\EOS\space}%" write$ newline$
- "\providecommand \EOS [0]{\spacefactor3000\relax}%" write$ newline$
-}
-
-FUNCTION {init.bib.translation}
-{
- "\providecommand \translation [1]{[#1]}%" write$ newline$
-}
-
-FUNCTION {warn.bib}
-{
-}
-
-FUNCTION {init.bib}
-{
- warn.bib
- "\makeatletter" write$ newline$
- "\providecommand \@ifxundefined [1]{%" write$ newline$
- " \ifx #1\undefined \expandafter \@firstoftwo" write$ newline$
- " \else \expandafter \@secondoftwo" write$ newline$
- "\fi" write$ newline$
- "}%" write$ newline$
- "\providecommand \@ifnum [1]{%" write$ newline$
- " \ifnum #1\expandafter \@firstoftwo" write$ newline$
- " \else \expandafter \@secondoftwo" write$ newline$
- "\fi" write$ newline$
- "}%" write$ newline$
- init.bib.quote
- init.bib.namefont
- init.bib.hypertex
- init.bib.eprint
- init.bib.doi
- init.bib.lang
- init.bib.bibinfo
- init.bib.translation
- init.bib.endbibitem
- "\providecommand " bbl.shut * " [1]{\csname bibitem#1\endcsname}%" * write$ newline$
- "%</preamble>" write$
-}
-
-FUNCTION {begin.bib}
-{
- id.bst duplicate$ top$ "%" swap$ * write$ newline$
- preamble$ empty$
- 'skip$
- { preamble$ write$ newline$ }
- if$
- "\begin{thebibliography}{"
- longest.label
- * "}%" *
- write$ newline$
- init.bib
-}
-
-EXECUTE {begin.bib}
-EXECUTE {init.state.consts}
-ITERATE {call.type$}
-FUNCTION {end.bib}
-{ newline$
- "\end{thebibliography}%"
- write$ newline$
-}
-
-EXECUTE {end.bib}
-%% End of customized bst file
-%%
-%% End of file `aipnum4-1long.bst'.
diff --git a/Master/texmf-dist/bibtex/bst/revtex/apsrev4-1.bst b/Master/texmf-dist/bibtex/bst/revtex/apsrev4-1.bst
index 001f5a5ba63..adb16c4493b 100644
--- a/Master/texmf-dist/bibtex/bst/revtex/apsrev4-1.bst
+++ b/Master/texmf-dist/bibtex/bst/revtex/apsrev4-1.bst
@@ -4,13 +4,13 @@
%%
%% The original source files were:
%%
-%% merlin.mbs (with options: `head,lang,annote,pres,pres-bf,seq-no,vonx,nm-init,ed-au,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% physjour.mbs (with options: `lang,annote,pres,pres-bf,seq-no,vonx,nm-init,ed-au,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% geojour.mbs (with options: `lang,annote,pres,pres-bf,seq-no,vonx,nm-init,ed-au,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% photjour.mbs (with options: `lang,annote,pres,pres-bf,seq-no,vonx,nm-init,ed-au,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% merlin.mbs (with options: `tail,lang,annote,pres,pres-bf,seq-no,vonx,nm-init,ed-au,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,yr-par,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
+%% merlin.mbs (with options: `head,ay,nat,lang,pres,pres-bf,seq-no,vonx,nm-init,ed-au,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,blkyear,yr-par,dtrev,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
+%% physjour.mbs (with options: `ay,nat,lang,pres,pres-bf,seq-no,vonx,nm-init,ed-au,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,blkyear,yr-par,dtrev,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
+%% geojour.mbs (with options: `ay,nat,lang,pres,pres-bf,seq-no,vonx,nm-init,ed-au,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,blkyear,yr-par,dtrev,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
+%% photjour.mbs (with options: `ay,nat,lang,pres,pres-bf,seq-no,vonx,nm-init,ed-au,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,blkyear,yr-par,dtrev,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
+%% merlin.mbs (with options: `tail,ay,nat,lang,pres,pres-bf,seq-no,vonx,nm-init,ed-au,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,blkyear,yr-par,dtrev,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-x,volp-com,jpg-1,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
%% ----------------------------------------
-%% *** REVTeX-compatible Phys Rev 2009-10-08 ***
+%% *** REVTeX-compatible Phys Rev 2010-02-12 ***
%%
%% Copyright 1994-2007 Patrick W Daly
% ===============================================================
@@ -24,27 +24,40 @@
% version 1 of the License, or any later version.
% ===============================================================
% Name and version information of the main mbs file:
- % \ProvidesFile{merlin.mbs}[2008/01/17 4.21 (PWD, AO, DPC)]
% For use with BibTeX version 0.99a or later
%-------------------------------------------------------------------
% This bibliography style file is intended for texts in ENGLISH
- % This is a numerical citation style, and as such is standard LaTeX.
- % It requires no extra package to interface to the main text.
+ % This is an author-year citation style bibliography. As such, it is
+ % non-standard LaTeX, and requires a special package file to function properly.
+ % Such a package is natbib.sty by Patrick W. Daly
% The form of the \bibitem entries is
- % \bibitem{key}...
- % Usage of \cite is as follows:
- % \cite{key} ==>> [#]
- % \cite[chap. 2]{key} ==>> [#, chap. 2]
- % where # is a number determined by the ordering in the reference list.
- % The order in the reference list is that by which the works were originally
- % cited in the text, or that in the database.
+ % \bibitem[Jones et al.(1990)]{key}...
+ % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
+ % The essential feature is that the label (the part in brackets) consists
+ % of the author names, as they should appear in the citation, with the year
+ % in parentheses following. There must be no space before the opening
+ % parenthesis!
+ % With natbib v5.3, a full list of authors may also follow the year.
+ % In natbib.sty, it is possible to define the type of enclosures that is
+ % really wanted (brackets or parentheses), but in either case, there must
+ % be parentheses in the label.
+ % The \cite command functions as follows:
+ % \citet{key} ==>> Jones et al. (1990)
+ % \citet*{key} ==>> Jones, Baker, and Smith (1990)
+ % \citep{key} ==>> (Jones et al., 1990)
+ % \citep*{key} ==>> (Jones, Baker, and Smith, 1990)
+ % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)
+ % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990)
+ % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32)
+ % \citeauthor{key} ==>> Jones et al.
+ % \citeauthor*{key} ==>> Jones, Baker, and Smith
+ % \citeyear{key} ==>> 1990
%---------------------------------------------------------------------
-FUNCTION {id.bst} {"Merlin.mbs v4.21 2009-07-09. "}
+FUNCTION {id.bst} {"merlin.mbs 2010-03-15 4.21a (PWD, AO, DPC)"}
ENTRY
{
address
- annote
archive
archivePrefix
author
@@ -83,6 +96,8 @@ ENTRY
}{
}{
label
+ extra.label sort.label
+ short.list
}
INTEGERS
@@ -98,6 +113,7 @@ INTEGERS
}
STRINGS { bibfield output.bibfield }
+
FUNCTION {not}
{ { #0 }
{ #1 }
@@ -122,6 +138,399 @@ FUNCTION {non.stop}
#-1 #1 substring$ "." =
}
+INTEGERS { arith.mulitplier arith.multiplicand }
+
+FUNCTION {multiply}
+{
+ 'arith.multiplicand :=
+ 'arith.mulitplier :=
+ #0
+ { arith.mulitplier #0 > }
+ { arith.multiplicand +
+ arith.mulitplier #1 - 'arith.mulitplier :=
+ }
+ while$
+}
+
+FUNCTION {chr.to.hex}
+{
+ chr.to.int$
+ duplicate$ "0" chr.to.int$ -
+ duplicate$ duplicate$ #0 < swap$ #9 > or not
+ { swap$ pop$ }
+ { pop$
+ duplicate$ "A" chr.to.int$ -
+ duplicate$ duplicate$ #0 < swap$ #5 > or not
+ { swap$ pop$ #10 + }
+ { pop$
+ duplicate$ "a" chr.to.int$ -
+ duplicate$ duplicate$ #0 < swap$ #5 > or not
+ { swap$ pop$ #10 + }
+ { pop$
+ pop$ #-1
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+INTEGERS { arith.accumulator }
+
+FUNCTION {str.to.hex}
+{ #0 'arith.accumulator :=
+ { duplicate$ empty$ not }
+ { duplicate$ #1 #1 substring$ chr.to.hex
+ duplicate$ #0 <
+ { pop$ pop$ ""
+ }
+ { arith.accumulator #16 multiply + 'arith.accumulator :=
+ #2 global.max$ substring$
+ }
+ if$
+ }
+ while$
+ pop$ arith.accumulator
+}
+
+FUNCTION {diagn.cmntlog}
+{
+ duplicate$ top$ "%" swap$ * write$ newline$
+}
+
+INTEGERS { control.key control.author control.editor control.title control.pages control.eprint control.year }
+
+INTEGERS { control.author.jnrlst control.author.dotless control.author.nospace control.author.initials control.author.nocomma control.author.first control.author.reversed }
+
+FUNCTION { control.init }
+{
+ #0
+ 'control.key :=
+ #0
+ #8 +
+ #64 +
+ 'control.author :=
+ #1
+ 'control.author.jnrlst :=
+ #0
+ 'control.author.dotless :=
+ #0
+ 'control.author.nospace :=
+ #1
+ 'control.author.initials :=
+ #0
+ 'control.author.nocomma :=
+ #0
+ 'control.author.first :=
+ #0
+ 'control.author.reversed :=
+ #1
+ 'control.editor :=
+ #-1
+ 'control.title :=
+ #0
+ 'control.pages :=
+ #0
+ 'control.eprint :=
+ #1
+ 'control.year :=
+}
+
+FUNCTION {warning.dependency}
+{
+ " (dependency: " * swap$ * ") set " * swap$ int.to.str$ * warning$
+}
+
+FUNCTION {control.check}
+{
+ control.editor
+ {
+ "editor formatted same as author"
+ control.author.reversed {
+ duplicate$ #0 swap$ "reversed" warning.dependency
+ #0 'control.author.reversed :=
+ } 'skip$ if$
+ control.author.first {
+ duplicate$ #0 swap$ "first" warning.dependency
+ #0 'control.author.first :=
+ } 'skip$ if$
+ control.author.nocomma {
+ duplicate$ #0 swap$ "nocomma" warning.dependency
+ #0 'control.author.nocomma :=
+ } 'skip$ if$
+ pop$
+ } 'skip$ if$
+ control.author.reversed 'skip$
+ {
+ "not reversed"
+ control.author.nospace {
+ duplicate$ #0 swap$ "nospace" warning.dependency
+ #0 'control.author.nospace :=
+ } 'skip$ if$
+ control.author.jnrlst 'skip$ {
+ duplicate$ #1 swap$ "jnrlst" warning.dependency
+ #1 'control.author.jnrlst :=
+ } if$
+ control.author.initials {
+ duplicate$ ", initials" *
+ control.author.dotless {
+ duplicate$ #0 swap$ "dotless" warning.dependency
+ #0 'control.author.dotless :=
+ } 'skip$ if$
+ pop$
+ } 'skip$ if$
+ pop$
+ }
+ if$
+ control.author.initials 'skip$ {
+ "not initials"
+ control.author.nocomma {
+ duplicate$ #0 swap$ "nocomma" warning.dependency
+ #0 'control.author.nocomma :=
+ } 'skip$ if$
+ control.author.nospace {
+ duplicate$ #0 swap$ "nospace" warning.dependency
+ #0 'control.author.nospace :=
+ } 'skip$ if$
+ control.author.dotless 'skip$ {
+ duplicate$ #1 swap$ "dotless" warning.dependency
+ #1 'control.author.dotless :=
+ } if$
+ pop$
+ } if$
+}
+
+FUNCTION {control.parse}
+{
+ duplicate$ duplicate$ missing$
+ {
+ pop$ pop$ pop$
+ }
+ { empty$
+ {
+ pop$ #-1
+ }{
+ str.to.hex
+ }
+ if$
+ swap$ :=
+ }
+ if$
+}
+
+FUNCTION {control.dump}
+{
+ duplicate$ missing$ { pop$ "N/A" } 'skip$ if$
+ "{" swap$ * "}, " *
+ *
+}
+
+INTEGERS { decode.threshold }
+
+FUNCTION {control.decode}
+{
+ - duplicate$
+ #0 <
+ {
+ skip$ pop$ swap$ #0
+ }
+ {
+ swap$ pop$ swap$ #1
+ }
+ if$
+ swap$ :=
+}
+
+FUNCTION {control.author.decode}
+{
+ control.author
+ duplicate$ duplicate$ #0 < swap$ #128 < not or
+ {
+ int.to.str$ "(" swap$ * ")" *
+ "Control cannot interpret author " swap$ *
+ warning$
+ }{
+ 'control.author.jnrlst swap$ duplicate$ #64 control.decode
+ 'control.author.dotless swap$ duplicate$ #32 control.decode
+ 'control.author.nospace swap$ duplicate$ #16 control.decode
+ 'control.author.initials swap$ duplicate$ #8 control.decode
+ 'control.author.nocomma swap$ duplicate$ #4 control.decode
+ 'control.author.first swap$ duplicate$ #2 control.decode
+ 'control.author.reversed swap$ duplicate$ #1 control.decode
+ duplicate$ #0 =
+ 'skip$
+ {
+ "Control: residue of author"
+ "(" swap$ * ")" * *
+ warning$
+ }
+ if$
+ pop$
+ }
+ if$
+}
+
+FUNCTION {control.setup}
+{
+ type$ cite$ "{" swap$ * "}, " * *
+ "control.key" key control.dump *
+ "control.author" author control.dump *
+ "control.editor" editor control.dump *
+ "control.title" title control.dump *
+ "control.pages" pages control.dump *
+ "control.year" year control.dump *
+ "control.eprint" eprint control.dump *
+ top$
+ 'control.key key control.parse
+ 'control.author author control.parse
+ 'control.editor editor control.parse
+ 'control.title title control.parse
+ 'control.pages pages control.parse
+ 'control.year year control.parse
+ 'control.eprint eprint control.parse
+ control.author.decode
+}
+
+FUNCTION {control.pass}
+{ type$ "control" = 'control.setup 'skip$ if$
+}
+
+FUNCTION {control.presort}
+{
+}
+
+FUNCTION {control.forward}
+{
+}
+
+FUNCTION {control.reverse}
+{
+}
+
+FUNCTION {control.sort}
+{
+}
+
+FUNCTION {control.longest.label}
+{
+}
+
+FUNCTION {control.key.bib}
+{
+ "Control: key "
+ control.key
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ pop$ *
+ diagn.cmntlog
+}
+
+FUNCTION {control.author.bib}
+{
+ "Control: author "
+ control.author "(" swap$ int.to.str$ * ")" * *
+ control.author.reversed { " reversed" * }{} if$
+ control.author.first { " first" * }{} if$
+ control.author.nocomma { " nocomma" * }{} if$
+ control.author.initials { " initials" * }{} if$
+ control.author.nospace { " nospace" * }{} if$
+ control.author.dotless { " dotless" * }{} if$
+ control.author.jnrlst { " jnrlst" * }{} if$
+ diagn.cmntlog
+}
+
+FUNCTION {control.editor.bib}
+{
+ "Control: editor formatted "
+ control.editor
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ duplicate$ #0 < {
+ pop$
+ "disabled!"
+ } {
+ #0 > {
+ "identically to author"
+ } {
+ "differently from author"
+ } if$
+ } if$ * *
+ diagn.cmntlog
+}
+
+FUNCTION {control.title.bib}
+{
+ "Control: production of article title "
+ control.title
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ duplicate$ #0 < {
+ pop$
+ "disabled"
+ } {
+ #0 > {
+ "required"
+ } {
+ "allowed"
+ } if$
+ } if$ * *
+ diagn.cmntlog
+}
+
+FUNCTION {control.pages.bib}
+{
+ "Control: page "
+ control.pages
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ duplicate$ #0 < {
+ pop$
+ "none"
+ } {
+ #0 > {
+ "range"
+ } {
+ "single"
+ } if$
+ } if$ * *
+ diagn.cmntlog
+}
+
+FUNCTION {control.year.bib}
+{
+ "Control: year "
+ control.year
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ duplicate$ #0 < {
+ pop$
+ "disabled!"
+ } {
+ #0 > {
+ "truncated"
+ } {
+ "verbatim"
+ } if$
+ } if$ * *
+ diagn.cmntlog
+}
+
+FUNCTION {control.eprint.bib}
+{
+ "Control: production of eprint "
+ control.eprint
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ #0 < { "disabled" } { "enabled" } if$ * *
+ diagn.cmntlog
+}
+
+FUNCTION {control.bib}
+{
+ control.key.bib
+ control.author.bib
+ control.editor.bib
+ control.title.bib
+ control.pages.bib
+ control.year.bib
+ control.eprint.bib
+}
+
FUNCTION {init.state.consts}
{
#0 'before.all :=
@@ -166,7 +575,7 @@ FUNCTION {show.stackstring.two}{
duplicate$ "2(" swap$ * ")" * top$
}
-FUNCTION {bibfield.command}{ "\bibfield"}
+FUNCTION {bibfield.command}{ "\bibfield "}
FUNCTION {output.nonnull}
{
@@ -196,9 +605,7 @@ FUNCTION {output.nonnull}
output.bibfield duplicate$ empty$ 'pop$
{
bibfield.command
- "{" * swap$ * "}{%" * write$ newline$
- " " swap$ * "}%" * write$ newline$
- " "
+ " {" * swap$ * "} {" * swap$ * "}" *
}
if$
write$
@@ -229,6 +636,12 @@ FUNCTION {output}
if$
}
+FUNCTION {output.nopunct}
+{
+ punctuation.no 'punctuation.state :=
+ output.nonnull
+}
+
FUNCTION {output.check}
{ swap$
duplicate$ empty$
@@ -237,9 +650,9 @@ FUNCTION {output.check}
if$
}
-FUNCTION {bbl.open} { "\BibitemOpen" }
+FUNCTION {bbl.open} { "\BibitemOpen " }
-FUNCTION {bbl.shut} { "\BibitemShut" }
+FUNCTION {bbl.shut} { "\BibitemShut " }
FUNCTION {bibitem.shut.stop} { bbl.shut "{Stop}%" * }
@@ -276,18 +689,7 @@ FUNCTION {output.SLACcitation}
FUNCTION {fin.entry}
{
- non.stop swap$
- "%" * write$ newline$
- { "{NoStop}" }
- { "{Stop}" }
- if$
- annote missing$
- {
- " \bibAnnoteFile" swap$ * "{" * cite$ * "}%" *
- }{
- " \bibAnnote" swap$ * "{" * cite$ * "}{" * annote * add.period$ "}%" *
- }
- if$
+ bibitem.shut
write$
output.SLACcitation
}
@@ -327,7 +729,7 @@ FUNCTION {add.blank}
FUNCTION {no.blank.or.punct}
{
- "\hspace{0pt}" *
+ "\hspace {0pt}" *
before.all 'output.state :=
}
@@ -337,11 +739,21 @@ FUNCTION {date.block}
skip$
}
-FUNCTION {new.block.checka}
-{ empty$
- 'skip$
- 'new.block
- if$
+STRINGS {z}
+FUNCTION {remove.dots}
+{
+ control.author.dotless {
+ 'z :=
+ ""
+ { z empty$ not }
+ { z #1 #1 substring$
+ z #2 global.max$ substring$ 'z :=
+ duplicate$ "." = 'pop$
+ { * }
+ if$
+ }
+ while$
+ } 'skip$ if$
}
FUNCTION {new.block.checkb}
@@ -353,22 +765,6 @@ FUNCTION {new.block.checkb}
if$
}
-FUNCTION {new.sentence.checka}
-{ empty$
- 'skip$
- 'new.sentence
- if$
-}
-
-FUNCTION {new.sentence.checkb}
-{ empty$
- swap$ empty$
- and
- 'skip$
- 'new.sentence
- if$
-}
-
FUNCTION {field.or.null}
{ duplicate$ empty$
{ pop$ "" }
@@ -381,7 +777,7 @@ FUNCTION {emphasize}
duplicate$ empty$
{ pop$ "" }
{
- "\emph{" swap$ * "}" *
+ "\emph {" swap$ * "}" *
}
if$
}
@@ -389,7 +785,7 @@ FUNCTION {emphasize}
FUNCTION {bolden}
{ duplicate$ empty$
{ pop$ "" }
- { "\textbf{" swap$ * "}" * }
+ { "\textbf {" swap$ * "}" * }
if$
}
@@ -398,7 +794,7 @@ FUNCTION {bib.name.font}
duplicate$ empty$
{ pop$ "" }
{
- "\bibnamefont{" swap$ * "}" *
+ "\bibnamefont {" swap$ * "}" *
}
if$
}
@@ -408,7 +804,7 @@ FUNCTION {bib.fname.font}
duplicate$ empty$
{ pop$ "" }
{
- "\bibfnamefont{" swap$ * "}" *
+ "\bibfnamefont {" swap$ * "}" *
}
if$
}
@@ -418,7 +814,7 @@ FUNCTION {cite.name.font}
duplicate$ empty$
{ pop$ "" }
{
- "\citenamefont{" swap$ * "}" *
+ "\citenamefont {" swap$ * "}" *
}
if$
}
@@ -442,6 +838,7 @@ FUNCTION {space.word}
% Here are the language-specific definitions for explicit words.
% Each function has a name bbl.xxx where xxx is the English word.
% The language selected here is ENGLISH
+
FUNCTION {bbl.and}
{
"and"
@@ -581,7 +978,7 @@ MACRO {dec} {"Dec."}
FUNCTION {bbl.url.prefix}
{
- "\urlprefix"
+ "\urlprefix "
}
FUNCTION {eng.ord}
@@ -893,7 +1290,7 @@ MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
MACRO {tcs} {"Theor. Comput. Sci."}
-FUNCTION {bibinfo.command} { "\bibinfo" }
+FUNCTION {bibinfo.command} { "\bibinfo " }
FUNCTION {bibinfo.check}
{ swap$
@@ -907,7 +1304,7 @@ FUNCTION {bibinfo.check}
swap$ pop$
}{
swap$
- bibinfo.command " {" * swap$ * "} {" * swap$ * "}" *
+ bibinfo.command "{" * swap$ * "} {" * swap$ * "}" *
}
if$
}
@@ -945,11 +1342,14 @@ FUNCTION {archiv.prefix.base}
FUNCTION {eprint.command}
{
- "\Eprint"
+ "\Eprint "
}
FUNCTION {format.eprint}
-{ eprint duplicate$ empty$
+{
+ eprint duplicate$ empty$
+ control.eprint #0 <
+ or
{ pop$ "" }
{
duplicate$
@@ -957,13 +1357,13 @@ FUNCTION {format.eprint}
archive duplicate$ empty$ { pop$ archiv.base } 'skip$ if$ *
"/" *
swap$ *
- "{" swap$ * "}" *
+ "{" swap$ * "} " *
swap$
""
archivePrefix duplicate$ empty$ { pop$ "" } { ":" * } if$ *
swap$ *
primaryClass duplicate$ empty$ { pop$ "" } { " [" swap$ * "]" * } if$ *
- "{" swap$ * "}" *
+ "{" swap$ * "} " *
*
eprint.command swap$ *
}
@@ -985,7 +1385,7 @@ FUNCTION {format.url}
url duplicate$ empty$
{ pop$ "" }
{
- "\url"
+ "\url "
"{" * swap$ * "}" *
}
if$
@@ -1008,75 +1408,347 @@ FUNCTION {check.speaker}
STRINGS { bibinfo}
+FUNCTION {format.names.fname}
+{
+ control.author.initials {
+ control.author.dotless {
+ control.author.nospace {
+ "f{}"
+ } {
+ "f{~}"
+ } if$
+ } {
+ control.author.nospace {
+ "f{.}."
+ } {
+ "f."
+ } if$
+ } if$
+ } {
+ "ff"
+ } if$
+}
+
+FUNCTION {bracify}
+{
+ "{" swap$ * "}" *
+}
+
+FUNCTION {name.comma}
+{
+ control.author.nocomma 'skip$ { "," swap$ * } if$
+}
+
+FUNCTION {format.names.format.onefont}
+{
+ "{vv~}{ll}"
+ nameptr #1 >
+ control.author.first
+ and
+ control.author.reversed not
+ or
+ {
+ control.author.initials {
+ "f"
+ control.author.dotless 'skip$ {
+ "." *
+ } if$
+ "~" *
+ } {
+ "ff"
+ } if$
+ bracify
+ swap$
+ } {
+ format.names.fname
+ " " swap$ *
+ name.comma
+ bracify
+ }
+ if$
+ "jj"
+ " " swap$ *
+ name.comma
+ bracify
+ control.author.jnrlst 'skip$ 'swap$ if$
+ * *
+}
+
+FUNCTION {format.names.onefont}
+{
+ s nameptr format.names.format.onefont format.name$
+ remove.dots
+ bib.name.font
+}
+
+FUNCTION {format.names.morfont}
+{ s nameptr
+ "{vv~}{ll}" format.name$ bib.name.font
+ nameptr #1 >
+ control.author.first
+ and
+ control.author.reversed not
+ or
+ {
+ s nameptr
+ control.author.initials {
+ "f" % default: name + surname + comma junior
+ } {
+ "ff"
+ } if$
+ control.author.dotless 'skip$ {
+ "." * % nm-init % Initials. + surname (J. F. Smith) control.author.initials
+ } if$
+ bracify
+ format.name$ duplicate$ empty$ 'skip$
+ { tie.or.space.prefix bib.fname.font swap$ * }
+ if$
+ swap$
+ *
+ s nameptr
+ "{jj}" format.name$ duplicate$ empty$ 'skip$
+ { bib.fname.font ", " swap$ * }
+ if$
+ } {
+ s nameptr
+ format.names.fname
+ "jj"
+ " "
+ name.comma
+ control.author.jnrlst {
+ swap$ * skip$
+ } {
+ skip$ * swap$
+ } if$
+ bracify swap$ bracify swap$
+ *
+ format.name$
+ remove.dots
+ duplicate$ empty$ 'skip$
+ { bib.fname.font " " swap$ * }
+ if$
+ } if$
+ *
+}
+
+FUNCTION {names.punctuate}
+{
+ "," *
+ " " *
+}
+
FUNCTION {format.names}
{ 'bibinfo :=
- duplicate$ empty$ 'skip$ {
- 's :=
- "" 't :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- "{f.}" format.name$ duplicate$ empty$ 'skip$
+ duplicate$ empty$ { pop$ "" } {
+ duplicate$ num.names$
+ duplicate$ 'numnames :=
+ 'namesleft :=
+ 's :=
+ #1 'nameptr :=
+ ""
+ { namesleft #0 > }
+ {
+ format.names.morfont
+ bibinfo bibinfo.check
+ type$ "presentation" =
+ 'check.speaker
+ 'skip$
+ if$
+ 't :=
+ nameptr #1 > not
+ {
+ t *
+ } {
+ namesleft #1 >
+ {
+ names.punctuate
+ t *
+ } {
+ s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { 't := }
+ { pop$ }
+ if$
+ numnames #2 >
+ 'names.punctuate
+ 'skip$
+ if$
+ t "others" =
+ {
+ " " *
+ bbl.etal
+ emphasize
+ *
+ } {
+ bbl.and
+ space.word *
+ t *
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ } if$
+}
+
+FUNCTION {format.names.ed.onefont}
+{
+ s nameptr
+ control.author.initials {
+ control.author.dotless {
+ control.author.nospace {
+ "{f{}~}{vv~}{ll}{ jj}" % nm-rvx|nm-rvcx
+ } {
+ "{f{~}~}{vv~}{ll}{ jj}" % nm-rv
+ } if$
+ } {
+ control.author.nospace {
+ "{f{.}.~}{vv~}{ll}{ jj}" % nm-rvv|nm-rvvc
+ }{
+ "{f.~}{vv~}{ll}{, jj}" % nm-init|nm-rev|nm-rev1
+ } if$
+ } if$
+ } {
+ "{ff~}{vv~}{ll}{, jj}"
+ } if$
+ format.name$
+ remove.dots
+ bib.name.font
+}
+
+FUNCTION {format.names.ed.morfont}
+{
+ control.author.reversed { %
+ control.author.initials { %
+ control.author.dotless { %
+ s nameptr
+ control.author.nospace { % nm-rvx nm-rvcx
+ "{f{}}"
+ } { % nm-rv
+ "{f{~}}"
+ } if$
+ format.name$ duplicate$ empty$ 'skip$
+ { tie.or.space.prefix bib.fname.font swap$ * }
+ if$
+ s nameptr
+ "{vv~}{ll}" format.name$ bib.name.font *
+ s nameptr
+ "{jj}" format.name$
+ remove.dots
+ duplicate$ empty$ 'skip$
+ { bib.fname.font " " swap$ * }
+ if$
+ } { % !control.author.dotless
+ s nameptr
+ control.author.nospace { % nm-rvv
+ "{ff}"
+ } { % nm-rev nm-rev1
+ "{f.}"
+ } if$
+ format.name$ duplicate$ empty$ 'skip$
+ { tie.or.space.prefix bib.fname.font swap$ * }
+ if$
+ s nameptr
+ "{vv~}{ll}" format.name$ bib.name.font *
+ s nameptr
+ "{jj}" format.name$
+ duplicate$ empty$ 'skip$
+ { bib.fname.font ", " swap$ * }
+ if$
+ } if$
+ } { % Full names !control.author.initials nm-revf nm-revv1
+ s nameptr
+ "{ff}"
+ format.name$ duplicate$ empty$ 'skip$
{ tie.or.space.prefix bib.fname.font swap$ * }
if$
s nameptr
"{vv~}{ll}" format.name$ bib.name.font *
s nameptr
- "{jj}" format.name$ duplicate$ empty$ 'skip$
+ "{jj}" format.name$
+ duplicate$ empty$ 'skip$
{ bib.fname.font ", " swap$ * }
if$
- *
- bibinfo bibinfo.check
- type$ "presentation" =
- { check.speaker }
- 'skip$
- if$
- 't :=
- nameptr #1 >
- {
- namesleft #1 >
- {
- ", " *
- t *
- }{
- s nameptr "{ll}" format.name$ duplicate$ "others" =
- { 't := }
- { pop$ }
- if$
- numnames #2 >
- {
- "," *
- }
- 'skip$
- if$
- t "others" =
- {
- " " * bbl.etal
- emphasize
- *
- }{
- bbl.and
- space.word *
- t *
- }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
+ } if$
+ } { % !control.author.reversed nm-init
+ s nameptr
+ "{f.}"
+ format.name$ duplicate$ empty$ 'skip$
+ { tie.or.space.prefix bib.fname.font swap$ * }
+ if$
+ s nameptr
+ "{vv~}{ll}" format.name$ bib.name.font *
+ s nameptr
+ "{jj}" format.name$
+ duplicate$ empty$ 'skip$
+ { bib.fname.font ", " swap$ * }
+ if$
} if$
+ *
}
FUNCTION {format.names.ed}
{
- format.names
+ control.editor #0 > {
+ format.names
+ } {
+ 'bibinfo :=
+ duplicate$ empty$ 'skip$ {
+ 's :=
+ "" 't :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ {
+ format.names.ed.morfont
+ bibinfo bibinfo.check
+ 't :=
+ nameptr #1 >
+ {
+ namesleft #1 >
+ {
+ names.punctuate
+ t *
+ }{
+ s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { 't := }
+ { pop$ }
+ if$
+ numnames #2 >
+ 'names.punctuate
+ 'skip$
+ if$
+ t "others" =
+ {
+ " " * bbl.etal emphasize *
+ }{
+ bbl.and
+ space.word * t *
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ } if$
+ } if$
+}
+
+FUNCTION {format.key}
+{ empty$
+ { key field.or.null }
+ { "" }
+ if$
}
FUNCTION {format.authors}
@@ -1133,18 +1805,28 @@ FUNCTION {doi.base}
"http://dx.doi.org/"
}
+FUNCTION {noop.command}
+{
+ "\href@noop "
+}
+
FUNCTION {doi.command}
{
- "\doi"
+ "\doi "
}
FUNCTION {doi.command.href}
{
- "\Doi"
+ "\Doi "
+}
+
+FUNCTION {href.command}
+{
+ "\href "
}
FUNCTION {format.doi}
-{ doi "doi" bibinfo.check
+{ doi
duplicate$ empty$ 'skip$
{
new.block.comma
@@ -1153,22 +1835,67 @@ FUNCTION {format.doi}
if$
}
-FUNCTION {add.doi}
+FUNCTION {add.doi.old}
{
duplicate$ empty$ 'skip$
{
- doi duplicate$ empty$ 'pop$
+ doi duplicate$ empty$
{
- "{" swap$ * "}" *
- swap$
- "{" swap$ * "}" *
- *
- doi.command.href swap$ *
+ pop$
+ url duplicate$ empty$
+ {
+ pop$
+ }{
+ href.command " {" * swap$ * "} {" * swap$ * "}" *
+ }
+ if$
+ }
+ {
+ doi.command.href " {" * swap$ * "} {" * swap$ * "}" *
}
if$
}
if$
}
+FUNCTION {link.tag.open}
+{
+ doi duplicate$ empty$
+ {
+ pop$
+ url duplicate$ empty$
+ {
+ pop$ "" noop.command
+ }{
+ href.command
+ }
+ if$
+ }
+ {
+ doi.command.href
+ }
+ if$
+ "{" * swap$ * "} {" *
+}
+
+FUNCTION {link.tag.shut}
+{
+ "}"
+}
+
+FUNCTION {link.open}
+{
+ link.tag.open output.nopunct
+}
+
+FUNCTION {link.shut}
+{
+ link.tag.shut *
+}
+
+FUNCTION {add.doi}
+{
+ link.tag.open swap$ * link.tag.shut *
+}
FUNCTION {select.language}
{ duplicate$ empty$
@@ -1202,7 +1929,7 @@ FUNCTION {format.note}
FUNCTION {bbl.enquote}
{
- "\enquote"
+ "\enquote "
}
FUNCTION {string.enquote}
@@ -1210,7 +1937,7 @@ FUNCTION {string.enquote}
punctuation.no 'punctuation.state :=
non.stop {
block.punctuation
- } { "." } if$
+ } { "" } if$
swap$ pop$
*
bbl.enquote "{" * swap$ * "}" *
@@ -1237,22 +1964,105 @@ FUNCTION {end.quote.title}
if$
}
+FUNCTION {format.name.apply}
+{
+ s nameptr
+ "{vv~}{ll}"
+ format.name$
+ cite.name.font
+}
+
+FUNCTION {format.full.names}
+{
+ 's :=
+ "" 't :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { format.name.apply
+ 't :=
+ nameptr #1 >
+ {
+ namesleft #1 >
+ { ", " * t * }
+ {
+ s nameptr "{ll}" format.name$ duplicate$ "others" =
+ {
+ 't :=
+ }
+ 'pop$
+ if$
+ t "others" =
+ {
+ " " * bbl.etal
+ emphasize *
+ }{
+ numnames #2 > { "," * }{ skip$ } if$
+ bbl.and
+ space.word * t *
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {make.full.names}
+{
+ key editor author
+ type$ "proceedings" =
+ type$ "book" =
+ type$ "inbook" =
+ or { pop$ }{ { pop$ "" }{ swap$ pop$ "" swap$ } if$ } if$
+ duplicate$ empty$
+ { pop$
+ duplicate$ empty$
+ { pop$
+ duplicate$ empty$
+ { pop$
+ cite$ #1 #3 substring$
+ }{
+ skip$
+ }
+ if$
+ }
+ { swap$ pop$ format.full.names }
+ if$
+ }
+ { swap$ pop$ swap$ pop$ format.full.names }
+ if$
+}
+
FUNCTION {year.bibitem}
{
year duplicate$ empty$
{ pop$ ""
- "????" *
}{
skip$
} if$
+ extra.label *
}
FUNCTION {output.bibitem}
{
newline$
""
- "{" * cite$ * "}%" *
- "\bibitem"
+ label
+ *
+ make.full.names duplicate$ short.list =
+ { pop$ }{ * } if$
+ bracify
+ "[" swap$ * "]" *
+ cite$ bracify "%" *
+ *
+ "\bibitem "
swap$ *
write$ newline$
" "
@@ -1306,23 +2116,12 @@ FUNCTION {date.encapsulate}
FUNCTION {format.date}
{
- month "month" bibinfo.check
- duplicate$ empty$
- year "year" bibinfo.check duplicate$ empty$
- { swap$ 'skip$
- { "there's a month but no year in " cite$ * warning$ }
- if$
- *
- }{
- swap$ 'skip$
- {
- swap$
- word.space * swap$
- }
- if$
- *
+ year "year" bibinfo.check duplicate$ empty$
+ {
}
+ 'skip$
if$
+ extra.label *
date.encapsulate
}
@@ -1334,7 +2133,7 @@ FUNCTION {format.date.output.check}
FUNCTION {format.date.output}
{
- format.date output
+ format.date.output.check
}
FUNCTION {format.btitle}
@@ -1559,7 +2358,16 @@ FUNCTION {format.journal.pages}
{ pop$ pop$ format.pages }
{ volnum.punct *
swap$
- first.page
+ control.pages duplicate$ #0 < {
+ pop$ pop$
+ }{
+ #0 >
+ {
+ n.dashify
+ }{
+ first.page
+ } if$
+ } if$
"pages" bibinfo.check
*
}
@@ -1590,7 +2398,6 @@ FUNCTION {eid.or.pages}
FUNCTION {format.ser.vol.num}
{
series "series" bibinfo.check output
- after.punctuation 'output.state :=
volume field.or.null
duplicate$ empty$ 'skip$
{
@@ -1665,7 +2472,7 @@ FUNCTION {format.in.ed.booktitle}
{
format.booktitle duplicate$ empty$ 'pop$
{
- add.doi
+ add.doi
word.in swap$ * output.nonnull
bookaddress "address" bibinfo.check output
format.number.series "series and number" bibinfo.check output
@@ -1679,7 +2486,7 @@ FUNCTION {format.in.ed.booktitle.inbook}
{
format.booktitle duplicate$ empty$ 'pop$
{
- add.doi
+ add.doi
word.in swap$ * output.nonnull
bookaddress "address" bibinfo.check output
format.number.series "series and number" bibinfo.check output
@@ -1691,15 +2498,6 @@ FUNCTION {format.in.ed.booktitle.inbook}
if$
}
-FUNCTION {empty.misc.check}
-{ author empty$ title empty$ howpublished empty$
- month empty$ year empty$ note empty$
- and and and and and
- { "all relevant fields are empty in " cite$ * warning$ }
- 'skip$
- if$
-}
-
FUNCTION {format.thesis.type}
{ type duplicate$ empty$
'pop$
@@ -1724,52 +2522,10 @@ FUNCTION {format.tr.number}
FUNCTION {format.article.crossref}
{
- key duplicate$ empty$
- { pop$
- journal duplicate$ empty$
- { "need key or journal for " cite$ * " to crossref " * crossref * warning$ }
- { "journal" bibinfo.check emphasize word.in swap$ * }
- if$
- }
- { word.in swap$ * word.space *}
- if$
+ word.in
" \cite{" * crossref * "}" *
}
-FUNCTION {format.crossref.editor}
-{ editor #1 "{vv~}{ll}" format.name$
- bib.name.font
- "editor" bibinfo.check
- editor num.names$ duplicate$
- #2 >
- { pop$
- "editor" bibinfo.check
- word.space * bbl.etal
- emphasize
- *
- }
- { #2 <
- 'skip$
- { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- {
- "editor" bibinfo.check
- word.space * bbl.etal
- emphasize
- *
- }{
- bbl.and space.word
- * editor #2 "{vv~}{ll}" format.name$
- bib.name.font
- "editor" bibinfo.check
- *
- }
- if$
- }
- if$
- }
- if$
-}
-
FUNCTION {format.book.crossref}
{ volume duplicate$ empty$
{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$
@@ -1779,44 +2535,12 @@ FUNCTION {format.book.crossref}
swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
}
if$
- editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
- { series empty$
- { "need editor, key, or series for " cite$ * " to crossref " *
- crossref * warning$
- "" *
- }
- { series emphasize * }
- if$
- }
- { key * }
- if$
- }
- { format.crossref.editor * }
- if$
" \cite{" * crossref * "}" *
}
FUNCTION {format.incoll.inproc.crossref}
{
- editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
- { format.booktitle duplicate$ empty$
- { "need editor, key, or booktitle for " cite$ * " to crossref " *
- crossref * warning$
- }
- { word.in swap$ * }
- if$
- }
- { word.in key * word.space *}
- if$
- }
- { word.in format.crossref.editor * word.space *}
- if$
+ word.in
" \cite{" * crossref * "}" *
}
@@ -1904,25 +2628,49 @@ FUNCTION {format.school.address.output}
output
}
+FUNCTION {article.title.produce}
+{
+ control.title duplicate$ #0 <
+ { pop$
+ }{
+ format.title
+ "title" 'bibfield :=
+ swap$ #0 >
+ {
+ "title" output.check
+ }{
+ output
+ } if$
+ new.block.comma
+ } if$
+}
+
+FUNCTION {control}
+{
+}
+
FUNCTION {article}
{ output.bibitem
format.authors
booktitle empty$ {
"author" output.check
}{ output } if$
+ author format.key output
new.block.comma
+ article.title.produce
output.article.booktitle
crossref missing$
{
+ link.open
journal
"journal" bibinfo.warn
- pages empty$ 'skip$ { add.doi } if$
"journal" 'bibfield :=
output
format.ser.vol.num
output
eid.or.pages
format.date.output.check
+ link.shut
}{
format.article.crossref output.nonnull
format.pages output
@@ -1936,7 +2684,6 @@ FUNCTION {article}
new.sentence.comma
format.note output
format.eprint output
- format.url output
format.translation output
fin.entry
}
@@ -1945,24 +2692,28 @@ FUNCTION {book}
{ output.bibitem
author empty$
{
+ format.editors "author and editor" output.check
+ editor format.key output
}{
format.authors output.nonnull
- crossref missing$ { editor.check.book } 'skip$ if$
+% crossref missing$ { editor.check.book } 'skip$ if$
}
if$
new.block.comma
+ link.open
format.btitle
- add.doi
"title" output.check
+ link.shut
format.edition output
author empty$
{
- format.editor.in output
}
{
+ format.editor.in output
+ editor format.key output
}
if$
- format.number.series output
+ format.number.series output
crossref missing$
{
format.bvolume output
@@ -1975,23 +2726,24 @@ FUNCTION {book}
}
if$
format.isbn output
- format.chapter.pages
- output
+ format.chapter.pages
+ output
new.block.comma
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
FUNCTION {booklet}
{ output.bibitem
format.authors output
+ author format.key output
new.block.comma
+ link.open
format.title
- add.doi
"title" output.check
+ link.shut
new.block.comma
howpublished "howpublished" bibinfo.check output
address "address" bibinfo.check output
@@ -2002,7 +2754,12 @@ FUNCTION {booklet}
new.sentence.comma
format.note output
format.eprint output
- format.url output
+ fin.entry
+}
+
+FUNCTION {footnote}
+{ output.bibitem
+ format.note output
fin.entry
}
@@ -2011,8 +2768,10 @@ FUNCTION {inbook}
author empty$
{
format.editors "editor" output.check
+ editor format.key output
}{
format.authors output.nonnull
+ author format.key output
}
if$
new.block.comma
@@ -2047,14 +2806,15 @@ FUNCTION {inbook}
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
FUNCTION {incollection}
{ output.bibitem
format.authors "author" output.check
+ author format.key output
new.block.comma
+ article.title.produce
crossref missing$
{
format.in.ed.booktitle
@@ -2071,14 +2831,15 @@ FUNCTION {incollection}
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
FUNCTION {inproceedings}
{ output.bibitem
format.authors "author" output.check
+ author format.key output
new.block.comma
+ article.title.produce
crossref missing$
{
format.in.ed.booktitle
@@ -2095,112 +2856,102 @@ FUNCTION {inproceedings}
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
FUNCTION {conference} { inproceedings }
FUNCTION {manual}
{ output.bibitem
- author empty$
- { organization "organization" bibinfo.check
- duplicate$ empty$ 'pop$
- { output
- address "address" bibinfo.check output
- }
- if$
- }{
- format.authors output.nonnull
- }
- if$
+ format.authors output
+ author format.key output
new.block.comma
+ link.open
format.btitle
- add.doi
"title" output.check
- author empty$
- { organization empty$
- {
- address "address" bibinfo.check output
- }
- 'skip$
- if$
- }{
+ link.shut
organization "organization" bibinfo.check output
address "address" bibinfo.check output
- }
- if$
format.edition output
format.date.output
new.block.comma
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
FUNCTION {mastersthesis}
{ output.bibitem
format.authors "author" output.check
+ author format.key output
new.block.comma
format.btitle
output
new.block.comma
+ link.open
bbl.mthesis
format.thesis.type
- add.doi
output.nonnull
+ link.shut
format.school.address.output
format.date.output.check
new.block.comma
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
FUNCTION {misc}
{ output.bibitem
format.authors output
- format.title output
+ author format.key output
+ new.block.comma
+ link.open
+ format.title
+ output
+ link.shut
+ new.block.comma
howpublished "howpublished" bibinfo.check output
format.date.output
new.block.comma
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
- empty.misc.check
}
FUNCTION {phdthesis}
{ output.bibitem
format.authors "author" output.check
+ author format.key output
new.block.comma
format.btitle
output
new.block.comma
+ link.open
bbl.phdthesis
format.thesis.type
- add.doi
output.nonnull
+ link.shut
format.school.address.output
format.date.output.check
new.block.comma
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
FUNCTION {presentation}
{ output.bibitem
format.authors output
+ author format.key output
new.block.comma
- format.title output
+ link.open
+ format.title
+ output
+ link.shut
new.block.comma
format.organization.address "organization and address" output.check
month "month" output.check
@@ -2212,52 +2963,40 @@ FUNCTION {presentation}
type missing$ 'skip$
{"(" type capitalize * ")" * output}
if$
- new.block.comma format.url output
fin.entry
}
FUNCTION {proceedings}
{ output.bibitem
- editor empty$
- { organization "organization" bibinfo.check output }
- { format.editors output.nonnull }
- if$
+ format.editors output
+ editor format.key output
new.block.comma
+ link.open
format.btitle
- add.doi
"title" output.check
+ link.shut
bookaddress "address" bibinfo.check output
format.number.series output
format.bvolume output
- editor empty$
- {
- publisher empty$
- {
- }{
- format.publisher.address output
- }
- if$
- }{
- format.organization.publisher.address output
- }
- if$
+ format.organization.publisher.address output
format.isbn output
format.issn output
new.block.comma
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
FUNCTION {techreport}
{ output.bibitem
format.authors "author" output.check
+ author format.key output
new.block.comma
+ link.open
format.btitle
- add.doi
"title" output.check
+ link.shut
new.block.comma
format.tr.number
output.nonnull
@@ -2267,55 +3006,369 @@ FUNCTION {techreport}
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
FUNCTION {unpublished}
{ output.bibitem
format.authors "author" output.check
+ author format.key output
new.block.comma
+ link.open
format.title
- add.doi
"title" output.check
+ link.shut
format.date.output
new.block.comma
new.sentence.comma
format.note "note" output.check
format.eprint output
- format.url output
fin.entry
}
FUNCTION {default.type} { misc }
+
READ
-STRINGS { longest.label }
-INTEGERS { number.label longest.label.width }
-FUNCTION {initialize.longest.label}
-{ "" 'longest.label :=
- #1 'number.label :=
- #0 'longest.label.width :=
+
+EXECUTE {control.init}
+
+ITERATE {control.pass}
+
+EXECUTE {control.check}
+
+FUNCTION {sortify}
+{ purify$
+ "l" change.case$
}
-FUNCTION {longest.label.pass}
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+FUNCTION {cite.name.font.apply}
{
- number.label int.to.str$ 'label :=
- number.label #1 + 'number.label :=
- label width$ longest.label.width >
- { label 'longest.label :=
- label width$ 'longest.label.width :=
+ word.space * bbl.etal
+ emphasize
+ *
+}
+
+FUNCTION {format.lab.names}
+{ 's :=
+ "" 't :=
+ #1 'nameptr :=
+ format.name.apply
+ s num.names$ duplicate$
+ #2 >
+ { pop$
+ cite.name.font.apply
+ }{
+ #2 <
+ 'skip$
+ {
+ s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ {
+ cite.name.font.apply
+ }{
+ bbl.and space.word *
+ s #2 "{vv~}{ll}" format.name$
+ cite.name.font
+ *
+ }
+ 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 {editor.key.label}
+{ editor empty$
+ { key empty$
+ { cite$ #1 #3 substring$ }
+ 'key
+ if$
+ }
+ { editor format.lab.names }
+ if$
+}
+
+FUNCTION {calc.short.authors}
+{ type$ "book" =
+ type$ "inbook" =
+ or
+ 'author.editor.key.label
+ { type$ "proceedings" =
+ 'editor.key.label
+ 'author.key.label
+ if$
+ }
+ if$
+ 'short.list :=
+}
+
+FUNCTION {calc.label}
+{
+ calc.short.authors
+ short.list
+ year duplicate$ empty$
+ short.list key field.or.null = or
+ {
+ pop$ ""
+ }{
+ control.year #0 > { purify$ #-1 #4 substring$ } 'skip$ if$
+ }
+ if$
+ "(" swap$ * ")" *
+ * 'label :=
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr
+ "{ll{ }}"
+ control.author.initials {
+ "{ f{ }}" *
+ }{
+ "{ ff{ }}" *
+ } if$
+ "{ jj{ }}" *
+ format.name$ 't :=
+ nameptr #1 >
+ {
+ " " *
+ namesleft #1 = t "others" = and
+ { "zzzzz" * }
+ {
+ t sortify *
+ }
+ if$
+ }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+
+FUNCTION {author.sort}
+{ author empty$
+ { key empty$
+ { "to sort, need author or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
}
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+ { editor empty$
+ { key empty$
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION {year.sort.key}
+{
+ year
+}
+
+FUNCTION {editor.sort}
+{ editor empty$
+ { key empty$
+ { "to sort, need editor or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+
+INTEGERS { seq.num }
+
+FUNCTION {init.seq}
+{ #0 'seq.num :=}
+
+EXECUTE {init.seq}
+
+FUNCTION {int.to.fix}
+{ "000000000" swap$ int.to.str$ *
+ #-1 #10 substring$
+}
+
+FUNCTION {label.presort}
+{
+ calc.label
+ label sortify
+ " "
+ *
+ seq.num #1 + 'seq.num :=
+ seq.num int.to.fix
+ 'sort.label :=
+ sort.label
+ *
+ " "
+ *
+ title field.or.null sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+FUNCTION {presort.pass}
+{ type$ "control" = 'control.presort 'label.presort if$
+}
+
+ITERATE {presort.pass}
+
+SORT
+
+STRINGS { last.label next.extra }
+
+INTEGERS { last.extra.num number.label }
+
+FUNCTION {initialize.extra.label.stuff}
+{ #0 int.to.chr$ 'last.label :=
+ "" 'next.extra :=
+ #0 'last.extra.num :=
+ #0 'number.label :=
+}
+
+FUNCTION {label.forward}
+{
+ 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 :=
+}
+
+FUNCTION {label.reverse}
+{ next.extra "b" =
+ { "a" 'extra.label := }
'skip$
if$
+ extra.label 'next.extra :=
+ extra.label
+ duplicate$ empty$
+ 'skip$
+ { "{\natexlab{" swap$ * "}}" * }
+ if$
+ 'extra.label :=
+ label extra.label * 'label :=
+}
+
+EXECUTE {initialize.extra.label.stuff}
+
+FUNCTION {forward.pass}
+{ type$ "control" = 'control.forward 'label.forward if$
+}
+
+ITERATE {forward.pass}
+
+FUNCTION {reverse.pass}
+{ type$ "control" = 'control.reverse 'label.reverse if$
+}
+
+REVERSE {reverse.pass}
+
+FUNCTION {sortkey.sort}
+{ sort.label
+ " "
+ *
+ year.sort.key
+ field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+FUNCTION {bib.sort.pass}
+{ type$ "control" = 'control.sort 'sortkey.sort if$
}
-EXECUTE {initialize.longest.label}
-ITERATE {longest.label.pass}
+ITERATE {bib.sort.pass}
+
+SORT
+
FUNCTION {init.bib.eprint}
{
- "\texttt{"
+ "\texttt {"
pop$
- "\providecommand \url [0]{\begingroup\@sanitize \@url }%" write$ newline$
+ "\providecommand \url [0]{\begingroup\@sanitize@url \@url }%" write$ newline$
"\providecommand \@url [1]{\endgroup\@href {#1}{" "}}%" bbl.url.prefix swap$ * * write$ newline$
"\providecommand " " [0]{URL }%" bbl.url.prefix swap$ * * write$ newline$
eprint.command "\providecommand " swap$ * "[0]{\href }%" * write$ newline$
@@ -2324,36 +3377,26 @@ FUNCTION {init.bib.eprint}
FUNCTION {init.bib.doi}
{
"\@ifxundefined \urlstyle {%" write$ newline$
- " \providecommand \doi [1]{doi:\discretionary{}{}{}#1}%" write$ newline$
+ " \providecommand " doi.command " [0]{\begingroup \@sanitize@url \@doi}%" * * write$ newline$
+ " \providecommand \@doi [1]{\endgroup \@@startlink {\doibase #1}doi:\discretionary {}{}{}#1\@@endlink }%" write$ newline$
"}{%" write$ newline$
- " \providecommand \doi [0]{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url }%"
- write$ newline$
+ " \providecommand " doi.command " [0]{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url }%" * * write$ newline$
"}%" write$ newline$
- "\providecommand \doibase [0]{" doi.base * "}%" * write$ newline$
- doi.command.href "\providecommand " swap$ * "[1]{\href{\doibase#1}}%" * write$ newline$
+ "\providecommand \doibase [0]{" doi.base "}%" * * write$ newline$
+ "\providecommand " doi.command.href "[0]{\begingroup \@sanitize@url \@Doi }%" * * write$ newline$
+ "\providecommand \@Doi [1]{\endgroup\@@startlink{\doibase#1}\@@Doi}%" write$ newline$
+ "\providecommand \@@Doi [1]{#1\@@endlink}%" write$ newline$
}
FUNCTION {init.bib.hypertex}
{
- "\providecommand\href[0]{\@sanitize\@href}%" write$ newline$
- "\providecommand\@href[1]{\endgroup\@@startlink{#1}\endgroup\@@href}%" write$ newline$
- "\providecommand\@@href[1]{#1\@@endlink}%" write$ newline$
- "\providecommand \@sanitize [0]{\begingroup\catcode`\&12\catcode`\#12\relax}%" write$ newline$
- "\@ifxundefined \pdfoutput {\@firstoftwo}{%" write$ newline$
- " \@ifnum{\z@=\pdfoutput}{\@firstoftwo}{\@secondoftwo}%" write$ newline$
- "}{%" write$ newline$
- " \providecommand\@@startlink[1]{\leavevmode\special{html:<a href=" quote$ * "#1" * quote$ * ">}}%" * write$ newline$
- " \providecommand\@@endlink[0]{\special{html:</a>}}%" write$ newline$
- "}{%" write$ newline$
- " \providecommand\@@startlink[1]{%" write$ newline$
- " \leavevmode" write$ newline$
- " \pdfstartlink" write$ newline$
- " attr{/Border[0 0 1 ]/H/I/C[0 1 1]}%" write$ newline$
- " user{/Subtype/Link/A<</Type/Action/S/URI/URI(#1)>>}%" write$ newline$
- " \relax" write$ newline$
- " }%" write$ newline$
- " \providecommand\@@endlink[0]{\pdfendlink}%" write$ newline$
- "}%" write$ newline$
+ "\providecommand " noop.command "[0]{\@secondoftwo}%" * * write$ newline$
+ "\providecommand " href.command "[0]{\begingroup \@sanitize@url \@href}%" * * write$ newline$
+ "\providecommand \@href[1]{\@@startlink{#1}\@@href}%" write$ newline$
+ "\providecommand \@@href[1]{\endgroup#1\@@endlink}%" write$ newline$
+ "\providecommand \@sanitize@url [0]{\catcode `\\12\catcode `\$12\catcode `\&12\catcode `\#12\catcode `\^12\catcode `\_12\catcode `\%12\relax}%" write$ newline$
+ "\providecommand \@@startlink[1]{}%" write$ newline$
+ "\providecommand \@@endlink[0]{}%" write$ newline$
}
FUNCTION {init.bib.namefont}
@@ -2370,18 +3413,10 @@ FUNCTION {init.bib.quote}
"#1" swap$ "}%" * * * * write$ newline$
}
-FUNCTION {init.bib.annote}
+FUNCTION {init.bib.ay}
{
- "\providecommand \bibAnnote [3]{%" write$ newline$
- " " bbl.shut * "{#1}%" * write$ newline$
- " \begin{quotation}\noindent" write$ newline$
- " \textsc{Key:}\ #2\\\textsc{Annotation:}\ #3%" write$ newline$
- " \end{quotation}%" write$ newline$
- "}%" write$ newline$
- "\providecommand \bibAnnoteFile [2]{%" write$ newline$
- " \IfFileExists{#2}{\bibAnnote {#1} {#2} {\input{#2}}}{}%" write$ newline$
- "}%" write$ newline$
- "\providecommand \typeout [0]{\immediate \write \m@ne }%" write$ newline$
+ "\providecommand \natexlab [1]{#1}%"
+ write$ newline$
}
FUNCTION {init.bib.bibinfo}
@@ -2416,22 +3451,25 @@ FUNCTION {init.bib}
{
warn.bib
"\makeatletter" write$ newline$
- "\providecommand \@ifxundefined [1]{%" write$ newline$
- " \ifx #1\undefined \expandafter \@firstoftwo" write$ newline$
- " \else \expandafter \@secondoftwo" write$ newline$
- "\fi" write$ newline$
+ "\providecommand \@ifxundefined [1]{%" write$ newline$
+ " \@ifx{#1\undefined}" write$ newline$
"}%" write$ newline$
"\providecommand \@ifnum [1]{%" write$ newline$
" \ifnum #1\expandafter \@firstoftwo" write$ newline$
" \else \expandafter \@secondoftwo" write$ newline$
- "\fi" write$ newline$
+ " \fi" write$ newline$
+ "}%" write$ newline$
+ "\providecommand \@ifx [1]{%" write$ newline$
+ " \ifx #1\expandafter \@firstoftwo" write$ newline$
+ " \else \expandafter \@secondoftwo" write$ newline$
+ " \fi" write$ newline$
"}%" write$ newline$
+ init.bib.ay
init.bib.quote
init.bib.namefont
init.bib.hypertex
init.bib.eprint
init.bib.doi
- init.bib.annote
init.bib.lang
init.bib.bibinfo
init.bib.translation
@@ -2442,21 +3480,25 @@ FUNCTION {init.bib}
FUNCTION {begin.bib}
{
- id.bst duplicate$ top$ "%" swap$ * write$ newline$
+ id.bst diagn.cmntlog
+ control.bib
preamble$ empty$
'skip$
{ preamble$ write$ newline$ }
if$
"\begin{thebibliography}{"
- longest.label
+ number.label int.to.str$
* "}%" *
write$ newline$
init.bib
}
EXECUTE {begin.bib}
+
EXECUTE {init.state.consts}
+
ITERATE {call.type$}
+
FUNCTION {end.bib}
{ newline$
"\end{thebibliography}%"
@@ -2464,6 +3506,7 @@ FUNCTION {end.bib}
}
EXECUTE {end.bib}
+
%% End of customized bst file
%%
%% End of file `apsrev4-1.bst'.
diff --git a/Master/texmf-dist/bibtex/bst/revtex/apsrev4-1long.bst b/Master/texmf-dist/bibtex/bst/revtex/apsrev4-1long.bst
deleted file mode 100644
index d9ad175b1b2..00000000000
--- a/Master/texmf-dist/bibtex/bst/revtex/apsrev4-1long.bst
+++ /dev/null
@@ -1,2469 +0,0 @@
-%%
-%% This is file `apsrev4-1long.bst',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% merlin.mbs (with options: `head,lang,annote,pres,pres-bf,seq-no,vonx,ed-au,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,yr-par,date-nil-x,tit-qq,inproceedings-chapter,article-title-o,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-x,volp-com,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% physjour.mbs (with options: `lang,annote,pres,pres-bf,seq-no,vonx,ed-au,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,yr-par,date-nil-x,tit-qq,inproceedings-chapter,article-title-o,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-x,volp-com,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% geojour.mbs (with options: `lang,annote,pres,pres-bf,seq-no,vonx,ed-au,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,yr-par,date-nil-x,tit-qq,inproceedings-chapter,article-title-o,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-x,volp-com,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% photjour.mbs (with options: `lang,annote,pres,pres-bf,seq-no,vonx,ed-au,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,yr-par,date-nil-x,tit-qq,inproceedings-chapter,article-title-o,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-x,volp-com,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% merlin.mbs (with options: `tail,lang,annote,pres,pres-bf,seq-no,vonx,ed-au,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,yr-par,date-nil-x,tit-qq,inproceedings-chapter,article-title-o,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-x,volp-com,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-date,ay-empty-pub-parens-x,pre-pub,pre-edn,isbn,issn,doi-link,doi,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% ----------------------------------------
-%% *** REVTeX-compatible Phys Rev long 2009-10-08 ***
-%%
-%% Copyright 1994-2007 Patrick W Daly
- % ===============================================================
- % IMPORTANT NOTICE:
- % This bibliographic style (bst) file has been generated from one or
- % more master bibliographic style (mbs) files, listed above.
- %
- % This generated file can be redistributed and/or modified under the terms
- % of the LaTeX Project Public License Distributed from CTAN
- % archives in directory macros/latex/base/lppl.txt; either
- % version 1 of the License, or any later version.
- % ===============================================================
- % Name and version information of the main mbs file:
- % \ProvidesFile{merlin.mbs}[2008/01/17 4.21 (PWD, AO, DPC)]
- % For use with BibTeX version 0.99a or later
- %-------------------------------------------------------------------
- % This bibliography style file is intended for texts in ENGLISH
- % This is a numerical citation style, and as such is standard LaTeX.
- % It requires no extra package to interface to the main text.
- % The form of the \bibitem entries is
- % \bibitem{key}...
- % Usage of \cite is as follows:
- % \cite{key} ==>> [#]
- % \cite[chap. 2]{key} ==>> [#, chap. 2]
- % where # is a number determined by the ordering in the reference list.
- % The order in the reference list is that by which the works were originally
- % cited in the text, or that in the database.
- %---------------------------------------------------------------------
-
-FUNCTION {id.bst} {"Merlin.mbs v4.21 2009-07-09. "}
-ENTRY
-{
- address
- annote
- archive
- archivePrefix
- author
- bookaddress
- booktitle
- chapter
- collaboration
- doi
- edition
- editor
- eid
- eprint
- howpublished
- institution
- isbn
- issn
- journal
- key
- language
- month
- note
- number
- organization
- pages
- primaryClass
- publisher
- school
- SLACcitation
- series
- title
- translation
- type
- url
- volume
- year
-}{
-}{
- label
-}
-
-INTEGERS
-{
- output.state before.all
- after.word after.punctuation
- after.sentence after.block
-}
-
-INTEGERS
-{
- punctuation.state punctuation.no punctuation.space punctuation.yes
-}
-
-STRINGS { bibfield output.bibfield }
-FUNCTION {not}
-{ { #0 }
- { #1 }
- if$
-}
-
-FUNCTION {and}
-{ 'skip$
- { pop$ #0 }
- if$
-}
-
-FUNCTION {or}
-{ { pop$ #1 }
- 'skip$
- if$
-}
-
-FUNCTION {non.stop}
-{ duplicate$
- "}" * add.period$
- #-1 #1 substring$ "." =
-}
-
-FUNCTION {init.state.consts}
-{
- #0 'before.all :=
- #1 'after.word :=
- #2 'after.punctuation :=
- #3 'after.sentence :=
- #4 'after.block :=
- #0 'punctuation.no :=
- #1 'punctuation.space :=
- #2 'punctuation.yes :=
- "" 'bibfield :=
- "" 'output.bibfield :=
-}
-
-STRINGS { s t}
-FUNCTION {block.punctuation}
-{ ""
- "," *
-}
-
-FUNCTION {word.space}
-{
- "\ "
-}
-
-FUNCTION {show.stackstring.one}{
- "(" *
- output.state int.to.str$ *
- "," * punctuation.state int.to.str$ *
- ")" * top$
- duplicate$ "1(" swap$ * ")" * top$
-}
-
-FUNCTION {show.stackstring.two}{
- "(" *
- output.state int.to.str$ *
- "," * punctuation.state int.to.str$ *
- ")" * top$
- swap$
- duplicate$ "1(" swap$ * ")" * top$
- swap$
- duplicate$ "2(" swap$ * ")" * top$
-}
-
-FUNCTION {bibfield.command}{ "\bibfield"}
-
-FUNCTION {output.nonnull}
-{
- swap$
- output.state after.word =
- {
- block.punctuation *
- word.space *
- }
- {
- output.state after.punctuation =
- {
- word.space *
- }
- {
- output.state after.block = output.state after.sentence = or
- {
- add.period$
- "\EOS\ " *
- }{
- }
- if$
- }
- if$
- }
- if$
- output.bibfield duplicate$ empty$ 'pop$
- {
- bibfield.command
- "{" * swap$ * "}{%" * write$ newline$
- " " swap$ * "}%" * write$ newline$
- " "
- }
- if$
- write$
- bibfield 'output.bibfield := "" 'bibfield :=
- output.state after.block =
- {
- newline$
- "\newblock " write$
- }
- 'skip$
- if$
- punctuation.state duplicate$
- punctuation.yes 'punctuation.state :=
- punctuation.no =
- { pop$ before.all }
- { punctuation.yes = { after.word }{ after.punctuation } if$ }
- if$
- 'output.state :=
-}
-
-FUNCTION {output}
-{ duplicate$ empty$
- {
- pop$
- "" 'bibfield :=
- }
- 'output.nonnull
- if$
-}
-
-FUNCTION {output.check}
-{ swap$
- duplicate$ empty$
- { pop$ "empty " swap$ * " in " * cite$ * warning$ }
- { swap$ pop$ output.nonnull }
- if$
-}
-
-FUNCTION {bbl.open} { "\BibitemOpen" }
-
-FUNCTION {bbl.shut} { "\BibitemShut" }
-
-FUNCTION {bibitem.shut.stop} { bbl.shut "{Stop}%" * }
-
-FUNCTION {bibitem.shut.nostop} { bbl.shut "{NoStop}%" * }
-
-FUNCTION {bibitem.shut}
-{
- non.stop
- {
- bibitem.shut.nostop *
- }{
- bibitem.shut.stop *
- }
- if$
-}
-
-FUNCTION {html.itag} {
- "p"
-}
-
-FUNCTION {html.ltag} {
- ""
-}
-
-FUNCTION {output.SLACcitation}
-{ SLACcitation empty$
- 'skip$
- {
- newline$
- SLACcitation write$
- }
- if$
-}
-
-FUNCTION {fin.entry}
-{
- non.stop swap$
- "%" * write$ newline$
- { "{NoStop}" }
- { "{Stop}" }
- if$
- annote missing$
- {
- " \bibAnnoteFile" swap$ * "{" * cite$ * "}%" *
- }{
- " \bibAnnote" swap$ * "{" * cite$ * "}{" * annote * add.period$ "}%" *
- }
- if$
- write$
- output.SLACcitation
-}
-
-FUNCTION {new.block}
-{ output.state before.all =
- 'skip$
- { after.block 'output.state := }
- if$
-}
-
-FUNCTION {new.block.comma}
-{
-}
-
-FUNCTION {new.sentence}
-{ output.state after.block = output.state before.all = or
- 'skip$
- { after.sentence 'output.state := }
- if$
-}
-
-FUNCTION {new.sentence.comma}
-{
-}
-
-FUNCTION {sentence.or.colon}
-{
- new.sentence
-}
-
-FUNCTION {add.blank}
-{
- word.space *
- before.all 'output.state :=
-}
-
-FUNCTION {no.blank.or.punct}
-{
- "\hspace{0pt}" *
- before.all 'output.state :=
-}
-
-FUNCTION {date.block}
-{
- new.block.comma
- skip$
-}
-
-FUNCTION {new.block.checka}
-{ empty$
- 'skip$
- 'new.block
- if$
-}
-
-FUNCTION {new.block.checkb}
-{ empty$
- swap$ empty$
- and
- 'skip$
- 'new.block
- if$
-}
-
-FUNCTION {new.sentence.checka}
-{ empty$
- 'skip$
- 'new.sentence
- if$
-}
-
-FUNCTION {new.sentence.checkb}
-{ empty$
- swap$ empty$
- and
- 'skip$
- 'new.sentence
- if$
-}
-
-FUNCTION {field.or.null}
-{ duplicate$ empty$
- { pop$ "" }
- 'skip$
- if$
-}
-
-FUNCTION {emphasize}
-{
- duplicate$ empty$
- { pop$ "" }
- {
- "\emph{" swap$ * "}" *
- }
- if$
-}
-
-FUNCTION {bolden}
-{ duplicate$ empty$
- { pop$ "" }
- { "\textbf{" swap$ * "}" * }
- if$
-}
-
-FUNCTION {bib.name.font}
-{
- duplicate$ empty$
- { pop$ "" }
- {
- "\bibnamefont{" swap$ * "}" *
- }
- if$
-}
-
-FUNCTION {bib.fname.font}
-{
- duplicate$ empty$
- { pop$ "" }
- {
- "\bibfnamefont{" swap$ * "}" *
- }
- if$
-}
-
-FUNCTION {cite.name.font}
-{
- duplicate$ empty$
- { pop$ "" }
- {
- "\citenamefont{" swap$ * "}" *
- }
- if$
-}
-
-FUNCTION {tie.or.space.prefix}
-{ duplicate$ text.length$ #3 <
- { "~" }
- { word.space }
- if$
- swap$
-}
-
-FUNCTION {capitalize}
-{
- "u" change.case$ "t" change.case$
-}
-
-FUNCTION {space.word}
-{ word.space swap$ * word.space * }
-
- % Here are the language-specific definitions for explicit words.
- % Each function has a name bbl.xxx where xxx is the English word.
- % The language selected here is ENGLISH
-FUNCTION {bbl.and}
-{
- "and"
-}
-
-FUNCTION {bbl.etal}
-{
- "et~al."
-}
-
-FUNCTION {bbl.editors}
-{
- "eds."
-}
-
-FUNCTION {bbl.editor}
-{
- "ed."
-}
-
-FUNCTION {bbl.edby}
-{ "edited by" }
-
-FUNCTION {bbl.edition}
-{
- "ed."
-}
-
-FUNCTION {bbl.volume}
-{
- "vol."
-}
-
-FUNCTION {bbl.of}
-{ "of" }
-
-FUNCTION {bbl.number}
-{
- "no."
-}
-
-FUNCTION {bbl.nr}
-{ "no." }
-
-FUNCTION {bbl.in}
-{ "in" }
-
-FUNCTION {bbl.pages}
-{
- "pp."
-}
-
-FUNCTION {bbl.page}
-{
- "p."
-}
-
-FUNCTION {bbl.eidpp}
-{ "pages" }
-
-FUNCTION {bbl.chapter}
-{
- "chap."
-}
-
-FUNCTION {bbl.techrep}
-{
- "Tech. Rep."
-}
-
-FUNCTION {bbl.mthesis}
-{ "Master's thesis" }
-
-FUNCTION {bbl.phdthesis}
-{ "Ph.D. thesis" }
-
-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" }
-
-MACRO {jan} {"Jan."}
-
-MACRO {feb} {"Feb."}
-
-MACRO {mar} {"Mar."}
-
-MACRO {apr} {"Apr."}
-
-MACRO {may} {"May"}
-
-MACRO {jun} {"Jun."}
-
-MACRO {jul} {"Jul."}
-
-MACRO {aug} {"Aug."}
-
-MACRO {sep} {"Sep."}
-
-MACRO {oct} {"Oct."}
-
-MACRO {nov} {"Nov."}
-
-MACRO {dec} {"Dec."}
-
-FUNCTION {bbl.url.prefix}
-{
- "\urlprefix"
-}
-
-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$
-}
-
- %-------------------------------------------------------------------
- % Begin module:
- % \ProvidesFile{physjour.mbs}[2002/01/14 2.2 (PWD)]
-MACRO {aa}{"Astron. \& Astrophys."}
-MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."}
-MACRO {aj} {"Astron. J."}
-MACRO {aph} {"Acta Phys."}
-MACRO {advp} {"Adv. Phys."}
-MACRO {ajp} {"Amer. J. Phys."}
-MACRO {ajm} {"Amer. J. Math."}
-MACRO {amsci} {"Amer. Sci."}
-MACRO {anofd} {"Ann. Fluid Dyn."}
-MACRO {am} {"Ann. Math."}
-MACRO {ap} {"Ann. Phys. (NY)"}
-MACRO {adp} {"Ann. Phys. (Leipzig)"}
-MACRO {ao} {"Appl. Opt."}
-MACRO {apl} {"Appl. Phys. Lett."}
-MACRO {app} {"Astroparticle Phys."}
-MACRO {apj} {"Astrophys. J."}
-MACRO {apjsup} {"Astrophys. J. Suppl."}
-MACRO {apss} {"Astrophys. Space Sci."}
-MACRO {araa} {"Ann. Rev. Astron. Astrophys."}
-MACRO {baas} {"Bull. Amer. Astron. Soc."}
-MACRO {baps} {"Bull. Amer. Phys. Soc."}
-MACRO {cmp} {"Comm. Math. Phys."}
-MACRO {cpam} {"Commun. Pure Appl. Math."}
-MACRO {cppcf} {"Comm. Plasma Phys. \& Controlled Fusion"}
-MACRO {cpc} {"Comp. Phys. Comm."}
-MACRO {cqg} {"Class. Quant. Grav."}
-MACRO {cra} {"C. R. Acad. Sci. A"}
-MACRO {fed} {"Fusion Eng. \& Design"}
-MACRO {ft} {"Fusion Tech."}
-MACRO {grg} {"Gen. Relativ. Gravit."}
-MACRO {ieeens} {"IEEE Trans. Nucl. Sci."}
-MACRO {ieeeps} {"IEEE Trans. Plasma Sci."}
-MACRO {ijimw} {"Interntl. J. Infrared \& Millimeter Waves"}
-MACRO {ip} {"Infrared Phys."}
-MACRO {irp} {"Infrared Phys."}
-MACRO {jap} {"J. Appl. Phys."}
-MACRO {jasa} {"J. Acoust. Soc. America"}
-MACRO {jcp} {"J. Comp. Phys."}
-MACRO {jetp} {"Sov. Phys.--JETP"}
-MACRO {jfe} {"J. Fusion Energy"}
-MACRO {jfm} {"J. Fluid Mech."}
-MACRO {jmp} {"J. Math. Phys."}
-MACRO {jne} {"J. Nucl. Energy"}
-MACRO {jnec} {"J. Nucl. Energy, C: Plasma Phys., Accelerators, Thermonucl. Res."}
-MACRO {jnm} {"J. Nucl. Mat."}
-MACRO {jpc} {"J. Phys. Chem."}
-MACRO {jpp} {"J. Plasma Phys."}
-MACRO {jpsj} {"J. Phys. Soc. Japan"}
-MACRO {jsi} {"J. Sci. Instrum."}
-MACRO {jvst} {"J. Vac. Sci. \& Tech."}
-MACRO {nat} {"Nature"}
-MACRO {nature} {"Nature"}
-MACRO {nedf} {"Nucl. Eng. \& Design/Fusion"}
-MACRO {nf} {"Nucl. Fusion"}
-MACRO {nim} {"Nucl. Inst. \& Meth."}
-MACRO {nimpr} {"Nucl. Inst. \& Meth. in Phys. Res."}
-MACRO {np} {"Nucl. Phys."}
-MACRO {npb} {"Nucl. Phys. B"}
-MACRO {nt/f} {"Nucl. Tech./Fusion"}
-MACRO {npbpc} {"Nucl. Phys. B (Proc. Suppl.)"}
-MACRO {inc} {"Nuovo Cimento"}
-MACRO {nc} {"Nuovo Cimento"}
-MACRO {pf} {"Phys. Fluids"}
-MACRO {pfa} {"Phys. Fluids A: Fluid Dyn."}
-MACRO {pfb} {"Phys. Fluids B: Plasma Phys."}
-MACRO {pl} {"Phys. Lett."}
-MACRO {pla} {"Phys. Lett. A"}
-MACRO {plb} {"Phys. Lett. B"}
-MACRO {prep} {"Phys. Rep."}
-MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"}
-MACRO {pp} {"Phys. Plasmas"}
-MACRO {ppcf} {"Plasma Phys. \& Controlled Fusion"}
-MACRO {phitrsl} {"Philos. Trans. Roy. Soc. London"}
-MACRO {prl} {"Phys. Rev. Lett."}
-MACRO {pr} {"Phys. Rev."}
-MACRO {physrev} {"Phys. Rev."}
-MACRO {pra} {"Phys. Rev. A"}
-MACRO {prb} {"Phys. Rev. B"}
-MACRO {prc} {"Phys. Rev. C"}
-MACRO {prd} {"Phys. Rev. D"}
-MACRO {pre} {"Phys. Rev. E"}
-MACRO {ps} {"Phys. Scripta"}
-MACRO {procrsl} {"Proc. Roy. Soc. London"}
-MACRO {rmp} {"Rev. Mod. Phys."}
-MACRO {rsi} {"Rev. Sci. Inst."}
-MACRO {science} {"Science"}
-MACRO {sciam} {"Sci. Am."}
-MACRO {sam} {"Stud. Appl. Math."}
-MACRO {sjpp} {"Sov. J. Plasma Phys."}
-MACRO {spd} {"Sov. Phys.--Doklady"}
-MACRO {sptp} {"Sov. Phys.--Tech. Phys."}
-MACRO {spu} {"Sov. Phys.--Uspeki"}
-MACRO {st} {"Sky and Telesc."}
- % End module: physjour.mbs
- %-------------------------------------------------------------------
- % Begin module:
- % \ProvidesFile{geojour.mbs}[2002/07/10 2.0h (PWD)]
-MACRO {aisr} {"Adv. Space Res."}
-MACRO {ag} {"Ann. Geophys."}
-MACRO {anigeo} {"Ann. Geofis."}
-MACRO {angl} {"Ann. Glaciol."}
-MACRO {andmet} {"Ann. d. Meteor."}
-MACRO {andgeo} {"Ann. d. Geophys."}
-MACRO {andphy} {"Ann. Phys.-Paris"}
-MACRO {afmgb} {"Arch. Meteor. Geophys. Bioklimatol."}
-MACRO {atph} {"Atm\'osphera"}
-MACRO {aao} {"Atmos. Ocean"}
-MACRO {ass}{"Astrophys. Space Sci."}
-MACRO {atenv} {"Atmos. Environ."}
-MACRO {aujag} {"Aust. J. Agr. Res."}
-MACRO {aumet} {"Aust. Meteorol. Mag."}
-MACRO {blmet} {"Bound.-Lay. Meteorol."}
-MACRO {bams} {"Bull. Amer. Meteorol. Soc."}
-MACRO {cch} {"Clim. Change"}
-MACRO {cdyn} {"Clim. Dynam."}
-MACRO {cbul} {"Climatol. Bull."}
-MACRO {cap} {"Contrib. Atmos. Phys."}
-MACRO {dsr} {"Deep-Sea Res."}
-MACRO {dhz} {"Dtsch. Hydrogr. Z."}
-MACRO {dao} {"Dynam. Atmos. Oceans"}
-MACRO {eco} {"Ecology"}
-MACRO {empl}{"Earth, Moon and Planets"}
-MACRO {envres} {"Environ. Res."}
-MACRO {envst} {"Environ. Sci. Technol."}
-MACRO {ecms} {"Estuarine Coastal Mar. Sci."}
-MACRO {expa}{"Exper. Astron."}
-MACRO {geoint} {"Geofis. Int."}
-MACRO {geopub} {"Geofys. Publ."}
-MACRO {geogeo} {"Geol. Geofiz."}
-MACRO {gafd} {"Geophys. Astrophys. Fluid Dyn."}
-MACRO {gfd} {"Geophys. Fluid Dyn."}
-MACRO {geomag} {"Geophys. Mag."}
-MACRO {georl} {"Geophys. Res. Lett."}
-MACRO {grl} {"Geophys. Res. Lett."}
-MACRO {ga} {"Geophysica"}
-MACRO {gs} {"Geophysics"}
-MACRO {ieeetap} {"IEEE Trans. Antenn. Propag."}
-MACRO {ijawp} {"Int. J. Air Water Pollut."}
-MACRO {ijc} {"Int. J. Climatol."}
-MACRO {ijrs} {"Int. J. Remote Sens."}
-MACRO {jam} {"J. Appl. Meteorol."}
-MACRO {jaot} {"J. Atmos. Ocean. Technol."}
-MACRO {jatp} {"J. Atmos. Terr. Phys."}
-MACRO {jastp} {"J. Atmos. Solar-Terr. Phys."}
-MACRO {jce} {"J. Climate"}
-MACRO {jcam} {"J. Climate Appl. Meteor."}
-MACRO {jcm} {"J. Climate Meteor."}
-MACRO {jcy} {"J. Climatol."}
-MACRO {jgr} {"J. Geophys. Res."}
-MACRO {jga} {"J. Glaciol."}
-MACRO {jh} {"J. Hydrol."}
-MACRO {jmr} {"J. Mar. Res."}
-MACRO {jmrj} {"J. Meteor. Res. Japan"}
-MACRO {jm} {"J. Meteor."}
-MACRO {jpo} {"J. Phys. Oceanogr."}
-MACRO {jra} {"J. Rech. Atmos."}
-MACRO {jaes} {"J. Aeronaut. Sci."}
-MACRO {japca} {"J. Air Pollut. Control Assoc."}
-MACRO {jas} {"J. Atmos. Sci."}
-MACRO {jmts} {"J. Mar. Technol. Soc."}
-MACRO {jmsj} {"J. Meteorol. Soc. Japan"}
-MACRO {josj} {"J. Oceanogr. Soc. Japan"}
-MACRO {jwm} {"J. Wea. Mod."}
-MACRO {lao} {"Limnol. Oceanogr."}
-MACRO {mwl} {"Mar. Wea. Log"}
-MACRO {mau} {"Mausam"}
-MACRO {meteor} {"``Meteor'' Forschungsergeb."}
-MACRO {map} {"Meteorol. Atmos. Phys."}
-MACRO {metmag} {"Meteor. Mag."}
-MACRO {metmon} {"Meteor. Monogr."}
-MACRO {metrun} {"Meteor. Rundsch."}
-MACRO {metzeit} {"Meteor. Z."}
-MACRO {metgid} {"Meteor. Gidrol."}
-MACRO {mwr} {"Mon. Weather Rev."}
-MACRO {nwd} {"Natl. Weather Dig."}
-MACRO {nzjmfr} {"New Zeal. J. Mar. Freshwater Res."}
-MACRO {npg} {"Nonlin. Proc. Geophys."}
-MACRO {om} {"Oceanogr. Meteorol."}
-MACRO {ocac} {"Oceanol. Acta"}
-MACRO {oceanus} {"Oceanus"}
-MACRO {paleoc} {"Paleoceanography"}
-MACRO {pce} {"Phys. Chem. Earth"}
-MACRO {pmg} {"Pap. Meteor. Geophys."}
-MACRO {ppom} {"Pap. Phys. Oceanogr. Meteor."}
-MACRO {physzeit} {"Phys. Z."}
-MACRO {pps} {"Planet. Space Sci."}
-MACRO {pss} {"Planet. Space Sci."}
-MACRO {pag} {"Pure Appl. Geophys."}
-MACRO {qjrms} {"Quart. J. Roy. Meteorol. Soc."}
-MACRO {quatres} {"Quat. Res."}
-MACRO {rsci} {"Radio Sci."}
-MACRO {rse} {"Remote Sens. Environ."}
-MACRO {rgeo} {"Rev. Geophys."}
-MACRO {rgsp} {"Rev. Geophys. Space Phys."}
-MACRO {rdgeo} {"Rev. Geofis."}
-MACRO {revmeta} {"Rev. Meteorol."}
-MACRO {sgp}{"Surveys in Geophys."}
-MACRO {sp} {"Solar Phys."}
-MACRO {ssr} {"Space Sci. Rev."}
-MACRO {tellus} {"Tellus"}
-MACRO {tac} {"Theor. Appl. Climatol."}
-MACRO {tagu} {"Trans. Am. Geophys. Union (EOS)"}
-MACRO {wrr} {"Water Resour. Res."}
-MACRO {weather} {"Weather"}
-MACRO {wafc} {"Weather Forecast."}
-MACRO {ww} {"Weatherwise"}
-MACRO {wmob} {"WMO Bull."}
-MACRO {zeitmet} {"Z. Meteorol."}
- % End module: geojour.mbs
- %-------------------------------------------------------------------
- % Begin module:
- % \ProvidesFile{photjour.mbs}[1999/02/24 2.0b (PWD)]
-
-MACRO {appopt} {"Appl. Opt."}
-MACRO {bell} {"Bell Syst. Tech. J."}
-MACRO {ell} {"Electron. Lett."}
-MACRO {jasp} {"J. Appl. Spectr."}
-MACRO {jqe} {"IEEE J. Quantum Electron."}
-MACRO {jlwt} {"J. Lightwave Technol."}
-MACRO {jmo} {"J. Mod. Opt."}
-MACRO {josa} {"J. Opt. Soc. America"}
-MACRO {josaa} {"J. Opt. Soc. Amer.~A"}
-MACRO {josab} {"J. Opt. Soc. Amer.~B"}
-MACRO {jdp} {"J. Phys. (Paris)"}
-MACRO {oc} {"Opt. Commun."}
-MACRO {ol} {"Opt. Lett."}
-MACRO {phtl} {"IEEE Photon. Technol. Lett."}
-MACRO {pspie} {"Proc. Soc. Photo-Opt. Instrum. Eng."}
-MACRO {sse} {"Solid-State Electron."}
-MACRO {sjot} {"Sov. J. Opt. Technol."}
-MACRO {sjqe} {"Sov. J. Quantum Electron."}
-MACRO {sleb} {"Sov. Phys.--Leb. Inst. Rep."}
-MACRO {stph} {"Sov. Phys.--Techn. Phys."}
-MACRO {stphl} {"Sov. Techn. Phys. Lett."}
-MACRO {vr} {"Vision Res."}
-MACRO {zph} {"Z. f. Physik"}
-MACRO {zphb} {"Z. f. Physik~B"}
-MACRO {zphd} {"Z. f. Physik~D"}
-
-MACRO {CLEO} {"CLEO"}
-MACRO {ASSL} {"Adv. Sol.-State Lasers"}
-MACRO {OSA} {"OSA"}
- % End module: photjour.mbs
-%% Copyright 1994-2007 Patrick W Daly
-MACRO {acmcs} {"ACM Comput. Surv."}
-
-MACRO {acta} {"Acta Inf."}
-
-MACRO {cacm} {"Commun. ACM"}
-
-MACRO {ibmjrd} {"IBM J. Res. Dev."}
-
-MACRO {ibmsj} {"IBM Syst.~J."}
-
-MACRO {ieeese} {"IEEE Trans. Software Eng."}
-
-MACRO {ieeetc} {"IEEE Trans. Comput."}
-
-MACRO {ieeetcad}
- {"IEEE Trans. Comput. Aid. Des."}
-
-MACRO {ipl} {"Inf. Process. Lett."}
-
-MACRO {jacm} {"J.~ACM"}
-
-MACRO {jcss} {"J.~Comput. Syst. Sci."}
-
-MACRO {scp} {"Sci. Comput. Program."}
-
-MACRO {sicomp} {"SIAM J. Comput."}
-
-MACRO {tocs} {"ACM Trans. Comput. Syst."}
-
-MACRO {tods} {"ACM Trans. Database Syst."}
-
-MACRO {tog} {"ACM Trans. Graphic."}
-
-MACRO {toms} {"ACM Trans. Math. Software"}
-
-MACRO {toois} {"ACM Trans. Office Inf. Syst."}
-
-MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
-
-MACRO {tcs} {"Theor. Comput. Sci."}
-
-FUNCTION {bibinfo.command} { "\bibinfo" }
-
-FUNCTION {bibinfo.check}
-{ swap$
- duplicate$ missing$
- {
- pop$
- pop$ ""
- }{
- duplicate$ empty$
- {
- swap$ pop$
- }{
- swap$
- bibinfo.command " {" * swap$ * "} {" * swap$ * "}" *
- }
- if$
- }
- if$
-}
-
-FUNCTION {bibinfo.warn}
-{ swap$
- duplicate$ missing$
- {
- swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
- ""
- }{
- duplicate$ empty$
- {
- swap$ "empty " swap$ * " in " * cite$ * warning$
- }{
- swap$
- bibinfo.command " {" * swap$ * "} {" * swap$ * "}" *
- }
- if$
- }
- if$
-}
-
-FUNCTION {archiv.base}
-{
- "http://arxiv.org/abs"
-}
-
-FUNCTION {archiv.prefix.base}
-{
- "arXiv"
-}
-
-FUNCTION {eprint.command}
-{
- "\Eprint"
-}
-
-FUNCTION {format.eprint}
-{ eprint duplicate$ empty$
- { pop$ "" }
- {
- duplicate$
- ""
- archive duplicate$ empty$ { pop$ archiv.base } 'skip$ if$ *
- "/" *
- swap$ *
- "{" swap$ * "}" *
- swap$
- ""
- archivePrefix duplicate$ empty$ { pop$ "" } { ":" * } if$ *
- swap$ *
- primaryClass duplicate$ empty$ { pop$ "" } { " [" swap$ * "]" * } if$ *
- "{" swap$ * "}" *
- *
- eprint.command swap$ *
- }
- if$
-}
-
-FUNCTION {format.translation}
-{ translation duplicate$ empty$
- 'skip$
- { ""
- "\translation{" * swap$ * "}" *
- punctuation.space 'punctuation.state :=
- }
- if$
-}
-
-FUNCTION {format.url}
-{
- url duplicate$ empty$
- { pop$ "" }
- {
- "\url"
- "{" * swap$ * "}" *
- }
- if$
-}
-
-INTEGERS { nameptr namesleft numnames }
-
-FUNCTION {check.speaker}
-{ key empty$ 'skip$
- { key nameptr int.to.str$ =
- {
- bolden
- }
- 'skip$
- if$
- }
- if$
-}
-
-
-STRINGS { bibinfo}
-
-FUNCTION {format.names}
-{ 'bibinfo :=
- duplicate$ empty$ 'skip$ {
- 's :=
- "" 't :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- "{ff}" format.name$ duplicate$ empty$ 'skip$
- { tie.or.space.prefix bib.fname.font swap$ * }
- if$
- s nameptr
- "{vv~}{ll}" format.name$ bib.name.font *
- s nameptr
- "{jj}" format.name$ duplicate$ empty$ 'skip$
- { bib.fname.font ", " swap$ * }
- if$
- *
- bibinfo bibinfo.check
- type$ "presentation" =
- { check.speaker }
- 'skip$
- if$
- 't :=
- nameptr #1 >
- {
- namesleft #1 >
- {
- ", " *
- t *
- }{
- s nameptr "{ll}" format.name$ duplicate$ "others" =
- { 't := }
- { pop$ }
- if$
- numnames #2 >
- {
- "," *
- }
- 'skip$
- if$
- t "others" =
- {
- " " * bbl.etal
- emphasize
- *
- }{
- bbl.and
- space.word *
- t *
- }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
- } if$
-}
-
-FUNCTION {format.names.ed}
-{
- format.names
-}
-
-FUNCTION {format.authors}
-{ author "author" format.names
- duplicate$ empty$ 'skip$
- { collaboration "collaboration" bibinfo.check
- duplicate$ empty$ 'skip$
- { " (" swap$ * ")" * }
- if$
- *
- }
- if$
- "author" 'bibfield :=
-}
-
-FUNCTION {get.bbl.editor}
-{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$
-}
-
-FUNCTION {format.editors}
-{ editor "editor" format.names duplicate$ empty$ 'skip$
- {
- "," *
- word.space *
- get.bbl.editor
- *
- }
- if$
-}
-
-FUNCTION {format.isbn}
-{
- isbn "isbn" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- new.block.comma
- "ISBN " swap$ *
- }
- if$
-}
-
-FUNCTION {format.issn}
-{ issn "issn" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- new.block.comma
- "ISSN " swap$ *
- }
- if$
-}
-
-FUNCTION {doi.base}
-{
- "http://dx.doi.org/"
-}
-
-FUNCTION {doi.command}
-{
- "\doi"
-}
-
-FUNCTION {doi.command.href}
-{
- "\Doi"
-}
-
-FUNCTION {format.doi}
-{ doi "doi" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- new.block.comma
- doi.command "{" * swap$ * "}" *
- }
- if$
-}
-
-FUNCTION {add.doi}
-{
- duplicate$ empty$ 'skip$
- {
- doi duplicate$ empty$ 'pop$
- {
- "{" swap$ * "}" *
- swap$
- "{" swap$ * "}" *
- *
- doi.command.href swap$ *
- }
- if$
- }
- if$
-}
-
-FUNCTION {select.language}
-{ duplicate$ empty$
- 'pop$
- { language empty$
- 'skip$
- { "{\selectlanguage {" language * "}" * swap$ * "}" * }
- if$
- }
- if$
-}
-
-FUNCTION {format.note}
-{
- note empty$
- { "" }
- { note #1 #1 substring$
- duplicate$ "{" =
- 'skip$
- {
- output.state after.word = output.state after.punctuation = or
- { "l" }
- { "u" }
- if$ change.case$
- }
- if$
- note #2 global.max$ substring$ * "note" bibinfo.check
- }
- if$
-}
-
-FUNCTION {bbl.enquote}
-{
- "\enquote"
-}
-
-FUNCTION {string.enquote}
-{
- punctuation.no 'punctuation.state :=
- non.stop {
- block.punctuation
- } { "." } if$
- swap$ pop$
- *
- bbl.enquote "{" * swap$ * "}" *
- word.space *
-}
-
-FUNCTION {format.title}
-{ title
- duplicate$ empty$ 'skip$ { "t" change.case$ } if$
- duplicate$ "title" bibinfo.check swap$
- duplicate$ empty$ 'pop$
- {
- punctuation.yes 'punctuation.state :=
- string.enquote
- select.language
- }
- if$
-}
-
-FUNCTION {end.quote.title}
-{ title empty$
- 'skip$
- { before.all 'output.state := }
- if$
-}
-
-FUNCTION {year.bibitem}
-{
- year duplicate$ empty$
- { pop$ ""
- "????" *
- }{
- skip$
- } if$
-}
-
-FUNCTION {output.bibitem}
-{
- newline$
- ""
- "{" * cite$ * "}%" *
- "\bibitem"
- swap$ *
- write$ newline$
- " "
- duplicate$ bbl.open * write$ newline$
- before.all 'output.state :=
- punctuation.yes 'punctuation.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 {word.in}
-{
- bbl.in
- word.space *
-}
-
-FUNCTION {date.encapsulate}
-{
- duplicate$ empty$
- 'skip$
- {
- before.all 'output.state :=
- " (" swap$ * ")" *
- }
- if$
-}
-
-FUNCTION {format.date}
-{
- month "month" bibinfo.check
- duplicate$ empty$
- year "year" bibinfo.check duplicate$ empty$
- { swap$ 'skip$
- { "there's a month but no year in " cite$ * warning$ }
- if$
- *
- }{
- swap$ 'skip$
- {
- swap$
- word.space * swap$
- }
- if$
- *
- }
- if$
- date.encapsulate
-}
-
-FUNCTION {format.date.output.check}
-{
- format.date
- "year" output.check
-}
-
-FUNCTION {format.date.output}
-{
- format.date output
-}
-
-FUNCTION {format.btitle}
-{
- booktitle duplicate$ empty$ { pop$
- title
- } 'skip$ if$
- "title" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- emphasize
- select.language
- }
- if$
-}
-
-FUNCTION {either.or.check}
-{ empty$
- 'pop$
- { "can't use both " swap$ * " fields in " * cite$ * warning$ }
- if$
-}
-
-FUNCTION {editor.check.book}
-{ editor empty$ 'skip$
- {
- "can't use both author and editor fields in " cite$ *
- ": try using @inbook instead" *
- warning$
- }
- if$
-}
-
-FUNCTION {format.bvolume}
-{ volume duplicate$ empty$
- { pop$ "" }
- {
- "volume and number" number either.or.check
- bbl.volume
- capitalize
- swap$
- tie.or.space.prefix "volume" bibinfo.check * *
- series "series" bibinfo.check duplicate$ empty$ 'pop$
- {
- ", "
- * swap$ *
- }
- if$
- }
- if$
-}
-
-FUNCTION {format.number}
-{
- bbl.number
- output.state after.word = output.state after.punctuation = or
- #1 or
- #0 and
- 'skip$
- { capitalize }
- if$
- number tie.or.space.prefix "number" bibinfo.check * *
-}
-
-FUNCTION {format.number.series}
-{ volume empty$
- { number empty$
- { series field.or.null }
- {
- series empty$
- {
- number "number" bibinfo.check
- }{
- format.number
- series "series" bibinfo.check
- word.space * swap$ *
- }
- 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 {convert.edition}
-{ extract.num "l" change.case$ 's :=
- s "first" = s "1" = or
- { bbl.first 't := }
- { s "second" = s "2" = or
- { bbl.second 't := }
- { s "third" = s "3" = or
- { bbl.third 't := }
- { s "fourth" = s "4" = or
- { bbl.fourth 't := }
- { s "fifth" = s "5" = or
- { bbl.fifth 't := }
- { s #1 #1 substring$ is.num
- { s
- eng.ord
- 't := }
- { edition 't := }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- t
-}
-
-FUNCTION {format.edition}
-{ edition duplicate$ empty$ 'skip$
- {
- convert.edition
- output.state after.word = output.state after.punctuation = or
- { "l" }
- { "t" }
- if$ change.case$
- "edition" bibinfo.check
- word.space * 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 duplicate$ empty$
- 'skip$
- { duplicate$ multi.page.check
- {
- bbl.pages swap$
- n.dashify
- }{
- bbl.page swap$
- }
- if$
- tie.or.space.prefix
- "pages" bibinfo.check
- * *
- }
- if$
-}
-
-FUNCTION {format.book.pages}
-{
- pages duplicate$ empty$ 'skip$
- {
- "pages" bibinfo.check word.space bbl.pages * *
- }
- if$
-}
-
-FUNCTION {volnum.punct}
-{
- ","
- word.space *
-}
-
-FUNCTION {format.journal.pages}
-{ pages duplicate$ empty$ 'pop$
- { swap$ duplicate$ empty$
- { pop$ pop$ format.pages }
- { volnum.punct *
- swap$
- n.dashify
- "pages" bibinfo.check
- *
- }
- if$
- }
- if$
-}
-
-FUNCTION {format.journal.eid}
-{ eid "eid" bibinfo.check
- duplicate$ empty$ 'pop$
- { swap$ duplicate$ empty$ 'skip$
- { volnum.punct * }
- if$
- swap$ *
- }
- if$
-}
-
-FUNCTION {eid.or.pages}
-{
- eid empty$
- { format.journal.pages }
- { format.journal.eid }
- if$
-}
-
-FUNCTION {format.ser.vol.num}
-{
- series "series" bibinfo.check output
- after.punctuation 'output.state :=
- volume field.or.null
- duplicate$ empty$ 'skip$
- {
- "volume" bibinfo.check
- }
- if$
- bolden
-}
-
-FUNCTION {format.chapter.pages}
-{ chapter empty$
- {
- format.pages
- }
- { type empty$
- {
- bbl.chapter
- capitalize
- }{
- type
- capitalize
- "type" bibinfo.check
- }
- if$
- chapter tie.or.space.prefix
- "chapter" bibinfo.check
- * *
- pages empty$
- 'skip$
- { ", " * format.pages * }
- if$
- }
- if$
-}
-
-FUNCTION {format.booktitle}
-{
- booktitle duplicate$ "booktitle" bibinfo.check swap$
- duplicate$ empty$ 'pop$
- {
- punctuation.yes 'punctuation.state :=
- pop$ emphasize
- select.language
- }
- if$
-}
-
-FUNCTION {format.editor.in}
-{
- editor "editor" format.names.ed duplicate$ empty$ 'skip$
- {
- bbl.edby
- word.space * swap$ *
- }
- if$
-}
-
-FUNCTION {output.article.booktitle}
-{
- format.booktitle
- "booktitle" 'bibfield :=
- output
- bookaddress "address" bibinfo.check duplicate$ empty$ 'pop$
- {
- "address" 'bibfield :=
- output.nonnull after.punctuation 'output.state :=
- }
- if$
-}
-
-FUNCTION {format.in.ed.booktitle}
-{
- format.booktitle duplicate$ empty$ 'pop$
- {
- add.doi
- word.in swap$ * output.nonnull
- bookaddress "address" bibinfo.check output
- format.number.series "series and number" bibinfo.check output
- format.bvolume output
- format.editor.in "editor" bibinfo.check output
- }
- if$
-}
-
-FUNCTION {format.in.ed.booktitle.inbook}
-{
- format.booktitle duplicate$ empty$ 'pop$
- {
- add.doi
- word.in swap$ * output.nonnull
- bookaddress "address" bibinfo.check output
- format.number.series "series and number" bibinfo.check output
- format.bvolume output
- author empty$ 'skip$
- { format.editor.in "editor" bibinfo.check output }
- if$
- }
- if$
-}
-
-FUNCTION {empty.misc.check}
-{ author empty$ title empty$ howpublished empty$
- month empty$ year empty$ note empty$
- and and and and and
- { "all relevant fields are empty in " cite$ * warning$ }
- 'skip$
- if$
-}
-
-FUNCTION {format.thesis.type}
-{ type duplicate$ empty$
- 'pop$
- { swap$ pop$
- "t" change.case$ "type" bibinfo.check
- }
- if$
-}
-
-FUNCTION {format.tr.number}
-{ number "number" bibinfo.check
- type duplicate$ empty$
- { pop$ bbl.techrep }
- 'skip$
- if$
- "type" bibinfo.check
- swap$ duplicate$ empty$
- { pop$ "t" change.case$ }
- { tie.or.space.prefix * * }
- if$
-}
-
-FUNCTION {format.article.crossref}
-{
- key duplicate$ empty$
- { pop$
- journal duplicate$ empty$
- { "need key or journal for " cite$ * " to crossref " * crossref * warning$ }
- { "journal" bibinfo.check emphasize word.in swap$ * }
- if$
- }
- { word.in swap$ * word.space *}
- if$
- " \cite{" * crossref * "}" *
-}
-
-FUNCTION {format.crossref.editor}
-{ editor #1 "{vv~}{ll}" format.name$
- bib.name.font
- "editor" bibinfo.check
- editor num.names$ duplicate$
- #2 >
- { pop$
- "editor" bibinfo.check
- word.space * bbl.etal
- emphasize
- *
- }
- { #2 <
- 'skip$
- { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- {
- "editor" bibinfo.check
- word.space * bbl.etal
- emphasize
- *
- }{
- bbl.and space.word
- * editor #2 "{vv~}{ll}" format.name$
- bib.name.font
- "editor" bibinfo.check
- *
- }
- if$
- }
- if$
- }
- if$
-}
-
-FUNCTION {format.book.crossref}
-{ volume duplicate$ empty$
- { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
- pop$ word.in
- }
- { bbl.volume
- swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
- }
- if$
- editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
- { series empty$
- { "need editor, key, or series for " cite$ * " to crossref " *
- crossref * warning$
- "" *
- }
- { series emphasize * }
- if$
- }
- { key * }
- if$
- }
- { format.crossref.editor * }
- if$
- " \cite{" * crossref * "}" *
-}
-
-FUNCTION {format.incoll.inproc.crossref}
-{
- editor empty$
- editor field.or.null author field.or.null =
- or
- { key empty$
- { format.booktitle duplicate$ empty$
- { "need editor, key, or booktitle for " cite$ * " to crossref " *
- crossref * warning$
- }
- { word.in swap$ * }
- if$
- }
- { word.in key * word.space *}
- if$
- }
- { word.in format.crossref.editor * word.space *}
- if$
- " \cite{" * crossref * "}" *
-}
-
-FUNCTION {format.org.or.pub}
-{ 't :=
- ""
- address "address" bibinfo.check
- duplicate$ empty$
- { pop$ t }
- { t duplicate$ empty$
- { pop$ }
- {
- "," word.space *
- * swap$ *
- }
- if$
- }
- if$
- *
- year duplicate$ empty$
- {
- "empty year in " cite$ *
- warning$
- pop$ ""
- }
- 'skip$
- if$
- duplicate$ empty$
- { pop$ }
- {
- "year" bibinfo.check
- swap$
- duplicate$ empty$
- { pop$ }
- {
- "," *
- word.space *
- swap$ *
- }
- if$
- }
- if$
- duplicate$ empty$ 'skip$ {
- ""
- "(" * swap$ * ")" *
- after.punctuation 'output.state :=
- punctuation.space 'punctuation.state :=
- } if$
-}
-
-FUNCTION {format.publisher.address}
-{ publisher "publisher" bibinfo.warn format.org.or.pub
-}
-
-FUNCTION {format.organization.address}
-{ organization "organization" bibinfo.check format.org.or.pub
-}
-
-FUNCTION {format.organization.publisher.address}
-{
- publisher empty$
- { format.organization.address }
- { organization "organization" bibinfo.check output
- format.publisher.address
- }
- if$
-}
-
-FUNCTION {format.school.address.output}
-{
- school "school" bibinfo.warn
- address "address" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- swap$
- duplicate$ empty$ 'skip$
- {
- ", " *
- }
- if$
- swap$
- }
- if$
- *
- output
-}
-
-FUNCTION {article}
-{ output.bibitem
- format.authors
- booktitle empty$ {
- "author" output.check
- }{ output } if$
- new.block.comma
- format.title
- "title" 'bibfield :=
- output
- new.block.comma
- output.article.booktitle
- crossref missing$
- {
- journal
- "journal" bibinfo.warn
- pages empty$ 'skip$ { add.doi } if$
- "journal" 'bibfield :=
- output
- format.ser.vol.num
- output
- eid.or.pages
- format.date.output.check
- }{
- format.article.crossref output.nonnull
- format.pages output
- }
- if$
- format.issn output
- pages empty$ {
- format.doi output
- } 'skip$ if$
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- format.translation output
- fin.entry
-}
-
-FUNCTION {book}
-{ output.bibitem
- author empty$
- {
- }{
- format.authors output.nonnull
- crossref missing$ { editor.check.book } 'skip$ if$
- }
- if$
- new.block.comma
- format.btitle
- add.doi
- "title" output.check
- format.edition output
- author empty$
- {
- format.editor.in output
- }
- {
- }
- if$
- format.number.series output
- crossref missing$
- {
- format.bvolume output
- new.block.comma
- format.publisher.address output
- }{
- new.block.comma
- format.book.crossref output.nonnull
- format.date.output.check
- }
- if$
- format.isbn output
- format.chapter.pages
- output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {booklet}
-{ output.bibitem
- format.authors output
- new.block.comma
- format.title
- add.doi
- "title" output.check
- new.block.comma
- howpublished "howpublished" bibinfo.check output
- address "address" bibinfo.check output
- format.date.output
- format.isbn output
- format.book.pages output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {inbook}
-{ output.bibitem
- author empty$
- {
- format.editors "editor" output.check
- }{
- format.authors output.nonnull
- }
- if$
- new.block.comma
-
- format.title output
- new.block.comma
-
- crossref missing$
- {
- format.in.ed.booktitle.inbook
- format.publisher.address output
- format.chapter.pages
- "chapter and pages"
- output.check
- new.block.comma
- format.edition output
- new.block.comma
- }{
- format.chapter.pages
- "chapter and pages"
- output.check
- new.block.comma
- format.book.crossref output.nonnull
- format.date.output.check
- }
- if$
- crossref missing$
- { format.isbn output }
- 'skip$
- if$
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {incollection}
-{ output.bibitem
- format.authors "author" output.check
- new.block.comma
- format.title
- output
- new.block.comma
- crossref missing$
- {
- format.in.ed.booktitle
- format.publisher.address output
- format.edition output
- format.chapter.pages output
- format.isbn output
- }{
- format.incoll.inproc.crossref output.nonnull
- format.chapter.pages output
- }
- if$
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {inproceedings}
-{ output.bibitem
- format.authors "author" output.check
- new.block.comma
- format.title
- output
- new.block.comma
- crossref missing$
- {
- format.in.ed.booktitle
- format.organization.publisher.address output
- format.chapter.pages output
- format.isbn output
- format.issn output
- }{
- format.incoll.inproc.crossref output.nonnull
- format.chapter.pages output
- }
- if$
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {conference} { inproceedings }
-FUNCTION {manual}
-{ output.bibitem
- author empty$
- { organization "organization" bibinfo.check
- duplicate$ empty$ 'pop$
- { output
- address "address" bibinfo.check output
- }
- if$
- }{
- format.authors output.nonnull
- }
- if$
- new.block.comma
- format.btitle
- add.doi
- "title" output.check
- author empty$
- { organization empty$
- {
- address "address" bibinfo.check output
- }
- 'skip$
- if$
- }{
- organization "organization" bibinfo.check output
- address "address" bibinfo.check output
- }
- if$
- format.edition output
- format.date.output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {mastersthesis}
-{ output.bibitem
- format.authors "author" output.check
- new.block.comma
- format.btitle
- output
- new.block.comma
- bbl.mthesis
- format.thesis.type
- add.doi
- output.nonnull
- format.school.address.output
- format.date.output.check
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {misc}
-{ output.bibitem
- format.authors output
- format.title output
- howpublished "howpublished" bibinfo.check output
- format.date.output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
- empty.misc.check
-}
-
-FUNCTION {phdthesis}
-{ output.bibitem
- format.authors "author" output.check
- new.block.comma
- format.btitle
- output
- new.block.comma
- bbl.phdthesis
- format.thesis.type
- add.doi
- output.nonnull
- format.school.address.output
- format.date.output.check
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {presentation}
-{ output.bibitem
- format.authors output
- new.block.comma
- format.title output
- new.block.comma
- format.organization.address "organization and address" output.check
- month "month" output.check
- year "year" output.check
- new.block.comma
- new.sentence.comma
- format.note output
- new.sentence
- type missing$ 'skip$
- {"(" type capitalize * ")" * output}
- if$
- new.block.comma format.url output
- fin.entry
-}
-
-FUNCTION {proceedings}
-{ output.bibitem
- editor empty$
- { organization "organization" bibinfo.check output }
- { format.editors output.nonnull }
- if$
- new.block.comma
- format.btitle
- add.doi
- "title" output.check
- bookaddress "address" bibinfo.check output
- format.number.series output
- format.bvolume output
- editor empty$
- {
- publisher empty$
- {
- }{
- format.publisher.address output
- }
- if$
- }{
- format.organization.publisher.address output
- }
- if$
- format.isbn output
- format.issn output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {techreport}
-{ output.bibitem
- format.authors "author" output.check
- new.block.comma
- format.btitle
- add.doi
- "title" output.check
- new.block.comma
- format.tr.number
- output.nonnull
- institution "institution" bibinfo.warn
- format.org.or.pub output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {unpublished}
-{ output.bibitem
- format.authors "author" output.check
- new.block.comma
- format.title
- add.doi
- "title" output.check
- format.date.output
- new.block.comma
- new.sentence.comma
- format.note "note" output.check
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {default.type} { misc }
-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 {init.bib.eprint}
-{
- "\texttt{"
- pop$
- "\providecommand \url [0]{\begingroup\@sanitize \@url }%" write$ newline$
- "\providecommand \@url [1]{\endgroup\@href {#1}{" "}}%" bbl.url.prefix swap$ * * write$ newline$
- "\providecommand " " [0]{URL }%" bbl.url.prefix swap$ * * write$ newline$
- eprint.command "\providecommand " swap$ * "[0]{\href }%" * write$ newline$
-}
-
-FUNCTION {init.bib.doi}
-{
- "\@ifxundefined \urlstyle {%" write$ newline$
- " \providecommand \doi [1]{doi:\discretionary{}{}{}#1}%" write$ newline$
- "}{%" write$ newline$
- " \providecommand \doi [0]{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url }%"
- write$ newline$
- "}%" write$ newline$
- "\providecommand \doibase [0]{" doi.base * "}%" * write$ newline$
- doi.command.href "\providecommand " swap$ * "[1]{\href{\doibase#1}}%" * write$ newline$
-}
-
-FUNCTION {init.bib.hypertex}
-{
- "\providecommand\href[0]{\@sanitize\@href}%" write$ newline$
- "\providecommand\@href[1]{\endgroup\@@startlink{#1}\endgroup\@@href}%" write$ newline$
- "\providecommand\@@href[1]{#1\@@endlink}%" write$ newline$
- "\providecommand \@sanitize [0]{\begingroup\catcode`\&12\catcode`\#12\relax}%" write$ newline$
- "\@ifxundefined \pdfoutput {\@firstoftwo}{%" write$ newline$
- " \@ifnum{\z@=\pdfoutput}{\@firstoftwo}{\@secondoftwo}%" write$ newline$
- "}{%" write$ newline$
- " \providecommand\@@startlink[1]{\leavevmode\special{html:<a href=" quote$ * "#1" * quote$ * ">}}%" * write$ newline$
- " \providecommand\@@endlink[0]{\special{html:</a>}}%" write$ newline$
- "}{%" write$ newline$
- " \providecommand\@@startlink[1]{%" write$ newline$
- " \leavevmode" write$ newline$
- " \pdfstartlink" write$ newline$
- " attr{/Border[0 0 1 ]/H/I/C[0 1 1]}%" write$ newline$
- " user{/Subtype/Link/A<</Type/Action/S/URI/URI(#1)>>}%" write$ newline$
- " \relax" write$ newline$
- " }%" write$ newline$
- " \providecommand\@@endlink[0]{\pdfendlink}%" write$ newline$
- "}%" write$ newline$
-}
-
-FUNCTION {init.bib.namefont}
-{
- "\providecommand \bibnamefont [1]{#1}%" write$ newline$
- "\providecommand \bibfnamefont [1]{#1}%" write$ newline$
- "\providecommand \citenamefont [1]{#1}%" write$ newline$
-}
-
-FUNCTION {init.bib.quote}
-{
- "\providecommand " bbl.enquote * " [1]{" *
- "``" "''"
- "#1" swap$ "}%" * * * * write$ newline$
-}
-
-FUNCTION {init.bib.annote}
-{
- "\providecommand \bibAnnote [3]{%" write$ newline$
- " " bbl.shut * "{#1}%" * write$ newline$
- " \begin{quotation}\noindent" write$ newline$
- " \textsc{Key:}\ #2\\\textsc{Annotation:}\ #3%" write$ newline$
- " \end{quotation}%" write$ newline$
- "}%" write$ newline$
- "\providecommand \bibAnnoteFile [2]{%" write$ newline$
- " \IfFileExists{#2}{\bibAnnote {#1} {#2} {\input{#2}}}{}%" write$ newline$
- "}%" write$ newline$
- "\providecommand \typeout [0]{\immediate \write \m@ne }%" write$ newline$
-}
-
-FUNCTION {init.bib.bibinfo}
-{
- bibinfo.command "\providecommand " swap$ * " [0]{\@secondoftwo}%" * write$ newline$
- bibfield.command "\providecommand " swap$ * " [0]{\@secondoftwo}%" * write$ newline$
-}
-
-FUNCTION {init.bib.lang}
-{
- "\providecommand \selectlanguage [0]{\@gobble}%" write$ newline$
-}
-
-FUNCTION {init.bib.endbibitem}
-{
- "\providecommand " bbl.open * "[0]{}%" * write$ newline$
- "\providecommand \bibitemStop [0]{}%" write$ newline$
- "\providecommand \bibitemNoStop [0]{.\EOS\space}%" write$ newline$
- "\providecommand \EOS [0]{\spacefactor3000\relax}%" write$ newline$
-}
-
-FUNCTION {init.bib.translation}
-{
- "\providecommand \translation [1]{[#1]}%" write$ newline$
-}
-
-FUNCTION {warn.bib}
-{
-}
-
-FUNCTION {init.bib}
-{
- warn.bib
- "\makeatletter" write$ newline$
- "\providecommand \@ifxundefined [1]{%" write$ newline$
- " \ifx #1\undefined \expandafter \@firstoftwo" write$ newline$
- " \else \expandafter \@secondoftwo" write$ newline$
- "\fi" write$ newline$
- "}%" write$ newline$
- "\providecommand \@ifnum [1]{%" write$ newline$
- " \ifnum #1\expandafter \@firstoftwo" write$ newline$
- " \else \expandafter \@secondoftwo" write$ newline$
- "\fi" write$ newline$
- "}%" write$ newline$
- init.bib.quote
- init.bib.namefont
- init.bib.hypertex
- init.bib.eprint
- init.bib.doi
- init.bib.annote
- init.bib.lang
- init.bib.bibinfo
- init.bib.translation
- init.bib.endbibitem
- "\providecommand " bbl.shut * " [1]{\csname bibitem#1\endcsname}%" * write$ newline$
- "%</preamble>" write$
-}
-
-FUNCTION {begin.bib}
-{
- id.bst duplicate$ top$ "%" swap$ * write$ newline$
- preamble$ empty$
- 'skip$
- { preamble$ write$ newline$ }
- if$
- "\begin{thebibliography}{"
- longest.label
- * "}%" *
- write$ newline$
- init.bib
-}
-
-EXECUTE {begin.bib}
-EXECUTE {init.state.consts}
-ITERATE {call.type$}
-FUNCTION {end.bib}
-{ newline$
- "\end{thebibliography}%"
- write$ newline$
-}
-
-EXECUTE {end.bib}
-%% End of customized bst file
-%%
-%% End of file `apsrev4-1long.bst'.
diff --git a/Master/texmf-dist/bibtex/bst/revtex/apsrmp4-1.bst b/Master/texmf-dist/bibtex/bst/revtex/apsrmp4-1.bst
index bb36eaa5a41..f9098d4442e 100644
--- a/Master/texmf-dist/bibtex/bst/revtex/apsrmp4-1.bst
+++ b/Master/texmf-dist/bibtex/bst/revtex/apsrmp4-1.bst
@@ -4,13 +4,13 @@
%%
%% The original source files were:
%%
-%% merlin.mbs (with options: `head,ay,nat,lang,annote,pres,pres-bf,vonx,nm-rev1,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,dt-beg,yr-com,aymth,dtrev,date-nil-x,note-yr,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-sp,volp-com,jpg-1,pp-last,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-par,ay-empty-pub-parens-x,pre-edn,school-par,isbn,issn,doi-link,doi,bkedcap,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,and-com,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% physjour.mbs (with options: `ay,nat,lang,annote,pres,pres-bf,vonx,nm-rev1,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,dt-beg,yr-com,aymth,dtrev,date-nil-x,note-yr,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-sp,volp-com,jpg-1,pp-last,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-par,ay-empty-pub-parens-x,pre-edn,school-par,isbn,issn,doi-link,doi,bkedcap,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,and-com,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% geojour.mbs (with options: `ay,nat,lang,annote,pres,pres-bf,vonx,nm-rev1,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,dt-beg,yr-com,aymth,dtrev,date-nil-x,note-yr,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-sp,volp-com,jpg-1,pp-last,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-par,ay-empty-pub-parens-x,pre-edn,school-par,isbn,issn,doi-link,doi,bkedcap,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,and-com,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% photjour.mbs (with options: `ay,nat,lang,annote,pres,pres-bf,vonx,nm-rev1,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,dt-beg,yr-com,aymth,dtrev,date-nil-x,note-yr,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-sp,volp-com,jpg-1,pp-last,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-par,ay-empty-pub-parens-x,pre-edn,school-par,isbn,issn,doi-link,doi,bkedcap,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,and-com,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% merlin.mbs (with options: `tail,ay,nat,lang,annote,pres,pres-bf,vonx,nm-rev1,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,dt-beg,yr-com,aymth,dtrev,date-nil-x,note-yr,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-sp,volp-com,jpg-1,pp-last,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-par,ay-empty-pub-parens-x,pre-edn,school-par,isbn,issn,doi-link,doi,bkedcap,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,and-com,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
+%% merlin.mbs (with options: `head,ay,nat,lang,pres,pres-bf,vonx,nm-rev1,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,dt-beg,yr-par,dtrev,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-sp,volp-com,jpg-1,pp-last,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-par,ay-empty-pub-parens-x,pre-edn,school-par,isbn,issn,doi-link,doi,bkedcap,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,and-com,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
+%% physjour.mbs (with options: `ay,nat,lang,pres,pres-bf,vonx,nm-rev1,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,dt-beg,yr-par,dtrev,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-sp,volp-com,jpg-1,pp-last,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-par,ay-empty-pub-parens-x,pre-edn,school-par,isbn,issn,doi-link,doi,bkedcap,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,and-com,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
+%% geojour.mbs (with options: `ay,nat,lang,pres,pres-bf,vonx,nm-rev1,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,dt-beg,yr-par,dtrev,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-sp,volp-com,jpg-1,pp-last,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-par,ay-empty-pub-parens-x,pre-edn,school-par,isbn,issn,doi-link,doi,bkedcap,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,and-com,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
+%% photjour.mbs (with options: `ay,nat,lang,pres,pres-bf,vonx,nm-rev1,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,dt-beg,yr-par,dtrev,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-sp,volp-com,jpg-1,pp-last,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-par,ay-empty-pub-parens-x,pre-edn,school-par,isbn,issn,doi-link,doi,bkedcap,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,and-com,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
+%% merlin.mbs (with options: `tail,ay,nat,lang,pres,pres-bf,vonx,nm-rev1,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,dt-beg,yr-par,dtrev,date-nil-x,tit-qq,inproceedings-chapter,jtit-x,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-sp,volp-com,jpg-1,pp-last,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-par,ay-empty-pub-parens-x,pre-edn,school-par,isbn,issn,doi-link,doi,bkedcap,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,and-com,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
%% ----------------------------------------
-%% *** REVTeX-compatible RMP 2009-10-08 ***
+%% *** REVTeX-compatible RMP 2010-02-12 ***
%%
%% Copyright 1994-2007 Patrick W Daly
% ===============================================================
@@ -24,7 +24,6 @@
% version 1 of the License, or any later version.
% ===============================================================
% Name and version information of the main mbs file:
- % \ProvidesFile{merlin.mbs}[2008/01/17 4.21 (PWD, AO, DPC)]
% For use with BibTeX version 0.99a or later
%-------------------------------------------------------------------
% This bibliography style file is intended for texts in ENGLISH
@@ -55,11 +54,10 @@
% \citeyear{key} ==>> 1990
%---------------------------------------------------------------------
-FUNCTION {id.bst} {"Merlin.mbs v4.21 2009-07-09. "}
+FUNCTION {id.bst} {"merlin.mbs 2010-03-15 4.21a (PWD, AO, DPC)"}
ENTRY
{
address
- annote
archive
archivePrefix
author
@@ -115,6 +113,7 @@ INTEGERS
}
STRINGS { bibfield output.bibfield }
+
FUNCTION {not}
{ { #0 }
{ #1 }
@@ -139,6 +138,401 @@ FUNCTION {non.stop}
#-1 #1 substring$ "." =
}
+INTEGERS { arith.mulitplier arith.multiplicand }
+
+FUNCTION {multiply}
+{
+ 'arith.multiplicand :=
+ 'arith.mulitplier :=
+ #0
+ { arith.mulitplier #0 > }
+ { arith.multiplicand +
+ arith.mulitplier #1 - 'arith.mulitplier :=
+ }
+ while$
+}
+
+FUNCTION {chr.to.hex}
+{
+ chr.to.int$
+ duplicate$ "0" chr.to.int$ -
+ duplicate$ duplicate$ #0 < swap$ #9 > or not
+ { swap$ pop$ }
+ { pop$
+ duplicate$ "A" chr.to.int$ -
+ duplicate$ duplicate$ #0 < swap$ #5 > or not
+ { swap$ pop$ #10 + }
+ { pop$
+ duplicate$ "a" chr.to.int$ -
+ duplicate$ duplicate$ #0 < swap$ #5 > or not
+ { swap$ pop$ #10 + }
+ { pop$
+ pop$ #-1
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+INTEGERS { arith.accumulator }
+
+FUNCTION {str.to.hex}
+{ #0 'arith.accumulator :=
+ { duplicate$ empty$ not }
+ { duplicate$ #1 #1 substring$ chr.to.hex
+ duplicate$ #0 <
+ { pop$ pop$ ""
+ }
+ { arith.accumulator #16 multiply + 'arith.accumulator :=
+ #2 global.max$ substring$
+ }
+ if$
+ }
+ while$
+ pop$ arith.accumulator
+}
+
+FUNCTION {diagn.cmntlog}
+{
+ duplicate$ top$ "%" swap$ * write$ newline$
+}
+
+INTEGERS { control.key control.author control.editor control.title control.pages control.eprint control.year }
+
+INTEGERS { control.author.jnrlst control.author.dotless control.author.nospace control.author.initials control.author.nocomma control.author.first control.author.reversed }
+
+FUNCTION { control.init }
+{
+ #0
+ 'control.key :=
+ #0
+ #1 +
+ #2 +
+ #8 +
+ #64 +
+ 'control.author :=
+ #1
+ 'control.author.jnrlst :=
+ #0
+ 'control.author.dotless :=
+ #0
+ 'control.author.nospace :=
+ #1
+ 'control.author.initials :=
+ #0
+ 'control.author.nocomma :=
+ #1
+ 'control.author.first :=
+ #1
+ 'control.author.reversed :=
+ #0
+ 'control.editor :=
+ #-1
+ 'control.title :=
+ #0
+ 'control.pages :=
+ #0
+ 'control.eprint :=
+ #1
+ 'control.year :=
+}
+
+FUNCTION {warning.dependency}
+{
+ " (dependency: " * swap$ * ") set " * swap$ int.to.str$ * warning$
+}
+
+FUNCTION {control.check}
+{
+ control.editor
+ {
+ "editor formatted same as author"
+ control.author.reversed {
+ duplicate$ #0 swap$ "reversed" warning.dependency
+ #0 'control.author.reversed :=
+ } 'skip$ if$
+ control.author.first {
+ duplicate$ #0 swap$ "first" warning.dependency
+ #0 'control.author.first :=
+ } 'skip$ if$
+ control.author.nocomma {
+ duplicate$ #0 swap$ "nocomma" warning.dependency
+ #0 'control.author.nocomma :=
+ } 'skip$ if$
+ pop$
+ } 'skip$ if$
+ control.author.reversed 'skip$
+ {
+ "not reversed"
+ control.author.nospace {
+ duplicate$ #0 swap$ "nospace" warning.dependency
+ #0 'control.author.nospace :=
+ } 'skip$ if$
+ control.author.jnrlst 'skip$ {
+ duplicate$ #1 swap$ "jnrlst" warning.dependency
+ #1 'control.author.jnrlst :=
+ } if$
+ control.author.initials {
+ duplicate$ ", initials" *
+ control.author.dotless {
+ duplicate$ #0 swap$ "dotless" warning.dependency
+ #0 'control.author.dotless :=
+ } 'skip$ if$
+ pop$
+ } 'skip$ if$
+ pop$
+ }
+ if$
+ control.author.initials 'skip$ {
+ "not initials"
+ control.author.nocomma {
+ duplicate$ #0 swap$ "nocomma" warning.dependency
+ #0 'control.author.nocomma :=
+ } 'skip$ if$
+ control.author.nospace {
+ duplicate$ #0 swap$ "nospace" warning.dependency
+ #0 'control.author.nospace :=
+ } 'skip$ if$
+ control.author.dotless 'skip$ {
+ duplicate$ #1 swap$ "dotless" warning.dependency
+ #1 'control.author.dotless :=
+ } if$
+ pop$
+ } if$
+}
+
+FUNCTION {control.parse}
+{
+ duplicate$ duplicate$ missing$
+ {
+ pop$ pop$ pop$
+ }
+ { empty$
+ {
+ pop$ #-1
+ }{
+ str.to.hex
+ }
+ if$
+ swap$ :=
+ }
+ if$
+}
+
+FUNCTION {control.dump}
+{
+ duplicate$ missing$ { pop$ "N/A" } 'skip$ if$
+ "{" swap$ * "}, " *
+ *
+}
+
+INTEGERS { decode.threshold }
+
+FUNCTION {control.decode}
+{
+ - duplicate$
+ #0 <
+ {
+ skip$ pop$ swap$ #0
+ }
+ {
+ swap$ pop$ swap$ #1
+ }
+ if$
+ swap$ :=
+}
+
+FUNCTION {control.author.decode}
+{
+ control.author
+ duplicate$ duplicate$ #0 < swap$ #128 < not or
+ {
+ int.to.str$ "(" swap$ * ")" *
+ "Control cannot interpret author " swap$ *
+ warning$
+ }{
+ 'control.author.jnrlst swap$ duplicate$ #64 control.decode
+ 'control.author.dotless swap$ duplicate$ #32 control.decode
+ 'control.author.nospace swap$ duplicate$ #16 control.decode
+ 'control.author.initials swap$ duplicate$ #8 control.decode
+ 'control.author.nocomma swap$ duplicate$ #4 control.decode
+ 'control.author.first swap$ duplicate$ #2 control.decode
+ 'control.author.reversed swap$ duplicate$ #1 control.decode
+ duplicate$ #0 =
+ 'skip$
+ {
+ "Control: residue of author"
+ "(" swap$ * ")" * *
+ warning$
+ }
+ if$
+ pop$
+ }
+ if$
+}
+
+FUNCTION {control.setup}
+{
+ type$ cite$ "{" swap$ * "}, " * *
+ "control.key" key control.dump *
+ "control.author" author control.dump *
+ "control.editor" editor control.dump *
+ "control.title" title control.dump *
+ "control.pages" pages control.dump *
+ "control.year" year control.dump *
+ "control.eprint" eprint control.dump *
+ top$
+ 'control.key key control.parse
+ 'control.author author control.parse
+ 'control.editor editor control.parse
+ 'control.title title control.parse
+ 'control.pages pages control.parse
+ 'control.year year control.parse
+ 'control.eprint eprint control.parse
+ control.author.decode
+}
+
+FUNCTION {control.pass}
+{ type$ "control" = 'control.setup 'skip$ if$
+}
+
+FUNCTION {control.presort}
+{
+}
+
+FUNCTION {control.forward}
+{
+}
+
+FUNCTION {control.reverse}
+{
+}
+
+FUNCTION {control.sort}
+{
+}
+
+FUNCTION {control.longest.label}
+{
+}
+
+FUNCTION {control.key.bib}
+{
+ "Control: key "
+ control.key
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ pop$ *
+ diagn.cmntlog
+}
+
+FUNCTION {control.author.bib}
+{
+ "Control: author "
+ control.author "(" swap$ int.to.str$ * ")" * *
+ control.author.reversed { " reversed" * }{} if$
+ control.author.first { " first" * }{} if$
+ control.author.nocomma { " nocomma" * }{} if$
+ control.author.initials { " initials" * }{} if$
+ control.author.nospace { " nospace" * }{} if$
+ control.author.dotless { " dotless" * }{} if$
+ control.author.jnrlst { " jnrlst" * }{} if$
+ diagn.cmntlog
+}
+
+FUNCTION {control.editor.bib}
+{
+ "Control: editor formatted "
+ control.editor
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ duplicate$ #0 < {
+ pop$
+ "disabled!"
+ } {
+ #0 > {
+ "identically to author"
+ } {
+ "differently from author"
+ } if$
+ } if$ * *
+ diagn.cmntlog
+}
+
+FUNCTION {control.title.bib}
+{
+ "Control: production of article title "
+ control.title
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ duplicate$ #0 < {
+ pop$
+ "disabled"
+ } {
+ #0 > {
+ "required"
+ } {
+ "allowed"
+ } if$
+ } if$ * *
+ diagn.cmntlog
+}
+
+FUNCTION {control.pages.bib}
+{
+ "Control: page "
+ control.pages
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ duplicate$ #0 < {
+ pop$
+ "none"
+ } {
+ #0 > {
+ "range"
+ } {
+ "single"
+ } if$
+ } if$ * *
+ diagn.cmntlog
+}
+
+FUNCTION {control.year.bib}
+{
+ "Control: year "
+ control.year
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ duplicate$ #0 < {
+ pop$
+ "disabled!"
+ } {
+ #0 > {
+ "truncated"
+ } {
+ "verbatim"
+ } if$
+ } if$ * *
+ diagn.cmntlog
+}
+
+FUNCTION {control.eprint.bib}
+{
+ "Control: production of eprint "
+ control.eprint
+ duplicate$ "(" swap$ int.to.str$ * ") " * swap$
+ #0 < { "disabled" } { "enabled" } if$ * *
+ diagn.cmntlog
+}
+
+FUNCTION {control.bib}
+{
+ control.key.bib
+ control.author.bib
+ control.editor.bib
+ control.title.bib
+ control.pages.bib
+ control.year.bib
+ control.eprint.bib
+}
+
FUNCTION {init.state.consts}
{
#0 'before.all :=
@@ -183,7 +577,7 @@ FUNCTION {show.stackstring.two}{
duplicate$ "2(" swap$ * ")" * top$
}
-FUNCTION {bibfield.command}{ "\bibfield"}
+FUNCTION {bibfield.command}{ "\bibfield "}
FUNCTION {output.nonnull}
{
@@ -213,9 +607,7 @@ FUNCTION {output.nonnull}
output.bibfield duplicate$ empty$ 'pop$
{
bibfield.command
- "{" * swap$ * "}{%" * write$ newline$
- " " swap$ * "}%" * write$ newline$
- " "
+ " {" * swap$ * "} {" * swap$ * "}" *
}
if$
write$
@@ -246,6 +638,12 @@ FUNCTION {output}
if$
}
+FUNCTION {output.nopunct}
+{
+ punctuation.no 'punctuation.state :=
+ output.nonnull
+}
+
FUNCTION {output.check}
{ swap$
duplicate$ empty$
@@ -254,9 +652,9 @@ FUNCTION {output.check}
if$
}
-FUNCTION {bbl.open} { "\BibitemOpen" }
+FUNCTION {bbl.open} { "\BibitemOpen " }
-FUNCTION {bbl.shut} { "\BibitemShut" }
+FUNCTION {bbl.shut} { "\BibitemShut " }
FUNCTION {bibitem.shut.stop} { bbl.shut "{Stop}%" * }
@@ -293,18 +691,7 @@ FUNCTION {output.SLACcitation}
FUNCTION {fin.entry}
{
- non.stop swap$
- "%" * write$ newline$
- { "{NoStop}" }
- { "{Stop}" }
- if$
- annote missing$
- {
- " \bibAnnoteFile" swap$ * "{" * cite$ * "}%" *
- }{
- " \bibAnnote" swap$ * "{" * cite$ * "}{" * annote * add.period$ "}%" *
- }
- if$
+ bibitem.shut
write$
output.SLACcitation
}
@@ -344,7 +731,7 @@ FUNCTION {add.blank}
FUNCTION {no.blank.or.punct}
{
- "\hspace{0pt}" *
+ "\hspace {0pt}" *
before.all 'output.state :=
}
@@ -354,6 +741,23 @@ FUNCTION {date.block}
skip$
}
+STRINGS {z}
+FUNCTION {remove.dots}
+{
+ control.author.dotless {
+ 'z :=
+ ""
+ { z empty$ not }
+ { z #1 #1 substring$
+ z #2 global.max$ substring$ 'z :=
+ duplicate$ "." = 'pop$
+ { * }
+ if$
+ }
+ while$
+ } 'skip$ if$
+}
+
FUNCTION {new.block.checkb}
{ empty$
swap$ empty$
@@ -375,7 +779,7 @@ FUNCTION {emphasize}
duplicate$ empty$
{ pop$ "" }
{
- "\emph{" swap$ * "}" *
+ "\emph {" swap$ * "}" *
}
if$
}
@@ -383,7 +787,7 @@ FUNCTION {emphasize}
FUNCTION {bolden}
{ duplicate$ empty$
{ pop$ "" }
- { "\textbf{" swap$ * "}" * }
+ { "\textbf {" swap$ * "}" * }
if$
}
@@ -392,7 +796,7 @@ FUNCTION {bib.name.font}
duplicate$ empty$
{ pop$ "" }
{
- "\bibnamefont{" swap$ * "}" *
+ "\bibnamefont {" swap$ * "}" *
}
if$
}
@@ -402,7 +806,7 @@ FUNCTION {bib.fname.font}
duplicate$ empty$
{ pop$ "" }
{
- "\bibfnamefont{" swap$ * "}" *
+ "\bibfnamefont {" swap$ * "}" *
}
if$
}
@@ -412,7 +816,7 @@ FUNCTION {cite.name.font}
duplicate$ empty$
{ pop$ "" }
{
- "\citenamefont{" swap$ * "}" *
+ "\citenamefont {" swap$ * "}" *
}
if$
}
@@ -436,6 +840,7 @@ FUNCTION {space.word}
% Here are the language-specific definitions for explicit words.
% Each function has a name bbl.xxx where xxx is the English word.
% The language selected here is ENGLISH
+
FUNCTION {bbl.and}
{
"and"
@@ -575,7 +980,7 @@ MACRO {dec} {"Dec."}
FUNCTION {bbl.url.prefix}
{
- "\urlprefix"
+ "\urlprefix "
}
FUNCTION {eng.ord}
@@ -887,7 +1292,7 @@ MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
MACRO {tcs} {"Theor. Comput. Sci."}
-FUNCTION {bibinfo.command} { "\bibinfo" }
+FUNCTION {bibinfo.command} { "\bibinfo " }
FUNCTION {bibinfo.check}
{ swap$
@@ -901,7 +1306,7 @@ FUNCTION {bibinfo.check}
swap$ pop$
}{
swap$
- bibinfo.command " {" * swap$ * "} {" * swap$ * "}" *
+ bibinfo.command "{" * swap$ * "} {" * swap$ * "}" *
}
if$
}
@@ -939,11 +1344,14 @@ FUNCTION {archiv.prefix.base}
FUNCTION {eprint.command}
{
- "\Eprint"
+ "\Eprint "
}
FUNCTION {format.eprint}
-{ eprint duplicate$ empty$
+{
+ eprint duplicate$ empty$
+ control.eprint #0 <
+ or
{ pop$ "" }
{
duplicate$
@@ -951,13 +1359,13 @@ FUNCTION {format.eprint}
archive duplicate$ empty$ { pop$ archiv.base } 'skip$ if$ *
"/" *
swap$ *
- "{" swap$ * "}" *
+ "{" swap$ * "} " *
swap$
""
archivePrefix duplicate$ empty$ { pop$ "" } { ":" * } if$ *
swap$ *
primaryClass duplicate$ empty$ { pop$ "" } { " [" swap$ * "]" * } if$ *
- "{" swap$ * "}" *
+ "{" swap$ * "} " *
*
eprint.command swap$ *
}
@@ -979,7 +1387,7 @@ FUNCTION {format.url}
url duplicate$ empty$
{ pop$ "" }
{
- "\url"
+ "\url "
"{" * swap$ * "}" *
}
if$
@@ -1002,135 +1410,336 @@ FUNCTION {check.speaker}
STRINGS { bibinfo}
+FUNCTION {format.names.fname}
+{
+ control.author.initials {
+ control.author.dotless {
+ control.author.nospace {
+ "f{}"
+ } {
+ "f{~}"
+ } if$
+ } {
+ control.author.nospace {
+ "f{.}."
+ } {
+ "f."
+ } if$
+ } if$
+ } {
+ "ff"
+ } if$
+}
+
+FUNCTION {bracify}
+{
+ "{" swap$ * "}" *
+}
+
+FUNCTION {name.comma}
+{
+ control.author.nocomma 'skip$ { "," swap$ * } if$
+}
+
+FUNCTION {format.names.format.onefont}
+{
+ "{vv~}{ll}"
+ nameptr #1 >
+ control.author.first
+ and
+ control.author.reversed not
+ or
+ {
+ control.author.initials {
+ "f"
+ control.author.dotless 'skip$ {
+ "." *
+ } if$
+ "~" *
+ } {
+ "ff"
+ } if$
+ bracify
+ swap$
+ } {
+ format.names.fname
+ " " swap$ *
+ name.comma
+ bracify
+ }
+ if$
+ "jj"
+ " " swap$ *
+ name.comma
+ bracify
+ control.author.jnrlst 'skip$ 'swap$ if$
+ * *
+}
+
+FUNCTION {format.names.onefont}
+{
+ s nameptr format.names.format.onefont format.name$
+ remove.dots
+ bib.name.font
+}
+
+FUNCTION {format.names.morfont}
+{ s nameptr
+ "{vv~}{ll}" format.name$ bib.name.font
+ nameptr #1 >
+ control.author.first
+ and
+ control.author.reversed not
+ or
+ {
+ s nameptr
+ control.author.initials {
+ "f" % default: name + surname + comma junior
+ } {
+ "ff"
+ } if$
+ control.author.dotless 'skip$ {
+ "." * % nm-init % Initials. + surname (J. F. Smith) control.author.initials
+ } if$
+ bracify
+ format.name$ duplicate$ empty$ 'skip$
+ { tie.or.space.prefix bib.fname.font swap$ * }
+ if$
+ swap$
+ *
+ s nameptr
+ "{jj}" format.name$ duplicate$ empty$ 'skip$
+ { bib.fname.font ", " swap$ * }
+ if$
+ } {
+ s nameptr
+ format.names.fname
+ "jj"
+ " "
+ name.comma
+ control.author.jnrlst {
+ swap$ * skip$
+ } {
+ skip$ * swap$
+ } if$
+ bracify swap$ bracify swap$
+ *
+ format.name$
+ remove.dots
+ duplicate$ empty$ 'skip$
+ { bib.fname.font " " swap$ * }
+ if$
+ } if$
+ *
+}
+
+FUNCTION {names.punctuate}
+{
+ "," *
+ " " *
+}
+
FUNCTION {format.names}
{ 'bibinfo :=
- duplicate$ empty$ 'skip$ {
- 's :=
- "" 't :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- nameptr #1 >
- { "{f.}" format.name$ duplicate$ empty$ 'skip$
- { tie.or.space.prefix bib.fname.font swap$ * }
- if$
- s nameptr
- "{vv~}{ll}" format.name$ bib.name.font *
- s nameptr
- "{jj}" format.name$ duplicate$ empty$ 'skip$
- { bib.fname.font ", " swap$ * }
- if$
- }
- { "{vv~}{ll}" format.name$ bib.name.font
- s nameptr
- "{f.}{, jj}"
- format.name$ duplicate$ empty$ 'skip$
- { bib.fname.font ", " swap$ * }
- if$
- }
- if$
- *
- bibinfo bibinfo.check
- type$ "presentation" =
- { check.speaker }
- 'skip$
- if$
- 't :=
- nameptr #1 >
- {
- namesleft #1 >
- {
- ", " *
- t *
- }{
- s nameptr "{ll}" format.name$ duplicate$ "others" =
- { 't := }
- { pop$ }
- if$
- "," *
- t "others" =
- {
- " " * bbl.etal
- emphasize
- *
- }{
- bbl.and
- space.word *
- t *
- }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
+ duplicate$ empty$ { pop$ "" } {
+ duplicate$ num.names$
+ duplicate$ 'numnames :=
+ 'namesleft :=
+ 's :=
+ #1 'nameptr :=
+ ""
+ { namesleft #0 > }
+ {
+ format.names.morfont
+ bibinfo bibinfo.check
+ type$ "presentation" =
+ 'check.speaker
+ 'skip$
+ if$
+ 't :=
+ nameptr #1 > not
+ {
+ t *
+ } {
+ namesleft #1 >
+ {
+ names.punctuate
+ t *
+ } {
+ s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { 't := }
+ { pop$ }
+ if$
+ names.punctuate
+ t "others" =
+ {
+ " " *
+ bbl.etal
+ emphasize
+ *
+ } {
+ bbl.and
+ space.word *
+ t *
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
} if$
}
-FUNCTION {format.names.ed}
+FUNCTION {format.names.ed.onefont}
{
- 'bibinfo :=
- duplicate$ empty$ 'skip$ {
- 's :=
- "" 't :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- "{f.}" format.name$ duplicate$ empty$ 'skip$
+ s nameptr
+ control.author.initials {
+ control.author.dotless {
+ control.author.nospace {
+ "{f{}~}{vv~}{ll}{ jj}" % nm-rvx|nm-rvcx
+ } {
+ "{f{~}~}{vv~}{ll}{ jj}" % nm-rv
+ } if$
+ } {
+ control.author.nospace {
+ "{f{.}.~}{vv~}{ll}{ jj}" % nm-rvv|nm-rvvc
+ }{
+ "{f.~}{vv~}{ll}{, jj}" % nm-init|nm-rev|nm-rev1
+ } if$
+ } if$
+ } {
+ "{ff~}{vv~}{ll}{, jj}"
+ } if$
+ format.name$
+ remove.dots
+ bib.name.font
+}
+
+FUNCTION {format.names.ed.morfont}
+{
+ control.author.reversed { %
+ control.author.initials { %
+ control.author.dotless { %
+ s nameptr
+ control.author.nospace { % nm-rvx nm-rvcx
+ "{f{}}"
+ } { % nm-rv
+ "{f{~}}"
+ } if$
+ format.name$ duplicate$ empty$ 'skip$
+ { tie.or.space.prefix bib.fname.font swap$ * }
+ if$
+ s nameptr
+ "{vv~}{ll}" format.name$ bib.name.font *
+ s nameptr
+ "{jj}" format.name$
+ remove.dots
+ duplicate$ empty$ 'skip$
+ { bib.fname.font " " swap$ * }
+ if$
+ } { % !control.author.dotless
+ s nameptr
+ control.author.nospace { % nm-rvv
+ "{ff}"
+ } { % nm-rev nm-rev1
+ "{f.}"
+ } if$
+ format.name$ duplicate$ empty$ 'skip$
+ { tie.or.space.prefix bib.fname.font swap$ * }
+ if$
+ s nameptr
+ "{vv~}{ll}" format.name$ bib.name.font *
+ s nameptr
+ "{jj}" format.name$
+ duplicate$ empty$ 'skip$
+ { bib.fname.font ", " swap$ * }
+ if$
+ } if$
+ } { % Full names !control.author.initials nm-revf nm-revv1
+ s nameptr
+ "{ff}"
+ format.name$ duplicate$ empty$ 'skip$
{ tie.or.space.prefix bib.fname.font swap$ * }
if$
s nameptr
"{vv~}{ll}" format.name$ bib.name.font *
s nameptr
- "{jj}" format.name$ duplicate$ empty$ 'skip$
+ "{jj}" format.name$
+ duplicate$ empty$ 'skip$
{ bib.fname.font ", " swap$ * }
if$
- *
- bibinfo bibinfo.check
- 't :=
- nameptr #1 >
- {
- namesleft #1 >
- {
- ", " *
- t *
- }{
- s nameptr "{ll}" format.name$ duplicate$ "others" =
- { 't := }
- { pop$ }
- if$
- numnames #2 >
- {
- "," *
- }
- { skip$ }
- if$
- t "others" =
- {
+ } if$
+ } { % !control.author.reversed nm-init
+ s nameptr
+ "{f.}"
+ format.name$ duplicate$ empty$ 'skip$
+ { tie.or.space.prefix bib.fname.font swap$ * }
+ if$
+ s nameptr
+ "{vv~}{ll}" format.name$ bib.name.font *
+ s nameptr
+ "{jj}" format.name$
+ duplicate$ empty$ 'skip$
+ { bib.fname.font ", " swap$ * }
+ if$
+ } if$
+ *
+}
- " " * bbl.etal emphasize *
- }{
- bbl.and
- space.word * t *
- }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
+FUNCTION {format.names.ed}
+{
+ control.editor #0 > {
+ format.names
+ } {
+ 'bibinfo :=
+ duplicate$ empty$ 'skip$ {
+ 's :=
+ "" 't :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ {
+ format.names.ed.morfont
+ bibinfo bibinfo.check
+ 't :=
+ nameptr #1 >
+ {
+ namesleft #1 >
+ {
+ names.punctuate
+ t *
+ }{
+ s nameptr "{ll}" format.name$ duplicate$ "others" =
+ { 't := }
+ { pop$ }
+ if$
+ numnames #2 >
+ 'names.punctuate
+ 'skip$
+ if$
+ t "others" =
+ {
+ " " * bbl.etal emphasize *
+ }{
+ bbl.and
+ space.word * t *
+ }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ } if$
} if$
}
@@ -1196,18 +1805,28 @@ FUNCTION {doi.base}
"http://dx.doi.org/"
}
+FUNCTION {noop.command}
+{
+ "\href@noop "
+}
+
FUNCTION {doi.command}
{
- "\doi"
+ "\doi "
}
FUNCTION {doi.command.href}
{
- "\Doi"
+ "\Doi "
+}
+
+FUNCTION {href.command}
+{
+ "\href "
}
FUNCTION {format.doi}
-{ doi "doi" bibinfo.check
+{ doi
duplicate$ empty$ 'skip$
{
new.block.comma
@@ -1216,22 +1835,67 @@ FUNCTION {format.doi}
if$
}
-FUNCTION {add.doi}
+FUNCTION {add.doi.old}
{
duplicate$ empty$ 'skip$
{
- doi duplicate$ empty$ 'pop$
+ doi duplicate$ empty$
{
- "{" swap$ * "}" *
- swap$
- "{" swap$ * "}" *
- *
- doi.command.href swap$ *
+ pop$
+ url duplicate$ empty$
+ {
+ pop$
+ }{
+ href.command " {" * swap$ * "} {" * swap$ * "}" *
+ }
+ if$
+ }
+ {
+ doi.command.href " {" * swap$ * "} {" * swap$ * "}" *
}
if$
}
if$
}
+FUNCTION {link.tag.open}
+{
+ doi duplicate$ empty$
+ {
+ pop$
+ url duplicate$ empty$
+ {
+ pop$ "" noop.command
+ }{
+ href.command
+ }
+ if$
+ }
+ {
+ doi.command.href
+ }
+ if$
+ "{" * swap$ * "} {" *
+}
+
+FUNCTION {link.tag.shut}
+{
+ "}"
+}
+
+FUNCTION {link.open}
+{
+ link.tag.open output.nopunct
+}
+
+FUNCTION {link.shut}
+{
+ link.tag.shut *
+}
+
+FUNCTION {add.doi}
+{
+ link.tag.open swap$ * link.tag.shut *
+}
FUNCTION {select.language}
{ duplicate$ empty$
@@ -1265,7 +1929,7 @@ FUNCTION {format.note}
FUNCTION {bbl.enquote}
{
- "\enquote"
+ "\enquote "
}
FUNCTION {string.enquote}
@@ -1273,7 +1937,7 @@ FUNCTION {string.enquote}
punctuation.no 'punctuation.state :=
non.stop {
block.punctuation
- } { "." } if$
+ } { "" } if$
swap$ pop$
*
bbl.enquote "{" * swap$ * "}" *
@@ -1300,6 +1964,14 @@ FUNCTION {end.quote.title}
if$
}
+FUNCTION {format.name.apply}
+{
+ s nameptr
+ "{vv~}{ll}"
+ format.name$
+ cite.name.font
+}
+
FUNCTION {format.full.names}
{
's :=
@@ -1308,10 +1980,7 @@ FUNCTION {format.full.names}
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
- { s nameptr
- "{vv~}{ll}"
- format.name$
- cite.name.font
+ { format.name.apply
't :=
nameptr #1 >
{
@@ -1388,13 +2057,13 @@ FUNCTION {output.bibitem}
""
label
*
- ")" *
make.full.names duplicate$ short.list =
{ pop$ }{ * } if$
- "{" swap$ * "}" *
+ bracify
"[" swap$ * "]" *
- "{" * cite$ * "}%" *
- "\bibitem"
+ cite$ bracify "%" *
+ *
+ "\bibitem "
swap$ *
write$ newline$
" "
@@ -1441,7 +2110,7 @@ FUNCTION {date.encapsulate}
'skip$
{
before.all 'output.state :=
- ", " swap$ *
+ " (" swap$ * ")" *
}
if$
}
@@ -1455,14 +2124,6 @@ FUNCTION {format.date}
}
'skip$
if$
- month "month" bibinfo.check duplicate$ empty$
- 'skip$
- {
- swap$
- word.space * swap$
- }
- if$
- *
extra.label *
date.encapsulate
}
@@ -1700,7 +2361,16 @@ FUNCTION {format.journal.pages}
{ pop$ pop$ format.pages }
{ volnum.punct *
swap$
- first.page
+ control.pages duplicate$ #0 < {
+ pop$ pop$
+ }{
+ #0 >
+ {
+ n.dashify
+ }{
+ first.page
+ } if$
+ } if$
"pages" bibinfo.check
*
}
@@ -1731,7 +2401,6 @@ FUNCTION {eid.or.pages}
FUNCTION {format.ser.vol.num}
{
series "series" bibinfo.check output
- after.punctuation 'output.state :=
volume field.or.null
duplicate$ empty$ 'skip$
{
@@ -1812,7 +2481,7 @@ FUNCTION {format.in.ed.booktitle}
{
format.booktitle duplicate$ empty$ 'pop$
{
- add.doi
+ add.doi
word.in swap$ * output.nonnull
bookaddress "address" bibinfo.check output
format.number.series "series and number" bibinfo.check output
@@ -1826,7 +2495,7 @@ FUNCTION {format.in.ed.booktitle.inbook}
{
format.booktitle duplicate$ empty$ 'pop$
{
- add.doi
+ add.doi
word.in swap$ * output.nonnull
bookaddress "address" bibinfo.check output
format.number.series "series and number" bibinfo.check output
@@ -1946,6 +2615,27 @@ FUNCTION {format.school.address.output}
output
}
+FUNCTION {article.title.produce}
+{
+ control.title duplicate$ #0 <
+ { pop$
+ }{
+ format.title
+ "title" 'bibfield :=
+ swap$ #0 >
+ {
+ "title" output.check
+ }{
+ output
+ } if$
+ new.block.comma
+ } if$
+}
+
+FUNCTION {control}
+{
+}
+
FUNCTION {article}
{ output.bibitem
format.authors
@@ -1954,21 +2644,24 @@ FUNCTION {article}
}{ output } if$
author format.key output
format.date.output.check date.block
+ article.title.produce
output.article.booktitle
crossref missing$
{
+ link.open
journal
"journal" bibinfo.warn
- pages empty$ 'skip$ { add.doi } if$
"journal" 'bibfield :=
output
format.ser.vol.num
output
+ eid.or.pages
+ link.shut
}{
format.article.crossref output.nonnull
+ eid.or.pages
}
if$
- eid.or.pages
format.issn output
pages empty$ {
format.doi output
@@ -1977,7 +2670,6 @@ FUNCTION {article}
new.sentence.comma
format.note output
format.eprint output
- format.url output
format.translation output
fin.entry
}
@@ -1986,25 +2678,28 @@ FUNCTION {book}
{ output.bibitem
author empty$
{
+ format.editors "author and editor" output.check
+ editor format.key output
}{
format.authors output.nonnull
- crossref missing$ { editor.check.book } 'skip$ if$
+% crossref missing$ { editor.check.book } 'skip$ if$
}
if$
format.date.output.check date.block
+ link.open
format.btitle
- add.doi
"title" output.check
+ link.shut
format.edition output
author empty$
{
- format.editor.in output
- editor format.key output
}
{
+ format.editor.in output
+ editor format.key output
}
if$
- format.number.series output
+ format.number.series output
crossref missing$
{
format.bvolume output
@@ -2016,13 +2711,12 @@ FUNCTION {book}
}
if$
format.isbn output
- format.chapter.pages
- output
+ format.chapter.pages
+ output
new.block.comma
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
@@ -2031,9 +2725,10 @@ FUNCTION {booklet}
format.authors output
author format.key output
format.date.output date.block
+ link.open
format.title
- add.doi
"title" output.check
+ link.shut
new.block.comma
howpublished "howpublished" bibinfo.check output
address "address" bibinfo.check output
@@ -2043,7 +2738,12 @@ FUNCTION {booklet}
new.sentence.comma
format.note output
format.eprint output
- format.url output
+ fin.entry
+}
+
+FUNCTION {footnote}
+{ output.bibitem
+ format.note output
fin.entry
}
@@ -2090,7 +2790,6 @@ FUNCTION {inbook}
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
@@ -2099,6 +2798,7 @@ FUNCTION {incollection}
format.authors "author" output.check
author format.key output
format.date.output.check date.block
+ article.title.produce
crossref missing$
{
format.in.ed.booktitle
@@ -2116,7 +2816,6 @@ FUNCTION {incollection}
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
@@ -2125,6 +2824,7 @@ FUNCTION {inproceedings}
format.authors "author" output.check
author format.key output
format.date.output.check date.block
+ article.title.produce
crossref missing$
{
format.in.ed.booktitle
@@ -2141,7 +2841,6 @@ FUNCTION {inproceedings}
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
@@ -2151,9 +2850,10 @@ FUNCTION {manual}
format.authors output
author format.key output
format.date.output date.block
+ link.open
format.btitle
- add.doi
"title" output.check
+ link.shut
organization "organization" bibinfo.check output
address "address" bibinfo.check output
format.edition output
@@ -2161,7 +2861,6 @@ FUNCTION {manual}
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
@@ -2173,16 +2872,16 @@ FUNCTION {mastersthesis}
format.btitle
output
new.block.comma
+ link.open
bbl.mthesis
format.thesis.type
- add.doi
output.nonnull
+ link.shut
format.school.address.output
new.block.comma
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
@@ -2192,16 +2891,16 @@ FUNCTION {misc}
author format.key output
format.date.output
date.block
+ link.open
format.title
- add.doi
output
+ link.shut
new.block.comma
howpublished "howpublished" bibinfo.check output
new.block.comma
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
@@ -2213,16 +2912,16 @@ FUNCTION {phdthesis}
format.btitle
output
new.block.comma
+ link.open
bbl.phdthesis
format.thesis.type
- add.doi
output.nonnull
+ link.shut
format.school.address.output
new.block.comma
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
@@ -2231,7 +2930,10 @@ FUNCTION {presentation}
format.authors output
author format.key output
new.block.comma
- format.title output
+ link.open
+ format.title
+ output
+ link.shut
new.block.comma
format.organization.address "organization and address" output.check
month "month" output.check
@@ -2243,7 +2945,6 @@ FUNCTION {presentation}
type missing$ 'skip$
{"(" type capitalize * ")" * output}
if$
- new.block.comma format.url output
fin.entry
}
@@ -2252,9 +2953,10 @@ FUNCTION {proceedings}
format.editors output
editor format.key output
format.date.output.check date.block
+ link.open
format.btitle
- add.doi
"title" output.check
+ link.shut
bookaddress "address" bibinfo.check output
format.number.series output
format.bvolume output
@@ -2265,7 +2967,6 @@ FUNCTION {proceedings}
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
@@ -2274,9 +2975,10 @@ FUNCTION {techreport}
format.authors "author" output.check
author format.key output
format.date.output.check date.block
+ link.open
format.btitle
- add.doi
"title" output.check
+ link.shut
new.block.comma
format.tr.number
output.nonnull
@@ -2286,7 +2988,6 @@ FUNCTION {techreport}
new.sentence.comma
format.note output
format.eprint output
- format.url output
fin.entry
}
@@ -2295,25 +2996,34 @@ FUNCTION {unpublished}
format.authors "author" output.check
author format.key output
format.date.output date.block
+ link.open
format.title
- add.doi
"title" output.check
+ link.shut
new.block.comma
new.sentence.comma
format.note "note" output.check
format.eprint output
- format.url output
fin.entry
}
FUNCTION {default.type} { misc }
+
READ
+
+EXECUTE {control.init}
+
+ITERATE {control.pass}
+
+EXECUTE {control.check}
+
FUNCTION {sortify}
{ purify$
"l" change.case$
}
INTEGERS { len }
+
FUNCTION {chop.word}
{ 's :=
'len :=
@@ -2323,28 +3033,29 @@ FUNCTION {chop.word}
if$
}
+FUNCTION {cite.name.font.apply}
+{
+ word.space * bbl.etal
+ emphasize
+ *
+}
+
FUNCTION {format.lab.names}
{ 's :=
"" 't :=
- s #1
- "{vv~}{ll}"
- format.name$
- cite.name.font
+ #1 'nameptr :=
+ format.name.apply
s num.names$ duplicate$
#2 >
{ pop$
- word.space * bbl.etal
- emphasize
- *
+ cite.name.font.apply
}{
#2 <
'skip$
{
s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
{
- word.space * bbl.etal
- emphasize
- *
+ cite.name.font.apply
}{
bbl.and space.word *
s #2 "{vv~}{ll}" format.name$
@@ -2410,21 +3121,20 @@ FUNCTION {calc.short.authors}
}
FUNCTION {calc.label}
-{ calc.short.authors
+{
+ calc.short.authors
short.list
- "("
- *
year duplicate$ empty$
short.list key field.or.null = or
{
pop$ ""
"????" *
}{
- skip$
+ control.year #0 > { purify$ #-1 #4 substring$ } 'skip$ if$
}
if$
- *
- 'label :=
+ "(" swap$ * ")" *
+ * 'label :=
}
FUNCTION {sort.format.names}
@@ -2435,7 +3145,13 @@ FUNCTION {sort.format.names}
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
- "{ll{ }}{ f{ }}{ jj{ }}"
+ "{ll{ }}"
+ control.author.initials {
+ "{ f{ }}" *
+ }{
+ "{ ff{ }}" *
+ } if$
+ "{ jj{ }}" *
format.name$ 't :=
nameptr #1 >
{
@@ -2496,6 +3212,11 @@ FUNCTION {author.editor.sort}
if$
}
+FUNCTION {year.sort.key}
+{
+ year
+}
+
FUNCTION {editor.sort}
{ editor empty$
{ key empty$
@@ -2509,8 +3230,21 @@ FUNCTION {editor.sort}
if$
}
-FUNCTION {presort}
-{ calc.label
+INTEGERS { seq.num }
+
+FUNCTION {init.seq}
+{ #0 'seq.num :=}
+
+EXECUTE {init.seq}
+
+FUNCTION {int.to.fix}
+{ "000000000" swap$ int.to.str$ *
+ #-1 #10 substring$
+}
+
+FUNCTION {label.presort}
+{
+ calc.label
label sortify
" "
*
@@ -2530,17 +3264,24 @@ FUNCTION {presort}
*
" "
*
- title field.or.null
- sort.format.title
+ title field.or.null sort.format.title
*
#1 entry.max$ substring$
'sort.key$ :=
}
-ITERATE {presort}
+FUNCTION {presort.pass}
+{ type$ "control" = 'control.presort 'label.presort if$
+}
+
+ITERATE {presort.pass}
+
SORT
+
STRINGS { last.label next.extra }
+
INTEGERS { last.extra.num number.label }
+
FUNCTION {initialize.extra.label.stuff}
{ #0 int.to.chr$ 'last.label :=
"" 'next.extra :=
@@ -2548,8 +3289,9 @@ FUNCTION {initialize.extra.label.stuff}
#0 'number.label :=
}
-FUNCTION {forward.pass}
-{ last.label label =
+FUNCTION {label.forward}
+{
+ last.label label =
{ last.extra.num #1 + 'last.extra.num :=
last.extra.num int.to.chr$ 'extra.label :=
}
@@ -2561,7 +3303,7 @@ FUNCTION {forward.pass}
number.label #1 + 'number.label :=
}
-FUNCTION {reverse.pass}
+FUNCTION {label.reverse}
{ next.extra "b" =
{ "a" 'extra.label := }
'skip$
@@ -2577,31 +3319,47 @@ FUNCTION {reverse.pass}
}
EXECUTE {initialize.extra.label.stuff}
+
+FUNCTION {forward.pass}
+{ type$ "control" = 'control.forward 'label.forward if$
+}
+
ITERATE {forward.pass}
+
+FUNCTION {reverse.pass}
+{ type$ "control" = 'control.reverse 'label.reverse if$
+}
+
REVERSE {reverse.pass}
-FUNCTION {bib.sort.order}
+
+FUNCTION {sortkey.sort}
{ sort.label
" "
*
- year
+ year.sort.key
field.or.null sortify
*
" "
*
- title field.or.null
- sort.format.title
+ title field.or.null sort.format.title
*
#1 entry.max$ substring$
'sort.key$ :=
}
-ITERATE {bib.sort.order}
+FUNCTION {bib.sort.pass}
+{ type$ "control" = 'control.sort 'sortkey.sort if$
+}
+
+ITERATE {bib.sort.pass}
+
SORT
+
FUNCTION {init.bib.eprint}
{
- "\texttt{"
+ "\texttt {"
pop$
- "\providecommand \url [0]{\begingroup\@sanitize \@url }%" write$ newline$
+ "\providecommand \url [0]{\begingroup\@sanitize@url \@url }%" write$ newline$
"\providecommand \@url [1]{\endgroup\@href {#1}{" "}}%" bbl.url.prefix swap$ * * write$ newline$
"\providecommand " " [0]{URL }%" bbl.url.prefix swap$ * * write$ newline$
eprint.command "\providecommand " swap$ * "[0]{\href }%" * write$ newline$
@@ -2610,36 +3368,26 @@ FUNCTION {init.bib.eprint}
FUNCTION {init.bib.doi}
{
"\@ifxundefined \urlstyle {%" write$ newline$
- " \providecommand \doi [1]{doi:\discretionary{}{}{}#1}%" write$ newline$
+ " \providecommand " doi.command " [0]{\begingroup \@sanitize@url \@doi}%" * * write$ newline$
+ " \providecommand \@doi [1]{\endgroup \@@startlink {\doibase #1}doi:\discretionary {}{}{}#1\@@endlink }%" write$ newline$
"}{%" write$ newline$
- " \providecommand \doi [0]{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url }%"
- write$ newline$
+ " \providecommand " doi.command " [0]{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url }%" * * write$ newline$
"}%" write$ newline$
- "\providecommand \doibase [0]{" doi.base * "}%" * write$ newline$
- doi.command.href "\providecommand " swap$ * "[1]{\href{\doibase#1}}%" * write$ newline$
+ "\providecommand \doibase [0]{" doi.base "}%" * * write$ newline$
+ "\providecommand " doi.command.href "[0]{\begingroup \@sanitize@url \@Doi }%" * * write$ newline$
+ "\providecommand \@Doi [1]{\endgroup\@@startlink{\doibase#1}\@@Doi}%" write$ newline$
+ "\providecommand \@@Doi [1]{#1\@@endlink}%" write$ newline$
}
FUNCTION {init.bib.hypertex}
{
- "\providecommand\href[0]{\@sanitize\@href}%" write$ newline$
- "\providecommand\@href[1]{\endgroup\@@startlink{#1}\endgroup\@@href}%" write$ newline$
- "\providecommand\@@href[1]{#1\@@endlink}%" write$ newline$
- "\providecommand \@sanitize [0]{\begingroup\catcode`\&12\catcode`\#12\relax}%" write$ newline$
- "\@ifxundefined \pdfoutput {\@firstoftwo}{%" write$ newline$
- " \@ifnum{\z@=\pdfoutput}{\@firstoftwo}{\@secondoftwo}%" write$ newline$
- "}{%" write$ newline$
- " \providecommand\@@startlink[1]{\leavevmode\special{html:<a href=" quote$ * "#1" * quote$ * ">}}%" * write$ newline$
- " \providecommand\@@endlink[0]{\special{html:</a>}}%" write$ newline$
- "}{%" write$ newline$
- " \providecommand\@@startlink[1]{%" write$ newline$
- " \leavevmode" write$ newline$
- " \pdfstartlink" write$ newline$
- " attr{/Border[0 0 1 ]/H/I/C[0 1 1]}%" write$ newline$
- " user{/Subtype/Link/A<</Type/Action/S/URI/URI(#1)>>}%" write$ newline$
- " \relax" write$ newline$
- " }%" write$ newline$
- " \providecommand\@@endlink[0]{\pdfendlink}%" write$ newline$
- "}%" write$ newline$
+ "\providecommand " noop.command "[0]{\@secondoftwo}%" * * write$ newline$
+ "\providecommand " href.command "[0]{\begingroup \@sanitize@url \@href}%" * * write$ newline$
+ "\providecommand \@href[1]{\@@startlink{#1}\@@href}%" write$ newline$
+ "\providecommand \@@href[1]{\endgroup#1\@@endlink}%" write$ newline$
+ "\providecommand \@sanitize@url [0]{\catcode `\\12\catcode `\$12\catcode `\&12\catcode `\#12\catcode `\^12\catcode `\_12\catcode `\%12\relax}%" write$ newline$
+ "\providecommand \@@startlink[1]{}%" write$ newline$
+ "\providecommand \@@endlink[0]{}%" write$ newline$
}
FUNCTION {init.bib.namefont}
@@ -2662,20 +3410,6 @@ FUNCTION {init.bib.ay}
write$ newline$
}
-FUNCTION {init.bib.annote}
-{
- "\providecommand \bibAnnote [3]{%" write$ newline$
- " " bbl.shut * "{#1}%" * write$ newline$
- " \begin{quotation}\noindent" write$ newline$
- " \textsc{Key:}\ #2\\\textsc{Annotation:}\ #3%" write$ newline$
- " \end{quotation}%" write$ newline$
- "}%" write$ newline$
- "\providecommand \bibAnnoteFile [2]{%" write$ newline$
- " \IfFileExists{#2}{\bibAnnote {#1} {#2} {\input{#2}}}{}%" write$ newline$
- "}%" write$ newline$
- "\providecommand \typeout [0]{\immediate \write \m@ne }%" write$ newline$
-}
-
FUNCTION {init.bib.bibinfo}
{
bibinfo.command "\providecommand " swap$ * " [0]{\@secondoftwo}%" * write$ newline$
@@ -2708,15 +3442,18 @@ FUNCTION {init.bib}
{
warn.bib
"\makeatletter" write$ newline$
- "\providecommand \@ifxundefined [1]{%" write$ newline$
- " \ifx #1\undefined \expandafter \@firstoftwo" write$ newline$
- " \else \expandafter \@secondoftwo" write$ newline$
- "\fi" write$ newline$
+ "\providecommand \@ifxundefined [1]{%" write$ newline$
+ " \@ifx{#1\undefined}" write$ newline$
"}%" write$ newline$
"\providecommand \@ifnum [1]{%" write$ newline$
" \ifnum #1\expandafter \@firstoftwo" write$ newline$
" \else \expandafter \@secondoftwo" write$ newline$
- "\fi" write$ newline$
+ " \fi" write$ newline$
+ "}%" write$ newline$
+ "\providecommand \@ifx [1]{%" write$ newline$
+ " \ifx #1\expandafter \@firstoftwo" write$ newline$
+ " \else \expandafter \@secondoftwo" write$ newline$
+ " \fi" write$ newline$
"}%" write$ newline$
init.bib.ay
init.bib.quote
@@ -2724,7 +3461,6 @@ FUNCTION {init.bib}
init.bib.hypertex
init.bib.eprint
init.bib.doi
- init.bib.annote
init.bib.lang
init.bib.bibinfo
init.bib.translation
@@ -2735,7 +3471,8 @@ FUNCTION {init.bib}
FUNCTION {begin.bib}
{
- id.bst duplicate$ top$ "%" swap$ * write$ newline$
+ id.bst diagn.cmntlog
+ control.bib
preamble$ empty$
'skip$
{ preamble$ write$ newline$ }
@@ -2748,8 +3485,11 @@ FUNCTION {begin.bib}
}
EXECUTE {begin.bib}
+
EXECUTE {init.state.consts}
+
ITERATE {call.type$}
+
FUNCTION {end.bib}
{ newline$
"\end{thebibliography}%"
@@ -2757,6 +3497,7 @@ FUNCTION {end.bib}
}
EXECUTE {end.bib}
+
%% End of customized bst file
%%
%% End of file `apsrmp4-1.bst'.
diff --git a/Master/texmf-dist/bibtex/bst/revtex/apsrmp4-1long.bst b/Master/texmf-dist/bibtex/bst/revtex/apsrmp4-1long.bst
deleted file mode 100644
index 5c9ba0dacb5..00000000000
--- a/Master/texmf-dist/bibtex/bst/revtex/apsrmp4-1long.bst
+++ /dev/null
@@ -1,2762 +0,0 @@
-%%
-%% This is file `apsrmp4-1long.bst',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% merlin.mbs (with options: `head,ay,nat,lang,annote,pres,pres-bf,vonx,nm-revv1,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,dt-beg,yr-com,aymth,dtrev,date-nil-x,note-yr,tit-qq,inproceedings-chapter,article-title-o,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-sp,volp-com,pp-last,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-par,ay-empty-pub-parens-x,pre-edn,school-par,isbn,issn,doi-link,doi,bkedcap,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,and-com,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% physjour.mbs (with options: `ay,nat,lang,annote,pres,pres-bf,vonx,nm-revv1,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,dt-beg,yr-com,aymth,dtrev,date-nil-x,note-yr,tit-qq,inproceedings-chapter,article-title-o,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-sp,volp-com,pp-last,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-par,ay-empty-pub-parens-x,pre-edn,school-par,isbn,issn,doi-link,doi,bkedcap,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,and-com,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% geojour.mbs (with options: `ay,nat,lang,annote,pres,pres-bf,vonx,nm-revv1,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,dt-beg,yr-com,aymth,dtrev,date-nil-x,note-yr,tit-qq,inproceedings-chapter,article-title-o,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-sp,volp-com,pp-last,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-par,ay-empty-pub-parens-x,pre-edn,school-par,isbn,issn,doi-link,doi,bkedcap,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,and-com,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% photjour.mbs (with options: `ay,nat,lang,annote,pres,pres-bf,vonx,nm-revv1,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,dt-beg,yr-com,aymth,dtrev,date-nil-x,note-yr,tit-qq,inproceedings-chapter,article-title-o,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-sp,volp-com,pp-last,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-par,ay-empty-pub-parens-x,pre-edn,school-par,isbn,issn,doi-link,doi,bkedcap,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,and-com,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% merlin.mbs (with options: `tail,ay,nat,lang,annote,pres,pres-bf,vonx,nm-revv1,jnrlst,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,and-rm,keyxyr,dt-beg,yr-com,aymth,dtrev,date-nil-x,note-yr,tit-qq,inproceedings-chapter,article-title-o,inproceedings-chapter,article-booktitle,article-series,jttl-rm,journal-address,book-bt,thesis-title-o,trtit-b,techreport-institution-par,vol-bf,vnum-sp,volp-com,pp-last,book-editor-booktitle,inbook-editor-booktitle,bookaddress,num-xser,number-cap,chapter-cap,series-number,numser-booktitle,ser-vol,ser-rm,volume-cap,ser-ed,jnm-x,pg-bk,book-chapter-pages,pub-par,ay-empty-pub-parens-x,pre-edn,school-par,isbn,issn,doi-link,doi,bkedcap,edby,blk-com,fin-endbibitem,pp,ed,abr,ednx,ord,jabr,and-com,etal-it,revdata,eprint,url,url-blk,translation,SLACcitation,numpages-x,url,url-prefix-x,bibinfo,bibfield,nfss,,{}')
-%% ----------------------------------------
-%% *** REVTeX-compatible RMP long 2009-10-08 ***
-%%
-%% Copyright 1994-2007 Patrick W Daly
- % ===============================================================
- % IMPORTANT NOTICE:
- % This bibliographic style (bst) file has been generated from one or
- % more master bibliographic style (mbs) files, listed above.
- %
- % This generated file can be redistributed and/or modified under the terms
- % of the LaTeX Project Public License Distributed from CTAN
- % archives in directory macros/latex/base/lppl.txt; either
- % version 1 of the License, or any later version.
- % ===============================================================
- % Name and version information of the main mbs file:
- % \ProvidesFile{merlin.mbs}[2008/01/17 4.21 (PWD, AO, DPC)]
- % For use with BibTeX version 0.99a or later
- %-------------------------------------------------------------------
- % This bibliography style file is intended for texts in ENGLISH
- % This is an author-year citation style bibliography. As such, it is
- % non-standard LaTeX, and requires a special package file to function properly.
- % Such a package is natbib.sty by Patrick W. Daly
- % The form of the \bibitem entries is
- % \bibitem[Jones et al.(1990)]{key}...
- % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
- % The essential feature is that the label (the part in brackets) consists
- % of the author names, as they should appear in the citation, with the year
- % in parentheses following. There must be no space before the opening
- % parenthesis!
- % With natbib v5.3, a full list of authors may also follow the year.
- % In natbib.sty, it is possible to define the type of enclosures that is
- % really wanted (brackets or parentheses), but in either case, there must
- % be parentheses in the label.
- % The \cite command functions as follows:
- % \citet{key} ==>> Jones et al. (1990)
- % \citet*{key} ==>> Jones, Baker, and Smith (1990)
- % \citep{key} ==>> (Jones et al., 1990)
- % \citep*{key} ==>> (Jones, Baker, and Smith, 1990)
- % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)
- % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990)
- % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32)
- % \citeauthor{key} ==>> Jones et al.
- % \citeauthor*{key} ==>> Jones, Baker, and Smith
- % \citeyear{key} ==>> 1990
- %---------------------------------------------------------------------
-
-FUNCTION {id.bst} {"Merlin.mbs v4.21 2009-07-09. "}
-ENTRY
-{
- address
- annote
- archive
- archivePrefix
- author
- bookaddress
- booktitle
- chapter
- collaboration
- doi
- edition
- editor
- eid
- eprint
- howpublished
- institution
- isbn
- issn
- journal
- key
- language
- month
- note
- number
- organization
- pages
- primaryClass
- publisher
- school
- SLACcitation
- series
- title
- translation
- type
- url
- volume
- year
-}{
-}{
- label
- extra.label sort.label
- short.list
-}
-
-INTEGERS
-{
- output.state before.all
- after.word after.punctuation
- after.sentence after.block
-}
-
-INTEGERS
-{
- punctuation.state punctuation.no punctuation.space punctuation.yes
-}
-
-STRINGS { bibfield output.bibfield }
-FUNCTION {not}
-{ { #0 }
- { #1 }
- if$
-}
-
-FUNCTION {and}
-{ 'skip$
- { pop$ #0 }
- if$
-}
-
-FUNCTION {or}
-{ { pop$ #1 }
- 'skip$
- if$
-}
-
-FUNCTION {non.stop}
-{ duplicate$
- "}" * add.period$
- #-1 #1 substring$ "." =
-}
-
-FUNCTION {init.state.consts}
-{
- #0 'before.all :=
- #1 'after.word :=
- #2 'after.punctuation :=
- #3 'after.sentence :=
- #4 'after.block :=
- #0 'punctuation.no :=
- #1 'punctuation.space :=
- #2 'punctuation.yes :=
- "" 'bibfield :=
- "" 'output.bibfield :=
-}
-
-STRINGS { s t}
-FUNCTION {block.punctuation}
-{ ""
- "," *
-}
-
-FUNCTION {word.space}
-{
- "\ "
-}
-
-FUNCTION {show.stackstring.one}{
- "(" *
- output.state int.to.str$ *
- "," * punctuation.state int.to.str$ *
- ")" * top$
- duplicate$ "1(" swap$ * ")" * top$
-}
-
-FUNCTION {show.stackstring.two}{
- "(" *
- output.state int.to.str$ *
- "," * punctuation.state int.to.str$ *
- ")" * top$
- swap$
- duplicate$ "1(" swap$ * ")" * top$
- swap$
- duplicate$ "2(" swap$ * ")" * top$
-}
-
-FUNCTION {bibfield.command}{ "\bibfield"}
-
-FUNCTION {output.nonnull}
-{
- swap$
- output.state after.word =
- {
- block.punctuation *
- word.space *
- }
- {
- output.state after.punctuation =
- {
- word.space *
- }
- {
- output.state after.block = output.state after.sentence = or
- {
- add.period$
- "\EOS\ " *
- }{
- }
- if$
- }
- if$
- }
- if$
- output.bibfield duplicate$ empty$ 'pop$
- {
- bibfield.command
- "{" * swap$ * "}{%" * write$ newline$
- " " swap$ * "}%" * write$ newline$
- " "
- }
- if$
- write$
- bibfield 'output.bibfield := "" 'bibfield :=
- output.state after.block =
- {
- newline$
- "\newblock " write$
- }
- 'skip$
- if$
- punctuation.state duplicate$
- punctuation.yes 'punctuation.state :=
- punctuation.no =
- { pop$ before.all }
- { punctuation.yes = { after.word }{ after.punctuation } if$ }
- if$
- 'output.state :=
-}
-
-FUNCTION {output}
-{ duplicate$ empty$
- {
- pop$
- "" 'bibfield :=
- }
- 'output.nonnull
- if$
-}
-
-FUNCTION {output.check}
-{ swap$
- duplicate$ empty$
- { pop$ "empty " swap$ * " in " * cite$ * warning$ }
- { swap$ pop$ output.nonnull }
- if$
-}
-
-FUNCTION {bbl.open} { "\BibitemOpen" }
-
-FUNCTION {bbl.shut} { "\BibitemShut" }
-
-FUNCTION {bibitem.shut.stop} { bbl.shut "{Stop}%" * }
-
-FUNCTION {bibitem.shut.nostop} { bbl.shut "{NoStop}%" * }
-
-FUNCTION {bibitem.shut}
-{
- non.stop
- {
- bibitem.shut.nostop *
- }{
- bibitem.shut.stop *
- }
- if$
-}
-
-FUNCTION {html.itag} {
- "p"
-}
-
-FUNCTION {html.ltag} {
- ""
-}
-
-FUNCTION {output.SLACcitation}
-{ SLACcitation empty$
- 'skip$
- {
- newline$
- SLACcitation write$
- }
- if$
-}
-
-FUNCTION {fin.entry}
-{
- non.stop swap$
- "%" * write$ newline$
- { "{NoStop}" }
- { "{Stop}" }
- if$
- annote missing$
- {
- " \bibAnnoteFile" swap$ * "{" * cite$ * "}%" *
- }{
- " \bibAnnote" swap$ * "{" * cite$ * "}{" * annote * add.period$ "}%" *
- }
- if$
- write$
- output.SLACcitation
-}
-
-FUNCTION {new.block}
-{ output.state before.all =
- 'skip$
- { after.block 'output.state := }
- if$
-}
-
-FUNCTION {new.block.comma}
-{
-}
-
-FUNCTION {new.sentence}
-{ output.state after.block = output.state before.all = or
- 'skip$
- { after.sentence 'output.state := }
- if$
-}
-
-FUNCTION {new.sentence.comma}
-{
-}
-
-FUNCTION {sentence.or.colon}
-{
- new.sentence
-}
-
-FUNCTION {add.blank}
-{
- word.space *
- before.all 'output.state :=
-}
-
-FUNCTION {no.blank.or.punct}
-{
- "\hspace{0pt}" *
- before.all 'output.state :=
-}
-
-FUNCTION {date.block}
-{
- new.block.comma
- skip$
-}
-
-FUNCTION {new.block.checkb}
-{ empty$
- swap$ empty$
- and
- 'skip$
- 'new.block
- if$
-}
-
-FUNCTION {field.or.null}
-{ duplicate$ empty$
- { pop$ "" }
- 'skip$
- if$
-}
-
-FUNCTION {emphasize}
-{
- duplicate$ empty$
- { pop$ "" }
- {
- "\emph{" swap$ * "}" *
- }
- if$
-}
-
-FUNCTION {bolden}
-{ duplicate$ empty$
- { pop$ "" }
- { "\textbf{" swap$ * "}" * }
- if$
-}
-
-FUNCTION {bib.name.font}
-{
- duplicate$ empty$
- { pop$ "" }
- {
- "\bibnamefont{" swap$ * "}" *
- }
- if$
-}
-
-FUNCTION {bib.fname.font}
-{
- duplicate$ empty$
- { pop$ "" }
- {
- "\bibfnamefont{" swap$ * "}" *
- }
- if$
-}
-
-FUNCTION {cite.name.font}
-{
- duplicate$ empty$
- { pop$ "" }
- {
- "\citenamefont{" swap$ * "}" *
- }
- if$
-}
-
-FUNCTION {tie.or.space.prefix}
-{ duplicate$ text.length$ #3 <
- { "~" }
- { word.space }
- if$
- swap$
-}
-
-FUNCTION {capitalize}
-{
- "u" change.case$ "t" change.case$
-}
-
-FUNCTION {space.word}
-{ word.space swap$ * word.space * }
-
- % Here are the language-specific definitions for explicit words.
- % Each function has a name bbl.xxx where xxx is the English word.
- % The language selected here is ENGLISH
-FUNCTION {bbl.and}
-{
- "and"
-}
-
-FUNCTION {bbl.etal}
-{
- "et~al."
-}
-
-FUNCTION {bbl.editors}
-{
- "eds."
-}
-
-FUNCTION {bbl.editor}
-{
- "ed."
-}
-
-FUNCTION {bbl.edby}
-{ "edited by" }
-
-FUNCTION {bbl.edition}
-{
- "ed."
-}
-
-FUNCTION {bbl.volume}
-{
- "vol."
-}
-
-FUNCTION {bbl.of}
-{ "of" }
-
-FUNCTION {bbl.number}
-{
- "no."
-}
-
-FUNCTION {bbl.nr}
-{ "no." }
-
-FUNCTION {bbl.in}
-{ "in" }
-
-FUNCTION {bbl.pages}
-{
- "pp."
-}
-
-FUNCTION {bbl.page}
-{
- "p."
-}
-
-FUNCTION {bbl.eidpp}
-{ "pages" }
-
-FUNCTION {bbl.chapter}
-{
- "chap."
-}
-
-FUNCTION {bbl.techrep}
-{
- "Tech. Rep."
-}
-
-FUNCTION {bbl.mthesis}
-{ "Master's thesis" }
-
-FUNCTION {bbl.phdthesis}
-{ "Ph.D. thesis" }
-
-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" }
-
-MACRO {jan} {"Jan."}
-
-MACRO {feb} {"Feb."}
-
-MACRO {mar} {"Mar."}
-
-MACRO {apr} {"Apr."}
-
-MACRO {may} {"May"}
-
-MACRO {jun} {"Jun."}
-
-MACRO {jul} {"Jul."}
-
-MACRO {aug} {"Aug."}
-
-MACRO {sep} {"Sep."}
-
-MACRO {oct} {"Oct."}
-
-MACRO {nov} {"Nov."}
-
-MACRO {dec} {"Dec."}
-
-FUNCTION {bbl.url.prefix}
-{
- "\urlprefix"
-}
-
-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$
-}
-
- %-------------------------------------------------------------------
- % Begin module:
- % \ProvidesFile{physjour.mbs}[2002/01/14 2.2 (PWD)]
-MACRO {aa}{"Astron. \& Astrophys."}
-MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."}
-MACRO {aj} {"Astron. J."}
-MACRO {aph} {"Acta Phys."}
-MACRO {advp} {"Adv. Phys."}
-MACRO {ajp} {"Amer. J. Phys."}
-MACRO {ajm} {"Amer. J. Math."}
-MACRO {amsci} {"Amer. Sci."}
-MACRO {anofd} {"Ann. Fluid Dyn."}
-MACRO {am} {"Ann. Math."}
-MACRO {ap} {"Ann. Phys. (NY)"}
-MACRO {adp} {"Ann. Phys. (Leipzig)"}
-MACRO {ao} {"Appl. Opt."}
-MACRO {apl} {"Appl. Phys. Lett."}
-MACRO {app} {"Astroparticle Phys."}
-MACRO {apj} {"Astrophys. J."}
-MACRO {apjsup} {"Astrophys. J. Suppl."}
-MACRO {apss} {"Astrophys. Space Sci."}
-MACRO {araa} {"Ann. Rev. Astron. Astrophys."}
-MACRO {baas} {"Bull. Amer. Astron. Soc."}
-MACRO {baps} {"Bull. Amer. Phys. Soc."}
-MACRO {cmp} {"Comm. Math. Phys."}
-MACRO {cpam} {"Commun. Pure Appl. Math."}
-MACRO {cppcf} {"Comm. Plasma Phys. \& Controlled Fusion"}
-MACRO {cpc} {"Comp. Phys. Comm."}
-MACRO {cqg} {"Class. Quant. Grav."}
-MACRO {cra} {"C. R. Acad. Sci. A"}
-MACRO {fed} {"Fusion Eng. \& Design"}
-MACRO {ft} {"Fusion Tech."}
-MACRO {grg} {"Gen. Relativ. Gravit."}
-MACRO {ieeens} {"IEEE Trans. Nucl. Sci."}
-MACRO {ieeeps} {"IEEE Trans. Plasma Sci."}
-MACRO {ijimw} {"Interntl. J. Infrared \& Millimeter Waves"}
-MACRO {ip} {"Infrared Phys."}
-MACRO {irp} {"Infrared Phys."}
-MACRO {jap} {"J. Appl. Phys."}
-MACRO {jasa} {"J. Acoust. Soc. America"}
-MACRO {jcp} {"J. Comp. Phys."}
-MACRO {jetp} {"Sov. Phys.--JETP"}
-MACRO {jfe} {"J. Fusion Energy"}
-MACRO {jfm} {"J. Fluid Mech."}
-MACRO {jmp} {"J. Math. Phys."}
-MACRO {jne} {"J. Nucl. Energy"}
-MACRO {jnec} {"J. Nucl. Energy, C: Plasma Phys., Accelerators, Thermonucl. Res."}
-MACRO {jnm} {"J. Nucl. Mat."}
-MACRO {jpc} {"J. Phys. Chem."}
-MACRO {jpp} {"J. Plasma Phys."}
-MACRO {jpsj} {"J. Phys. Soc. Japan"}
-MACRO {jsi} {"J. Sci. Instrum."}
-MACRO {jvst} {"J. Vac. Sci. \& Tech."}
-MACRO {nat} {"Nature"}
-MACRO {nature} {"Nature"}
-MACRO {nedf} {"Nucl. Eng. \& Design/Fusion"}
-MACRO {nf} {"Nucl. Fusion"}
-MACRO {nim} {"Nucl. Inst. \& Meth."}
-MACRO {nimpr} {"Nucl. Inst. \& Meth. in Phys. Res."}
-MACRO {np} {"Nucl. Phys."}
-MACRO {npb} {"Nucl. Phys. B"}
-MACRO {nt/f} {"Nucl. Tech./Fusion"}
-MACRO {npbpc} {"Nucl. Phys. B (Proc. Suppl.)"}
-MACRO {inc} {"Nuovo Cimento"}
-MACRO {nc} {"Nuovo Cimento"}
-MACRO {pf} {"Phys. Fluids"}
-MACRO {pfa} {"Phys. Fluids A: Fluid Dyn."}
-MACRO {pfb} {"Phys. Fluids B: Plasma Phys."}
-MACRO {pl} {"Phys. Lett."}
-MACRO {pla} {"Phys. Lett. A"}
-MACRO {plb} {"Phys. Lett. B"}
-MACRO {prep} {"Phys. Rep."}
-MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"}
-MACRO {pp} {"Phys. Plasmas"}
-MACRO {ppcf} {"Plasma Phys. \& Controlled Fusion"}
-MACRO {phitrsl} {"Philos. Trans. Roy. Soc. London"}
-MACRO {prl} {"Phys. Rev. Lett."}
-MACRO {pr} {"Phys. Rev."}
-MACRO {physrev} {"Phys. Rev."}
-MACRO {pra} {"Phys. Rev. A"}
-MACRO {prb} {"Phys. Rev. B"}
-MACRO {prc} {"Phys. Rev. C"}
-MACRO {prd} {"Phys. Rev. D"}
-MACRO {pre} {"Phys. Rev. E"}
-MACRO {ps} {"Phys. Scripta"}
-MACRO {procrsl} {"Proc. Roy. Soc. London"}
-MACRO {rmp} {"Rev. Mod. Phys."}
-MACRO {rsi} {"Rev. Sci. Inst."}
-MACRO {science} {"Science"}
-MACRO {sciam} {"Sci. Am."}
-MACRO {sam} {"Stud. Appl. Math."}
-MACRO {sjpp} {"Sov. J. Plasma Phys."}
-MACRO {spd} {"Sov. Phys.--Doklady"}
-MACRO {sptp} {"Sov. Phys.--Tech. Phys."}
-MACRO {spu} {"Sov. Phys.--Uspeki"}
-MACRO {st} {"Sky and Telesc."}
- % End module: physjour.mbs
- %-------------------------------------------------------------------
- % Begin module:
- % \ProvidesFile{geojour.mbs}[2002/07/10 2.0h (PWD)]
-MACRO {aisr} {"Adv. Space Res."}
-MACRO {ag} {"Ann. Geophys."}
-MACRO {anigeo} {"Ann. Geofis."}
-MACRO {angl} {"Ann. Glaciol."}
-MACRO {andmet} {"Ann. d. Meteor."}
-MACRO {andgeo} {"Ann. d. Geophys."}
-MACRO {andphy} {"Ann. Phys.-Paris"}
-MACRO {afmgb} {"Arch. Meteor. Geophys. Bioklimatol."}
-MACRO {atph} {"Atm\'osphera"}
-MACRO {aao} {"Atmos. Ocean"}
-MACRO {ass}{"Astrophys. Space Sci."}
-MACRO {atenv} {"Atmos. Environ."}
-MACRO {aujag} {"Aust. J. Agr. Res."}
-MACRO {aumet} {"Aust. Meteorol. Mag."}
-MACRO {blmet} {"Bound.-Lay. Meteorol."}
-MACRO {bams} {"Bull. Amer. Meteorol. Soc."}
-MACRO {cch} {"Clim. Change"}
-MACRO {cdyn} {"Clim. Dynam."}
-MACRO {cbul} {"Climatol. Bull."}
-MACRO {cap} {"Contrib. Atmos. Phys."}
-MACRO {dsr} {"Deep-Sea Res."}
-MACRO {dhz} {"Dtsch. Hydrogr. Z."}
-MACRO {dao} {"Dynam. Atmos. Oceans"}
-MACRO {eco} {"Ecology"}
-MACRO {empl}{"Earth, Moon and Planets"}
-MACRO {envres} {"Environ. Res."}
-MACRO {envst} {"Environ. Sci. Technol."}
-MACRO {ecms} {"Estuarine Coastal Mar. Sci."}
-MACRO {expa}{"Exper. Astron."}
-MACRO {geoint} {"Geofis. Int."}
-MACRO {geopub} {"Geofys. Publ."}
-MACRO {geogeo} {"Geol. Geofiz."}
-MACRO {gafd} {"Geophys. Astrophys. Fluid Dyn."}
-MACRO {gfd} {"Geophys. Fluid Dyn."}
-MACRO {geomag} {"Geophys. Mag."}
-MACRO {georl} {"Geophys. Res. Lett."}
-MACRO {grl} {"Geophys. Res. Lett."}
-MACRO {ga} {"Geophysica"}
-MACRO {gs} {"Geophysics"}
-MACRO {ieeetap} {"IEEE Trans. Antenn. Propag."}
-MACRO {ijawp} {"Int. J. Air Water Pollut."}
-MACRO {ijc} {"Int. J. Climatol."}
-MACRO {ijrs} {"Int. J. Remote Sens."}
-MACRO {jam} {"J. Appl. Meteorol."}
-MACRO {jaot} {"J. Atmos. Ocean. Technol."}
-MACRO {jatp} {"J. Atmos. Terr. Phys."}
-MACRO {jastp} {"J. Atmos. Solar-Terr. Phys."}
-MACRO {jce} {"J. Climate"}
-MACRO {jcam} {"J. Climate Appl. Meteor."}
-MACRO {jcm} {"J. Climate Meteor."}
-MACRO {jcy} {"J. Climatol."}
-MACRO {jgr} {"J. Geophys. Res."}
-MACRO {jga} {"J. Glaciol."}
-MACRO {jh} {"J. Hydrol."}
-MACRO {jmr} {"J. Mar. Res."}
-MACRO {jmrj} {"J. Meteor. Res. Japan"}
-MACRO {jm} {"J. Meteor."}
-MACRO {jpo} {"J. Phys. Oceanogr."}
-MACRO {jra} {"J. Rech. Atmos."}
-MACRO {jaes} {"J. Aeronaut. Sci."}
-MACRO {japca} {"J. Air Pollut. Control Assoc."}
-MACRO {jas} {"J. Atmos. Sci."}
-MACRO {jmts} {"J. Mar. Technol. Soc."}
-MACRO {jmsj} {"J. Meteorol. Soc. Japan"}
-MACRO {josj} {"J. Oceanogr. Soc. Japan"}
-MACRO {jwm} {"J. Wea. Mod."}
-MACRO {lao} {"Limnol. Oceanogr."}
-MACRO {mwl} {"Mar. Wea. Log"}
-MACRO {mau} {"Mausam"}
-MACRO {meteor} {"``Meteor'' Forschungsergeb."}
-MACRO {map} {"Meteorol. Atmos. Phys."}
-MACRO {metmag} {"Meteor. Mag."}
-MACRO {metmon} {"Meteor. Monogr."}
-MACRO {metrun} {"Meteor. Rundsch."}
-MACRO {metzeit} {"Meteor. Z."}
-MACRO {metgid} {"Meteor. Gidrol."}
-MACRO {mwr} {"Mon. Weather Rev."}
-MACRO {nwd} {"Natl. Weather Dig."}
-MACRO {nzjmfr} {"New Zeal. J. Mar. Freshwater Res."}
-MACRO {npg} {"Nonlin. Proc. Geophys."}
-MACRO {om} {"Oceanogr. Meteorol."}
-MACRO {ocac} {"Oceanol. Acta"}
-MACRO {oceanus} {"Oceanus"}
-MACRO {paleoc} {"Paleoceanography"}
-MACRO {pce} {"Phys. Chem. Earth"}
-MACRO {pmg} {"Pap. Meteor. Geophys."}
-MACRO {ppom} {"Pap. Phys. Oceanogr. Meteor."}
-MACRO {physzeit} {"Phys. Z."}
-MACRO {pps} {"Planet. Space Sci."}
-MACRO {pss} {"Planet. Space Sci."}
-MACRO {pag} {"Pure Appl. Geophys."}
-MACRO {qjrms} {"Quart. J. Roy. Meteorol. Soc."}
-MACRO {quatres} {"Quat. Res."}
-MACRO {rsci} {"Radio Sci."}
-MACRO {rse} {"Remote Sens. Environ."}
-MACRO {rgeo} {"Rev. Geophys."}
-MACRO {rgsp} {"Rev. Geophys. Space Phys."}
-MACRO {rdgeo} {"Rev. Geofis."}
-MACRO {revmeta} {"Rev. Meteorol."}
-MACRO {sgp}{"Surveys in Geophys."}
-MACRO {sp} {"Solar Phys."}
-MACRO {ssr} {"Space Sci. Rev."}
-MACRO {tellus} {"Tellus"}
-MACRO {tac} {"Theor. Appl. Climatol."}
-MACRO {tagu} {"Trans. Am. Geophys. Union (EOS)"}
-MACRO {wrr} {"Water Resour. Res."}
-MACRO {weather} {"Weather"}
-MACRO {wafc} {"Weather Forecast."}
-MACRO {ww} {"Weatherwise"}
-MACRO {wmob} {"WMO Bull."}
-MACRO {zeitmet} {"Z. Meteorol."}
- % End module: geojour.mbs
- %-------------------------------------------------------------------
- % Begin module:
- % \ProvidesFile{photjour.mbs}[1999/02/24 2.0b (PWD)]
-
-MACRO {appopt} {"Appl. Opt."}
-MACRO {bell} {"Bell Syst. Tech. J."}
-MACRO {ell} {"Electron. Lett."}
-MACRO {jasp} {"J. Appl. Spectr."}
-MACRO {jqe} {"IEEE J. Quantum Electron."}
-MACRO {jlwt} {"J. Lightwave Technol."}
-MACRO {jmo} {"J. Mod. Opt."}
-MACRO {josa} {"J. Opt. Soc. America"}
-MACRO {josaa} {"J. Opt. Soc. Amer.~A"}
-MACRO {josab} {"J. Opt. Soc. Amer.~B"}
-MACRO {jdp} {"J. Phys. (Paris)"}
-MACRO {oc} {"Opt. Commun."}
-MACRO {ol} {"Opt. Lett."}
-MACRO {phtl} {"IEEE Photon. Technol. Lett."}
-MACRO {pspie} {"Proc. Soc. Photo-Opt. Instrum. Eng."}
-MACRO {sse} {"Solid-State Electron."}
-MACRO {sjot} {"Sov. J. Opt. Technol."}
-MACRO {sjqe} {"Sov. J. Quantum Electron."}
-MACRO {sleb} {"Sov. Phys.--Leb. Inst. Rep."}
-MACRO {stph} {"Sov. Phys.--Techn. Phys."}
-MACRO {stphl} {"Sov. Techn. Phys. Lett."}
-MACRO {vr} {"Vision Res."}
-MACRO {zph} {"Z. f. Physik"}
-MACRO {zphb} {"Z. f. Physik~B"}
-MACRO {zphd} {"Z. f. Physik~D"}
-
-MACRO {CLEO} {"CLEO"}
-MACRO {ASSL} {"Adv. Sol.-State Lasers"}
-MACRO {OSA} {"OSA"}
- % End module: photjour.mbs
-%% Copyright 1994-2007 Patrick W Daly
-MACRO {acmcs} {"ACM Comput. Surv."}
-
-MACRO {acta} {"Acta Inf."}
-
-MACRO {cacm} {"Commun. ACM"}
-
-MACRO {ibmjrd} {"IBM J. Res. Dev."}
-
-MACRO {ibmsj} {"IBM Syst.~J."}
-
-MACRO {ieeese} {"IEEE Trans. Software Eng."}
-
-MACRO {ieeetc} {"IEEE Trans. Comput."}
-
-MACRO {ieeetcad}
- {"IEEE Trans. Comput. Aid. Des."}
-
-MACRO {ipl} {"Inf. Process. Lett."}
-
-MACRO {jacm} {"J.~ACM"}
-
-MACRO {jcss} {"J.~Comput. Syst. Sci."}
-
-MACRO {scp} {"Sci. Comput. Program."}
-
-MACRO {sicomp} {"SIAM J. Comput."}
-
-MACRO {tocs} {"ACM Trans. Comput. Syst."}
-
-MACRO {tods} {"ACM Trans. Database Syst."}
-
-MACRO {tog} {"ACM Trans. Graphic."}
-
-MACRO {toms} {"ACM Trans. Math. Software"}
-
-MACRO {toois} {"ACM Trans. Office Inf. Syst."}
-
-MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."}
-
-MACRO {tcs} {"Theor. Comput. Sci."}
-
-FUNCTION {bibinfo.command} { "\bibinfo" }
-
-FUNCTION {bibinfo.check}
-{ swap$
- duplicate$ missing$
- {
- pop$
- pop$ ""
- }{
- duplicate$ empty$
- {
- swap$ pop$
- }{
- swap$
- bibinfo.command " {" * swap$ * "} {" * swap$ * "}" *
- }
- if$
- }
- if$
-}
-
-FUNCTION {bibinfo.warn}
-{ swap$
- duplicate$ missing$
- {
- swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
- ""
- }{
- duplicate$ empty$
- {
- swap$ "empty " swap$ * " in " * cite$ * warning$
- }{
- swap$
- bibinfo.command " {" * swap$ * "} {" * swap$ * "}" *
- }
- if$
- }
- if$
-}
-
-FUNCTION {archiv.base}
-{
- "http://arxiv.org/abs"
-}
-
-FUNCTION {archiv.prefix.base}
-{
- "arXiv"
-}
-
-FUNCTION {eprint.command}
-{
- "\Eprint"
-}
-
-FUNCTION {format.eprint}
-{ eprint duplicate$ empty$
- { pop$ "" }
- {
- duplicate$
- ""
- archive duplicate$ empty$ { pop$ archiv.base } 'skip$ if$ *
- "/" *
- swap$ *
- "{" swap$ * "}" *
- swap$
- ""
- archivePrefix duplicate$ empty$ { pop$ "" } { ":" * } if$ *
- swap$ *
- primaryClass duplicate$ empty$ { pop$ "" } { " [" swap$ * "]" * } if$ *
- "{" swap$ * "}" *
- *
- eprint.command swap$ *
- }
- if$
-}
-
-FUNCTION {format.translation}
-{ translation duplicate$ empty$
- 'skip$
- { ""
- "\translation{" * swap$ * "}" *
- punctuation.space 'punctuation.state :=
- }
- if$
-}
-
-FUNCTION {format.url}
-{
- url duplicate$ empty$
- { pop$ "" }
- {
- "\url"
- "{" * swap$ * "}" *
- }
- if$
-}
-
-INTEGERS { nameptr namesleft numnames }
-
-FUNCTION {check.speaker}
-{ key empty$ 'skip$
- { key nameptr int.to.str$ =
- {
- bolden
- }
- 'skip$
- if$
- }
- if$
-}
-
-
-STRINGS { bibinfo}
-
-FUNCTION {format.names}
-{ 'bibinfo :=
- duplicate$ empty$ 'skip$ {
- 's :=
- "" 't :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- nameptr #1 >
- { "{ff}" format.name$ duplicate$ empty$ 'skip$
- { tie.or.space.prefix bib.fname.font swap$ * }
- if$
- s nameptr
- "{vv~}{ll}" format.name$ bib.name.font *
- s nameptr
- "{jj}" format.name$ duplicate$ empty$ 'skip$
- { bib.fname.font ", " swap$ * }
- if$
- }
- { "{vv~}{ll}" format.name$ bib.name.font
- s nameptr
- "{ff}{, jj}"
- format.name$ duplicate$ empty$ 'skip$
- { bib.fname.font ", " swap$ * }
- if$
- }
- if$
- *
- bibinfo bibinfo.check
- type$ "presentation" =
- { check.speaker }
- 'skip$
- if$
- 't :=
- nameptr #1 >
- {
- namesleft #1 >
- {
- ", " *
- t *
- }{
- s nameptr "{ll}" format.name$ duplicate$ "others" =
- { 't := }
- { pop$ }
- if$
- "," *
- t "others" =
- {
- " " * bbl.etal
- emphasize
- *
- }{
- bbl.and
- space.word *
- t *
- }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
- } if$
-}
-
-FUNCTION {format.names.ed}
-{
- 'bibinfo :=
- duplicate$ empty$ 'skip$ {
- 's :=
- "" 't :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- "{ff}" format.name$ duplicate$ empty$ 'skip$
- { tie.or.space.prefix bib.fname.font swap$ * }
- if$
- s nameptr
- "{vv~}{ll}" format.name$ bib.name.font *
- s nameptr
- "{jj}" format.name$ duplicate$ empty$ 'skip$
- { bib.fname.font ", " swap$ * }
- if$
- *
- bibinfo bibinfo.check
- 't :=
- nameptr #1 >
- {
- namesleft #1 >
- {
- ", " *
- t *
- }{
- s nameptr "{ll}" format.name$ duplicate$ "others" =
- { 't := }
- { pop$ }
- if$
- numnames #2 >
- {
- "," *
- }
- { skip$ }
- if$
- t "others" =
- {
-
- " " * bbl.etal emphasize *
- }{
- bbl.and
- space.word * t *
- }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
- } if$
-}
-
-FUNCTION {format.key}
-{ empty$
- { key field.or.null }
- { "" }
- if$
-}
-
-FUNCTION {format.authors}
-{ author "author" format.names
- duplicate$ empty$ 'skip$
- { collaboration "collaboration" bibinfo.check
- duplicate$ empty$ 'skip$
- { " (" swap$ * ")" * }
- if$
- *
- }
- if$
- "author" 'bibfield :=
-}
-
-FUNCTION {get.bbl.editor}
-{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$
-}
-
-FUNCTION {format.editors}
-{ editor "editor" format.names duplicate$ empty$ 'skip$
- {
- "," *
- word.space *
- get.bbl.editor
- capitalize
- *
- }
- if$
-}
-
-FUNCTION {format.isbn}
-{
- isbn "isbn" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- new.block.comma
- "ISBN " swap$ *
- }
- if$
-}
-
-FUNCTION {format.issn}
-{ issn "issn" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- new.block.comma
- "ISSN " swap$ *
- }
- if$
-}
-
-FUNCTION {doi.base}
-{
- "http://dx.doi.org/"
-}
-
-FUNCTION {doi.command}
-{
- "\doi"
-}
-
-FUNCTION {doi.command.href}
-{
- "\Doi"
-}
-
-FUNCTION {format.doi}
-{ doi "doi" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- new.block.comma
- doi.command "{" * swap$ * "}" *
- }
- if$
-}
-
-FUNCTION {add.doi}
-{
- duplicate$ empty$ 'skip$
- {
- doi duplicate$ empty$ 'pop$
- {
- "{" swap$ * "}" *
- swap$
- "{" swap$ * "}" *
- *
- doi.command.href swap$ *
- }
- if$
- }
- if$
-}
-
-FUNCTION {select.language}
-{ duplicate$ empty$
- 'pop$
- { language empty$
- 'skip$
- { "{\selectlanguage {" language * "}" * swap$ * "}" * }
- if$
- }
- if$
-}
-
-FUNCTION {format.note}
-{
- note empty$
- { "" }
- { note #1 #1 substring$
- duplicate$ "{" =
- 'skip$
- {
- output.state after.word = output.state after.punctuation = or
- { "l" }
- { "u" }
- if$ change.case$
- }
- if$
- note #2 global.max$ substring$ * "note" bibinfo.check
- }
- if$
-}
-
-FUNCTION {bbl.enquote}
-{
- "\enquote"
-}
-
-FUNCTION {string.enquote}
-{
- punctuation.no 'punctuation.state :=
- non.stop {
- block.punctuation
- } { "." } if$
- swap$ pop$
- *
- bbl.enquote "{" * swap$ * "}" *
- word.space *
-}
-
-FUNCTION {format.title}
-{ title
- duplicate$ empty$ 'skip$ { "t" change.case$ } if$
- duplicate$ "title" bibinfo.check swap$
- duplicate$ empty$ 'pop$
- {
- punctuation.yes 'punctuation.state :=
- string.enquote
- select.language
- }
- if$
-}
-
-FUNCTION {end.quote.title}
-{ title empty$
- 'skip$
- { before.all 'output.state := }
- if$
-}
-
-FUNCTION {format.full.names}
-{
- 's :=
- "" 't :=
- #1 'nameptr :=
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- "{vv~}{ll}"
- format.name$
- cite.name.font
- 't :=
- nameptr #1 >
- {
- namesleft #1 >
- { ", " * t * }
- {
- s nameptr "{ll}" format.name$ duplicate$ "others" =
- {
- 't :=
- }
- 'pop$
- if$
- t "others" =
- {
- " " * bbl.etal
- emphasize *
- }{
- numnames #2 > { "," * }{ skip$ } if$
- bbl.and
- space.word * t *
- }
- if$
- }
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
-}
-
-FUNCTION {make.full.names}
-{
- key editor author
- type$ "proceedings" =
- type$ "book" =
- type$ "inbook" =
- or { pop$ }{ { pop$ "" }{ swap$ pop$ "" swap$ } if$ } if$
- duplicate$ empty$
- { pop$
- duplicate$ empty$
- { pop$
- duplicate$ empty$
- { pop$
- cite$ #1 #3 substring$
- }{
- skip$
- }
- if$
- }
- { swap$ pop$ format.full.names }
- if$
- }
- { swap$ pop$ swap$ pop$ format.full.names }
- if$
-}
-
-FUNCTION {year.bibitem}
-{
- year duplicate$ empty$
- { pop$ ""
- "????" *
- }{
- skip$
- } if$
- extra.label *
-}
-
-FUNCTION {output.bibitem}
-{
- newline$
- ""
- label
- *
- ")" *
- make.full.names duplicate$ short.list =
- { pop$ }{ * } if$
- "{" swap$ * "}" *
- "[" swap$ * "]" *
- "{" * cite$ * "}%" *
- "\bibitem"
- swap$ *
- write$ newline$
- " "
- duplicate$ bbl.open * write$ newline$
- before.all 'output.state :=
- punctuation.yes 'punctuation.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 {word.in}
-{
- bbl.in
- word.space *
-}
-
-FUNCTION {date.encapsulate}
-{
- duplicate$ empty$
- 'skip$
- {
- before.all 'output.state :=
- ", " swap$ *
- }
- if$
-}
-
-FUNCTION {format.date}
-{
- year "year" bibinfo.check duplicate$ empty$
- {
- "empty year in " cite$ * "; set to ????" * warning$
- pop$ "????"
- }
- 'skip$
- if$
- month "month" bibinfo.check duplicate$ empty$
- 'skip$
- {
- swap$
- word.space * swap$
- }
- if$
- *
- extra.label *
- date.encapsulate
-}
-
-FUNCTION {format.date.output.check}
-{
- format.date
- "year" output.check
-}
-
-FUNCTION {format.date.output}
-{
- format.date.output.check
-}
-
-FUNCTION {format.btitle}
-{
- booktitle duplicate$ empty$ { pop$
- title
- } 'skip$ if$
- "title" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- emphasize
- select.language
- }
- if$
-}
-
-FUNCTION {either.or.check}
-{ empty$
- 'pop$
- { "can't use both " swap$ * " fields in " * cite$ * warning$ }
- if$
-}
-
-FUNCTION {editor.check.book}
-{ editor empty$ 'skip$
- {
- "can't use both author and editor fields in " cite$ *
- ": try using @inbook instead" *
- warning$
- }
- if$
-}
-
-FUNCTION {format.bvolume}
-{ volume duplicate$ empty$
- { pop$ "" }
- {
- "volume and number" number either.or.check
- bbl.volume
- capitalize
- swap$
- tie.or.space.prefix "volume" bibinfo.check * *
- series "series" bibinfo.check duplicate$ empty$ 'pop$
- {
- ", "
- * swap$ *
- }
- if$
- }
- if$
-}
-
-FUNCTION {format.number}
-{
- bbl.number
- output.state after.word = output.state after.punctuation = or
- #1 or
- #0 and
- 'skip$
- { capitalize }
- if$
- number tie.or.space.prefix "number" bibinfo.check * *
-}
-
-FUNCTION {format.number.series}
-{ volume empty$
- { number empty$
- { series field.or.null }
- {
- series empty$
- {
- number "number" bibinfo.check
- }{
- format.number
- series "series" bibinfo.check
- word.space * swap$ *
- }
- 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 {convert.edition}
-{ extract.num "l" change.case$ 's :=
- s "first" = s "1" = or
- { bbl.first 't := }
- { s "second" = s "2" = or
- { bbl.second 't := }
- { s "third" = s "3" = or
- { bbl.third 't := }
- { s "fourth" = s "4" = or
- { bbl.fourth 't := }
- { s "fifth" = s "5" = or
- { bbl.fifth 't := }
- { s #1 #1 substring$ is.num
- { s
- eng.ord
- 't := }
- { edition 't := }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- }
- if$
- t
-}
-
-FUNCTION {format.edition}
-{ edition duplicate$ empty$ 'skip$
- {
- convert.edition
- output.state after.word = output.state after.punctuation = or
- { "l" }
- { "t" }
- if$ change.case$
- "edition" bibinfo.check
- word.space * 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 duplicate$ empty$
- 'skip$
- { duplicate$ multi.page.check
- {
- bbl.pages swap$
- n.dashify
- }{
- bbl.page swap$
- }
- if$
- tie.or.space.prefix
- "pages" bibinfo.check
- * *
- }
- if$
-}
-
-FUNCTION {format.book.pages}
-{
- pages duplicate$ empty$ 'skip$
- {
- "pages" bibinfo.check word.space bbl.pages * *
- }
- if$
-}
-
-FUNCTION {volnum.punct}
-{
- ","
- word.space *
-}
-
-FUNCTION {format.journal.pages}
-{ pages duplicate$ empty$ 'pop$
- { swap$ duplicate$ empty$
- { pop$ pop$ format.pages }
- { volnum.punct *
- swap$
- n.dashify
- "pages" bibinfo.check
- *
- }
- if$
- }
- if$
-}
-
-FUNCTION {format.journal.eid}
-{ eid "eid" bibinfo.check
- duplicate$ empty$ 'pop$
- { swap$ duplicate$ empty$ 'skip$
- { volnum.punct * }
- if$
- swap$ *
- }
- if$
-}
-
-FUNCTION {eid.or.pages}
-{
- eid empty$
- { format.journal.pages }
- { format.journal.eid }
- if$
-}
-
-FUNCTION {format.ser.vol.num}
-{
- series "series" bibinfo.check output
- after.punctuation 'output.state :=
- volume field.or.null
- duplicate$ empty$ 'skip$
- {
- "volume" bibinfo.check
- }
- if$
- bolden
- number "number" bibinfo.check duplicate$ empty$ 'skip$
- {
- swap$ duplicate$ empty$
- { "there's a number but no volume in " cite$ * warning$ }
- 'skip$
- if$
- swap$
- "~(" swap$ * ")" *
- }
- if$ *
-}
-
-FUNCTION {format.chapter.pages}
-{ chapter empty$
- {
- ""
- }
- { type empty$
- {
- bbl.chapter
- capitalize
- }{
- type
- capitalize
- "type" bibinfo.check
- }
- if$
- chapter tie.or.space.prefix
- "chapter" bibinfo.check
- * *
- }
- if$
-}
-
-FUNCTION {format.booktitle}
-{
- booktitle duplicate$ "booktitle" bibinfo.check swap$
- duplicate$ empty$ 'pop$
- {
- punctuation.yes 'punctuation.state :=
- pop$ emphasize
- select.language
- }
- if$
-}
-
-FUNCTION {format.editor.in}
-{
- editor "editor" format.names.ed duplicate$ empty$ 'skip$
- {
- bbl.edby
- word.space * swap$ *
- }
- if$
-}
-
-FUNCTION {output.article.booktitle}
-{
- format.booktitle
- "booktitle" 'bibfield :=
- output
- bookaddress "address" bibinfo.check duplicate$ empty$ 'pop$
- {
- "address" 'bibfield :=
- output.nonnull after.punctuation 'output.state :=
- }
- if$
-}
-
-FUNCTION {format.in.ed.booktitle}
-{
- format.booktitle duplicate$ empty$ 'pop$
- {
- add.doi
- word.in swap$ * output.nonnull
- bookaddress "address" bibinfo.check output
- format.number.series "series and number" bibinfo.check output
- format.bvolume output
- format.editor.in "editor" bibinfo.check output
- }
- if$
-}
-
-FUNCTION {format.in.ed.booktitle.inbook}
-{
- format.booktitle duplicate$ empty$ 'pop$
- {
- add.doi
- word.in swap$ * output.nonnull
- bookaddress "address" bibinfo.check output
- format.number.series "series and number" bibinfo.check output
- format.bvolume output
- author empty$ 'skip$
- { format.editor.in "editor" bibinfo.check output }
- if$
- }
- if$
-}
-
-FUNCTION {format.thesis.type}
-{ type duplicate$ empty$
- 'pop$
- { swap$ pop$
- "t" change.case$ "type" bibinfo.check
- }
- if$
-}
-
-FUNCTION {format.tr.number}
-{ number "number" bibinfo.check
- type duplicate$ empty$
- { pop$ bbl.techrep }
- 'skip$
- if$
- "type" bibinfo.check
- swap$ duplicate$ empty$
- { pop$ "t" change.case$ }
- { tie.or.space.prefix * * }
- if$
-}
-
-FUNCTION {format.article.crossref}
-{
- word.in
- " \cite{" * crossref * "}" *
-}
-
-FUNCTION {format.book.crossref}
-{ volume duplicate$ empty$
- { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
- pop$ word.in
- }
- { bbl.volume
- swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
- }
- if$
- " \cite{" * crossref * "}" *
-}
-
-FUNCTION {format.incoll.inproc.crossref}
-{
- word.in
- " \cite{" * crossref * "}" *
-}
-
-FUNCTION {format.org.or.pub}
-{ 't :=
- ""
- address "address" bibinfo.check
- duplicate$ empty$
- { pop$ t }
- { t duplicate$ empty$
- { pop$ }
- {
- "," word.space *
- * swap$ *
- }
- if$
- }
- if$
- *
- duplicate$ empty$ 'skip$ {
- ""
- "(" * swap$ * ")" *
- after.punctuation 'output.state :=
- punctuation.space 'punctuation.state :=
- } if$
-}
-
-FUNCTION {format.publisher.address}
-{ publisher "publisher" bibinfo.warn format.org.or.pub
-}
-
-FUNCTION {format.organization.address}
-{ organization "organization" bibinfo.check format.org.or.pub
-}
-
-FUNCTION {format.organization.publisher.address}
-{
- publisher empty$
- { format.organization.address }
- { organization "organization" bibinfo.check output
- format.publisher.address
- }
- if$
-}
-
-FUNCTION {format.school.address.output}
-{
- school "school" bibinfo.warn
- address "address" bibinfo.check
- duplicate$ empty$ 'skip$
- {
- swap$
- duplicate$ empty$ 'skip$
- {
- ", " *
- }
- if$
- swap$
- }
- if$
- *
- duplicate$ empty$ 'skip$ { "(" swap$ * ")" * } if$ after.punctuation 'output.state :=
- output
-}
-
-FUNCTION {article}
-{ output.bibitem
- format.authors
- booktitle empty$ {
- "author" output.check
- }{ output } if$
- author format.key output
- format.date.output.check date.block
- format.title
- "title" 'bibfield :=
- output
- new.block.comma
- output.article.booktitle
- crossref missing$
- {
- journal
- "journal" bibinfo.warn
- pages empty$ 'skip$ { add.doi } if$
- "journal" 'bibfield :=
- output
- format.ser.vol.num
- output
- }{
- format.article.crossref output.nonnull
- }
- if$
- eid.or.pages
- format.issn output
- pages empty$ {
- format.doi output
- } 'skip$ if$
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- format.translation output
- fin.entry
-}
-
-FUNCTION {book}
-{ output.bibitem
- author empty$
- {
- }{
- format.authors output.nonnull
- crossref missing$ { editor.check.book } 'skip$ if$
- }
- if$
- format.date.output.check date.block
- format.btitle
- add.doi
- "title" output.check
- format.edition output
- author empty$
- {
- format.editor.in output
- editor format.key output
- }
- {
- }
- if$
- format.number.series output
- crossref missing$
- {
- format.bvolume output
- new.block.comma
- format.publisher.address output
- }{
- new.block.comma
- format.book.crossref output.nonnull
- }
- if$
- format.isbn output
- format.chapter.pages
- output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {booklet}
-{ output.bibitem
- format.authors output
- author format.key output
- format.date.output date.block
- format.title
- add.doi
- "title" output.check
- new.block.comma
- howpublished "howpublished" bibinfo.check output
- address "address" bibinfo.check output
- format.isbn output
- format.book.pages output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {inbook}
-{ output.bibitem
- author empty$
- {
- format.editors "editor" output.check
- editor format.key output
- }{
- format.authors output.nonnull
- author format.key output
- }
- if$
- format.date.output.check date.block
-
- format.title output
- new.block.comma
-
- crossref missing$
- {
- format.in.ed.booktitle.inbook
- format.chapter.pages
- "chapter"
- output.check
- new.block.comma
- format.edition output
- new.block.comma
- format.publisher.address output
- }{
- format.chapter.pages
- "chapter"
- output.check
- new.block.comma
- format.book.crossref output.nonnull
- }
- if$
- crossref missing$
- { format.isbn output }
- 'skip$
- if$
- format.pages "pages" output.check
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {incollection}
-{ output.bibitem
- format.authors "author" output.check
- author format.key output
- format.date.output.check date.block
- format.title
- output
- new.block.comma
- crossref missing$
- {
- format.in.ed.booktitle
- format.edition output
- format.chapter.pages output
- format.publisher.address output
- format.isbn output
- }{
- format.incoll.inproc.crossref output.nonnull
- format.chapter.pages output
- }
- if$
- format.pages "pages" output.check
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {inproceedings}
-{ output.bibitem
- format.authors "author" output.check
- author format.key output
- format.date.output.check date.block
- format.title
- output
- new.block.comma
- crossref missing$
- {
- format.in.ed.booktitle
- format.organization.publisher.address output
- format.isbn output
- format.issn output
- }{
- format.incoll.inproc.crossref output.nonnull
- }
- if$
- format.chapter.pages "chapter and pages" output.check
- format.pages "pages" output.check
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {conference} { inproceedings }
-FUNCTION {manual}
-{ output.bibitem
- format.authors output
- author format.key output
- format.date.output date.block
- format.btitle
- add.doi
- "title" output.check
- organization "organization" bibinfo.check output
- address "address" bibinfo.check output
- format.edition output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {mastersthesis}
-{ output.bibitem
- format.authors "author" output.check
- author format.key output
- format.date.output.check date.block
- format.btitle
- output
- new.block.comma
- bbl.mthesis
- format.thesis.type
- add.doi
- output.nonnull
- format.school.address.output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {misc}
-{ output.bibitem
- format.authors output
- author format.key output
- format.date.output
- date.block
- format.title
- add.doi
- output
- new.block.comma
- howpublished "howpublished" bibinfo.check output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {phdthesis}
-{ output.bibitem
- format.authors "author" output.check
- author format.key output
- format.date.output.check date.block
- format.btitle
- output
- new.block.comma
- bbl.phdthesis
- format.thesis.type
- add.doi
- output.nonnull
- format.school.address.output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {presentation}
-{ output.bibitem
- format.authors output
- author format.key output
- new.block.comma
- format.title output
- new.block.comma
- format.organization.address "organization and address" output.check
- month "month" output.check
- year "year" output.check
- new.block.comma
- new.sentence.comma
- format.note output
- new.sentence
- type missing$ 'skip$
- {"(" type capitalize * ")" * output}
- if$
- new.block.comma format.url output
- fin.entry
-}
-
-FUNCTION {proceedings}
-{ output.bibitem
- format.editors output
- editor format.key output
- format.date.output.check date.block
- format.btitle
- add.doi
- "title" output.check
- bookaddress "address" bibinfo.check output
- format.number.series output
- format.bvolume output
- format.organization.publisher.address output
- format.isbn output
- format.issn output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {techreport}
-{ output.bibitem
- format.authors "author" output.check
- author format.key output
- format.date.output.check date.block
- format.btitle
- add.doi
- "title" output.check
- new.block.comma
- format.tr.number
- output.nonnull
- institution "institution" bibinfo.warn
- format.org.or.pub output
- new.block.comma
- new.sentence.comma
- format.note output
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {unpublished}
-{ output.bibitem
- format.authors "author" output.check
- author format.key output
- format.date.output date.block
- format.title
- add.doi
- "title" output.check
- new.block.comma
- new.sentence.comma
- format.note "note" output.check
- format.eprint output
- format.url output
- fin.entry
-}
-
-FUNCTION {default.type} { misc }
-READ
-FUNCTION {sortify}
-{ purify$
- "l" change.case$
-}
-
-INTEGERS { len }
-FUNCTION {chop.word}
-{ 's :=
- 'len :=
- s #1 len substring$ =
- { s len #1 + global.max$ substring$ }
- 's
- if$
-}
-
-FUNCTION {format.lab.names}
-{ 's :=
- "" 't :=
- s #1
- "{vv~}{ll}"
- format.name$
- cite.name.font
- s num.names$ duplicate$
- #2 >
- { pop$
- word.space * bbl.etal
- emphasize
- *
- }{
- #2 <
- 'skip$
- {
- s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
- {
- word.space * bbl.etal
- emphasize
- *
- }{
- bbl.and space.word *
- s #2 "{vv~}{ll}" format.name$
- cite.name.font
- *
- }
- 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 {editor.key.label}
-{ editor empty$
- { key empty$
- { cite$ #1 #3 substring$ }
- 'key
- if$
- }
- { editor format.lab.names }
- if$
-}
-
-FUNCTION {calc.short.authors}
-{ type$ "book" =
- type$ "inbook" =
- or
- 'author.editor.key.label
- { type$ "proceedings" =
- 'editor.key.label
- 'author.key.label
- 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 :=
-}
-
-FUNCTION {sort.format.names}
-{ 's :=
- #1 'nameptr :=
- ""
- s num.names$ 'numnames :=
- numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr
- "{ll{ }}{ ff{ }}{ jj{ }}"
- format.name$ 't :=
- nameptr #1 >
- {
- " " *
- namesleft #1 = t "others" = and
- { "zzzzz" * }
- {
- t sortify *
- }
- if$
- }
- { t sortify * }
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
-}
-
-FUNCTION {sort.format.title}
-{ 't :=
- "A " #2
- "An " #3
- "The " #4 t chop.word
- chop.word
- chop.word
- sortify
- #1 global.max$ substring$
-}
-
-FUNCTION {author.sort}
-{ author empty$
- { key empty$
- { "to sort, need author or key in " cite$ * warning$
- ""
- }
- { key sortify }
- if$
- }
- { author sort.format.names }
- if$
-}
-
-FUNCTION {author.editor.sort}
-{ author empty$
- { editor empty$
- { key empty$
- { "to sort, need author, editor, or key in " cite$ * warning$
- ""
- }
- { key sortify }
- if$
- }
- { editor sort.format.names }
- if$
- }
- { author sort.format.names }
- if$
-}
-
-FUNCTION {editor.sort}
-{ editor empty$
- { key empty$
- { "to sort, need editor or key in " cite$ * warning$
- ""
- }
- { key sortify }
- if$
- }
- { editor sort.format.names }
- if$
-}
-
-FUNCTION {presort}
-{ calc.label
- label sortify
- " "
- *
- type$ "book" =
- type$ "inbook" =
- or
- 'author.editor.sort
- { type$ "proceedings" =
- 'editor.sort
- 'author.sort
- if$
- }
- if$
- #1 entry.max$ substring$
- 'sort.label :=
- sort.label
- *
- " "
- *
- title field.or.null
- sort.format.title
- *
- #1 entry.max$ substring$
- 'sort.key$ :=
-}
-
-ITERATE {presort}
-SORT
-STRINGS { last.label next.extra }
-INTEGERS { last.extra.num number.label }
-FUNCTION {initialize.extra.label.stuff}
-{ #0 int.to.chr$ 'last.label :=
- "" 'next.extra :=
- #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 :=
-}
-
-FUNCTION {reverse.pass}
-{ next.extra "b" =
- { "a" 'extra.label := }
- 'skip$
- if$
- extra.label 'next.extra :=
- extra.label
- duplicate$ empty$
- 'skip$
- { "{\natexlab{" swap$ * "}}" * }
- if$
- 'extra.label :=
- label extra.label * 'label :=
-}
-
-EXECUTE {initialize.extra.label.stuff}
-ITERATE {forward.pass}
-REVERSE {reverse.pass}
-FUNCTION {bib.sort.order}
-{ sort.label
- " "
- *
- year
- field.or.null sortify
- *
- " "
- *
- title field.or.null
- sort.format.title
- *
- #1 entry.max$ substring$
- 'sort.key$ :=
-}
-
-ITERATE {bib.sort.order}
-SORT
-FUNCTION {init.bib.eprint}
-{
- "\texttt{"
- pop$
- "\providecommand \url [0]{\begingroup\@sanitize \@url }%" write$ newline$
- "\providecommand \@url [1]{\endgroup\@href {#1}{" "}}%" bbl.url.prefix swap$ * * write$ newline$
- "\providecommand " " [0]{URL }%" bbl.url.prefix swap$ * * write$ newline$
- eprint.command "\providecommand " swap$ * "[0]{\href }%" * write$ newline$
-}
-
-FUNCTION {init.bib.doi}
-{
- "\@ifxundefined \urlstyle {%" write$ newline$
- " \providecommand \doi [1]{doi:\discretionary{}{}{}#1}%" write$ newline$
- "}{%" write$ newline$
- " \providecommand \doi [0]{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url }%"
- write$ newline$
- "}%" write$ newline$
- "\providecommand \doibase [0]{" doi.base * "}%" * write$ newline$
- doi.command.href "\providecommand " swap$ * "[1]{\href{\doibase#1}}%" * write$ newline$
-}
-
-FUNCTION {init.bib.hypertex}
-{
- "\providecommand\href[0]{\@sanitize\@href}%" write$ newline$
- "\providecommand\@href[1]{\endgroup\@@startlink{#1}\endgroup\@@href}%" write$ newline$
- "\providecommand\@@href[1]{#1\@@endlink}%" write$ newline$
- "\providecommand \@sanitize [0]{\begingroup\catcode`\&12\catcode`\#12\relax}%" write$ newline$
- "\@ifxundefined \pdfoutput {\@firstoftwo}{%" write$ newline$
- " \@ifnum{\z@=\pdfoutput}{\@firstoftwo}{\@secondoftwo}%" write$ newline$
- "}{%" write$ newline$
- " \providecommand\@@startlink[1]{\leavevmode\special{html:<a href=" quote$ * "#1" * quote$ * ">}}%" * write$ newline$
- " \providecommand\@@endlink[0]{\special{html:</a>}}%" write$ newline$
- "}{%" write$ newline$
- " \providecommand\@@startlink[1]{%" write$ newline$
- " \leavevmode" write$ newline$
- " \pdfstartlink" write$ newline$
- " attr{/Border[0 0 1 ]/H/I/C[0 1 1]}%" write$ newline$
- " user{/Subtype/Link/A<</Type/Action/S/URI/URI(#1)>>}%" write$ newline$
- " \relax" write$ newline$
- " }%" write$ newline$
- " \providecommand\@@endlink[0]{\pdfendlink}%" write$ newline$
- "}%" write$ newline$
-}
-
-FUNCTION {init.bib.namefont}
-{
- "\providecommand \bibnamefont [1]{#1}%" write$ newline$
- "\providecommand \bibfnamefont [1]{#1}%" write$ newline$
- "\providecommand \citenamefont [1]{#1}%" write$ newline$
-}
-
-FUNCTION {init.bib.quote}
-{
- "\providecommand " bbl.enquote * " [1]{" *
- "``" "''"
- "#1" swap$ "}%" * * * * write$ newline$
-}
-
-FUNCTION {init.bib.ay}
-{
- "\providecommand \natexlab [1]{#1}%"
- write$ newline$
-}
-
-FUNCTION {init.bib.annote}
-{
- "\providecommand \bibAnnote [3]{%" write$ newline$
- " " bbl.shut * "{#1}%" * write$ newline$
- " \begin{quotation}\noindent" write$ newline$
- " \textsc{Key:}\ #2\\\textsc{Annotation:}\ #3%" write$ newline$
- " \end{quotation}%" write$ newline$
- "}%" write$ newline$
- "\providecommand \bibAnnoteFile [2]{%" write$ newline$
- " \IfFileExists{#2}{\bibAnnote {#1} {#2} {\input{#2}}}{}%" write$ newline$
- "}%" write$ newline$
- "\providecommand \typeout [0]{\immediate \write \m@ne }%" write$ newline$
-}
-
-FUNCTION {init.bib.bibinfo}
-{
- bibinfo.command "\providecommand " swap$ * " [0]{\@secondoftwo}%" * write$ newline$
- bibfield.command "\providecommand " swap$ * " [0]{\@secondoftwo}%" * write$ newline$
-}
-
-FUNCTION {init.bib.lang}
-{
- "\providecommand \selectlanguage [0]{\@gobble}%" write$ newline$
-}
-
-FUNCTION {init.bib.endbibitem}
-{
- "\providecommand " bbl.open * "[0]{}%" * write$ newline$
- "\providecommand \bibitemStop [0]{}%" write$ newline$
- "\providecommand \bibitemNoStop [0]{.\EOS\space}%" write$ newline$
- "\providecommand \EOS [0]{\spacefactor3000\relax}%" write$ newline$
-}
-
-FUNCTION {init.bib.translation}
-{
- "\providecommand \translation [1]{[#1]}%" write$ newline$
-}
-
-FUNCTION {warn.bib}
-{
-}
-
-FUNCTION {init.bib}
-{
- warn.bib
- "\makeatletter" write$ newline$
- "\providecommand \@ifxundefined [1]{%" write$ newline$
- " \ifx #1\undefined \expandafter \@firstoftwo" write$ newline$
- " \else \expandafter \@secondoftwo" write$ newline$
- "\fi" write$ newline$
- "}%" write$ newline$
- "\providecommand \@ifnum [1]{%" write$ newline$
- " \ifnum #1\expandafter \@firstoftwo" write$ newline$
- " \else \expandafter \@secondoftwo" write$ newline$
- "\fi" write$ newline$
- "}%" write$ newline$
- init.bib.ay
- init.bib.quote
- init.bib.namefont
- init.bib.hypertex
- init.bib.eprint
- init.bib.doi
- init.bib.annote
- init.bib.lang
- init.bib.bibinfo
- init.bib.translation
- init.bib.endbibitem
- "\providecommand " bbl.shut * " [1]{\csname bibitem#1\endcsname}%" * write$ newline$
- "%</preamble>" write$
-}
-
-FUNCTION {begin.bib}
-{
- id.bst duplicate$ top$ "%" swap$ * write$ newline$
- preamble$ empty$
- 'skip$
- { preamble$ write$ newline$ }
- if$
- "\begin{thebibliography}{"
- number.label int.to.str$
- * "}%" *
- write$ newline$
- init.bib
-}
-
-EXECUTE {begin.bib}
-EXECUTE {init.state.consts}
-ITERATE {call.type$}
-FUNCTION {end.bib}
-{ newline$
- "\end{thebibliography}%"
- write$ newline$
-}
-
-EXECUTE {end.bib}
-%% End of customized bst file
-%%
-%% End of file `apsrmp4-1long.bst'.