% \iffalse meta-comment balanced on line 122 % revtex-bst.dtx: Package to extract .bst files for RevTeX % Copyright (c) 2020--2022 American Physical Society. % https://journals.aps.org/revtex/ % mailto:revtex@aps.org % % Disclaimer % This file is distributed WITHOUT ANY WARRANTY; % without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. % License % You may distribute this file under the conditions of the % LaTeX Project Public License 1.3c or later % (http://www.latex-project.org/lppl.txt). % ReadMe % For the documentation and more detailed instructions for % installation, typeset this document with \LaTeX. % Maintenance Status % This work has the LPPL maintenance status "maintained"; % Current Maintainer of this work is Phelype Oleinik. % % This work consists of the main source file revtex-bst.dtx % and the derived files % aapmrev4-2.bst, aipauth4-2.bst, aipnum4-2.bst, apsrev4-2.bst, apsrmp4-2.bst % Distribution: % CTAN:macros/latex/contrib/revtex/ % % Unpacking: % tex revtex-bst.dtx % % Installation: % TDS:bibtex/bst/revtex/ % %<*ignore> \begingroup \def\x{LaTeX2e}% \expandafter\endgroup \ifcase 0\expandafter\ifx\csname processbatchFile\endcsname\relax\else1\fi\ifx\fmtname\x\else 1\fi \relax \else \csname fi\endcsname % %<*install> %% This file will generate documentation and runtime files %% from revtex4-2.dtx when run through TeX. \input docstrip \nopreamble \edef\defaultpostamble{% \MetaPrefix\space End of customized bst file^^J% \MetaPrefix ^^J% \MetaPrefix\space End of file `\outFileName'.% } \askforoverwritefalse \keepsilent \generate{% \file{aapmrev4-2.bst}{\from{revtex-bst.dtx}{aapmrev}}% \file{aipauth4-2.bst}{\from{revtex-bst.dtx}{aipauth}}% \file{aipnum4-2.bst}{\from{revtex-bst.dtx}{aipnum}}% \file{apsrev4-2.bst}{\from{revtex-bst.dtx}{apsrev}}% \file{apsrmp4-2.bst}{\from{revtex-bst.dtx}{apsrmp}}% }% \ifToplevel{ \Msg{***********************************************************} \Msg{*} \Msg{* To finish the installation, please move} \Msg{* *.bst } \Msg{* into a directory searched by TeX;} \Msg{* in a TDS-compliant installation:} \Msg{* texmf/bibtex/bst/revtex/.} \Msg{*} \Msg{* Happy BibTeXing} \Msg{***********************************************************} } \endbatchfile % %<*ignore> \fi % % \fi % % \GetFileInfo{revtex-bst.dtx} % % \StopEventually{} % \iffalse ltxdoc klootch %<*package> %%% @LaTeX-file{ %%% filename = "revtex-bst.dtx", %%% version = "4.2f", %%% date = "2022/06/05", %%% author = "Phelype Oleinik (mailto: phelype.oleinik at latex-project.org), %%% commissioned by the American Physical Society. %%% ", %%% copyright = "Copyright (C) 2020--2022 American Physical Society %%% distributed under the terms of the %%% LaTeX Project Public License 1.3c, see %%% ftp://ctan.tug.org/macros/latex/base/lppl.txt %%% ", %%% email = "mailto colon revtex at aps.org", %%% codetable = "ISO/ASCII", %%% keywords = "", %%% supported = "yes", %%% abstract = "", %%% } % % \fi % % \subsection{Bill of Materials} % % Following is a list of the files in this distribution arranged % according to provenance. % % \subsubsection{Primary Source}% % One single file generates all. %\begin{verbatim} %revtex-bst.dtx %\end{verbatim} % % \subsubsection{Generated by \texttt{tex revtex-bst.dtx}}% % Typesetting ths file under \TeX\ itself runs the installer, % which generates the bibliography style files. %\begin{verbatim} %aapmrev4-2.bst, aipauth4-2.bst, aipnum4-2.bst, %apsrev4-2.bst, apsrmp4-2.bst %\end{verbatim} % % \section{Code common to all modules}% % % \begin{macrocode} %<*aapmrev|aipauth|aipnum|apsrev|apsrmp> %% %%% This is file `aapmrev4-2.bst', and is a hand-edited version of aapmrev4-1.bst %%% This is file `aipauth4-2.bst', and is a hand-edited version of aipauth4-1.bst %%% This is file `aipnum4-2.bst', and is a hand-edited version of aipnum4-1.bst %%% This is file `apsrev4-2.bst', and is a hand-edited version of apsrev4-1.bst %%% This is file `apsrmp4-2.bst', and is a hand-edited version of apsrmp4-1.bst % =============================================================== % IMPORTANT NOTICE: % This 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. % =============================================================== %------------------------------------------------------------------- % 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 %--------------------------------------------------------------------- % % % \subsection{The Frontmatter File} % As promised above, here is the contents of the frontmatter file. % This file doesn't have any documentation, so just stop early. % \begin{macrocode} %<*ignore> \stop \changes{4.2e}{2020/10/03}{(PHO) Initial version---Put all .bst files in a single .dtx} % % \end{macrocode} % % \begin{macrocode} %<*aapmrev|aipauth|aipnum|apsrev|apsrmp> % \end{macrocode} % % \begin{macrocode} %FUNCTION {id.bst} {"aapmrev4-2.bst 2019-01-14 (MD) hand-edited version of aapmrev4-1.bst"} %FUNCTION {id.bst} {"aipnauth4-2.bst 2018-12-27 (MD) hand-edited version of apsauth4-1.bst"} %FUNCTION {id.bst} {"aipnum4-2.bst 2019-01-14 (MD) hand-edited version of apsrev4-1.bst"} %FUNCTION {id.bst} {"apsrev4-2.bst 2019-01-14 (MD) hand-edited version of apsrev4-1.bst"} %FUNCTION {id.bst} {"apsrmp4-2.bst 2018-12-27 (MD) hand-edited version of apsrmp4-1.bst"} 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$ "." = } 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 + % #1 + % #2 + #8 + % #64 + % #64 + 'control.author := % #0 % #0 % #0 % #1 % #1 'control.author.jnrlst := #0 'control.author.dotless := #0 'control.author.nospace := #1 'control.author.initials := #0 'control.author.nocomma := % #0 % #1 'control.author.first := % #0 % #1 % #0 % #0 % #1 'control.author.reversed := % #1 % #0 % #1 % #1 % #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 := #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$ * "} {" * swap$ * "}" * } 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.nopunct} { punctuation.no 'punctuation.state := output.nonnull } 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$ } 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$ 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."} MACRO {jhep} {"J. High Energy Phys."} MACRO {jcap} {"J. Cosmol. Astropart. Phys."} MACRO {jinst} {"J. Instrum."} MACRO {jstat} {"J. Stat. Mech.: Theory Exp."} 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} { "https://arxiv.org/abs" } FUNCTION {archiv.prefix.base} { "arXiv" } FUNCTION {eprint.command} { "\Eprint " } FUNCTION {format.eprint.controlled} { eprint duplicate$ empty$ control.eprint #1 = or { 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.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.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} { "," * " " * } %<*!aipauth&!apsrmp> FUNCTION {names.comma} { "," * } % FUNCTION {format.names} { 'bibinfo := 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$ %<*!apsrmp> numnames #2 > % 'names.comma % 'names.punctuate 'skip$ if$ % % names.punctuate t "others" = { " " * bbl.etal emphasize * } { bbl.and % space.word * % word.space * * % space.word * % space.word * % word.space * * 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$ { bib.fname.font ", " swap$ * } if$ } 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} { 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.comma % 'names.punctuate % 'names.comma % 'names.comma % '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} { 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.output} { } FUNCTION {format.issn.output} { } FUNCTION {doi.base} { "https://doi.org/" } FUNCTION {doi.base.command} { "\doibase " } FUNCTION {noop.command} { "\href@noop " } FUNCTION {href.command} { "\href " } FUNCTION {link.tag.open} { doi duplicate$ empty$ { pop$ url duplicate$ empty$ { pop$ "" noop.command }{ href.command } if$ } { "https://doi.org/" swap$ * href.command } 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$ '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 % pop$ select.language } if$ } FUNCTION {end.quote.title} { title empty$ 'skip$ { before.all 'output.state := } 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$ "" label * ")" * make.full.names duplicate$ short.list = { pop$ }{ * } if$ bracify "[" swap$ * "]" * cite$ bracify "%" * * "\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} %FUNCTION {parenthesize} { duplicate$ empty$ 'skip$ { before.all 'output.state := " (" swap$ * ")" * } if$ } FUNCTION {format.date} { year "year" bibinfo.check duplicate$ empty$ { %<*apsrmp> "empty year in " cite$ * "; set to ????" * warning$ pop$ "????" % } 'skip$ if$ extra.label * % date.encapsulate % parenthesize } 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 {first.page} { 't := "" { t empty$ not t #1 #1 substring$ "-" = not and } { t #1 #1 substring$ * t #2 global.max$ substring$ 't := } while$ } 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$ control.pages duplicate$ #0 < { pop$ pop$ }{ #0 > { n.dashify }{ first.page } if$ } if$ "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 volume field.or.null duplicate$ empty$ 'skip$ { "volume" bibinfo.check } if$ bolden %<*apsrmp> 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$ * % } %<*apsrev> FUNCTION {format.vol.num} { 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 * * %<*!apsrmp> 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$ * %<*!apsrmp> 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$ * % duplicate$ empty$ 'skip$ { "(" swap$ * ")" * } if$ after.punctuation 'output.state := 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 % format.date.output.check date.block article.title.produce output.article.booktitle crossref missing$ %%% Handle special case of SISSA journals which require an issue number for unique citations and use volume/year interchangably { %<*!apsrev> link.open journal "journal" bibinfo.warn "journal" 'bibfield := output add.blank format.ser.vol.num output eid.or.pages % format.date.output.check pages empty$ { doi output } 'skip$ if$ link.shut % %<*apsrev> journal "J. High Energy Phys." = journal "J. High Energ. Phys." = or journal "JHEP" = or journal "Journal of Cosmology and Astroparticle Physics" = or journal "J. Cosmol. Astropart. Phys." = or journal "JCAP" = or journal "Journal of Instrumentation" = or journal "J. Instrum." = or journal "JINST" = or journal "Journal of Statistical Mechanics" = or journal "J. of Stat. Mech." = or journal "J. Stat. Mech.: Theory Exp." = or journal "JSTAT" = or { link.open journal "journal" bibinfo.warn "journal" 'bibfield := output add.blank format.vol.num output number parenthesize "number" bibinfo.warn "number" 'bibfield := output eid.or.pages link.shut } { eid missing$ pages missing$ and doi missing$ not and { journal "journal" bibinfo.warn "journal" 'bibfield := output add.blank format.ser.vol.num output link.open doi output link.shut format.date.output.check } { link.open journal "journal" bibinfo.warn "journal" 'bibfield := output add.blank format.ser.vol.num output eid.or.pages format.date.output.check link.shut } if$ } if$ % }{ format.article.crossref output.nonnull % format.pages output % eid.or.pages } if$ % format.issn.output new.block.comma new.sentence.comma format.note output format.eprint.controlled output format.translation output fin.entry } 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$ } if$ % new.block.comma % format.date.output.check date.block link.open format.btitle "title" output.check link.shut 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 fin.entry } FUNCTION {booklet} { output.bibitem format.authors output author format.key output % new.block.comma % format.date.output date.block link.open format.title "title" output.check link.shut 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 fin.entry } FUNCTION {footnote} { output.bibitem format.note 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.date.output.check date.block format.title output new.block.comma crossref missing$ { format.in.ed.booktitle.inbook % format.publisher.address output format.chapter.pages % "chapter and pages" % "chapter" output.check new.block.comma format.edition output new.block.comma % format.publisher.address output }{ format.chapter.pages % "chapter and pages" % "chapter" output.check new.block.comma format.book.crossref output.nonnull % format.date.output.check } 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 fin.entry } FUNCTION {incollection} { output.bibitem format.authors "author" output.check author format.key output % new.block.comma % format.date.output.check date.block article.title.produce crossref missing$ { format.in.ed.booktitle % format.publisher.address output 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 fin.entry } FUNCTION {inproceedings} { output.bibitem format.authors "author" output.check author format.key output % new.block.comma % format.date.output.check date.block article.title.produce 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$ % 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 fin.entry } FUNCTION {conference} { inproceedings } FUNCTION {manual} { output.bibitem format.authors output author format.key output % new.block.comma % format.date.output date.block link.open format.btitle "title" output.check link.shut 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 fin.entry } FUNCTION {mastersthesis} { output.bibitem format.authors "author" output.check author format.key output % new.block.comma % format.date.output.check date.block format.btitle output new.block.comma link.open bbl.mthesis format.thesis.type output.nonnull link.shut format.school.address.output % format.date.output.check new.block.comma new.sentence.comma format.note output format.eprint output fin.entry } FUNCTION {misc} { output.bibitem format.authors output author format.key output % format.date.output % new.block.comma % date.block 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 fin.entry } FUNCTION {phdthesis} { output.bibitem format.authors "author" output.check author format.key output % new.block.comma % format.date.output.check date.block format.btitle output new.block.comma link.open bbl.phdthesis format.thesis.type output.nonnull link.shut format.school.address.output % format.date.output.check new.block.comma new.sentence.comma format.note output format.eprint output fin.entry } FUNCTION {presentation} { output.bibitem format.authors output author format.key output new.block.comma link.open format.title output link.shut 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$ fin.entry } FUNCTION {proceedings} { output.bibitem format.editors output editor format.key output % new.block.comma % format.date.output.check date.block link.open format.btitle "title" output.check link.shut 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 fin.entry } FUNCTION {techreport} { output.bibitem format.authors "author" output.check author format.key output % new.block.comma % format.date.output.check date.block link.open % format.title % format.btitle "title" output.check link.shut 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 fin.entry } FUNCTION {unpublished} { output.bibitem format.authors "author" output.check author format.key output %<*!apsrev> % new.block.comma % format.date.output date.block link.open format.title "title" output.check link.shut % %<*apsrev> article.title.produce format.eprint output % % format.date.output new.block.comma new.sentence.comma format.note "note" output.check % format.eprint output fin.entry } FUNCTION {dataset} { output.bibitem format.authors "author" output.check author format.key output % format.date.output date.block article.title.produce doi missing$ url missing$ not and { link.open url "url" output.check link.shut } { link.open doi "doi" output.check link.shut } if$ % format.date.output format.note 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 := s #1 len substring$ = { s len #1 + global.max$ substring$ } 's if$ } FUNCTION {cite.name.font.apply} { word.space * bbl.etal emphasize * } %<*!apsrev&!apsrmp> FUNCTION {format.lab.names} { 's := "" 't := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { format.name.apply 't := nameptr #1 > { nameptr #2 = numnames #3 > and { "others" 't := #1 'namesleft := } 'skip$ if$ namesleft #1 > { ", " * t * } { s nameptr "{ll}" format.name$ duplicate$ "others" = { 't := } { pop$ } if$ t "others" = { cite.name.font.apply }{ numnames #2 > { "," * } 'skip$ if$ bbl.and space.word * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ } % %<*apsrev|apsrmp> 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 " " * %<*!aipauth&!apsrmp> seq.num #1 + 'seq.num := seq.num int.to.fix % %<*aipauth|apsrmp> 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$ := } 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$ } ITERATE {bib.sort.pass} SORT FUNCTION {init.bib.eprint} { "\texttt {" pop$ "\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$ } FUNCTION {init.bib.doi} { "\providecommand \doibase [0]{" doi.base "}%" * * write$ newline$ } FUNCTION {init.bib.hypertex} { "\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} { "\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}" 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$ "\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.lang init.bib.bibinfo init.bib.translation init.bib.endbibitem "\providecommand " bbl.shut * " [1]{\csname bibitem#1\endcsname}%" * write$ newline$ "\let\auto@bib@innerbib\@empty" write$ newline$ "%" write$ } FUNCTION {begin.bib} { id.bst diagn.cmntlog control.bib 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{macrocode} % % \begin{macrocode} % % \end{macrocode} % % \endinput % % \Finale