diff options
author | Karl Berry <karl@freefriends.org> | 2007-12-23 01:41:53 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-12-23 01:41:53 +0000 |
commit | b65e843c0c17f9373e6d1b8b569aac16125f228c (patch) | |
tree | e0be33984f0d49c7b62a04435dc209fe37a66838 /Master/texmf-dist/bibtex/bst/aguplus/agufull.bst | |
parent | 2f8629041e590d6d4c493eb2d7682665ff696f73 (diff) |
aguplus update (19dec07)
git-svn-id: svn://tug.org/texlive/trunk@5832 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/bibtex/bst/aguplus/agufull.bst')
-rw-r--r-- | Master/texmf-dist/bibtex/bst/aguplus/agufull.bst | 631 |
1 files changed, 369 insertions, 262 deletions
diff --git a/Master/texmf-dist/bibtex/bst/aguplus/agufull.bst b/Master/texmf-dist/bibtex/bst/aguplus/agufull.bst index 4fa3b80e582..17223f7edbc 100644 --- a/Master/texmf-dist/bibtex/bst/aguplus/agufull.bst +++ b/Master/texmf-dist/bibtex/bst/aguplus/agufull.bst @@ -4,15 +4,26 @@ %% %% The original source files were: %% -%% merlin.mbs (with options: `head,ay,nat,seq-key,nm-rev1,lab,lab-it,keyxyr,blkyear,note-yr,thtit-a,trnum-it,vol-it,vnum-x,volp-com,pgsep-c,num-xser,pre-edn,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,{}') -%% physjour.mbs (with options: `ay,nat,seq-key,nm-rev1,lab,lab-it,keyxyr,blkyear,note-yr,thtit-a,trnum-it,vol-it,vnum-x,volp-com,pgsep-c,num-xser,pre-edn,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,{}') -%% geojour.mbs (with options: `ay,nat,seq-key,nm-rev1,lab,lab-it,keyxyr,blkyear,note-yr,thtit-a,trnum-it,vol-it,vnum-x,volp-com,pgsep-c,num-xser,pre-edn,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,{}') -%% merlin.mbs (with options: `tail,ay,nat,seq-key,nm-rev1,lab,lab-it,keyxyr,blkyear,note-yr,thtit-a,trnum-it,vol-it,vnum-x,volp-com,pgsep-c,num-xser,pre-edn,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,{}') +%% merlin.mbs (with options: `head,ay,nat,seq-key,nm-rev1,jnrlst,lab,lab-it,keyxyr,blkyear,dt-end,note-yr,thtit-a,trnum-it,vol-it,volp-com,pgsep-c,num-xser,ser-vol,ser-ed,pg-bk,pg-pre,pre-edn,agu-doi,doi,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,nfss,{}') +%% physjour.mbs (with options: `ay,nat,seq-key,nm-rev1,jnrlst,lab,lab-it,keyxyr,blkyear,dt-end,note-yr,thtit-a,trnum-it,vol-it,volp-com,pgsep-c,num-xser,ser-vol,ser-ed,pg-bk,pg-pre,pre-edn,agu-doi,doi,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,nfss,{}') +%% geojour.mbs (with options: `ay,nat,seq-key,nm-rev1,jnrlst,lab,lab-it,keyxyr,blkyear,dt-end,note-yr,thtit-a,trnum-it,vol-it,volp-com,pgsep-c,num-xser,ser-vol,ser-ed,pg-bk,pg-pre,pre-edn,agu-doi,doi,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,nfss,{}') +%% photjour.mbs (with options: `ay,nat,seq-key,nm-rev1,jnrlst,lab,lab-it,keyxyr,blkyear,dt-end,note-yr,thtit-a,trnum-it,vol-it,volp-com,pgsep-c,num-xser,ser-vol,ser-ed,pg-bk,pg-pre,pre-edn,agu-doi,doi,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,nfss,{}') +%% merlin.mbs (with options: `tail,ay,nat,seq-key,nm-rev1,jnrlst,lab,lab-it,keyxyr,blkyear,dt-end,note-yr,thtit-a,trnum-it,vol-it,volp-com,pgsep-c,num-xser,ser-vol,ser-ed,pg-bk,pg-pre,pre-edn,agu-doi,doi,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,nfss,{}') %% ---------------------------------------- %% *** For journals of the American Geophysical Union *** %% *** NOTE: this version does not limit the number of authors in ref list. %% *** Use agu.bst to limit authors to maximum 9. %% *** +%% ---------------------------------------- +%% *** Version 2.2 from 2003/06/26 +%% *** (with bug fix from 2003/08/19) +%% *** Includes new fields eid and doi +%% *** The eid is what the AGU calls "citation number" +%% *** and doi is the DOI number; both of these are +%% *** used as substitution for page number +%% *** The issue number is now also included as +%% *** 84(3) for vol. 84, nr. 3 +%% *** %% *** Version 2.1d from 1999/05/20 %% *** Book editors done right as P. James (Ed.), %% *** Missing italics with some authors fixed @@ -26,12 +37,12 @@ %% *** %% *** Version 2.1a from 1997/05/26 %% *** (contains improvements from copy editor comments, -%% *** notes added with first word lowercase (bug in 2.1 fixed) -%% *** and journal `number' never output -%% *** abbreviation for grl corrected) -%% *** +%% *** notes added with first word lowercase (bug in 2.1 fixed) +%% *** and journal `number' never output +%% *** abbreviation for grl corrected) +%% *** %% -%% Copyright 1994-1999 Patrick W Daly +%% Copyright 1994-2004 Patrick W Daly % =============================================================== % IMPORTANT NOTICE: % This bibliographic style (bst) file has been generated from one or @@ -43,7 +54,7 @@ % version 1 of the License, or any later version. % =============================================================== % Name and version information of the main mbs file: - % \ProvidesFile{merlin.mbs}[1999/05/20 3.89 (PWD)] + % \ProvidesFile{merlin.mbs}[2004/02/09 4.13 (PWD, AO, DPC)] % For use with BibTeX version 0.99a or later %------------------------------------------------------------------- % This bibliography style file is intended for texts in ENGLISH @@ -79,8 +90,10 @@ ENTRY author booktitle chapter + doi edition editor + eid howpublished institution journal @@ -100,18 +113,14 @@ ENTRY } {} { label extra.label sort.label short.list } - INTEGERS { output.state before.all mid.sentence after.sentence after.block } - FUNCTION {init.state.consts} { #0 'before.all := #1 'mid.sentence := #2 'after.sentence := #3 'after.block := } - -STRINGS { s t } - +STRINGS { s t} FUNCTION {output.nonnull} { 's := output.state mid.sentence = @@ -132,14 +141,12 @@ FUNCTION {output.nonnull} if$ s } - FUNCTION {output} { duplicate$ empty$ 'pop$ 'output.nonnull if$ } - FUNCTION {output.check} { 't := duplicate$ empty$ @@ -147,7 +154,6 @@ FUNCTION {output.check} 'output.nonnull if$ } - FUNCTION {fin.entry} { add.period$ write$ @@ -160,7 +166,6 @@ FUNCTION {new.block} { after.block 'output.state := } if$ } - FUNCTION {new.sentence} { output.state after.block = 'skip$ @@ -171,7 +176,6 @@ FUNCTION {new.sentence} } if$ } - FUNCTION {add.blank} { " " * before.all 'output.state := } @@ -186,19 +190,16 @@ FUNCTION {not} { #1 } if$ } - FUNCTION {and} { 'skip$ { pop$ #0 } if$ } - FUNCTION {or} { { pop$ #1 } 'skip$ if$ } - FUNCTION {new.block.checkb} { empty$ swap$ empty$ @@ -207,31 +208,33 @@ FUNCTION {new.block.checkb} 'new.block if$ } - FUNCTION {field.or.null} { duplicate$ empty$ { pop$ "" } 'skip$ if$ } - FUNCTION {emphasize} { duplicate$ empty$ { pop$ "" } - { "{\it " swap$ * "\/}" * } + { "\textit{" swap$ * "}" * } if$ } - - FUNCTION {cite.name.font} { emphasize } +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} FUNCTION {capitalize} { "u" change.case$ "t" change.case$ } FUNCTION {space.word} { " " swap$ * " " * } - % 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 @@ -312,9 +315,10 @@ MACRO {dec} {"Dec."} %------------------------------------------------------------------- % Begin module: - % \ProvidesFile{physjour.mbs}[1999/02/24 2.0d (PWD)] + % \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."} @@ -328,7 +332,10 @@ MACRO {ao} {"Appl. Opt."} MACRO {apl} {"Appl. Phys. Lett."} MACRO {app} {"Astroparticle Phys."} MACRO {apj} {"Astrophys. J."} -MACRO {apjsup} {"Astrophys. J. Suppl. Ser."} +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."} @@ -401,33 +408,34 @@ 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}[1999/02/24 2.0e (PWD)] + % \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. d. Phys."} +MACRO {andphy} {"Ann. Phys.-Paris"} MACRO {afmgb} {"Arch. Meteor. Geophys. Bioklimatol."} MACRO {atph} {"Atm\'osphera"} -MACRO {aao} {"Atmos.-Ocean"} +MACRO {aao} {"Atmos. Ocean"} MACRO {ass}{"Astrophys. Space Sci."} MACRO {atenv} {"Atmos. Environ."} -MACRO {aujag} {"Aust. J. Agric. Res."} -MACRO {aumet} {"Aust. Meteor. Mag."} -MACRO {blmet} {"Bound.-Layer Meteor."} -MACRO {bams} {"Bull. Amer. Meteor. Soc."} +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} {"Climate Dyn."} +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} {"Dyn. Atmos. Oceans"} +MACRO {dao} {"Dynam. Atmos. Oceans"} MACRO {eco} {"Ecology"} MACRO {empl}{"Earth, Moon and Planets"} MACRO {envres} {"Environ. Res."} @@ -444,13 +452,14 @@ MACRO {georl} {"Geophys. Res. Lett."} MACRO {grl} {"Geophys. Res. Lett."} MACRO {ga} {"Geophysica"} MACRO {gs} {"Geophysics"} -MACRO {ieeetap} {"IEEE Trans. Antennas Propag."} +MACRO {ieeetap} {"IEEE Trans. Antenn. Propag."} MACRO {ijawp} {"Int. J. Air Water Pollut."} MACRO {ijc} {"Int. J. Climatol."} -MACRO {ijrs} {"Int. J. Remote Sensing"} -MACRO {jam} {"J. Appl. Meteor."} +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."} @@ -467,42 +476,42 @@ 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. Meteor. Soc. Japan"} +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} {"Met. Atmos. Phys."} +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. Wea. Rev."} -MACRO {nwd} {"Natl. Wea. Dig."} -MACRO {nzjmfr} {"N. Z. J. Mar. Freshwater Res."} +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. Meteor."} +MACRO {om} {"Oceanogr. Meteorol."} MACRO {ocac} {"Oceanol. Acta"} MACRO {oceanus} {"Oceanus"} MACRO {paleoc} {"Paleoceanography"} -MACRO {pce} {"Physics and Chemistry of the Earth"} +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. Meteor. Soc."} +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. Meteor."} +MACRO {revmeta} {"Rev. Meteorol."} MACRO {sgp}{"Surveys in Geophys."} MACRO {sp} {"Solar Phys."} MACRO {ssr} {"Space Sci. Rev."} @@ -511,12 +520,46 @@ MACRO {tac} {"Theor. Appl. Climatol."} MACRO {tagu} {"Trans. Am. Geophys. Union (EOS)"} MACRO {wrr} {"Water Resour. Res."} MACRO {weather} {"Weather"} -MACRO {wafc} {"Wea. Forecasting"} +MACRO {wafc} {"Weather Forecast."} MACRO {ww} {"Weatherwise"} MACRO {wmob} {"WMO Bull."} -MACRO {zeitmet} {"Z. Meteor."} +MACRO {zeitmet} {"Z. Meteorol."} % End module: geojour.mbs -%% Copyright 1994-1999 Patrick W Daly + %------------------------------------------------------------------- + % 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-2004 Patrick W Daly MACRO {acmcs} {"ACM Comput. Surv."} MACRO {acta} {"Acta Inf."} @@ -527,12 +570,12 @@ MACRO {ibmjrd} {"IBM J. Res. Dev."} MACRO {ibmsj} {"IBM Syst.~J."} -MACRO {ieeese} {"IEEE Trans. Softw. Eng."} +MACRO {ieeese} {"IEEE Trans. Software Eng."} MACRO {ieeetc} {"IEEE Trans. Comput."} MACRO {ieeetcad} - {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + {"IEEE Trans. Comput. Aid. Des."} MACRO {ipl} {"Inf. Process. Lett."} @@ -540,7 +583,7 @@ MACRO {jacm} {"J.~ACM"} MACRO {jcss} {"J.~Comput. Syst. Sci."} -MACRO {scp} {"Sci. Comput. Programming"} +MACRO {scp} {"Sci. Comput. Program."} MACRO {sicomp} {"SIAM J. Comput."} @@ -548,31 +591,72 @@ MACRO {tocs} {"ACM Trans. Comput. Syst."} MACRO {tods} {"ACM Trans. Database Syst."} -MACRO {tog} {"ACM Trans. Gr."} +MACRO {tog} {"ACM Trans. Graphic."} -MACRO {toms} {"ACM Trans. Math. Softw."} +MACRO {toms} {"ACM Trans. Math. Software"} MACRO {toois} {"ACM Trans. Office Inf. Syst."} -MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} - -MACRO {tcs} {"Theoretical Comput. Sci."} +MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."} +MACRO {tcs} {"Theor. Comput. Sci."} +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +STRINGS { bibinfo} INTEGERS { nameptr namesleft numnames } FUNCTION {format.names} -{ 's := +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := "" 't := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } - { nameptr #1 > - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ } - { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ } + { s nameptr + duplicate$ #1 > + { "{f.~}{vv~}{ll}{, jj}" } + { "{vv~}{ll}{, f.}{, jj}" } if$ - 't := + format.name$ + bibinfo bibinfo.check + 't := nameptr #1 > { namesleft #1 > @@ -587,7 +671,8 @@ FUNCTION {format.names} { " " * bbl.etal * } - { bbl.and + { + bbl.and space.word * t * } if$ @@ -600,10 +685,13 @@ FUNCTION {format.names} namesleft #1 - 'namesleft := } while$ + } if$ } - FUNCTION {format.names.ed} -{ 's := +{ + 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := "" 't := #1 'nameptr := s num.names$ 'numnames := @@ -612,6 +700,7 @@ FUNCTION {format.names.ed} { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ + bibinfo bibinfo.check 't := nameptr #1 > { @@ -631,7 +720,8 @@ FUNCTION {format.names.ed} " " * bbl.etal * } - { bbl.and + { + bbl.and space.word * t * } if$ @@ -644,8 +734,8 @@ FUNCTION {format.names.ed} namesleft #1 - 'namesleft := } while$ + } if$ } - FUNCTION {format.key} { empty$ { key field.or.null } @@ -654,35 +744,36 @@ FUNCTION {format.key} } FUNCTION {format.authors} -{ author empty$ - { "" } - { author format.names } - if$ +{ author "author" format.names } +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } FUNCTION {format.editors} -{ editor empty$ - { "" } - { editor format.names - " (" * - editor num.names$ #1 > - 'bbl.editors - 'bbl.editor - if$ +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + " " * + get.bbl.editor capitalize - * ")" * + "(" swap$ * ")" * + * } if$ } - -FUNCTION {format.in.editors} -{ editor empty$ - { "" } - { editor format.names.ed +FUNCTION {format.book.pages} +{ pages "pages" bibinfo.check + duplicate$ empty$ 'skip$ + { " " * bbl.pages * } + if$ +} +FUNCTION {format.doi} +{ doi "doi" bibinfo.check + duplicate$ empty$ 'skip$ + { + "\doi{" swap$ * "}" * } if$ } - FUNCTION {format.note} { note empty$ @@ -697,19 +788,18 @@ FUNCTION {format.note} change.case$ } if$ - note #2 global.max$ substring$ * + note #2 global.max$ substring$ * "note" bibinfo.check } if$ } FUNCTION {format.title} -{ title empty$ - { "" } - { title "t" change.case$ - } +{ title + duplicate$ empty$ 'skip$ + { "t" change.case$ } if$ + "title" bibinfo.check } - FUNCTION {format.full.names} {'s := "" 't := @@ -889,80 +979,75 @@ FUNCTION {word.in} " " * } FUNCTION {format.date} -{ year duplicate$ empty$ - { pop$ "" } +{ year "year" bibinfo.check duplicate$ empty$ + { + } 'skip$ if$ extra.label * } - FUNCTION {format.btitle} -{ title emphasize -} - -FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } if$ - swap$ * * } - FUNCTION {either.or.check} { empty$ 'pop$ { "can't use both " swap$ * " fields in " * cite$ * warning$ } if$ } - FUNCTION {format.bvolume} { volume empty$ { "" } - { bbl.volume volume tie.or.space.connect - series empty$ - 'skip$ - { bbl.of space.word * series emphasize * } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { emphasize ", " * swap$ * } if$ "volume and number" number either.or.check } if$ } - FUNCTION {format.number.series} { volume empty$ { number empty$ { series field.or.null } { series empty$ - { number } - { output.state mid.sentence = - { bbl.number } - { bbl.number capitalize } + { number "number" bibinfo.check } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + bbl.in space.word * + series "series" bibinfo.check * + } if$ - number tie.or.space.connect - bbl.in space.word * series * } if$ } - if$ - } { "" } if$ } - FUNCTION {format.edition} -{ edition empty$ - { "" } - { output.state mid.sentence = - { edition "l" change.case$ " " * bbl.edition * } - { edition "t" change.case$ " " * bbl.edition * } - if$ +{ edition duplicate$ empty$ 'skip$ + { + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * } if$ } - INTEGERS { multiresult } - FUNCTION {multi.page.check} { 't := #0 'multiresult := @@ -982,36 +1067,72 @@ FUNCTION {multi.page.check} while$ multiresult } - FUNCTION {format.pages} -{ pages empty$ - { "" } - { pages multi.page.check - { bbl.pages pages n.dashify tie.or.space.connect } - { bbl.page pages tie.or.space.connect } +{ 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.journal.pages} -{ pages empty$ - 'skip$ - { duplicate$ empty$ - { pop$ format.pages } +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } { ", " * - pages n.dashify * + swap$ + n.dashify + "pages" bibinfo.check + * } if$ } if$ } - +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ 'skip$ + { + ", " * + } + if$ + swap$ * + } + if$ +} FUNCTION {format.vol.num.pages} { volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ emphasize - format.journal.pages + 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$ * + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ } FUNCTION {format.chapter.pages} @@ -1019,9 +1140,13 @@ FUNCTION {format.chapter.pages} 'format.pages { type empty$ { bbl.chapter } - { type "l" change.case$ } + { type "l" change.case$ + "type" bibinfo.check + } if$ - chapter tie.or.space.connect + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * pages empty$ 'skip$ { ", " * format.pages * } @@ -1030,66 +1155,71 @@ FUNCTION {format.chapter.pages} if$ } +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + emphasize +} FUNCTION {format.in.ed.booktitle} -{ booktitle empty$ - { "" } - { editor empty$ - { word.in booktitle emphasize * } - { word.in booktitle emphasize * - ", " * +{ format.booktitle duplicate$ empty$ 'skip$ + { + format.bvolume duplicate$ empty$ 'pop$ + { ", " swap$ * * } + if$ + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { bbl.edby - * " " * - format.in.editors * - } + " " * swap$ * + swap$ + "," * + " " * swap$ + * } if$ + word.in swap$ * } if$ } - FUNCTION {format.thesis.type} -{ type empty$ - 'skip$ - { pop$ - type "t" change.case$ +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check } if$ } - FUNCTION {format.tr.number} -{ type empty$ - { bbl.techrep } - 'type +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ if$ - number empty$ - { "t" change.case$ } - { number tie.or.space.connect } + "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 empty$ +{ volume duplicate$ empty$ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ - word.in + pop$ word.in } - { bbl.volume volume tie.or.space.connect - bbl.of space.word * + { 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 := "" @@ -1097,38 +1227,24 @@ FUNCTION {format.org.or.pub} 'skip$ { t empty$ - { address empty$ - 'skip$ - { address * } - if$ + { address "address" bibinfo.check * } { t * address empty$ 'skip$ - { ", " * address * } + { ", " * address "address" bibinfo.check * } if$ } if$ } if$ } - FUNCTION {format.publisher.address} -{ publisher empty$ - { "empty publisher in " cite$ * warning$ - "" - } - { publisher } - if$ - format.org.or.pub +{ publisher "publisher" bibinfo.warn format.org.or.pub } FUNCTION {format.organization.address} -{ organization empty$ - { "" } - { organization } - if$ - format.org.or.pub +{ organization "organization" bibinfo.check format.org.or.pub } FUNCTION {article} @@ -1137,20 +1253,22 @@ FUNCTION {article} author format.key output format.title "title" output.check crossref missing$ - { journal + { + journal + "journal" bibinfo.check emphasize "journal" output.check format.vol.num.pages output - format.date "year" output.check + format.doi output } { format.article.crossref output.nonnull format.pages output } if$ format.note output + format.date "year" output.check fin.entry } - FUNCTION {book} { output.bibitem author empty$ @@ -1169,26 +1287,29 @@ FUNCTION {book} { format.bvolume output format.number.series output format.edition output + format.book.pages output format.publisher.address output } { format.book.crossref output.nonnull } if$ - format.date "year" output.check + format.doi output format.note output + format.date "year" output.check fin.entry } - FUNCTION {booklet} { output.bibitem format.authors output author format.key output format.title "title" output.check - howpublished output - address output - format.date "year" output.check + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.book.pages output + format.doi output format.note output + format.date "year" output.check fin.entry } @@ -1219,8 +1340,9 @@ FUNCTION {inbook} format.book.crossref output.nonnull } if$ - format.date "year" output.check + format.doi output format.note output + format.date "year" output.check fin.entry } @@ -1231,21 +1353,20 @@ FUNCTION {incollection} format.title "title" output.check crossref missing$ { format.in.ed.booktitle "booktitle" output.check - format.bvolume output format.number.series output format.edition output format.chapter.pages output format.publisher.address output - format.date "year" output.check } { format.incoll.inproc.crossref output.nonnull format.chapter.pages output } if$ + format.doi output format.note output + format.date "year" output.check fin.entry } - FUNCTION {inproceedings} { output.bibitem format.authors "author" output.check @@ -1253,37 +1374,36 @@ FUNCTION {inproceedings} format.title "title" output.check crossref missing$ { format.in.ed.booktitle "booktitle" output.check - format.bvolume output format.number.series output format.pages output publisher empty$ { format.organization.address output } - { organization output + { organization "organization" bibinfo.check output format.publisher.address output } if$ - format.date "year" output.check } { format.incoll.inproc.crossref output.nonnull format.pages output } if$ + format.doi output format.note output + format.date "year" output.check fin.entry } - FUNCTION {conference} { inproceedings } - FUNCTION {manual} { output.bibitem format.authors output author format.key output format.btitle "title" output.check - organization output - address output + organization "organization" bibinfo.check output + address "address" bibinfo.check output format.edition output - format.date "year" output.check + format.doi output format.note output + format.date "year" output.check fin.entry } @@ -1291,12 +1411,14 @@ FUNCTION {mastersthesis} { output.bibitem format.authors "author" output.check author format.key output - format.title "title" output.check + format.title + "title" output.check bbl.mthesis format.thesis.type output.nonnull - school "school" output.check - address output - format.date "year" output.check + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.doi output format.note output + format.date "year" output.check fin.entry } @@ -1305,22 +1427,24 @@ FUNCTION {misc} format.authors output author format.key output format.title output - howpublished output - format.date "year" output.check + howpublished "howpublished" bibinfo.check output + format.doi output format.note output + format.date "year" output.check fin.entry } - FUNCTION {phdthesis} { output.bibitem format.authors "author" output.check author format.key output - format.title "title" output.check + format.title + "title" output.check bbl.phdthesis format.thesis.type output.nonnull - school "school" output.check - address output - format.date "year" output.check + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.doi output format.note output + format.date "year" output.check fin.entry } @@ -1333,12 +1457,13 @@ FUNCTION {proceedings} format.number.series output publisher empty$ { format.organization.address output } - { organization output + { organization "organization" bibinfo.check output format.publisher.address output } if$ - format.date "year" output.check + format.doi output format.note output + format.date "year" output.check fin.entry } @@ -1346,12 +1471,14 @@ FUNCTION {techreport} { output.bibitem format.authors "author" output.check author format.key output - format.title "title" output.check + format.title + "title" output.check format.tr.number emphasize output.nonnull - institution "institution" output.check - address output - format.date "year" output.check + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.doi output format.note output + format.date "year" output.check fin.entry } @@ -1360,22 +1487,19 @@ FUNCTION {unpublished} format.authors "author" output.check author format.key output format.title "title" output.check - format.date "year" output.check + format.doi output format.note "note" output.check + format.date output fin.entry } FUNCTION {default.type} { misc } - READ - FUNCTION {sortify} { purify$ "l" change.case$ } - INTEGERS { len } - FUNCTION {chop.word} { 's := 'len := @@ -1384,7 +1508,6 @@ FUNCTION {chop.word} 's if$ } - FUNCTION {format.lab.names} { 's := "" 't := @@ -1523,7 +1646,6 @@ FUNCTION {sort.format.title} sortify #1 global.max$ substring$ } - FUNCTION {author.sort} { author empty$ { key empty$ @@ -1536,7 +1658,6 @@ FUNCTION {author.sort} { author sort.format.names } if$ } - FUNCTION {author.editor.sort} { author empty$ { editor empty$ @@ -1553,7 +1674,6 @@ FUNCTION {author.editor.sort} { author sort.format.names } if$ } - FUNCTION {editor.sort} { editor empty$ { key empty$ @@ -1566,7 +1686,6 @@ FUNCTION {editor.sort} { editor sort.format.names } if$ } - FUNCTION {presort} { calc.label label sortify @@ -1595,20 +1714,15 @@ FUNCTION {presort} } 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 := @@ -1621,7 +1735,6 @@ FUNCTION {forward.pass} if$ number.label #1 + 'number.label := } - FUNCTION {reverse.pass} { next.extra "b" = { "a" 'extra.label := } @@ -1636,13 +1749,9 @@ FUNCTION {reverse.pass} 'extra.label := label extra.label * 'label := } - EXECUTE {initialize.extra.label.stuff} - ITERATE {forward.pass} - REVERSE {reverse.pass} - FUNCTION {bib.sort.order} { sort.label " " @@ -1656,11 +1765,8 @@ FUNCTION {bib.sort.order} #1 entry.max$ substring$ 'sort.key$ := } - ITERATE {bib.sort.order} - SORT - FUNCTION {begin.bib} { preamble$ empty$ 'skip$ @@ -1668,21 +1774,22 @@ FUNCTION {begin.bib} if$ "\begin{thebibliography}{" number.label int.to.str$ * "}" * write$ newline$ - "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\expandafter\ifx\csname urlstyle\endcsname\relax" + write$ newline$ + " \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else" + write$ newline$ + " \providecommand{\doi}{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi" write$ newline$ } - EXECUTE {begin.bib} - EXECUTE {init.state.consts} - ITERATE {call.type$} - FUNCTION {end.bib} { newline$ "\end{thebibliography}" write$ newline$ } - EXECUTE {end.bib} %% End of customized bst file %% |