From 5429ecc231e259e20bf02ccacc78f10175be4781 Mon Sep 17 00:00:00 2001 From: ming Date: Sun, 8 Jun 2025 16:32:42 +0800 Subject: [PATCH] update --- MS/MS.qmd | 123 +- MS/MS_main.qmd | 2 + MS/MS_methods.qmd | 2 + MS/MS_results.qmd | 2 + MS/SM.qmd | 86 +- MS/_nature.qmd | 23 + Makefile | 4 +- TC/index.qmd | 20 +- _extensions/bootstrap/bootstrap-icons.css | 0 _extensions/bootstrap/bootstrap-icons.woff | Bin _extensions/bootstrap/bootstrap.min.css | 0 _extensions/bootstrap/bootstrap.min.js | 0 _extensions/bootstrap/googlefonts.css | 0 ...dSBYKcSV-LCoeQqfX1RYOo3qN67lujVj9_mf.woff2 | Bin ...dSBYKcSV-LCoeQqfX1RYOo3qNK7lujVj9_mf.woff2 | Bin ...dSBYKcSV-LCoeQqfX1RYOo3qNa7lujVj9_mf.woff2 | Bin ...dSBYKcSV-LCoeQqfX1RYOo3qNq7lujVj9_mf.woff2 | Bin ...dSBYKcSV-LCoeQqfX1RYOo3qO67lujVj9_mf.woff2 | Bin ...K3dSBYKcSV-LCoeQqfX1RYOo3qOK7lujVj9w.woff2 | Bin ...dSBYKcSV-LCoeQqfX1RYOo3qPK7lujVj9_mf.woff2 | Bin ...KcSV-LCoeQqfX1RYOo3ig4vwkxdu3cOWxy40.woff2 | Bin ...KcSV-LCoeQqfX1RYOo3ig4vwlBdu3cOWxy40.woff2 | Bin ...BYKcSV-LCoeQqfX1RYOo3ig4vwlxdu3cOWxw.woff2 | Bin ...KcSV-LCoeQqfX1RYOo3ig4vwmBdu3cOWxy40.woff2 | Bin ...KcSV-LCoeQqfX1RYOo3ig4vwmRdu3cOWxy40.woff2 | Bin ...KcSV-LCoeQqfX1RYOo3ig4vwmhdu3cOWxy40.woff2 | Bin ...KcSV-LCoeQqfX1RYOo3ig4vwmxdu3cOWxy40.woff2 | Bin ...KcSV-LCoeQqfX1RYOo3ik4zwkxdu3cOWxy40.woff2 | Bin ...KcSV-LCoeQqfX1RYOo3ik4zwlBdu3cOWxy40.woff2 | Bin ...BYKcSV-LCoeQqfX1RYOo3ik4zwlxdu3cOWxw.woff2 | Bin ...KcSV-LCoeQqfX1RYOo3ik4zwmBdu3cOWxy40.woff2 | Bin ...KcSV-LCoeQqfX1RYOo3ik4zwmRdu3cOWxy40.woff2 | Bin ...KcSV-LCoeQqfX1RYOo3ik4zwmhdu3cOWxy40.woff2 | Bin ...KcSV-LCoeQqfX1RYOo3ik4zwmxdu3cOWxy40.woff2 | Bin .../christopherkenny/nature/_extension.yml | 27 - .../nature/csl/nature-no-superscript.csl | 127 - .../nature/csl/springer-basic-author-date.csl | 239 - .../csl/springer-basic-brackets-no-et-al.csl | 184 - .../csl/springer-humanities-author-date.csl | 473 -- .../csl/springer-humanities-brackets.csl | 421 -- .../csl/springer-mathphys-author-date.csl | 198 - .../nature/csl/springer-mathphys-brackets.csl | 152 - .../nature/csl/springer-vancouver.csl | 179 - .../christopherkenny/nature/header.tex | 20 - .../nature/partials/_affiliation.tex | 1 - .../nature/partials/_author.tex | 1 - .../nature/partials/before-body.tex | 3 - .../nature/partials/doc-class.tex | 17 - .../nature/partials/title.tex | 25 - .../christopherkenny/nature/sn-apacite.bst | 5364 ----------------- .../christopherkenny/nature/sn-aps.bst | 1533 ----- .../christopherkenny/nature/sn-basic.bst | 1798 ------ .../christopherkenny/nature/sn-chicago.bst | 1808 ------ .../christopherkenny/nature/sn-jnl.cls | 1791 ------ .../nature/sn-mathphys-ay.bst | 3208 ---------- .../nature/sn-mathphys-num.bst | 3208 ---------- .../christopherkenny/nature/sn-nature.bst | 1710 ------ .../christopherkenny/nature/sn-vancouver.bst | 2033 ------- _extensions/d2/_extension.yml | 0 _extensions/d2/d2.lua | 0 _extensions/inst/css/style.css | 0 _extensions/inst/img/rceeslogo.png | Bin _extensions/inst/img/rceeslonglogo.png | Bin _extensions/inst/img/signms.png | Bin _extensions/inst/img/signmy.png | Bin .../inst/tex/american-chemical-society.csl | 0 ...tional-standard-gb-t-7714-2015-numeric.csl | 0 _extensions/inst/tex/cv.tex | 0 _extensions/inst/tex/els.tex | 0 _extensions/inst/tex/elsevier-harvard.csl | 0 _extensions/inst/tex/supp.cls | 0 _extensions/inst/tex/supp.tex | 0 _extensions/inst/tex/the-isme-j.csl | 0 _extensions/inst/word/MS.docx | Bin _extensions/inst/word/RN.docx | Bin _extensions/inst/word/cv.docx | Bin _extensions/inst/word/manu.docx | Bin _extensions/inst/word/repcn.docx | Bin .../kazuyanagimoto/academic/_extension.yml | 12 - .../kazuyanagimoto/academic/shortcodes.lua | 3 - .../kazuyanagimoto/academic/typst-show.typ | 88 - .../academic/typst-template.typ | 197 - .../quarto-journals/acs/_affiliation.tex | 1 - .../quarto-journals/acs/_extension.yml | 30 - .../quarto-ext/fancy-text/_extension.yml | 7 - .../quarto-ext/fancy-text/fancy-text.lua | 78 - .../latex-environment/_extension.yml | 9 - .../latex-environment/latex-environment.lua | 150 - _extensions/quarto-journals/acs/achemso.bst | 1745 ------ .../acs/american-chemical-society.csl | 252 - _extensions/quarto-journals/acs/biochem.bst | 1750 ------ _extensions/quarto-journals/acs/doc-class.tex | 5 - _extensions/quarto-journals/acs/title.tex | 40 - figures/demo.RDS | Bin 0 -> 85527 bytes figures/demo.pdf | Bin 0 -> 4959 bytes figures/demo.png | Bin 0 -> 18777 bytes figures/demo.svg | 63 + index.qmd | 5 +- 98 files changed, 224 insertions(+), 28993 deletions(-) create mode 100644 MS/MS_main.qmd create mode 100644 MS/MS_methods.qmd create mode 100644 MS/MS_results.qmd create mode 100644 MS/_nature.qmd mode change 100644 => 100755 TC/index.qmd mode change 100644 => 100755 _extensions/bootstrap/bootstrap-icons.css mode change 100644 => 100755 _extensions/bootstrap/bootstrap-icons.woff mode change 100644 => 100755 _extensions/bootstrap/bootstrap.min.css mode change 100644 => 100755 _extensions/bootstrap/bootstrap.min.js mode change 100644 => 100755 _extensions/bootstrap/googlefonts.css mode change 100644 => 100755 _extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lujVj9_mf.woff2 mode change 100644 => 100755 _extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lujVj9_mf.woff2 mode change 100644 => 100755 _extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lujVj9_mf.woff2 mode change 100644 => 100755 _extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lujVj9_mf.woff2 mode change 100644 => 100755 _extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lujVj9_mf.woff2 mode change 100644 => 100755 _extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7lujVj9w.woff2 mode change 100644 => 100755 _extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lujVj9_mf.woff2 mode change 100644 => 100755 _extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxdu3cOWxy40.woff2 mode change 100644 => 100755 _extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBdu3cOWxy40.woff2 mode change 100644 => 100755 _extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu3cOWxw.woff2 mode change 100644 => 100755 _extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBdu3cOWxy40.woff2 mode change 100644 => 100755 _extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRdu3cOWxy40.woff2 mode change 100644 => 100755 _extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhdu3cOWxy40.woff2 mode change 100644 => 100755 _extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxdu3cOWxy40.woff2 mode change 100644 => 100755 _extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxdu3cOWxy40.woff2 mode change 100644 => 100755 _extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBdu3cOWxy40.woff2 mode change 100644 => 100755 _extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu3cOWxw.woff2 mode change 100644 => 100755 _extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBdu3cOWxy40.woff2 mode change 100644 => 100755 _extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRdu3cOWxy40.woff2 mode change 100644 => 100755 _extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhdu3cOWxy40.woff2 mode change 100644 => 100755 _extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxdu3cOWxy40.woff2 delete mode 100644 _extensions/christopherkenny/nature/_extension.yml delete mode 100644 _extensions/christopherkenny/nature/csl/nature-no-superscript.csl delete mode 100644 _extensions/christopherkenny/nature/csl/springer-basic-author-date.csl delete mode 100644 _extensions/christopherkenny/nature/csl/springer-basic-brackets-no-et-al.csl delete mode 100644 _extensions/christopherkenny/nature/csl/springer-humanities-author-date.csl delete mode 100644 _extensions/christopherkenny/nature/csl/springer-humanities-brackets.csl delete mode 100644 _extensions/christopherkenny/nature/csl/springer-mathphys-author-date.csl delete mode 100644 _extensions/christopherkenny/nature/csl/springer-mathphys-brackets.csl delete mode 100644 _extensions/christopherkenny/nature/csl/springer-vancouver.csl delete mode 100644 _extensions/christopherkenny/nature/header.tex delete mode 100644 _extensions/christopherkenny/nature/partials/_affiliation.tex delete mode 100644 _extensions/christopherkenny/nature/partials/_author.tex delete mode 100644 _extensions/christopherkenny/nature/partials/before-body.tex delete mode 100644 _extensions/christopherkenny/nature/partials/doc-class.tex delete mode 100644 _extensions/christopherkenny/nature/partials/title.tex delete mode 100644 _extensions/christopherkenny/nature/sn-apacite.bst delete mode 100644 _extensions/christopherkenny/nature/sn-aps.bst delete mode 100644 _extensions/christopherkenny/nature/sn-basic.bst delete mode 100644 _extensions/christopherkenny/nature/sn-chicago.bst delete mode 100644 _extensions/christopherkenny/nature/sn-jnl.cls delete mode 100644 _extensions/christopherkenny/nature/sn-mathphys-ay.bst delete mode 100644 _extensions/christopherkenny/nature/sn-mathphys-num.bst delete mode 100644 _extensions/christopherkenny/nature/sn-nature.bst delete mode 100644 _extensions/christopherkenny/nature/sn-vancouver.bst mode change 100644 => 100755 _extensions/d2/_extension.yml mode change 100644 => 100755 _extensions/d2/d2.lua mode change 100644 => 100755 _extensions/inst/css/style.css mode change 100644 => 100755 _extensions/inst/img/rceeslogo.png mode change 100644 => 100755 _extensions/inst/img/rceeslonglogo.png mode change 100644 => 100755 _extensions/inst/img/signms.png mode change 100644 => 100755 _extensions/inst/img/signmy.png mode change 100644 => 100755 _extensions/inst/tex/american-chemical-society.csl mode change 100644 => 100755 _extensions/inst/tex/china-national-standard-gb-t-7714-2015-numeric.csl mode change 100644 => 100755 _extensions/inst/tex/cv.tex mode change 100644 => 100755 _extensions/inst/tex/els.tex mode change 100644 => 100755 _extensions/inst/tex/elsevier-harvard.csl mode change 100644 => 100755 _extensions/inst/tex/supp.cls mode change 100644 => 100755 _extensions/inst/tex/supp.tex mode change 100644 => 100755 _extensions/inst/tex/the-isme-j.csl mode change 100644 => 100755 _extensions/inst/word/MS.docx mode change 100644 => 100755 _extensions/inst/word/RN.docx mode change 100644 => 100755 _extensions/inst/word/cv.docx mode change 100644 => 100755 _extensions/inst/word/manu.docx mode change 100644 => 100755 _extensions/inst/word/repcn.docx delete mode 100644 _extensions/kazuyanagimoto/academic/_extension.yml delete mode 100644 _extensions/kazuyanagimoto/academic/shortcodes.lua delete mode 100644 _extensions/kazuyanagimoto/academic/typst-show.typ delete mode 100644 _extensions/kazuyanagimoto/academic/typst-template.typ delete mode 100644 _extensions/quarto-journals/acs/_affiliation.tex delete mode 100644 _extensions/quarto-journals/acs/_extension.yml delete mode 100644 _extensions/quarto-journals/acs/_extensions/quarto-ext/fancy-text/_extension.yml delete mode 100644 _extensions/quarto-journals/acs/_extensions/quarto-ext/fancy-text/fancy-text.lua delete mode 100644 _extensions/quarto-journals/acs/_extensions/quarto-ext/latex-environment/_extension.yml delete mode 100644 _extensions/quarto-journals/acs/_extensions/quarto-ext/latex-environment/latex-environment.lua delete mode 100644 _extensions/quarto-journals/acs/achemso.bst delete mode 100644 _extensions/quarto-journals/acs/american-chemical-society.csl delete mode 100644 _extensions/quarto-journals/acs/biochem.bst delete mode 100644 _extensions/quarto-journals/acs/doc-class.tex delete mode 100644 _extensions/quarto-journals/acs/title.tex create mode 100644 figures/demo.RDS create mode 100644 figures/demo.pdf create mode 100644 figures/demo.png create mode 100644 figures/demo.svg mode change 100644 => 100755 index.qmd diff --git a/MS/MS.qmd b/MS/MS.qmd index f2d29f3..1d482c4 100644 --- a/MS/MS.qmd +++ b/MS/MS.qmd @@ -1,33 +1,23 @@ --- msname: MS smname: SM -abstract: ABSTRACT -keywords: - - KEYWORD1 - - KEYWORD2 - - KEYWORD3 -date: last-modified +# abstract: "" +# keywords: +# - KEYWORD1; +# date: last-modified +highlights: "" +date: "" bibliography: [../BB/Ref.bib, ../BB/localRef.bib] # csl: https://www.zotero.org/styles/elsevier-harvard -csl: _extensions/inst/tex/elsevier-harvard.csl +csl: ./_extensions/inst/tex/american-chemical-society.csl +# csl: ./_extensions/inst/tex/nature.csl +# titlegraphical: "../figures/GA.pdf" format: elsevier-html: toc: true css: _extensions/inst/css/style.css keep-md: true - # epub: default - # nature-pdf: - # # journal.cite-style is included in the tex file but ignored by pandoc if - # # cite-method is not `natbib`. - # journal: - # cite-style: sn-nature - # # `citeproc` is the pandoc default. Set `cite-method: natbib` if required - # # to use the bst styles from the upstream template. - # cite-method: natbib - # keep-tex: true - # equal-margins: false - # acs-pdf: - # keep-tex: true + epub: default docx: reference-doc: _extensions/inst/word/MS.docx pdf: @@ -35,11 +25,12 @@ format: latex-clean: false # to keep aux citecolor: blue colorlinks: true - number-sections: true + number-sections: false sansfont: "Gill Sans" papersize: a4paper sansfontoptions: - - Color=39729E + # - Color=39729E + - Color=2A303B mainfont: "Source Sans 3" #| Verdana (fontsize: 11pt) # Source Sans 3 | Times New Roman| Helvetica | PT Sans monofont: "JetBrains Mono" mathfont: "Cambria Math" @@ -48,78 +39,86 @@ format: keep-md: false include-in-header: "./_extensions/inst/tex/header.tex" header-includes: + # - \usepackage{threeparttable} # - \usepackage{fontspec} - - \usepackage{endfloat} + # - \usepackage{endfloat} # - \usepackage[UTF8, scheme=plain]{ctex} - \usepackage{float} - \usepackage[normalem]{ulem} - \usepackage[doublespacing]{setspace} - \usepackage{lineno} - \linenumbers + - \usepackage{caption} + - \captionsetup{singlelinecheck=off} + # elsevier-pdf: + # keep-tex: true + # keep-md: false + # include-in-header: "./_extensions/quarto-journals/elsevier/partials/revision.tex" + # latex-clean: false + # header-includes: + # # - \usepackage{threeparttable} + # # - \usepackage{fontspec} + # # - \usepackage{endfloat} + # - \setmainfont{Calibri} + # - \usepackage[UTF8, scheme=plain]{ctex} + # - \usepackage{float} + # - \usepackage[normalem]{ulem} + # - \usepackage[doublespacing]{setspace} + # - \usepackage{lineno} + # - \linenumbers + # journal: + # # - A comprehensive model was contructed to evaluate the risk of odor occurrences + # # - Turbidity distribution determine underwater light and MIB-producing *Planktothrix* + # # - Increasing flowrate increases turbidity that can control *Planktothrix* and MIB + # # - Odor control based on flow regulation in source water is "green" and fundamental + # formatting: preprint # preprint | review | doublebind + # model: 1p + # cite-style: authoryear + # # graphical-abstract: "![](../figures/GA.pdf)" + # # highlights: filters: - latex-environment - authors-block lightbox: auto commands: [clab] -editor: - markdown: - wrap: sentence --- -::: {.content-visible when-format="html"} -# Color tip {.unnumbered} - -- [Something should be deleted]{.del} -- [Something bad]{.bad} -- [Something good]{.good} -- [Something todo]{.todo} -- [Something should be added]{.add} -- [I am a comment]{.com} -::: - - ```{r} #| include: false #| cache: false + lang <- "en" -RM <- "F" # global rendermode, L: load pdata; F: fast load pdf # nolint isRendering <- isTRUE(getOption("knitr.in.progress")) require(tidyverse) -require(lubridate) -require(patchwork) require(drwateR) +require(patchwork) rmdify::rmd_init() -biburl <- "https://drc.drwater.net/datapool/public/BB/Ref.bib" -if (!isRendering) { - download.file(biburl, destfile = "Ref.bib") -} +dwfun::init() ``` -# Introduction -Blabla. [Bla blaBla blaBla blaBla blaBla bla Bla bla.]{.clab options=r1q0101} +{{< pagebreak >}} -# Materials and methods - -To cite a figure in `SM.qmd`, use this syntax: `r zref("sfg-demofigure")`. - -# Results - -# Discussion - -# Conclusions +# Abstract {-} - +{{< pagebreak >}} -# Acknowledgements {.unnumbered} +{{< include MS_main.qmd >}} +{{< include MS_methods.qmd >}} +{{< include MS_results.qmd >}} + -This work was financially supported by the National Natural Science Foundation of China (52030002, 51878649), and Youth Innovation Promotion Association CAS. +{{< pagebreak >}} -# References {.unnumbered} + -```{r} +# References {-} -``` +::: {#refs} +::: +{{< pagebreak >}} + + diff --git a/MS/MS_main.qmd b/MS/MS_main.qmd new file mode 100644 index 0000000..ad0c6d4 --- /dev/null +++ b/MS/MS_main.qmd @@ -0,0 +1,2 @@ +# Main + diff --git a/MS/MS_methods.qmd b/MS/MS_methods.qmd new file mode 100644 index 0000000..c4c0634 --- /dev/null +++ b/MS/MS_methods.qmd @@ -0,0 +1,2 @@ +# Methods + diff --git a/MS/MS_results.qmd b/MS/MS_results.qmd new file mode 100644 index 0000000..53551ce --- /dev/null +++ b/MS/MS_results.qmd @@ -0,0 +1,2 @@ +# Results + diff --git a/MS/SM.qmd b/MS/SM.qmd index 040c0a3..c3432f5 100644 --- a/MS/SM.qmd +++ b/MS/SM.qmd @@ -1,9 +1,12 @@ --- msname: MS smname: SM -subtitle: Supplementary Material bibliography: [../BB/Ref.bib, ../BB/localRef.bib] -csl: _extensions/inst/tex/elsevier-harvard.csl +# csl: _extensions/inst/tex/elsevier-harvard.csl +# csl: ./_extensions/inst/tex/american-chemical-society.csl +csl: ./_extensions/inst/tex/nature.csl +subtitle: "Supplementary Information" +date: "" format: elsevier-html: css: _extensions/inst/css/style.css @@ -12,23 +15,30 @@ format: pdf: # documentclass: article latex-clean: false # to keep aux + # toc: true + # toc-location: body citecolor: blue colorlinks: true number-sections: false sansfont: "Gill Sans" papersize: a4paper sansfontoptions: - - Color=39729E + # - Color=39729E + - Color=2A303B mainfont: "Source Sans 3" #| Verdana (fontsize: 11pt) # Source Sans 3 | Times New Roman| Helvetica | PT Sans monofont: "JetBrains Mono" mathfont: "Cambria Math" CJKmainfont: SimHei - fontsize: 12pt + fontsize: 11pt keep-md: false + keep-tex: true include-in-header: "./_extensions/inst/tex/header.tex" header-includes: - \let\oldsection\section - \renewcommand{\section}{\clearpage\oldsection} + - \let\oldsubsection\subsection + - \renewcommand{\subsection}{\clearpage\oldsubsection} + # - \renewcommand{\thepage}{S\arabic{page}} # - \usepackage{threeparttable} # - \usepackage{fontspec} # - \usepackage{endfloat} @@ -37,8 +47,8 @@ format: - \usepackage{float} - \usepackage[normalem]{ulem} - \usepackage[doublespacing]{setspace} - - \usepackage{lineno} - - \linenumbers + # - \usepackage{lineno} + # - \linenumbers filters: - latex-environment - authors-block @@ -46,54 +56,58 @@ lightbox: auto commands: [clab] --- +\thispagestyle{empty} ```{r} -#| label: setup #| include: false #| cache: false +options(tinytex.clean = FALSE) lang <- "en" -RM <- "F" # global rendermode, L: load pdata; F: fast load pdf # nolint -isRendering <- isTRUE(getOption("knitr.in.progress")) +RM <- "F" # global rendermode, L: load pdata; F: fast load pdf +isRendering <- isTRUE(getOption('knitr.in.progress')) require(tidyverse) -require(lubridate) require(patchwork) require(drwateR) rmdify::rmd_init() -biburl <- "https://drc.drwater.net/datapool/public/BB/Ref.bib" -if (!isRendering) { download.file(biburl, destfile = "Ref.bib") } ``` -# Supplementary Material {-} - Figures and/or tables are provided below as the supplementary evidences to the main text. +{{< pagebreak >}} -\pagebreak -::: {#sfg-demofigure} - -```{r} -#| out-width: 60% -#| lightbox: -#| group: all - -if (!isRendering) { - - mtcars |> - ggplot(aes(x = wt, y = mpg)) + - geom_point() + - labs(x = "Weight", y = "Miles per Gallon") + - dwfun::theme_sci(3, 3) - - ggsavep("../figures/demofigure.pdf", loadit = FALSE) - -} # End of isrendering - -ggsavep("../figures/demofigure.pdf", loadit = TRUE) +```{=latex} +\clearpage +{ +\hypersetup{linkcolor=black} +\setcounter{tocdepth}{3} +\tableofcontents +} ``` -This is demo figure in supplementary material + +{{< pagebreak >}} + + +::: {#sfg-demo} + +```{r} +#| out-width: "40%" + +if (!isRendering) { + data.frame(x = 1:10, y = 1:10) |> + ggplot(aes(x, y)) + + geom_point() + + theme_sci(3, 2.0) + + ggsavep("../figures/demo.pdf", loadit = FALSE) +} + +ggsavep("../figures/demo", loadit = TRUE) +``` + +Caption of demo figure ::: diff --git a/MS/_nature.qmd b/MS/_nature.qmd new file mode 100644 index 0000000..647da2c --- /dev/null +++ b/MS/_nature.qmd @@ -0,0 +1,23 @@ +# Data availability + +The data that support the findings of this study are available upon request. + +# Code availability + +Analysis scripts are available via GitHub at https://git.drwater.net/. + +# Acknowledgements + +This research was financially supported by the National Natural Science Foundation of China (52030002, W2412156, 51878649) and the National Key R&D Program of China (2022YFC3203603). + +# Author contributions + +J.F. led data curation, methodology development, formal analysis, contributed to manuscript writing. editing, while supporting visualisation. M.S. (Corresponding Author) led conceptualization, formal analysis, and visualization while supporting methodology and co-leading manuscript writing and editing. Y.G., Y.A., and T.C. supported methodology and formal analysis. S.H. provided methodological and analytical support. M.Y. (Corresponding Author) co-led conceptualization and project administration, providing supervision and validation. + +# Competing interests + +The authors declare no competing interests. + +# Additional information + +Correspondence and requests for materials should be addressed to Ming Su or Min Yang. diff --git a/Makefile b/Makefile index b8d41f4..7847a04 100644 --- a/Makefile +++ b/Makefile @@ -150,7 +150,8 @@ pull: else \ echo "尝试将远程main分枝合并至本地$$current_branch 分枝."; \ git pull --rebase origin main; \ - fi + fi; \ + git pull # Pull changes from the main branch pullmain: @@ -161,6 +162,7 @@ pullmain: push: @echo "推送到远程..."; \ + git pull; \ git push filehash: diff --git a/TC/index.qmd b/TC/index.qmd old mode 100644 new mode 100755 index 3ace30c..ca588e6 --- a/TC/index.qmd +++ b/TC/index.qmd @@ -13,13 +13,27 @@ rmdify::rmd_init() #| output: asis data.frame(fn = dir("./", pattern = ".*-.*.docx")) |> # dplyr::mutate(oldfn = gsub("^MS([0-9]*)-([0-9]*)_([a-z0-9]*)-([a-z0-9]*).docx$", "MS\\1_\\3.docx", fn)) |> - dplyr::mutate(newfn = gsub("^MS([0-9]*)-([0-9]*)_([a-z0-9]*)-([a-z0-9]*).docx$", "MS\\2_\\4.docx", fn)) |> + dplyr::mutate( + newfn = gsub( + "^MS([0-9]*)-([0-9]*)_([a-z0-9]*)-([a-z0-9]*).docx$", + "MS\\2_\\4.docx", + fn + ) + ) |> # dplyr::mutate(time1 = lubridate::ymd_hm(gsub("MS([0-9]*)_([a-z0-9]*).docx$", "\\1", oldfn))) |> - dplyr::mutate(time2 = lubridate::ymd_hm(gsub("MS([0-9]*)_([a-z0-9]*).docx$", "\\1", newfn))) |> + dplyr::mutate( + time2 = lubridate::ymd_hm(gsub( + "MS([0-9]*)_([a-z0-9]*).docx$", + "\\1", + newfn + )) + ) |> # dplyr::arrange(dplyr::desc(time2), newfn, dplyr::desc(time1)) |> # dplyr::mutate(htmlstr = paste0("- [**", oldfn, "**](MS/", oldfn, ") ← [**", # newfn, "**](MS/", newfn, ") ⇨ [**", fn, "**](", fn, ")\n\n")) |> - dplyr::mutate(htmlstr = paste0("[- ", time2, ": **", fn, "**](", fn, ")\n\n")) |> + dplyr::mutate( + htmlstr = paste0("[- ", time2, ": **", fn, "**](", fn, ")\n\n") + ) |> dplyr::pull(htmlstr) |> paste(collapse = "") |> cat() diff --git a/_extensions/bootstrap/bootstrap-icons.css b/_extensions/bootstrap/bootstrap-icons.css old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/bootstrap-icons.woff b/_extensions/bootstrap/bootstrap-icons.woff old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/bootstrap.min.css b/_extensions/bootstrap/bootstrap.min.css old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/bootstrap.min.js b/_extensions/bootstrap/bootstrap.min.js old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts.css b/_extensions/bootstrap/googlefonts.css old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lujVj9_mf.woff2 b/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lujVj9_mf.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lujVj9_mf.woff2 b/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lujVj9_mf.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lujVj9_mf.woff2 b/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lujVj9_mf.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lujVj9_mf.woff2 b/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lujVj9_mf.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lujVj9_mf.woff2 b/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lujVj9_mf.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7lujVj9w.woff2 b/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7lujVj9w.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lujVj9_mf.woff2 b/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lujVj9_mf.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu3cOWxw.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu3cOWxw.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu3cOWxw.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu3cOWxw.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/christopherkenny/nature/_extension.yml b/_extensions/christopherkenny/nature/_extension.yml deleted file mode 100644 index 198f085..0000000 --- a/_extensions/christopherkenny/nature/_extension.yml +++ /dev/null @@ -1,27 +0,0 @@ -title: Nature Journal Template -author: Christopher Kenny, Cameron Smith -version: 1.0.1 -quarto-required: ">=1.4.0" -contributes: - formats: - common: - toc: false - biblio-config: false - pdf: - include-in-header: header.tex - format-resources: - - sn-jnl.cls - - sn-apacite.bst - - sn-aps.bst - - sn-basic.bst - - sn-chicago.bst - - sn-mathphys-ay.bst - - sn-mathphys-num.bst - - sn-nature.bst - - sn-vancouver.bst - template-partials: - - "partials/doc-class.tex" - - "partials/title.tex" - - "partials/_author.tex" - - "partials/_affiliation.tex" - - "partials/before-body.tex" diff --git a/_extensions/christopherkenny/nature/csl/nature-no-superscript.csl b/_extensions/christopherkenny/nature/csl/nature-no-superscript.csl deleted file mode 100644 index bba16d5..0000000 --- a/_extensions/christopherkenny/nature/csl/nature-no-superscript.csl +++ /dev/null @@ -1,127 +0,0 @@ - - diff --git a/_extensions/christopherkenny/nature/csl/springer-basic-author-date.csl b/_extensions/christopherkenny/nature/csl/springer-basic-author-date.csl deleted file mode 100644 index e397afa..0000000 --- a/_extensions/christopherkenny/nature/csl/springer-basic-author-date.csl +++ /dev/null @@ -1,239 +0,0 @@ - - diff --git a/_extensions/christopherkenny/nature/csl/springer-basic-brackets-no-et-al.csl b/_extensions/christopherkenny/nature/csl/springer-basic-brackets-no-et-al.csl deleted file mode 100644 index ae783d0..0000000 --- a/_extensions/christopherkenny/nature/csl/springer-basic-brackets-no-et-al.csl +++ /dev/null @@ -1,184 +0,0 @@ - - diff --git a/_extensions/christopherkenny/nature/csl/springer-humanities-author-date.csl b/_extensions/christopherkenny/nature/csl/springer-humanities-author-date.csl deleted file mode 100644 index 6756fe6..0000000 --- a/_extensions/christopherkenny/nature/csl/springer-humanities-author-date.csl +++ /dev/null @@ -1,473 +0,0 @@ - - diff --git a/_extensions/christopherkenny/nature/csl/springer-humanities-brackets.csl b/_extensions/christopherkenny/nature/csl/springer-humanities-brackets.csl deleted file mode 100644 index 1f4d567..0000000 --- a/_extensions/christopherkenny/nature/csl/springer-humanities-brackets.csl +++ /dev/null @@ -1,421 +0,0 @@ - - diff --git a/_extensions/christopherkenny/nature/csl/springer-mathphys-author-date.csl b/_extensions/christopherkenny/nature/csl/springer-mathphys-author-date.csl deleted file mode 100644 index c679bc4..0000000 --- a/_extensions/christopherkenny/nature/csl/springer-mathphys-author-date.csl +++ /dev/null @@ -1,198 +0,0 @@ - - diff --git a/_extensions/christopherkenny/nature/csl/springer-mathphys-brackets.csl b/_extensions/christopherkenny/nature/csl/springer-mathphys-brackets.csl deleted file mode 100644 index e6efba5..0000000 --- a/_extensions/christopherkenny/nature/csl/springer-mathphys-brackets.csl +++ /dev/null @@ -1,152 +0,0 @@ - - diff --git a/_extensions/christopherkenny/nature/csl/springer-vancouver.csl b/_extensions/christopherkenny/nature/csl/springer-vancouver.csl deleted file mode 100644 index 1d032c6..0000000 --- a/_extensions/christopherkenny/nature/csl/springer-vancouver.csl +++ /dev/null @@ -1,179 +0,0 @@ - - diff --git a/_extensions/christopherkenny/nature/header.tex b/_extensions/christopherkenny/nature/header.tex deleted file mode 100644 index 9be6852..0000000 --- a/_extensions/christopherkenny/nature/header.tex +++ /dev/null @@ -1,20 +0,0 @@ -%%%% Standard Packages - -\usepackage{graphicx}% -\usepackage{multirow}% -\usepackage{amsmath,amssymb,amsfonts}% -\usepackage{amsthm}% -\usepackage{mathrsfs}% -\usepackage[title]{appendix}% -\usepackage{xcolor}% -\usepackage{textcomp}% -\usepackage{manyfoot}% -\usepackage{booktabs}% -\usepackage{algorithm}% -\usepackage{algorithmicx}% -\usepackage{algpseudocode}% -\usepackage{listings}% - -%%%% - -\raggedbottom \ No newline at end of file diff --git a/_extensions/christopherkenny/nature/partials/_affiliation.tex b/_extensions/christopherkenny/nature/partials/_affiliation.tex deleted file mode 100644 index 599ce84..0000000 --- a/_extensions/christopherkenny/nature/partials/_affiliation.tex +++ /dev/null @@ -1 +0,0 @@ -$if(it.department)$\orgdiv{$it.department$}$endif$$if(it.name)$, \orgname{$it.name$}$endif$$if(it.address)$, \orgaddress{\street{$it.address$}$if(it.city)$, \city{$it.city$}$endif$$if(it.state)$, \state{$it.state$}$endif$$if(it.postal-code)$, \postcode{$it.postal-code$}$endif$$if(it.country)$, \country{$it.country$}$endif$}$endif$ diff --git a/_extensions/christopherkenny/nature/partials/_author.tex b/_extensions/christopherkenny/nature/partials/_author.tex deleted file mode 100644 index 12e288a..0000000 --- a/_extensions/christopherkenny/nature/partials/_author.tex +++ /dev/null @@ -1 +0,0 @@ -$if(it.name.given)$\fnm{$it.name.given$}$endif$ $if(it.name.family)$\sur{$it.name.family$}$endif$ diff --git a/_extensions/christopherkenny/nature/partials/before-body.tex b/_extensions/christopherkenny/nature/partials/before-body.tex deleted file mode 100644 index a6a514c..0000000 --- a/_extensions/christopherkenny/nature/partials/before-body.tex +++ /dev/null @@ -1,3 +0,0 @@ -$if(title)$ -\maketitle -$endif$ \ No newline at end of file diff --git a/_extensions/christopherkenny/nature/partials/doc-class.tex b/_extensions/christopherkenny/nature/partials/doc-class.tex deleted file mode 100644 index 290ba13..0000000 --- a/_extensions/christopherkenny/nature/partials/doc-class.tex +++ /dev/null @@ -1,17 +0,0 @@ -\documentclass[ -$if(journal.cite-style)$ - $journal.cite-style$, -$else$ - default, -$endif$ -$if(fontsize)$ - $fontsize$, -$endif$ -$for(classoption)$ - $classoption$$sep$, -$endfor$ -]{sn-jnl} - -$if(equal-margins)$ -\setlength\evensidemargin{\oddsidemargin} -$endif$ diff --git a/_extensions/christopherkenny/nature/partials/title.tex b/_extensions/christopherkenny/nature/partials/title.tex deleted file mode 100644 index 4958ac4..0000000 --- a/_extensions/christopherkenny/nature/partials/title.tex +++ /dev/null @@ -1,25 +0,0 @@ -$if(title)$ -\title[$title$]{$title$} -$endif$ - -% author setup -$for(by-author)$ -\author$if(by-author.attributes.corresponding)$*$endif$[$if(by-author.affiliations)$$for(by-author.affiliations)$$it.id$$sep$,$endfor$$endif$]{$_author.tex()$}$if(by-author.email)$ -\email{$by-author.email$}$endif$$if(by-author.attributes.equal-contributor)$ -\equalcont{These authors contributed equally to this work.}$endif$$endfor$ - -% affil setup -$for(by-affiliation)$ -\affil[$it.id$]{$_affiliation.tex()$} -$endfor$ - -% abstract - -$if(abstract)$ -\abstract{$abstract$} -$endif$ - -% keywords -$if(keywords)$ -\keywords{$for(keywords)$$keywords$$sep$, $endfor$} -$endif$ \ No newline at end of file diff --git a/_extensions/christopherkenny/nature/sn-apacite.bst b/_extensions/christopherkenny/nature/sn-apacite.bst deleted file mode 100644 index be1dc53..0000000 --- a/_extensions/christopherkenny/nature/sn-apacite.bst +++ /dev/null @@ -1,5364 +0,0 @@ -%% -%% This is file `apacite.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% apacite.dtx (with options: `bibstyle') -%% -%% This is a generated file. -%% -%% Copyright (C) 1994-2013 Erik Meijer and any individual authors listed -%% elsewhere in this file. -%% -%% This file is part of the `apacite' package. -%% ------------------------------------------- -%% -%% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either -%% version 1.3 of this license or (at your option) any later -%% version. The latest version of this license is in: -%% -%% http://www.latex-project.org/lppl.txt -%% -%% and version 1.3 or later is part of all distributions of -%% LaTeX version 2005/12/01 or later. -%% -%% The `apacite' package consists of the files apacite.dtx and -%% apacite.ins, and the following generated files: -%% apacite.sty, apacdoc.sty, apacite.drv, -%% apacite.bst, apacitex.bst, apacann.bst, apacannx.bst, -%% apa5ex.bib, apacxmpl.tex, -%% english.apc, dutch.apc, finnish.apc, french.apc, -%% german.apc, ngerman.apc, greek.apc, norsk.apc, -%% spanish.apc, swedish.apc. -%% -%% This work has the LPPL maintenance status `maintained' -%% -%% The Current Maintainer of this work is Erik Meijer -%% -%% This file may only be distributed together with a copy of the -%% source files of the apacite package, i.e., apacite.dtx and -%% apacite.ins. You may however distribute the apacite package without -%% the generated files. -%% -%% apacite.bst -%% [2013/07/21 v6.03 APA bibliography style] -%% apacite.bst : reference list according to APA manual -%% Written by Erik Meijer - -FUNCTION {identify.apacite.version} -{ % Put identifying string in the .blg file - "apacite.bst" - " [2013/07/21 v6.03 APA bibliography style]" - * top$ -} -ENTRY - { address - annote - annotate - author - booktitle - chair - chapter - day - doi - edition - editor - englishtitle - firstkey - howpublished - institution - journal - key - keywords - lastchecked - month - nihms - note - number - organization - originaladdress - originalbooktitle - originaledition - originaleditor - originaljournal - originalnumber - originalpages - originalpublisher - originalvolume - originalyear - pages - pmcid - publisher - school - series - symposium - text - title - translator - type - url - urldate - volume - year - eprint - archive - archivePrefix - primaryClass - eid - adsurl - adsnote - version - } - { cite.order %% order of first citation - title.number %% for sorting titles - cite.initials %% dummy (0-1) indicating whether or not - %% initials of the 1st author must - %% be used for citing - cite.num.names.full %% number of names to be cited for full and - cite.num.names.short %% short cite - add.to.year %% For a, b, c, etc. after year - %% in multiple citations with same author-year - } - { year.label %% For sorting entries by year - author.year.sort.label %% For sorting entries and checking whether - %% initials should be added, how many authors - %% should be cited and whether a, b, etc. - %% after year is necessary - title.sort.label %% for sorting titles - citeorder.sort.label %% for sorting by citation order - type.2 %% Replacement for type with misc entries and - %% entries that revert to misc. - } -INTEGERS { len pos name.max old.number numnames numnames.old - nameptr lastname format.num.names cite.initials.old - cite.num.names.old add.to.year.old forward - multiresult dot brace.level - } - -STRINGS { s t u old.label field - aut1f aut1s aut1f.old aut1s.old - aut2 aut2.old - aut3 aut3.old - aut4 aut4.old - aut5 aut5.old - aut6 aut6.old - year.label.old - } -FUNCTION {test} { #0 } -FUNCTION {dump.stack} -{ "---- STACK {" cite$ * "} ----" * top$ - stack$ - "---- END STACK {" cite$ * "} ----" * top$ -} -FUNCTION {make.index} { #0 } -FUNCTION {unsorted} { #0 } -MACRO {jan} {"{\APACmonth{01}}"} -MACRO {feb} {"{\APACmonth{02}}"} -MACRO {mar} {"{\APACmonth{03}}"} -MACRO {apr} {"{\APACmonth{04}}"} -MACRO {may} {"{\APACmonth{05}}"} -MACRO {jun} {"{\APACmonth{06}}"} -MACRO {jul} {"{\APACmonth{07}}"} -MACRO {aug} {"{\APACmonth{08}}"} -MACRO {sep} {"{\APACmonth{09}}"} -MACRO {oct} {"{\APACmonth{10}}"} -MACRO {nov} {"{\APACmonth{11}}"} -MACRO {dec} {"{\APACmonth{12}}"} -MACRO {winter} {"{\APACmonth{13}}"} -MACRO {spring} {"{\APACmonth{14}}"} -MACRO {summer} {"{\APACmonth{15}}"} -MACRO {fall} {"{\APACmonth{16}}"} -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % issues warning if field is empty - % call with - % "field" field warning.if.empty - % Note that the first field must be between quotes - % because it is the fieldname for use in the warning message. - % -FUNCTION {warning.if.empty} -{ empty$ - { "No " swap$ * " in " * cite$ * warning$ } - { pop$ } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % issues warning if title, type, and howpublished are empty - % -FUNCTION {check.relevant.fields} -{ title empty$ - type empty$ and - howpublished empty$ and - { "No title, type, and howpublished in " cite$ * warning$ } - 'skip$ - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % delivers 1 if (both editor and translator - % not empty and not equal to each other) - % 0 if (editor or translator empty) or - % (editor = translator) - % -FUNCTION {editor.ne.trans} -{ translator empty$ - { #0 } - { editor empty$ - { #0 } - { translator editor = - { #0 } - { #1 } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {conv.int.to.str} -{ duplicate$ #10 < - { "0000" swap$ int.to.str$ * } - { duplicate$ #100 < - { "000" swap$ int.to.str$ * } - { duplicate$ #1000 < - { "00" swap$ int.to.str$ * } - { duplicate$ #10000 < - { "0" swap$ int.to.str$ * } - { int.to.str$ } - if$ - } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {ref.type} -{ type$ "article" = - type$ "magazine" = - type$ "newspaper" = - type$ "book" = - type$ "techreport" = - type$ "unpublished" = - type$ "misc" = - type$ "booklet" = - type$ "manual" = - type$ "proceedings" = - or - or - or - or - or - or - or - or - or - { #1 } - { type$ "incollection" = - type$ "phdthesis" = - type$ "mastersthesis" = - type$ "lecture" = - type$ "inbook" = - type$ "inproceedings" = - type$ "conference" = - type$ "intechreport" = - or - or - or - or - or - or - or - { #2 } - { type$ "literal" = - { #3 } - { #0 } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {is.atype} -{ type$ "article" = - type$ "magazine" = - type$ "newspaper" = - type$ "incollection" = - type$ "inbook" = - type$ "inproceedings" = - type$ "conference" = - type$ "intechreport" = - type$ "manual" = - or - or - or - or - or - or - or - or - { #1 } - { journal empty$ not - % - type$ "phdthesis" = - type$ "mastersthesis" = - or - % - and - { #1 } - { type$ "misc" = - type empty$ not and - { type "\bibmessage" = - type "\bibcomputerprogram" = - type "\bibcomputerprogrammanual" = - type "\bibcomputerprogramandmanual" = - type "\bibcomputersoftware" = - type "\bibcomputersoftwaremanual" = - type "\bibcomputersoftwareandmanual" = - type "\bibprogramminglanguage" = - or - or - or - or - or - or - or - { #1 } - { #0 } - if$ - } - { #0 } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % connects two strings with connect string - % if one of them empty, then connect string - % is left out - % - % call with S1 S2 connectstring connect.check - % -FUNCTION {connect.check} -{ 'u := - % - % if S2 = "" - % - duplicate$ empty$ - % - % then remove S2 - % - { pop$ - % - % S1 is on top of stack. - % if it is empty, it is replaced by the empty string "" - % - duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ - } - % - % else swap S1 and S2 so that S1 can be checked - % - { swap$ - % - % if S1 is empty, remove S1 so that S2 is left on the - % stack and is the result is given - % - duplicate$ empty$ - { pop$ } - % - % now the real work starts: - % push the connect string "C" - % so that top of stack is "C" "S1" "S2" - % concatenate, so that top of stack is - % "S1+C" "S2" - % - { u * - % - % swap and concatenate - % - swap$ * - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % connects two strings with space ("\ ") - % if length of second is 4 or larger, - % connects them with non-breaking space ("tie", "~") - % if length of second smaller than 4 - % - % call with S1 S2 tie.or.space.connect - % result: "S1\ S2" or "S1~S2" - % -FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #4 < - { "~" } - { "\ " } - if$ - swap$ * * -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % connects two strings with comma (", ") - % if one of them is empty, the comma is left out - % - % call with S1 S2 connect.with.comma.check - % result: "S1, S2" - % -FUNCTION {connect.with.comma.check} -{ ", " connect.check } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % connects two strings with semicolon ("; ") - % if one of them is empty, semicolon is left out - % - % call with S1 S2 connect.with.semicolon.check - % result: "S1; S2" - % -FUNCTION {connect.with.semicolon.check} -{ "; " connect.check } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % connects two strings with colon (": ") - % if one of them is empty, colon is left out - % - % call with S1 S2 connect.with.colon.check - % result: "S1: S2" - % -FUNCTION {connect.with.colon.check} -{ ": " connect.check } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % connects two strings with space ("\ ") - % - % call with S1 S2 connect.with.space.check - % result: "S1\ S2" - % -FUNCTION {connect.with.space.check} -{ "\ " connect.check } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % encloses string in pre- and postfix string - % call with - % prefix postfix S enclose.check - % delivers empty string if S empty - % -FUNCTION {enclose.check} -{ duplicate$ empty$ - { pop$ pop$ pop$ - "" - } - { swap$ * * } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % emphasizes top of stack - % call with - % "string" emphasize.check - % -FUNCTION {emphasize.check} -{ "\Bem{" swap$ - "}" swap$ - enclose.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % brackets top of stack - % call with - % "string" bracket - % -FUNCTION {bracket.check} -{ "[" swap$ - "]" swap$ - enclose.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % parenthesizes top of stack - % call with - % "string" parenthesize - % -FUNCTION {parenthesize.check} -{ "(" swap$ - ")" swap$ - enclose.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % checks whether argument is "multiresult": - % whether it contains '-', '+', or ',' characters - % used with pages to check whether pp. or p. must be used - % -FUNCTION {multi.result.check} -{ 't := - #0 'multiresult := - % - % while (not multiresult) and (length(t) > 1) do - % - { multiresult not - t text.length$ #1 > - and - } - % - % if t(1-2) = "--" or t(1) = "+" or "," - % then multiresult = 1 - % else t = t(2-last) - % - { t #1 #2 substring$ 's := - "--" s = - { #1 'multiresult := } - { t #1 #1 substring$ 's := - "+" s = - "," s = - or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - if$ - } - while$ - multiresult -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % Checks whether an author is a corporate author, i.e., - % whether the field starts with "{\bibcorporate". - % Call with - % field is.bibcorporate - % -FUNCTION {is.bibcorporate} -{ #1 #14 substring$ "{\bibcorporate" = } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {sortify} -{ purify$ - "l" change.case$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {remove.spaces} -{ % Remove spaces from string. - % Works best if string only contains alphanumeric characters and spaces. - 's := % The original string - s text.length$ 'len := % Its length (no. of characters) - "" 't := % Initialize the transformed string - #0 'pos := - % - % while (pos < len) do - % - { pos len < } - { pos #1 + 'pos := - s pos #1 substring$ 'u := - % - % u is the pos-th character in s - % If it is a space, move to next character, - % else copy character to output. - % - u " " = - 'skip$ - { t u * 't := } - if$ - } - while$ - % - % Now push the result back on the stack - t -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % end block by writing what's left on the stack and - % starting a new line - % -FUNCTION {output.end.block} -{ write$ - newline$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % end block by adding a period and writing what's left - % on the stack and starting a new line - % -FUNCTION {output.dot.end.block} -{ add.period$ - output.end.block -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % starting new block by writing what's left on the stack, - % starting a new line and adding some extra space or - % whatever is more defined in \newblock - % -FUNCTION {output.new.block} -{ output.end.block - "\newblock" write$ newline$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % starting new block by writing what's left on the stack, - % starting a new line and adding some extra space or - % whatever is more defined in \newblock - % -FUNCTION {output.dot.new.block} -{ add.period$ - output.new.block -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {start.new.block} -{ "\unskip\ " write$ newline$ - "\newblock " write$ newline$ -} - -FUNCTION {sort.name.format.classic} { "{ll{}}{ f{}}{ vv{}}{ jj{}}" } - -FUNCTION {cite.name.format.classic} { "{ll}" } - -FUNCTION {author.name.format.classic} { "{ll}{, f{.}.}{ vv}{, jj}" } - -FUNCTION {index.name.format.classic} { "{ll}{, f{.}.}{ vv}{, jj}" } - -FUNCTION {sort.name.format} { "{vv{}}{ll{}}{ f{}}{ jj{}}" } - -FUNCTION {cite.name.format} { "{vv }{ll}" } - -FUNCTION {cite.initials.name.format} { "{f{.}.~~}{vv }{ll}{ jj}" } - -FUNCTION {author.name.format} { "{vv }{ll}{, f{.}.}{, jj}" } - -FUNCTION {editor.name.format} { "{f{.}.~~}{vv }{ll}{ jj}" } - -FUNCTION {index.name.format} { "{vv }{ll}{, f{.}.}{, jj}" } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {init.initials} -{ "yyyyy" 'aut1f.old := - "yyyyy" 'aut1s.old := - #0 'cite.initials.old := -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {update.no.initials} -{ 'field := - field 'aut1f.old := - field 'aut1s.old := - #0 'cite.initials.old := -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {check.add.initials.aut} -{ % - % If last name is equal to previous last name - % but initials are different, then initials should - % be cited. If initials are also the same, initials - % should be cited if that is the case for the previous - % author . - % - aut1s aut1s.old = - { aut1f aut1f.old = - { cite.initials.old 'cite.initials := } - { #1 'cite.initials := - aut1f 'aut1f.old := - aut1s 'aut1s.old := - cite.initials 'cite.initials.old := - } - if$ - } - { % - % Different last name. - aut1f 'aut1f.old := - aut1s 'aut1s.old := - cite.initials 'cite.initials.old := - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {check.add.initials.field} -{ 'field := - field #1 cite.initials.name.format format.name$ 'aut1f := - field #1 cite.name.format format.name$ 'aut1s := - % - % Now do the actual work - % - check.add.initials.aut -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {check.add.initials} -{ % - % Check whether author or editor or other field acts as author. - % Initials are only relevant with author or editor. - % - firstkey empty$ not - { key empty$ not - { % - % Both key and firstkey are nonempty. - % Then, key is treated as last name of first author, - % and firstkey is treated as last name + initials of - % first author . - % - firstkey sortify remove.spaces 'aut1f := - key sortify remove.spaces 'aut1s := - check.add.initials.aut - } - { firstkey sortify remove.spaces update.no.initials } - if$ - } - { key empty$ not - { key sortify remove.spaces update.no.initials } - { % - % No key or firstkey, so find out which field - % to use as author. - % - % Check reference type: - % if result is 1 then possibly editor acts as author - % 2 then editor does not act as author - % 3 then key should have been used - % 0 then unknown reference type - ref.type #2 = - { % - % Format first author with and without initials - author empty$ - { title.sort.label update.no.initials } - { author check.add.initials.field } - if$ - } - { % - % Format first author with and without initials - author empty$ - { editor empty$ - { title.sort.label update.no.initials } - { editor check.add.initials.field } - if$ - } - { author check.add.initials.field } - if$ - } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {tentative.cite.num.names.field} -{ 'field := - field num.names$ 'numnames := - numnames #3 < - { % - % 1 or 2 names: always cite all of them. - numnames 'cite.num.names.full := - numnames 'cite.num.names.short := - } - { numnames #6 < - { % - % 3-5 names: cite all of them the first time, - % only the first name later times - numnames 'cite.num.names.full := - #1 'cite.num.names.short := - } - { % - % 6 or more names: cite only the first name - #1 'cite.num.names.full := - #1 'cite.num.names.short := - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {tentative.cite.num.names} -{ % - % Check whether author or editor or other field acts as author. - % Number of names is only relevant with author or editor. - % - firstkey empty$ not - { - #1 'cite.num.names.full := - #1 'cite.num.names.short := - } - { key empty$ not - { - #1 'cite.num.names.full := - #1 'cite.num.names.short := - } - { % - % No key or firstkey, so find out which field - % to use as author. - % - % Check reference type: - % if result is 1 then possibly editor acts as author - % 2 then editor does not act as author - % 3 then key should have been used - % 0 then unknown reference type - ref.type #2 = - { % - % Format first author with and without initials - author empty$ - { - #1 'cite.num.names.full := - #1 'cite.num.names.short := - } - { author tentative.cite.num.names.field } - if$ - } - { % - % Format first author with and without initials - author empty$ - { editor empty$ - { - #1 'cite.num.names.full := - #1 'cite.num.names.short := - } - { editor tentative.cite.num.names.field } - if$ - } - { author tentative.cite.num.names.field } - if$ - } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {init.cite.num.names} -{ #0 'cite.num.names.old := - #0 'numnames.old := - "yyyy" 'year.label.old := - #0 'add.to.year.old := - "" 'aut1f.old := - "" 'aut2.old := - "" 'aut3.old := - "" 'aut4.old := - "" 'aut5.old := - "" 'aut6.old := -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {update.cite.num.names} -{ cite.num.names.short 'cite.num.names.old := - numnames 'numnames.old := - year.label 'year.label.old := - add.to.year 'add.to.year.old := - aut1f 'aut1f.old := - aut2 'aut2.old := - aut3 'aut3.old := - aut4 'aut4.old := - aut5 'aut5.old := - aut6 'aut6.old := -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {format.6.authors} -{ % - % First author: with initials. - % - field #1 cite.initials.name.format format.name$ 'aut1f := - % - % Second and later authors: without initials. - % - numnames #1 > - name.max #1 > - and - { % - % 2nd author - field #2 cite.name.format format.name$ 'aut2 := - % - numnames #2 > - name.max #2 > - and - { % - % 3nd author - field #3 cite.name.format format.name$ 'aut3 := - % - numnames #3 > - name.max #3 > - and - { % - % 4th author - field #4 cite.name.format format.name$ 'aut4 := - % - numnames #4 > - name.max #4 > - and - { % - % 5th author - field #5 cite.name.format format.name$ 'aut5 := - % - numnames #5 > - name.max #5 > - and - { % - % 6th author - field #6 cite.name.format format.name$ 'aut6 := - } - { % - % 5 authors: 6 is empty - % - "" 'aut6 := - } - if$ - } - { % - % 4 authors: 5-6 are empty - % - "" 'aut5 := - "" 'aut6 := - } - if$ - } - { % - % 3 authors: 4-6 are empty - % - "" 'aut4 := - "" 'aut5 := - "" 'aut6 := - } - if$ - } - { % - % 2 authors: 3-6 are empty - % - "" 'aut3 := - "" 'aut4 := - "" 'aut5 := - "" 'aut6 := - } - if$ - } - { % - % Only 1 author: 2-6 are empty - % - "" 'aut2 := - "" 'aut3 := - "" 'aut4 := - "" 'aut5 := - "" 'aut6 := - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {change.add.to.year} -{ - forward #1 = - { % - % Moving forward: this add.to.year number must be 1 higher than - % previous. - % - add.to.year.old #0 > - { add.to.year.old #1 + 'add.to.year := } - { #2 'add.to.year := } - if$ - } - { % - % Moving backward: this add.to.year number must be 1 lower than - % previous. - % - add.to.year.old #1 - 'add.to.year := - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {definitive.cite.num.names.1.or.2} -{ % - numnames numnames.old = - { % - % Same number of names: ambiguity could arise. Check whether current - % and previous have the same author(s). - % - aut1f aut1f.old = - { % - % Same first author: if the second author is also the same or if - % there is only one author, a's and b's should be added. - % - aut2 aut2.old = - numnames #2 = - and - % - numnames #1 = - or - { % - % Same author(s): add to year. - % - change.add.to.year - } - { % - % Different second author: no ambiguity possible. - % - skip$ - } - if$ - } - { % - % Different first author: no ambiguity possible. - % - skip$ - } - if$ - } - { % - % Different number of names: no ambiguity possible. - % - skip$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {definitive.cite.num.names.3.or.more} -{ % - % Check whether current and previous have the same first author. - % - aut1f aut1f.old = - { % - % Same first author: check second author - % - aut2 aut2.old = - { % - % Same 1st & 2nd author: check 3rd. - % - aut3 aut3.old = - { % - % Same 1st-3rd authors: check 4th. - % - numnames.old #3 = - { numnames #3 = - { % - % Both current and previous have 3 authors, which are - % the same, so both have identical author-year - % combinations, so ambiguity should be resolved by - % a's and b's. Check whether more authors were - % necessary for previous one. - % - change.add.to.year - cite.num.names.short cite.num.names.old < - { cite.num.names.old - 'cite.num.names.short := - } - 'skip$ - if$ - } - { % - % Previous has 3 authors, current has more, with same - % first 3, so at least 4 must be used for current to - % make a difference. - % - cite.num.names.short #4 < - { #4 'cite.num.names.short := } - 'skip$ - if$ - } - if$ - } - { numnames #3 = - { % - % Current has 3 authors, previous has more, with same - % first 3, so all 3 of current must be used. - % - numnames 'cite.num.names.short := - } - { % - % Same 1st-3rd author and both current and previous - % have at least 4 authors: check 4th. - % - aut4 aut4.old = - { % - % Same 1st-4th authors: check 5th. - % - numnames.old #4 = - { numnames #4 = - { % - % Both current and previous have 4 authors, - % which are the same, so both have - % identical author-year combinations, so - % ambiguity should be resolved by a's and - % b's. Check whether more authors were - % necessary for previous one. - % - change.add.to.year - cite.num.names.short cite.num.names.old < - { cite.num.names.old - 'cite.num.names.short := - } - 'skip$ - if$ - } - { % - % Previous has 4 authors, current has more, - % with same first 4, so at least 5 must be - % used for current to make a difference. - % - cite.num.names.short #5 < - { #5 'cite.num.names.short := } - 'skip$ - if$ - } - if$ - } - { numnames #4 = - { % - % Current has 4 authors, previous has more, - % with same first 4, so all 4 of current - % must be used. - % - numnames 'cite.num.names.short := - } - { % - % Same 1st-4th author and both current and - % previous have at least 5 authors: check - % 5th. - % - aut5 aut5.old = - { % - % Same 1st-5th authors: check 6th. - % - numnames.old #5 = - { numnames #5 = - { % - % Both current and previous - % have 5 authors, which are the - % same, so both have identical - % author-year combinations, so - % ambiguity should be resolved - % by a's and b's. Check whether - % more authors were necessary - % for previous one. - % - change.add.to.year - cite.num.names.short - cite.num.names.old < - { cite.num.names.old - 'cite.num.names.short := - } - 'skip$ - if$ - } - { % - % Previous has 5 authors, - % current has more, with same - % first 5, so at least 6 must - % be used for current to make - % a difference. - % - cite.num.names.short #6 < - { #6 'cite.num.names.short := } - 'skip$ - if$ - } - if$ - } - { numnames #5 = - { % - % Current has 5 authors, - % previous has more, with same - % first 5, so all 5 of current - % must be used. - % - numnames 'cite.num.names.short := - } - { % - % Same 1st-5th author and both - % current and previous have at - % least 6 authors. If one has - % 6 authors and the other has - % more or the 6th is different, - % 6 should be used (which is - % the maximum). - % - numnames #6 > - numnames.old #6 = - and - % - numnames #6 = - numnames.old #6 > - and - % - or - % - aut6 aut6.old = - not - % - or - { #6 cite.num.names.short < - { #6 - 'cite.num.names.short - := - } - 'skip$ - if$ - } - { % - % The first 6 authors are - % the same and either both - % have 6 or both have more. - % So for all practical - % purposes they have - % identical author-year - % combination, so ambiguity - % should be resolved by a's - % and b's. Check whether - % more authors were - % necessary for previous - % one. - % - change.add.to.year - cite.num.names.short - cite.num.names.old - < - { cite.num.names.old - 'cite.num.names.short - := - } - 'skip$ - if$ - } - if$ - } - if$ - } - if$ - } - { % - % Different 5th author: citing 5 authors is - % sufficient for this comparison. - % - cite.num.names.short #5 < - { #5 'cite.num.names.short := } - 'skip$ - if$ - } - if$ - } - if$ - } - if$ - } - { % - % Different 4th author: citing 4 authors is - % sufficient for this comparison. - % - cite.num.names.short #4 < - { #4 'cite.num.names.short := } - 'skip$ - if$ - } - if$ - } - if$ - } - if$ - } - { % - % Different 3rd author: citing 3 authors is sufficient for this - % comparison. - % - cite.num.names.short #3 < - { #3 'cite.num.names.short := } - 'skip$ - if$ - } - if$ - } - { % - % Different 2nd author: citing 2 authors is sufficient for this - % comparison. - % - cite.num.names.short #2 < - { #2 'cite.num.names.short := } - 'skip$ - if$ - } - if$ - } - { % - % Different first author: no ambiguity, move to next entry. - % - skip$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {definitive.cite.num.names.field} -{ 'field := - field num.names$ 'numnames := - % - % Format authors - % - format.6.authors - % - % Now compare authors with authors of previous entry. - % - cite.num.names.short numnames.old > - { % - % The previous entry has less authors than already defined - % necessary to be cited. No ambiguity is possible and we're ready. - % - skip$ - } - { % - % Both previous and current entry have at least one author . - % - year.label year.label.old = - { % - % Same year label: possibly ambiguous citation. - % - % First check: current and/or previous have 1 or - % 2 authors. - % - numnames #3 < - numnames.old #3 < - or - % - { definitive.cite.num.names.1.or.2 } - { definitive.cite.num.names.3.or.more } - if$ - } - { % - % Different year label: everything's fine, - % move to next entry. - % - skip$ - } - if$ - } - if$ - % - % If during the previous process the name maximum is exceeded - % (which was not checked), correct this. NOTE: If the name - % maximum is smaller than 6, this could lead to ambiguous - % citations if, e.g., the year and the first 5 authors are - % the same, but the 6th author is different. - % - cite.num.names.short name.max > - { name.max 'cite.num.names.short := } - 'skip$ - if$ - % - % For a "full" cite, the number of names should always be at least - % as large as for a "short" cite. - % - cite.num.names.full cite.num.names.short < - { cite.num.names.short 'cite.num.names.full := } - 'skip$ - if$ - % - % Update "old" variables for next entry. - % - update.cite.num.names -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {definitive.cite.no.names} -{ % - % The formatted field that acts as author is on top - % of the stack. - 'aut1f := - "" 'aut2 := - "" 'aut3 := - "" 'aut4 := - "" 'aut5 := - "" 'aut6 := - #1 'numnames := - % - year.label year.label.old = - { % - % Same year label: possibly ambiguous citation. - % - definitive.cite.num.names.1.or.2 - } - { % - % Different year label: everything's fine, - % move to next entry. - % - skip$ - } - if$ - % - % Update "old" variables for next entry. - % - update.cite.num.names -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {definitive.cite.num.names} -{ % - % Check whether author or editor or other field acts as author. - % Number of names is only relevant with author or editor. - % - firstkey empty$ not - { firstkey sortify remove.spaces definitive.cite.no.names } - { key empty$ not - { key sortify remove.spaces definitive.cite.no.names } - { % - % No key or firstkey, so find out which field - % to use as author. - % - % Check reference type: - % if result is 1 then possibly editor acts as author - % 2 then editor does not act as author - % 3 then key should have been used - % 0 then unknown reference type - ref.type #2 = - { % - % Format first author with and without initials - author empty$ - { title.sort.label definitive.cite.no.names } - { author definitive.cite.num.names.field } - if$ - } - { % - % Format first author with and without initials - author empty$ - { editor empty$ - { title.sort.label definitive.cite.no.names } - { editor definitive.cite.num.names.field } - if$ - } - { author definitive.cite.num.names.field } - if$ - } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.tentative.year.sort.label} -{ % - % Implicit or explicit ``no date'' is put at the front - % (the year zero; years B.C. will imply complications) - % because these are possibly old works. - % ``In press'' is put at the end. - % - year empty$ - { "0000" 'year.label := } - { year "\bibnodate" = - year "l" change.case$ "no date" = or - year "l" change.case$ "n.d." = or - { "0000" 'year.label := } - { year "\BIP" = - year "l" change.case$ "in press" = or - year "l" change.case$ "forthcoming" = or - { "9999" 'year.label := } - { % It is not checked whether the year field - % makes sense. - year sortify remove.spaces 'year.label := - } - if$ - } - if$ - } - if$ - % - % Push year sort label on the stack - year.label -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {month.number.day} -{ month empty$ - { "" } - { month sortify remove.spaces - % - % Add the day when available. - day empty$ - 'skip$ - { "/" * - day sortify remove.spaces * - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.name.sort.label} -{ % - % Author or editor-acting-as-author available. - % => Make tentative "short cite with initials" author - % label (L1) of one of the forms - % "Last1 F1" - % "Last1 F1 Last2" - % "Last1 F1 zzzz" ("zzzz" representing et al.) - % => If more than 2 'authors': make label (L2) for 2nd-6th authors - % of one of the forms - % "Last2 Last3" - % "Last2 Last3 Last4" - % "Last2 Last3 Last4 Last5" - % "Last2 Last3 Last4 Last5 Last6" - % "Last2 Last3 Last4 Last5 Last6 zzzz" - % - % Then format year label (L3) of one of the forms: - % "0000" (missing year or explicit 'no date') - % "9999" ('in press') - % year (otherwise; don't use originalyear here yet) - % - % From earlier sorting of titles, we have title number. Convert - % to string, which gives title label (L4) . - % - % Then tentative sorting label (author.year.sort.label) is a - % concatenation of - % L1 - % " " - % L3 - % " " - % L2 - % " " - % L4 - % - % The name field is on top of the stack. - 'field := - % - % numnames is the total number of names contained in field - field num.names$ 'numnames := - % - % Format first author - field #1 sort.name.format format.name$ - % - % Format the second author if there are two, or else "zzzz" = et al. - numnames #1 = - 'skip$ - { numnames #2 = - { % - % Two authors: format second author - field #2 "{ll{}}" format.name$ 's := - s "others" = - { " zzzz" * } % Add "et al."-substitute - { " " * s * } % Add second author - if$ - } - { " zzzz" * } % 3 or more authors: add "et al."-substitute - if$ - } - if$ - " " * % Add spaces - make.tentative.year.sort.label * % Add year (L3). - " " * % Add spaces - % - % Now build up L2 if applicable - numnames #3 < - 'skip$ - { % - % Treat last author slightly differently - numnames name.max > - { name.max 'lastname := - " zzzz" % Push "et al."-substitute on stack - } - { numnames 'lastname := - "" % Push empty string on stack - } - if$ - % - % Names 2 to "last" - 1 - "" % Push empty string on stack - #2 'nameptr := - { nameptr lastname < } - { % Add name no. nameptr - field nameptr "{ll{}}" format.name$ * - " " * - nameptr #1 + 'nameptr := - } - while$ - % - % "Last" author - field lastname "{ll{}}" format.name$ 's := - s "others" = - { "zzzz" * } % Add "et al."-substitute - { s * } % Add last author - if$ - % - swap$ * % Add the previously formatted empty string or - % "et al."-substitute if there are many authors. - * % Add L2 to the earlier labels. - } - if$ - % - " " * % Add spaces - title.number conv.int.to.str * % Add sorted title number (L4). - sortify % Clean up and convert to lowercase - " " * % Add spaces - month.number.day * % Add month and day when available - 'author.year.sort.label := % Assign result to sort label. -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.field.year.sort.label} -{ % - % 'field' acts as first author (L1), subsequent authors - % are empty (L2). - % - % Then format year label (L3) of one of the forms: - % "0000" (missing year or explicit 'no date') - % "9999" ('in press') - % year (otherwise; don't use originalyear here yet) - % - % From earlier sorting of titles, we have title number. Convert - % to string, which gives title label (L4) . - % - % Then tentative sorting label (author.year.sort.label) is a - % concatenation of - % L1 - % " " - % L3 - % " " - % L2 - % " " - % L4 - % - % 'field' is on top of the stack. It is already supposed to be cleaned - % (i.e., sortified and space-removed), so this is already L1. - " " * % Add spaces to L1 - make.tentative.year.sort.label * % Add year (L3). - " " * % Add spaces - " " * % L2 is empty, add spaces - title.number conv.int.to.str * % Add sorted title number (L4). - sortify % Clean up and convert to lowercase - " " * % Add spaces - month.number.day * % Add month and day when available - 'author.year.sort.label := % Assign result to sort label. -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.author.editor.sort.label} -{ author empty$ - { editor empty$ - { % - % Use what has previously been stored in title.sort.label - % as author substitute . - title.sort.label make.field.year.sort.label - } - { editor make.name.sort.label } - if$ - } - { author make.name.sort.label } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.author.sort.label} -{ author empty$ - { % - % Use what has previously been stored in title.sort.label - % as author substitute . - title.sort.label make.field.year.sort.label - } - { author make.name.sort.label } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.tentative.sort.label} -{ % - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % General strategy: - % - % Ordinary situation: author or editor-acting-as-author - % available. - % => Make tentative "short cite with initials" author - % label (L1) of one of the forms - % "Last1 F1" - % "Last1 F1 Last2" - % "Last1 F1 zzzz" ("zzzz" representing et al.) - % => If more than 2 'authors': make label (L2) for 2nd-6th authors - % of one of the forms - % "Last2 Last3" - % "Last2 Last3 Last4" - % "Last2 Last3 Last4 Last5" - % "Last2 Last3 Last4 Last5 Last6" - % "Last2 Last3 Last4 Last5 Last6 zzzz" - % When key is available (overrules author and editor fields): - % => L1 = key, L2 = "" - % No author, editor, and key: define title or substitute as key - % and format as key. - % - % Then format year label (L3) of one of the forms: - % "0000" (missing year or explicit 'no date') - % "9999" ('in press') - % year (otherwise; don't use originalyear here yet) - % - % From earlier sorting of titles, we have title number. Convert - % to string, which gives title label (L4) . - % - % Then tentative sorting label (author.year.sort.label) is a - % concatenation of - % L1 - % " " - % L3 - % " " - % L2 - % " " - % L4 - % - % This can then be sorted, from which it can be derived - % whether initials are necessary, how many names must - % be used for short and full citations, and whether "a"'s and - % "b"'s etc. are necessary behind the year labels. - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % key and firstkey overrule author information - % - firstkey empty$ not - { key empty$ not - { % - % Both key and firstkey available: - % for sorting and checking initials, treat key as last - % name and firstkey as initials. - % - key sortify remove.spaces - " " * - firstkey sortify remove.spaces * - make.field.year.sort.label - } - { firstkey sortify remove.spaces make.field.year.sort.label } - if$ - } - { key empty$ not - { key sortify remove.spaces make.field.year.sort.label } - { % - % No key or firstkey, so find out which field - % to use as author. - % - % Check reference type: - % if result is 1 then possibly editor acts as author - % 2 then editor does not act as author - % 3 then key should have been used - % 0 then unknown reference type - ref.type - duplicate$ #1 = - { pop$ - make.author.editor.sort.label - } - { duplicate$ #2 = - { pop$ - make.author.sort.label - } - { #3 = - { "no key in " cite$ * warning$ - make.author.editor.sort.label - } - { make.author.editor.sort.label } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - % - author.year.sort.label 'sort.key$ := -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.definitive.name.sort.label} -{ % - % Author or editor-acting-as-author available. - % => Make author-with-initials label (L1) of one of the forms - % "Last1 F1 Last2 F2 ... LastN FN" - % "Last1 F1 Last2 F2 ... Last6 F6 zzzz" - % (where N <= 6 is the total number of authors, and - % "zzzz" represents et al. if there are more than 6 authors) - % No author, editor, and key: define title or substitute as sort key. - % - % The name field is on top of the stack. - 'field := - % - % numnames is the total number of names contained in field - field num.names$ 'numnames := - % - % If there are more than 6 authors, only 6 are mentioned. - numnames name.max > - { name.max 'format.num.names := } - { numnames 'format.num.names := } - if$ - % Initialize stack with empty string - "" - % - % Cycle over authors. - #1 'nameptr := - { nameptr format.num.names < } - { % Format author and add spaces - field nameptr sort.name.format format.name$ * - " " * - nameptr #1 + 'nameptr := - } - while$ - % Format last author that must be formatted - field nameptr sort.name.format format.name$ * - % Add et al. if necessary - nameptr numnames < - { " zzzz" * } - 'skip$ - if$ - sortify % Clean up and change case - " " * % Add spaces - year.label * % Add year - " " * % Add spaces - title.number conv.int.to.str * % Add sorted title number - " " * % Add spaces - month.number.day * % Add month and day when available - 'author.year.sort.label := % Assign result to sort label. -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.definitive.field.year.sort.label} -{ % - % 'field' acts as author (L1). - % - % Then format year label (L2) of one of the forms: - % "0000" (missing year or explicit `no date') - % "9999" (`in press') - % year (otherwise; don't use originalyear here yet) - % - % From earlier sorting of titles, we have title number. Convert - % to string, which gives title label (L3) . - % - % Then tentative sorting label (author.year.sort.label) is a - % concatenation of - % L1 - % " " - % L2 - % " " - % L3 - % - % 'field' is on top of the stack. It is already supposed to be cleaned - % (i.e., sortified and space-removed), so this is already L1. - " " * % Add spaces - year.label * % Add year - " " * % Add spaces - title.number conv.int.to.str * % Add sorted title number - " " * % Add spaces - month.number.day * % Add month and day when available - 'author.year.sort.label := % Assign result to sort label. -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.definitive.author.editor.sort.label} -{ author empty$ - { editor empty$ - { % - % Use what has previously been stored in title.sort.label - % as author substitute . - title.sort.label make.definitive.field.year.sort.label - } - { editor make.definitive.name.sort.label } - if$ - } - { author make.definitive.name.sort.label } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.definitive.author.sort.label} -{ author empty$ - { % - % Use what has previously been stored in title.sort.label - % as author substitute . - title.sort.label make.definitive.field.year.sort.label - } - { author make.definitive.name.sort.label } - if$ -} -FUNCTION {make.final.sort.key} -{ ref.type #2 = - { make.definitive.author.sort.label } - { make.definitive.author.editor.sort.label } - if$ - unsorted - { citeorder.sort.label 'sort.key$ := } - { author.year.sort.label 'sort.key$ := } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - { s } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {chop.articles} -{ 's := - "a " #2 - "an " #3 - "the " #4 - s - chop.word - chop.word - chop.word -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {format.sort.title} -{ % - % Remove non-alphanumeric characters and change to lower case . - sortify - % - % Remove "a ", "an ", and "the " from the front . - chop.articles #1 entry.max$ substring$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.sort.title} -{ title empty$ - { text empty$ - { type empty$ - { howpublished empty$ - { note empty$ - { url empty$ - { " " } - { url format.sort.title } - if$ - } - { note format.sort.title } - if$ - } - { howpublished format.sort.title } - if$ - } - { type format.sort.title } - if$ - } - { text format.sort.title } - if$ - } - { title format.sort.title } - if$ - remove.spaces - 'title.sort.label := - title.sort.label 'sort.key$ := -} -FUNCTION {make.title.number} -{ title.sort.label old.label = - { - old.number 'title.number := - } - { - old.number #1 + 'title.number := - title.number 'old.number := - title.sort.label 'old.label := - } - if$ -} -FUNCTION {make.citeorder.number} -{ old.number #1 + 'cite.order := - cite.order 'old.number := - cite.order conv.int.to.str 'citeorder.sort.label := -} - -FUNCTION {last.part.name.format.classic} { "{ll}" } - -FUNCTION {von.junior.name.format.classic} { "{ vv}{, jj}" } - -FUNCTION {last.part.name.format} { "{vv }{ll}" } - -FUNCTION {initials.with.space.name.format} { "{f.}" } - -FUNCTION {von.last.junior.name.format} { "{vv }{ll}{ jj}" } - -FUNCTION {von.junior.name.format} { "{, jj}" } - -FUNCTION {one.complete.name.format} { "{vv }{ll}{, jj}{, ff}" } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {string.length} -{ #0 'pos := - % If the next character exists, i.e., is not empty, - % add 1 to the string length. - % We cannot use empty$ because " " empty$ is true. - { duplicate$ pos #1 + #1 substring$ "" = not } - { pos #1 + 'pos := } - while$ - pop$ pos -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {transform.spaces.and.hyphens} -{ 's := % The original string - s string.length 'len := % Its length (no. of characters) - "" 't := % Initialize the transformed string - #1 'pos := - #0 'brace.level := - % - % while (pos < len) do - % - { pos len < } - { % First, check whether we are at brace level 0 - brace.level #0 = - { - % At least two characters left: check for ". ", ".~", and ".-". - % If so, replace and shift two positions. - s pos #2 substring$ ". " = - s pos #2 substring$ ".~" = or - { t "." * 't := - pos #2 + 'pos := - } - { s pos #2 substring$ ".-" = - { t "\BHBI " * 't := - pos #2 + 'pos := - } - { % neither is true, copy one character and shift one position - t s pos #1 substring$ * 't := - % Check whether we need to increase brace level. - % Note that this is not sophisticated: it does not capture - % \{, \verb+}+, etc. - % Note also that unbalanced braces cause problems. - s pos #1 substring$ "{" = - { brace.level #1 + 'brace.level := } - 'skip$ - if$ - pos #1 + 'pos := - } - if$ - } - if$ - } - { % Not at brace level 0: copy result literally - t s pos #1 substring$ * 't := - % Check whether we need to increase or decrease brace level. - % Note that this is not sophisticated: it does not capture - % \{, \verb+}+, etc. - s pos #1 substring$ "{" = - { brace.level #1 + 'brace.level := } - { s pos #1 substring$ "}" = - { brace.level #1 - 'brace.level := } - 'skip$ - if$ - } - if$ - pos #1 + 'pos := - } - if$ - } - while$ - % - pos len = - { % Last character, copy - t s pos #1 substring$ * 't := - } - { % pos = len + 1, so s ends with ". " or ".-" - % This should not have happened, but make the best out of it. - % Push last two characters of s on the stack, i.e., ". " or ".-". - s len #1 - #2 substring$ - % Remove "\BPBI " or "\BHBI " from t - t text.length$ 'len := % Length of t (no. of characters) - t #1 len #6 - substring$ - % Concatenate and assign to t - swap$ * 't := - } - if$ - % - % Now push the result back on the stack - t -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {format.initials.with.hyphen} -{ % Format initials. - % Call with - % field authornumber format.initials.with.hyphen - % e.g. - % author #1 format.initials.with.hyphen - % Instead of field, a string may also be used. - % - % First, format initials in the default way, retaining spaces - % and hyphens. - initials.with.space.name.format format.name$ - transform.spaces.and.hyphens -} - -FUNCTION {format.last.part.name} -{ % Format a name with last.part.name.format, - % as part of more complicated things. - % Call with - % field authornumber format.last.part.name - % e.g. - % author #1 format.last.part.name - % Instead of field, a string may also be used. - last.part.name.format format.name$ -} - -FUNCTION {format.von.last.junior.name} -{ % Format a name with von.last.junior.name.format, - % for citing or as part of more complicated things. - % Call with - % field authornumber format.von.last.junior.name - % e.g. - % author #1 format.von.last.junior.name - % Instead of field, a string may also be used. - von.last.junior.name.format format.name$ -} - -FUNCTION {format.von.junior.name} -{ % Format a name with von.last.junior.name.format, - % for citing or as part of more complicated things. - % Call with - % field authornumber format.von.junior.name - % e.g. - % author #1 format.von.junior.name - % Instead of field, a string may also be used. - von.junior.name.format format.name$ -} - -FUNCTION {format.cite.initials.name} -{ % Format a name for citing with initials. - % Call with - % field authornumber format.cite.initials.name - % e.g. - % author #1 format.cite.initials.name - % Instead of field, a string may also be used. - % - % First, extract the complete name, format it in the canonical form, - % and push on the stack. - one.complete.name.format format.name$ - % - % Format the initials and push on the stack. - duplicate$ #1 format.initials.with.hyphen - % - % Format the von-last-junior part and push on the stack. - swap$ #1 format.von.last.junior.name - % - % Connect with "~" hyphen (if they're both non-empty). - "~" connect.check -} - -FUNCTION {format.author.name} -{ % Format an author name for the reference list. - % Call with - % field authornumber format.author.name - % e.g. - % author #1 format.author.name - % Instead of field, a string may also be used. - % - % First, extract the complete name, format it in the canonical form, - % and push on the stack. - one.complete.name.format format.name$ - % - % Make two copies of the name, format the last name and push on the stack. - duplicate$ duplicate$ #1 format.last.part.name - % - % Format the initials and push on the stack. - swap$ #1 format.initials.with.hyphen - % - % Connect with last name. - connect.with.comma.check - % - % Format the von-junior part and connect with initials. - swap$ #1 format.von.junior.name "" connect.check -} - -FUNCTION {format.editor.name} -{ % Format a name for the reference list as an editor. - % Call with - % field authornumber format.editor.name - % e.g. - % author #1 format.editor.name - % Instead of field, a string may also be used. - % - format.cite.initials.name -} - -FUNCTION {format.index.name} -{ % Format an author name for the index. - % Call with - % field authornumber format.index.name - % e.g. - % author #1 format.index.name - % Instead of field, a string may also be used. - % - format.author.name -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -FUNCTION {comma.between.two} { "\BCBT {}" } - -FUNCTION {comma.between.names} { ", " } - -FUNCTION {comma.before.last} { "\BCBL {}" } - -FUNCTION {dots.before.last} { "\BDBL {}" } - -FUNCTION {and.before.last} { "\ \BBA {} " } - -FUNCTION {no.and.before.last} { " " } - -FUNCTION {et.al.string.cite} { "\ \protect \BOthers {.}" } - -FUNCTION {et.al.string} { "\ \BOthers {.}" } - -FUNCTION {et.al.string.period} { "\ \BOthersPeriod {.}" } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {add.name.index} -{ % - % - make.index - { "%" * write$ newline$ - % Check for corporate author - field is.bibcorporate - { "\corporateAX{" } - { "\AX{" } - if$ - write$ - field nameptr sort.name.format format.name$ sortify write$ newline$ - "@" write$ - field nameptr format.index.name - "}%" * write$ newline$ - } - { "%" * write$ newline$ } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.name.cite.label} -{ 'field := - 'format.num.names := - % - field num.names$ 'numnames := % numnames is the total number of names - % contained in field - % - % It is implicit in the APA manual that if "et al." would refer - % to exactly one author, then this author should be named - % instead of "et al." - % - format.num.names numnames #1 - = - { numnames 'format.num.names := } - 'skip$ - if$ - % - % Format first author: with or without initials - % - #1 'nameptr := - cite.initials #1 = - { field nameptr format.cite.initials.name } - { field nameptr cite.name.format format.name$ } - if$ - add.name.index % Add index entry when desired. - % - numnames #1 = - 'skip$ - { format.num.names #1 = - { % - % First author et al. - % - et.al.string.cite write$ - } - { numnames #2 = - { % - % Given that format.num.names > 1, it is 2. - % Format second author. - % - #2 'nameptr := - field nameptr cite.name.format format.name$ 's := - % - % Check if 2nd author is explicit "others". - % If so, insert "et al." string. - % - s "others" = - { et.al.string.cite write$ } % First et al. - { % - % First \& Second - % - and.before.last write$ - s - add.name.index % Add index entry when desired. - } - if$ - } - { % - % 3 or more names, 2 or more must be cited - % - % for nameptr := 2 to format.num.names - 1 do - % - #2 'nameptr := - { nameptr format.num.names < } - { % - % Put comma between consecutive authors - % - comma.between.names write$ - % - % Format and add next author - % - field nameptr cite.name.format format.name$ - add.name.index % Add index entry when desired. - % - % Move to next author - % - nameptr #1 + 'nameptr := - } - while$ - % - % nameptr = format.num.names - % Format this author. - % - field nameptr cite.name.format format.name$ 's := - % - format.num.names numnames = - { % - % This is also the last author. Add (optional) comma. - % - comma.before.last write$ - % - % Check if this author is explicit "others". - % If so, insert "et al." string. - % - s "others" = - { et.al.string.cite write$ } - { and.before.last write$ - s - add.name.index % Add index entry when desired. - } - if$ - } - { % - % This is not the last author. - % Add comma, author name, and "et al." - % - comma.between.names write$ - s - add.name.index % Add index entry when desired. - % - comma.before.last et.al.string.cite * write$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.title.cite.label} -{ % - % Formatting: check if formatted as article title or - % as book title, and insert this formatting. - % - is.atype - { "\APACciteatitle {" } - { "\APACcitebtitle {" } - if$ - % - title empty$ - { text empty$ - { type empty$ - { howpublished empty$ - { note empty$ - { url empty$ - { cite$ } - { url } - if$ - } - { note } - if$ - } - { howpublished } - if$ - } - { type } - if$ - } - { text } - if$ - } - { title } - if$ - % - % Connect with formatting. - % - * "}" * - % - % Write to output - % - write$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.author.editor.cite.label} -{ author empty$ - { editor empty$ - { % - % No author or editor: - % Use title or other description as citation label. - % - make.title.cite.label - "}{%" write$ newline$ - make.title.cite.label - } - { cite.num.names.full editor make.name.cite.label - "}{%" write$ newline$ - cite.num.names.short editor make.name.cite.label - } - if$ - } - { cite.num.names.full author make.name.cite.label - "}{%" write$ newline$ - cite.num.names.short author make.name.cite.label - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.author.cite.label} -{ author empty$ - { % - % No author: - % Use title or other description as citation label. - % - make.title.cite.label - "}{%" write$ newline$ - make.title.cite.label - } - { cite.num.names.full author make.name.cite.label - "}{%" write$ newline$ - cite.num.names.short author make.name.cite.label - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.definitive.year.supplement} -{ % - % Add "a", "b", etc. when necessary. - % - add.to.year #0 = - { "" } - { "{\protect " - year empty$ - { "\BCntND " * } - { year "\bibnodate" = - year "l" change.case$ "no date" = or - year "l" change.case$ "n.d." = or - { "\BCntND " * } - { year "\BIP" = - year "l" change.case$ "in press" = or - year "l" change.case$ "forthcoming" = or - { "\BCntIP " * } - { "\BCnt " * } - if$ - } - if$ - } - if$ - "{" * add.to.year int.to.str$ * "}}" * - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {protect.year} -{ year empty$ - { "{\protect \bibnodate {}}" } - { year "\bibnodate" = - year "l" change.case$ "no date" = or - year "l" change.case$ "n.d." = or - { "{\protect \bibnodate {}}" } - { year "\BIP" = - year "l" change.case$ "in press" = or - year "l" change.case$ "forthcoming" = or - { "{\protect \BIP {}}" } - { year } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.definitive.year.label} -{ "{\protect \APACyear {" - originalyear empty$ - { protect.year } - { originalyear "\bibnodate" = % date of original publication unknown - originalyear "l" change.case$ "no date" = or - originalyear "l" change.case$ "n.d." = or - { translator empty$ - { protect.year } - { "{\protect \BTRANSL {}}~" protect.year * } - if$ - } - { year empty$ - { originalyear "/{\protect \bibnodate {}}" * } % 1923/n.d. - { originalyear year = - { protect.year } - { originalyear "/" * protect.year * } % 1923/1961 - if$ - } - if$ - } - if$ - } - if$ - * "}}%" * write$ newline$ - % - % Add "a", "b", etc. when necessary. - % - "{\protect \APACexlab {" "}}" - make.definitive.year.supplement enclose.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.cite.labels} -{ newline$ - % - % Write a few lines for testing purposes. - % - test - { "\bibitem [] {} \fullciteA {" cite$ * "}" * write$ newline$ - "\bibitem [] {} \citeA {" cite$ * "}" * write$ newline$ - } - 'skip$ - if$ - % - "\bibitem [\protect \citeauthoryear {%" write$ newline$ - % - % When key or firstkey is available, this takes precedence. - % - firstkey empty$ not - { % - % Full cite: firstkey. - % - firstkey write$ - "}{%" write$ newline$ - % - % Short cite: if key is not empty and cite.initials is 0, - % then key, else firstkey. - % - cite.initials #0 = - key empty$ not - and - { key } - { firstkey } - if$ - write$ - } - { key empty$ not - { % - % No firstkey, but key available: - % Both full and short labels are key. - % - key write$ - "}{%" write$ newline$ - key write$ - } - { % No key or firstkey, so find out which field - % to use as author. - % - % Check reference type: - % if result is 1 then possibly editor acts as author - % 2 then editor does not act as author - % 3 then key should have been used - % 0 then unknown reference type - ref.type #2 = - { make.author.cite.label } - { make.author.editor.cite.label } - if$ - } - if$ - } - if$ - "}{%" write$ newline$ - % - % Make year label that's used for citations - % - make.definitive.year.label write$ - "}]{%" write$ newline$ - cite$ write$ - "} " write$ newline$ - % author.year.sort.label write$ newline$ % for testing purposes - % year.label write$ newline$ % for testing purposes - % - % If the item is used in a meta-analysis, indicate this with - % a star. - % - "\APACinsertmetastar {%" write$ newline$ - cite$ write$ - "}%" write$ newline$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {editor.postfix} -{ editor num.names$ #1 > - { "(\BEDS)" } - { "(\BED)" } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {editor.trans.postfix} -{ editor num.names$ #1 > - { "(\BEDS{} \BAnd{} \BTRANSS)" } - { "(\BED{} \BAnd{} \BTRANS)" } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % "(Trans.)" postfix - % translator must not be empty - % -FUNCTION {trans.postfix} -{ translator num.names$ #1 > - { "(\BTRANSS)" } - { "(\BTRANS)" } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {authors.editors.reflist.apa5} -{ 'field := - 'dot := - % - field num.names$ 'numnames := % numnames is the total number of names - % contained in field - numnames 'format.num.names := % Format all authors - format.num.names name.max > % Unless this exceeds the maximum of 6. - { dot - { name.max 'format.num.names := } % Format 6 authors - { cite.num.names.full 'format.num.names := } % Format 1 editor - if$ - } - 'skip$ - if$ - % - % Enclose authors in APACrefauthors environment to allow crude style - % options in \LaTeX. - "\begin{APACrefauthors}%" - write$ newline$ - % - % It is kind of explicit in the APA manual that if "et al." would - % refer to exactly one author (the 7th), then this author should - % still be replaced by "et al.", unlike with citations. - % So format.num.names is not adapted. - % - % Format first author - % - #1 'nameptr := - field nameptr format.author.name - % - % Add period if required and if this is the only author. - % - numnames #1 = - dot - and - { add.period$ } - 'skip$ - if$ - add.name.index % Add index entry when desired. - % - numnames #1 = - 'skip$ - { format.num.names #1 = - { % - % First author et al. - % - comma.between.two - % - % Add period if required. - % - dot - { et.al.string.period * } - { et.al.string * } - if$ - write$ - } - { numnames #2 = - { % - % Given that format.num.names > 1, it is 2. - % - comma.between.two write$ - % - % Format second author. - % - #2 'nameptr := - field nameptr format.author.name 's := - % - % Check if 2nd author is explicit "others". - % If so, insert "et al." string. - % - s "others" = - { % - % First et al. - % Add period if required. - % - dot - { et.al.string.period } - { et.al.string } - if$ - write$ - } - { % - % First \& Second - % - and.before.last write$ - % - % Add period if required. - % - dot - { s add.period$ } - { s } - if$ - add.name.index % Add index entry when desired. - } - if$ - } - { % - % 3 or more names, 2 or more must be cited - % - % for nameptr := 2 to format.num.names - 1 do - % - #2 'nameptr := - { nameptr format.num.names < } - { % - % Put comma between consecutive authors - % - comma.between.names write$ - % - % Format and add next author - % - field nameptr format.author.name - add.name.index % Add index entry when desired. - % - % Move to next author - % - nameptr #1 + 'nameptr := - } - while$ - % - % nameptr = format.num.names - % Format this author. - % - field nameptr format.author.name 's := - % - format.num.names numnames = - { % - % This is also the last author. Add (optional) comma. - % - comma.before.last write$ - % - % Check if this author is explicit "others". - % If so, insert "et al." string. - % - s "others" = - { % - % Add period if required. - % - dot - { et.al.string.period } - { et.al.string } - if$ - write$ - } - { and.before.last write$ - % - % Add period if required. - % - dot - { s add.period$ } - { s } - if$ - add.name.index % Add index entry when desired. - } - if$ - } - { % - % This is not the last author. - % Add comma, author name, and "et al." - % - comma.between.names write$ - s - add.name.index % Add index entry when desired. - % - comma.before.last - % - % Add period if required. - % - dot - { et.al.string.period * } - { et.al.string * } - if$ - write$ - } - if$ - } - if$ - } - if$ - } - if$ - % - % End APACrefauthors environment. - "\end{APACrefauthors}%" - write$ newline$ -} - -FUNCTION {authors.reflist.apa6} -{ 'field := - 'dot := - field num.names$ 'numnames := - numnames #7 > - { #7 'format.num.names := } - { numnames 'format.num.names := } - if$ - "\begin{APACrefauthors}%" - write$ newline$ - #1 'nameptr := - field nameptr format.author.name - numnames #1 = - { dot - { %add.period$ -} - 'skip$ - if$ - add.name.index - } - { add.name.index - numnames #2 = - { comma.between.two write$ - #2 'nameptr := - field nameptr format.author.name 's := - s "others" = - { "`others' not consistent with 6th ed. of the APA Manual" - warning$ - dot - { et.al.string.period } - { et.al.string } - if$ - write$ newline$ - } - { and.before.last write$ - dot - { s add.period$ } - { s } - if$ - add.name.index - } - if$ - } - { %% for nameptr := 2 to format.num.names - 1 do - #2 'nameptr := - { nameptr format.num.names < } - { comma.between.names write$ - field nameptr format.author.name - add.name.index - nameptr #1 + 'nameptr := - } - while$ - field numnames format.author.name 's := - format.num.names numnames = - { comma.before.last write$ - s "others" = - { "`others' not consistent with 6th ed. of the APA " - "Manual" * - warning$ - dot - { et.al.string.period } - { et.al.string } - if$ - write$ - } - { no.and.before.last write$ - dot - { s add.period$ } - { s } - if$ - add.name.index - } - if$ - } - { dots.before.last write$ - s - add.name.index - } - if$ - } - if$ - } - if$ - "\end{APACrefauthors}%" - write$ newline$ -} - -FUNCTION {format.author.names} -{ 'field := - 'dot := - dot - { dot field authors.reflist.apa6 } - { dot field authors.editors.reflist.apa5 } - if$ -} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {format.authors} -{ #1 author format.author.names } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {format.editors.as.authors} -{ #0 editor format.author.names - "\ " editor.postfix * add.period$ write$ newline$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {format.ed.trans.as.authors} -{ #0 editor format.author.names - "\ " editor.trans.postfix * add.period$ write$ newline$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {format.editor.names} -{ 'field := - % - field num.names$ 'numnames := % numnames is the total number of names - % contained in field - numnames 'format.num.names := % Format all authors - format.num.names name.max > % Unless this exceeds the maximum of 6. - { #1 'format.num.names := } % Then it becomes 1 (First et al.) - 'skip$ - if$ - % - % Format first editor - % - field #1 format.editor.name - % - numnames #1 = - 'skip$ - { format.num.names #1 = - { et.al.string * } % First editor et al., no comma. - { numnames #2 = - { % - % Given that format.num.names > 1, it is 2. - % No comma. Format second editor. - % - field #2 format.editor.name 's := - % - % Check if 2nd editor is explicit "others". - % If so, insert "et al." string. - % - s "others" = - { et.al.string * } % First et al. - { and.before.last * s * } % First \& Second - if$ - } - { % - % 3 or more names, 2 or more must be cited - % - % for nameptr := 2 to format.num.names - 1 do - % - #2 'nameptr := - { nameptr format.num.names < } - { % - % Put comma between consecutive editors - % - comma.between.names * - % - % Format and add next editor - % - field nameptr format.editor.name * - % - % Move to next editor - % - nameptr #1 + 'nameptr := - } - while$ - % - % nameptr = format.num.names - % Format this editor. - % - field nameptr format.editor.name 's := - % - format.num.names numnames = - { % - % This is also the last editor. Add (optional) comma. - % - comma.before.last * - % - % Check if this editor is explicit "others". - % If so, insert "et al." string. - % - s "others" = - { et.al.string * } - { and.before.last * s * } - if$ - } - { % - % This is not the last editor. - % Add comma, editor name, and "et al." - % - comma.between.names * s * - comma.before.last * et.al.string * - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format editors in case editors do not act as authors - % (such as reference to chapter in edited book) - % - % L. W. Poon (Ed.) (1 editor) - % or - % A. S. Gurman \& D. P. Kniskern (Eds.) (2 editors) - % or - % L. Poon, A. Jones, \& D. P. Smith (Eds.) (>2 editors) - % - % editor must not be empty - % -FUNCTION {format.editors.in.line} -{ editor format.editor.names - editor.postfix connect.with.space.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format editors in case editors are also translators - % and do not act as authors - % (such as reference to chapter in edited book - % of translated articles) - % - % L. W. Poon (Ed. and Trans.) (1 editor) - % or - % A. S. Gurman \& D. P. Kniskern (Eds. and Trans.) (2 editors) - % or - % L. Poon, A. Jones, \& D. P. Smith (Eds. and Trans.) (>2 editors) - % - % editor must not be empty - % -FUNCTION {format.editors.trans.in.line} -{ editor format.editor.names - editor.trans.postfix connect.with.space.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format translators in case translators act as editors - % (such as reference to chapter in translated book) - % - % L. W. Poon (Trans.) (1 translator) - % or - % A. S. Gurman \& D. P. Kniskern (Trans.) (2 translators) - % or - % L. Poon, A. Jones, \& D. P. Smith (Trans.) (>2 translators) - % - % translator must not be empty - % -FUNCTION {format.translators.in.line} -{ translator format.editor.names - trans.postfix connect.with.space.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format translators in case translator does not act as editor - % (such as reference to translated book) - % - % L. Solotaroff, Trans. - % -FUNCTION {format.translators.in.paren.check} -{ translator empty$ - { "" } - { translator format.editor.names - translator num.names$ #1 > - { ", \BTRANSS{}" * } - { ", \BTRANS{}" * } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format editors and translators in case neither act as editor - % (such as reference to edited or translated book with a - % a single author) - % - % L. Solotaroff, Ed. - % L. Solotaroff, Ed. \& Trans. - % L. Solotaroff, Trans. - % L. Solotaroff, Ed. \& S. Prokofieff, Trans. - % -FUNCTION {format.editors.translators.in.paren.check} -{ editor empty$ - { translator empty$ - { "" } - { translator format.editor.names - translator num.names$ #1 > - { ", \BTRANSS{}" * } - { ", \BTRANS{}" * } - if$ - } - if$ - } - { editor format.editor.names - editor num.names$ #1 > - { ", \BEDS{}" * } - { ", \BED{}" * } - if$ - translator empty$ - 'skip$ - { editor translator = - { editor num.names$ #1 > - { " \BAnd{} \BTRANSS" * } - { " \BAnd{} \BTRANS" * } - if$ - } - { " \BAnd{} " * - translator format.editor.names * - translator num.names$ #1 > - { ", \BTRANSS{}" * } - { ", \BTRANS{}" * } - if$ - } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % translator of article - % -FUNCTION {format.atrans.check} -{ format.translators.in.paren.check parenthesize.check } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format "In editor (Ed.), " - % -FUNCTION {format.in.editors} -{ "\BIn{} " - editor empty$ - 'skip$ - { format.editors.in.line * ", " * } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format "In translator (Trans.)," - % -FUNCTION {format.in.trans} -{ "\BIn{} " - translator empty$ - 'skip$ - { format.translators.in.line * ", " * } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format "In editor (Ed. and Trans.)" - % or "In editor (Ed.)" if editor not equal to translator - % -FUNCTION {format.in.editors.trans} -%{ "\BIn{} " Commented by SPI -{ " " - editor empty$ - { translator empty$ - 'skip$ - { format.translators.in.line * ", " * } - if$ - } - { translator empty$ - { format.editors.in.line * } - { editor translator = - { format.editors.trans.in.line * } - { format.editors.in.line * } - if$ - } - if$ - ", " * - } - if$ -} - -FUNCTION {in.format.in.editors.trans} -{ "\BIn{} " - editor empty$ - { translator empty$ - 'skip$ - { format.translators.in.line * ", " * } - if$ - } - { translator empty$ - { format.editors.in.line * } - { editor translator = - { format.editors.trans.in.line * } - { format.editors.in.line * } - if$ - } - if$ - ", " * - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {format.year.check} -{ "\APACrefYear{" - protect.year * - % - % Add "a", "b", etc. when necessary. - % - make.definitive.year.supplement * - "}" * -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {format.year.month.day.check} -{ "\APACrefYearMonthDay{" - protect.year * - % - % Add "a", "b", etc. when necessary. - % - make.definitive.year.supplement * - "}{" * - % - % Add month and day when present. - % - month empty$ - 'skip$ - { month * } - if$ - "}{" * - day empty$ - 'skip$ - { day * } - if$ - "}" * -} -FUNCTION {format.year.nomonth.day.check} -{ "\APACrefYearMonthDay{" - protect.year * - % - % Add "a", "b", etc. when necessary. - % - make.definitive.year.supplement * - "}{" * - % - % Add month and day when present. - % - month empty$ - 'skip$ - { } - if$ - "}{" * - day empty$ - 'skip$ - { day * } - if$ - "}" * -} - -FUNCTION {format.atitle.no.dot} -{ "{\BBOQ}" swap$ - "{\BBCQ}" swap$ - duplicate$ empty$ - 'skip$ - { duplicate$ - % Two arguments: Title twice: (1) don't change case; (2) change case - "\APACrefatitle {" swap$ * "} {" * swap$ - "t" change.case$ - * "}" * - } - if$ - enclose.check -} - -FUNCTION {format.atitle.dot} -{ "{\BBOQ}" swap$ - "{\BBCQ}" swap$ - duplicate$ empty$ - 'skip$ - { duplicate$ - % Two arguments: Title twice: (1) don't change case; (2) change case - "\APACrefatitle {" swap$ * "} {" * swap$ - "t" change.case$ - * "}" * add.period$ - } - if$ - enclose.check -} - -FUNCTION {format.atitle.connect} -{ swap$ - duplicate$ empty$ - { pop$ - format.atitle.dot - } - { swap$ - format.atitle.no.dot - swap$ connect.with.space.check - add.period$ - } - if$ -} - -FUNCTION {format.btitle.no.dot} -{ duplicate$ empty$ - { pop$ - "" - } - { duplicate$ - % Two arguments: Title twice: (1) don't change case; (2) change case - "\APACrefbtitle {" swap$ * "} {" * swap$ - "t" change.case$ - * "}" * - } - if$ -} - -FUNCTION {format.btitle.dot} -{ duplicate$ empty$ - { pop$ - "" - } - { add.period$ format.btitle.no.dot } - if$ -} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % title of book and similar - % field must be on top of stack - % second element on stack must be connected: - % if that is empty, then btitle.dot - % else btitle.no.dot, connect, and add period - % -FUNCTION {format.btitle.connect} -{ swap$ - duplicate$ empty$ - { pop$ - format.btitle.dot - } - { swap$ - format.btitle.no.dot - swap$ connect.with.space.check - add.period$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % title of book and similar - % field must be on top of stack - % second element on stack must be connected - % -FUNCTION {format.btitle.connect.no.dot} -{ swap$ - duplicate$ empty$ - { pop$ - format.btitle.no.dot - } - { swap$ - format.btitle.no.dot - swap$ connect.with.space.check - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format englishtitle (of nonenglish article, etc.) - % -FUNCTION {format.aetitle.check} -{ englishtitle empty$ - { "" } - { % Two arguments: Title twice: (1) don't change case; (2) change case - "\APACrefaetitle {" englishtitle * "} {" * - englishtitle "t" change.case$ * "}" * - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format englishtitle (of nonenglish book, etc.) - % -FUNCTION {format.betitle.check} -{ englishtitle empty$ - { "" } - { % Two arguments: Title twice: (1) don't change case; (2) change case - "\APACrefbetitle {" englishtitle * "} {" * - englishtitle "t" change.case$ * "}" * - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format type (of article, etc.) - % -FUNCTION {format.atype.check} -{ type bracket.check } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format title and englishtitle (of article, etc.) - % -FUNCTION {format.atitle.check} -{ format.aetitle.check - title format.atitle.connect -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format title, englishtitle, and type - % (of article, etc.) - % -FUNCTION {format.atitle.type.check} -{ format.aetitle.check - format.atype.check connect.with.space.check - title format.atitle.connect -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format title, englishtitle, - % and translator (of article, etc.) - % -FUNCTION {format.atitle.trans.check} -{ format.aetitle.check - format.atrans.check connect.with.space.check - title format.atitle.connect -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format title, englishtitle, type, - % and translator (of article, etc.) - % -FUNCTION {format.atitle.type.trans.check} -{ format.aetitle.check - format.atype.check connect.with.space.check - format.atrans.check connect.with.space.check - title format.atitle.connect -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format journal, volume, number and pages - % call with - % formatted.pages format.journal.vol.num.pages.check - % -FUNCTION { format.journal.vol.num.pages.check } -{ "journal" journal warning.if.empty - duplicate$ empty$ - journal empty$ and - volume empty$ and - number empty$ and - { pop$ "" } - { "\APACjournalVolNumPages{" journal "" connect.check - "}{" * volume "" connect.check - "}{" * number "" connect.check - "}{" * swap$ "" connect.check - ",}" * - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % volume of book, checks whether - % "Volume" or "Volumes" - % - % call with - % field format.bvolume.check - % -FUNCTION {format.bvolume.check} -{ duplicate$ empty$ - 'skip$ - { duplicate$ multi.result.check - { "\BVOLS" swap$ tie.or.space.connect } - { "\BVOL" swap$ tie.or.space.connect } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % edition of book, must not be empty - % call with - % field format.edition.check - % -FUNCTION {format.edition.check} -{ duplicate$ empty$ - 'skip$ - { "\PrintOrdinal{" swap$ * "}" * - "\BEd" connect.with.space.check - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % volume and edition of book - % -FUNCTION {format.bvol.edition.check} -{ edition format.edition.check - volume format.bvolume.check - connect.with.comma.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % volume and edition of book - % -FUNCTION {format.bvol.edition} -{ format.bvol.edition.check - parenthesize.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % volume and edition and translator of translated book - % -FUNCTION {format.bvol.edition.trans} -{ format.bvol.edition.check - format.translators.in.paren.check connect.with.semicolon.check - parenthesize.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % volume, edition, editor, and translator of (translated) book - % -FUNCTION {format.bvol.edition.editor.trans} -{ format.bvol.edition.check - format.editors.translators.in.paren.check connect.with.semicolon.check - parenthesize.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % formats pages by first checking if 1 or more pages - % and prefixing pages with "p." or "pp." (these strings - % are given in the commands \BPG and \BPGS, respectively), - % whichever is applicable, and do a tie or space connect - % - % call with - % field format.bpages.check - % -FUNCTION {format.bpages.check} -{ duplicate$ empty$ - 'skip$ - { duplicate$ multi.result.check - { "\BPGS" swap$ tie.or.space.connect } - { "\BPG~" swap$ * } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % formats chapters by first checking if 1 or more chapters - % and prefixing pages with "chap." (this string - % is given in the commands \BCHAP and \BCHAPS, respectively), - % whichever is applicable, and do a tie or space connect - % - % call with - % field format.bchapter.check - % -FUNCTION {format.bchapter.check} -{ duplicate$ empty$ - 'skip$ - { duplicate$ multi.result.check - { "\BCHAPS" swap$ tie.or.space.connect } - { "\BCHAP" swap$ tie.or.space.connect } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % volume, edition, and pages or chapter of article in book etc. - % -FUNCTION {format.bvol.edition.pages} -{ format.bvol.edition.check - pages empty$ - { chapter format.bchapter.check connect.with.comma.check } - { pages format.bpages.check connect.with.comma.check } - if$ - parenthesize.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % title, volume, edition of book - % -FUNCTION {format.btitle.vol.edition} -{ format.betitle.check - format.bvol.edition connect.with.space.check - title format.btitle.connect.no.dot -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % title, volume, edition, and translator of book - % -FUNCTION {format.btitle.vol.edition.trans} -{ format.betitle.check - format.bvol.edition.trans connect.with.space.check - title format.btitle.connect.no.dot -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % title, volume, edition, editor, and translator of book - % -FUNCTION {format.btitle.vol.edition.editor.trans} -{ format.betitle.check - format.bvol.edition.editor.trans connect.with.space.check - title format.btitle.connect.no.dot -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format address and publisher of book etc. - % - % New York: Wiley - % or - % Wiley (if address empty) - % or - % New York (if publisher empty) - % -FUNCTION {format.address.publisher} -{ % - % If publisher = author or publisher = "author" or publisher = "Author" - % then hand over the final choice how to format this to \LaTeX. - % (I could imagine similar code for editors, but the APA manual does - % not mention it and then we'd have to check whether the editor is in - % the author position, so let's keep it simple until someone complains.) - % - author empty$ - publisher empty$ or - { publisher "\APACaddressPublisher{" } - { author publisher = - "author" publisher = or - "Author" publisher = or - { author "\APACaddressPublisherEqAuth{" } - { publisher "\APACaddressPublisher{" } - if$ - } - if$ - address "" connect.check "}{" * - % Recover publisher that was pushed onto the stack previously. - swap$ "" connect.check "}" * -} - -FUNCTION {format.address.publisher.check} -{ publisher empty$ - address empty$ - and - 'skip$ - { - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.address.publisher - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format number as in reports: No. 2017 - % call with - % field format.rnumber.check - % -FUNCTION {format.rnumber.check} -{ duplicate$ empty$ - 'skip$ - { duplicate$ multi.result.check - { "\BNUMS" swap$ tie.or.space.connect } - { "\BNUM" swap$ tie.or.space.connect } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format type and number of a standalone item - % call with - % format.type.number - % -FUNCTION { format.type.number } -{ type empty$ - { type.2 } - { type } - if$ - number empty$ - { bracket.check } - { number format.rnumber.check connect.with.space.check - parenthesize.check - } - if$ -} - -FUNCTION {format.howpublished} -{ howpublished empty$ - 'skip$ - { % clear the stack - duplicate$ empty$ - 'pop$ - { output.dot.new.block } - if$ - "\APAChowpublished {" howpublished * "}" * - } - if$ -} -FUNCTION {output.howpublished} -{ howpublished empty$ - 'skip$ - { "\APAChowpublished {" howpublished * "}" * - output.dot.new.block - } - if$ -} -FUNCTION {howpublished.block} -{ howpublished empty$ - 'skip$ - { start.new.block - "\APAChowpublished {" howpublished * "}" * - output.dot.end.block - } - if$ -} -FUNCTION {begin.end.url.env} -{ "\begin{APACrefURL} " - lastchecked empty$ - { urldate empty$ - 'skip$ - { "[{" * urldate * "}]" * } - if$ - } - { "[{" * lastchecked * "}]" * } - if$ - " \end{APACrefURL} " -} - -FUNCTION {begin.end.doi.env} -{ "\begin{APACrefDOI} " - " \end{APACrefDOI} " -} - -FUNCTION {begin.end.msg.env} -{ "\begin{APACrefURLmsg} " - " \end{APACrefURLmsg} " -} -FUNCTION {format.url} -{ type.2 empty$ - { begin.end.url.env } - { type.2 "\bibmessage" = - { begin.end.msg.env } - { begin.end.url.env } - if$ - } - if$ -%%"\url{" url * "}" * - "{" url * "}" * - enclose.check -} -FUNCTION {url.block} -{ doi empty$ - { url empty$ - 'skip$ - { start.new.block - format.url - output.end.block - } - if$ - } - 'skip$ - if$ -} -FUNCTION {format.doi} -{ begin.end.doi.env - "\doi{" doi * "}" * - enclose.check -} -FUNCTION {doi.block} -{ doi empty$ - 'skip$ - { start.new.block - format.doi - output.end.block - } - if$ -} -FUNCTION {format.note} -{ "\APACrefnote{" "}" note enclose.check } -FUNCTION {note.block} -{ note empty$ - 'skip$ - { start.new.block - format.note - output.end.block - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format original year of publication and note - % (reprint or translation) - % -FUNCTION {format.orig.year.note} -{ originalyear empty$ - { format.note } - { "\APACorigyearnote{" - originalyear "" connect.check "}{" * - note "" connect.check "}" * - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format original journal of publication and note - % (reprint or translation) - % -FUNCTION {format.orig.journal.note} -{ "\APACorigjournalnote{" - originalyear "" connect.check "}{" * - originaljournal "" connect.check "}{" * - originalvolume "" connect.check "}{" * - originalnumber "" connect.check "}{" * - originalpages "" connect.check "}{" * - note "" connect.check "}" * -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format original book of publication and note - % (reprint or translation) - % -FUNCTION {format.orig.book.note} -{ "\APACorigbooknote{" originalyear "" connect.check "}{" * - % - originaleditor empty$ - 'skip$ - { originaleditor num.names$ #1 > - { "\APACorigEDS {" * originaleditor format.editor.names * "}" * } - { "\APACorigED {" * originaleditor format.editor.names * "}" * } - if$ - } - if$ - % - "}{" * - originalbooktitle format.btitle.no.dot "" connect.check "} {" * - originaledition format.edition.check "" connect.check "} {" * - originalvolume format.bvolume.check "" connect.check "} {" * - originalpages format.bpages.check "" connect.check "} {" * - originaladdress "" connect.check "} {" * - originalpublisher "" connect.check "} {" * - note "" connect.check "}" * -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format information about original publication of reprint - % and format optional note - % -FUNCTION {format.orig.note} -{ originaljournal empty$ - { originalbooktitle empty$ - { note empty$ - { originalyear empty$ - 'skip$ - { originalyear "\bibnodate" = - originalyear "l" change.case$ "no date" = or - originalyear "l" change.case$ "n.d." = or - 'skip$ - { output.new.block - format.orig.year.note - } - if$ - } - if$ - } - { output.new.block - format.orig.year.note - } - if$ - } - { output.new.block - format.orig.book.note - } - if$ - } - { output.new.block - format.orig.journal.note - } - if$ -} -FUNCTION {fin.entry} -{ %doi empty$ - % 'skip$ - % { output.new.block - % format.doi - % } - % if$ - output.end.block - "\PrintBackRefs{\CurrentBib}" write$ newline$ - test - { "\vspace{\baselineskip}" write$ newline$ } - 'skip$ - if$ -} -FUNCTION {fin.entry.2} -{ doi.block - "\PrintBackRefs{\CurrentBib}" write$ newline$ - test - { "\vspace{\baselineskip}" write$ newline$ } - 'skip$ - if$ -} - -FUNCTION {format.archive} -{ - archivePrefix empty$ - { "" } - { archivePrefix ":" *} - if$ -} - -FUNCTION {format.primaryClass} -{ - primaryClass empty$ - { "" } - { " {[" primaryClass * "]}" *} - if$ -} - -FUNCTION {format.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - { "{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {format.softmisc.archive} -{ - archivePrefix empty$ - { "" } - { "" } - if$ -} - -FUNCTION {format.softmisc.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {periodical} -{ - author empty$ - % - % no author: possibly special issue with editors as authors - % (APA manual, ex. 11, p. 121) - % - { editor empty$ - % - % no author or editor: title serves as author. - % title formatted as article title (APA manual not consistent in this, - % compare statement on p. 119: ``treat as book title'' and - % example 8, p. 121: no underlining => article title) - % - { format.atitle.type.trans.check output.new.block - % - % now formatted date on top of stack - % - output.dot.new.block - } - % - % format editor and year, and check if year is present - % format article title and check if title or type present - % - { format.editors.as.authors start.new.block - % - % now formatted date on top of stack - % - output.dot.new.block - format.atitle.type.trans.check output.new.block - } - if$ - } - % - % format author and year, and check if year is present - % format article title and check if title or type present - % - { format.authors start.new.block - % - % now formatted date on top of stack - % - output.dot.new.block - format.atitle.type.trans.check output.new.block - } - if$ - % - % format journal name, volume and issue number, and pages - % and check if journal not empty - % - format.journal.vol.num.pages.check -% output.new.block - doi empty$ - 'skip$ - { output.new.block - format.doi - } - if$ - % - % if not empty, insert howpublished. - % (used if article is retrieved from the internet) - % -% format.howpublished add.period$ - % - % format url - % - url empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.url - } - if$ - % - % possible reprint and optional note - % - format.orig.note - output.new.block - format.eprint - output.new.block - format.primaryClass - fin.entry - } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % journal article - % -FUNCTION {article} -{ pages format.year.month.day.check periodical } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % magazine article - % -FUNCTION {magazine} -{ pages format.year.month.day.check periodical } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % newspaper article - % -FUNCTION {newspaper} -{ pages format.bpages.check format.year.month.day.check periodical } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % (translation of) entire book - % -FUNCTION {book} -{ % - % author or editor, - % year, title, englishtitle, translator - % - author empty$ - % - % no author: possibly edited book with editors as authors - % - { editor empty$ - % - % no author or editor: title serves as author. - % title formatted as book title - % - { format.btitle.vol.edition.trans - format.type.number connect.with.space.check - output.dot.new.block - format.year.check add.period$ - } - % - % format editor and year, and check if year is present - % format booktitle, volume, and edition and check if title present - % - { translator empty$ - { format.editors.as.authors start.new.block - format.year.check output.dot.new.block - format.btitle.vol.edition - } - % - % format translator correctly - % - { translator editor = - not - { format.editors.as.authors start.new.block - format.year.check output.dot.new.block - format.btitle.vol.edition.trans - } - { format.ed.trans.as.authors start.new.block - format.year.check output.dot.new.block - format.btitle.vol.edition - } - if$ - } - if$ - format.type.number connect.with.space.check - add.period$ - } - if$ - } - % - % format author and year, and check if year is present - % format booktitle, volume, and edition and check if title present - % - { format.authors start.new.block - format.year.check output.dot.new.block - format.btitle.vol.edition.editor.trans - format.type.number connect.with.space.check - add.period$ - } - if$ - % - % format address and publisher - % - format.address.publisher.check - % - % if not empty, insert howpublished. - % (used if book is retrieved from the internet) - % - format.howpublished add.period$ - % - % format url - % - url empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.url - } - if$ - % - % format original publication (of reprint/translation) - % and optional note - % - format.orig.note - fin.entry -} -FUNCTION {incollection} -{ author empty$ - { editor.ne.trans - { format.atitle.type.trans.check } - { format.atitle.type.check } - if$ - output.new.block - format.year.month.day.check add.period$ - } - { format.authors start.new.block - format.year.month.day.check output.dot.new.block - editor.ne.trans - { format.atitle.type.trans.check } - { format.atitle.type.check } - if$ - } - if$ - editor empty$ - translator empty$ and - edition empty$ and - volume empty$ and - pages empty$ and - chapter empty$ and - booktitle empty$ and - 'skip$ - { - output.new.block - format.in.editors.trans - format.bvol.edition.pages - booktitle format.btitle.connect * add.period$ - } - if$ - format.address.publisher.check - format.howpublished add.period$ - url empty$ - 'skip$ - { - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.url - } - if$ - format.orig.note - fin.entry -} - -FUNCTION {inbookcollection} -{ author empty$ - { editor.ne.trans - { format.atitle.type.trans.check } - { format.atitle.type.check } - if$ - output.new.block - format.year.month.day.check add.period$ - } - { format.authors start.new.block - format.year.month.day.check output.dot.new.block - editor.ne.trans - { format.atitle.type.trans.check } - { format.atitle.type.check } - if$ - } - if$ - editor empty$ - translator empty$ and - edition empty$ and - volume empty$ and - pages empty$ and - chapter empty$ and - booktitle empty$ and - 'skip$ - { - output.new.block - in.format.in.editors.trans - format.bvol.edition.pages - booktitle format.btitle.connect * add.period$ - } - if$ - format.address.publisher.check - format.howpublished add.period$ - url empty$ - 'skip$ - { - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.url - } - if$ - format.orig.note - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % technical report number - % -FUNCTION {format.tr.number} -{ type empty$ - { "\BTR{}" } - { type "\bibnotype" = - { "" } - { type } - if$ - } - if$ - number format.rnumber.check connect.with.space.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % title, volume, edition, report number - % -FUNCTION {format.tr.title.number} -{ format.betitle.check - % Single out the situation in which there is no number - % and type = {\bibnotype}, i.e., no type as well. - % (Why not use book then?) - type empty$ - { % Now, we're in the regular situation with at least a - % number, a type, a volume, or an edition. - "\APACbVolEdTR{" format.bvol.edition.check * "}{" * - format.tr.number * "}" * - } - { type "\bibnotype" = - number empty$ - volume empty$ - edition empty$ - and - and - and - { "" } - { % Now, we're in the regular situation with at least a - % number, a type, a volume, or an edition. - "\APACbVolEdTR {" format.bvol.edition.check * "}{" * - format.tr.number * "}" * - } - if$ - } - if$ - connect.with.space.check - title format.btitle.connect -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format address and institution of reports etc. - % - % Washington, DC: National Institute of Education - % or - % National Institute of Education (if address empty) - % - % warning if no institution - % -FUNCTION {format.address.institution.check} -{ url empty$ - doi empty$ and - { "institution" institution warning.if.empty - "address" address warning.if.empty - } - 'skip$ - if$ - institution empty$ - address empty$ - and - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - % - % If institution = author or institution = "author" - % or institution = "Author" then hand over the final choice how to - % format this to \LaTeX. See also format.address.publisher - % - author empty$ - institution empty$ or - { institution "\APACaddressInstitution{" } - { author institution = - "author" institution = or - "Author" institution = or - { author "\APACaddressInstitutionEqAuth{" } - { institution "\APACaddressInstitution{" } - if$ - } - if$ - address "" connect.check "}{" * - % Recover institution that was pushed onto the stack previously. - swap$ "" connect.check "}" * - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % reports - % -FUNCTION {techreport} -{ author empty$ - % - % no author: possibly edited report with editors as authors - % - { editor empty$ - % - % no author or editor: title serves as author. - % title formatted as book title - % - { format.tr.title.number output.dot.new.block - format.year.month.day.check add.period$ - } - % - % format editor and year, and check if year is present - % format report title and check if title present - % format volume, edition, type, and number - % - { format.editors.as.authors start.new.block - format.year.month.day.check output.dot.new.block - format.tr.title.number add.period$ - } - if$ - } - % - % format author and year, and check if year is present - % format report title and check if title present - % format volume, edition, type, and number - % - { format.authors start.new.block - format.year.month.day.check output.dot.new.block - format.tr.title.number add.period$ - } - if$ - % - % format address and institution, check if institution present - % - format.address.institution.check - % - % if not empty, insert howpublished. - % (used if report is retrieved from the internet) - % - format.howpublished add.period$ - % - % format url - % - url empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.url - } - if$ - % - % format optional note - % - note empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.note - } - if$ - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % (translated) article or chapter in report - % -FUNCTION {intechreport} -{ author empty$ - % - % no author: title serves as author. - % title formatted as article title (APA manual not consistent in this, - % compare statement on p. 119: ``treat as book title'' and - % example 8, p. 121: no underlining => article title) - % - { editor.ne.trans - { format.atitle.trans.check } - { format.atitle.check } - if$ - output.new.block - format.year.month.day.check output.dot.new.block - } - % - % format author and year, and check if year is present - % format article title and check if title or type present - % - { format.authors start.new.block - format.year.month.day.check output.dot.new.block - editor.ne.trans - { format.atitle.trans.check } - { format.atitle.check } - if$ - output.new.block - } - if$ - % - % format "In " editor " (Ed. \& Trans.), " - % booktitle, volume, edition, pages - % - format.in.editors.trans - % - % volume, edition, report type and number, pages - % - "\APACbVolEdTRpgs {" format.bvol.edition.check * "} {" * - format.tr.number * - "} {" * pages format.bpages.check * - "}" * - % - booktitle format.btitle.connect * - add.period$ - % - % format address and publisher - % - format.address.institution.check - % - % if not empty, insert howpublished. - % (used if report is retrieved from the internet) - % - format.howpublished add.period$ - % - % format url - % - url empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.url - } - if$ - % - % format original publication (of reprint/translation) - % and optional note - % - format.orig.note - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % papers presented at conferences etc. - % -FUNCTION {lecture} -{ author empty$ - { "author" author warning.if.empty } - { format.authors start.new.block } - if$ - % - % format year, month, and day, and check if year present - % format title and check if title present - % format howpublished and check if howpublished present - % - format.year.month.day.check output.dot.new.block - symposium empty$ - { format.betitle.check - title format.btitle.connect output.new.block - howpublished empty$ - { "symposium and howpublished missing in " cite$ * warning$ - "" - } - { "\APAChowpublished {" howpublished * "}" * } - if$ - address connect.with.comma.check - } - { format.atitle.type.check output.new.block - "\BIn{} " - chair empty$ - 'skip$ - { chair format.editor.names - chair num.names$ #1 > - { "(\BCHAIRS)" } - { "(\BCHAIR)" } - if$ - connect.with.space.check * ", " * - } - if$ - symposium format.btitle.no.dot * - format.howpublished - address connect.with.comma.check - } - if$ - add.period$ - % - % format url - % - url empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.url - } - if$ - % - % format optional note - % - note empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.note - } - if$ - fin.entry -} - -FUNCTION {format.ttitle.type.school} -{ doi empty$ not - url empty$ not or - howpublished empty$ not or - { pop$ } - { swap$ pop$ } - if$ - type empty$ - 'skip$ - { type "\bibnotype" = - { pop$ - "" - } - { pop$ - type - } - if$ - } - if$ - duplicate$ empty$ - doi empty$ - url empty$ and - howpublished empty$ and - address empty$ - school empty$ and or and - { 'pop$ - title empty$ not - englishtitle empty$ not or - { start.new.block } - 'skip$ - if$ - "" - } - { start.new.block - "\APACtypeAddressSchool {" swap$ * "}{" * - doi empty$ - url empty$ and - howpublished empty$ and - { "}{}" * } - { address "" connect.check "}{" * - school "" connect.check "}" * - } - if$ - } - if$ - format.betitle.check swap$ - connect.with.space.check - "title" title warning.if.empty - title format.btitle.connect -} -FUNCTION {unpub.address.school.block} -{ doi empty$ - url empty$ and - howpublished empty$ and - { "school" school warning.if.empty - school empty$ - address empty$ and - 'skip$ - { start.new.block - "\APACaddressSchool {" address "" connect.check "}{" * - school "" connect.check "}" * - output.dot.end.block - } - if$ - } - 'skip$ - if$ -} -FUNCTION {thesis} -{ journal empty$ not - { pop$ pop$ - article - } - { author empty$ - { "author" author warning.if.empty } - { format.authors start.new.block } - if$ - format.year.check output.dot.end.block - format.ttitle.type.school output.dot.end.block - unpub.address.school.block - howpublished.block - url.block - note.block - fin.entry.2 - } - if$ -} -FUNCTION {phdthesis} -{ "\BPhD" "\BUPhD" thesis } -FUNCTION {mastersthesis} -{ "\BMTh" "\BUMTh" thesis } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % title of something (used in unpublished and misc) - % english translation of title - % type and number of something - % -FUNCTION {format.btitle.type.num} -{ format.betitle.check - format.bvol.edition connect.with.space.check - format.type.number - connect.with.space.check - title empty$ - { add.period$ } - { title format.btitle.connect } - if$ -} - -FUNCTION {format.version} -{ - version empty$ - { "" } - { " " * version *} - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % title of message or software-related thing (used in misc) - % english translation of title - % type and number of something - % -FUNCTION {format.mtitle.type.num} -{ format.aetitle.check - format.bvol.edition connect.with.space.check - type.2 "\bibmessage" = - { number empty$ - 'skip$ - { type.2 number tie.or.space.connect - bracket.check - connect.with.space.check - } - if$ - } - { format.type.number - connect.with.space.check - } - if$ - title empty$ - { add.period$ } - { title format.atitle.connect } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % title, english translation of title, - % type and number of something (used in misc) - % -FUNCTION {output.misctitle.type.num} -{ type.2 empty$ - { format.btitle.type.num } - { type.2 "\bibmessage" = - type.2 "\bibcomputerprogram" = or - type.2 "\bibcomputerprogrammanual" = or - type.2 "\bibcomputerprogramandmanual" = or - type.2 "\bibcomputersoftware" = or - type.2 "\bibcomputersoftwaremanual" = or - type.2 "\bibcomputersoftwareandmanual" = or - type.2 "\bibprogramminglanguage" = or - { format.mtitle.type.num } - { format.btitle.type.num } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % unpublished manuscripts, etc. - % -FUNCTION {unpublished} -{ check.relevant.fields - author empty$ - % - % no author: possibly edited book with editors as authors - % - { editor empty$ - % - % no author or editor: title serves as author. - % title formatted as book title - % - { format.btitle.type.num output.new.block - format.year.month.day.check add.period$ - } - % - % format editor and year, and check if year is present - % format book title, volume, and edition and check if title present - % - { format.editors.as.authors start.new.block - format.year.month.day.check output.dot.new.block - format.btitle.type.num - } - if$ - } - % - % format author and year, and check if year is present - % format book title, volume, and edition - % and check if title or type present - % - { format.authors start.new.block - format.year.month.day.check output.dot.new.block - format.btitle.type.num - } - if$ - howpublished empty$ - organization empty$ and - address empty$ and - 'skip$ - { output.new.block - "\APAChowpublished{" "}" howpublished enclose.check - organization connect.with.comma.check - address connect.with.comma.check - add.period$ - } - if$ - % - % format url - % - url empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.url - } - if$ - % - % format optional note - % - note empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.note - } - if$ - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % nonprint media and other things that don't fit - % -FUNCTION {misc} -{ % - % To handle @manual: use type.2 instead of type. - type.2 empty$ - type empty$ not and - { type 'type.2 := } - 'skip$ - if$ - % - author empty$ - % - % no author: possibly edited item with editors as authors - % - { editor empty$ - % - % no author or editor: title/type serves as author. - % title formatted as book title - % - % if no title and no type, howpublished is title - % - { title empty$ - type.2 empty$ and - { howpublished empty$ - { "No author, editor, title, type, and howpublished in " - cite$ * warning$ - "" - } - { "\APAChowpublished{" howpublished * "}" * add.period$ } - if$ - format.year.month.day.check add.period$ - } - { output.misctitle.type.num %output.new.block - format.year.month.day.check add.period$ - format.howpublished add.period$ - } - if$ - } - % - % format editor and year, and check if year is present - % format book title, volume, and edition and check if title present - % - { format.editors.as.authors start.new.block - format.year.month.day.check output.dot.new.block - output.misctitle.type.num output.dot.new.block - format.howpublished add.period$ - } - if$ - } - % - % format author and year, and check if year is present - % format book title, volume, and edition - % and check if title or type present - % - { format.authors start.new.block - format.year.month.day.check output.dot.new.block - output.misctitle.type.num - format.howpublished add.period$ - } - if$ - % - address empty$ - publisher empty$ and - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.address.publisher add.period$ - } - if$ - % - % format url - % - url empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.url - } - if$ - % - % format optional note - % - note empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.note - } - if$ - fin.entry -} - -FUNCTION {softmisc} -{ % - % To handle @manual: use type.2 instead of type. - type.2 empty$ - type empty$ not and - { type 'type.2 := } - 'skip$ - if$ - % - author empty$ - % - % no author: possibly edited item with editors as authors - % - { editor empty$ - % - % no author or editor: title/type serves as author. - % title formatted as book title - % - % if no title and no type, howpublished is title - % - { title empty$ - type.2 empty$ and - { howpublished empty$ - { "No author, editor, title, type, and howpublished in " - cite$ * warning$ - "" - } - { "\APAChowpublished{" howpublished * "}" * add.period$ } - if$ - format.year.month.day.check add.period$ - } - { output.misctitle.type.num %output.new.block - format.year.month.day.check add.period$ - format.howpublished add.period$ - } - if$ - } - % - % format editor and year, and check if year is present - % format book title, volume, and edition and check if title present - % - { format.editors.as.authors start.new.block - format.year.month.day.check output.dot.new.block - output.misctitle.type.num output.dot.new.block - format.howpublished add.period$ - } - if$ - } - % - % format author and year, and check if year is present - % format book title, volume, and edition - % and check if title or type present - % - { format.authors start.new.block - format.year.nomonth.day.check output.dot.new.block - output.misctitle.type.num - format.version - format.howpublished add.period$ - } - if$ - % - address empty$ - publisher empty$ and - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.address.publisher add.period$ - } - if$ - % - % format url - % - url empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.url - } - if$ - % - % format optional note - % - note empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.note - } - if$ - output.dot.new.block - format.softmisc.eprint - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % for legal cases and other cases that need to be - % done by hand - % -FUNCTION {literal} -{ "key" key warning.if.empty - "text" text warning.if.empty - text empty$ - { "" } - { text } - if$ - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % technical documentation - % -FUNCTION {manual} -{ % - % If type is empty, assume that it is a computer software manual. - % - type empty$ - { "\bibcomputersoftwaremanual" 'type.2 := } - 'skip$ - if$ - misc -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % booklet - % -FUNCTION {booklet} -{ misc } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % part of a book - % -FUNCTION {inbook} -{ inbookcollection } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % article in proceedings - % -FUNCTION {inproceedings} -{ incollection } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % article in proceedings (Kopka & Daly, 2004, p. 230) - % -FUNCTION {conference} -{ inproceedings } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % proceedings - % -FUNCTION {proceedings} -{ misc } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % unknown types - % -FUNCTION {default.type} -{ misc } - -FUNCTION {initialize} -{ - #6 'name.max := -%% #250 'entry.max$ := -%% #5000 'global.max$ := -} -FUNCTION {init.old.number} -{ #0 'old.number := } -FUNCTION {init.old.label} -{ "zzzzzz" 'old.label := } -FUNCTION {init.cite.initials.add.to.year} -{ #0 'cite.initials := - #0 'add.to.year := -} -FUNCTION {move.forward} -{ #1 'forward := } -FUNCTION {move.backward} -{ #0 'forward := } -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - "\begin{thebibliography}{}" write$ newline$ - "\renewcommand{\doi}[1]{\url{https://doi.org/#1}}" - write$ newline$ - "\bibcommenthead" write$ newline$ -} -FUNCTION {end.bib} -{ newline$ - "\end{thebibliography}" write$ newline$ -} -FUNCTION {write.bbl.entry} -{ - make.cite.labels - call.type$ -} -READ -EXECUTE { identify.apacite.version } -EXECUTE { initialize } -EXECUTE { init.old.number } -ITERATE { make.citeorder.number } -ITERATE { make.sort.title } -SORT -EXECUTE { init.old.number } -EXECUTE { init.old.label } -ITERATE { make.title.number } -ITERATE { make.tentative.sort.label } -SORT -ITERATE { init.cite.initials.add.to.year } -EXECUTE { init.initials } -ITERATE { check.add.initials } -EXECUTE { init.initials } -REVERSE { check.add.initials } -ITERATE { tentative.cite.num.names } -EXECUTE { init.cite.num.names } -EXECUTE { move.forward } -ITERATE { definitive.cite.num.names } -EXECUTE { init.cite.num.names } -EXECUTE { move.backward } -REVERSE { definitive.cite.num.names } -ITERATE { make.final.sort.key } -SORT -EXECUTE { begin.bib } -ITERATE { write.bbl.entry } -EXECUTE { end.bib } - -%% -%% End of file `apacite.bst'. diff --git a/_extensions/christopherkenny/nature/sn-aps.bst b/_extensions/christopherkenny/nature/sn-aps.bst deleted file mode 100644 index 49cf96b..0000000 --- a/_extensions/christopherkenny/nature/sn-aps.bst +++ /dev/null @@ -1,1533 +0,0 @@ -%% -%% This is file `spphys.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% merlin.mbs (with options: `seq-no,vonx,nm-init,ed-au,yr-par,xmth,jtit-x,jttl-rm,thtit-a,vol-bf,volp-com,jpg-1,pgsep-c,num-xser,ser-vol,ser-ed,jnm-x,pub-date,pre-pub,doi,edpar,edby,fin-bare,pp,ed,abr,ord,jabr,xand,url,url-blk,nfss,') -%% ---------------------------------------- -%%********************************************************************************%% -%% %% -%% For Springer physics publications. Based on the APS reference style. %% -%% Report bugs and improvements to: Joylene Vette-Guillaume or Frank Holzwarth %% -%% Springer-Verlag 2004/10/15 %% -%% %% -%%********************************************************************************%% -%% -%% Copyright 1994-2004 Patrick W Daly - % =============================================================== - % IMPORTANT NOTICE: - % This bibliographic style (bst) file has been generated from one or - % more master bibliographic style (mbs) files, listed above. - % - % This generated file can be redistributed and/or modified under the terms - % of the LaTeX Project Public License Distributed from CTAN - % archives in directory macros/latex/base/lppl.txt; either - % version 1 of the License, or any later version. - % =============================================================== - % Name and version information of the main mbs file: - % \ProvidesFile{merlin.mbs}[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 - % This is a numerical citation style, and as such is standard LaTeX. - % It requires no extra package to interface to the main text. - % The form of the \bibitem entries is - % \bibitem{key}... - % Usage of \cite is as follows: - % \cite{key} ==>> [#] - % \cite[chap. 2]{key} ==>> [#, chap. 2] - % where # is a number determined by the ordering in the reference list. - % The order in the reference list is that by which the works were originally - % cited in the text, or that in the database. - %--------------------------------------------------------------------- - -ENTRY - { address - author - booktitle - chapter - doi - edition - editor - eid - howpublished - institution - journal - key - keywords - month - note - number - organization - pages - publisher - school - series - title - type - url - volume - year - eprint - archive - archivePrefix - primaryClass - adsurl - adsnote - version - } - {} - { label } -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} -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { ", " * write$ } - { output.state after.block = - { add.period$ write$ - newline$ - "\newblock " write$ - } - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - s -} -FUNCTION {output} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull - if$ -} -FUNCTION {output.check} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull - if$ -} -FUNCTION {fin.entry} -{ duplicate$ empty$ - 'pop$ - 'write$ - if$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} -FUNCTION {add.blank} -{ " " * before.all 'output.state := -} - -FUNCTION {add.comma} -{ duplicate$ empty$ - 'skip$ - { "," * add.blank } - if$ -} - -FUNCTION {date.block} -{ - new.block -} - -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} -FUNCTION {new.block.checka} -{ empty$ - 'skip$ - 'new.block - if$ -} -FUNCTION {new.block.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.block - if$ -} -FUNCTION {new.sentence.checka} -{ empty$ - 'skip$ - 'new.sentence - if$ -} -FUNCTION {new.sentence.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.sentence - if$ -} -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} -FUNCTION {emphasize} -{ duplicate$ empty$ - { pop$ "" } - { "\emph{" swap$ * "}" * } - if$ -} -FUNCTION {bolden} -{ duplicate$ empty$ - { pop$ "" } - { "\textbf{" swap$ * "}" * } - if$ -} -FUNCTION {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 -FUNCTION {bbl.and} -{ "and"} - -FUNCTION {bbl.etal} -{ "et~al." } - -FUNCTION {bbl.editors} -{ "eds." } - -FUNCTION {bbl.editor} -{ "ed." } - -FUNCTION {bbl.edby} -{ "ed. by" } - -FUNCTION {bbl.edition} -{ "edn." } - -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.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 {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$ -} - -MACRO {acmcs} {"ACM Comput. Surv."} - -MACRO {acta} {"Acta Inf."} - -MACRO {cacm} {"Commun. ACM"} - -MACRO {ibmjrd} {"IBM J. Res. Dev."} - -MACRO {ibmsj} {"IBM Syst.~J."} - -MACRO {ieeese} {"IEEE Trans. Software Eng."} - -MACRO {ieeetc} {"IEEE Trans. Comput."} - -MACRO {ieeetcad} - {"IEEE Trans. Comput. Aid. Des."} - -MACRO {ipl} {"Inf. Process. Lett."} - -MACRO {jacm} {"J.~ACM"} - -MACRO {jcss} {"J.~Comput. Syst. Sci."} - -MACRO {scp} {"Sci. Comput. Program."} - -MACRO {sicomp} {"SIAM J. Comput."} - -MACRO {tocs} {"ACM Trans. Comput. Syst."} - -MACRO {tods} {"ACM Trans. Database Syst."} - -MACRO {tog} {"ACM Trans. Graphic."} - -MACRO {toms} {"ACM Trans. Math. Software"} - -MACRO {toois} {"ACM Trans. Office Inf. Syst."} - -MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."} - -MACRO {tcs} {"Theor. Comput. Sci."} - -FUNCTION {bibinfo.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$ -} -FUNCTION {format.url} -{ url empty$ - { "" } - { "\urlprefix\url{" url * "}" * } - if$ -} - -STRINGS { bibinfo} -INTEGERS { nameptr namesleft numnames } - -FUNCTION {format.names} -{ 'bibinfo := - duplicate$ empty$ 'skip$ { - 's := - "" 't := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{f{.}.~}{vv~}{ll}{, jj}" - format.name$ - bibinfo bibinfo.check - 't := - nameptr #1 > - { - namesleft #1 > - { ", " * t * } - { - "," * - s nameptr "{ll}" format.name$ duplicate$ "others" = - { 't := } - { pop$ } - if$ - t "others" = - { - " " * bbl.etal * - } - { " " * t * } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - } if$ -} -FUNCTION {format.names.ed} -{ - format.names -} -FUNCTION {format.authors} -{ author "author" format.names -} -FUNCTION {get.bbl.editor} -{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } - -FUNCTION {format.editors} -{ editor "editor" format.names duplicate$ empty$ 'skip$ - { - " " * - get.bbl.editor - "(" swap$ * ")" * - * - } - if$ -} -FUNCTION {format.doi} -{ doi "doi" bibinfo.check - duplicate$ empty$ 'skip$ - { - new.block - "\doi{" swap$ * "}" * - } - if$ -} -FUNCTION {format.note} -{ - note empty$ - { "" } - { note #1 #1 substring$ - duplicate$ "{" = - 'skip$ - { output.state mid.sentence = - { "l" } - { "u" } - if$ - change.case$ - } - if$ - note #2 global.max$ substring$ * "note" bibinfo.check - } - if$ -} - -FUNCTION {format.title} -{ title - duplicate$ empty$ 'skip$ - { "t" change.case$ } - if$ - "title" bibinfo.check -} -FUNCTION {output.bibitem} -{ newline$ - "\bibitem{" write$ - cite$ write$ - "}" write$ - newline$ - "" - before.all 'output.state := -} - -FUNCTION {if.digit} -{ duplicate$ "0" = - swap$ duplicate$ "1" = - swap$ duplicate$ "2" = - swap$ duplicate$ "3" = - swap$ duplicate$ "4" = - swap$ duplicate$ "5" = - swap$ duplicate$ "6" = - swap$ duplicate$ "7" = - swap$ duplicate$ "8" = - swap$ "9" = or or or or or or or or or -} -FUNCTION {n.separate} -{ 't := - "" - #0 'numnames := - { t empty$ not } - { t #-1 #1 substring$ if.digit - { numnames #1 + 'numnames := } - { #0 'numnames := } - if$ - t #-1 #1 substring$ swap$ * - t #-2 global.max$ substring$ 't := - numnames #5 = - { duplicate$ #1 #2 substring$ swap$ - #3 global.max$ substring$ - "," swap$ * * - } - 'skip$ - if$ - } - while$ -} -FUNCTION {n.dashify} -{ -%% n.separate - '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 - " " * } - -FUNCTION {format.date} -{ - "" - duplicate$ empty$ - year "year" bibinfo.check duplicate$ empty$ - { swap$ 'skip$ - { "there's a month but no year in " cite$ * warning$ } - if$ - * - } - { swap$ 'skip$ - { - swap$ - " " * swap$ - } - if$ - * - } - if$ - duplicate$ empty$ - 'skip$ - { - before.all 'output.state := - " (" swap$ * ")" * - } - if$ -} -FUNCTION {format.btitle} -{ title "title" bibinfo.check - duplicate$ empty$ 'skip$ - { - emphasize - } - if$ -} -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.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 "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$ - } - 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 mid.sentence = - { "l" } - { "t" } - if$ change.case$ - "edition" bibinfo.check - " " * 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.journal.pages} -{ pages duplicate$ empty$ 'pop$ - { swap$ duplicate$ empty$ - { pop$ pop$ format.pages } - { - ", " * - 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$ - bolden - number "number" bibinfo.check duplicate$ empty$ 'skip$ - { - swap$ duplicate$ empty$ - { "there's a number but no volume in " cite$ * warning$ } - 'skip$ - if$ - swap$ - "(" swap$ * ")" * - } - if$ * - eid empty$ - { format.journal.pages } - { format.journal.eid } - if$ -} - -FUNCTION {format.chapter.pages} -{ chapter empty$ - 'format.pages - { type empty$ - { bbl.chapter } - { type "l" change.case$ - "type" bibinfo.check - } - if$ - chapter tie.or.space.prefix - "chapter" bibinfo.check - * * - pages empty$ - 'skip$ - { ", " * format.pages * } - if$ - } - if$ -} - -FUNCTION {format.booktitle} -{ - booktitle "booktitle" bibinfo.check - emphasize -} - -FUNCTION {format.in.ed.booktitle} -{format.booktitle duplicate$ empty$ 'skip$ - { - format.bvolume duplicate$ empty$ 'pop$ - { ", " swap$ * * } - if$ - editor "editor" format.names.ed duplicate$ empty$ 'pop$ - { - bbl.edby - " " * swap$ * - swap$ - "," * - " " * swap$ - * } - if$ - word.in swap$ * - } - if$ -} -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ -} -FUNCTION {format.thesis.type} -{ type duplicate$ empty$ - 'pop$ - { swap$ pop$ - "t" change.case$ "type" bibinfo.check - } - if$ -} -FUNCTION {format.tr.number} -{ number "number" bibinfo.check - type duplicate$ empty$ - { pop$ bbl.techrep } - 'skip$ - if$ - "type" bibinfo.check - swap$ duplicate$ empty$ - { pop$ "t" change.case$ } - { tie.or.space.prefix * * } - if$ -} -FUNCTION {format.article.crossref} -{ - key duplicate$ empty$ - { pop$ - journal duplicate$ empty$ - { "need key or journal for " cite$ * " to crossref " * crossref * warning$ } - { "journal" bibinfo.check emphasize word.in swap$ * } - if$ - } - { word.in swap$ * " " *} - if$ - " \cite{" * crossref * "}" * -} -FUNCTION {format.crossref.editor} -{ editor #1 "{vv~}{ll}" format.name$ - "editor" bibinfo.check - editor num.names$ duplicate$ - #2 > - { pop$ - "editor" bibinfo.check - " " * bbl.etal - * - } - { #2 < - 'skip$ - { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { - "editor" bibinfo.check - " " * bbl.etal - * - } - { - bbl.and space.word - * editor #2 "{vv~}{ll}" format.name$ - "editor" bibinfo.check - * - } - if$ - } - if$ - } - if$ -} -FUNCTION {format.book.crossref} -{ volume duplicate$ empty$ - { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ - pop$ word.in - } - { bbl.volume - capitalize - swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * - } - if$ - editor empty$ - editor field.or.null author field.or.null = - or - { key empty$ - { series empty$ - { "need editor, key, or series for " cite$ * " to crossref " * - crossref * warning$ - "" * - } - { series emphasize * } - if$ - } - { key * } - if$ - } - { format.crossref.editor * } - if$ - " \cite{" * crossref * "}" * -} -FUNCTION {format.incoll.inproc.crossref} -{ - editor empty$ - editor field.or.null author field.or.null = - or - { key empty$ - { format.booktitle duplicate$ empty$ - { "need editor, key, or booktitle for " cite$ * " to crossref " * - crossref * warning$ - } - { word.in swap$ * } - if$ - } - { word.in key * " " *} - if$ - } - { word.in format.crossref.editor * " " *} - if$ - " \cite{" * crossref * "}" * -} -FUNCTION {format.org.or.pub} -{ 't := - "" - year empty$ - { "empty year in " cite$ * warning$ } - 'skip$ - if$ - address empty$ t empty$ and - year empty$ and - 'skip$ - { - add.blank "(" * - t empty$ - { address "address" bibinfo.check * - } - { t * - address empty$ - 'skip$ - { ", " * address "address" bibinfo.check * } - if$ - } - if$ - year empty$ - 'skip$ - { t empty$ address empty$ and - 'skip$ - { ", " * } - if$ - year "year" bibinfo.check - * - } - if$ - ")" * - } - 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.softmisc.archive} -{ - archivePrefix empty$ - { "" } - { "" } - if$ -} - -FUNCTION {format.archive} -{ - archivePrefix empty$ - { "" } - { archivePrefix ":" *} - if$ -} - -FUNCTION {format.primaryClass} -{ - primaryClass empty$ - { "" } - { "{[" primaryClass * "]}" *} - if$ -} - -FUNCTION {format.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {format.softmisc.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {article} -{ output.bibitem - format.authors "author" output.check - add.comma - format.title "title" output.check - new.block - crossref missing$ - { - journal - "journal" bibinfo.check - "journal" output.check - add.blank - format.vol.num.pages output - format.date "year" output.check - } - { format.article.crossref output.nonnull - format.pages output - } - if$ - format.doi output - new.block - format.url output - new.block - format.note output - new.block - format.eprint output - add.blank - format.primaryClass output - fin.entry -} - -FUNCTION {book} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check - } - { format.authors output.nonnull - crossref missing$ - { "author and editor" editor either.or.check } - 'skip$ - if$ - } - if$ - add.comma - format.btitle "title" output.check - crossref missing$ - { format.bvolume output - format.edition output - new.block - format.number.series output - new.sentence - format.publisher.address output - format.pages output - } - { - new.block - format.book.crossref output.nonnull - format.date "year" output.check - } - if$ - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry -} -FUNCTION {booklet} -{ output.bibitem - format.authors output - add.comma - format.title "title" output.check - new.block - howpublished "howpublished" bibinfo.check output - address "address" bibinfo.check output - format.date output - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check - } - { format.authors output.nonnull - crossref missing$ - { "author and editor" editor either.or.check } - 'skip$ - if$ - } - if$ - add.comma - format.btitle "title" output.check - crossref missing$ - { - format.publisher.address output - format.bvolume output - format.edition output - format.chapter.pages "chapter and pages" output.check - new.block - format.number.series output - new.sentence - } - { - format.chapter.pages "chapter and pages" output.check - new.block - format.book.crossref output.nonnull - format.date "year" output.check - } - if$ - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - format.authors "author" output.check - add.comma - crossref missing$ - { format.in.ed.booktitle "booktitle" output.check - format.edition output - format.number.series output - format.publisher.address output - format.chapter.pages output - new.sentence - } - { format.incoll.inproc.crossref output.nonnull - format.chapter.pages output - } - if$ - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry -} - -FUNCTION {inproceedings} -{ output.bibitem - format.authors "author" output.check - add.comma - format.btitle "title" output.check - crossref missing$ - { format.in.ed.booktitle "booktitle" output.check - new.sentence - publisher empty$ - { format.organization.address output } - { organization "organization" bibinfo.check output - format.publisher.address output - } - if$ - format.number.series output - format.pages output - } - { format.incoll.inproc.crossref output.nonnull - format.pages output - } - if$ - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry -} -FUNCTION {conference} { inproceedings } -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization "organization" bibinfo.check - duplicate$ empty$ 'pop$ - { output - address "address" bibinfo.check output - } - if$ - } - { format.authors output.nonnull } - if$ - add.comma - format.btitle "title" output.check - author empty$ - { organization empty$ - { - address new.block.checka - address "address" bibinfo.check output - } - 'skip$ - if$ - } - { - organization address new.block.checkb - organization "organization" bibinfo.check output - address "address" bibinfo.check output - } - if$ - format.edition output - format.date output - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry -} - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check - add.comma - format.title - "title" output.check - new.block - bbl.mthesis format.thesis.type output.nonnull - school "school" bibinfo.warn output - address "address" bibinfo.check output - format.date "year" output.check - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - title howpublished new.block.checkb - format.title output - howpublished new.block.checka - howpublished "howpublished" bibinfo.check output - format.date output - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry - empty.misc.check -} - -FUNCTION {softmisc} -{ output.bibitem - format.authors output - title howpublished new.block.checkb - format.title output - version output - howpublished new.block.checka - howpublished "howpublished" bibinfo.check output - format.date output - format.doi output - new.block - format.url output - new.block - format.note output - new.block - format.softmisc.eprint output - fin.entry - empty.misc.check -} - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check - add.comma - format.title - "title" output.check - new.block - bbl.phdthesis format.thesis.type output.nonnull - school "school" bibinfo.warn output - address "address" bibinfo.check output - format.date "year" output.check - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - editor empty$ - { organization "organization" bibinfo.check output - } - { format.editors output.nonnull } - if$ - new.block - format.btitle "title" output.check - format.bvolume output - format.number.series output - editor empty$ - { publisher empty$ - 'skip$ - { - new.sentence - format.publisher.address output - } - if$ - } - { publisher empty$ - { - new.sentence - format.organization.address output } - { - new.sentence - organization "organization" bibinfo.check output - format.publisher.address output - } - if$ - } - if$ - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry -} - -FUNCTION {techreport} -{ output.bibitem - format.authors "author" output.check - add.comma - format.title - "title" output.check - new.block - format.tr.number output.nonnull - institution "institution" bibinfo.warn output - address "address" bibinfo.check output - format.date "year" output.check - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry -} - -FUNCTION {unpublished} -{ output.bibitem - format.authors "author" output.check - add.comma - format.title "title" output.check - format.date output - format.doi output - new.block - format.url output - new.block - format.note "note" output.check - fin.entry -} - -FUNCTION {default.type} { misc } -READ -STRINGS { longest.label } -INTEGERS { number.label longest.label.width } -FUNCTION {initialize.longest.label} -{ "" 'longest.label := - #1 'number.label := - #0 'longest.label.width := -} -FUNCTION {longest.label.pass} -{ number.label int.to.str$ 'label := - number.label #1 + 'number.label := - label width$ longest.label.width > - { label 'longest.label := - label width$ 'longest.label.width := - } - 'skip$ - if$ -} -EXECUTE {initialize.longest.label} -ITERATE {longest.label.pass} -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - "\begin{thebibliography}{" longest.label * "}" * - write$ newline$ - "\providecommand{\url}[1]{{#1}}" - write$ newline$ - "\providecommand{\urlprefix}{URL }" - write$ newline$ - %%"\expandafter\ifx\csname urlstyle\endcsname\relax" - %% write$ newline$ - %%" \providecommand{\doi}[1]{\discretionary{}{}{}#1}\else" - %%write$ newline$ - %%" \providecommand{\doi}{\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi" - "\providecommand{\doi}[1]{\url{https://doi.org/#1}}" - write$ newline$ - "\bibcommenthead" 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 -%% -%% End of file `spphys.bst'. - diff --git a/_extensions/christopherkenny/nature/sn-basic.bst b/_extensions/christopherkenny/nature/sn-basic.bst deleted file mode 100644 index 5072a4d..0000000 --- a/_extensions/christopherkenny/nature/sn-basic.bst +++ /dev/null @@ -1,1798 +0,0 @@ -%% -%% This is file `spbasic.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% merlin.mbs (with options: `ay,nat,seq-lab,vonx,nm-rvx,ed-rev,jnrlst,dt-beg,yr-par,yrp-x,yrpp-xsp,note-yr,jxper,jttl-rm,thtit-a,pgsep-c,num-xser,ser-vol,jnm-x,btit-rm,bt-rm,pre-pub,doi,edparxc,blk-tit,in-col,fin-bare,pp,ed,abr,mth-bare,ord,jabr,xand,eprint,url,url-blk,em-x,nfss,') -%% ---------------------------------------- -%% -%%********************************************************************************%% -%% %% -%% For Springer medical, life sciences, chemistry, geology, engineering and %% -%% computer science publications. %% -%% For use with the natbib package (see below). Default is author-year citations. %% -%% When citations are numbered, please use \usepackage[numbers]{natbib}. %% -%% %% -%%********************************************************************************%% -%% -%% Copyright 1994-2004 Patrick W Daly - % =============================================================== - % IMPORTANT NOTICE: - % This bibliographic style (bst) file has been generated from one or - % more master bibliographic style (mbs) files, listed above. - % - % This generated file can be redistributed and/or modified under the terms - % of the LaTeX Project Public License Distributed from CTAN - % archives in directory macros/latex/base/lppl.txt; either - % version 1 of the License, or any later version. - % =============================================================== - % Name and version information of the main mbs file: - % \ProvidesFile{merlin.mbs}[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 - % 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 - %--------------------------------------------------------------------- - -ENTRY - { address - archive - author - booktitle - chapter - doi - edition - editor - eid - eprint - howpublished - institution - journal - key - keywords - month - note - number - organization - pages - publisher - school - series - title - type - url - volume - year - archivePrefix - primaryClass - adsurl - adsnote - version - } - {} - { 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} -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { ", " * write$ } - { output.state after.block = - { add.period$ write$ - newline$ - "\newblock " write$ - } - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - s -} -FUNCTION {output} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull - if$ -} -FUNCTION {output.check} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull - if$ -} -FUNCTION {fin.entry} -{ duplicate$ empty$ - 'pop$ - 'write$ - if$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} -FUNCTION {add.blank} -{ " " * before.all 'output.state := -} - -FUNCTION {no.blank.or.punct} -{ "\hspace{0pt}" * before.all 'output.state := -} - -FUNCTION {date.block} -{ - add.blank -} - -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} -STRINGS {z} -FUNCTION {remove.dots} -{ 'z := - "" - { z empty$ not } - { z #1 #1 substring$ - z #2 global.max$ substring$ 'z := - duplicate$ "." = 'pop$ - { * } - if$ - } - while$ -} -FUNCTION {new.block.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.block - if$ -} -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} -FUNCTION {emphasize} -{ skip$ } -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 -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} -{ "edn." } - -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.incoll.pages} -{ "p" } - -FUNCTION {bbl.page} -{ "p" } - -FUNCTION {bbl.chapter} -{ "chap" } - -FUNCTION {bbl.techrep} -{ "Tech. Rep." } - -FUNCTION {bbl.mthesis} -{ "Master's thesis" } - -FUNCTION {bbl.phdthesis} -{ "PhD 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 {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$ -} - -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 Softw 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 Softw"} - -MACRO {toois} {"ACM Trans Office Inf Syst"} - -MACRO {toplas} {"ACM Trans Program 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$ -} - -FUNCTION {format.eprint} -{ eprint duplicate$ empty$ - 'skip$ - { "\eprint" - archive empty$ - 'skip$ - { "[" * archive * "]" * } - if$ - "{" * swap$ * "}" * - } - if$ -} - -FUNCTION {format.archive} -{ - archivePrefix empty$ - { "" } - { archivePrefix ":" *} - if$ -} - -FUNCTION {format.primaryClass} -{ - primaryClass empty$ - { "" } - { "{[" primaryClass * "]}" *} - if$ -} - -FUNCTION {format.soft.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {format.softmisc.archive} -{ - archivePrefix empty$ - { "" } - { "" } - if$ -} - -FUNCTION {format.softmisc.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { "\urlprefix\url{" url * "}" * } - if$ -} - -STRINGS { bibinfo} -INTEGERS { nameptr namesleft numnames } - -FUNCTION {format.names} -{ 'bibinfo := - duplicate$ empty$ 'skip$ { - 's := - "" 't := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{vv~}{ll}{ f{}}{jj}" - format.name$ 't := - nameptr #1 > - { - nameptr #3 - #1 + = - numnames #3 - > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - namesleft #1 > - { ", " * t * } - { - "," * - s nameptr "{ll}" format.name$ duplicate$ "others" = - { 't := } - { pop$ } - if$ - t "others" = - { - " " * bbl.etal * - } - { " " * t * } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - } if$ -} - -FUNCTION {format.names.ed} -{ - format.names -} -FUNCTION {format.key} -{ empty$ - { key field.or.null } - { "" } - if$ -} - -FUNCTION {format.authors} -{ author "author" format.names -} -FUNCTION {get.bbl.editor} -{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } - -FUNCTION {format.editors} -{ editor "editor" format.names duplicate$ empty$ 'skip$ - { - " " * - get.bbl.editor - "(" swap$ * ")" * - * - } - if$ -} -FUNCTION {format.doi} -{ doi "doi" bibinfo.check - duplicate$ empty$ 'skip$ - { - "\doi{" swap$ * "}" * - } - if$ -} -FUNCTION {format.note} -{ - note empty$ - { "" } - { note #1 #1 substring$ - duplicate$ "{" = - 'skip$ - { output.state mid.sentence = - { "l" } - { "u" } - if$ - change.case$ - } - if$ - note #2 global.max$ substring$ * "note" bibinfo.check - } - if$ -} - -FUNCTION {format.title} -{ title - duplicate$ empty$ 'skip$ - { "t" change.case$ } - if$ - "title" bibinfo.check -} -FUNCTION {format.full.names} -{'s := - "" 't := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{vv~}{ll}" format.name$ - 't := - nameptr #1 > - { - namesleft #1 > - { ", " * t * } - { - s nameptr "{ll}" format.name$ duplicate$ "others" = - { 't := } - { pop$ } - if$ - t "others" = - { - " " * bbl.etal * - } - { - numnames #2 > - { "," * } - 'skip$ - if$ - bbl.and - space.word * t * - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {author.editor.key.full} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { editor format.full.names } - if$ - } - { author format.full.names } - if$ -} - -FUNCTION {author.key.full} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { author format.full.names } - if$ -} - -FUNCTION {editor.key.full} -{ editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { editor format.full.names } - if$ -} - -FUNCTION {make.full.names} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.full - { type$ "proceedings" = - 'editor.key.full - 'author.key.full - if$ - } - if$ -} - -FUNCTION {output.bibitem} -{ newline$ - "\bibitem[{" write$ - label write$ - ")" make.full.names duplicate$ short.list = - { pop$ } - { * } - if$ - "}]{" * write$ - cite$ write$ - "}" write$ - newline$ - "" - before.all 'output.state := -} - -FUNCTION {add.period} -{ duplicate$ empty$ - 'skip$ - { "." * add.blank } - if$ -} - -FUNCTION {if.digit} -{ duplicate$ "0" = - swap$ duplicate$ "1" = - swap$ duplicate$ "2" = - swap$ duplicate$ "3" = - swap$ duplicate$ "4" = - swap$ duplicate$ "5" = - swap$ duplicate$ "6" = - swap$ duplicate$ "7" = - swap$ duplicate$ "8" = - swap$ "9" = or or or or or or or or or -} -FUNCTION {n.separate} -{ 't := - "" - #0 'numnames := - { t empty$ not } - { t #-1 #1 substring$ if.digit - { numnames #1 + 'numnames := } - { #0 'numnames := } - if$ - t #-1 #1 substring$ swap$ * - t #-2 global.max$ substring$ 't := - numnames #5 = - { duplicate$ #1 #2 substring$ swap$ - #3 global.max$ substring$ - "," swap$ * * - } - 'skip$ - if$ - } - while$ -} -FUNCTION {n.dashify} -{ -%% n.separate - '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 capitalize - ":" * - " " * } - -FUNCTION {format.date} -{ year "year" bibinfo.check duplicate$ empty$ - { - "empty year in " cite$ * "; set to ????" * warning$ - pop$ "????" - } - 'skip$ - if$ - extra.label * - before.all 'output.state := - " (" swap$ * ")" * -} -FUNCTION {format.btitle} -{ title "title" bibinfo.check - duplicate$ empty$ 'skip$ - { - } - if$ -} -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.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 "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$ - } - 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 mid.sentence = - { "l" } - { "t" } - if$ change.case$ - "edition" bibinfo.check - " " * bbl.edition * - } - if$ -} -INTEGERS { multiresult } -FUNCTION {multi.page.check} -{ 't := - #0 'multiresult := - { multiresult not - t empty$ not - and - } - { t #1 #1 substring$ - duplicate$ "-" = - swap$ duplicate$ "," = - swap$ "+" = - or or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - multiresult -} -FUNCTION {format.pages} -{ pages duplicate$ empty$ 'skip$ - { duplicate$ multi.page.check - { - bbl.pages swap$ - n.dashify - } - { - bbl.page swap$ - } - if$ - tie.or.space.prefix - "pages" bibinfo.check - * * - } - if$ -} -FUNCTION {format.journal.pages} -{ pages duplicate$ empty$ 'pop$ - { swap$ duplicate$ empty$ - { pop$ pop$ format.pages } - { - ":" * - 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.incoll.pages} -{ pages duplicate$ empty$ 'skip$ - { duplicate$ multi.page.check - { - bbl.incoll.pages swap$ - n.dashify - } - { - bbl.page swap$ - } - if$ - tie.or.space.prefix - "pages" bibinfo.check - * * - } - if$ -} - -FUNCTION {format.incoll.chapter.pages} -{ chapter empty$ - 'format.incoll.pages - { type empty$ - { bbl.chapter } - { type "l" change.case$ - "type" bibinfo.check - } - if$ - chapter tie.or.space.prefix - "chapter" bibinfo.check - * * - pages empty$ - 'skip$ - { ", " * format.incoll.pages * } - if$ - } - if$ -} - -FUNCTION {format.vol.num.pages} -{ volume field.or.null - duplicate$ empty$ 'skip$ - { - "volume" bibinfo.check - } - if$ - 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} -{ chapter empty$ - 'format.pages - { type empty$ - { bbl.chapter } - { type "l" change.case$ - "type" bibinfo.check - } - if$ - chapter tie.or.space.prefix - "chapter" bibinfo.check - * * - pages empty$ - 'skip$ - { ", " * format.pages * } - if$ - } - if$ -} - -FUNCTION {format.booktitle} -{ - booktitle "booktitle" bibinfo.check -} -FUNCTION {format.in.ed.booktitle} -{ format.booktitle duplicate$ empty$ 'skip$ - { - editor "editor" format.names.ed duplicate$ empty$ 'pop$ - { - " " * - get.bbl.editor - "(" swap$ * ") " * - * swap$ - * } - if$ - word.in swap$ * - } - 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 - capitalize - 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 empty$ t empty$ and - 'skip$ - { - t empty$ - { address "address" bibinfo.check * - } - { t * - address empty$ - 'skip$ - { ", " * address "address" bibinfo.check * } - if$ - } - if$ - } - 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 {article} -{ output.bibitem - format.authors "author" output.check - author format.key output - format.date "year" output.check - date.block - format.title "title" output.check - new.sentence - crossref missing$ - { - journal - remove.dots - "journal" bibinfo.check - "journal" output.check - add.blank - format.vol.num.pages output - } - { format.article.crossref output.nonnull - format.pages output - } - if$ - new.sentence - format.doi output - format.url output - format.note output - format.soft.eprint output - add.blank - format.primaryClass output - fin.entry -} - -FUNCTION {book} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check - editor format.key output - add.blank - } - { format.authors output.nonnull - crossref missing$ - { "author and editor" editor either.or.check } - 'skip$ - if$ - } - if$ - format.date "year" output.check - date.block - format.btitle "title" output.check - crossref missing$ - { format.bvolume output - format.edition output - new.sentence - format.number.series output - format.publisher.address output - } - { - new.sentence - format.book.crossref output.nonnull - } - if$ - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} -FUNCTION {booklet} -{ output.bibitem - format.authors output - author format.key output - format.date "year" output.check - date.block - format.title "title" output.check - new.sentence - howpublished "howpublished" bibinfo.check output - address "address" bibinfo.check output - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check - editor format.key output - } - { format.authors output.nonnull - crossref missing$ - { "author and editor" editor either.or.check } - 'skip$ - if$ - } - if$ - format.date "year" output.check - date.block - format.btitle "title" output.check - crossref missing$ - { - format.bvolume output - format.edition output - format.publisher.address output - format.chapter.pages "chapter and pages" output.check - new.sentence - format.number.series output - } - { - format.chapter.pages "chapter and pages" output.check - new.sentence - format.book.crossref output.nonnull - } - if$ - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - format.authors "author" output.check - author format.key output - format.date "year" output.check - date.block - format.title "title" output.check - new.sentence - crossref missing$ - { format.in.ed.booktitle "booktitle" output.check - format.bvolume output - format.edition output - new.sentence - format.number.series output - format.publisher.address output - format.incoll.chapter.pages output - } - { format.incoll.inproc.crossref output.nonnull - format.incoll.chapter.pages output - } - if$ - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} -FUNCTION {inproceedings} -{ output.bibitem - format.authors "author" output.check - author format.key output - format.date "year" output.check - date.block - format.title "title" output.check - new.sentence - crossref missing$ - { format.in.ed.booktitle "booktitle" output.check - publisher empty$ - { format.organization.address output } - { organization "organization" bibinfo.check output - format.bvolume output - new.sentence - format.publisher.address output - } - if$ - format.number.series output - format.pages output - } - { format.incoll.inproc.crossref output.nonnull - format.pages output - } - if$ - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} -FUNCTION {conference} { inproceedings } -FUNCTION {manual} -{ output.bibitem - format.authors output - author format.key output - format.date "year" output.check - date.block - format.btitle "title" output.check - new.sentence - organization "organization" bibinfo.check output - address "address" bibinfo.check output - format.edition output - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check - author format.key output - format.date "year" output.check - date.block - format.title - "title" output.check - new.sentence - bbl.mthesis format.thesis.type output.nonnull - school "school" bibinfo.warn output - address "address" bibinfo.check output - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - author format.key output - format.date "year" output.check - date.block - format.title output - new.sentence - howpublished "howpublished" bibinfo.check output - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} - -FUNCTION {insert.comma} -{ duplicate$ empty$ - 'skip$ - { ", " * add.blank } - if$ -} - -FUNCTION {softmisc} -{ output.bibitem - format.authors output - author format.key output - format.date "year" output.check - date.block - format.title output - insert.comma - version output - new.sentence - howpublished "howpublished" bibinfo.check output - format.doi output - format.url output - format.note output - format.softmisc.eprint output - fin.entry -} - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check - author format.key output - format.date "year" output.check - date.block - format.title - "title" output.check - new.sentence - bbl.phdthesis format.thesis.type output.nonnull - school "school" bibinfo.warn output - address "address" bibinfo.check output - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - format.editors output - editor format.key output - format.date "year" output.check - date.block - format.btitle "title" output.check - format.bvolume output - format.number.series output - publisher empty$ - { format.organization.address output } - { organization "organization" bibinfo.check output - format.publisher.address output - } - if$ - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} - -FUNCTION {techreport} -{ output.bibitem - format.authors "author" output.check - author format.key output - format.date "year" output.check - date.block - format.title - "title" output.check - new.sentence - format.tr.number output.nonnull - institution "institution" bibinfo.warn output - address "address" bibinfo.check output - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} - -FUNCTION {unpublished} -{ output.bibitem - format.authors "author" output.check - author format.key output - format.date "year" output.check - date.block - format.title "title" output.check - format.doi output - format.url output - format.note "note" output.check - format.eprint output - fin.entry -} - -FUNCTION {default.type} { misc } -READ -FUNCTION {sortify} -{ purify$ - "l" change.case$ -} -INTEGERS { len } -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} -FUNCTION {format.lab.names} -{ 's := - "" 't := - s #1 "{vv~}{ll}" format.name$ - s num.names$ duplicate$ - #2 > - { pop$ - " " * bbl.etal * - } - { #2 < - 'skip$ - { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { - " " * bbl.etal * - } - { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ - * } - if$ - } - if$ - } - if$ -} - -FUNCTION {author.key.label} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {author.editor.key.label} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { editor format.lab.names } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {editor.key.label} -{ editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { editor format.lab.names } - if$ -} - -FUNCTION {calc.short.authors} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label - { type$ "proceedings" = - 'editor.key.label - 'author.key.label - if$ - } - if$ - 'short.list := -} - -FUNCTION {calc.label} -{ calc.short.authors - short.list - "(" - * - year duplicate$ empty$ - { pop$ "????" } - 'skip$ - if$ - * - 'label := -} - -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{ll{ }}{ f{ }}{ jj{ }}" - format.name$ 't := - nameptr #1 > - { - " " * - namesleft #1 = t "others" = and - { "zzzzz" * } - { numnames #2 > nameptr #2 = and - { "zz" * year field.or.null * " " * } - 'skip$ - if$ - t sortify * - } - if$ - } - { t sortify * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {sort.format.title} -{ 't := - "A " #2 - "An " #3 - "The " #4 t chop.word - chop.word - chop.word - sortify - #1 global.max$ substring$ -} -FUNCTION {author.sort} -{ author empty$ - { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { author sort.format.names } - if$ -} -FUNCTION {author.editor.sort} -{ author empty$ - { editor empty$ - { key empty$ - { "to sort, need author, editor, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ - } - { author sort.format.names } - if$ -} -FUNCTION {editor.sort} -{ editor empty$ - { key empty$ - { "to sort, need editor or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ -} -FUNCTION {presort} -{ calc.label - label sortify - " " - * - type$ "book" = - type$ "inbook" = - or - 'author.editor.sort - { type$ "proceedings" = - 'editor.sort - 'author.sort - if$ - } - if$ - #1 entry.max$ substring$ - 'sort.label := - sort.label - * - " " - * - title field.or.null - sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := -} - -ITERATE {presort} -SORT -STRINGS { last.label next.extra } -INTEGERS { last.extra.num number.label } -FUNCTION {initialize.extra.label.stuff} -{ #0 int.to.chr$ 'last.label := - "" 'next.extra := - #0 'last.extra.num := - #0 'number.label := -} -FUNCTION {forward.pass} -{ last.label label = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - label 'last.label := - } - if$ - number.label #1 + 'number.label := -} -FUNCTION {reverse.pass} -{ next.extra "b" = - { "a" 'extra.label := } - 'skip$ - if$ - extra.label 'next.extra := - extra.label - duplicate$ empty$ - 'skip$ - { "{\natexlab{" swap$ * "}}" * } - if$ - 'extra.label := - label extra.label * 'label := -} -EXECUTE {initialize.extra.label.stuff} -ITERATE {forward.pass} -REVERSE {reverse.pass} -FUNCTION {bib.sort.order} -{ sort.label - " " - * - year field.or.null sortify - * - " " - * - title field.or.null - sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := -} -ITERATE {bib.sort.order} -SORT -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - "\begin{thebibliography}{" number.label int.to.str$ * "}" * - write$ newline$ - "\providecommand{\natexlab}[1]{#1}" - write$ newline$ - "\providecommand{\url}[1]{{#1}}" - write$ newline$ - "\providecommand{\urlprefix}{URL }" - write$ newline$ - %%"\expandafter\ifx\csname urlstyle\endcsname\relax" - %%write$ newline$ - %%" \providecommand{\doi}[1]{\discretionary{}{}{}https://doi.org/#1}\else" - %%write$ newline$ - %%" \providecommand{\doi}{\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi" - "\providecommand{\doi}[1]{\url{https://doi.org/#1}}" - write$ newline$ - "\providecommand{\eprint}[2][]{\url{#2}}" - write$ newline$ - " \bibcommenthead " - 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 -%% -%% End of file `spbasic.bst'. - diff --git a/_extensions/christopherkenny/nature/sn-chicago.bst b/_extensions/christopherkenny/nature/sn-chicago.bst deleted file mode 100644 index bb6d2c6..0000000 --- a/_extensions/christopherkenny/nature/sn-chicago.bst +++ /dev/null @@ -1,1808 +0,0 @@ -%%% ==================================================================== -%%% @BibTeX-style-file{ -%%% author = "Glenn Paulley", -%%% version = "4", -%%% date = "28 August 1992", -%%% time = "10:23:39 199", -%%% filename = "chicago.bst", -%%% address = "Data Structuring Group -%%% Department of Computer Science -%%% University of Waterloo -%%% Waterloo, Ontario, Canada -%%% N2L 3G1", -%%% telephone = "(519) 885-1211", -%%% FAX = "(519) 885-1208", -%%% checksum = "26323 1654 5143 37417", -%%% email = "gnpaulle@bluebox.uwaterloo.ca", -%%% codetable = "ISO/ASCII", -%%% keywords = "", -%%% supported = "yes", -%%% abstract = "A BibTeX bibliography style that follows the -%%% `B' reference style of the 13th Edition of -%%% the Chicago Manual of Style. A detailed -%%% feature list is given below.", -%%% docstring = "The checksum field above contains a CRC-16 -%%% checksum as the first value, followed by the -%%% equivalent of the standard UNIX wc (word -%%% count) utility output of lines, words, and -%%% characters. This is produced by Robert -%%% Solovay's checksum utility.", -%%% } -%%% ==================================================================== -% -% "Chicago" BibTeX style, chicago.bst -% =================================== -% -% BibTeX `chicago' style file for BibTeX version 0.99c, LaTeX version 2.09 -% Place it in a file called chicago.bst in the BibTeX search path. -% You need to include chicago.sty as a \documentstyle option. -% (Placing it in the same directory as the LaTeX document should also work.) -% This "chicago" style is based on newapa.bst (American Psych. Assoc.) -% found at ymir.claremont.edu. -% -% Citation format: (author-last-name year) -% (author-last-name and author-last-name year) -% (author-last-name, author-last-name, and author-last-name year) -% (author-last-name et al. year) -% (author-last-name) -% author-last-name (year) -% (author-last-name and author-last-name) -% (author-last-name et al.) -% (year) or (year,year) -% year or year,year -% -% Reference list ordering: alphabetical by author or whatever passes -% for author in the absence of one. -% -% This BibTeX style has support for abbreviated author lists and for -% year-only citations. This is done by having the citations -% actually look like -% -% \citeauthoryear{full-author-info}{abbrev-author-info}{year} -% -% The LaTeX style has to have the following (or similar) -% -% \let\@internalcite\cite -% \def\fullcite{\def\citeauthoryear##1##2##3{##1, ##3}\@internalcite} -% \def\fullciteA{\def\citeauthoryear##1##2##3{##1}\@internalcite} -% \def\shortcite{\def\citeauthoryear##1##2##3{##2, ##3}\@internalcite} -% \def\shortciteA{\def\citeauthoryear##1##2##3{##2}\@internalcite} -% \def\citeyear{\def\citeauthoryear##1##2##3{##3}\@internalcite} -% -% These TeX macro definitions are found in chicago.sty. Additional -% commands to manipulate different components of a citation can be defined -% so that, for example, you can list author's names without parentheses -% if using a citation as a noun or object in a sentence. -% -% This file was originally copied from newapa.bst at ymir.claremont.edu. -% -% Features of chicago.bst: -% ======================= -% -% - full names used in citations, but abbreviated citations are available -% (see above) -% - if an entry has a "month", then the month and year are also printed -% as part of that bibitem. -% - all conjunctions use "and" instead of "\&" -% - major modification from Chicago Manual of Style (13th ed.) is that -% only the first author in a reference appears last name first- -% additional authors appear as J. Q. Public. -% - pages are listed as "pp. xx-xx" in all entry types except -% article entries. -% - book, inbook, and manual use "location: publisher" (or organization) -% for address and publisher. All other types list publishers separately. -% - "pp." are used to identify page numbers for all entry types except -% articles. -% - organization is used as a citation label if neither author nor editor -% is present (for manuals). -% - "et al." is used for long author and editor lists, or when "others" -% is used. -% -% Modifications and bug fixes from newapa.bst: -% =========================================== -% -% - added month, year to bib entries if month is present -% - fixed bug with In proceedings, added necessary comma after title -% - all conjunctions changed to "and" from "\&" -% - fixed bug with author labels in my.full.label: "et al." now is -% generated when "others" is an author name -% - major modification from Chicago Manual of Style (13th ed.) is that -% only the first author in a reference appears last name first- -% additional authors appear as J. Q. Public. -% - pages are listed as "pp. xx-xx" in all entry types except -% article entries. Unnecessary (IMHO) "()" around page numbers -% were removed, and page numbers now don't end with a period. -% - created chicago.sty for use with this bibstyle (required). -% - fixed bugs in FUNCTION {format.vol.num.pages} for missing volume, -% number, and /or pages. Renamed to format.jour.vol. -% - fixed bug in formatting booktitles: additional period an error if -% book has a volume. -% - fixed bug: editors usually given redundant period before next clause -% (format.editors.dot) removed. -% - added label support for organizations, if both author and editor -% are missing (from alpha.bst). If organization is too long, then -% the key field is used for abbreviated citations. -% - In proceedings or books of several volumes, no comma was written -% between the "Volume x" and the page numbers (this was intentional -% in newapa.bst). Fixed. -% - Some journals may not have volumes/numbers, only month/year (eg. -% IEEE Computer). Fixed bug in article style that assumed volume/number -% was always present. -% -% Original documentation for newapa.sty: -% ===================================== -% -% This version was made by modifying the master file made by -% Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU), and the 'named' BibTeX -% style of Peter F. Patel-Schneider. -% -% Copyright (C) 1985, all rights reserved. -% Copying of this file is authorized only if either -% (1) you make absolutely no changes to your copy, including name, or -% (2) if you do make changes, you name it something other than 'newapa.bst'. -% There are undoubtably bugs in this style. If you make bug fixes, -% improvements, etc. please let me know. My e-mail address is: -% spencer@cgrg.ohio.state.edu or 71160.3141@compuserve.com -% -% This style was made from 'plain.bst', 'named.bst', and 'apalike.bst', -% with lots of tweaking to make it look like APA style, along with tips -% from Young Ryu and Brian Reiser's modifications of 'apalike.bst'. - -ENTRY - { address - author - booktitle - chapter - edition - editor - howpublished - institution - journal - key - keywords - month - note - doi - number - organization - pages - publisher - school - series - title - type - volume - year - eprint - archive - archivePrefix - primaryClass - eid - adsurl - adsnote - version - } - {} - { label.year extra.label sort.year sort.label } - -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 u } - -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { ", " * write$ } - { output.state after.block = - { add.period$ write$ - newline$ - "\newblock " write$ - } - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - s -} - -FUNCTION {add.blank} -{ " " * before.all 'output.state := -} - -% Use a colon to separate output. Used only for address/publisher -% combination in book/inbook types, address/institution for manuals, -% and organization:publisher for proceedings (inproceedings). -% -FUNCTION {output.nonnull.colon} -{ 's := - output.state mid.sentence = - { ": " * write$ } - { output.state after.block = - { add.period$ write$ - newline$ - "\newblock " write$ - } - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - s -} - -FUNCTION {output} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull - if$ -} - -FUNCTION {output.colon} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull.colon - if$ -} - -FUNCTION {output.check} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull - if$ -} - -FUNCTION {output.check.colon} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull.colon - if$ -} - -FUNCTION {output.year.check} -{ year empty$ - { "empty year in " cite$ * warning$ } - { write$ - " " year * extra.label * - month empty$ - { "" * } - { ", " * month * "" * } - if$ - mid.sentence 'output.state := - } - if$ -} - - -FUNCTION {fin.entry} -{ add.period$ - write$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} - -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} - -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - -FUNCTION {new.block.checka} -{ empty$ - 'skip$ - 'new.block - if$ -} - -FUNCTION {new.block.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.block - if$ -} - -FUNCTION {new.sentence.checka} -{ empty$ - 'skip$ - 'new.sentence - if$ -} - -FUNCTION {new.sentence.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.sentence - if$ -} - -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} - -% -% Emphasize the top string on the stack. -% -FUNCTION {emphasize} -{ duplicate$ empty$ - { pop$ "" } - { "{\em " swap$ * "}" * } - if$ -} - -% -% Emphasize the top string on the stack, but add a trailing space. -% -FUNCTION {emphasize.space} -{ duplicate$ empty$ - { pop$ "" } - { "{\em " swap$ * "\/}" * } - if$ -} - -INTEGERS { nameptr namesleft numnames } -% -% Format bibliographical entries with the first author last name first, -% and subsequent authors with initials followed by last name. -% All names are formatted in this routine. -% -FUNCTION {format.names} -{ 's := - #1 'nameptr := % nameptr = 1; - s num.names$ 'numnames := % numnames = num.name$(s); - numnames 'namesleft := - { namesleft #0 > } - - { nameptr #1 = - {s nameptr "{vv~}{ll}{, jj}{, f{.}.}" format.name$ 't := } - {s nameptr "{f{.}.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - nameptr #1 > - { namesleft #1 > - { ", " * t * } - { numnames #2 > - { "," * } - 'skip$ - if$ - t "others" = - { " et~al." * } - { " and " * t * } % from Chicago Manual of Style - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := % nameptr += 1; - namesleft #1 - 'namesleft := % namesleft =- 1; - } - while$ -} - -FUNCTION {my.full.label} -{ 's := - #1 'nameptr := % nameptr = 1; - s num.names$ 'numnames := % numnames = num.name$(s); - numnames 'namesleft := - { namesleft #0 > } - - { s nameptr "{vv~}{ll}" format.name$ 't := % get the next name - nameptr #1 > - { namesleft #1 > - { ", " * t * } - { numnames #2 > - { "," * } - 'skip$ - if$ - t "others" = - { " et~al." * } - { " and " * t * } % from Chicago Manual of Style - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := % nameptr += 1; - namesleft #1 - 'namesleft := % namesleft =- 1; - } - while$ - -} - -FUNCTION {format.names.fml} -% -% Format names in "familiar" format, with first initial followed by -% last name. Like format.names, ALL names are formatted. -% -{ 's := - #1 'nameptr := % nameptr = 1; - s num.names$ 'numnames := % numnames = num.name$(s); - numnames 'namesleft := - { namesleft #0 > } - - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := - - nameptr #1 > - { namesleft #1 > - { ", " * t * } - { numnames #2 > - { "," * } - 'skip$ - if$ - t "others" = - { " et~al." * } - { " and " * t * } -% { " \& " * t * } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := % nameptr += 1; - namesleft #1 - 'namesleft := % namesleft =- 1; - } - while$ -} - -FUNCTION {format.authors} -{ author empty$ - { "" } - { author format.names } - if$ -} - -FUNCTION {format.key} -{ empty$ - { key field.or.null } - { "" } - if$ -} - -% -% Format editor names for use in the "in" types: inbook, incollection, -% inproceedings: first initial, then last names. When editors are the -% LABEL for an entry, then format.editor is used which lists editors -% by last name first. -% -FUNCTION {format.editors.fml} -{ editor empty$ - { "" } - { editor format.names.fml - editor num.names$ #1 > - { " (Eds.)" * } - { " (Ed.)" * } - if$ - } - if$ -} - -% -% Format editor names for use in labels, last names first. -% -FUNCTION {format.editors} -{ editor empty$ - { "" } - { editor format.names - editor num.names$ #1 > - { " eds." * } - { " ed." * } - if$ - } - if$ -} - -FUNCTION {in.format.editors} -{ editor empty$ - { "" } - { editor format.names - editor num.names$ #1 > - { " eds. " swap$ * } - { " ed. " swap$ * } - if$ - } - if$ -} - -FUNCTION {format.title} -{ title empty$ - { "" } - { title "t" change.case$ } - if$ -} - -% Note that the APA style requres case changes -% in article titles. The following does not -% change cases. If you perfer it, uncomment the -% following and comment out the above. - -%FUNCTION {format.title} -%{ title empty$ -% { "" } -% { title } -% if$ -%} - -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 {format.btitle} -{ edition empty$ - { title emphasize } - { title empty$ - { title emphasize } - { volume empty$ % gnp - check for volume, then don't need period - { "{\em " title * "\/} (" * edition * " ed.)" * "." * } - { "{\em " title * "\/} (" * edition * " ed.)" * } - if$ - } - if$ - } - if$ -} - -FUNCTION {format.emphasize.booktitle} -{ edition empty$ - { booktitle emphasize } - { booktitle empty$ - { booktitle emphasize } - { volume empty$ % gnp - extra period an error if book has a volume - { "{\em " booktitle * "\/} (" * edition * " ed.)" * "." *} - { "{\em " booktitle * "\/} (" * edition * " ed.)" * } - if$ - } - if$ - } - if$ - } - - -FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} - -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "can't use both " swap$ * " fields in " * cite$ * warning$ } - if$ -} - -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { "Volume" volume tie.or.space.connect % gnp - changed to mixed case - series empty$ - 'skip$ - { " of " * series emphasize * } - if$ - "volume and number" number either.or.check - } - if$ -} - -FUNCTION {format.number.series} -{ volume empty$ - { number empty$ - { series field.or.null } - { output.state mid.sentence = - { "Number" } % gnp - changed to mixed case always - { "Number" } - if$ - number tie.or.space.connect - series empty$ - { "there's a number but no series in " cite$ * warning$ } - { " in " * series * } - if$ - } - if$ - } - { "" } - 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 empty$ - { "" } - { pages multi.page.check - { "pp.\ " pages n.dashify tie.or.space.connect } % gnp - removed () - { "pp.\ " pages tie.or.space.connect } - if$ - } - if$ -} - - -FUNCTION {format.in.pages} -{ pages empty$ - { "" } - { pages multi.page.check - { "" pages n.dashify tie.or.space.connect } % gnp - removed () - { "" pages tie.or.space.connect } - if$ - } - if$ -} - -% By Young (and Spencer) -% GNP - fixed bugs with missing volume, number, and/or pages -% -% Format journal, volume, number, pages for article types. -% -FUNCTION {format.jour.vol} -{ journal empty$ - { "no journal in " cite$ * warning$ - "" } - { journal emphasize.space } - if$ - number empty$ - { volume empty$ - { "no number and no volume in " cite$ * warning$ - "" * } - { "~" * Volume * "" * } - if$ - } - { volume empty$ - {"no volume for " cite$ * warning$ - "~(" * number * ")" * } - { "~" * - volume emphasize.space - "(" * number * ")" * * } - if$ - } - if$ - pages empty$ - {"page numbers missing in " cite$ * warning$ - "" * } % gnp - place a null string on the stack for output - { duplicate$ empty$ - { pop$ format.pages } - { ": " * pages n.dashify * } % gnp - removed pp. for articles - if$ - } - if$ -} - -FUNCTION {format.chapter.pages} -{ chapter empty$ - 'format.pages - { type empty$ - { "Chapter" } % gnp - changed to mixed case - { type "t" change.case$ } - if$ - chapter tie.or.space.connect - pages empty$ - {"page numbers missing in " cite$ * warning$} % gnp - added check - { ", " * format.pages * } - if$ - } - if$ -} - - -FUNCTION {format.in.chapter.pages} -{ chapter empty$ - 'format.in.pages - { type empty$ - { "Chapter" } % gnp - changed to mixed case - { type "t" change.case$ } - if$ - chapter tie.or.space.connect - pages empty$ - {"page numbers missing in " cite$ * warning$} % gnp - added check - { ", " * format.in.pages * } - if$ - } - if$ -} - -FUNCTION {format.in.ed.booktitle} -{ booktitle empty$ - { "" } - { editor empty$ - { "In " format.emphasize.booktitle * } - { "In " format.editors.fml * ", " * format.emphasize.booktitle * } - if$ - } - if$ -} - -FUNCTION {format.in.coll.ed.booktitle} -{ booktitle empty$ - { "" } - { editor empty$ - { "" format.emphasize.booktitle * } - { "In " format.emphasize.booktitle * ", " * in.format.editors * } - if$ - } - if$ -} - -FUNCTION {format.thesis.type} -{ type empty$ - 'skip$ - { pop$ - type "t" change.case$ - } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { "Technical Report" } - 'type - if$ - number empty$ - { "t" change.case$ } - { number tie.or.space.connect } - if$ -} - -FUNCTION {format.article.crossref} -{ "See" - "\citeN{" * crossref * "}" * -} - -FUNCTION {format.crossref.editor} -{ editor #1 "{vv~}{ll}" format.name$ - editor num.names$ duplicate$ - #2 > - { pop$ " et~al." * } - { #2 < - 'skip$ - { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { " et~al." * } - { " and " * editor #2 "{vv~}{ll}" format.name$ * } - if$ - } - if$ - } - if$ -} - -FUNCTION {format.book.crossref} -{ volume empty$ - { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ - "In " - } - { "Volume" volume tie.or.space.connect % gnp - changed to mixed case - " of " * - } - if$ - editor empty$ - editor field.or.null author field.or.null = - or - { key empty$ - { series empty$ - { "need editor, key, or series for " cite$ * " to crossref " * - crossref * warning$ - "" * - } - { "{\em " * series * "\/}" * } - if$ - } - { key * } - if$ - } - { format.crossref.editor * } - if$ - " \citeN{" * crossref * "}" * -} - -FUNCTION {format.incoll.inproc.crossref} -{ "See" - " \citeN{" * crossref * "}" * -} - -% format.lab.names: -% -% determines "short" names for the abbreviated author information. -% "Long" labels are created in calc.label, using the routine my.full.label -% to format author and editor fields. -% -% There are 4 cases for labels. (n=3 in the example) -% a) one author Foo -% b) one to n Foo, Bar and Baz -% c) use of "and others" Foo, Bar et al. -% d) more than n Foo et al. -% -FUNCTION {format.lab.names} -{ 's := - s num.names$ 'numnames := - numnames #2 > % change number to number of others allowed before - % forcing "et al". - { s #1 "{vv~}{ll}" format.name$ " et~al." * } - { - numnames #1 - 'namesleft := - #2 'nameptr := - s #1 "{vv~}{ll}" format.name$ - { namesleft #0 > } - { nameptr numnames = - { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { " et~al." * } - { " and " * s nameptr "{vv~}{ll}" format.name$ * } - if$ - } - { ", " * s nameptr "{vv~}{ll}" format.name$ * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - } - if$ -} - -FUNCTION {author.key.label} -{ author empty$ - { key empty$ - { "no key, author in " cite$ * warning$ - cite$ #1 #3 substring$ } - 'key - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {editor.key.label} -{ editor empty$ - { key empty$ - { "no key, editor in " cite$ * warning$ - cite$ #1 #3 substring$ } - 'key - if$ - } - { editor format.lab.names } - if$ -} - -FUNCTION {author.key.organization.label} -% -% added - gnp. Provide label formatting by organization if author is null. -% -{ author empty$ - { organization empty$ - { key empty$ - { "no key, author or organization in " cite$ * warning$ - cite$ #1 #3 substring$ } - 'key - if$ - } - { organization } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {editor.key.organization.label} -% -% added - gnp. Provide label formatting by organization if editor is null. -% -{ editor empty$ - { organization empty$ - { key empty$ - { "no key, editor or organization in " cite$ * warning$ - cite$ #1 #3 substring$ } - 'key - if$ - } - { organization } - if$ - } - { editor format.lab.names } - if$ -} - -FUNCTION {author.editor.key.label} -{ author empty$ - { editor empty$ - { key empty$ - { "no key, author, or editor in " cite$ * warning$ - cite$ #1 #3 substring$ } - 'key - if$ - } - { editor format.lab.names } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {calc.label} -% -% Changed - GNP. See also author.organization.sort, editor.organization.sort -% Form label for BibTeX entry. The classification of which fields are used -% for which type of entry (book, inbook, etc.) are taken from alpha.bst. -% The change here from newapa is to also include organization as a -% citation label if author or editor is missing. -% -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label - { type$ "proceedings" = - 'editor.key.organization.label - { type$ "manual" = - 'author.key.organization.label - 'author.key.label - if$ - } - if$ - } - if$ - - author empty$ % generate the full label citation information. - { editor empty$ - { organization empty$ - { "no author, editor, or organization in " cite$ * warning$ - "??" } - { organization } - if$ - } - { editor my.full.label } - if$ - } - { author my.full.label } - if$ - -% leave label on the stack, to be popped when required. - - "}{" * swap$ * "}{" * -% year field.or.null purify$ #-1 #4 substring$ * -% -% save the year for sort processing afterwards (adding a, b, c, etc.) -% - year field.or.null purify$ #-1 #4 substring$ - 'label.year := -} - -FUNCTION {output.bibitem} -{ newline$ - - "\bibitem[\protect\citeauthoryear{" write$ - calc.label write$ - sort.year write$ - "}]{" write$ - - cite$ write$ - "}" write$ - newline$ - "" - before.all 'output.state := -} - -FUNCTION {output.doi} -{ - doi empty$ - { skip$ } - { "\doi{" doi * "}" * output } - if$ -} - -FUNCTION {format.archive} -{ - archivePrefix empty$ - { "" } - { archivePrefix ":" *} - if$ -} - -FUNCTION {format.primaryClass} -{ - primaryClass empty$ - { "" } - { "{[" primaryClass * "]}" *} - if$ -} - -FUNCTION {format.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {format.softmisc.archive} -{ - archivePrefix empty$ - { "" } - { "" } - if$ -} - -FUNCTION {format.softmisc.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {article} -{ output.bibitem - format.authors - "author" output.check -add.period$ "" * - author format.key output % added - output.year.check % added - new.block - format.title - "title" output.check - new.block - crossref missing$ - { format.jour.vol output - } - { format.article.crossref output.nonnull - format.pages output - } - if$ - new.block - output.doi - new.block - format.eprint output - add.blank - format.primaryClass output - fin.entry -} - -FUNCTION {book} -{ output.bibitem - author empty$ - { format.editors - "author and editor" output.check } - { format.authors - output.nonnull -add.period$ "" * - crossref missing$ - { "author and editor" editor either.or.check } - 'skip$ - if$ - } - if$ - output.year.check % added - new.block - format.btitle - "title" output.check - crossref missing$ - { format.bvolume output - new.block - format.number.series output - new.sentence - address output - publisher "publisher" output.check.colon - } - { new.block - format.book.crossref output.nonnull - } - if$ - new.block - note output - fin.entry -} - -FUNCTION {booklet} -{ output.bibitem - format.authors output - author format.key output % added - output.year.check % added - new.block - format.title - "title" output.check - new.block - howpublished output - address output - new.block - note output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { format.editors - "author and editor" output.check - } - { format.authors output.nonnull - crossref missing$ - { "author and editor" editor either.or.check } - 'skip$ - if$ - } - if$ - output.year.check % added - new.block - format.btitle - "title" output.check - crossref missing$ - { format.bvolume output - format.chapter.pages - "chapter and pages" output.check - new.block - format.number.series output - new.sentence - address output - publisher - "publisher" output.check.colon - } - { format.chapter.pages "chapter and pages" output.check - new.block - format.book.crossref output.nonnull - } - if$ - new.block - note output - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - format.authors - "author" output.check -add.period$ "" * - author format.key output % added - output.year.check % added - new.block - format.title - "title" output.check - crossref missing$ - { format.in.coll.ed.booktitle -"booktitle" output.check - format.bvolume output - format.number.series output - format.in.chapter.pages output % gnp - was special.output.nonnull -% left out comma before page numbers - new.sentence - address output - publisher "publisher" output.check.colon - } - { format.incoll.inproc.crossref - output.nonnull - format.in.chapter.pages output - } - if$ - new.block - note output - new.block - output.doi - fin.entry -} - -FUNCTION {inproceedings} -{ output.bibitem - format.authors - "author" output.check - author format.key output % added - output.year.check % added - new.block - format.title - "title" output.check - new.block - crossref missing$ - { format.in.ed.booktitle - "booktitle" output.check - format.bvolume output - format.number.series output - address output - format.pages output - new.sentence - organization output - publisher output.colon - } - { format.incoll.inproc.crossref output.nonnull - format.pages output - } - if$ - new.block - note output - fin.entry -} - -FUNCTION {conference} { inproceedings } - -FUNCTION {manual} -{ output.bibitem - author empty$ - { editor empty$ - { organization "organization" output.check - organization format.key output } % if all else fails, use key - { format.editors "author and editor" output.check } - if$ - } - { format.authors output.nonnull } - if$ - output.year.check % added - new.block - format.btitle - "title" output.check - organization address new.block.checkb -% Reversed the order of "address" and "organization", added the ":". - address output - organization "organization" output.check.colon -% address output -% ":" output -% organization output - new.block - note output - fin.entry -} - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors - "author" output.check - author format.key output % added - output.year.check % added - new.block - format.title - "title" output.check - new.block - "Master's thesis" format.thesis.type output.nonnull - school "school" output.check - address output - new.block - note output - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output -add.period$ "" * - author format.key output % added - output.year.check % added - title howpublished new.block.checkb - format.title output - new.block - howpublished output - new.block - note output - fin.entry -} - -FUNCTION {softmisc} -{ output.bibitem - format.authors output -add.period$ "" * - author format.key output % added - %%output.year.check % added - year output - title howpublished new.block.checkb - format.title output - version output - new.block - howpublished output - new.block - note output - new.block - format.softmisc.eprint output - fin.entry -} - -FUNCTION {phdthesis} -{ output.bibitem - format.authors - "author" output.check - author format.key output % added - output.year.check % added - new.block - format.btitle - "title" output.check - new.block - "Ph.\ D. thesis" format.thesis.type output.nonnull - school "school" output.check - address output - new.block - note output - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - editor empty$ - { organization output - organization format.key output } % gnp - changed from author format.key - { format.editors output.nonnull } - if$ -% author format.key output % gnp - removed (should be either -% editor or organization - output.year.check % added (newapa) - new.block - format.btitle - "title" output.check - format.bvolume output - format.number.series output - address output - new.sentence - organization output - publisher output.colon - new.block - note output - fin.entry -} - -FUNCTION {techreport} -{ output.bibitem - format.authors - "author" output.check - author format.key output % added - output.year.check % added - new.block - format.title - "title" output.check - new.block - format.tr.number output.nonnull - institution - "institution" output.check - address output - new.block - note output - fin.entry -} - -FUNCTION {unpublished} -{ output.bibitem - format.authors - "author" output.check - author format.key output % added - output.year.check % added - new.block - format.title - "title" output.check - new.block - note "note" output.check - fin.entry -} - -FUNCTION {default.type} { misc } - -MACRO {jan} {"January"} - -MACRO {feb} {"February"} - -MACRO {mar} {"March"} - -MACRO {apr} {"April"} - -MACRO {may} {"May"} - -MACRO {jun} {"June"} - -MACRO {jul} {"July"} - -MACRO {aug} {"August"} - -MACRO {sep} {"September"} - -MACRO {oct} {"October"} - -MACRO {nov} {"November"} - -MACRO {dec} {"December"} - -MACRO {acmcs} {"ACM Computing Surveys"} - -MACRO {acta} {"Acta Informatica"} - -MACRO {ai} {"Artificial Intelligence"} - -MACRO {cacm} {"Communications of the ACM"} - -MACRO {ibmjrd} {"IBM Journal of Research and Development"} - -MACRO {ibmsj} {"IBM Systems Journal"} - -MACRO {ieeese} {"IEEE Transactions on Software Engineering"} - -MACRO {ieeetc} {"IEEE Transactions on Computers"} - -MACRO {ieeetcad} - {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} - -MACRO {ipl} {"Information Processing Letters"} - -MACRO {jacm} {"Journal of the ACM"} - -MACRO {jcss} {"Journal of Computer and System Sciences"} - -MACRO {scp} {"Science of Computer Programming"} - -MACRO {sicomp} {"SIAM Journal on Computing"} - -MACRO {tocs} {"ACM Transactions on Computer Systems"} - -MACRO {tods} {"ACM Transactions on Database Systems"} - -MACRO {tog} {"ACM Transactions on Graphics"} - -MACRO {toms} {"ACM Transactions on Mathematical Software"} - -MACRO {toois} {"ACM Transactions on Office Information Systems"} - -MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} - -MACRO {tcs} {"Theoretical Computer Science"} - -READ - -FUNCTION {sortify} -{ purify$ - "l" change.case$ -} - -INTEGERS { len } - -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - - - -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { nameptr #1 > - { " " * } - 'skip$ - if$ - s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := - nameptr numnames = t "others" = and - { " et~al" * } - { 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 {editor.sort} -{ editor empty$ - { key empty$ - { "to sort, need editor or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ -} - -FUNCTION {author.editor.sort} -{ author empty$ - { "missing author in " cite$ * warning$ - 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 {author.organization.sort} -% -% added - GNP. Stack author or organization for sorting (from alpha.bst). -% Unlike alpha.bst, we need entire names, not abbreviations -% -{ author empty$ - { organization empty$ - { key empty$ - { "to sort, need author, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { organization sortify } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {editor.organization.sort} -% -% added - GNP. Stack editor or organization for sorting (from alpha.bst). -% Unlike alpha.bst, we need entire names, not abbreviations -% -{ editor empty$ - { organization empty$ - { key empty$ - { "to sort, need editor, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { organization sortify } - if$ - } - { editor sort.format.names } - if$ -} - -FUNCTION {presort} -% -% Presort creates the bibentry's label via a call to calc.label, and then -% sorts the entries based on entry type. Chicago.bst adds support for -% including organizations as the sort key; the following is stolen from -% alpha.bst. -% -{ calc.label sortify % recalculate bibitem label - year field.or.null purify$ #-1 #4 substring$ * % add year - " " - * - type$ "book" = - type$ "inbook" = - or - 'author.editor.sort - { type$ "proceedings" = - 'editor.organization.sort - { type$ "manual" = - 'author.organization.sort - 'author.sort - if$ - } - if$ - } - if$ - #1 entry.max$ substring$ % added for newapa - 'sort.label := % added for newapa - sort.label % added for newapa - * - " " - * - title field.or.null - sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := -} - -ITERATE {presort} - -SORT % by label, year, author/editor, title - -STRINGS { last.label next.extra } - -INTEGERS { last.extra.num } - -FUNCTION {initialize.extra.label.stuff} -{ #0 int.to.chr$ 'last.label := - "" 'next.extra := - #0 'last.extra.num := -} - -FUNCTION {forward.pass} -% -% Pass through all entries, comparing current entry to last one. -% Need to concatenate year to the stack (done by calc.label) to determine -% if two entries are the same (see presort) -% -{ last.label - calc.label year field.or.null purify$ #-1 #4 substring$ * % add year - #1 entry.max$ substring$ = % are they equal? - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - calc.label year field.or.null purify$ #-1 #4 substring$ * % add year - #1 entry.max$ substring$ 'last.label := % assign to last.label - } - if$ -} - -FUNCTION {reverse.pass} -{ next.extra "b" = - { "a" 'extra.label := } - 'skip$ - if$ - label.year extra.label * 'sort.year := - extra.label 'next.extra := -} - -EXECUTE {initialize.extra.label.stuff} - -ITERATE {forward.pass} - -REVERSE {reverse.pass} - -FUNCTION {bib.sort.order} -{ sort.label - " " - * - year field.or.null sortify - * - " " - * - title field.or.null - sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := -} - -ITERATE {bib.sort.order} - -SORT % by sort.label, year, title --- giving final bib. order. - -FUNCTION {begin.bib} - -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - "\begin{thebibliography}{}" write$ newline$ - "\providecommand{\doi}[1]{\url{https://doi.org/#1}}" - write$ newline$ - "\bibcommenthead" write$ newline$ -} - - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -FUNCTION {end.bib} -{ newline$ - "\end{thebibliography}" write$ newline$ -} - -EXECUTE {end.bib} - diff --git a/_extensions/christopherkenny/nature/sn-jnl.cls b/_extensions/christopherkenny/nature/sn-jnl.cls deleted file mode 100644 index bb00241..0000000 --- a/_extensions/christopherkenny/nature/sn-jnl.cls +++ /dev/null @@ -1,1791 +0,0 @@ -%% -%% This is file `sn-jnl.cls', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% classes.dtx (with options: `sn-jnl') -%% -%% This is a generated file. -%% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 -%% The LaTeX3 Project and any individual authors listed elsewhere -%% in this file. -%% -%% This file was generated from file(s) of the LaTeX base system. -%% -------------------------------------------------------------- -%% -%% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3c -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3c or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This file has the LPPL maintenance status "maintained". -%% -%% This file may only be distributed together with a copy of the LaTeX -%% base system. You may however distribute the LaTeX base system without -%% such generated files. -%% -%% The list of all files belonging to the LaTeX base distribution is -%% given in the file `manifest.txt'. See also `legal.txt' for additional -%% information. -%% -%% The list of derived (unpacked) files belonging to the distribution -%% and covered by LPPL is defined by the unpacking scripts (with -%% extension .ins) which are part of the distribution. -%% \CharacterTable -%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -%% Digits \0\1\2\3\4\5\6\7\8\9 -%% Exclamation \! Double quote \" Hash (number) \# -%% Dollar \$ Percent \% Ampersand \& -%% Acute accent \' Left paren \( Right paren \) -%% Asterisk \* Plus \+ Comma \, -%% Minus \- Point \. Solidus \/ -%% Colon \: Semicolon \; Less than \< -%% Equals \= Greater than \> Question mark \? -%% Commercial at \@ Left bracket \[ Backslash \\ -%% Right bracket \] Circumflex \^ Underscore \_ -%% Grave accent \` Left brace \{ Vertical bar \| -%% Right brace \} Tilde \~} -\NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesClass{sn-jnl} - [2019/11/18 v0.1: An authoring template for Springer Journal articles] - -\newif\if@restonecol -\newif\if@titlepage \@titlepagefalse -\newif\if@cropmarkson \@cropmarksonfalse -\newif\ifDoublecol \Doublecolfalse% -\newif\ifpagebody\global\pagebodyfalse% -\newif\if@iicol\global\@iicolfalse% -\newif\if@bibcomment\global\@bibcommentfalse% -\newif\if@referee\global\@refereefalse% -\newif\if@vrulerlinenumberon\global\@vrulerlinenumberonfalse% -\newif\if@pdflatex\global\@pdflatexfalse% -\newif\if@remarkboxon\global\@remarkboxonfalse% - -\newif\if@Numbered@refstyle\global\@Numbered@refstylefalse% Namedate - -\newif\if@Spr@basic@refstyle\global\@Spr@basic@refstylefalse% 1.Basic Springer Nature Reference Style/Chemistry Reference Style -> sn-basic.bst -\newif\if@Mathphys@numrefstyle\global\@Mathphys@numrefstylefalse% 2.Math and Physical Sciences Reference Style -> sn-mathphys.bst -\newif\if@Mathphys@ayrefstyle\global\@Mathphys@ayrefstylefalse% 2.Math and Physical Sciences Reference Style -> sn-mathphys.bst -\newif\if@APS@refstyle\global\@APS@refstylefalse% 3.American Physical Society (APS) Reference Style -> sn-APS.bst -\newif\if@Vancouver@refstyle\global\@Vancouver@refstylefalse% 4.Vancouver Reference Style -> sn-vancouver.bst -\newif\if@APA@refstyle\global\@APA@refstylefalse% 5.APA-based Social Sciences/Psychology Reference Style -> sn-apacite.bst -\newif\if@Chicago@refstyle\global\@Chicago@refstylefalse% 6.Chicago-based Humanities Reference Style -> sn-chicago.bst -\newif\if@Standard@Nature@refstyle\global\@Standard@Nature@refstylefalse% 7.Standard Nature Research Style -> sn-nature.bst - -%% Template Options -\DeclareOption{a4paper}{\PassOptionsToPackage{a4}{crop}} -\DeclareOption{a3paper}{\PassOptionsToClass{a3paper}{article}\PassOptionsToPackage{a3}{crop}} -\DeclareOption{centre}{\PassOptionsToPackage{center}{crop}} -\DeclareOption{crop}{\PassOptionsToPackage{frame}{crop}\global\@cropmarksontrue} -\DeclareOption{nocrop}{\PassOptionsToPackage{off}{crop}\global\@cropmarksontrue} -\DeclareOption{info}{\PassOptionsToPackage{info}{crop}} -\DeclareOption{noinfo}{\PassOptionsToPackage{noinfo}{crop}} - -%% Classfile Options -\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} -\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue} -\DeclareOption{draft}{\setlength\overfullrule{5pt}} -\DeclareOption{titlepage}{\@titlepagetrue} -\DeclareOption{notitlepage}{\@titlepagefalse} -\DeclareOption{onecolumn}{\@twocolumnfalse} -\DeclareOption{twocolumn}{\@twocolumntrue} -\DeclareOption{openbib}{\let\if@openbib\iftrue} -\DeclareOption{pagegrid}{\global\pagebodytrue}% -\DeclareOption{iicol}{\global\@iicoltrue}% -\DeclareOption{bibcomment}{\global\@bibcommenttrue}% -\DeclareOption{referee}{\global\@refereetrue}% -\DeclareOption{lineno}{\global\@vrulerlinenumberontrue}% -\DeclareOption{pdflatex}{\global\@pdflatextrue}% -\DeclareOption{remarkboxoff}{\global\@remarkboxonfalse}% - -\DeclareOption{sn-basic}{\global\@Spr@basic@refstyletrue}% -\DeclareOption{sn-mathphys-num}{\global\@Mathphys@numrefstyletrue}% -\DeclareOption{sn-mathphys-ay}{\global\@Mathphys@ayrefstyletrue}% -\DeclareOption{sn-aps}{\global\@APS@refstyletrue}% -\DeclareOption{sn-vancouver}{\global\@Vancouver@refstyletrue}% -\DeclareOption{sn-apa}{\global\@APA@refstyletrue}% -\DeclareOption{sn-chicago}{\global\@Chicago@refstyletrue}% -\DeclareOption{sn-nature}{\global\@Standard@Nature@refstyletrue}% - -\DeclareOption{Numbered}{\global\@Numbered@refstyletrue}% -\DeclareOption{NameDate}{\global\@Numbered@refstylefalse}% - - -%%\ExecuteOptions{twosidecrop,crop,centre,info,croppage} -\ProcessOptions -\LoadClass[twoside,fleqn]{article} - -\gdef\refereedefns{% -\if@referee% -\usepackage{setspace}% -\doublespacing% -\fi}% -\refereedefns% - -%% General Packages Used -% -%\AtBeginDocument{% -%%\newcommand*\ExtraParaSkip{12pt}% -%\SetFootnoteHook{\hspace*{-8pt}}% -%\DeclareNewFootnote{A}[gobble]% -%\setlength{\skip\footinsA}{0pt} -%}% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%% Fonts & Sizes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -%% Fonts Used -%%\RequirePackage[T1]{fontenc}% -% -\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}% -\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}% -\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}% -\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}% -\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}% -\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}% -\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}% -\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal}% -\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal}% -% -\renewcommand\normalsize{% - \@setfontsize\normalsize{10bp}{12bp}% - \abovedisplayskip 12\p@ \@plus2\p@ \@minus1\p@ - \abovedisplayshortskip \z@ \@plus3\p@% - \belowdisplayshortskip 3\p@ \@plus3\p@ \@minus3\p@% - \belowdisplayskip \abovedisplayskip% - \let\@listi\@listI}% -\normalsize% -% -\newcommand\medsize{% - \@setfontsize\small\@xipt{13}% - \abovedisplayskip 5\p@ \@plus3\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus2\p@ - \belowdisplayshortskip 3\p@ \@plus2\p@ \@minus2\p@ - \def\@listi{\leftmargin\leftmargini - \topsep 4\p@ \@plus2\p@ \@minus2\p@ - \parsep 2\p@ \@plus\p@ \@minus\p@ - \itemsep \parsep}% - \belowdisplayskip \abovedisplayskip}% -% -\renewcommand\small{% - \@setfontsize\small\@ixpt{11}% - \abovedisplayskip 5\p@ \@plus3\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus2\p@ - \belowdisplayshortskip 3\p@ \@plus2\p@ \@minus2\p@ - \def\@listi{\leftmargin\leftmargini - \topsep 4\p@ \@plus2\p@ \@minus2\p@ - \parsep 2\p@ \@plus\p@ \@minus\p@ - \itemsep \parsep}% - \belowdisplayskip \abovedisplayskip}% -% -\renewcommand\footnotesize{% - \@setfontsize\footnotesize{7}{8}% - \abovedisplayskip 5\p@ \@plus2\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus\p@ - \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ - \def\@listi{\leftmargin\leftmargini - \topsep 3\p@ \@plus\p@ \@minus\p@ - \parsep 2\p@ \@plus\p@ \@minus\p@ - \itemsep \parsep}% - \belowdisplayskip \abovedisplayskip} -% -\renewcommand\scriptsize{\@setfontsize\scriptsize\@ixpt\@ixpt}% -\newcommand\scrisize{\@setfontsize\scrisize{9.3}{9}}% -\renewcommand\tiny{\@setfontsize\tiny\@vpt\@vipt}% -\renewcommand\large{\@setfontsize\large{12}{14}}% -\newcommand\larg{\@setfontsize\larg{11}{13}}% -\renewcommand\Large{\@setfontsize\Large{16}{18}}% -\renewcommand\LARGE{\@setfontsize\LARGE\@xviipt{22}}% -\renewcommand\huge{\@setfontsize\huge\@xxpt{25}}% -\renewcommand\Huge{\@setfontsize\Huge\@xxvpt{30}}% -% -\DeclareMathSizes{\@ixpt}{\@ixpt}{7}{5}% -\DeclareMathSizes{\@xpt}{\@xpt}{7}{5}% -\DeclareMathSizes{\@xipt}{\@xipt}{7}{5}% -% -\DeclareRobustCommand*\textsubscript[1]{% - \@textsubscript{\selectfont#1}}% -% -\def\@textsubscript#1{% - {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}}% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%% Layout Settings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -%%\RequirePackage{geometry}% -% -\newlength\columnhsize% -% -%% Regular Pages (for Opening page - redefined) -% -\if@iicol% -% -%% for double column used sn-medium design trim and page size %% -% -\setlength\headheight{12pt}% -\setlength\headsep{5.15mm}% -% -\setlength\columnsep{8mm}% -\setlength\columnhsize{76mm}% -% -\setlength\maxdepth{0pt}% -\setlength\footnotesep{7\p@}% -\setlength{\skip\footins}{18\p@ \@plus 6\p@ \@minus 3\p@}% -% -\RequirePackage[% - reversemp, - paperwidth=210mm, - paperheight=297mm, - top={26mm}, - headheight={12pt}, - headsep={5.15mm}, - text={160mm,216mm}, - marginparsep=5mm, - marginparwidth=12mm, - bindingoffset=6mm, - footskip=10.13mm,twocolumn]{geometry}% -% -\renewcommand\footnoterule{% - \kern3\p@% - \hrule \@height.2mm \@width\columnwidth% - \kern5.5\p@}% -% -\else% -%% For single column used smallcond design trim and page size %% -\RequirePackage[% - reversemp, - paperwidth=210mm, - paperheight=297mm, - top={26mm}, - headheight={5.5pt}, - headsep={5.6mm}, - text={31pc,194.25mm}, - marginparsep=5mm, - marginparwidth=12mm, - bindingoffset=6mm, - footskip=10mm]{geometry} -% - \setlength\maxdepth{0pt}% - \setlength\columnsep{5mm}% - \setlength{\marginparsep}{5mm}% - \setlength{\marginparwidth}{12mm}% - \setlength\footnotesep{5.75\p@}% - \setlength{\skip\footins}{8\p@ \@plus 4\p@ \@minus 0\p@}% -% -\renewcommand\footnoterule{% - \kern3\p@% - \ifodd\c@page% - \hrule \@height.2mm \@width\textwidth% - \else% - \hrule \@height.2mm \@width37mm - \fi% - \kern5.5\p@}% -% -\fi% -% -% -\setlength\parindent{1.5em}% -% -\def\StepUpCounter#1{\global\advance#1by 1\relax}% -\def\StepDownCounter#1{\global\advance#1by -1\relax}% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%% Pagination Settings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Line spacing -\setlength\lineskip{1\p@}% -\setlength\normallineskip{1\p@}% -%%\renewcommand\baselinestretch{1.5}% -\parskip=0pt% -% -% Page break penalties -% -\@lowpenalty 51 -\@medpenalty 151 -\@highpenalty 301 -% -% Disallow widows and orphans -% -\clubpenalty 10000 -\widowpenalty 10000 -% -% Disable page breaks before equations, allow pagebreaks after -% equations and discourage widow lines before equations. -% -\displaywidowpenalty 100 -\predisplaypenalty 10000 -\postdisplaypenalty 0 -% -% Set these global demerits -% -\doublehyphendemerits 1000000 % corresponds to badness 800 -\finalhyphendemerits 1000000 % corresponds to badness 1000 -% -% Allow loose lines rather than overfull lines -% -\vbadness=9999 -\tolerance=9999 -% -% Allow breaking the page in the middle of a paragraph -% -\interlinepenalty 0 -% -% Disallow breaking the page after a hyphenated line -\brokenpenalty 10000 -% -% Hyphenation; don't split words into less than three characters -\lefthyphenmin=3 -\righthyphenmin=3 -% -% Float placement parameters -% -% The total number of floats that can be allowed on a page. -\setcounter{totalnumber}{3} -% -% The maximum number of floats at the top and bottom of a page. -\setcounter{topnumber}{5} -\setcounter{bottomnumber}{5} -% -% The maximum part of the top or bottom of a text page that can be -% occupied by floats. This is set so that at least four lines of text -% fit on the page. -\renewcommand\topfraction{.921} -\renewcommand\bottomfraction{.921} - -% The minimum amount of a text page that must be occupied by text. -% This should accomodate four lines of text. -\renewcommand\textfraction{.13} - -% The minimum amount of a float page that must be occupied by floats. -\renewcommand\floatpagefraction{.887} - -% The same parameters repeated for double column output -\renewcommand\dbltopfraction{.88} -\renewcommand\dblfloatpagefraction{.88} - -% Space between floats -\setlength\floatsep{18\p@ \@plus 4\p@ \@minus 2\p@} - -% Space between floats and text -\setlength\textfloatsep{15\p@ \@plus 4\p@ \@minus 2\p@} - -% Space above and below an inline figure -\setlength\intextsep {18\p@ \@plus 4\p@ \@minus 2\p@} - -% For double column floats -\setlength\dblfloatsep {20\p@ \@plus 4\p@ \@minus 2\p@} -\setlength\dbltextfloatsep{15\p@ \@plus 4\p@ \@minus 2\p@} - -\hyphenation{Figure Figures Table Tables Equation Equations Section Sections Appendix Theorem Lemma} - - -% -%%%%%%%%%%%%%%%%%%%%%%%%%%% Math Settings %%%%%%%%%%%%%%%%%%%%%%%%%%% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%% For above/below spacing -\def\eqnarray{% - \stepcounter{equation}% - \def\@currentlabel{\p@equation\theequation}% - \global\@eqnswtrue - \m@th - \global\@eqcnt\z@ - \tabskip\@centering - \let\\\@eqncr - $$\everycr{}\halign to\displaywidth\bgroup - \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel - &\global\@eqcnt\@ne\hskip \tw@\arraycolsep \hfil${##}$\hfil - &\global\@eqcnt\tw@ \hskip \tw@\arraycolsep - $\displaystyle{##}$\hfil\tabskip\@centering - &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup - \tabskip\z@skip - \cr -} -\def\endeqnarray{% - \@@eqncr - \egroup - \global\advance\c@equation\m@ne - $$\@ignoretrue -} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%% Titles %%%%%%%%%%%%%%%%%%%%%%%%%%% -% -\renewcommand\refname{References}% -\renewcommand\figurename{Fig.}% defined as per springer style -\renewcommand\tablename{Table}% -\renewcommand\appendixname{Appendix}% -\renewcommand\abstractname{Abstract}% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%% Article Front Matter %%%%%%%%%%%%%%%%%%%%%%%%%%% -% - -\def\raggedleft{\leftskip0pt plus 1fil\parfillskip=0pt\relax}% -\def\raggedright{\rightskip0pt plus 1fil\parfillskip=0pt\relax}% -\def\raggedcenter{\leftskip=0pt plus 0.5fil\rightskip=0pt plus 0.5fil% -\parfillskip=0pt\let\hb=\break}% -\def\titraggedcenter{\leftskip=12pt plus 0.5fil\rightskip=12pt plus 0.5fil% -\parfillskip=0pt\let\hb=\break}% -\def\absraggedcenter{\leftskip=24pt plus 0.5fil\rightskip=24pt plus 0.5fil% -\parfillskip=0pt\let\hb=\break}% - -% -%%% Font Def -\def\Artcatfont{\reset@font\fontsize{8bp}{10bp}\selectfont}% -\def\Titlefont{\reset@font\fontsize{17bp}{22.5bp}\selectfont\titraggedcenter}% -\def\SubTitlefont{\reset@font\fontsize{14bp}{16.5bp}\selectfont\titraggedcenter}% -\def\Authorfont{\reset@font\fontsize{12bp}{14.5bp}\selectfont\boldmath\titraggedcenter}% -\def\addressfont{\reset@font\fontsize{11bp}{13.5bp}\selectfont\titraggedcenter}% -\def\abstractheadfont{\reset@font\fontsize{9bp}{11bp}\bfseries\selectfont\titraggedcenter}% -\def\abstractsubheadfont{\reset@font\fontsize{9bp}{11bp}\bfseries\selectfont}% -\def\abstractfont{\reset@font\fontsize{9bp}{11bp}\selectfont\leftskip=24pt\rightskip=24pt\parfillskip=0pt plus 1fil}% -\def\keywordfont{\reset@font\fontsize{8bp}{9.5bp}\selectfont\leftskip=24pt\rightskip=24pt plus0.5fill}% -\def\historyfont{\reset@font\fontsize{8bp}{9.5bp}\selectfont\leftskip=24pt\rightskip=24pt plus0.5fill}% - -%% Article Type - -\newbox\artcatbox% - - - -\def\articletype#1{\if!#1!\else\setbox\artcatbox\hbox{\Artcatfont\hskip1mm#1\hskip1mm}\fi% -\gdef\ArtType{\fboxsep=0pt{\vbox to 4mm{\vfil% - {\raggedright\box\artcatbox}\vfil}}}% -\gdef\@ArtType{#1}}% -%%\articletype{RESEARCH ARTICLE}% -\articletype{}% - - -%% Article Title - -\renewcommand{\title}[2][]{% -\gdef\@checktitle{#1}\ifx\@checktitle\empty\gdef\@title{#2}% -\gdef\s@title{#2}\else\gdef\@title{#2}\gdef\s@title{#1}\fi% -\markboth{\textit{\s@title}}{\textit{\s@title}}}% - -\def\subtitle#1{\gdef\@subtitle{#1}}\subtitle{}% - -%% Cross Link for Author & Address -\def\jmkLabel#1{\@bsphack\protected@write\@auxout{}{\string\Newlabel{#1}{\@currentlabel}}\@esphack}% -\def\Newlabel#1#2{\expandafter\xdef\csname X@#1\endcsname{#2}}% -\def\jmkRef#1{\@ifundefined{X@#1}{0}{\csname X@#1\endcsname}}% - -%% Article Author(s) -\let\sep\@empty% -\let\authorsep\@empty% -\newcount\aucount% -\newcount\corraucount% -\newcount\punctcount% -% -\def\artauthors{}% -\newif\if@auemail% -\newif\if@corauemail% -% -\def\au@and{\ifnum\punctcount=2\ and\else\unskip, \advance\punctcount by -1 \fi}% -% -\def\author{\advance\aucount by 1\@ifstar\@@corrauthor\@@author}% -% -\newcommand{\@@author}[2][]{\def\@authfrstarg{#1}\@corauemailfalse% -\g@addto@macro\artauthors{% - \ifnum\aucount=1% - \global\@auemailtrue% - \else% - \global\@auemailfalse% - \fi% - \Authorfont% - \def\baselinestretch{1}% - \authorsep{#2}\unskip\ifx\@authfrstarg\empty\else\textsuperscript{\smash{{% - \@for\@@affmark:=#1\do{\edef\affnum{\@ifundefined{X@\@@affmark}{\@@affmark}{\jmkRef{\@@affmark}}}% - \unskip\sep\affnum\let\sep=,}}}}\fi% - \def\authorsep{{\au@and} }%%% - \global\let\sep\@empty\global\let\@corref\@empty% -}}% -% -\newcommand{\@@corrauthor}[2][]{\def\@authfrstarg{#1}\@corauemailtrue\advance\corraucount by 1% -\g@addto@macro\artauthors{% - \global\@auemailtrue% - \Authorfont% - \def\baselinestretch{1}% - \authorsep{#2}\unskip\ifx\@authfrstarg\empty\else\textsuperscript{\smash{{% - \@for\@@affmark:=#1\do{\edef\affnum{\@ifundefined{X@\@@affmark}{\@@affmark}{\jmkRef{\@@affmark}}}% - \unskip\sep\affnum\let\sep=,}}}{*}\hskip-1pt}\fi\unskip% - \def\authorsep{\au@and~}%%% - \global\let\sep\@empty\global\let\@corref\@empty% -}}% -%% -%% Miscellaneous macros %% -%% -\def\fnm#1{\leavevmode\hbox{#1}}% -\def\sur#1{\unskip~\nobreak\leavevmode\hbox{#1}}% -\def\spfx#1{#1}% -\def\pfx#1{#1}% -\def\sfx#1{#1}% -\def\tanm#1{#1}% -\def\dgr#1{#1}% -% -%% Author Email -% -\let\nomail\relax% -\def\corrauthemail{}% -\def\authemail{}% - -\newcount\emailcnt% - -\def\email#1{\global\advance\emailcnt by 1\relax% -\if@corauemail% - \g@addto@macro\corrauthemail{% - \setcounter{footnote}{0}% - \textcolor{blue}{#1};\ % - }% -\else% - \g@addto@macro\authemail{% - \setcounter{footnote}{0}% - \textcolor{blue}{#1};\ % - }% -\fi} - -%% Corrseponding Address -\def\@copycorthanks{}% -\def\auaddress{}% -\def\@auaddress{}% - -\newcounter{affn}% -\newcount\addcount% To check the count of address - -\renewcommand\theaffn{\arabic{affn}}% - -\def\affil{\advance\addcount by 1\@ifstar\@@coraddress\@@address}% - -\newcommand{\@@coraddress}[2][]{%\advance\addcount by 1 -\g@addto@macro\auaddress{% - \stepcounter{affn}% - \xdef\@currentlabel{\theaffn}% - \jmkLabel{\theaffn}% - {\textsuperscript{#1*}#2.\par} } -} - -%% Macros for present address - -\newif\ifpresentaddress% - -\def\@presentaddresstxt{}% -\def\presentaddresstxt#1{\gdef\@presentaddresstxt{#1:}}\presentaddresstxt{Present Address}% -\newcommand{\presentaddress}[1]{\gdef\@presentaddresstext{\@presentaddresstxt\par#1}\global\presentaddresstrue}% - -%% Macros for equally contributed - -\newif\ifequalcont% - -%\def\@equalconttxt{}% -%\def\equalcontxt#1{\gdef\@equalconttxt{#1}}\equalcontxt{These authors contributed equally to this work.}% -%\newcommand{\equalcont}[1][\@equalconttxt]{\gdef\@equalconttext{#1}\g@addto@macro\artauthors{$^{\dagger}$}\global\equalconttrue}% - -\def\@equalconttxt{}% -\def\equalcontxt#1{\gdef\@equalconttxt{#1}}\equalcontxt{}% -\newcommand{\equalcont}[1]{\gdef\@equalconttext{#1}\g@addto@macro\artauthors{$^{\dagger}$}\global\equalconttrue}% - -%% Author Address - -\newcommand{\@@address}[2][]{%%\advance\addcount by 1 -\g@addto@macro\auaddress{% - \stepcounter{affn}% - \xdef\@currentlabel{\theaffn}% - \jmkLabel{\theaffn}% - {\textsuperscript{#1}#2.\par} }%\theaffn -} - -%% Address tagging -\newcommand{\orgdiv}[1]{#1}% -\newcommand{\orgname}[1]{#1}% -\newcommand{\orgaddress}[1]{#1}% -\newcommand{\street}[1]{#1}% -\newcommand{\postcode}[1]{#1}% -\newcommand{\city}[1]{#1}% -\newcommand{\state}[1]{#1}% -\newcommand{\country}[1]{#1}% - -%% Article notes - -\def\@artnote{}% -\def\artnote#1{\gdef\@artnote{#1}}% - -%% Miscellaneous notes - -\def\@miscnote{}% -\def\miscnote#1{\gdef\@miscnote{\par\addvspace{3pt}#1}}% - -%% Motto - -\def\mottofont{\reset@font\fontfamily{\rmdefault}\fontsize{8.5bp}{10bp}\fontshape{it}\selectfont\raggedright} -% -\let\@motto\@empty -\def\mottoraggedright{\rightskip0mm\leftskip=42mm plus 1fil\parfillskip=0pt\relax}% -\newcommand{\motto}[2][]{\gdef\@headcheck{#1}\gdef\@motto{\@headcheck\ifx\@headcheck\@empty\vskip12pt\else\fi{\mottofont\mottoraggedright#2\par}}} - -%% Article Abstract -\newcommand\abstracthead{\@startsection {section}{1}{\z@}{-22pt \@plus0ex \@minus0ex}{3pt}{\abstractheadfont}} -\newcommand\subabstracthead{\@startsection{subsection}{2}{\z@}{3pt \@plus0ex \@minus0ex}{-.5em}{\abstractsubheadfont}} - -\def\@abstract{}% -\long\def\abstract#1{\def\@abstract{% -\let\paragraph\subabstracthead% -\abstractfont% -\abstracthead*{\abstractname}% -#1\par}}% - -\def\printabstract{\ifx\@abstract\empty\else\@abstract\fi\par}% - -\def\printkeywords{\ifx\@keywords\empty\else\@keywords\fi\par}% - -% -%% Keywords -\def\keywordname{Keywords}% -\def\keywords#1{\ifx#1\empty\else\def\@keywords{\par\addvspace{10pt}{\keywordfont{\bfseries\keywordname:} #1\par}}\fi}% -\def\@keywords{}% - -%% PACs - -\def\pacsbullet{\hbox{\hskip2.5pt,\hskip2.5pt}}% - -\def\change@commas#1,#2{% - \ifx#2\@empty% - #1% - \else% - #1\nobreak\hbox{\pacsbullet}\allowbreak\expandafter\change@commas% - \fi% - #2}% - -\newcommand\keywordhead[1]{\par\addvspace{10pt}% -{{\keywordfont\bfseries#1:\ }}}% - -\newcommand{\pacs}[1]{\keywordhead{\pacsname}#1}% -% -\newcount\PacsCount% -\PacsCount=0% -% -\newcount\PacsTmpCnt% -\PacsTmpCnt=1% -% -\gdef\StorePacsText#1#2{% -\edef\GetRoman{\romannumeral#1}% -\expandafter\gdef\csname\GetRoman StorePacsTxt\endcsname{#2}% -}% -% -\let\oldpacs\pacs% -\renewcommand\pacs[2][PAC Codes]{\gdef\pacsname{{\bfseries#1}}\gdef\@pacs{\keywordfont\raggedright\oldpacs\change@commas#2,\@empty\par} -\StepUpCounter{\PacsCount}% -\StorePacsText{\the\PacsCount}{\gdef\pacsname{{\bfseries#1}}\keywordfont\raggedright\oldpacs\change@commas#2,\@empty}% -}% - -\def\@pacs{}% - -%% Glossary - -\def\gloshead{Glossary}% - -\newenvironment{glos}[1][\gloshead]{\begingroup\parindent=0pt% -\section*{#1} -\def\item[##1]{##1,\ }}{% -\endgroup}% -% - -%% Article History - -\def\received#1{\g@addto@macro\@history{{Received #1}}}% -\def\revised#1{\g@addto@macro\@history{{; revised #1}}}% -\def\accepted#1{\g@addto@macro\@history{{; accepted #1}}}% - -%% Remark on Front page %% - -\newdimen\FMremarkdim% - -\newcommand{\FMremark}{\begingroup\parindent=0pt\parskip=0pt% -\if@referee\singlespacing\fi% -\fboxsep=6pt\fboxrule=0.5pt% -\FMremarkdim=\textwidth%%\paperwidth% -\advance\FMremarkdim-\fboxsep% -\advance\FMremarkdim-2\fboxrule% -\if@referee\vskip-21pt\fi% -%%\fbox{\vbox{\hsize=\FMremarkdim\small% -\unvbox\fmremarkbox -%%}}% -\endgroup} - -\newbox\fmremarkbox% - -\newenvironment{fmremark}{\begingroup\parindent=0pt% -\fboxsep=6pt\fboxrule=0.5pt% -\FMremarkdim=\textwidth%%\paperwidth% -\advance\FMremarkdim-\fboxsep% -\advance\FMremarkdim-2\fboxrule% -\global\setbox\fmremarkbox\vbox\bgroup\small% -}{\egroup\endgroup} - -%% Article Header Definition -\renewcommand{\@maketitle}{\newpage\null% - \if@remarkboxon\vbox to 0pt{\vspace*{-78pt}\hspace*{-18pt}\FMremark}\else\vskip21pt\fi%%\par% - \hsize\textwidth\parindent0pt%%%\vskip7pt% - %% Aritle Type - {\hbox to \textwidth{{\Artcatfont\ArtType\hfill}\par}} - %% Aritle Title - \ifx\@title\empty\else% - \removelastskip\vskip20pt\nointerlineskip% - {\Titlefont\@title\par} - %\addcontentsline{toc}{chapter}{\@title}% for bookmarks - \fi% - %% Aritle SubTitle - \ifx\@subtitle\empty\else% - \vskip9pt% - {{\SubTitlefont\@subtitle\par}} - \fi% - %% Aritle Authors, Address and Correspondings - \ifnum\aucount>0 - \global\punctcount\aucount% - \vskip20pt% - \artauthors\par%% authors and emails - {\vskip7pt\addressfont\auaddress\par%% corresponding adress - \removelastskip\vskip24pt% - \ifnum\emailcnt>0\relax% - \ifx\corrauthemail\@empty\else{\ifnum\aucount>1*\fi}% - Corresponding author(s). E-mail(s): \corrauthemail\par\fi% - \ifx\authemail\@empty\else Contributing authors:\ \authemail\fi% - \fi% - \ifequalcont{\par$^{\dagger}$\@equalconttext\par}\fi% - \removelastskip\vskip24pt% - \ifpresentaddress{\par\@presentaddresstext\par}\fi% - } - \fi% - {\printabstract\par}% - {\printkeywords\par}% - \ifx\@pacs\empty\else% - \loop\ifnum\PacsCount>0% - \csname\romannumeral\PacsTmpCnt StorePacsTxt\endcsname\par% - \StepDownCounter{\PacsCount}% - \StepUpCounter{\PacsTmpCnt}% - \repeat% - \fi% - %%{\printhistory\par}% - %%{\ifx\@motto\empty\else\@motto\fi}% - \removelastskip\vskip36pt\vskip0pt}% - -\usepackage{cuted}% -\@ifpackageloaded{cuted}{\gdef\@setmarks{}}{}% - -%% Printing Article Header -\newdimen\firstpagehtcheck - -\renewcommand\maketitle{\par - \@afterindentfalse% - \begingroup - \gdef\UrlFont{\rmfamily}% - \renewcommand\thefootnote{\@fnsymbol\c@footnote}% - \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\smash{\@thefnmark}}}}% - \long\def\@makefntext##1{\parindent 1em\noindent\small\selectfont - \hbox{\@textsuperscript{\normalfont\@thefnmark}}##1}% - \if@twocolumn - \ifnum \col@number=\@ne% -\setbox0=\vbox{\@maketitle} -\firstpagehtcheck=\ht0% -\advance\firstpagehtcheck by \dp0% -\ifdim\firstpagehtcheck>\textheight% -\setbox1=\vsplit0to2\textheight% -\setbox1=\vbox{\unvbox1}% -\setbox2=\vbox{\unvbox0}% -\unvbox1% -\stripsep=0pt% -\begin{strip} -\unvbox2% -\end{strip} -\else -\twocolumn[\@maketitle]% -\fi -\else -\@maketitle -\fi% - \else% - \newpage% - \global\@topnum\z@% Prevents figures from going at top of page. - \@maketitle% - \fi% - \endgroup% - \ifx\@artnote\@empty\else\footnoteA{\@artnote}\fi% - \ifx\@miscnote\@empty\else\footnoteA{\@miscnote\par}\fi% - \setcounter{footnote}{0}% - \global\let\thanks\relax% - \global\let\artnote\relax% - \global\let\maketitle\relax% - \global\let\@maketitle\relax% - \global\let\@thanks\@empty% - \global\let\@author\@empty% - \global\let\@date\@empty% - \global\let\title\relax% - \global\let\author\relax% - \global\let\date\relax% - \global\let\and\relax% - \pagestyle{headings}% - %%%print continuous abstract on next page - \@afterheading% - %%\vskip-18pt% this is included to avoid vertical space at the beginning of left column on article opening pages -}% - -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Page Styles %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% -\def\opheaderfont{\reset@font\fontsize{10bp}{0bp}\selectfont}% -\def\headerfont{\reset@font\fontsize{10bp}{0bp}\selectfont}% -\def\footerfont{\reset@font\fontsize{10bp}{0bp}\selectfont}% - -%% Regular Page Style -\def\ps@headings{% - \def\@oddfoot{\hfill\thepage\hfill}% - \let\@evenfoot\@oddfoot% - \def\@evenhead{% - \vbox to 0pt{\vspace*{-48pt}% - \hbox to \hsize{\hfill \relax\hfill}}\par%% - \hspace*{-\textwidth}\hbox to \hsize{\hfill}}% - \def\@oddhead{% - \vbox to 0pt{\vspace*{-48pt}% - \hbox to \hsize{\hfill \relax\hfill}}\par%% - \hspace*{-\textwidth}\hbox to \hsize{\hfill}}% - \let\@mkboth\markboth% - }% - - -%% Opening Page Style -\def\ps@titlepage{% - %%\def\@oddhead{\vbox{\vskip-36pt\hbox to \textwidth{\hfill\includegraphics{springer-nature-logo}\hspace*{-1pt}}}}% - %%\let\@oddhead\@empty\let\@evenhead\@empty% - \def\@oddhead{% - \vbox to 0pt{\vspace*{-38pt}% - \hbox to \hsize{\hfill \hfill}}}%% - \let\@evenhead\@oddhead% - \def\@oddfoot{\vbox to 18pt{\vfill\reset@font\rmfamily\hfil\thepage\hfil}}%% - \def\@evenfoot{}}% - -\def\ps@plain{\let\@mkboth\@gobbletwo% -\let\@oddhead\@empty\let\@evenhead\@empty% -\def\@oddfoot{\vbox to 18pt{\vfill\reset@font\rmfamily\hfil ddd\thepage\hfil}}% -\let\@evenfoot\@oddfoot}% - -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Sections %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% - -\def\numbered{\setcounter{secnumdepth}{3}}% -\def\unnumbered{\setcounter{secnumdepth}{0}}% -\numbered%% default is numbered Sections - -\renewcommand\thesection {\@arabic\c@section}% -\renewcommand\thesubsection {\thesection.\@arabic\c@subsection}% -\renewcommand\thesubsubsection{\thesubsection.\@arabic\c@subsubsection}% -\renewcommand\theparagraph {\thesubsubsection.\@arabic\c@paragraph}% -\renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph}% -%% -\def\@seccntformat#1{\csname the#1\endcsname\hskip.5em}% - -\def\@sect#1#2#3#4#5#6[#7]#8{% - \ifnum #2>\c@secnumdepth - \let\@svsec\@empty - \else - \refstepcounter{#1}% - \protected@edef\@svsec{\@seccntformat{#1}\relax}% - \fi - \@tempskipa #5\relax - \ifdim \@tempskipa>\z@ - \begingroup - #6{% - \@hangfrom{\hskip #3\relax\@svsec}% - \interlinepenalty \@M #8\@@par}% - \endgroup - \csname #1mark\endcsname{#7}% - \addcontentsline{toc}{#1}{% - \ifnum #2>\c@secnumdepth \else - \protect\numberline{\csname the#1\endcsname}% - \fi - #7}% - \else - \def\@svsechd{% - #6{\hskip #3\relax - \@svsec #8.}% - \csname #1mark\endcsname{#7}% - \addcontentsline{toc}{#1}{% - \ifnum #2>\c@secnumdepth \else - \protect\numberline{\csname the#1\endcsname}% - \fi - #7}}% - \fi - \@xsect{#5}} -% -\def\sectionfont{\reset@font\fontfamily{\rmdefault}\fontsize{14bp}{16bp}\bfseries\selectfont\raggedright\boldmath}% -\def\subsectionfont{\reset@font\fontfamily{\rmdefault}\fontsize{12bp}{14bp}\bfseries\selectfont\raggedright\boldmath}% -\def\subsubsectionfont{\reset@font\fontsize{11bp}{13bp}\bfseries\selectfont\raggedright\boldmath}% -\def\paragraphfont{\reset@font\fontsize{10bp}{12bp}\bfseries\itshape\selectfont\raggedright}% -% -\def\subparagraphfont{\itshape}% -\def\bmheadfont{\reset@font\fontfamily{\rmdefault}\fontsize{10bp}{12bp}\bfseries\selectfont\raggedright\boldmath}% -% -\renewcommand\section{\@startsection{section}{1}{\z@}% - {-12pt \@plus -4pt \@minus -2pt}% - {9pt}% - {\sectionfont}} -\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% - {-12pt \@plus -4pt \@minus -2pt}% - {6pt}% - {\subsectionfont}} -\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% - {-12pt \@plus -4pt \@minus -2pt}% - {6pt}% - {\subsubsectionfont}} -\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% - {-12pt \@plus -4pt \@minus-2pt}% - {3pt}% - {\paragraphfont}} -\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\z@}% - {6pt \@plus1ex \@minus.2ex}% - {-1em}% - {\subparagraphfont}} -\newcommand\bmhead{\@startsection{subparagraph}{5}{\z@}% - {6pt \@plus1ex \@minus .2ex}% - {-1em}% - {\bmheadfont}} -% -\def\@startsection#1#2#3#4#5#6{% - \if@noskipsec \leavevmode \fi - \par - \@tempskipa #4\relax - \@afterindenttrue - \ifdim \@tempskipa <\z@ - \@tempskipa -\@tempskipa \@afterindentfalse - \fi - \if@nobreak - \everypar{}% - \else - \addpenalty\@secpenalty\addvspace\@tempskipa - \fi - \@ifstar - {\@ssect{#3}{#4}{#5}{#6}}% - {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Lists %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -\newdimen\labelwidthi% -\newdimen\labelwidthii% -\newdimen\labelwidthiii% -\newdimen\labelwidthiv% - -\def\normal@labelsep{0.5em}% -\labelsep\normal@labelsep% -\settowidth{\labelwidthi}{(iii)}% -\settowidth{\labelwidthii}{(d)}% -\settowidth{\labelwidthiii}{(iii)}% -\settowidth{\labelwidthiv}{(M)}% - -\leftmargini\labelwidthi \advance\leftmargini\labelsep -\leftmarginii\labelwidthii \advance\leftmarginii\labelsep -\leftmarginiii\labelwidthiii \advance\leftmarginiii\labelsep -\leftmarginiv\labelwidthiv \advance\leftmarginiv\labelsep - -\def\setleftmargin#1#2{\settowidth{\@tempdima}{#2}\labelsep\normal@labelsep - \csname labelwidth#1\endcsname\@tempdima - \@tempdimb\@tempdima \advance\@tempdimb\labelsep - \csname leftmargin#1\endcsname\@tempdimb} -\def\@listI{\leftmargin\leftmargini - \labelwidth\labelwidthi \labelsep\normal@labelsep - \topsep \z@ \partopsep\z@ \parsep\z@ \itemsep\z@ - \listparindent 1em} -\def\@listii{\leftmargin\leftmarginii - \labelwidth\labelwidthii \labelsep\normal@labelsep - \topsep\z@ \partopsep\z@ \parsep\z@ \itemsep\z@ - \listparindent 1em} -\def\@listiii{\leftmargin\leftmarginiii - \labelwidth\labelwidthiii \labelsep\normal@labelsep - \topsep\z@ \partopsep\z@ \parsep\z@ \itemsep\z@ - \listparindent 1em} -\def\@listiv{\leftmargin\leftmarginiv - \labelwidth\labelwidthiv \labelsep\normal@labelsep - \topsep\z@ \partopsep\z@ \parsep\z@ \itemsep\z@ - \listparindent 1em} -\let\@listi\@listI -\@listi -% -\setlength \labelsep {.5em} -\setlength \labelwidth{\leftmargini} -\addtolength\labelwidth{-\labelsep} -\@beginparpenalty -\@lowpenalty -\@endparpenalty -\@lowpenalty -\@itempenalty -\@lowpenalty -\def\labelitemi{$\bullet$} \def\labelitemii{$\cdot$} -\def\labelenumi{\theenumi.} \def\theenumi{\arabic{enumi}} -\def\labelenumii{(\alph{enumii})} \def\theenumii{\alph{enumii}} -\def\labelenumiii{(\roman{enumiii})}\def\theenumiii{\roman{enumiii}} -\def\labelenumiv{(\Alph{enumiv})} \def\theenumiv{\Alph{enumiv}} - -% -%%%%%%%%%%%%%%%%%%%%%%%%%%% Ordered & Unordered List %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -\def\listfont{\normalsize}% -% -\def\enumargs{% - \listfont% - \leftmargini0pt% - \leftmarginii0pt% - \leftmarginiii0pt% - \ifnum\@enumdepth=3\topsep0pt\else\ifnum\@enumdepth=2\topsep0pt\else\topsep 6pt\fi\fi% - \partopsep \z@% - \itemsep \z@% - \parsep \z@% - \labelsep 0.5em% - \rightmargin \z@% - \raggedright% - \listparindent \parindent% - \itemindent \z@}% - -\def\enumerate{% - \@ifnextchar[{\@numerate}{\@numerate[0.]}} - -\def\@numerate[#1]{\par% - \ifnum \@enumdepth >3 \@toodeep\else - \advance\@enumdepth \@ne - \edef\@enumctr{enum\romannumeral\the\@enumdepth} - \list{\csname label\@enumctr\endcsname}{% - \enumargs% - \setlength{\leftmargin}{\csname leftmargin\romannumeral\the\@enumdepth\endcsname} - \usecounter{\@enumctr} - \settowidth\labelwidth{#1} - \addtolength{\leftmargin}{\labelwidth} - \addtolength{\leftmargin}{\labelsep} - \def\makelabel##1{\hss\llap{##1}}}% - \fi - } -\let\endenumerate\endlist - -%%Unnumbered list%% - -\def\unenumargs{% - \listfont% - \leftmargini\parindent% - \topsep6pt% - \partopsep \z@% - \itemsep \z@% - \parsep \z@% - \labelsep 0\p@% - \rightmargin \z@% - \raggedright% - \listparindent \parindent% - \itemindent -12pt}% - -\def\unenumerate{% - \@ifnextchar[{\@unenumerate}{\@unenumerate[0.]}} - -\def\@unenumerate[#1]{\par% - \ifnum \@enumdepth >3 \@toodeep\else - \advance\@enumdepth \@ne - \edef\@enumctr{enum\romannumeral\the\@enumdepth} - \list{}{% - \unenumargs - \setlength{\leftmargin}{\csname leftmargin\romannumeral\the\@enumdepth\endcsname} - \usecounter{\@enumctr} - \settowidth\labelwidth{#1} - \addtolength{\leftmargin}{0pt} - \addtolength{\leftmargin}{0pt} - \def\makelabel##1{\hss\llap{##1}}}% - \fi - } - -\let\endunenumerate\endlist% - -%% bulleted list - -\def\itemargs{% - \listfont% - \leftmargini0pt% - \leftmarginii0pt% - \ifnum\@enumdepth=3\topsep0pt\else\ifnum\@enumdepth=2\topsep0pt\else\topsep 6pt\fi\fi% - \partopsep \z@% - \itemsep \z@% - \parsep \z@% - \labelsep 0.5em% - \rightmargin \z@% - \raggedright% - \listparindent \z@% - \itemindent \z@}% - -\renewcommand\labelitemi{\raise1pt\hbox{\textbullet}}% -\renewcommand\labelitemii{\textendash}% - -\def\itemize{% - \@ifnextchar[{\@itemize}{\@itemize[$\bullet$]}} - -\def\@itemize[#1]{\par% - \ifnum \@itemdepth >3 \@toodeep\else - \advance\@itemdepth \@ne - \edef\@itemctr{item\romannumeral\the\@itemdepth} - \list{\csname label\@itemctr\endcsname}{% - \itemargs - \setlength{\leftmargin}{\csname leftmargin\romannumeral\the\@itemdepth\endcsname} - \settowidth\labelwidth{#1} - \addtolength{\leftmargin}{\labelwidth} - \addtolength{\leftmargin}{\labelsep} - \def\makelabel##1{\hss \llap{##1}}}% - \fi - } -\let\enditemize\endlist -% -\def\quote{\list{}{\itemindent\z@ - \leftmargin 1em \rightmargin \z@}% -\item[]} -\let\endquote\endlist -% -\def\descriptionlabel#1{\hspace\labelsep \itshape #1} -\def\description{\list{}{\labelwidth\z@ - \leftmargin \z@ \topsep6pt\itemindent \z@ %-\leftmargin - \let\makelabel\descriptionlabel}} -\let\enddescription\endlist - -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Float %%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\setlength\abovecaptionskip{2.25\p@}% -\setlength\belowcaptionskip{6\p@}% - -\setlength\arraycolsep{2\p@}% -\setlength\tabcolsep{6\p@}% -\setlength\arrayrulewidth{.4\p@}% -\setlength\doublerulesep{2\p@}% -\setlength\tabbingsep{\labelsep}% - -\def\fnum@figure{{\bfseries\figurename\space\thefigure}}% -\def\fnum@table{{\bfseries\tablename\space\thetable}}% - -\def\FigName{figure}% - -\long\def\@makecaption#1#2{% - \ifx\FigName\@captype - \vskip\abovecaptionskip - \@figurecaption{#1}{#2} - \else - \@tablecaption{#1}{#2} - \vskip\belowcaptionskip - \fi% -} - -%% Figure - -\def\figurecaptionfont{\reset@font\fontfamily{\rmdefault}\fontsize{8}{9.5}\selectfont}% - -\newdimen\figwidth% -\newdimen\figheight% -\newdimen\sidecapwidth -\newdimen\wrapcapline% -\newdimen\totalwrapline% -\newdimen\wraptotline% - -%% Figures macro -\newbox\figurebox% -\newbox\wrapfigcapbox - -\def\FIG#1#2{% -\setbox\figurebox\hbox{#1}% -%% Figure dimensions -\figwidth\wd\figurebox% -\figheight\ht\figurebox% -{\parbox{\hsize}{% -\centerline{\box\figurebox}% -%% Caption -#2}}} - -%% Figures caption -\newbox\figcapbox -\newbox\capbox -\long\def\@figurecaption#1#2{{\figurecaptionfont{\bfseries#1}\hskip.7em#2\par}}% - -\newenvironment{unnumfigure}{\begingroup\setlength{\topsep}{12pt}% -\begin{center}}{\end{center}\endgroup} - -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -\@ifpackageloaded{booktabs}{\cmidrulewidth=.15pt}{}% -% -\def\tablecaptionfont{\reset@font\fontsize{8bp}{9.5bp}\selectfont}% -\def\tablebodyfont{\reset@font\fontsize{8bp}{9.5bp}\selectfont}% -\def\tablecolheadfont{\reset@font\fontsize{8bp}{9.5bp}\selectfont\bfseries\boldmath}% -\def\tablefootnotefont{\reset@font\fontsize{8bp}{9.5bp}\selectfont}% - -%% Table Macro - -\newskip\headwidthskip% - -\def\tabraggedcenter{\leftskip=0pt plus 0.5fil\rightskip=0pt plus 0.5fil\parfillskip=0pt}% - -\newenvironment{@processtable}[4]{% -\setbox4=\hbox to \hsize{\hss% -\begin{minipage}[t]{#4}% -\tabraggedcenter% -\caption{#1}\par% -{\tablebodyfont\noindent\ignorespaces#2\par}\par\vglue6pt% -{\if!#3!\else{\tablefootnotefont#3}\fi}% -\end{minipage}% -\hss}% -\box4\par}% - -\newcommand\TBL[3]{\begingroup% -% -\if!#1!\let\caption\relax\fi% -% - \global\setbox\temptbox=\hbox{\bgroup{\tablebodyfont#2}\egroup}% - \global\tempdime\wd\temptbox% - \@processtable{#1}{\global\headwidthskip=\tempdime% - \vbox{#2}}{#3}{\tempdime}% -\endgroup}% - -%% Table Caption -\newbox\tabcapbox% -\newbox\temptbox% -\newdimen\tempdime% -\newdimen\tabhtdime% - -\long\def\@tablecaption#1#2{% - \setbox\tabcapbox\vbox{\tablecaptionfont\raggedright% - {\bfseries #1}{\hskip2mm}#2\vphantom{y}\par}% - \box\tabcapbox% -} - -%% Table Column Heads -\def\TCH#1{{\tablecolheadfont #1}} - -%% Table Footnotes - -\newenvironment{tablenotes}{\list{}{\setlength{\labelsep}{0pt}% -\setlength{\labelwidth}{0pt}% -\setlength{\leftmargin}{0pt}% -\setlength{\rightmargin}{0pt}% -\setlength{\topsep}{-6pt}% -\setlength{\itemsep}{2pt}% -\setlength{\partopsep}{0pt}% -\setlength{\listparindent}{0em}% -\setlength{\parsep}{0pt}}% -\item\relax% -}{\endlist}% - -\def\tnote#1{$^{#1}$}%% - -%% Table Rules - -\def\toprule{%\noalign{\vskip3pt} -\noalign{\ifnum0=`}\fi - \hrule \@height 0\p@ \@width 0pt - \hrule \@height 0.75\p@ % <- rule height - \hrule \@height 5pt \@width 0pt - \futurelet\@tempa\@xhline} -% Middle rule -\def\midrule{\noalign{\ifnum0=`}\fi% - \hrule \@height 3pt \@width 0pt - \hrule \@height .5pt % <- rule height - \hrule \@height 5pt \@width 0pt - \futurelet \@tempa\@xhline} -% Bottom rule -\def\botrule{\noalign{\ifnum0=`}\fi - \hrule \@height 3pt \@width 0pt - \hrule \@height 0.75\p@ % <- rule height - \hrule \@height 3pt \@width 0pt - \futurelet\@tempa\@xhline} -% -\def\@@@cmidrule[#1-#2]#3#4{\global\@cmidla#1\relax - \global\advance\@cmidla\m@ne - \ifnum\@cmidla>0\global\let\@gtempa\@cmidrulea\else - \global\let\@gtempa\@cmidruleb\fi - \global\@cmidlb#2\relax - \global\advance\@cmidlb-\@cmidla - \global\@thisrulewidth=#3 - \@setrulekerning{#4} - \ifnum\@lastruleclass=\z@\vskip 3\p@\fi - \ifnum0=`{\fi}\@gtempa - \noalign{\ifnum0=`}\fi\futurenonspacelet\@tempa\@xcmidrule} -\def\@xcmidrule{% - \ifx\@tempa\cmidrule - \vskip-\@thisrulewidth - \global\@lastruleclass=\@ne - \else \ifx\@tempa\morecmidrules - \vskip \cmidrulesep - \global\@lastruleclass=\@ne\else - \vskip 5\p@ - \global\@lastruleclass=\z@ - \fi\fi - \ifnum0=`{\fi}} -\let\cline\cmidrule - -\usepackage[figuresright]{rotating}% -\usepackage{threeparttable} - -\let\tableorg\table% -\let\endtableorg\endtable% - -\let\sidewaystableorg\sidewaystable% -\let\endsidewaystableorg\endsidewaystable% - -\renewenvironment{table}[1][]% -{\begin{tableorg}[#1]% -\begin{center} -\begin{threeparttable} -\tablebodyfont% -\renewcommand\footnotetext[2][]{{\removelastskip\vskip3pt% -\let\tablebodyfont\tablefootnotefont% -\hskip0pt\if!##1!\else{\smash{$^{##1}$}}\fi##2\par}}% -}{\end{threeparttable}\end{center}\end{tableorg}} - -\renewenvironment{sidewaystable}[1][]% -{\begin{sidewaystableorg}[#1]% -\begin{center} -\begin{threeparttable} -\tablebodyfont% -\renewcommand\footnotetext[2][]{{\removelastskip\vskip3pt% -\let\tablebodyfont\tablefootnotefont% -\hskip0pt\if!##1!\else{\smash{$^{##1}$}}\fi##2\par}}% -}{\end{threeparttable}\end{center}\end{sidewaystableorg}} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%% Other Env. %%%%%%%%%%%%%%%%%%%%%%%%% - -\def\quotefont{\reset@font\fontfamily{\rmdefault}\fontsize{9}{11}\selectfont}% - -\renewenvironment{quote} - {\list{}{\topsep=0pt\topsep6pt\leftmargin=1em\raggedright\quotefont}% - \item\relax} - {\endlist} - -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%% Appendix %%%%%%%%%%%%%%%%%%%%%%%%% -% - -\newif\ifbackmatter% -\newcommand{\backmatter}{\global\backmattertrue}% - -\usepackage[title]{appendix}% - -\@ifpackageloaded{appendix}{% -% -\renewenvironment{appendices}{% - \@resets@pp - \if@dotoc@pp - \if@dopage@pp % both page and toc - \if@chapter@pp % chapters - \clear@ppage - \fi - \appendixpage - \else % toc only - \if@chapter@pp % chapters - \clear@ppage - \fi - \addappheadtotoc - \fi - \else - \if@dopage@pp % page only - \appendixpage - \fi - \fi - \if@chapter@pp - \if@dotitletoc@pp \@redotocentry@pp{chapter} \fi - \else - \if@dotitletoc@pp \@redotocentry@pp{section} \fi - \if@dohead@pp - \def\sectionmark##1{% - \if@twoside - \markboth{\@formatsecmark@pp{##1}}{} - \else - \markright{\@formatsecmark@pp{##1}}{} - \fi} - \fi - \if@dotitle@pp - \def\sectionname{\appendixname} - \def\@seccntformat##1{\@ifundefined{##1name}{}{\csname ##1name\endcsname\ }% - \csname the##1\endcsname\quad} - \fi - \fi -}{% - \@ppsaveapp\@pprestoresec} -%% -\AtBeginDocument{% -% -\let\oldappendices\appendices% -\let\oldendappendices\endappendices% -%% -\renewenvironment{appendices}{% -\setcounter{figure}{0}% -\setcounter{table}{0}% -\setcounter{equation}{0}% -%% -\begin{oldappendices}% - \gdef\thefigure{\@Alph\c@section\arabic{figure}}% - \gdef\thetable{\@Alph\c@section\arabic{table}}% - \gdef\theequation{\@Alph\c@section\arabic{equation}}% -}{\end{oldappendices}} -} -%% -}{} - - -% -%%%%%%%%%%%%%%%%%%%%%%%%%%% Article History %%%%%%%%%%%%%%%%%%%% -% -\def\@history{} -\def\printhistory{{\par\addvspace{8pt}% -\historyfont\noindent% -\ifx\@history\empty\gdef\@history{Received xx xxx xxxx}\fi\@history\par}}% -% -%%%%%%%%%%%%%%%%%%%%%%% Footnotes %%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% -\renewcommand\@makefntext[1]{% - \hskip8pt{\smash{\@makefnmark}}#1} -% -\RequirePackage{hyperref}% -%%\RequirePackage{hypcap}% -% ctk \gdef\breakurldefns{% -% ctk \if@pdflatex\else% -% ctk \RequirePackage[hyphenbreaks]{breakurl}% -% ctk % \let\href\burlalt% -% ctk \fi}% -% ctk \breakurldefns% -% \bgroup -% \catcode`\&=12\relax -% \hyper@normalise\burl@addtocharlistbefore{%} -% \hyper@normalise\burl@addtocharlistafter{:/.?#&_,;!=+~}%% for extra breaks in url -% \egroup -% \burl@defifstructure -% -\hypersetup{% - colorlinks, - breaklinks=true, - plainpages=false,% - citecolor=blue, - linkcolor=blue, - urlcolor=blue, - bookmarksopen=true,% - bookmarksnumbered=false,% - bookmarksdepth=5% -} -% -\AtBeginDocument{\renewcommand\UrlFont{\rmfamily}}% -% -\AtBeginDocument{% -\@ifpackageloaded{natbib}{% - \renewcommand\bibsection{% - \section*{\refname}% - }% -}{}% -}% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -\pagestyle{headings}% -\pagenumbering{arabic}% -\sloppy% -\frenchspacing% -\flushbottom% - -%%% special parameters for TeX -\adjdemerits=100 -\linepenalty=100 -% -%%%%%%%%%%%%%%% Biography -% -\RequirePackage{wrapfig}% -% -% -% \begin{wrapfigure}[12]{r}[34pt]{5cm}
\end{wrapfigure} -% -- - ---- --- -% [number of narrow lines] {placement} [overhang] {width of figure} -\newcount\wraplines% -%%\wraplines=5% -% -\newbox\@authorfigbox% -\newskip\@authorfigboxdim% -% -\newskip\biofigadjskip% -\biofigadjskip=0pt% -% -\def\authbiotextfont{\reset@font\fontsize{8bp}{9.5bp}\selectfont}% -% -\newenvironment{biography}[2]{\par\addvspace{11.5pt plus3.375pt minus1.6875pt}%\lineno@off% -\def\author##1{{\bfseries##1}}% -\if!#1!\def\@authorfig{}\else\def\@authorfig{{#1}}\fi% -\setbox\@authorfigbox=\hbox{#1}% -\@authorfigboxdim=\wd\@authorfigbox% -\if@iicol\advance\@authorfigboxdim by -10pt\else\advance\@authorfigboxdim by -2pt\fi% -\wraplines=9\fboxrule=1pt\fboxsep=6pt% -\noindent{% -\ifx\@authorfig\@empty\else\unskip% -\begin{wrapfigure}[\wraplines]{l}[0pt]{\@authorfigboxdim}%{38.25mm}% -\vskip-19pt\addvspace{\biofigadjskip}% -\@authorfig% -\end{wrapfigure}% -\fi% -{\authbiotextfont#2\par}% -\par% -}}{\par\addvspace{10.5pt plus3.375pt minus1.6875pt}} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Theorem %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% -\@ifpackageloaded{amsthm}{% -% -%\let\proof\relax% -%\let\endproof\relax% - -\def\@begintheorem#1#2[#3]{% - \deferred@thm@head{\the\thm@headfont \thm@indent - \@ifempty{#1}{\let\thmname\@gobble}{\let\thmname\@iden}% - \@ifempty{#2}{\let\thmnumber\@gobble}{\let\thmnumber\@iden}% - \@ifempty{#3}{\let\thmnote\@gobble}{\let\thmnote\@iden}% - \thm@swap\swappedhead\thmhead{#1}{#2}{#3}% - \the\thm@headpunct - \thmheadnl % possibly a newline. - \hskip\thm@headsep - }% - \ignorespaces -} - -\def\@endtheorem{\endtrivlist\@endpefalse} - - -\AtBeginDocument{% -% -\DeclareRobustCommand{\S}{\ifmmode\mathsection\else\textsection\fi} - -\DeclareSymbolFont{AMSa}{U}{msa}{m}{n}% -\DeclareMathSymbol{\opensquare}{\mathord}{AMSa}{"03}% -\def\qedsymbol{\ensuremath{\opensquare}}% -% -\newenvironment{spiproof}[1][\proofname]{\par\removelastskip%\vspace*{2pt}% - \pushQED{\qed}% - \small\normalfont \topsep7.5\p@\@plus7.5\p@\relax% - \trivlist% - \item[\hskip\labelsep% - \itshape% - #1\@addpunct{}]\ignorespaces% -}{% - \popQED\endtrivlist\@endpefalse% -}% -% -\let\proof\spiproof\let\endproof\endspiproof% -% -}% -% -\def\thm@space@setup{% -\thm@preskip=12pt% -\thm@postskip=12pt} -% -%%%%%%%%%%%%%%%%%% StyleOne -% -\newtheoremstyle{thmstyleone}% Numbered -{18pt plus2pt minus1pt}% Space above -{18pt plus2pt minus1pt}% Space below -{\small\itshape}% Body font -{0pt}% Indent amount -{\small\bfseries}% Theorem head font -{}% Punctuation after theorem head -{.5em}% Space after theorem headi -{\thmname{#1}\thmnumber{\@ifnotempty{#1}{ }\@upn{#2}}% - \thmnote{ {\the\thm@notefont(#3)}}}% Theorem head spec (can be left empty, meaning `normal') -% -\newtheoremstyle{thmstyletwo}% Numbered -{18pt plus2pt minus1pt}% Space above -{18pt plus2pt minus1pt}% Space below -{\small\normalfont}% Body font -{0pt}% Indent amount -{\small\itshape}% Theorem head font -{}% Punctuation after theorem head -{.5em}% Space after theorem headi -{\thmname{#1}\thmnumber{\@ifnotempty{#1}{ }{#2}}% - \thmnote{ {\the\thm@notefont(#3)}}}% Theorem head spec (can be left empty, meaning `normal') -% -\newtheoremstyle{thmstylethree}% Definition -{18pt plus2pt minus1pt}% Space above -{18pt plus2pt minus1pt}% Space below -{\small\normalfont}% Body font -{0pt}% Indent amount -{\small\bfseries}% Theorem head font -{}% Punctuation after theorem head -{.5em}% Space after theorem headi -{\thmname{#1}\thmnumber{\@ifnotempty{#1}{ }\@upn{#2}}% - \thmnote{ {\the\thm@notefont(#3)}}}% Theorem head spec (can be left empty, meaning `normal') -% -\newtheoremstyle{thmstylefour}% Proof -{18pt plus2pt minus1pt}% Space above -{18pt plus2pt minus1pt}% Space below -{\small\normalfont}% Body font -{0pt}% Indent amount -{\small\itshape}% Theorem head font -{}% Punctuation after theorem head -{.5em}% Space after theorem headi -{\global\proofthmtrue\thmname{#1} \thmnote{#3}}% Theorem head spec (can be left empty, meaning `normal') -% -}{} - -%% Macros for bibliographystyles %% - -% \def\bibcommenthead{\if@bibcomment\begingroup\parindent=0pt\parskip=0pt% -% \removelastskip\vskip13pt\nointerlineskip% -% -% \vbox{\bibfont If you are submitting to one of the Nature Research journals, using the eJP -% submission system, please include the references within the manuscript file itself. You may -% do this by copying the reference list from your .bbl file, and pasting it into the bibliography -% environment of the main manuscript .tex file.}\par% -% \removelastskip\nobreak\vskip13pt\nobreak% -% \endgroup\fi}% - -\def\bibcommenthead{}% - -\if@Spr@basic@refstyle% -\if@Numbered@refstyle% - \usepackage[super,sort&compress]{natbib}% - \gdef\NumBib{YES}% -\else% - \usepackage[authoryear]{natbib}% - \gdef\NumBib{NO}% -\fi% - \bibliographystyle{sn-basic}% - \setlength{\bibsep}{1em}% - \def\bibfont{\reset@font\fontfamily{\rmdefault}\normalsize\selectfont}% -\fi% - -\if@Mathphys@numrefstyle% - \usepackage[super,sort&compress]{natbib}% - \gdef\NumBib{YES}% - \bibliographystyle{sn-mathphys-num}% - \setlength{\bibsep}{1em}% - \def\bibfont{\reset@font\fontfamily{\rmdefault}\normalsize\selectfont}% -\else% -\if@Mathphys@ayrefstyle% - \usepackage[authoryear]{natbib}% - \gdef\NumBib{NO}% - \bibliographystyle{sn-mathphys-ay}% - \setlength{\bibsep}{1em}% - \def\bibfont{\reset@font\fontfamily{\rmdefault}\normalsize\selectfont}% -\fi\fi% -\if@APS@refstyle% - \usepackage[super,sort&compress]{natbib}% - \gdef\NumBib{YES}% - \bibliographystyle{sn-APS}% - \setlength{\bibsep}{1em}% - \def\bibfont{\reset@font\fontfamily{\rmdefault}\normalsize\selectfont}% -\fi% -\if@Vancouver@refstyle% -\if@Numbered@refstyle% - \usepackage[super,sort&compress]{natbib}% - \gdef\NumBib{YES}% -\else% - \usepackage[authoryear]{natbib}% - \gdef\NumBib{NO}% -\fi% - \bibliographystyle{sn-vancouver}% - \setlength{\bibsep}{1em}% - \def\bibfont{\reset@font\fontfamily{\rmdefault}\normalsize\selectfont}% -\fi% -\if@APA@refstyle% -\if@Numbered@refstyle% - \usepackage[natbibapa]{apacite}% - \gdef\NumBib{YES}% -\else% - \usepackage[natbibapa]{apacite}% - \gdef\NumBib{NO}% -\fi% - \bibliographystyle{sn-apacite}% - \def\refdoi#1{\urlstyle{rm}\url{#1}}% - \renewcommand{\doiprefix}{}% - \AtBeginDocument{% - \renewcommand{\BPBI}{.}% Period between initials - command from apacite.sty - }% - \setlength{\bibsep}{1em}% - \def\bibfont{\reset@font\fontfamily{\rmdefault}\normalsize\selectfont}% -\fi% -\if@Chicago@refstyle% -\if@Numbered@refstyle% - \usepackage[super,sort&compress]{natbib}% - \gdef\NumBib{YES}% -\else% - \usepackage[authoryear]{natbib}% - \gdef\NumBib{NO}% -\fi% - \bibliographystyle{sn-chicago}% - \hypersetup{urlcolor=black,colorlinks=false,pdfborder={0 0 0}}\urlstyle{same}% - \setlength{\bibsep}{1em}% - \def\bibfont{\reset@font\fontfamily{\rmdefault}\normalsize\selectfont}% -\fi% -\if@Standard@Nature@refstyle% - \usepackage[super,sort&compress]{natbib}% - \gdef\NumBib{YES}% - \bibliographystyle{sn-nature}% - \setlength{\bibsep}{1em}% - \def\bibfont{\reset@font\fontfamily{\rmdefault}\normalsize\selectfont}% -\fi% - -\AtBeginDocument{\allowdisplaybreaks}% - -\def\eqnheadfont{\reset@font\fontfamily{\rmdefault}\fontsize{16}{18}\bfseries\selectfont}% - -\newcommand{\eqnhead}[1]{\begingroup% -\begin{center} -{\eqnheadfont #1}\par% -\end{center} -\removelastskip\vskip24pt% -\thispagestyle{titlepage}%% -%%\thispagestyle{empty}% -\endgroup} - -%% Macros for border matrix %% - -\newif\if@borderstar - -\def\bordermatrix{\@ifnextchar*{% -\@borderstartrue\@bordermatrix@i}{\@borderstarfalse\@bordermatrix@i*}% -} -\def\@bordermatrix@i*{\@ifnextchar[{\@bordermatrix@ii}{\@bordermatrix@ii[()]}} -\def\@bordermatrix@ii[#1]#2{% -\begingroup -\m@th\@tempdima8.75\p@\setbox\z@\vbox{% -\def\cr{\crcr\noalign{\kern 2\p@\global\let\cr\endline }}% -\ialign {$##$\hfil\kern 2\p@\kern\@tempdima & \thinspace % -\hfil $##$\hfil && \quad\hfil $##$\hfil\crcr\omit\strut % -\hfil\crcr\noalign{\kern -\baselineskip}#2\crcr\omit % -\strut\cr}}% -\setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}% -\setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}% -\setbox\tw@\hbox{% -$\kern\wd\@ne\kern -\@tempdima\left\@firstoftwo#1% -\if@borderstar\kern2pt\else\kern -\wd\@ne\fi% -\global\setbox\@ne\vbox{\box\@ne\if@borderstar\else\kern 2\p@\fi}% -\vcenter{\if@borderstar\else\kern -\ht\@ne\fi% -\unvbox\z@\kern-\if@borderstar2\fi\baselineskip}% -\if@borderstar\kern-2\@tempdima\kern2\p@\else\,\fi\right\@secondoftwo#1 $% -}\null \;\vbox{\kern\ht\@ne\box\tw@}% -\endgroup -} - -%% Macros for line numbers %% - -\if@vrulerlinenumberon% -% -\usepackage{vruler}% -% -%%\setvruler[][][][][][][][][] -\def\linenoon{%%\definecolor{blue}{gray}{0}% -\def\tiny{\normalsize\color{black}}% -\setvruler[12bp][1][1][3][1][1.18\textwidth][26pt][-7pt][0.99\textheight]% for even pages: left side; for odd pages: right side; -%%\linkbluecolor -}% -\linenoon% -\def\lineno@off{\unsetvruler}% -\fi% -%% url macros %% - -\gdef\orcidlogo{% -\includegraphics{Orcidlogo.eps}% -}% - -\gdef\orcid#1{\href{#1}{\orcidlogo}}% - - -\endinput diff --git a/_extensions/christopherkenny/nature/sn-mathphys-ay.bst b/_extensions/christopherkenny/nature/sn-mathphys-ay.bst deleted file mode 100644 index fa05df2..0000000 --- a/_extensions/christopherkenny/nature/sn-mathphys-ay.bst +++ /dev/null @@ -1,3208 +0,0 @@ -%% This is file `bmc-mathphys.bst' (created: 2011-12-27) -%% Compatible with bibtex version 0.99d. -%% -%% Please submit bugs or your comments to vtex@vtex.lt -%% Start subject with a "[BMC] bibtex: " + subject -%% -%% Sorting entries is done by name and year fields! -%% -%% You are free to use this style file as you see fit, provided -%% that you do not make changes to the file. -%% If you DO make changes, you are required to rename this file. -%% -%% It may be distributed under the terms of the LaTeX Project Public -%% License, as described in lppl.txt in the base LaTeX distribution. -%% Either version 1.0 or, at your option, any later version. -%% -%% LIMITATIONS: -%% If you are getting error like -%% "Sorry---you've exceeded BibTeX's number of string global-variables" -%% that means you are using to old bibtex version. You should download latest version 0.99d. -%% (One of the binaries location is minimals.contextgarden.net/current/bin/common/) -%% -%% BibTeX programming: Linas Stonys, VTeX, Lithuania, lstonys@vtex.lt -% -% Changes: -% 2013-07-15 -- added XML output (taken from bmc_article.bst) v2.0 -% - -ENTRY - { address - author - booktitle - bnumber - chapter - doi - edition - editor - howpublished - institution - isbn - journal - key - keywords - month - note - number - organization - pages - publisher - school - series - title - type - volume - year - url - info - options - urldate - eprint - archive - archivePrefix - primaryClass - eid - adsurl - adsnote - version - } - {} - { label extra.label sort.label short.list} - -INTEGERS { output.state before.all mid.sentence after.sentence - after.block after.authors between.elements bother - Nisbn Nmonth slen set.settings tmp month.printed} - -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := - #4 'after.authors := - #5 'between.elements := -} - -STRINGS { s t element} -STRINGS { longest.label last.label list.string default.list} -STRINGS { v l f j b temp.str} - -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { " " * write$ newline$} - { output.state after.block = - { add.period$ write$ - newline$ - } - { - output.state after.authors = - { ": " * write$ - newline$ - } - { output.state between.elements = - { ", " * write$ newline$} - { output.state before.all = - 'write$ - { add.period$ " " * write$ newline$} - if$ - } - if$ - } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - s -} - -FUNCTION {output} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull - if$ -} - -FUNCTION {output.check} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull - if$ -} -FUNCTION {fin.entry} -{ write$ newline$ } - -FUNCTION {stupid.colon} -{ after.authors 'output.state := } - - -FUNCTION {insert.comma} -{ output.state before.all = - 'skip$ - { between.elements 'output.state := } - if$ -} - -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} - -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - - -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} - -FUNCTION {sort.format.month} -{ 't := - t #1 #2 substring$ "01" = - t #1 #1 substring$ "1" = - t #2 #2 substring$ "" = - and or - { "January" } - { t #1 #2 substring$ "02" = - t #1 #1 substring$ "2" = - t #2 #2 substring$ "" = - and or - { "February" } - { t #1 #2 substring$ "03" = - t #1 #1 substring$ "3" = - t #2 #2 substring$ "" = - and or - { "March" } - { t #1 #2 substring$ "04" = - t #1 #1 substring$ "4" = - or - { "April" } - { t #1 #2 substring$ "05" = - t #1 #1 substring$ "5" = - or - { "May" } - { t #1 #2 substring$ "06" = - t #1 #1 substring$ "6" = - or - { "June" } - { t #1 #2 substring$ "07" = - t #1 #1 substring$ "7" = - or - { "July" } - { t #1 #2 substring$ "08" = - t #1 #1 substring$ "8" = - or - { "August" } - { t #1 #2 substring$ "09" = - t #1 #1 substring$ "9" = - or - { "September" } - { t #1 #2 substring$ "10" = - { "October" } - { t #1 #2 substring$ "11" = - { "November" } - { t #1 #2 substring$ "12" = - { "December" } - { t } % No match - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - -} - -INTEGERS {sk} -FUNCTION {is.num} -{ chr.to.int$ - duplicate$ "0" chr.to.int$ < not - swap$ "9" chr.to.int$ > not and -} - -FUNCTION {make.tag} -{ 't := - duplicate$ empty$ - { pop$ "" } - { bother #0 = - { - t "volume" = - {"\textbf{" swap$ * "}" * } - 'skip$ - if$ - } - { "\b" t * "{" * swap$ * "}" * } - if$ - } - if$ -} - - - -FUNCTION {springer.publisher} -{publisher #1 #8 substring$ "Springer" = - { "Springer" } - { publisher } - if$ -} - -FUNCTION {format.adsurl} -{ - adsurl empty$ - { "" } - {" \href{" adsurl "}" *} - if$ -} - -FUNCTION {format.adsnote} -{ - adsnote empty$ - { "" } - { ". " * adsnote *} - if$ -} - - -FUNCTION {format.soft.title} -{ - title empty$ - { "" } - { title "," *} - if$ -} - -FUNCTION {format.softmisctitle} -{ title empty$ - { ""} - { version empty$ - { title ", " *} - { title ", " * version " " *} - if$ - } - if$ -} - -FUNCTION {format.softmisc.archive} -{ - archivePrefix empty$ - { "" } - { "" } - if$ -} - -FUNCTION {format.archive} -{ - archivePrefix empty$ - { "" } - { archivePrefix ":" *} - if$ -} - -FUNCTION {format.primaryClass} -{ - primaryClass empty$ - { "" } - { "{[" primaryClass * "]}" *} - if$ -} - -FUNCTION {format.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {format.softmisc.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {format.pub.address} -{ publisher empty$ - howpublished empty$ - and - { - address empty$ - 'skip$ - { volume empty$ - 'insert.comma - 'new.sentence - if$ - address - type$ "inproceedings" = - {"conflocation"} - {"location"} - if$ - make.tag output - } - if$ - } - { - address empty$ - { publisher empty$ - {howpublished} - {springer.publisher} - if$ - "publisher" make.tag - #1 bother = - {", \blocation{???}" * } - 'skip$ - if$ - output - } - { - publisher empty$ - {howpublished } - {springer.publisher } - if$ - "publisher" make.tag output - insert.comma - address "location" make.tag output - } - if$ - } - if$ -} - -INTEGERS { nameptr namesleft numnames } - -FUNCTION {mk.tag} -{ 'temp.str := - duplicate$ empty$ - { pop$ "" } - { - b "nothing" = - 'skip$ - { "\b" temp.str * "{" * swap$ * "}" * } - if$ - } - if$ -} - -FUNCTION {space.after.dot} -{'j := - t 'f := - j 't := - s 'j := - "" 'l := - "" 's := - { t empty$ not } - { - t #1 #3 substring$ "{-}" = - { l " {q}. " * 'l := - t #4 global.max$ substring$ 't := - } - 'skip$ - if$ - - t #1 #1 substring$ 's := - l s * 'l := - s "." = - { - t #2 #1 substring$ " " = - 'skip$ - { - l " " * 'l := - t #2 #4 substring$ "{\,}" = - { t #5 global.max$ substring$ 't := } - 'skip$ - if$ - } - if$ - } - 'skip$ - if$ - t #2 global.max$ substring$ 't := - } - while$ - f 't := - j 's := - l -} - -FUNCTION {fix.inits}{ - 't := - "" 'element := - { t empty$ not } - { - t #1 #3 substring$ ".q." = - { element ".-" * 'element := - t #3 global.max$ substring$ 't := - } - {element t #1 #1 substring$ * 'element :=} - if$ - - t #2 global.max$ substring$ 't := - } - while$ - element -} - -FUNCTION {fix.snm}{ - 't := - "" 'element := - { t empty$ not } - { - t #1 #3 substring$ "{-}" = - {element "-" * 'element := - t #3 global.max$ substring$ 't := - } - {element t #1 #1 substring$ * 'element :=} - if$ - - t #2 global.max$ substring$ 't := - } - while$ - element -} - -FUNCTION {enbrace.dash}{ - 't := - "" 'element := - { t empty$ not } - { - t #1 #1 substring$ "-" = - {element "{-}" * 'element :=} - {element t #1 #1 substring$ * 'element :=} - if$ - t #2 global.max$ substring$ 't := - } - while$ - element -} - -FUNCTION {fix.name}{ - - enbrace.dash 's := - "" 'l := - "" 't := - - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { - s nameptr "{vv~}{ll}{, jj}" format.name$ - s nameptr "{, ff}" format.name$ space.after.dot * 'l := - #1 nameptr = - {l 't :=} - {t " and " * l * 't := } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - t -} - -FUNCTION {name.separator}{ - namesleft #1 > - {", " * } - 'skip$ - if$ -} - -FUNCTION {format.author.editor} -{ 'b := - - bother #1 = - b "nothing" = - or - 'skip$ - {"b" b * 'b :=} - if$ - - b "editor" = - b "beditor" = - b "nothing" = - or or - {editor 's :=} - {author 's :=} - if$ - - %% modifying name - s fix.name 's := - - "" 't := - - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - - s numnames "{ll}" format.name$ 'l := - l "others" = - l "{others}" = - l "et al." = - l "{et al.}" = - or or or - {#1 'tmp :=} - {#0 'tmp :=} - if$ - - { namesleft #0 > } - { s nameptr "{vv}" format.name$ "particle" mk.tag 'v := - s nameptr "{ll}" format.name$ fix.snm "snm" mk.tag 'l := - s nameptr "{f{.}.}" format.name$ fix.inits "inits" mk.tag 'f := - s nameptr "{jj}" format.name$ "suffix" mk.tag 'j := - - - namesleft #1 = - tmp #1 = - and - { b "bauthor" = - b "beditor" = - or - {"et al."} - {"\betal"} - if$ - #1 'tmp := - } - { - b "bauthor" = - b "beditor" = - or - {"\oauthor{"} - { - b "nothing" = - {""} - {"\b" b * "{" *} - if$ - } -%% if$ -%% -%% v empty$ -%% 'skip$ -%% {v * " " *} - if$ - - l empty$ - 'skip$ - { l *} - if$ - - f empty$ - 'skip$ - {", " * f *} - if$ - - j empty$ - 'skip$ - {" " * j *} - if$ - - b "nothing" = - {""} - {"}"} - if$ - - * "" 't := - } - if$ - - name.separator - write$ - - namesleft #1 > - b "nothing" = not - and - { namesleft #2 = - tmp #1 = - and - 'skip$ - 'newline$ - if$ - } - 'skip$ - if$ - - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {format.editors} -{ editor empty$ - 'skip$ - { - bother #0 = - { author empty$ - {"editor"} - {"nothing"} - if$ - } - {"editor"} - if$ - format.author.editor - editor num.names$ #1 > - { " (eds.)" } - { " (ed.)" } - if$ - write$ - } - if$ -} - -FUNCTION {format.authors} -{ author empty$ - 'skip$ - {"author" format.author.editor} - if$ -} - -FUNCTION {cite.author.editor} -{ 's := - s #1 "{vv~}{ll}" format.name$ - s num.names$ duplicate$ - #2 > - { pop$ " et~al." * } - { #2 = - { s #2 "{vv~}{ll}{ jj}{ f}" format.name$ "others" = - { " et~al." * } - { " and " * s #2 "{vv~}{ll}" format.name$ * } - if$ - } - 'skip$ - if$ - } - if$ -} - -FUNCTION {check.auth.edit.org} -{author empty$ - { - editor empty$ - { - organization empty$ - {""} - {organization} - if$ - } - {editor cite.author.editor} - if$ - } - {author cite.author.editor} - if$ -} - -FUNCTION {check.year} -{ year empty$ - {""} - {year extra.label *} - if$ -} - -INTEGERS { multiresult char.num k int} -INTEGERS {str.length count return save.num1 save.num2} -FUNCTION {is.in.list}{ - 'f := - %%%% saveing "s" and "t" - s 'j := - f 's := - t 'f := - list.string text.length$ 'str.length := - list.string 't := -% s text.length$ 'slen := - int 'save.num1 := - count 'save.num2 := - #1 'int := - #1 'count := - #0 'return := - - { count str.length = not - #0 str.length = not - and - } - { - count #1 + 'count := - t int #1 substring$ "," = - { - t #1 int substring$ s "," * = - { - #1 'return := - str.length 'count := - } - 'skip$ - if$ - - int #1 + 'int := - t int global.max$ substring$ 't := - #0 'int := - } - 'skip$ - if$ - int #1 + 'int := - } - while$ - - save.num1 'int := - save.num2 'count := - - #0 return = - { s t = - {#1 'return :=} - 'skip$ - if$ - } - 'skip$ - if$ - %%%% returning original "s" and "t" - j 's := - f 't := - - return -} - -INTEGERS {bibitem.count} - -FUNCTION {print.count} -{ bibitem.count #1 + 'bibitem.count := - newline$ - "%%% " - bibitem.count int.to.str$ * write$ -} - - -FUNCTION {output.bibitem} -{ print.count - newline$ - "\bibitem[\protect\citeauthoryear{" write$ - check.auth.edit.org write$ - "}{" write$ - check.year write$ - "}]{" write$ - cite$ write$ - "}" write$ - newline$ - "" before.all 'output.state := -} - - - - -FUNCTION {string.to.integer} -{ 't := - t text.length$ 'k := - #1 'char.num := - { t char.num #1 substring$ 's := - s is.num - s "." = - or - char.num k = not - and - } - { char.num #1 + 'char.num := } - while$ - char.num #1 - 'char.num := - t #1 char.num substring$ -} - - -FUNCTION {find.integer} -{ 't := - #0 'int := - { int not - t empty$ not - and - } - { t #1 #1 substring$ 's := - s is.num - {#1 'int :=} - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - int -} - -function{title.lowerwords}{ -"a,an,and,of,the,for,in,to,over,from,on,or,so,than,that,this,as,but,with,by,at,down,up,upon,al,ale,aus,aux,d'Analyse,d'Analystes,d'Architecture,d'Etudes,d'Histoire,da,dans,de,degli,dei,del," -"dell',dell'Accademia,dell'Istituto,dell'Universita,della,delle,dem,der,des,detta,di,die,din,dlia,do,du,e,eXpress,ed,ego,el,em,en,et,fur,i,iz,l'Academie,l'Age,l'Antiquite," * -"l'Approximation,l'Ecole,l'Histoire,l'I.S.U.P.,l'INSA,l'IREM,l'Indirizzo,l'Institut,l'Institute,l'UFR,l'Union,l'Universite,la,las,les,na,nella,per,po,si,sue,sur,ta,tes,und,van,voor,zu,zum,zur" * -} - -FUNCTION {upercase.first.letters}{ - 't := - "" 's := - #1 'int := - #1 'count := - list.string 'v := - "" 'b := - title.lowerwords 'list.string := - - t text.length$ 'slen := - - {count slen = not } - {t int #1 substring$ " " = - { - int #1 - 'int := - t #1 int substring$ 'b := - - % if word not in title.lowerwords - uppercase first letter - b is.in.list not - { b "l" change.case$ b = - { b "u" change.case$ "t" change.case$ 'b := } - 'skip$ - if$ - } - 'skip$ - if$ - - int #1 + 'int := - - s b " " * * 's := - int #1 + 'int := - t int global.max$ substring$ 't := - #0 'int := - } - 'skip$ - if$ - int #1 + 'int := - count #1 + 'count := -% "count=" count int.to.str$ * " slen=" * slen int.to.str$ * top$ - } - while$ - v 'list.string := - % last word is "t" and need to check it too - s t - t "l" change.case$ t = - { "u" change.case$ "t" change.case$ } - 'skip$ - if$ - * -} - - -FUNCTION {format.title} -{ title empty$ - { "" } - { title - "article" type$ = - type$ "techreport" = - type$ "inbook" = - type$ "inproceedings" = - type$ "incollection" = - type$ "phdthesis" = - type$ "mastersthesis" = - or or or or or or - {"t" change.case$} - { type$ "unpublished" = - type$ "misc" = - or - 'skip$ - 'upercase.first.letters - if$ - } - if$ - } - if$ -} - - -FUNCTION {note.presented} -{ note #1 #9 substring$ "presented" = - note #1 #9 substring$ "Presented" = - or -} - -FUNCTION {n.filter} -{ 't := - "" - { t empty$ not } - { t #1 #1 substring$ "," = - t #1 #1 substring$ "\" = - t #1 #1 substring$ "~" = - or or - { "" * - t #2 global.max$ substring$ 't := - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -FUNCTION {byear} -{ duplicate$ empty$ - { pop$ "" } - { 't := - t text.length$ 'sk := - #5 sk = - { t #1 #4 substring$ 's := - t #5 #1 substring$ 'longest.label := - longest.label is.num not - {s "year" make.tag - "nameyear" is.in.list - {longest.label * } - 'skip$ - if$ - } - {t "year" make.tag } - if$ - } - { t "year" make.tag - "nameyear" is.in.list - {extra.label *} - 'skip$ - if$ - } - if$ - } - if$ -} - -FUNCTION {format.date} -{ year empty$ - { "" } - { year byear } - if$ -} - -FUNCTION {parens} -{ "(" swap$ * ")" * } - -FUNCTION {format.date.parens} -{ year empty$ - { "" } - { year byear parens } - if$ -} - -FUNCTION {noparens} -{ " " swap$ * "" * } - -FUNCTION {format.softmiscdate} -{ year empty$ - { "" } - { year byear parens } - if$ -} - -FUNCTION {format.month}{ - month empty$ - {""} - {month sort.format.month "confdate" make.tag} - if$ -} - -FUNCTION {formatpatent.date} -{ year empty$ - 'skip$ - { month empty$ - { year } - {format.month " " * year *} - if$ - } - if$ -} - -FUNCTION {month.year.date} -{ year empty$ - {""} - { month empty$ - {year byear} - { format.month " " * year byear * } - if$ - type$ "inproceedings" = - 'skip$ - {"(" swap$ * ")" * } - if$ - } - if$ -} - -FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} -FUNCTION {format.volume} -{ volume empty$ - { "book" type$ = - {number empty$ - {""} - {"vol. " number "seriesno" make.tag *} - if$ - } - {""} - if$ - } - {"vol. " volume "seriesno" make.tag *} - if$ -} -FUNCTION {format.volume2} -{ volume empty$ - {""} - {"vol. " volume "seriesno" make.tag *} - if$ -} - -FUNCTION {format.art.vol} -{ - volume empty$ - {""} - {volume n.filter "volume" make.tag} - if$ - number empty$ - 'skip$ - { "(" number "issue" make.tag * ")" * * } - if$ -} - -FUNCTION {format.series} -{ series empty$ - 'skip$ - {series "sertitle" make.tag} - if$ -} - -FUNCTION {format.edition} -{ edition empty$ - { "" } - { "" 'v := - "" 'l := - "" 'f := - edition "l" change.case$ 's := - "1" s = - "first" s = - or - { - "1" 'v := - "st" 'l := - } - { - "2" s = - "second" s = - or - { - "2" 'v := - "nd" 'l := - } - { - "3" s = - "third" s = - or - { - "3" 'v := - "rd" 'l := - } - { - "4" s = - "fourth" s = - or - { - "4" 'v := - "th" 'l := - } - { - "5" s = - "fifth" s = - or - { - "5" 'v := - "th" 'l := - } - { - "6" s = - "sixth" s = - or - { - "6" 'v := - "th" 'l := - } - { - "7" s = - "seventh" s = - or - { - "7" 'v := - "th" 'l := - } - { - "8" s = - "eighth" s = - or - { - "8" 'v := - "th" 'l := - } - { - "9" s = - "nineth" s = - or - { - "9" 'v := - "th" 'l := - } - { - edition "t" change.case$ 'f := - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - #0 bother = - { f "" = - { v l * 'f :=} - 'skip$ - if$ - } - { f "" = - { "\bedition{" v * "}" * l * 'f :=} - { "\bedition{" f * "}" * 'f :=} - if$ - } - if$ - f " edn." * - } - if$ -} -FUNCTION {format.isbn} -{ isbn empty$ - { "" } - { isbn "isbn" make.tag} - if$ -} - -INTEGERS {default.info} - - -FUNCTION {multi.page.check} -{ 't := - #0 'multiresult := - "" 'l := - - {t empty$ not} - { t #1 #1 substring$ 's := - - s is.num not - { "" l = not - {t find.integer - {#1 'multiresult := } - {#0 'multiresult := } - if$ - "" 't := - } - { - t #2 global.max$ substring$ 't := - } - if$ - } - { l s * 'l := - t #2 global.max$ substring$ 't := - } - if$ - } - while$ - multiresult -} -FUNCTION {clearpage} -{ 't := - "" 's := - "" 'l := - - { t empty$ not } - { - t #1 #1 substring$ 's := - s is.num not - 'skip$ - { l s * 'l := } - if$ - t #2 global.max$ substring$ 't := - } - while$ - l - -} -FUNCTION {do.pages} -{'t := - "" 'j := - "" 'v := - {t empty$ not} - { t #1 #1 substring$ 's := - s is.num not - s "," = not - and - { "" j = - { - t #2 global.max$ substring$ 't := - } - {t find.integer - { t clearpage 'v := } - 'skip$ - if$ - "" 't := - } - if$ - } - { j s * 'j := - t #2 global.max$ substring$ 't := - } - if$ - } - while$ - j clearpage 'j := - j "fpage" make.tag - "cnd" is.in.list - 'skip$ - {"--" * v "lpage" make.tag *} - if$ -} - - -FUNCTION {format.pages} -{ pages empty$ - { "" } - { pages multi.page.check - {type$ "article" = - {""} - {"cnd" is.in.list - {"p. "} - {"pp. "} - if$ - } - if$ - pages do.pages * - } - {type$ "article" = - {""} - {"p. "} - if$ - pages clearpage "fpage" make.tag * - } - - if$ - } - if$ -} - -FUNCTION {replace.tilde} -{ 't := - "" - { t empty$ not } - { t #1 #1 substring$ "~" = - { { t #1 #1 substring$ "~" = } - { "\texttildelow " * - t #2 global.max$ substring$ 't := - } - while$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - - -FUNCTION {format.url} -{ url empty$ - 'skip$ - { type$ "article" = - 'skip$ - { #0 bother = - { "\url{" } - { "\burl{" } - if$ - url replace.tilde * "}" * - output - } - if$ - - urldate empty$ - 'skip$ - { "Accessed " urldate * output } - if$ - } - if$ -} - - -FUNCTION {publisher.month.pages}{ - publisher empty$ series empty$ and - { address empty$ - 'skip$ - 'new.sentence - if$ - format.pub.address - - pages empty$ - 'skip$ - {insert.comma} - if$ - format.pages output - - } - { - pages empty$ - 'skip$ - {insert.comma} - if$ - format.pages output - publisher empty$ - 'skip$ - {new.sentence} - if$ - format.pub.address - } - if$ -} - -function{process.doi}{ - doi 't := - "" 'b := - #1 'int := -% "doi =" t * top$ - - t text.length$ 'slen := - - {int slen = not } - {t int #3 substring$ "10." = - { - t int #1 - #1 substring$ 'b := - b "" = - {"a" 'b :=} % if b is empty need to set a letter - 'skip$ - if$ - - b is.num not - { - t int slen int - #1 + substring$ 't := - slen #1 - 'int := - } - 'skip$ - if$ - - } - 'skip$ - if$ - int #1 + 'int := - } - while$ - t -} - -FUNCTION {format.doi} -{ doi empty$ - {""} - { - "nodoi" is.in.list - {""} - %%{"doi:\doiurl{" process.doi * "}" * } - {"\doiurl{" process.doi * "} " * } - if$ - } - if$ -} - -FUNCTION {format.in.ed.booktitle} -{ booktitle empty$ - {#1 bother = - "cnd" is.in.list not - and - { editor empty$ - 'skip$ - { "In: " output write$ format.editors } - if$ - } - 'skip$ - if$ - } - { editor empty$ - { "In: " booktitle upercase.first.letters "btitle" make.tag * output} - { "In: " output write$ format.editors "" %%% pushing empty string to the empty stack - booktitle upercase.first.letters "btitle" make.tag output - } - if$ - } - - if$ -} - -FUNCTION {format.in.ed} -{ title empty$ - 'skip$ - { editor empty$ - { title "btitle" make.tag output} - { author empty$ - { format.editors - stupid.colon - %format.date output - title "btitle" make.tag output - } - { "In: " output write$ format.editors "" %%% pushing empty string to the empty stack - title "btitle" make.tag output - } - if$ - } - if$ - } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { "Technical Report" } - 'type - if$ - number empty$ - { "t" change.case$ } - { number tie.or.space.connect } - if$ -} - -FUNCTION {patent.number} -{ number empty$ - 'skip$ - { number } - if$ -} -INTEGERS { len } - -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -FUNCTION {format.inpres} -{ "l" change.case$ 't := - "in press: " #10 - "in press. " #10 - "in press " #9 t chop.word - chop.word - chop.word - #1 global.max$ substring$ -} - -FUNCTION {bcomment.note} -{ note empty$ - 'skip$ - {note format.inpres "comment" make.tag output} - if$ -} - -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ -} - -FUNCTION {format.thesis.type} -{ type empty$ - 'skip$ - { pop$ - type "t" change.case$ - } - if$ -} - -FUNCTION {format.chapter.and.note} -{ note empty$ chapter empty$ organization empty$ and and - 'skip$ - { chapter empty$ - "notnumber" last.label = - or - {organization empty$ - { note "comment" make.tag output } - { note empty$ - { organization "comment" make.tag output } - { organization ". " * note * "comment" make.tag output } - if$ - } - if$ - } - { note empty$ - { "Chap. " chapter * "comment" make.tag output} - { type empty$ - { "Chap. " } - { type "t" change.case$ "Section" = - { "Sect. " } - { "Chap. " } - if$ - } - if$ - chapter * ". " * note * "comment" make.tag output - } - if$ - } - if$ - } - if$ -} - -FUNCTION {item.end} -{ chapter empty$ - type$ "unpublished" = not - type$ "misc" = not - and and - { new.sentence - format.doi output - } - 'skip$ - if$ - - type$ "unpublished" = - type$ "misc" = - or - { note empty$ - 'skip$ - {note.presented - 'skip$ - {new.sentence note output} - if$ - } - if$ - format.date.parens output - } - { new.sentence - type$ "proceedings" = - { author empty$ editor empty$ and - 'bcomment.note - 'format.chapter.and.note - if$ - } - 'format.chapter.and.note - if$ - } - if$ - list.string 'v := - default.list 'list.string := - - type$ ".isbn" * is.in.list - "cnd" is.in.list - or - { - new.sentence -% format.isbn output - } - 'skip$ - if$ - new.sentence - %% commented by SPi as we are using format.eprint %% - %% and also to avoide eprint being printed twice - Start %% - %%eprint empty$ - %% 'skip$ - %% {"\arxivurl{" eprint * "}" * output} - %%if$ - %% End %% - chapter empty$ - type$ "unpublished" = not - type$ "misc" = not - and and - 'skip$ - { new.sentence - format.doi output - } - if$ - new.sentence - format.url - v 'list.string := - fin.entry -} - -FUNCTION {article.item.end} -{ chapter empty$ - type$ "unpublished" = not - type$ "misc" = not - and and - { new.sentence -% format.doi output - } - 'skip$ - if$ - - type$ "unpublished" = - type$ "misc" = - or - { note empty$ - 'skip$ - {note.presented - 'skip$ - {new.sentence note output} - if$ - } - if$ - format.date.parens output - } - { new.sentence - type$ "proceedings" = - { author empty$ editor empty$ and - 'bcomment.note - 'format.chapter.and.note - if$ - } - 'format.chapter.and.note - if$ - } - if$ - list.string 'v := - default.list 'list.string := - - type$ ".isbn" * is.in.list - "cnd" is.in.list - or - { - new.sentence -% format.isbn output - } - 'skip$ - if$ - new.sentence - %% commented by SPi as we are using format.eprint %% - %% and also to avoide eprint being printed twice - Start %% - %%eprint empty$ - %% 'skip$ - %% {"\arxivurl{" eprint * "}" * output} - %%if$ - %% End %% - chapter empty$ - type$ "unpublished" = not - type$ "misc" = not - and and - 'skip$ - { new.sentence -%% format.doi output - } - if$ - new.sentence - format.url - v 'list.string := - fin.entry -} - - -FUNCTION {insert.element} -{ #0 bother = - { element "{botherref}" * write$ newline$} - { - type$ "article" = - {element "{barticle}" * write$ newline$} - 'skip$ - if$ - type$ "book" = - type$ "proceedings" = - type$ "manual" = - type$ "booklet" = - or or or - {element "{bbook}" * write$ newline$} - 'skip$ - if$ - - type$ "inbook" = - { "notnumber" last.label = - {element "{bchapter}" * write$ newline$} - {element "{bbook}" * write$ newline$} - if$ - } - 'skip$ - if$ - - type$ "incollection" = - type$ "inproceedings" = - type$ "conference" = - or or - {element "{bchapter}" * write$ newline$} - 'skip$ - if$ - } - if$ -} - -FUNCTION {end.element} -{ "\end" 'element := - item.end - insert.element - "\endbibitem" write$ newline$ -} - -FUNCTION {article.end.element} -{ "\end" 'element := - article.item.end - insert.element - "\endbibitem" write$ newline$ -} - - -FUNCTION {begin.element} -{ "\begin" 'element := - insert.element -} -function {set.options}{ - options empty$ - 'skip$ - {options 'list.string :=} - if$ -} - -FUNCTION {settings} -{} - -FUNCTION {article} -{ output.bibitem - author empty$ - institution empty$ - editor empty$ - and and - journal empty$ - or - year empty$ - or - % above tagging rule means: - % nead: (volume & (pages or number) ) or (doi [without volume, pages and number]) - volume empty$ not - pages empty$ not bnumber empty$ not or - and - - volume empty$ pages empty$ bnumber empty$ and and - doi empty$ not and - or - not - or - {#0 'bother :=} - {#1 'bother :=} - if$ - begin.element - author empty$ - { editor empty$ - 'skip$ - {format.editors stupid.colon} - if$ - } - { format.authors stupid.colon} - if$ - "cnd" is.in.list - { - journal empty$ - {format.title "atitle" make.tag "title" output.check} - {journal "jtitle" make.tag output} - if$ - } - { - format.title "atitle" make.tag "title" output.check - journal empty$ - 'skip$ - {new.sentence journal "jtitle" make.tag output} - if$ - } - if$ - format.art.vol output - pages empty$ - 'skip$ - {insert.comma} - if$ - format.pages output - format.date.parens output - format.doi output - format.eprint output - format.primaryClass output - article.end.element -} - - -FUNCTION {patent} -{ output.bibitem - #0 'bother := - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "title" output.check - add.period$ - patent.number output - insert.comma - formatpatent.date output - end.element -} - -FUNCTION { other } { patent } - -FUNCTION {book} -{ output.bibitem - author empty$ - institution empty$ - organization empty$ - editor empty$ - and and and - title empty$ - year empty$ - or or - {#0 'bother :=} - { - publisher empty$ address empty$ not and - {#0 'bother :=} - {#1 'bother :=} - if$ - } - if$ - begin.element - author empty$ - { editor empty$ - 'skip$ - {format.editors stupid.colon} - if$ - } - { format.authors stupid.colon} - if$ - format.title "btitle" make.tag "title" output.check - series empty$ - { - format.volume output - insert.comma - format.edition output - } - { edition empty$ - 'skip$ - 'insert.comma - if$ - format.edition output - new.sentence - format.series output - insert.comma - format.volume output - } - if$ - publisher.month.pages - format.date.parens output - end.element -} - -FUNCTION {booklet} -{output.bibitem - author empty$ - title empty$ - year empty$ - howpublished empty$ - or or or - {#0 'bother :=} - {#1 'bother :=} - if$ - - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "btitle" make.tag "title" output.check - address empty$ publisher empty$ howpublished empty$ and and - 'skip$ - 'new.sentence - if$ - format.pub.address - format.date.parens output - end.element -} - -FUNCTION {misc} -{output.bibitem - #0 'bother := - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "btitle" make.tag "title" output.check - address empty$ publisher empty$ howpublished empty$ and and - 'skip$ - 'new.sentence - if$ - format.pub.address - end.element -} - -FUNCTION {softmisc} -{output.bibitem - #0 'bother := - begin.element - author empty$ - 'skip$ - {format.authors} - if$ - stupid.colon - format.title "btitle" make.tag "title" output.check - insert.comma - version output - insert.comma - %%address empty$ publisher empty$ howpublished empty$ and and - %%'skip$ - %% 'new.sentence - %%if$ - format.pub.address - format.softmiscdate output - insert.comma - format.softmisc.eprint output - end.element -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - institution empty$ - organization empty$ - editor empty$ - and and and - title empty$ - year empty$ - or or - {#0 'bother :=} - { - publisher empty$ address empty$ not and - {#0 'bother :=} - {#1 'bother :=} - if$ - } - if$ - - chapter empty$ - { "" 'last.label :=} - { chapter string.to.integer empty$ author empty$ not and - { "notnumber" 'last.label :=} - { "" 'last.label :=} - if$ - } - if$ - - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - "notnumber" last.label = - { chapter "ctitle" make.tag output - add.period$ - } - 'skip$ - if$ - format.in.ed - series empty$ - { - insert.comma - format.volume output - insert.comma - format.edition output - new.sentence - } - { - insert.comma - format.edition output - new.sentence - format.series output - volume empty$ - 'skip$ - 'insert.comma - if$ - format.volume output - } - if$ - publisher.month.pages - publisher empty$ address empty$ edition empty$ series empty$ pages empty$ volume empty$ and and and and and - 'insert.comma - 'skip$ - if$ - format.date.parens output - end.element -} -FUNCTION {incollection} -{ output.bibitem - author empty$ - institution empty$ - and - booktitle empty$ - title empty$ - year empty$ - or or or - {#0 'bother :=} - { - publisher empty$ address empty$ not and - {#0 'bother :=} - {#1 'bother :=} - if$ - } - if$ - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - - "cnd" is.in.list - { - booktitle empty$ title empty$ not and - { - format.title "ctitle" make.tag "title" output.check - new.sentence - } - 'skip$ - if$ - } - { - format.title "ctitle" make.tag "title" output.check - title empty$ - 'skip$ - {new.sentence} - if$ - } - if$ - format.in.ed.booktitle - series empty$ - { - format.volume output - insert.comma - format.edition output - } - { - edition empty$ - 'skip$ - { insert.comma - format.edition output - } - if$ - new.sentence - format.series output - insert.comma - format.volume output - } - if$ - publisher.month.pages - format.date.parens output - end.element -} - -FUNCTION {inproceedings} -{ output.bibitem - author empty$ - institution empty$ - and - title empty$ - year empty$ - or or - {#0 'bother :=} - {#1 'bother :=} - if$ - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - - "cnd" is.in.list - { - booktitle empty$ title empty$ not and - { - format.title "ctitle" make.tag "title" output.check - new.sentence - } - 'skip$ - if$ - } - { - format.title "ctitle" make.tag "title" output.check - title empty$ booktitle empty$ not and - 'skip$ - {new.sentence} - if$ - } - if$ - - format.in.ed.booktitle - series empty$ - 'skip$ - {new.sentence format.series output} - if$ - volume empty$ address empty$ publisher empty$ and and - 'skip$ - 'insert.comma - if$ - format.volume output - publisher.month.pages - format.date.parens output - end.element -} - -FUNCTION {conference} { inproceedings } - -FUNCTION {manual} -{ output.bibitem - author empty$ - organization empty$ - title empty$ - year empty$ - address empty$ - or or or or - {#0 'bother :=} - {#1 'bother :=} - if$ - begin.element - - author empty$ - { organization empty$ - 'skip$ - { organization "publisher" make.tag output.nonnull - stupid.colon% add.period$ - } - if$ - } - { format.authors stupid.colon} - if$ - title empty$ - 'skip$ - {format.title "btitle" make.tag output} - if$ - edition empty$ - {new.sentence} - {insert.comma} - if$ - format.edition output - edition empty$ - 'skip$ - {new.sentence} - if$ - author empty$ organization empty$ - or - 'skip$ - { organization "publisher" make.tag output.nonnull - insert.comma - } - if$ - address empty$ - 'skip$ - {address "location" make.tag output} - if$ - format.date.parens output - end.element -} - - -FUNCTION {phdthesis} -{output.bibitem - #0 'bother := - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "title" output.check - new.sentence - type$ "mastersthesis" = - {"Master's thesis" format.thesis.type output.nonnull} - {"PhD thesis" format.thesis.type output.nonnull} - if$ - school empty$ - 'skip$ - 'insert.comma - if$ - school "school" output.check - address empty$ - 'skip$ - 'insert.comma - if$ - address output - month.year.date output - end.element -} -FUNCTION {mastersthesis}{phdthesis} - - -FUNCTION {proceedings} -{ output.bibitem - author empty$ - institution empty$ - organization empty$ - editor empty$ - and and and - title empty$ - year empty$ - or or - {#0 'bother :=} - { - publisher empty$ address empty$ not and - {#0 'bother :=} - {#1 'bother :=} - if$ - } - if$ - - begin.element - author empty$ - { editor empty$ - {organization "institutionaled" make.tag "organization" output.check } - { format.editors } - if$ - } - { format.authors } - if$ - stupid.colon - format.title "btitle" make.tag output - series empty$ - 'skip$ - {new.sentence format.series output} - if$ - volume empty$ - 'skip$ - 'insert.comma - if$ - format.volume output - publisher.month.pages - format.date.parens output - end.element -} - -FUNCTION {techreport} -{ output.bibitem - #0 'bother := - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "title" output.check - new.sentence - format.tr.number output.nonnull - institution empty$ - 'skip$ - 'insert.comma - if$ - institution "institution" output.check - address empty$ - 'skip$ - 'insert.comma - if$ - address output - month.year.date output - end.element -} - -FUNCTION {unpublished} -{ output.bibitem - #0 'bother := - - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "title" output.check - note empty$ - 'skip$ - { note.presented - {note output} - 'skip$ - if$ - } - if$ - end.element -} - -FUNCTION {default.type} { unpublished } - -MACRO {jan} {"January"} -MACRO {feb} {"February"} -MACRO {mar} {"March"} -MACRO {apr} {"April"} -MACRO {may} {"May"} -MACRO {jun} {"June"} -MACRO {jul} {"July"} -MACRO {aug} {"August"} -MACRO {sep} {"September"} -MACRO {oct} {"October"} -MACRO {nov} {"November"} -MACRO {dec} {"December"} - -READ - -FUNCTION {sortify} -{ purify$ - "l" change.case$ -} - -INTEGERS { et.al.char.used } - -FUNCTION {initialize.et.al.char.used} -{ #0 'et.al.char.used := -} - -%%%%% setting default options -FUNCTION {set.default.opt} -{"alpha" 'list.string :=} - -EXECUTE {set.default.opt} - -FUNCTION {assign.opt}{ - % First need to set options - "settings" type$ = - { options empty$ - 'skip$ - {options 'list.string :=} - if$ - } - 'skip$ - if$ -} - -ITERATE {assign.opt} -EXECUTE {initialize.et.al.char.used} - -FUNCTION {alpha.format.lab.names} -{ 's := - s num.names$ 'numnames := - numnames #1 > - { numnames #4 > - { #3 'namesleft := } - { numnames 'namesleft := } - if$ - #1 'nameptr := - "" - { namesleft #0 > } - { nameptr numnames = - { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { "+" * - #1 'et.al.char.used := - } - { s nameptr "{v{}}{l{}}" format.name$ * } - if$ - } - { s nameptr "{v{}}{l{}}" format.name$ * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - numnames #4 > - { "+" * - #1 'et.al.char.used := - } - 'skip$ - if$ - } - { s #1 "{v{}}{l{}}" format.name$ - duplicate$ text.length$ #2 < - { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } - 'skip$ - if$ - } - if$ -} - -FUNCTION {standard.format.lab.names} -{ 's := - s #1 "{vv~}{ll}" format.name$ - s num.names$ duplicate$ - #2 > - { pop$ " et~al." * } - { #2 < - 'skip$ - { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { " et~al." * } - { " and " * s #2 "{vv~}{ll}" format.name$ * } - if$ - } - if$ - } - if$ -} -FUNCTION {format.lab.names}{ - "alpha" is.in.list - 'alpha.format.lab.names - 'standard.format.lab.names - if$ -} - -FUNCTION {author.key.label} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {author.editor.key.label} -{ author empty$ - { editor empty$ - { key empty$ - { "zzz" } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {author.key.organization.label} -{ author empty$ - { key empty$ - { organization empty$ - { "zzz" } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {editor.key.organization.label} -{ editor empty$ - { key empty$ - { organization empty$ - { "zzz" } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names } - if$ -} - -FUNCTION {calc.short.authors} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label - { type$ "proceedings" = - 'editor.key.organization.label - { type$ "manual" = - 'author.key.organization.label - 'author.key.label - if$ - } - if$ - } - if$ - 'short.list := -} - -FUNCTION {calc.label} -{ calc.short.authors - short.list - - "alpha" is.in.list - { - duplicate$ - year field.or.null purify$ #-1 #2 substring$ - * - 'label := - year field.or.null purify$ #-1 #4 substring$ - * - sortify 'sort.label := - } - { - "(" - * - year duplicate$ empty$ - short.list key field.or.null = or - { pop$ "" } - 'skip$ - if$ - * - 'label := - label 'sort.label := - } - if$ -} - -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { nameptr #1 > - { " " * - "alpha" is.in.list - 'skip$ - {numnames int.to.str$ * " " *} - if$ - } - 'skip$ - if$ - s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := - nameptr numnames = - t "others" = - and - { "et al" * } - { t sortify * } - if$ - #3 numnames < - "alpha" is.in.list not - and - {#0 'namesleft := - " zzz " * - } - { - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - if$ - } - 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$ - "zzz" - } - { 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$ - "z" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {author.organization.sort} -{ author empty$ - { organization empty$ - { key empty$ - { "to sort, need author, organization, or key in " cite$ * warning$ - "z" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {editor.organization.sort} -{ editor empty$ - { organization empty$ - { key empty$ - { "to sort, need editor, organization, or key in " cite$ * warning$ - "z" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { editor sort.format.names } - if$ -} - -FUNCTION {presort} -{ calc.label - sort.label sortify - " " - * - type$ "book" = - type$ "inbook" = - or - {author empty$ - 'editor.organization.sort - 'author.organization.sort - if$ - } - { type$ "proceedings" = - type$ "incollection" = - or - {author empty$ - 'editor.organization.sort - 'author.organization.sort - if$ - } - { type$ "manual" = - 'author.organization.sort - 'author.sort - if$ - } - if$ - } - if$ - " " - * - year field.or.null sortify - * - " " - * - title field.or.null - sort.format.title - * - #1 entry.max$ substring$ 'sort.label := - sort.label * - #1 entry.max$ substring$ 'sort.key$ := - - "settings" type$ = - {"aaa"} - {"unsort" is.in.list - {"bb"} - {"alpha" is.in.list - {sort.key$} - {sort.label} - if$ - } - if$ - } - if$ - 'sort.key$ := -} - - -ITERATE {presort} - -SORT - -INTEGERS { longest.label.width last.extra.num number.label } - -FUNCTION {initialize.longest.label} -{ "" 'longest.label := - #0 int.to.chr$ 'last.label := - "" 'j := - #0 'longest.label.width := - #0 'last.extra.num := - #0 'number.label := -} - -FUNCTION {forward.pass} -{ last.label label = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - label 'last.label := - } - if$ - number.label #1 + 'number.label := -} - -FUNCTION {reverse.pass} -{ j "b" = - { "a" 'extra.label := } - 'skip$ - if$ - extra.label 'j := - label extra.label * 'label := -} - -EXECUTE {initialize.longest.label} - -ITERATE {forward.pass} - -REVERSE {reverse.pass} - -FUNCTION {write.preambule} -{ "%% BioMed_Central_Bib_Style_v1.01" write$ newline$ newline$ - "\begin{thebibliography}{" number.label int.to.str$ * "}" * write$ newline$ - "% BibTex style file: bmc-mathphys.bst (version 2.1), 2014-07-24" write$ newline$ - "\ifx \bisbn \undefined \def \bisbn #1{ISBN #1}\fi" write$ newline$ - "\ifx \binits \undefined \def \binits#1{#1}\fi" write$ newline$ - "\ifx \bauthor \undefined \def \bauthor#1{#1}\fi" write$ newline$ - "\ifx \batitle \undefined \def \batitle#1{#1}\fi" write$ newline$ - "\ifx \bjtitle \undefined \def \bjtitle#1{#1}\fi" write$ newline$ - "\ifx \bvolume \undefined \def \bvolume#1{\textbf{#1}}\fi" write$ newline$ - "\ifx \byear \undefined \def \byear#1{#1}\fi" write$ newline$ - "\ifx \bissue \undefined \def \bissue#1{#1}\fi" write$ newline$ - "\ifx \bfpage \undefined \def \bfpage#1{#1}\fi" write$ newline$ - "\ifx \blpage \undefined \def \blpage #1{#1}\fi" write$ newline$ - "\ifx \burl \undefined \def \burl#1{\textsf{#1}}\fi" write$ newline$ - %%"\ifx \doiurl \undefined \def \doiurl#1{\textsf{#1}}\fi" write$ newline$ - "\ifx \doiurl \undefined \def \doiurl#1{\url{https://doi.org/#1}}\fi" write$ newline$ - "\ifx \betal \undefined \def \betal{\textit{et al.}}\fi" write$ newline$ - "\ifx \binstitute \undefined \def \binstitute#1{#1}\fi" write$ newline$ - "\ifx \binstitutionaled \undefined \def \binstitutionaled#1{#1}\fi" write$ newline$ - "\ifx \bctitle \undefined \def \bctitle#1{#1}\fi" write$ newline$ - "\ifx \beditor \undefined \def \beditor#1{#1}\fi" write$ newline$ - "\ifx \bpublisher \undefined \def \bpublisher#1{#1}\fi" write$ newline$ - "\ifx \bbtitle \undefined \def \bbtitle#1{#1}\fi" write$ newline$ - "\ifx \bedition \undefined \def \bedition#1{#1}\fi" write$ newline$ - "\ifx \bseriesno \undefined \def \bseriesno#1{#1}\fi" write$ newline$ - "\ifx \blocation \undefined \def \blocation#1{#1}\fi" write$ newline$ - "\ifx \bsertitle \undefined \def \bsertitle#1{#1}\fi" write$ newline$ - "\ifx \bsnm \undefined \def \bsnm#1{#1}\fi" write$ newline$ - "\ifx \bsuffix \undefined \def \bsuffix#1{#1}\fi" write$ newline$ - "\ifx \bparticle \undefined \def \bparticle#1{#1}\fi" write$ newline$ - "\ifx \barticle \undefined \def \barticle#1{#1}\fi" write$ newline$ - "\bibcommenthead" write$ newline$ -} - - -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - write.preambule - "\ifx \bconfdate \undefined \def \bconfdate #1{#1}\fi" write$ newline$ - "\ifx \botherref \undefined \def \botherref #1{#1}\fi" write$ newline$ - "\ifx \url \undefined \def \url#1{\textsf{#1}}\fi" write$ newline$ - "\ifx \bchapter \undefined \def \bchapter#1{#1}\fi" write$ newline$ - "\ifx \bbook \undefined \def \bbook#1{#1}\fi" write$ newline$ - "\ifx \bcomment \undefined \def \bcomment#1{#1}\fi" write$ newline$ - "\ifx \oauthor \undefined \def \oauthor#1{#1}\fi" write$ newline$ - "\ifx \citeauthoryear \undefined \def \citeauthoryear#1{#1}\fi" write$ newline$ - "\ifx \endbibitem \undefined \def \endbibitem {}\fi" write$ newline$ - "\ifx \bconflocation \undefined \def \bconflocation#1{#1}\fi" write$ newline$ - "\ifx \arxivurl \undefined \def \arxivurl#1{\textsf{#1}}\fi" write$ newline$ - "\csname PreBibitemsHook\endcsname" write$ newline$ -} - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -FUNCTION {end.bib} -{ newline$ - "\end{thebibliography}" write$ newline$ -} - -EXECUTE {end.bib} - - -%% XML output - done for each entry referenced in the BibTeX database -INTEGERS {i ll li j.int global.counter} -STRINGS {lr lp lt ls } - -FUNCTION {replace} -{ - 'lr := % replace string - 'lp := % pattern - 'lt := % text to search - "" 'ls := % result string - lp text.length$ 'll := % length of the search pattern - { lt empty$ not } - { lt #1 ll substring$ lp = - { ls lr * 'ls := - lt ll #1 + global.max$ substring$ 'lt := } - { ls lt #1 #1 substring$ * 'ls := - lt #2 global.max$ substring$ 'lt := } - if$ - } - while$ - ls -} - -FUNCTION {strip.letters} -{ - "" 's := - duplicate$ missing$ - 'pop$ - { - 't := - { t "" = not } - { % ascii '0' = 48, '9' = 57 - t #1 #1 substring$ chr.to.int$ 'i := - i #47 > i #58 < and - { s t #1 #1 substring$ * 's := } - 'skip$ - if$ - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - s -} -FUNCTION {output.xml} -{ duplicate$ "" = - 'pop$ - { " " swap$ * write$ newline$ } - if$ -} - -%% - % markup.xml - % - % Takes 2 args text & tag {"the text " "tag"} - % Returns 1 string {"the text <\tag>"} -%% -FUNCTION {markup.xml} -{ - "" 'v := % result - 't := % tag - duplicate$ missing$ - 'pop$ - { 'v := } - if$ - v "" = - 'skip$ - { "<" t * ">" * v * "" * 'v := } - if$ - v -} - -%% Takes 2 args - tag, string -FUNCTION{markup.xml.title} -{ pop$ % tag - duplicate$ missing$ - 'pop$ - { - 's := % string - s "\&" "&" replace 's := - s "p" markup.xml 's := - s "title" markup.xml output.xml - } - if$ -} - - -%% - % markup.xml.pages - % - % Takes 1 arg (pages string) - % seperates into and if - % there is a - seperator. else no lpage. - % - % need to remove others -%% -FUNCTION{markup.xml.pages} -{ - "" 'v := % fpage - "" 's := % lpage - duplicate$ missing$ - 'pop$ - { - 't := - t " " "" replace 't := % remove all spaces. pgs must be - seperated - { t empty$ not } - { - t #1 #1 substring$ "-" = - { - t #2 global.max$ substring$ 's := - "" 't := % break while loop - }{ - v t #1 #1 substring$ * 'v := - t #2 global.max$ substring$ 't := - } - if$ - } - while$ - } - if$ - v "fpage" markup.xml output.xml - s "lpage" markup.xml output.xml -} - - -%% - % markup.xml.names - % - % Takes 2 args - % tag, namefield (eg. author "au") - % splits fields into and - % writes info - % returns nothing -%% -FUNCTION {markup.xml.names} -{ - 't := % tag - "" 'v := - "" 's := - duplicate$ empty$ - { pop$ - organization missing$ - { institution "cnm" markup.xml - "au" markup.xml "aug" markup.xml output.xml } - { organization "cnm" markup.xml - "au" markup.xml "aug" markup.xml output.xml } - if$ } - { - " " write$ newline$ - 'temp.str := % names string - temp.str num.names$ 'j.int := % num of names - #1 'i := % init counter - { i #1 j.int + < } % while (i <= j.int) - { - " " write$ - - % Initial first names - % if first name all in capitals - % - assume is initial list of first names. - temp.str i "{ff{ }}" format.name$ - duplicate$ "u" change.case$ = - { temp.str i "{ff{ }}" format.name$ } - { temp.str i "{f{}}" format.name$ } - if$ - - % if last name but no first name use cnm; else snm - duplicate$ "" = - { temp.str i "{ll{ }}" format.name$ % last names space seperated. - "cnm" markup.xml write$ } - { temp.str i "{ll{ }}" format.name$ % last names space seperated. - "snm" markup.xml write$ } - if$ - - "fnm" markup.xml write$ - - "" write$ newline$ - i #1 + 'i := - } - while$ - " " write$ newline$ - } - if$ -} - - -%% - % markup.xml.pub - % - % Takes 4 args (school address publisher tag) - % prints concatenation - % returns nothing -%% -FUNCTION {markup.xml.pub} -{ - 't := % Tag - "" 'v := % Publisher - "" 'l := % Address - "" 'f := % School - "" 's := % Answer - duplicate$ missing$ 'pop$ { 'v := } if$ - duplicate$ missing$ 'pop$ { 'l := } if$ - duplicate$ missing$ 'pop$ { 'f := } if$ - "" f = not % school not empty - { f 's := } % return school as publisher - { % else - "" v = "" l = and % address and pub empty - 'skip$ - { - "" l = - { v 's := } % return pub - { "" v = - { l 's := } % return add - { l ": " * v * 's := } % return add : pub - if$ - } - if$ - } - if$ - } - if$ - s t markup.xml output.xml -} - -%% - % xml.phd - % - % Takes nothing - % Returns type (phd/msc) of empty string -%% -FUNCTION {xml.phd} -{ - "phdthesis" type$ = - "mastersthesis" type$ = or - { "phdthesis" type$ = - { "PhD thesis" } - { "Master's thesis" } - if$ - } - { type } % usually empty - if$ -} - -% markup.xml.edition -% -% edition is a numeric value. ie "2" -% if format 2nd 1st etc.. strip letters. -% -FUNCTION {markup.xml.edition} -{ pop$ pop$ %clear stack - edition strip.letters duplicate$ "" = - { pop$ edition } - 'skip$ - if$ - "edition" markup.xml output.xml -} - - -FUNCTION{begin.bmcxmlcomment}{ - newline$ - "\newcommand{\BMCxmlcomment}[1]{}" write$ newline$ - newline$ - "\BMCxmlcomment{" write$ newline$ - newline$ "" write$ newline$ -} - -FUNCTION{end.bmcxmlcomment}{ - newline$ - "" write$ newline$ - "} % end of \BMCxmlcomment" write$ newline$ -} - -FUNCTION {export.xml}{ - newline$ - global.counter #1 + 'global.counter := - "" * - write$ newline$ -% title "\&" "&" replace "title" markup.xml.title - title "title" markup.xml.title - author "aug" markup.xml.names % org. and inst. here - howpublished missing$ - { booktitle missing$ - { journal missing$ - { xml.phd } % Phd/Msc - {journal} - if$ - } {booktitle} - if$ - } { howpublished } - if$ "source" markup.xml output.xml - school - address - publisher "publisher" markup.xml.pub - editor "editor" markup.xml output.xml - edition "edition" markup.xml.edition - series "p" markup.xml - "title" markup.xml - "series" markup.xml output.xml - chapter "p" markup.xml - "title" markup.xml - "section" markup.xml output.xml - % month % ignore - year "pubdate" markup.xml output.xml - - note missing$ - { volume "volume" markup.xml output.xml - number "issue" markup.xml output.xml - pages markup.xml.pages - url "url" markup.xml output.xml } - { note "l" change.case$ "in press" = - { " " write$ newline$ } - { volume "volume" markup.xml output.xml - number "issue" markup.xml output.xml - pages markup.xml.pages - url "url" markup.xml output.xml - note "note" markup.xml output.xml - } - if$ - } - if$ - "" write$ newline$ -} - -%%EXECUTE {begin.bmcxmlcomment} -%%ITERATE {export.xml} -%%EXECUTE {end.bmcxmlcomment} - - - - diff --git a/_extensions/christopherkenny/nature/sn-mathphys-num.bst b/_extensions/christopherkenny/nature/sn-mathphys-num.bst deleted file mode 100644 index 236a058..0000000 --- a/_extensions/christopherkenny/nature/sn-mathphys-num.bst +++ /dev/null @@ -1,3208 +0,0 @@ -%% This is file `bmc-mathphys.bst' (created: 2011-12-27) -%% Compatible with bibtex version 0.99d. -%% -%% Please submit bugs or your comments to vtex@vtex.lt -%% Start subject with a "[BMC] bibtex: " + subject -%% -%% Sorting entries is done by name and year fields! -%% -%% You are free to use this style file as you see fit, provided -%% that you do not make changes to the file. -%% If you DO make changes, you are required to rename this file. -%% -%% It may be distributed under the terms of the LaTeX Project Public -%% License, as described in lppl.txt in the base LaTeX distribution. -%% Either version 1.0 or, at your option, any later version. -%% -%% LIMITATIONS: -%% If you are getting error like -%% "Sorry---you've exceeded BibTeX's number of string global-variables" -%% that means you are using to old bibtex version. You should download latest version 0.99d. -%% (One of the binaries location is minimals.contextgarden.net/current/bin/common/) -%% -%% BibTeX programming: Linas Stonys, VTeX, Lithuania, lstonys@vtex.lt -% -% Changes: -% 2013-07-15 -- added XML output (taken from bmc_article.bst) v2.0 -% - -ENTRY - { address - author - booktitle - bnumber - chapter - doi - edition - editor - howpublished - institution - isbn - journal - key - keywords - month - note - number - organization - pages - publisher - school - series - title - type - volume - year - url - info - options - urldate - eprint - archive - archivePrefix - primaryClass - eid - adsurl - adsnote - version - } - {} - { label extra.label sort.label short.list} - -INTEGERS { output.state before.all mid.sentence after.sentence - after.block after.authors between.elements bother - Nisbn Nmonth slen set.settings tmp month.printed} - -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := - #4 'after.authors := - #5 'between.elements := -} - -STRINGS { s t element} -STRINGS { longest.label last.label list.string default.list} -STRINGS { v l f j b temp.str} - -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { " " * write$ newline$} - { output.state after.block = - { add.period$ write$ - newline$ - } - { - output.state after.authors = - { ": " * write$ - newline$ - } - { output.state between.elements = - { ", " * write$ newline$} - { output.state before.all = - 'write$ - { add.period$ " " * write$ newline$} - if$ - } - if$ - } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - s -} - -FUNCTION {output} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull - if$ -} - -FUNCTION {output.check} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull - if$ -} -FUNCTION {fin.entry} -{ write$ newline$ } - -FUNCTION {stupid.colon} -{ after.authors 'output.state := } - - -FUNCTION {insert.comma} -{ output.state before.all = - 'skip$ - { between.elements 'output.state := } - if$ -} - -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} - -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - - -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} - -FUNCTION {sort.format.month} -{ 't := - t #1 #2 substring$ "01" = - t #1 #1 substring$ "1" = - t #2 #2 substring$ "" = - and or - { "January" } - { t #1 #2 substring$ "02" = - t #1 #1 substring$ "2" = - t #2 #2 substring$ "" = - and or - { "February" } - { t #1 #2 substring$ "03" = - t #1 #1 substring$ "3" = - t #2 #2 substring$ "" = - and or - { "March" } - { t #1 #2 substring$ "04" = - t #1 #1 substring$ "4" = - or - { "April" } - { t #1 #2 substring$ "05" = - t #1 #1 substring$ "5" = - or - { "May" } - { t #1 #2 substring$ "06" = - t #1 #1 substring$ "6" = - or - { "June" } - { t #1 #2 substring$ "07" = - t #1 #1 substring$ "7" = - or - { "July" } - { t #1 #2 substring$ "08" = - t #1 #1 substring$ "8" = - or - { "August" } - { t #1 #2 substring$ "09" = - t #1 #1 substring$ "9" = - or - { "September" } - { t #1 #2 substring$ "10" = - { "October" } - { t #1 #2 substring$ "11" = - { "November" } - { t #1 #2 substring$ "12" = - { "December" } - { t } % No match - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - -} - -INTEGERS {sk} -FUNCTION {is.num} -{ chr.to.int$ - duplicate$ "0" chr.to.int$ < not - swap$ "9" chr.to.int$ > not and -} - -FUNCTION {make.tag} -{ 't := - duplicate$ empty$ - { pop$ "" } - { bother #0 = - { - t "volume" = - {"\textbf{" swap$ * "}" * } - 'skip$ - if$ - } - { "\b" t * "{" * swap$ * "}" * } - if$ - } - if$ -} - - - -FUNCTION {springer.publisher} -{publisher #1 #8 substring$ "Springer" = - { "Springer" } - { publisher } - if$ -} - -FUNCTION {format.adsurl} -{ - adsurl empty$ - { "" } - {" \href{" adsurl "}" *} - if$ -} - -FUNCTION {format.adsnote} -{ - adsnote empty$ - { "" } - { ". " * adsnote *} - if$ -} - - -FUNCTION {format.soft.title} -{ - title empty$ - { "" } - { title "," *} - if$ -} - -FUNCTION {format.softmisctitle} -{ title empty$ - { ""} - { version empty$ - { title ", " *} - { title ", " * version " " *} - if$ - } - if$ -} - -FUNCTION {format.softmisc.archive} -{ - archivePrefix empty$ - { "" } - { "" } - if$ -} - -FUNCTION {format.archive} -{ - archivePrefix empty$ - { "" } - { archivePrefix ":" *} - if$ -} - -FUNCTION {format.primaryClass} -{ - primaryClass empty$ - { "" } - { "{[" primaryClass * "]}" *} - if$ -} - -FUNCTION {format.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {format.softmisc.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {format.pub.address} -{ publisher empty$ - howpublished empty$ - and - { - address empty$ - 'skip$ - { volume empty$ - 'insert.comma - 'new.sentence - if$ - address - type$ "inproceedings" = - {"conflocation"} - {"location"} - if$ - make.tag output - } - if$ - } - { - address empty$ - { publisher empty$ - {howpublished} - {springer.publisher} - if$ - "publisher" make.tag - #1 bother = - {", \blocation{???}" * } - 'skip$ - if$ - output - } - { - publisher empty$ - {howpublished } - {springer.publisher } - if$ - "publisher" make.tag output - insert.comma - address "location" make.tag output - } - if$ - } - if$ -} - -INTEGERS { nameptr namesleft numnames } - -FUNCTION {mk.tag} -{ 'temp.str := - duplicate$ empty$ - { pop$ "" } - { - b "nothing" = - 'skip$ - { "\b" temp.str * "{" * swap$ * "}" * } - if$ - } - if$ -} - -FUNCTION {space.after.dot} -{'j := - t 'f := - j 't := - s 'j := - "" 'l := - "" 's := - { t empty$ not } - { - t #1 #3 substring$ "{-}" = - { l " {q}. " * 'l := - t #4 global.max$ substring$ 't := - } - 'skip$ - if$ - - t #1 #1 substring$ 's := - l s * 'l := - s "." = - { - t #2 #1 substring$ " " = - 'skip$ - { - l " " * 'l := - t #2 #4 substring$ "{\,}" = - { t #5 global.max$ substring$ 't := } - 'skip$ - if$ - } - if$ - } - 'skip$ - if$ - t #2 global.max$ substring$ 't := - } - while$ - f 't := - j 's := - l -} - -FUNCTION {fix.inits}{ - 't := - "" 'element := - { t empty$ not } - { - t #1 #3 substring$ ".q." = - { element ".-" * 'element := - t #3 global.max$ substring$ 't := - } - {element t #1 #1 substring$ * 'element :=} - if$ - - t #2 global.max$ substring$ 't := - } - while$ - element -} - -FUNCTION {fix.snm}{ - 't := - "" 'element := - { t empty$ not } - { - t #1 #3 substring$ "{-}" = - {element "-" * 'element := - t #3 global.max$ substring$ 't := - } - {element t #1 #1 substring$ * 'element :=} - if$ - - t #2 global.max$ substring$ 't := - } - while$ - element -} - -FUNCTION {enbrace.dash}{ - 't := - "" 'element := - { t empty$ not } - { - t #1 #1 substring$ "-" = - {element "{-}" * 'element :=} - {element t #1 #1 substring$ * 'element :=} - if$ - t #2 global.max$ substring$ 't := - } - while$ - element -} - -FUNCTION {fix.name}{ - - enbrace.dash 's := - "" 'l := - "" 't := - - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { - s nameptr "{vv~}{ll}{, jj}" format.name$ - s nameptr "{, ff}" format.name$ space.after.dot * 'l := - #1 nameptr = - {l 't :=} - {t " and " * l * 't := } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - t -} - -FUNCTION {name.separator}{ - namesleft #1 > - {", " * } - 'skip$ - if$ -} - -FUNCTION {format.author.editor} -{ 'b := - - bother #1 = - b "nothing" = - or - 'skip$ - {"b" b * 'b :=} - if$ - - b "editor" = - b "beditor" = - b "nothing" = - or or - {editor 's :=} - {author 's :=} - if$ - - %% modifying name - s fix.name 's := - - "" 't := - - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - - s numnames "{ll}" format.name$ 'l := - l "others" = - l "{others}" = - l "et al." = - l "{et al.}" = - or or or - {#1 'tmp :=} - {#0 'tmp :=} - if$ - - { namesleft #0 > } - { s nameptr "{vv}" format.name$ "particle" mk.tag 'v := - s nameptr "{ll}" format.name$ fix.snm "snm" mk.tag 'l := - s nameptr "{f{.}.}" format.name$ fix.inits "inits" mk.tag 'f := - s nameptr "{jj}" format.name$ "suffix" mk.tag 'j := - - - namesleft #1 = - tmp #1 = - and - { b "bauthor" = - b "beditor" = - or - {"et al."} - {"\betal"} - if$ - #1 'tmp := - } - { - b "bauthor" = - b "beditor" = - or - {"\oauthor{"} - { - b "nothing" = - {""} - {"\b" b * "{" *} - if$ - } -%% if$ -%% -%% v empty$ -%% 'skip$ -%% {v * " " *} - if$ - - l empty$ - 'skip$ - { l *} - if$ - - f empty$ - 'skip$ - {", " * f *} - if$ - - j empty$ - 'skip$ - {" " * j *} - if$ - - b "nothing" = - {""} - {"}"} - if$ - - * "" 't := - } - if$ - - name.separator - write$ - - namesleft #1 > - b "nothing" = not - and - { namesleft #2 = - tmp #1 = - and - 'skip$ - 'newline$ - if$ - } - 'skip$ - if$ - - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {format.editors} -{ editor empty$ - 'skip$ - { - bother #0 = - { author empty$ - {"editor"} - {"nothing"} - if$ - } - {"editor"} - if$ - format.author.editor - editor num.names$ #1 > - { " (eds.)" } - { " (ed.)" } - if$ - write$ - } - if$ -} - -FUNCTION {format.authors} -{ author empty$ - 'skip$ - {"author" format.author.editor} - if$ -} - -FUNCTION {cite.author.editor} -{ 's := - s #1 "{vv~}{ll}" format.name$ - s num.names$ duplicate$ - #2 > - { pop$ " et~al." * } - { #2 = - { s #2 "{vv~}{ll}{ jj}{ f}" format.name$ "others" = - { " et~al." * } - { " and " * s #2 "{vv~}{ll}" format.name$ * } - if$ - } - 'skip$ - if$ - } - if$ -} - -FUNCTION {check.auth.edit.org} -{author empty$ - { - editor empty$ - { - organization empty$ - {""} - {organization} - if$ - } - {editor cite.author.editor} - if$ - } - {author cite.author.editor} - if$ -} - -FUNCTION {check.year} -{ year empty$ - {""} - {year extra.label *} - if$ -} - -INTEGERS { multiresult char.num k int} -INTEGERS {str.length count return save.num1 save.num2} -FUNCTION {is.in.list}{ - 'f := - %%%% saveing "s" and "t" - s 'j := - f 's := - t 'f := - list.string text.length$ 'str.length := - list.string 't := -% s text.length$ 'slen := - int 'save.num1 := - count 'save.num2 := - #1 'int := - #1 'count := - #0 'return := - - { count str.length = not - #0 str.length = not - and - } - { - count #1 + 'count := - t int #1 substring$ "," = - { - t #1 int substring$ s "," * = - { - #1 'return := - str.length 'count := - } - 'skip$ - if$ - - int #1 + 'int := - t int global.max$ substring$ 't := - #0 'int := - } - 'skip$ - if$ - int #1 + 'int := - } - while$ - - save.num1 'int := - save.num2 'count := - - #0 return = - { s t = - {#1 'return :=} - 'skip$ - if$ - } - 'skip$ - if$ - %%%% returning original "s" and "t" - j 's := - f 't := - - return -} - -INTEGERS {bibitem.count} - -FUNCTION {print.count} -{ bibitem.count #1 + 'bibitem.count := - newline$ - "%%% " - bibitem.count int.to.str$ * write$ -} - - -FUNCTION {output.bibitem} -{ print.count - newline$ - "\bibitem[\protect\citeauthoryear{" write$ - check.auth.edit.org write$ - "}{" write$ - check.year write$ - "}]{" write$ - cite$ write$ - "}" write$ - newline$ - "" before.all 'output.state := -} - - - - -FUNCTION {string.to.integer} -{ 't := - t text.length$ 'k := - #1 'char.num := - { t char.num #1 substring$ 's := - s is.num - s "." = - or - char.num k = not - and - } - { char.num #1 + 'char.num := } - while$ - char.num #1 - 'char.num := - t #1 char.num substring$ -} - - -FUNCTION {find.integer} -{ 't := - #0 'int := - { int not - t empty$ not - and - } - { t #1 #1 substring$ 's := - s is.num - {#1 'int :=} - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - int -} - -function{title.lowerwords}{ -"a,an,and,of,the,for,in,to,over,from,on,or,so,than,that,this,as,but,with,by,at,down,up,upon,al,ale,aus,aux,d'Analyse,d'Analystes,d'Architecture,d'Etudes,d'Histoire,da,dans,de,degli,dei,del," -"dell',dell'Accademia,dell'Istituto,dell'Universita,della,delle,dem,der,des,detta,di,die,din,dlia,do,du,e,eXpress,ed,ego,el,em,en,et,fur,i,iz,l'Academie,l'Age,l'Antiquite," * -"l'Approximation,l'Ecole,l'Histoire,l'I.S.U.P.,l'INSA,l'IREM,l'Indirizzo,l'Institut,l'Institute,l'UFR,l'Union,l'Universite,la,las,les,na,nella,per,po,si,sue,sur,ta,tes,und,van,voor,zu,zum,zur" * -} - -FUNCTION {upercase.first.letters}{ - 't := - "" 's := - #1 'int := - #1 'count := - list.string 'v := - "" 'b := - title.lowerwords 'list.string := - - t text.length$ 'slen := - - {count slen = not } - {t int #1 substring$ " " = - { - int #1 - 'int := - t #1 int substring$ 'b := - - % if word not in title.lowerwords - uppercase first letter - b is.in.list not - { b "l" change.case$ b = - { b "u" change.case$ "t" change.case$ 'b := } - 'skip$ - if$ - } - 'skip$ - if$ - - int #1 + 'int := - - s b " " * * 's := - int #1 + 'int := - t int global.max$ substring$ 't := - #0 'int := - } - 'skip$ - if$ - int #1 + 'int := - count #1 + 'count := -% "count=" count int.to.str$ * " slen=" * slen int.to.str$ * top$ - } - while$ - v 'list.string := - % last word is "t" and need to check it too - s t - t "l" change.case$ t = - { "u" change.case$ "t" change.case$ } - 'skip$ - if$ - * -} - - -FUNCTION {format.title} -{ title empty$ - { "" } - { title - "article" type$ = - type$ "techreport" = - type$ "inbook" = - type$ "inproceedings" = - type$ "incollection" = - type$ "phdthesis" = - type$ "mastersthesis" = - or or or or or or - {"t" change.case$} - { type$ "unpublished" = - type$ "misc" = - or - 'skip$ - 'upercase.first.letters - if$ - } - if$ - } - if$ -} - - -FUNCTION {note.presented} -{ note #1 #9 substring$ "presented" = - note #1 #9 substring$ "Presented" = - or -} - -FUNCTION {n.filter} -{ 't := - "" - { t empty$ not } - { t #1 #1 substring$ "," = - t #1 #1 substring$ "\" = - t #1 #1 substring$ "~" = - or or - { "" * - t #2 global.max$ substring$ 't := - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -FUNCTION {byear} -{ duplicate$ empty$ - { pop$ "" } - { 't := - t text.length$ 'sk := - #5 sk = - { t #1 #4 substring$ 's := - t #5 #1 substring$ 'longest.label := - longest.label is.num not - {s "year" make.tag - "nameyear" is.in.list - {longest.label * } - 'skip$ - if$ - } - {t "year" make.tag } - if$ - } - { t "year" make.tag - "nameyear" is.in.list - {extra.label *} - 'skip$ - if$ - } - if$ - } - if$ -} - -FUNCTION {format.date} -{ year empty$ - { "" } - { year byear } - if$ -} - -FUNCTION {parens} -{ "(" swap$ * ")" * } - -FUNCTION {format.date.parens} -{ year empty$ - { "" } - { year byear parens } - if$ -} - -FUNCTION {noparens} -{ " " swap$ * "" * } - -FUNCTION {format.softmiscdate} -{ year empty$ - { "" } - { year byear parens } - if$ -} - -FUNCTION {format.month}{ - month empty$ - {""} - {month sort.format.month "confdate" make.tag} - if$ -} - -FUNCTION {formatpatent.date} -{ year empty$ - 'skip$ - { month empty$ - { year } - {format.month " " * year *} - if$ - } - if$ -} - -FUNCTION {month.year.date} -{ year empty$ - {""} - { month empty$ - {year byear} - { format.month " " * year byear * } - if$ - type$ "inproceedings" = - 'skip$ - {"(" swap$ * ")" * } - if$ - } - if$ -} - -FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} -FUNCTION {format.volume} -{ volume empty$ - { "book" type$ = - {number empty$ - {""} - {"vol. " number "seriesno" make.tag *} - if$ - } - {""} - if$ - } - {"vol. " volume "seriesno" make.tag *} - if$ -} -FUNCTION {format.volume2} -{ volume empty$ - {""} - {"vol. " volume "seriesno" make.tag *} - if$ -} - -FUNCTION {format.art.vol} -{ - volume empty$ - {""} - {volume n.filter "volume" make.tag} - if$ - number empty$ - 'skip$ - { "(" number "issue" make.tag * ")" * * } - if$ -} - -FUNCTION {format.series} -{ series empty$ - 'skip$ - {series "sertitle" make.tag} - if$ -} - -FUNCTION {format.edition} -{ edition empty$ - { "" } - { "" 'v := - "" 'l := - "" 'f := - edition "l" change.case$ 's := - "1" s = - "first" s = - or - { - "1" 'v := - "st" 'l := - } - { - "2" s = - "second" s = - or - { - "2" 'v := - "nd" 'l := - } - { - "3" s = - "third" s = - or - { - "3" 'v := - "rd" 'l := - } - { - "4" s = - "fourth" s = - or - { - "4" 'v := - "th" 'l := - } - { - "5" s = - "fifth" s = - or - { - "5" 'v := - "th" 'l := - } - { - "6" s = - "sixth" s = - or - { - "6" 'v := - "th" 'l := - } - { - "7" s = - "seventh" s = - or - { - "7" 'v := - "th" 'l := - } - { - "8" s = - "eighth" s = - or - { - "8" 'v := - "th" 'l := - } - { - "9" s = - "nineth" s = - or - { - "9" 'v := - "th" 'l := - } - { - edition "t" change.case$ 'f := - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - #0 bother = - { f "" = - { v l * 'f :=} - 'skip$ - if$ - } - { f "" = - { "\bedition{" v * "}" * l * 'f :=} - { "\bedition{" f * "}" * 'f :=} - if$ - } - if$ - f " edn." * - } - if$ -} -FUNCTION {format.isbn} -{ isbn empty$ - { "" } - { isbn "isbn" make.tag} - if$ -} - -INTEGERS {default.info} - - -FUNCTION {multi.page.check} -{ 't := - #0 'multiresult := - "" 'l := - - {t empty$ not} - { t #1 #1 substring$ 's := - - s is.num not - { "" l = not - {t find.integer - {#1 'multiresult := } - {#0 'multiresult := } - if$ - "" 't := - } - { - t #2 global.max$ substring$ 't := - } - if$ - } - { l s * 'l := - t #2 global.max$ substring$ 't := - } - if$ - } - while$ - multiresult -} -FUNCTION {clearpage} -{ 't := - "" 's := - "" 'l := - - { t empty$ not } - { - t #1 #1 substring$ 's := - s is.num not - 'skip$ - { l s * 'l := } - if$ - t #2 global.max$ substring$ 't := - } - while$ - l - -} -FUNCTION {do.pages} -{'t := - "" 'j := - "" 'v := - {t empty$ not} - { t #1 #1 substring$ 's := - s is.num not - s "," = not - and - { "" j = - { - t #2 global.max$ substring$ 't := - } - {t find.integer - { t clearpage 'v := } - 'skip$ - if$ - "" 't := - } - if$ - } - { j s * 'j := - t #2 global.max$ substring$ 't := - } - if$ - } - while$ - j clearpage 'j := - j "fpage" make.tag - "cnd" is.in.list - 'skip$ - {"--" * v "lpage" make.tag *} - if$ -} - - -FUNCTION {format.pages} -{ pages empty$ - { "" } - { pages multi.page.check - {type$ "article" = - {""} - {"cnd" is.in.list - {"p. "} - {"pp. "} - if$ - } - if$ - pages do.pages * - } - {type$ "article" = - {""} - {"p. "} - if$ - pages clearpage "fpage" make.tag * - } - - if$ - } - if$ -} - -FUNCTION {replace.tilde} -{ 't := - "" - { t empty$ not } - { t #1 #1 substring$ "~" = - { { t #1 #1 substring$ "~" = } - { "\texttildelow " * - t #2 global.max$ substring$ 't := - } - while$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - - -FUNCTION {format.url} -{ url empty$ - 'skip$ - { type$ "article" = - 'skip$ - { #0 bother = - { "\url{" } - { "\burl{" } - if$ - url replace.tilde * "}" * - output - } - if$ - - urldate empty$ - 'skip$ - { "Accessed " urldate * output } - if$ - } - if$ -} - - -FUNCTION {publisher.month.pages}{ - publisher empty$ series empty$ and - { address empty$ - 'skip$ - 'new.sentence - if$ - format.pub.address - - pages empty$ - 'skip$ - {insert.comma} - if$ - format.pages output - - } - { - pages empty$ - 'skip$ - {insert.comma} - if$ - format.pages output - publisher empty$ - 'skip$ - {new.sentence} - if$ - format.pub.address - } - if$ -} - -function{process.doi}{ - doi 't := - "" 'b := - #1 'int := -% "doi =" t * top$ - - t text.length$ 'slen := - - {int slen = not } - {t int #3 substring$ "10." = - { - t int #1 - #1 substring$ 'b := - b "" = - {"a" 'b :=} % if b is empty need to set a letter - 'skip$ - if$ - - b is.num not - { - t int slen int - #1 + substring$ 't := - slen #1 - 'int := - } - 'skip$ - if$ - - } - 'skip$ - if$ - int #1 + 'int := - } - while$ - t -} - -FUNCTION {format.doi} -{ doi empty$ - {""} - { - "nodoi" is.in.list - {""} - %%{"doi:\doiurl{" process.doi * "}" * } - {"\doiurl{" process.doi * "} " * } - if$ - } - if$ -} - -FUNCTION {format.in.ed.booktitle} -{ booktitle empty$ - {#1 bother = - "cnd" is.in.list not - and - { editor empty$ - 'skip$ - { "In: " output write$ format.editors } - if$ - } - 'skip$ - if$ - } - { editor empty$ - { "In: " booktitle upercase.first.letters "btitle" make.tag * output} - { "In: " output write$ format.editors "" %%% pushing empty string to the empty stack - booktitle upercase.first.letters "btitle" make.tag output - } - if$ - } - - if$ -} - -FUNCTION {format.in.ed} -{ title empty$ - 'skip$ - { editor empty$ - { title "btitle" make.tag output} - { author empty$ - { format.editors - stupid.colon - %format.date output - title "btitle" make.tag output - } - { "In: " output write$ format.editors "" %%% pushing empty string to the empty stack - title "btitle" make.tag output - } - if$ - } - if$ - } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { "Technical Report" } - 'type - if$ - number empty$ - { "t" change.case$ } - { number tie.or.space.connect } - if$ -} - -FUNCTION {patent.number} -{ number empty$ - 'skip$ - { number } - if$ -} -INTEGERS { len } - -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -FUNCTION {format.inpres} -{ "l" change.case$ 't := - "in press: " #10 - "in press. " #10 - "in press " #9 t chop.word - chop.word - chop.word - #1 global.max$ substring$ -} - -FUNCTION {bcomment.note} -{ note empty$ - 'skip$ - {note format.inpres "comment" make.tag output} - if$ -} - -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ -} - -FUNCTION {format.thesis.type} -{ type empty$ - 'skip$ - { pop$ - type "t" change.case$ - } - if$ -} - -FUNCTION {format.chapter.and.note} -{ note empty$ chapter empty$ organization empty$ and and - 'skip$ - { chapter empty$ - "notnumber" last.label = - or - {organization empty$ - { note "comment" make.tag output } - { note empty$ - { organization "comment" make.tag output } - { organization ". " * note * "comment" make.tag output } - if$ - } - if$ - } - { note empty$ - { "Chap. " chapter * "comment" make.tag output} - { type empty$ - { "Chap. " } - { type "t" change.case$ "Section" = - { "Sect. " } - { "Chap. " } - if$ - } - if$ - chapter * ". " * note * "comment" make.tag output - } - if$ - } - if$ - } - if$ -} - -FUNCTION {item.end} -{ chapter empty$ - type$ "unpublished" = not - type$ "misc" = not - and and - { new.sentence - format.doi output - } - 'skip$ - if$ - - type$ "unpublished" = - type$ "misc" = - or - { note empty$ - 'skip$ - {note.presented - 'skip$ - {new.sentence note output} - if$ - } - if$ - format.date.parens output - } - { new.sentence - type$ "proceedings" = - { author empty$ editor empty$ and - 'bcomment.note - 'format.chapter.and.note - if$ - } - 'format.chapter.and.note - if$ - } - if$ - list.string 'v := - default.list 'list.string := - - type$ ".isbn" * is.in.list - "cnd" is.in.list - or - { - new.sentence -% format.isbn output - } - 'skip$ - if$ - new.sentence - %% commented by SPi as we are using format.eprint %% - %% and also to avoide eprint being printed twice - Start %% - %%eprint empty$ - %% 'skip$ - %% {"\arxivurl{" eprint * "}" * output} - %%if$ - %% End %% - chapter empty$ - type$ "unpublished" = not - type$ "misc" = not - and and - 'skip$ - { new.sentence - format.doi output - } - if$ - new.sentence - format.url - v 'list.string := - fin.entry -} - -FUNCTION {article.item.end} -{ chapter empty$ - type$ "unpublished" = not - type$ "misc" = not - and and - { new.sentence -% format.doi output - } - 'skip$ - if$ - - type$ "unpublished" = - type$ "misc" = - or - { note empty$ - 'skip$ - {note.presented - 'skip$ - {new.sentence note output} - if$ - } - if$ - format.date.parens output - } - { new.sentence - type$ "proceedings" = - { author empty$ editor empty$ and - 'bcomment.note - 'format.chapter.and.note - if$ - } - 'format.chapter.and.note - if$ - } - if$ - list.string 'v := - default.list 'list.string := - - type$ ".isbn" * is.in.list - "cnd" is.in.list - or - { - new.sentence -% format.isbn output - } - 'skip$ - if$ - new.sentence - %% commented by SPi as we are using format.eprint %% - %% and also to avoide eprint being printed twice - Start %% - %%eprint empty$ - %% 'skip$ - %% {"\arxivurl{" eprint * "}" * output} - %%if$ - %% End %% - chapter empty$ - type$ "unpublished" = not - type$ "misc" = not - and and - 'skip$ - { new.sentence -%% format.doi output - } - if$ - new.sentence - format.url - v 'list.string := - fin.entry -} - - -FUNCTION {insert.element} -{ #0 bother = - { element "{botherref}" * write$ newline$} - { - type$ "article" = - {element "{barticle}" * write$ newline$} - 'skip$ - if$ - type$ "book" = - type$ "proceedings" = - type$ "manual" = - type$ "booklet" = - or or or - {element "{bbook}" * write$ newline$} - 'skip$ - if$ - - type$ "inbook" = - { "notnumber" last.label = - {element "{bchapter}" * write$ newline$} - {element "{bbook}" * write$ newline$} - if$ - } - 'skip$ - if$ - - type$ "incollection" = - type$ "inproceedings" = - type$ "conference" = - or or - {element "{bchapter}" * write$ newline$} - 'skip$ - if$ - } - if$ -} - -FUNCTION {end.element} -{ "\end" 'element := - item.end - insert.element - "\endbibitem" write$ newline$ -} - -FUNCTION {article.end.element} -{ "\end" 'element := - article.item.end - insert.element - "\endbibitem" write$ newline$ -} - - -FUNCTION {begin.element} -{ "\begin" 'element := - insert.element -} -function {set.options}{ - options empty$ - 'skip$ - {options 'list.string :=} - if$ -} - -FUNCTION {settings} -{} - -FUNCTION {article} -{ output.bibitem - author empty$ - institution empty$ - editor empty$ - and and - journal empty$ - or - year empty$ - or - % above tagging rule means: - % nead: (volume & (pages or number) ) or (doi [without volume, pages and number]) - volume empty$ not - pages empty$ not bnumber empty$ not or - and - - volume empty$ pages empty$ bnumber empty$ and and - doi empty$ not and - or - not - or - {#0 'bother :=} - {#1 'bother :=} - if$ - begin.element - author empty$ - { editor empty$ - 'skip$ - {format.editors stupid.colon} - if$ - } - { format.authors stupid.colon} - if$ - "cnd" is.in.list - { - journal empty$ - {format.title "atitle" make.tag "title" output.check} - {journal "jtitle" make.tag output} - if$ - } - { - format.title "atitle" make.tag "title" output.check - journal empty$ - 'skip$ - {new.sentence journal "jtitle" make.tag output} - if$ - } - if$ - format.art.vol output - pages empty$ - 'skip$ - {insert.comma} - if$ - format.pages output - format.date.parens output - format.doi output - format.eprint output - format.primaryClass output - article.end.element -} - - -FUNCTION {patent} -{ output.bibitem - #0 'bother := - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "title" output.check - add.period$ - patent.number output - insert.comma - formatpatent.date output - end.element -} - -FUNCTION { other } { patent } - -FUNCTION {book} -{ output.bibitem - author empty$ - institution empty$ - organization empty$ - editor empty$ - and and and - title empty$ - year empty$ - or or - {#0 'bother :=} - { - publisher empty$ address empty$ not and - {#0 'bother :=} - {#1 'bother :=} - if$ - } - if$ - begin.element - author empty$ - { editor empty$ - 'skip$ - {format.editors stupid.colon} - if$ - } - { format.authors stupid.colon} - if$ - format.title "btitle" make.tag "title" output.check - series empty$ - { - format.volume output - insert.comma - format.edition output - } - { edition empty$ - 'skip$ - 'insert.comma - if$ - format.edition output - new.sentence - format.series output - insert.comma - format.volume output - } - if$ - publisher.month.pages - format.date.parens output - end.element -} - -FUNCTION {booklet} -{output.bibitem - author empty$ - title empty$ - year empty$ - howpublished empty$ - or or or - {#0 'bother :=} - {#1 'bother :=} - if$ - - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "btitle" make.tag "title" output.check - address empty$ publisher empty$ howpublished empty$ and and - 'skip$ - 'new.sentence - if$ - format.pub.address - format.date.parens output - end.element -} - -FUNCTION {misc} -{output.bibitem - #0 'bother := - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "btitle" make.tag "title" output.check - address empty$ publisher empty$ howpublished empty$ and and - 'skip$ - 'new.sentence - if$ - format.pub.address - end.element -} - -FUNCTION {softmisc} -{output.bibitem - #0 'bother := - begin.element - author empty$ - 'skip$ - {format.authors} - if$ - stupid.colon - format.title "btitle" make.tag "title" output.check - insert.comma - version output - insert.comma - %%address empty$ publisher empty$ howpublished empty$ and and - %%'skip$ - %% 'new.sentence - %%if$ - format.pub.address - format.softmiscdate output - insert.comma - format.softmisc.eprint output - end.element -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - institution empty$ - organization empty$ - editor empty$ - and and and - title empty$ - year empty$ - or or - {#0 'bother :=} - { - publisher empty$ address empty$ not and - {#0 'bother :=} - {#1 'bother :=} - if$ - } - if$ - - chapter empty$ - { "" 'last.label :=} - { chapter string.to.integer empty$ author empty$ not and - { "notnumber" 'last.label :=} - { "" 'last.label :=} - if$ - } - if$ - - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - "notnumber" last.label = - { chapter "ctitle" make.tag output - add.period$ - } - 'skip$ - if$ - format.in.ed - series empty$ - { - insert.comma - format.volume output - insert.comma - format.edition output - new.sentence - } - { - insert.comma - format.edition output - new.sentence - format.series output - volume empty$ - 'skip$ - 'insert.comma - if$ - format.volume output - } - if$ - publisher.month.pages - publisher empty$ address empty$ edition empty$ series empty$ pages empty$ volume empty$ and and and and and - 'insert.comma - 'skip$ - if$ - format.date.parens output - end.element -} -FUNCTION {incollection} -{ output.bibitem - author empty$ - institution empty$ - and - booktitle empty$ - title empty$ - year empty$ - or or or - {#0 'bother :=} - { - publisher empty$ address empty$ not and - {#0 'bother :=} - {#1 'bother :=} - if$ - } - if$ - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - - "cnd" is.in.list - { - booktitle empty$ title empty$ not and - { - format.title "ctitle" make.tag "title" output.check - new.sentence - } - 'skip$ - if$ - } - { - format.title "ctitle" make.tag "title" output.check - title empty$ - 'skip$ - {new.sentence} - if$ - } - if$ - format.in.ed.booktitle - series empty$ - { - format.volume output - insert.comma - format.edition output - } - { - edition empty$ - 'skip$ - { insert.comma - format.edition output - } - if$ - new.sentence - format.series output - insert.comma - format.volume output - } - if$ - publisher.month.pages - format.date.parens output - end.element -} - -FUNCTION {inproceedings} -{ output.bibitem - author empty$ - institution empty$ - and - title empty$ - year empty$ - or or - {#0 'bother :=} - {#1 'bother :=} - if$ - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - - "cnd" is.in.list - { - booktitle empty$ title empty$ not and - { - format.title "ctitle" make.tag "title" output.check - new.sentence - } - 'skip$ - if$ - } - { - format.title "ctitle" make.tag "title" output.check - title empty$ booktitle empty$ not and - 'skip$ - {new.sentence} - if$ - } - if$ - - format.in.ed.booktitle - series empty$ - 'skip$ - {new.sentence format.series output} - if$ - volume empty$ address empty$ publisher empty$ and and - 'skip$ - 'insert.comma - if$ - format.volume output - publisher.month.pages - format.date.parens output - end.element -} - -FUNCTION {conference} { inproceedings } - -FUNCTION {manual} -{ output.bibitem - author empty$ - organization empty$ - title empty$ - year empty$ - address empty$ - or or or or - {#0 'bother :=} - {#1 'bother :=} - if$ - begin.element - - author empty$ - { organization empty$ - 'skip$ - { organization "publisher" make.tag output.nonnull - stupid.colon% add.period$ - } - if$ - } - { format.authors stupid.colon} - if$ - title empty$ - 'skip$ - {format.title "btitle" make.tag output} - if$ - edition empty$ - {new.sentence} - {insert.comma} - if$ - format.edition output - edition empty$ - 'skip$ - {new.sentence} - if$ - author empty$ organization empty$ - or - 'skip$ - { organization "publisher" make.tag output.nonnull - insert.comma - } - if$ - address empty$ - 'skip$ - {address "location" make.tag output} - if$ - format.date.parens output - end.element -} - - -FUNCTION {phdthesis} -{output.bibitem - #0 'bother := - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "title" output.check - new.sentence - type$ "mastersthesis" = - {"Master's thesis" format.thesis.type output.nonnull} - {"PhD thesis" format.thesis.type output.nonnull} - if$ - school empty$ - 'skip$ - 'insert.comma - if$ - school "school" output.check - address empty$ - 'skip$ - 'insert.comma - if$ - address output - month.year.date output - end.element -} -FUNCTION {mastersthesis}{phdthesis} - - -FUNCTION {proceedings} -{ output.bibitem - author empty$ - institution empty$ - organization empty$ - editor empty$ - and and and - title empty$ - year empty$ - or or - {#0 'bother :=} - { - publisher empty$ address empty$ not and - {#0 'bother :=} - {#1 'bother :=} - if$ - } - if$ - - begin.element - author empty$ - { editor empty$ - {organization "institutionaled" make.tag "organization" output.check } - { format.editors } - if$ - } - { format.authors } - if$ - stupid.colon - format.title "btitle" make.tag output - series empty$ - 'skip$ - {new.sentence format.series output} - if$ - volume empty$ - 'skip$ - 'insert.comma - if$ - format.volume output - publisher.month.pages - format.date.parens output - end.element -} - -FUNCTION {techreport} -{ output.bibitem - #0 'bother := - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "title" output.check - new.sentence - format.tr.number output.nonnull - institution empty$ - 'skip$ - 'insert.comma - if$ - institution "institution" output.check - address empty$ - 'skip$ - 'insert.comma - if$ - address output - month.year.date output - end.element -} - -FUNCTION {unpublished} -{ output.bibitem - #0 'bother := - - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "title" output.check - note empty$ - 'skip$ - { note.presented - {note output} - 'skip$ - if$ - } - if$ - end.element -} - -FUNCTION {default.type} { unpublished } - -MACRO {jan} {"January"} -MACRO {feb} {"February"} -MACRO {mar} {"March"} -MACRO {apr} {"April"} -MACRO {may} {"May"} -MACRO {jun} {"June"} -MACRO {jul} {"July"} -MACRO {aug} {"August"} -MACRO {sep} {"September"} -MACRO {oct} {"October"} -MACRO {nov} {"November"} -MACRO {dec} {"December"} - -READ - -FUNCTION {sortify} -{ purify$ - "l" change.case$ -} - -INTEGERS { et.al.char.used } - -FUNCTION {initialize.et.al.char.used} -{ #0 'et.al.char.used := -} - -%%%%% setting default options -FUNCTION {set.default.opt} -{"unsort" 'list.string :=} - -EXECUTE {set.default.opt} - -FUNCTION {assign.opt}{ - % First need to set options - "settings" type$ = - { options empty$ - 'skip$ - {options 'list.string :=} - if$ - } - 'skip$ - if$ -} - -ITERATE {assign.opt} -EXECUTE {initialize.et.al.char.used} - -FUNCTION {alpha.format.lab.names} -{ 's := - s num.names$ 'numnames := - numnames #1 > - { numnames #4 > - { #3 'namesleft := } - { numnames 'namesleft := } - if$ - #1 'nameptr := - "" - { namesleft #0 > } - { nameptr numnames = - { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { "+" * - #1 'et.al.char.used := - } - { s nameptr "{v{}}{l{}}" format.name$ * } - if$ - } - { s nameptr "{v{}}{l{}}" format.name$ * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - numnames #4 > - { "+" * - #1 'et.al.char.used := - } - 'skip$ - if$ - } - { s #1 "{v{}}{l{}}" format.name$ - duplicate$ text.length$ #2 < - { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } - 'skip$ - if$ - } - if$ -} - -FUNCTION {standard.format.lab.names} -{ 's := - s #1 "{vv~}{ll}" format.name$ - s num.names$ duplicate$ - #2 > - { pop$ " et~al." * } - { #2 < - 'skip$ - { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { " et~al." * } - { " and " * s #2 "{vv~}{ll}" format.name$ * } - if$ - } - if$ - } - if$ -} -FUNCTION {format.lab.names}{ - "alpha" is.in.list - 'alpha.format.lab.names - 'standard.format.lab.names - if$ -} - -FUNCTION {author.key.label} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {author.editor.key.label} -{ author empty$ - { editor empty$ - { key empty$ - { "zzz" } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {author.key.organization.label} -{ author empty$ - { key empty$ - { organization empty$ - { "zzz" } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {editor.key.organization.label} -{ editor empty$ - { key empty$ - { organization empty$ - { "zzz" } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names } - if$ -} - -FUNCTION {calc.short.authors} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label - { type$ "proceedings" = - 'editor.key.organization.label - { type$ "manual" = - 'author.key.organization.label - 'author.key.label - if$ - } - if$ - } - if$ - 'short.list := -} - -FUNCTION {calc.label} -{ calc.short.authors - short.list - - "alpha" is.in.list - { - duplicate$ - year field.or.null purify$ #-1 #2 substring$ - * - 'label := - year field.or.null purify$ #-1 #4 substring$ - * - sortify 'sort.label := - } - { - "(" - * - year duplicate$ empty$ - short.list key field.or.null = or - { pop$ "" } - 'skip$ - if$ - * - 'label := - label 'sort.label := - } - if$ -} - -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { nameptr #1 > - { " " * - "alpha" is.in.list - 'skip$ - {numnames int.to.str$ * " " *} - if$ - } - 'skip$ - if$ - s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := - nameptr numnames = - t "others" = - and - { "et al" * } - { t sortify * } - if$ - #3 numnames < - "alpha" is.in.list not - and - {#0 'namesleft := - " zzz " * - } - { - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - if$ - } - 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$ - "zzz" - } - { 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$ - "z" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {author.organization.sort} -{ author empty$ - { organization empty$ - { key empty$ - { "to sort, need author, organization, or key in " cite$ * warning$ - "z" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {editor.organization.sort} -{ editor empty$ - { organization empty$ - { key empty$ - { "to sort, need editor, organization, or key in " cite$ * warning$ - "z" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { editor sort.format.names } - if$ -} - -FUNCTION {presort} -{ calc.label - sort.label sortify - " " - * - type$ "book" = - type$ "inbook" = - or - {author empty$ - 'editor.organization.sort - 'author.organization.sort - if$ - } - { type$ "proceedings" = - type$ "incollection" = - or - {author empty$ - 'editor.organization.sort - 'author.organization.sort - if$ - } - { type$ "manual" = - 'author.organization.sort - 'author.sort - if$ - } - if$ - } - if$ - " " - * - year field.or.null sortify - * - " " - * - title field.or.null - sort.format.title - * - #1 entry.max$ substring$ 'sort.label := - sort.label * - #1 entry.max$ substring$ 'sort.key$ := - - "settings" type$ = - {"aaa"} - {"unsort" is.in.list - {"bb"} - {"alpha" is.in.list - {sort.key$} - {sort.label} - if$ - } - if$ - } - if$ - 'sort.key$ := -} - - -ITERATE {presort} - -SORT - -INTEGERS { longest.label.width last.extra.num number.label } - -FUNCTION {initialize.longest.label} -{ "" 'longest.label := - #0 int.to.chr$ 'last.label := - "" 'j := - #0 'longest.label.width := - #0 'last.extra.num := - #0 'number.label := -} - -FUNCTION {forward.pass} -{ last.label label = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - label 'last.label := - } - if$ - number.label #1 + 'number.label := -} - -FUNCTION {reverse.pass} -{ j "b" = - { "a" 'extra.label := } - 'skip$ - if$ - extra.label 'j := - label extra.label * 'label := -} - -EXECUTE {initialize.longest.label} - -ITERATE {forward.pass} - -REVERSE {reverse.pass} - -FUNCTION {write.preambule} -{ "%% BioMed_Central_Bib_Style_v1.01" write$ newline$ newline$ - "\begin{thebibliography}{" number.label int.to.str$ * "}" * write$ newline$ - "% BibTex style file: bmc-mathphys.bst (version 2.1), 2014-07-24" write$ newline$ - "\ifx \bisbn \undefined \def \bisbn #1{ISBN #1}\fi" write$ newline$ - "\ifx \binits \undefined \def \binits#1{#1}\fi" write$ newline$ - "\ifx \bauthor \undefined \def \bauthor#1{#1}\fi" write$ newline$ - "\ifx \batitle \undefined \def \batitle#1{#1}\fi" write$ newline$ - "\ifx \bjtitle \undefined \def \bjtitle#1{#1}\fi" write$ newline$ - "\ifx \bvolume \undefined \def \bvolume#1{\textbf{#1}}\fi" write$ newline$ - "\ifx \byear \undefined \def \byear#1{#1}\fi" write$ newline$ - "\ifx \bissue \undefined \def \bissue#1{#1}\fi" write$ newline$ - "\ifx \bfpage \undefined \def \bfpage#1{#1}\fi" write$ newline$ - "\ifx \blpage \undefined \def \blpage #1{#1}\fi" write$ newline$ - "\ifx \burl \undefined \def \burl#1{\textsf{#1}}\fi" write$ newline$ - %%"\ifx \doiurl \undefined \def \doiurl#1{\textsf{#1}}\fi" write$ newline$ - "\ifx \doiurl \undefined \def \doiurl#1{\url{https://doi.org/#1}}\fi" write$ newline$ - "\ifx \betal \undefined \def \betal{\textit{et al.}}\fi" write$ newline$ - "\ifx \binstitute \undefined \def \binstitute#1{#1}\fi" write$ newline$ - "\ifx \binstitutionaled \undefined \def \binstitutionaled#1{#1}\fi" write$ newline$ - "\ifx \bctitle \undefined \def \bctitle#1{#1}\fi" write$ newline$ - "\ifx \beditor \undefined \def \beditor#1{#1}\fi" write$ newline$ - "\ifx \bpublisher \undefined \def \bpublisher#1{#1}\fi" write$ newline$ - "\ifx \bbtitle \undefined \def \bbtitle#1{#1}\fi" write$ newline$ - "\ifx \bedition \undefined \def \bedition#1{#1}\fi" write$ newline$ - "\ifx \bseriesno \undefined \def \bseriesno#1{#1}\fi" write$ newline$ - "\ifx \blocation \undefined \def \blocation#1{#1}\fi" write$ newline$ - "\ifx \bsertitle \undefined \def \bsertitle#1{#1}\fi" write$ newline$ - "\ifx \bsnm \undefined \def \bsnm#1{#1}\fi" write$ newline$ - "\ifx \bsuffix \undefined \def \bsuffix#1{#1}\fi" write$ newline$ - "\ifx \bparticle \undefined \def \bparticle#1{#1}\fi" write$ newline$ - "\ifx \barticle \undefined \def \barticle#1{#1}\fi" write$ newline$ - "\bibcommenthead" write$ newline$ -} - - -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - write.preambule - "\ifx \bconfdate \undefined \def \bconfdate #1{#1}\fi" write$ newline$ - "\ifx \botherref \undefined \def \botherref #1{#1}\fi" write$ newline$ - "\ifx \url \undefined \def \url#1{\textsf{#1}}\fi" write$ newline$ - "\ifx \bchapter \undefined \def \bchapter#1{#1}\fi" write$ newline$ - "\ifx \bbook \undefined \def \bbook#1{#1}\fi" write$ newline$ - "\ifx \bcomment \undefined \def \bcomment#1{#1}\fi" write$ newline$ - "\ifx \oauthor \undefined \def \oauthor#1{#1}\fi" write$ newline$ - "\ifx \citeauthoryear \undefined \def \citeauthoryear#1{#1}\fi" write$ newline$ - "\ifx \endbibitem \undefined \def \endbibitem {}\fi" write$ newline$ - "\ifx \bconflocation \undefined \def \bconflocation#1{#1}\fi" write$ newline$ - "\ifx \arxivurl \undefined \def \arxivurl#1{\textsf{#1}}\fi" write$ newline$ - "\csname PreBibitemsHook\endcsname" write$ newline$ -} - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -FUNCTION {end.bib} -{ newline$ - "\end{thebibliography}" write$ newline$ -} - -EXECUTE {end.bib} - - -%% XML output - done for each entry referenced in the BibTeX database -INTEGERS {i ll li j.int global.counter} -STRINGS {lr lp lt ls } - -FUNCTION {replace} -{ - 'lr := % replace string - 'lp := % pattern - 'lt := % text to search - "" 'ls := % result string - lp text.length$ 'll := % length of the search pattern - { lt empty$ not } - { lt #1 ll substring$ lp = - { ls lr * 'ls := - lt ll #1 + global.max$ substring$ 'lt := } - { ls lt #1 #1 substring$ * 'ls := - lt #2 global.max$ substring$ 'lt := } - if$ - } - while$ - ls -} - -FUNCTION {strip.letters} -{ - "" 's := - duplicate$ missing$ - 'pop$ - { - 't := - { t "" = not } - { % ascii '0' = 48, '9' = 57 - t #1 #1 substring$ chr.to.int$ 'i := - i #47 > i #58 < and - { s t #1 #1 substring$ * 's := } - 'skip$ - if$ - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - s -} -FUNCTION {output.xml} -{ duplicate$ "" = - 'pop$ - { " " swap$ * write$ newline$ } - if$ -} - -%% - % markup.xml - % - % Takes 2 args text & tag {"the text " "tag"} - % Returns 1 string {"the text <\tag>"} -%% -FUNCTION {markup.xml} -{ - "" 'v := % result - 't := % tag - duplicate$ missing$ - 'pop$ - { 'v := } - if$ - v "" = - 'skip$ - { "<" t * ">" * v * "" * 'v := } - if$ - v -} - -%% Takes 2 args - tag, string -FUNCTION{markup.xml.title} -{ pop$ % tag - duplicate$ missing$ - 'pop$ - { - 's := % string - s "\&" "&" replace 's := - s "p" markup.xml 's := - s "title" markup.xml output.xml - } - if$ -} - - -%% - % markup.xml.pages - % - % Takes 1 arg (pages string) - % seperates into and if - % there is a - seperator. else no lpage. - % - % need to remove others -%% -FUNCTION{markup.xml.pages} -{ - "" 'v := % fpage - "" 's := % lpage - duplicate$ missing$ - 'pop$ - { - 't := - t " " "" replace 't := % remove all spaces. pgs must be - seperated - { t empty$ not } - { - t #1 #1 substring$ "-" = - { - t #2 global.max$ substring$ 's := - "" 't := % break while loop - }{ - v t #1 #1 substring$ * 'v := - t #2 global.max$ substring$ 't := - } - if$ - } - while$ - } - if$ - v "fpage" markup.xml output.xml - s "lpage" markup.xml output.xml -} - - -%% - % markup.xml.names - % - % Takes 2 args - % tag, namefield (eg. author "au") - % splits fields into and - % writes info - % returns nothing -%% -FUNCTION {markup.xml.names} -{ - 't := % tag - "" 'v := - "" 's := - duplicate$ empty$ - { pop$ - organization missing$ - { institution "cnm" markup.xml - "au" markup.xml "aug" markup.xml output.xml } - { organization "cnm" markup.xml - "au" markup.xml "aug" markup.xml output.xml } - if$ } - { - " " write$ newline$ - 'temp.str := % names string - temp.str num.names$ 'j.int := % num of names - #1 'i := % init counter - { i #1 j.int + < } % while (i <= j.int) - { - " " write$ - - % Initial first names - % if first name all in capitals - % - assume is initial list of first names. - temp.str i "{ff{ }}" format.name$ - duplicate$ "u" change.case$ = - { temp.str i "{ff{ }}" format.name$ } - { temp.str i "{f{}}" format.name$ } - if$ - - % if last name but no first name use cnm; else snm - duplicate$ "" = - { temp.str i "{ll{ }}" format.name$ % last names space seperated. - "cnm" markup.xml write$ } - { temp.str i "{ll{ }}" format.name$ % last names space seperated. - "snm" markup.xml write$ } - if$ - - "fnm" markup.xml write$ - - "" write$ newline$ - i #1 + 'i := - } - while$ - " " write$ newline$ - } - if$ -} - - -%% - % markup.xml.pub - % - % Takes 4 args (school address publisher tag) - % prints concatenation - % returns nothing -%% -FUNCTION {markup.xml.pub} -{ - 't := % Tag - "" 'v := % Publisher - "" 'l := % Address - "" 'f := % School - "" 's := % Answer - duplicate$ missing$ 'pop$ { 'v := } if$ - duplicate$ missing$ 'pop$ { 'l := } if$ - duplicate$ missing$ 'pop$ { 'f := } if$ - "" f = not % school not empty - { f 's := } % return school as publisher - { % else - "" v = "" l = and % address and pub empty - 'skip$ - { - "" l = - { v 's := } % return pub - { "" v = - { l 's := } % return add - { l ": " * v * 's := } % return add : pub - if$ - } - if$ - } - if$ - } - if$ - s t markup.xml output.xml -} - -%% - % xml.phd - % - % Takes nothing - % Returns type (phd/msc) of empty string -%% -FUNCTION {xml.phd} -{ - "phdthesis" type$ = - "mastersthesis" type$ = or - { "phdthesis" type$ = - { "PhD thesis" } - { "Master's thesis" } - if$ - } - { type } % usually empty - if$ -} - -% markup.xml.edition -% -% edition is a numeric value. ie "2" -% if format 2nd 1st etc.. strip letters. -% -FUNCTION {markup.xml.edition} -{ pop$ pop$ %clear stack - edition strip.letters duplicate$ "" = - { pop$ edition } - 'skip$ - if$ - "edition" markup.xml output.xml -} - - -FUNCTION{begin.bmcxmlcomment}{ - newline$ - "\newcommand{\BMCxmlcomment}[1]{}" write$ newline$ - newline$ - "\BMCxmlcomment{" write$ newline$ - newline$ "" write$ newline$ -} - -FUNCTION{end.bmcxmlcomment}{ - newline$ - "" write$ newline$ - "} % end of \BMCxmlcomment" write$ newline$ -} - -FUNCTION {export.xml}{ - newline$ - global.counter #1 + 'global.counter := - "" * - write$ newline$ -% title "\&" "&" replace "title" markup.xml.title - title "title" markup.xml.title - author "aug" markup.xml.names % org. and inst. here - howpublished missing$ - { booktitle missing$ - { journal missing$ - { xml.phd } % Phd/Msc - {journal} - if$ - } {booktitle} - if$ - } { howpublished } - if$ "source" markup.xml output.xml - school - address - publisher "publisher" markup.xml.pub - editor "editor" markup.xml output.xml - edition "edition" markup.xml.edition - series "p" markup.xml - "title" markup.xml - "series" markup.xml output.xml - chapter "p" markup.xml - "title" markup.xml - "section" markup.xml output.xml - % month % ignore - year "pubdate" markup.xml output.xml - - note missing$ - { volume "volume" markup.xml output.xml - number "issue" markup.xml output.xml - pages markup.xml.pages - url "url" markup.xml output.xml } - { note "l" change.case$ "in press" = - { " " write$ newline$ } - { volume "volume" markup.xml output.xml - number "issue" markup.xml output.xml - pages markup.xml.pages - url "url" markup.xml output.xml - note "note" markup.xml output.xml - } - if$ - } - if$ - "" write$ newline$ -} - -%%EXECUTE {begin.bmcxmlcomment} -%%ITERATE {export.xml} -%%EXECUTE {end.bmcxmlcomment} - - - - diff --git a/_extensions/christopherkenny/nature/sn-nature.bst b/_extensions/christopherkenny/nature/sn-nature.bst deleted file mode 100644 index cae8f64..0000000 --- a/_extensions/christopherkenny/nature/sn-nature.bst +++ /dev/null @@ -1,1710 +0,0 @@ -%% -%% This is file `naturemag.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% merlin.mbs (with options: `head,seq-no,nm-rev,ed-rev,jnrlst,nmlm,x5,m1,yr-par,xmth,vol-bf,vnum-x,volp-com,num-xser,jnm-x,bkpg-x,pub-date,edparxc,ppx,ed,abr,xedn,jabr,amper,and-xcom,etal-it,eprint,url,url-blk,bibinfo,nfss,{}') -%% physjour.mbs (with options: `seq-no,nm-rev,ed-rev,jnrlst,nmlm,x5,m1,yr-par,xmth,vol-bf,vnum-x,volp-com,num-xser,jnm-x,bkpg-x,pub-date,edparxc,ppx,ed,abr,xedn,jabr,amper,and-xcom,etal-it,eprint,url,url-blk,bibinfo,nfss,{}') -%% geojour.mbs (with options: `seq-no,nm-rev,ed-rev,jnrlst,nmlm,x5,m1,yr-par,xmth,vol-bf,vnum-x,volp-com,num-xser,jnm-x,bkpg-x,pub-date,edparxc,ppx,ed,abr,xedn,jabr,amper,and-xcom,etal-it,eprint,url,url-blk,bibinfo,nfss,{}') -%% photjour.mbs (with options: `seq-no,nm-rev,ed-rev,jnrlst,nmlm,x5,m1,yr-par,xmth,vol-bf,vnum-x,volp-com,num-xser,jnm-x,bkpg-x,pub-date,edparxc,ppx,ed,abr,xedn,jabr,amper,and-xcom,etal-it,eprint,url,url-blk,bibinfo,nfss,{}') -%% merlin.mbs (with options: `tail,seq-no,nm-rev,ed-rev,jnrlst,nmlm,x5,m1,yr-par,xmth,vol-bf,vnum-x,volp-com,num-xser,jnm-x,bkpg-x,pub-date,edparxc,ppx,ed,abr,xedn,jabr,amper,and-xcom,etal-it,eprint,url,url-blk,bibinfo,nfss,{}') -%% ---------------------------------------- -%% *** Style for the journal Nature (created by Peter Czoschke) *** -%% -%% Copyright 1994-2002 Patrick W Daly - % =============================================================== - % IMPORTANT NOTICE: - % This bibliographic style (bst) file has been generated from one or - % more master bibliographic style (mbs) files, listed above. - % - % This generated file can be redistributed and/or modified under the terms - % of the LaTeX Project Public License Distributed from CTAN - % archives in directory macros/latex/base/lppl.txt; either - % version 1 of the License, or any later version. - % =============================================================== - % Name and version information of the main mbs file: - % \ProvidesFile{merlin.mbs}[2002/10/21 4.05 (PWD, AO, DPC)] - % For use with BibTeX version 0.99a or later - %------------------------------------------------------------------- - % This bibliography style file is intended for texts in ENGLISH - % This is a numerical citation style, and as such is standard LaTeX. - % It requires no extra package to interface to the main text. - % The form of the \bibitem entries is - % \bibitem{key}... - % Usage of \cite is as follows: - % \cite{key} ==>> [#] - % \cite[chap. 2]{key} ==>> [#, chap. 2] - % where # is a number determined by the ordering in the reference list. - % The order in the reference list is that by which the works were originally - % cited in the text, or that in the database. - %--------------------------------------------------------------------- - -ENTRY - { address - archive - author - booktitle - chapter - edition - editor - eprint - howpublished - institution - journal - key - keywords - month - note - number - organization - pages - publisher - school - series - title - type - url - doi - volume - year - archivePrefix - primaryClass - eid - adsurl - adsnote - version - } - {} - { label } -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} -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { ", " * write$ } - { output.state after.block = - { add.period$ write$ - newline$ - "\newblock " write$ - } - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - s -} - -FUNCTION {output.in.nonnull} -{ 's := - output.state mid.sentence = - { ", " * write$ } - { output.state after.block = - { add.period$ write$ - newline$ - "\newblock " write$ - } - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - s -} -FUNCTION {output} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull - if$ -} -FUNCTION {output.check} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull - if$ -} - -FUNCTION {in.output.check} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.in.nonnull - if$ -} -FUNCTION {fin.entry} -{ add.period$ - write$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} -FUNCTION {add.blank} -{ " " * before.all 'output.state := -} - -FUNCTION {date.block} -{ - new.block -} - -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} -FUNCTION {new.block.checka} -{ empty$ - 'skip$ - 'new.block - if$ -} -FUNCTION {new.block.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.block - if$ -} -FUNCTION {new.sentence.checka} -{ empty$ - 'skip$ - 'new.sentence - if$ -} -FUNCTION {new.sentence.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.sentence - if$ -} -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} -FUNCTION {emphasize} -{ duplicate$ empty$ - { pop$ "" } - { "\emph{" swap$ * "}" * } - if$ -} -FUNCTION {bolden} -{ duplicate$ empty$ - { pop$ "" } - { "\textbf{" swap$ * "}" * } - if$ -} -FUNCTION {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 -FUNCTION {bbl.and} -{ "and"} - -FUNCTION {bbl.etal} -{ "et~al." } - -FUNCTION {bbl.in.editors} -{ "eds " } - -FUNCTION {bbl.editors} -{ "eds" } - -FUNCTION {bbl.editor} -{ "ed." } - -FUNCTION {bbl.edby} -{ "edited by" } - -FUNCTION {bbl.edition} -{ "edn" } - -FUNCTION {bbl.volume} -{ "Vol." } - -FUNCTION {bbl.of} -{ "of" } - -FUNCTION {bbl.number} -{ "no." } - -FUNCTION {bbl.nr} -{ "no." } - -FUNCTION {bbl.in} -{ "in" } - -FUNCTION {bbl.pages} -{ "" } - -FUNCTION {bbl.page} -{ "" } - -FUNCTION {bbl.chapter} -{ "Ch." } - -FUNCTION {bbl.techrep} -{ "Tech. Rep." } - -FUNCTION {bbl.mthesis} -{ "Master's thesis" } - -FUNCTION {bbl.phdthesis} -{ "Ph.D. thesis" } - -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."} - - %------------------------------------------------------------------- - % 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-2002 Patrick W Daly -MACRO {acmcs} {"ACM Comput. Surv."} - -MACRO {acta} {"Acta Inf."} - -MACRO {cacm} {"Commun. ACM"} - -MACRO {ibmjrd} {"IBM J. Res. Dev."} - -MACRO {ibmsj} {"IBM Syst.~J."} - -MACRO {ieeese} {"IEEE Trans. Software Eng."} - -MACRO {ieeetc} {"IEEE Trans. Comput."} - -MACRO {ieeetcad} - {"IEEE Trans. Comput. Aid. Des."} - -MACRO {ipl} {"Inf. Process. Lett."} - -MACRO {jacm} {"J.~ACM"} - -MACRO {jcss} {"J.~Comput. Syst. Sci."} - -MACRO {scp} {"Sci. Comput. Program."} - -MACRO {sicomp} {"SIAM J. Comput."} - -MACRO {tocs} {"ACM Trans. Comput. Syst."} - -MACRO {tods} {"ACM Trans. Database Syst."} - -MACRO {tog} {"ACM Trans. Graphic."} - -MACRO {toms} {"ACM Trans. Math. Software"} - -MACRO {toois} {"ACM Trans. Office Inf. Syst."} - -MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."} - -MACRO {tcs} {"Theor. Comput. Sci."} - -FUNCTION {bibinfo.check} -{ swap$ - duplicate$ missing$ - { - pop$ pop$ - "" - } - { duplicate$ empty$ - { - swap$ pop$ - } - { swap$ - "\bibinfo{" 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{" swap$ * "}{" * swap$ * "}" * - } - if$ - } - if$ -} -FUNCTION {format.eprint} -{ eprint duplicate$ empty$ - 'skip$ - { "\eprint" - archive empty$ - 'skip$ - { "[" * archive * "]" * } - if$ - "{" * swap$ * "}" * - } - if$ -} -FUNCTION {format.url} -{ url empty$ - { "" } - { "\urlprefix\url{" url * "}" * } - if$ -} - -FUNCTION {format.doi} -{ doi empty$ - { "" } - { "\doi{" doi * "}" * } - if$ -} - -STRINGS { bibinfo} -INTEGERS { nameptr namesleft numnames } - -FUNCTION {format.names} -{ 'bibinfo := - duplicate$ empty$ 'skip$ { - 's := - "" 't := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{vv~}{ll}{, f.}{, jj}" - format.name$ - bibinfo bibinfo.check - 't := - nameptr #1 > - { - nameptr #1 - #1 + = - numnames #5 - > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - namesleft #1 > - { ", " * t * } - { - s nameptr "{ll}" format.name$ duplicate$ "others" = - { 't := } - { pop$ } - if$ - t "others" = - { - " " * bbl.etal emphasize * - } - { - "\&" - space.word * t * - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - } if$ -} -FUNCTION {format.names.ed} -{ - format.names -} -FUNCTION {format.authors} -{ author "author" format.names -} -FUNCTION {get.bbl.editor} -{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } - -FUNCTION {get.in.bbl.editor} -{ } - -FUNCTION {format.editors} -{ editor "editor" format.names duplicate$ empty$ 'skip$ - { - " " * - get.bbl.editor - "(" swap$ * ")" * - * - } - if$ -} - -FUNCTION {format.in.editors} -{ "" editor "editor" format.names duplicate$ empty$ 'skip$ - { swap$ "(eds" * - " " * swap$ * - swap$ " " * - swap$ * ")" * - } - if$ -} - -FUNCTION {format.note} -{ - note empty$ - { "" } - { note #1 #1 substring$ - duplicate$ "{" = - 'skip$ - { output.state mid.sentence = - { "l" } - { "u" } - if$ - change.case$ - } - if$ - note #2 global.max$ substring$ * "note" bibinfo.check - } - if$ -} - - - -FUNCTION {format.in.title} -{ title - duplicate$ empty$ 'skip$ - { "t" change.case$ } - if$ - " in \textit{" swap$ * "}" * "title" bibinfo.check -} - -FUNCTION {format.title} -{ title - duplicate$ empty$ 'skip$ - { "t" change.case$ } - if$ - "title" bibinfo.check -} - -FUNCTION {format.inpro.title} -{ title - duplicate$ empty$ 'skip$ - { "t" change.case$ } - if$ - "title" bibinfo.check - emphasize} - -FUNCTION {format.version} -{ version - duplicate$ empty$ 'skip$ - { "t" change.case$ } - if$ - "version" bibinfo.check -} - -%FUNCTION {format.inpro.title} -%{ title -% duplicate$ empty$ 'skip$ -% { "t" change.case$ } -% if$ -% "title" bibinfo.check -% emphasize} - -FUNCTION {output.bibitem} -{ newline$ - "\bibitem{" write$ - cite$ write$ - "}" write$ - newline$ - "" - before.all 'output.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 capitalize - " " * } - -FUNCTION {format.date} -{ - "" - duplicate$ empty$ - year "year" bibinfo.check duplicate$ empty$ - { swap$ 'skip$ - { "there's a month but no year in " cite$ * warning$ } - if$ - * - } - { swap$ 'skip$ - { - swap$ - " " * swap$ - } - if$ - * - } - if$ - duplicate$ empty$ - 'skip$ - { - before.all 'output.state := - " (" swap$ * ")" * - } - if$ -} -FUNCTION {format.btitle} -{ title "title" bibinfo.check - duplicate$ empty$ 'skip$ - { - emphasize - } - if$ -} -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.prefix - "volume" bibinfo.check * * - series "series" bibinfo.check - duplicate$ empty$ 'pop$ - { swap$ bbl.of space.word * swap$ - emphasize * } - if$ - "volume and number" number either.or.check - } - if$ -} -FUNCTION {format.number.series} -{ volume empty$ - { number empty$ - { series field.or.null } - { series empty$ - { 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$ - } - if$ - } - { "" } - if$ -} - -FUNCTION {format.edition} -{ 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 := - { 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 - { - n.dashify - } - { - } - if$ - "pages" bibinfo.check - } - if$ -} -FUNCTION {format.journal.pages} -{ pages duplicate$ empty$ 'pop$ - { swap$ duplicate$ empty$ - { pop$ pop$ format.pages } - { - ", " * - swap$ - n.dashify - "pages" bibinfo.check - * - } - if$ - } - if$ -} -FUNCTION {format.number} - {number empty$ - 'skip$ - { "~(" number * ")" * * } - if$ - } -FUNCTION {format.vol.num.pages} -{ volume field.or.null - duplicate$ empty$ 'skip$ - { - "volume" bibinfo.check - } - if$ - bolden -% format.number - format.journal.pages -} - -FUNCTION {format.chapter.pages} -{ chapter empty$ - 'format.pages - { type empty$ - { bbl.chapter } - { type "l" change.case$ - "type" bibinfo.check - } - if$ - chapter tie.or.space.prefix - "chapter" bibinfo.check - * * - pages empty$ - 'skip$ - { ", " * format.pages * } - if$ - } - if$ -} - -FUNCTION {format.booktitle} -{ - booktitle "booktitle" bibinfo.check - emphasize -} -FUNCTION {format.in.ed.booktitle} -{ duplicate$ empty$ 'skip$ - { -editor "editor" format.names.ed duplicate$ empty$ 'pop$ - { -format.booktitle swap$ -"(" editor num.names$ #1 > 'bbl.in.editors 'bbl.editor if$ * swap$ ") " * - * swap$ - * } - if$ - } - if$ -} -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ -} -FUNCTION {format.thesis.type} -{ type duplicate$ empty$ - 'pop$ - { swap$ pop$ - "t" change.case$ "type" bibinfo.check - } - if$ -} -FUNCTION {format.tr.number} -{ number "number" bibinfo.check - type duplicate$ empty$ - { pop$ bbl.techrep } - 'skip$ - if$ - "type" bibinfo.check - swap$ duplicate$ empty$ - { pop$ "t" change.case$ } - { tie.or.space.prefix * * } - if$ -} -FUNCTION {format.article.crossref} -{ - key duplicate$ empty$ - { pop$ - journal duplicate$ empty$ - { "need key or journal for " cite$ * " to crossref " * crossref * warning$ } - { "journal" bibinfo.check emphasize word.in swap$ * } - if$ - } - { word.in swap$ * " " *} - if$ - " \cite{" * crossref * "}" * -} -FUNCTION {format.crossref.editor} -{ editor #1 "{vv~}{ll}" format.name$ - "editor" bibinfo.check - editor num.names$ duplicate$ - #2 > - { pop$ - "editor" bibinfo.check - " " * bbl.etal - emphasize - * - } - { #2 < - 'skip$ - { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { - "editor" bibinfo.check - " " * bbl.etal - emphasize - * - } - { - " \& " - * editor #2 "{vv~}{ll}" format.name$ - "editor" bibinfo.check - * - } - if$ - } - if$ - } - if$ -} -FUNCTION {format.book.crossref} -{ volume duplicate$ empty$ - { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ - pop$ word.in - } - { bbl.volume - capitalize - swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * - } - if$ - editor empty$ - editor field.or.null author field.or.null = - or - { key empty$ - { series empty$ - { "need editor, key, or series for " cite$ * " to crossref " * - crossref * warning$ - "" * - } - { series emphasize * } - if$ - } - { key * } - if$ - } - { format.crossref.editor * } - if$ - " \cite{" * crossref * "}" * -} -FUNCTION {format.incoll.inproc.crossref} -{ - editor empty$ - editor field.or.null author field.or.null = - or - { key empty$ - { format.booktitle duplicate$ empty$ - { "need editor, key, or booktitle for " cite$ * " to crossref " * - crossref * warning$ - } - { word.in swap$ * } - if$ - } - { word.in key * " " *} - if$ - } - { word.in format.crossref.editor * " " *} - if$ - " \cite{" * crossref * "}" * -} -FUNCTION {format.org.or.pub} -{ 't := - "" - year empty$ - { "empty year in " cite$ * warning$ } - 'skip$ - if$ - address empty$ t empty$ and - year empty$ and - 'skip$ - { - add.blank "(" * - t empty$ - { address "address" bibinfo.check * - } - { t * - address empty$ - 'skip$ - { ", " * address "address" bibinfo.check * } - if$ - } - if$ - year empty$ - 'skip$ - { t empty$ address empty$ and - 'skip$ - { ", " * } - if$ - year "year" bibinfo.check - * - } - if$ - ")" * - } - 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.archive} -{ - archivePrefix empty$ - { "" } - { archivePrefix ":" *} - if$ -} - -FUNCTION {format.primaryClass} -{ - primaryClass empty$ - { "" } - { " {[" primaryClass * "]}" *} - if$ -} - -FUNCTION {format.soft.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ - "eprint" bibinfo.check -} - -FUNCTION {format.softmisc.archive} -{ - archivePrefix empty$ - { "" } - { "" } - if$ -} - -FUNCTION {format.softmisc.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {article} -{ output.bibitem - format.authors "author" output.check - new.block - format.title "title" output.check - new.block - crossref missing$ - { - journal - "journal" bibinfo.check - emphasize - "journal" output.check - add.blank - format.vol.num.pages output - format.date "year" output.check - } - { format.article.crossref output.nonnull - format.pages output - } - if$ - new.block - format.url output - new.block - %% format.doi output - format.note output - %%format.eprint output - %% format.soft.eprint output - %% add.blank - %% format.primaryClass output - fin.entry -} - -FUNCTION {book} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check - add.blank - } - { format.authors output.nonnull - crossref missing$ - { "author and editor" editor either.or.check } - 'skip$ - if$ - } - if$ - new.block - format.btitle "title" output.check - add.blank - format.edition output - crossref missing$ - { format.bvolume output - new.block - format.number.series output - new.sentence - format.publisher.address output - } - { - new.block - format.book.crossref output.nonnull - format.date "year" output.check - } - if$ - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry -} -FUNCTION {booklet} -{ output.bibitem - format.authors output - new.block - format.title "title" output.check - new.block - howpublished "howpublished" bibinfo.check output - address "address" bibinfo.check output - format.date output - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check - } - { format.authors output.nonnull - crossref missing$ - { "author and editor" editor either.or.check } - 'skip$ - if$ - } - if$ - new.block - format.btitle "title" output.check - crossref missing$ - { - format.bvolume output - format.chapter.pages "chapter and pages" output.check - new.block - format.number.series output - new.sentence - format.publisher.address output - } - { - format.chapter.pages "chapter and pages" output.check - new.block - format.book.crossref output.nonnull - format.date "year" output.check - } - if$ - format.edition output - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - format.authors "author" output.check - new.block - format.in.title "title" output.check - add.blank - format.edition output -% new.block - crossref missing$ - { format.in.ed.booktitle "booktitle" output.check - format.bvolume output - add.blank - format.number.series output - format.chapter.pages output - new.sentence - format.publisher.address output - } - { format.incoll.inproc.crossref output.nonnull - format.chapter.pages output - } - if$ - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry -} -FUNCTION {inproceedings} -{ output.bibitem - format.authors "author" output.check - new.block - format.editors output -add.blank - format.inpro.title "title" output.check - new.block - crossref missing$ - { format.in.ed.booktitle "booktitle" output.check - format.bvolume output - format.number.series output - format.pages output - new.sentence - publisher empty$ - { format.organization.address output } - { organization "organization" bibinfo.check output - format.publisher.address output - } - if$ - } - { format.incoll.inproc.crossref output.nonnull - format.pages output - } - if$ - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry -} -FUNCTION {conference} { inproceedings } -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization "organization" bibinfo.check - duplicate$ empty$ 'pop$ - { output - address "address" bibinfo.check output - } - if$ - } - { format.authors output.nonnull } - if$ - new.block - format.btitle "title" output.check - author empty$ - { organization empty$ - { - address new.block.checka - address "address" bibinfo.check output - } - 'skip$ - if$ - } - { - organization address new.block.checkb - organization "organization" bibinfo.check output - address "address" bibinfo.check output - } - if$ - format.edition output - format.date output - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry -} - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check - new.block - format.btitle - "title" output.check - new.block - bbl.mthesis format.thesis.type output.nonnull - school "school" bibinfo.warn output - address "address" bibinfo.check output - format.date "year" output.check - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - title howpublished new.block.checkb - format.title output - howpublished new.block.checka - howpublished "howpublished" bibinfo.check output - format.date output - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry - empty.misc.check -} - -FUNCTION {softmisc} -{ output.bibitem - format.authors output - title howpublished new.block.checkb - format.title output - format.version output - howpublished new.block.checka - howpublished "howpublished" bibinfo.check output - format.date output - new.block - format.url output - new.block - format.note output - %%format.eprint output - format.softmisc.eprint output - fin.entry - empty.misc.check -} - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check - new.block - format.btitle - "title" output.check - new.block - bbl.phdthesis format.thesis.type output.nonnull - school "school" bibinfo.warn output - address "address" bibinfo.check output - format.date "year" output.check - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - editor empty$ - { organization "organization" bibinfo.check output - } - { format.editors output.nonnull } - if$ - new.block - format.btitle "title" output.check - format.bvolume output - format.number.series output - editor empty$ - { publisher empty$ - 'skip$ - { - new.sentence - format.publisher.address output - } - if$ - } - { publisher empty$ - { - new.sentence - format.organization.address output } - { - new.sentence - organization "organization" bibinfo.check output - format.publisher.address output - } - if$ - } - if$ - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry -} - -FUNCTION {techreport} -{ output.bibitem - format.authors "author" output.check - new.block - format.title - "title" output.check - new.block - format.tr.number output.nonnull - institution "institution" bibinfo.warn output - address "address" bibinfo.check output - format.date "year" output.check - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry -} - -FUNCTION {unpublished} -{ output.bibitem - format.authors "author" output.check - new.block - format.title "title" output.check - format.date output - new.block - format.url output - new.block - format.note "note" output.check - format.eprint output - fin.entry -} - -FUNCTION {default.type} { misc } -READ -STRINGS { longest.label } -INTEGERS { number.label longest.label.width } -FUNCTION {initialize.longest.label} -{ "" 'longest.label := - #1 'number.label := - #0 'longest.label.width := -} -FUNCTION {longest.label.pass} -{ number.label int.to.str$ 'label := - number.label #1 + 'number.label := - label width$ longest.label.width > - { label 'longest.label := - label width$ 'longest.label.width := - } - 'skip$ - if$ -} -EXECUTE {initialize.longest.label} -ITERATE {longest.label.pass} -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - "\begin{thebibliography}{" longest.label * "}" * - write$ newline$ - "\expandafter\ifx\csname url\endcsname\relax" - write$ newline$ - %%" \def\url#1{\texttt{#1}}\fi" - " \def\url#1{\burl{#1}}\fi" - write$ newline$ - "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi" - write$ newline$ - "\providecommand{\bibinfo}[2]{#2}" - write$ newline$ - "\providecommand{\eprint}[2][]{\url{#2}}" - write$ newline$ - "\providecommand{\doi}[1]{\url{https://doi.org/#1}}" - write$ newline$ - "\bibcommenthead" 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 -%% -%% End of file `nature.bst'. \ No newline at end of file diff --git a/_extensions/christopherkenny/nature/sn-vancouver.bst b/_extensions/christopherkenny/nature/sn-vancouver.bst deleted file mode 100644 index 5af9052..0000000 --- a/_extensions/christopherkenny/nature/sn-vancouver.bst +++ /dev/null @@ -1,2033 +0,0 @@ -%% -%% This `vancouver.bst' bibliographic style file (for LaTeX/BibTeX) is -%% generated with the docstrip utility and modified manually to meet the -%% ``Uniform Requirements for Manuscripts Submitted to Biomedical Journals'' -%% as published in N Engl J Med 1997;336:309-315. -%% (also known as the Vancouver style) -%% This specification may be found on the web page of the -%% International Committe of Medical Journal Editors: -%% -%% http://www.icmje.org -%% -%%------------------------------------------------------------------- -%% -%% Copyright 2004 Folkert van der Beek -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3 or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This work has the LPPL maintenance status `maintained'. -%% -%% The Current Maintainer of this work is Folkert van der Beek. -%% -%% Complaints, suggestions and comments may be sent to -%% -%% Folkert van der Beek -%% -%%------------------------------------------------------------------- -%% -%% This bibliography style file is intended for texts in ENGLISH -%% This is a numerical citation style, and as such is standard LaTeX. -%% It requires no extra package to interface to the main text. -%% The form of the \bibitem entries is -%% \bibitem{key}... -%% Usage of \cite is as follows: -%% \cite{key} ==>> [#] -%% \cite[chap. 2]{key} ==>> [#, chap. 2] -%% where # is a number determined by the ordering in the reference list. -%% The order in the reference list is that by which the works were originally -%% cited in the text, or that in the database. - % -%% To change the reference numbering system from [1] to 1, -%% put the following code in the preamble: -%% \makeatletter % Reference list option change -%% \renewcommand\@biblabel[1]{#1} % from [1] to 1 -%% \makeatother % -%% -%%--------------------------------------------------------------------- - -%% List of all possible fields -ENTRY - { address - assignee % for patents - author - booktitle % for articles in books - chapter % for incollection, esp. internet documents - cartographer % for maps - day - edition - editor - howpublished - institution % for technical reports - inventor % for patents - journal - key - keywords - month - note - number - organization - pages - part - publisher - school - series - title - type - volume - word - year - eprint % urlbst - doi % urlbst - url % urlbst - lastchecked % urlbst - updated % urlbst - archive - archivePrefix - primaryClass - eid - adsurl - adsnote - version - } - {} - { label } -%% Declaration of integer variables -INTEGERS { output.state before.all mid.sentence after.sentence after.block } -STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl } % urlbst... -INTEGERS { hrefform addeprints adddoiresolver } -% Following constants may be adjusted by hand, if desired -FUNCTION {init.config.constants} -{ - "Available from: " 'urlintro := % prefix before URL - "http://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref - "arXiv:" 'eprintprefix := % text prefix printed before eprint ref - "http://dx.doi.org/" 'doiurl := % prefix to make URL from DOI - "" 'doiprefix := % text prefix printed before DOI ref - #0 'addeprints := % 0=no eprints; 1=include eprints - #0 'adddoiresolver := % 0=no DOI resolver; 1=include it - #0 'hrefform := % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs -} -INTEGERS { - bracket.state - outside.brackets - open.brackets - within.brackets - close.brackets -} -% ...urlbst to here -FUNCTION {init.state.consts} -{ #0 'outside.brackets := % urlbst - #1 'open.brackets := - #2 'within.brackets := - #3 'close.brackets := - - #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := -} -%% Declaration of string variables -STRINGS { s t} - -% urlbst -FUNCTION {output.nonnull.original} -{ 's := - output.state mid.sentence = - { ". " * write$ } - { output.state after.block = - { add.period$ write$ - newline$ - "\newblock " write$ - } - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - s -} - -% urlbst... -FUNCTION {output.nonnull} -{ % Save the thing we've been asked to output - 's := - % If the bracket-state is close.brackets, then add a close-bracket to - % what is currently at the top of the stack, and set bracket.state - % to outside.brackets - bracket.state close.brackets = - { "]" * - outside.brackets 'bracket.state := - } - 'skip$ - if$ - bracket.state outside.brackets = - { % We're outside all brackets -- this is the normal situation. - % Write out what's currently at the top of the stack, using the - % original output.nonnull function. - s - output.nonnull.original - } - { % Still in brackets. Add open-bracket or (continuation) comma, add the - % new text (in s) to the top of the stack, and move to the close-brackets - % state, ready for next time (unless inbrackets resets it). If we come - % into this branch, then output.state is carefully undisturbed. - bracket.state open.brackets = - { " [" * } - { ", " * } % bracket.state will be within.brackets - if$ - s * - close.brackets 'bracket.state := - } - if$ -} - -% Call this function just before adding something which should be presented in -% brackets. bracket.state is handled specially within output.nonnull. -FUNCTION {inbrackets} -{ bracket.state close.brackets = - { within.brackets 'bracket.state := } % reset the state: not open nor closed - { open.brackets 'bracket.state := } - if$ -} - -FUNCTION {format.lastchecked} -{ lastchecked empty$ - { "" } - { updated empty$ - { inbrackets "cited " lastchecked * } - { inbrackets "updated " updated * "; cited " * lastchecked * } - if$ - } - if$ -} -% ...urlbst to here - -FUNCTION {output} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull - if$ -} - -FUNCTION {output.check} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull - if$ -} - -FUNCTION {fin.entry} -{ - bracket.state close.brackets = % urlbst - { "]" * } - 'skip$ - if$ - add.period$ - write$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} - -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} - -FUNCTION {add.blank} -{ " " * before.all 'output.state := -} - -FUNCTION {no.blank.or.punct} -{ "" * before.all 'output.state := -} - -FUNCTION {add.semicolon} -{ - ";" * - no.blank.or.punct -} - - -FUNCTION {misc.add.colon} -{ - ": " * - } - -FUNCTION {misc.add.comma} -{ - ", " * - } - -FUNCTION {date.block} -{ - "." * - no.blank.or.punct -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% LOGICAL `NOT', `AND', AND `OR' % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Logical 'not': -% If the first element on the stack is A then this function -% does the following: -% push { #0 } -% push { #1 } -% So now the first 3 elements of the stack are -% { #1 } { #0 } A -% The first 3 are popped and subjected to 'if': -% If A > 0 then { #0 } is executed, else { #1 } is executed: -% if A > 0 -% then 0 -% else 1 -% So consider integers as logicals, where 1 = true and 0 = false, -% then this does -% (if A then false else true) -% which is a logical 'not'. - -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Logical 'and': -% If the first 2 elements on the stack are A B -% then this function does the following: -% push 'skip$ -% push { pop$ #0 } -% So now first 4 elements are -% { pop$ #0 } 'skip$ A B -% The first 3 are popped and subjected to 'if' (B is on top of -% the stack): -% If A > 0 then 'skip$ is executed, else { pop$ #0 } is executed: -% if A > 0 -% then (B stays on top of stack) -% else (B is popped and #0 is pushed) -% So consider integers as logicals, where 1 = true and 0 = false, -% then this does -% (if A then B else false) -% which is a logical 'and'. - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Logical 'or': -% If the first 2 elements on the stack are A B -% then this function does the following: -% push { pop$ #1 } -% push 'skip$ -% So now first 4 elements are -% 'skip$ { pop$ #1 } A B -% The first 3 are popped and subjected to 'if' (B is on top of -% the stack): -% If A > 0 then { pop$ #1 } is executed, else 'skip$ is executed: -% if A > 0 -% then (B is popped and #1 is pushed) -% else (B stays on top of stack) -% So consider integers as logicals, where 1 = true and 0 = false, -% then this does -% (if A then true else B) -% which is a logical 'or'. - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% GENERAL PURPOSE FUNCTIONS FOR FORMATTING % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% issues warning if field is empty -% call with -% "field" field warning.if.empty -% Note that the first field must be between quotes -% because it is the fieldname for use in the warning message. -% - -FUNCTION {warning.if.empty} -{ empty$ - { "No " swap$ * " in " * cite$ * warning$ } - { pop$ } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % encloses string in pre- and postfix string - % call with - % prefix postfix S enclose.check - % delivers empty string if S empty - % -FUNCTION {enclose.check} -{ duplicate$ empty$ - { pop$ pop$ pop$ - "" - } - { swap$ * * } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% emphasizes top of stack -% call with -% string" emphasize.check -% - -FUNCTION {emphasize.check} -{ "\Bem{" swap$ - "}" swap$ - enclose.check -} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % brackets top of stack - % call with - % "string" bracket.check - % -FUNCTION {bracket.check} -{ "[" swap$ - "]" swap$ - enclose.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % parenthesizes top of stack - % call with - % "string" parenthesize - % -FUNCTION {parenthesize.check} -{ "(" swap$ - ")" swap$ - enclose.check -} - -STRINGS {z} - -FUNCTION {remove.dots} -{ 'z := % expects string on top of the stack, pops the string and assigns it to variable z - "" % push empty string - { z empty$ not } % returns 0 if variable z is empty - { z #1 #1 substring$ % push the first character of variable z - z #2 global.max$ substring$ 'z := % assigns the 2nd to last character of variable z to variable z - duplicate$ "\" = % pushes 1 if the last character is "\", otherwise 0 - { * % concatenates the last 2 literals - z #1 #1 substring$ % push the first character of variable z - z #2 global.max$ substring$ 'z := % assigns the 2nd to last character of variable z to variable z - * % concatenates the last 2 literals, i.e. every character, even a dot, following a "\" will be printed - } - { duplicate$ "." = % pushes 1 if the last character is ".", otherwise 0 - 'pop$ % pushes the pop$ function - { * } % concatenates the last 2 literals - if$ % pops the last character if it is a dot, otherwise concatenates it with the string on top of the stack - } - if$ - } - while$ -} - -INTEGERS {l} -FUNCTION{string.length} -{ - #1 'l := - { duplicate$ duplicate$ #1 l substring$ = not } - { l #1 + 'l := } - while$ - pop$ l -} - -STRINGS {replace find text} -INTEGERS {find_length} -FUNCTION {find.replace} -{ - 'replace := - 'find := - 'text := - find string.length 'find_length := - "" - { text empty$ not } - { text #1 find_length substring$ find = - { - replace * - text #1 find_length + global.max$ substring$ 'text := - } - { text #1 #1 substring$ * - text #2 global.max$ substring$ 'text := - } - if$ - } - while$ -} - -FUNCTION {new.block.checka} -{ empty$ - 'skip$ - 'new.block - if$ -} - -FUNCTION {new.block.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.block - if$ -} - -FUNCTION {new.sentence.checka} -{ empty$ - 'skip$ - 'new.sentence - if$ -} - -FUNCTION {new.sentence.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.sentence - if$ -} - -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} - -FUNCTION {emphasize} -{ skip$ } - -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 - -FUNCTION {bbl.and} -{ "and"} - -FUNCTION {bbl.etal} -{ "et~al." } - -FUNCTION {bbl.editors} -{ "editors" } - -FUNCTION {bbl.editor} -{ "editor" } - -FUNCTION {bbl.cartographers} -{ "cartographers" } - -FUNCTION {bbl.cartographer} -{ "cartographer" } - -FUNCTION {bbl.inventors} -{ "inventors" } - -FUNCTION {bbl.inventor} -{ "inventor" } - -FUNCTION {bbl.assignees} -{ "assignees" } - -FUNCTION {bbl.assignee} -{ "assignee" } - -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} -{ "p." } - -FUNCTION {bbl.page} -{ "p." } - -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 {eng.ord} -{ duplicate$ "1" swap$ * - #-2 #1 substring$ "1" = - { bbl.th * } - { duplicate$ #-1 #1 substring$ - duplicate$ "1" = - { pop$ bbl.st * } - { duplicate$ "2" = - { pop$ bbl.nd * } - { "3" = - { bbl.rd * } - { bbl.th * } - if$ - } - if$ - } - if$ - } - if$ -} - -FUNCTION {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} -{ 'bibinfo := - duplicate$ empty$ 'skip$ { - "." ". " find.replace 's := - "" 't := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{vv~}{ll}{ f{}}{ jj}" - format.name$ - remove.dots - bibinfo bibinfo.check - 't := - nameptr #1 > - { - nameptr #6 - #1 + = - numnames #6 - > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - namesleft #1 > - { ", " * t * } - { - "," * - s nameptr "{ll}" format.name$ duplicate$ "others" = - { 't := } - { pop$ } - if$ - t "others" = - { - " " * bbl.etal * - } - { " " * t * } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - } if$ -} - -FUNCTION {format.names.org} -{ 'bibinfo := - duplicate$ empty$ 'skip$ { - 's := - "" 't := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{ff~}{vv~}{ll}" - format.name$ - bibinfo bibinfo.check - 't := - nameptr #1 > - { - namesleft #1 > - { "; " * t * } - { - ";" * - s nameptr "{ll}" format.name$ duplicate$ "others" = - { 't := } - { pop$ } - if$ - t "others" = - { - " " * bbl.etal * - } - { " " * t * } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - } if$ -} - -FUNCTION {format.names.ed} -{ - format.names -} - -FUNCTION {format.authors} -{ - author "author" format.names - %%"." " " "author" find.replace format.names -} - -FUNCTION {format.organizations} -{ organization "organization" format.names.org -} - -FUNCTION {get.bbl.editor} -{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } - -FUNCTION {get.bbl.cartographer} -{ cartographer num.names$ #1 > 'bbl.cartographers 'bbl.cartographer if$ } - -FUNCTION {get.bbl.inventor} -{ inventor num.names$ #1 > 'bbl.inventors 'bbl.inventor if$ } - -FUNCTION {get.bbl.assignee} -{ assignee num.names$ #1 > 'bbl.assignees 'bbl.assignee if$ } - -FUNCTION {format.editors} -{ editor "editor" format.names duplicate$ empty$ 'skip$ - { - "," * - " " * - get.bbl.editor - * - } - if$ -} - -FUNCTION {format.assignees} -{ assignee "assignee" format.names.org duplicate$ empty$ 'skip$ - { - "," * - " " * - get.bbl.assignee - * - } - if$ -} - -FUNCTION {format.cartographers} -{ cartographer "cartographer" format.names duplicate$ empty$ 'skip$ - { - "," * - " " * - get.bbl.cartographer - * - } - if$ -} - -FUNCTION {format.inventors} -{ inventor "inventor" format.names duplicate$ empty$ 'skip$ - { - "," * - " " * - get.bbl.inventor - * - } - if$ -} - -FUNCTION {format.note} -{ - note empty$ - { "" } - { note #1 #1 substring$ - duplicate$ "{" = - 'skip$ - { output.state mid.sentence = - { "l" } - { "u" } - if$ - change.case$ - } - if$ - note #2 global.max$ substring$ * "note" bibinfo.check - } - if$ -} - -FUNCTION {format.title} -{ title -%%duplicate$ empty$ 'skip$ -%% { "t" change.case$ } -%%if$ - "title" bibinfo.check -} - -FUNCTION {format.type} -{ type empty$ - 'skip$ - { inbrackets type } - %%{ add.blank "[" type * "]" * } - if$ -} - -FUNCTION {cite.author.editor} -{ 's := - s #1 "{vv~}{ll}" format.name$ - s num.names$ duplicate$ - #2 > - { pop$ " et~al." * } - { #2 = - { s #2 "{vv~}{ll}{ jj}{ f}" format.name$ "others" = - { " et~al." * } - { " and " * s #2 "{vv~}{ll}" format.name$ * } - if$ - } - 'skip$ - if$ - } - if$ -} - -FUNCTION {check.auth.edit.org} -{author empty$ - { - editor empty$ - { - organization empty$ - {""} - {organization} - if$ - } - {editor cite.author.editor} - if$ - } - {author cite.author.editor} - if$ -} - -FUNCTION {check.year} -{ year empty$ - {""} - {year} - if$ -} - -FUNCTION {output.bibitem} -{ outside.brackets 'bracket.state := % urlbst - newline$ - "\bibitem[\protect\citeauthoryear{" write$ -check.auth.edit.org write$ -"}{" write$ check.year write$ "}]{" write$ cite$ write$ - "}" write$ - newline$ - "" - before.all 'output.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 capitalize - ":" * - " " * } - -FUNCTION {format.journal.date} -{ - month "month" bibinfo.check - duplicate$ empty$ - year "year" bibinfo.check duplicate$ empty$ - { - swap$ 'skip$ - { "there's a month but no year in " cite$ * warning$ } - if$ - * - } - { swap$ 'skip$ - { - " " * swap$ - } - if$ - * - remove.dots - } - if$ - duplicate$ empty$ - 'skip$ - { - before.all 'output.state := - after.sentence 'output.state := - } - if$ -} - -FUNCTION {format.date} -{ - no.blank.or.punct - ";" - duplicate$ empty$ - year "year" bibinfo.check duplicate$ empty$ - { swap$ 'skip$ - { "there's a month but no year in " cite$ * warning$ } - if$ - * - } - { swap$ 'skip$ - { - swap$ - " " * swap$ - } - if$ - * - } - if$ -} - -FUNCTION {format.btitle} -{ title "title" bibinfo.check - duplicate$ empty$ 'skip$ - { - } - if$ -} - -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.prefix - "volume" bibinfo.check * * - series "series" bibinfo.check - duplicate$ empty$ 'pop$ - { swap$ bbl.of space.word * swap$ - emphasize * } - if$ - "volume and number" number either.or.check - } - if$ -} - -FUNCTION {format.number.series} -{ volume empty$ - { number empty$ - { series field.or.null } - { series empty$ - { 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$ - } - 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 mid.sentence = - { "l" } - { "t" } - if$ change.case$ - "edition" bibinfo.check - " " * bbl.edition * - } - if$ -} -INTEGERS { multiresult } -FUNCTION {multi.page.check} -{ 't := - #0 'multiresult := - { multiresult not - t empty$ not - and - } - { t #1 #1 substring$ - duplicate$ "-" = - swap$ duplicate$ "," = - swap$ "+" = - or or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - multiresult -} - -FUNCTION {format.pages} -{ pages duplicate$ empty$ 'skip$ - { duplicate$ multi.page.check - { - bbl.pages swap$ - n.dashify - } - { - bbl.page swap$ - } - if$ - tie.or.space.prefix - "pages" bibinfo.check - * * - } - if$ -} - -FUNCTION {format.journal.pages} -{ pages duplicate$ empty$ 'pop$ - { swap$ duplicate$ empty$ - { pop$ pop$ format.pages } - { - ":" * - swap$ - n.dashify - "pages" bibinfo.check - * - } - if$ - } - if$ -} - -FUNCTION {format.vol.num} -{ volume field.or.null - duplicate$ empty$ 'skip$ - { - "volume" bibinfo.check - } - if$ - number "number" bibinfo.check duplicate$ empty$ 'skip$ - { - swap$ duplicate$ empty$ - { "there's a number but no volume in " cite$ * warning$ } - 'skip$ - if$ - swap$ - "(" swap$ * ")" * - } - if$ * -} - -FUNCTION {format.vol.num.pages} -{ volume field.or.null - duplicate$ empty$ 'skip$ - { - "volume" bibinfo.check - } - if$ - 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$ * - format.journal.pages -} - -FUNCTION {format.chapter.pages} -{ chapter empty$ - 'format.pages - { type empty$ - { bbl.chapter } - { type "l" change.case$ - "type" bibinfo.check - } - if$ - chapter tie.or.space.prefix - "chapter" bibinfo.check - * * - pages empty$ - 'skip$ - { ", " * format.pages * } - if$ - } - if$ - } - - FUNCTION {format.booktitle} - { - booktitle "booktitle" bibinfo.check - } - - FUNCTION {format.in.ed.booktitle} - { format.booktitle duplicate$ empty$ 'skip$ - { - editor "editor" format.names.ed duplicate$ empty$ 'pop$ - { - "," * - " " * - get.bbl.editor - ". " * - * swap$ - * } - if$ - word.in swap$ * - } - if$ - } - - FUNCTION {format.in.ed.title} - { format.title duplicate$ empty$ 'skip$ - { - editor "editor" format.names.ed duplicate$ empty$ 'pop$ - { - "," * - " " * - get.bbl.editor - ". " * - * swap$ - * } - if$ - word.in swap$ * - } - if$ - } - - FUNCTION {empty.misc.check} - { author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ - } - FUNCTION {format.thesis.type} - { type duplicate$ empty$ - 'pop$ - { swap$ pop$ - "t" change.case$ "type" bibinfo.check - } - if$ -} -FUNCTION {format.tr.number} -{ - number "number" bibinfo.check - %%type duplicate$ empty$ - %%{ pop$ bbl.techrep } - %%'skip$ - %%if$ - %%"type" bibinfo.check - %%swap$ duplicate$ empty$ - %%{ pop$ "t" change.case$ } - %%{ tie.or.space.prefix * * } - %%if$ -} - -FUNCTION {format.org.or.pub} -{ 't := - "" - address empty$ t empty$ and - 'skip$ - { - address "address" bibinfo.check * - t empty$ - 'skip$ - { address empty$ - 'skip$ - { ": " * } - if$ - t * - } - if$ - } - 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.institution.address} -{ institution "institution" bibinfo.check format.org.or.pub -} - - -% urlbst... -% Functions for making hypertext links. -% In all cases, the stack has (link-text href-url) -% -% make 'null' specials -FUNCTION {make.href.null} -{ - pop$ -} -% make hypertex specials -FUNCTION {make.href.hypertex} -{ - "\special {html: }" * swap$ * - "\special {html:}" * -} -% make hyperref specials -FUNCTION {make.href.hyperref} -{ - "\href {" swap$ * "} {" * swap$ * "}" * -} -FUNCTION {make.href} -{ hrefform #2 = - 'make.href.hyperref % hrefform = 2 - { hrefform #1 = - 'make.href.hypertex % hrefform = 1 - 'make.href.null % hrefform = 0 (or anything else) - if$ - } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { hrefform #1 = - { % special case -- add HyperTeX specials - urlintro "\url{" url * "}" * url make.href.hypertex * } - { urlintro "\url{" * url * "}" * } - if$ - } - if$ -} - -FUNCTION {format.eprint} -{ eprint empty$ - { "" } - { eprintprefix eprint * eprinturl eprint * make.href } - if$ -} - -FUNCTION {format.doi} -{ doi empty$ - { "" } - { doiprefix doi * doiurl doi * make.href } - if$ -} - -FUNCTION {format.ddoi} -{ doi "doi" bibinfo.check - duplicate$ empty$ 'skip$ - { - "\doi{" swap$ * "}" * - } - if$ -} - -% Output a URL. We can't use the more normal idiom (something like -% `format.url output'), because the `inbrackets' within -% format.lastchecked applies to everything between calls to `output', -% so that `format.url format.lastchecked * output' ends up with both -% the URL and the lastchecked in brackets. -FUNCTION {output.url} -{ url empty$ - 'skip$ - { new.block - format.url output - format.lastchecked output - } - if$ -} - -FUNCTION {output.web.refs} -{ - new.block - output.url - addeprints eprint empty$ not and - { format.eprint output.nonnull } - 'skip$ - if$ - adddoiresolver doi empty$ not and - { format.doi output.nonnull } - 'skip$ - if$ -% addeprints -% { eprint empty$ -% 'skip$ -% { format.eprint output.nonnull } -% if$ -% } -% 'skip$ -% if$ -} - -% Webpage entry type. -% Title and url fields required; -% author, note, year, month, and lastchecked fields optional -STRINGS {database} -FUNCTION {webpage} -{ output.bibitem - author empty$ - { editor empty$ - 'skip$ % author and editor both optional - { format.editors output.nonnull } - if$ - } - { editor empty$ - { format.authors output.nonnull } - { "can't use both author and editor fields in " cite$ * warning$ } - if$ - } - if$ -% author empty$ -% 'skip$ -% { format.authors output.nonnull } -% if$ - new.block - format.title "title" output.check - journal empty$ - { - format.type "type" output.check - publisher empty$ - 'skip$ - { format.publisher.address output } - if$ - "database on the Internet" 'database := - type database = - { format.journal.date "year" output.check } - { format.date "year" output.check } - if$ - lastchecked empty$ - 'skip$ - { format.lastchecked output } - if$ - new.block - part empty$ - 'skip$ - { part output } - if$ - pages empty$ - 'skip$ - { pages bracket.check output } - if$ - } - { journal - remove.dots - "journal" bibinfo.check - "journal" output.check - format.type "type" output.check - format.journal.date "year" output.check - lastchecked empty$ - 'skip$ - { format.lastchecked output - ";" no.blank.or.punct output - } - if$ - no.blank.or.punct format.vol.num output - pages empty$ - 'skip$ - { ":" no.blank.or.punct output - no.blank.or.punct pages bracket.check output - } - if$ - new.block - } - if$ - format.url "url" output.check - new.block - note output - fin.entry -} -% ...urlbst to here - -FUNCTION {misc} -{ output.bibitem - format.authors "author" output.check - format.editors "author and editor" output.check - no.blank.or.punct - add.period$ misc.add.colon -format.title "title" output.check - type missing$ - { skip$ } - { format.type "type" output.check } - %%{ inbrackets type output } - if$ - new.block - format.publisher.address output -% format.date "year" output.check - new.block - format.note output - new.block - howpublished new.block.checka - howpublished "howpublished" bibinfo.check output - output.web.refs % urlbst - fin.entry - empty.misc.check -} - -FUNCTION {format.archive} -{ - archivePrefix empty$ - { "" } - { archivePrefix ":" *} - if$ -} - -FUNCTION {format.primaryClass} -{ - primaryClass empty$ - { "" } - { "{[" primaryClass * "]}" *} - if$ -} - -FUNCTION {format.soft.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {format.softmisc.archive} -{ - archivePrefix empty$ - { "" } - { "" } - if$ -} - -FUNCTION {format.softmisc.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {article} -{ output.bibitem - format.authors "author" output.check - organization empty$ - 'skip$ - { author empty$ - { - format.organizations "organization" output.check - } - { - "; " * - no.blank.or.punct - format.organizations "organization" output.check - } - if$ - } - if$ - new.block - format.title "title" output.check - type missing$ - { skip$ } - { format.type "type" output.check } - if$ - new.block - journal - remove.dots - "journal" bibinfo.check - "journal" output.check - format.journal.date "year" output.check - add.semicolon - format.vol.num.pages output - new.block - format.note output - format.ddoi output - new.block - format.soft.eprint output - format.primaryClass output - fin.entry -} - -FUNCTION {softmisc} -{ output.bibitem - format.authors "author" output.check - format.editors "author and editor" output.check - no.blank.or.punct - add.period$ misc.add.colon - format.title "title" output.check misc.add.comma - no.blank.or.punct - version output - type missing$ - { skip$ } - { format.type "type" output.check } - %%{ inbrackets type output } - if$ - new.block - format.publisher.address output -% format.date "year" output.check - new.block - format.note output - new.block - howpublished new.block.checka - howpublished "howpublished" bibinfo.check output - format.date "year" output.check - output.web.refs % urlbst - new.block - format.softmisc.eprint output - fin.entry - empty.misc.check -} - -FUNCTION {book} -{ output.bibitem - author empty$ - { editor empty$ - { format.organizations "organization" output.check } - { format.editors "author and editor" output.check } - if$ - } - { format.authors output.nonnull - "author and editor" editor either.or.check - } - if$ - new.block - format.btitle "title" output.check - format.bvolume output - new.block - format.edition output - new.sentence - author empty$ not - editor empty$ not - and - { format.editors "author and editor" output.check } - 'skip$ - if$ - format.number.series output - format.publisher.address output - format.date "year" output.check - new.block - format.note output - output.web.refs % urlbst - fin.entry -} - -FUNCTION {booklet} -{ misc } - -FUNCTION {dictionary} -{ output.bibitem - format.booktitle "booktitle" output.check - format.bvolume output - new.block - format.edition output - new.sentence - format.publisher.address output - format.date "year" output.check - format.btitle "title" output.check - add.semicolon - add.blank - format.pages "pages" output.check - new.block - format.note output - output.web.refs % urlbst - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - format.authors "author" output.check - new.block - chapter "chapter" output.check - new.block - format.in.ed.title "title" output.check - format.bvolume output - format.edition output - new.sentence - format.number.series output - format.publisher.address output - format.date "year" output.check - date.block - add.blank - format.pages "pages" output.check - new.block - format.note output - output.web.refs % urlbst - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - format.authors "author" output.check - new.block - format.title "title" output.check - new.block - format.in.ed.booktitle "booktitle" output.check - format.bvolume output - format.edition output - new.sentence - format.number.series output - format.publisher.address output - format.date "year" output.check - date.block - add.blank - format.pages "pages" output.check - new.block - format.note output - output.web.refs % urlbst - fin.entry -} - -FUNCTION {inproceedings} -{ output.bibitem - format.authors "author" output.check - new.block - format.title "title" output.check - new.block - format.in.ed.booktitle "booktitle" output.check - format.bvolume output - new.sentence - format.number.series output - publisher empty$ - { format.organization.address output } - { organization "organization" bibinfo.check output - format.publisher.address output - } - if$ - format.date "year" output.check - date.block - add.blank - format.pages "pages" output.check - new.block - format.note output - output.web.refs % urlbst - fin.entry -} - -FUNCTION {conference} -{inproceedings} - -FUNCTION {manual} -{misc} - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check - new.block - format.btitle - "title" output.check - format.type "type" output.check - new.block - school "school" bibinfo.warn output - address "address" bibinfo.check output - format.date "year" output.check - new.block - format.note output - output.web.refs % urlbst - fin.entry -} - -FUNCTION {mastersthesis} -{phdthesis} - -FUNCTION {proceedings} -{ output.bibitem - editor empty$ - { organization "organization" bibinfo.check output - } - { format.editors output.nonnull } - if$ - new.block - format.btitle "title" output.check - format.bvolume output - editor empty$ - { publisher empty$ - 'skip$ - { - new.sentence - format.number.series output - format.publisher.address output - } - if$ - } - { publisher empty$ - { - new.sentence - format.organization.address output } - { - new.sentence - organization "organization" bibinfo.check output - format.publisher.address output - } - if$ - } - if$ - format.date "year" output.check - new.block - format.note output - output.web.refs % urlbst - fin.entry -} - -FUNCTION {techreport} -{ output.bibitem - format.authors "author" output.check - new.block - format.title - "title" output.check - new.block - format.institution.address output - format.date "year" output.check - format.tr.number output.nonnull - new.block - format.note output - output.web.refs % urlbst - fin.entry -} - -FUNCTION {map} -{ output.bibitem - format.cartographers "cartographer" output.check - new.block - format.title - "title" output.check - format.type "type" output.check - new.block - format.publisher.address output - format.date "year" output.check - new.block - format.note output - output.web.refs % urlbst - fin.entry -} - -FUNCTION {patent} -{ output.bibitem - format.inventors "inventor" output.check - "; " * - no.blank.or.punct - format.assignees "assignee" output.check - new.block - format.title - "title" output.check - new.block - format.tr.number output.nonnull - format.date "year" output.check - new.block - format.note output - output.web.refs % urlbst - fin.entry -} - -FUNCTION {unpublished} -{ output.bibitem - format.authors "author" output.check - new.block - format.title "title" output.check - format.date output - new.block - format.note "note" output.check - output.web.refs % urlbst - fin.entry -} - -FUNCTION {default.type} { misc } -READ -STRINGS { longest.label } -INTEGERS { number.label longest.label.width } -FUNCTION {initialize.longest.label} -{ "" 'longest.label := - #1 'number.label := - #0 'longest.label.width := -} -FUNCTION {longest.label.pass} -{ number.label int.to.str$ 'label := - number.label #1 + 'number.label := - label width$ longest.label.width > - { label 'longest.label := - label width$ 'longest.label.width := - } - 'skip$ - if$ -} -EXECUTE {initialize.longest.label} -ITERATE {longest.label.pass} -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - "\begin{thebibliography}{" longest.label * "}" * - write$ newline$ - "\providecommand{\doi}[1]{\url{https://doi.org/#1}}" - write$ newline$ - "\bibcommenthead" write$ newline$ -} -EXECUTE {begin.bib} -EXECUTE {init.config.constants} -EXECUTE {init.state.consts} -ITERATE {call.type$} -FUNCTION {end.bib} -{ newline$ - "\end{thebibliography}" write$ newline$ -} -EXECUTE {end.bib} -%% End of customized bst file -%% -%% End of file `vancouver.bst'. - diff --git a/_extensions/d2/_extension.yml b/_extensions/d2/_extension.yml old mode 100644 new mode 100755 diff --git a/_extensions/d2/d2.lua b/_extensions/d2/d2.lua old mode 100644 new mode 100755 diff --git a/_extensions/inst/css/style.css b/_extensions/inst/css/style.css old mode 100644 new mode 100755 diff --git a/_extensions/inst/img/rceeslogo.png b/_extensions/inst/img/rceeslogo.png old mode 100644 new mode 100755 diff --git a/_extensions/inst/img/rceeslonglogo.png b/_extensions/inst/img/rceeslonglogo.png old mode 100644 new mode 100755 diff --git a/_extensions/inst/img/signms.png b/_extensions/inst/img/signms.png old mode 100644 new mode 100755 diff --git a/_extensions/inst/img/signmy.png b/_extensions/inst/img/signmy.png old mode 100644 new mode 100755 diff --git a/_extensions/inst/tex/american-chemical-society.csl b/_extensions/inst/tex/american-chemical-society.csl old mode 100644 new mode 100755 diff --git a/_extensions/inst/tex/china-national-standard-gb-t-7714-2015-numeric.csl b/_extensions/inst/tex/china-national-standard-gb-t-7714-2015-numeric.csl old mode 100644 new mode 100755 diff --git a/_extensions/inst/tex/cv.tex b/_extensions/inst/tex/cv.tex old mode 100644 new mode 100755 diff --git a/_extensions/inst/tex/els.tex b/_extensions/inst/tex/els.tex old mode 100644 new mode 100755 diff --git a/_extensions/inst/tex/elsevier-harvard.csl b/_extensions/inst/tex/elsevier-harvard.csl old mode 100644 new mode 100755 diff --git a/_extensions/inst/tex/supp.cls b/_extensions/inst/tex/supp.cls old mode 100644 new mode 100755 diff --git a/_extensions/inst/tex/supp.tex b/_extensions/inst/tex/supp.tex old mode 100644 new mode 100755 diff --git a/_extensions/inst/tex/the-isme-j.csl b/_extensions/inst/tex/the-isme-j.csl old mode 100644 new mode 100755 diff --git a/_extensions/inst/word/MS.docx b/_extensions/inst/word/MS.docx old mode 100644 new mode 100755 diff --git a/_extensions/inst/word/RN.docx b/_extensions/inst/word/RN.docx old mode 100644 new mode 100755 diff --git a/_extensions/inst/word/cv.docx b/_extensions/inst/word/cv.docx old mode 100644 new mode 100755 diff --git a/_extensions/inst/word/manu.docx b/_extensions/inst/word/manu.docx old mode 100644 new mode 100755 diff --git a/_extensions/inst/word/repcn.docx b/_extensions/inst/word/repcn.docx old mode 100644 new mode 100755 diff --git a/_extensions/kazuyanagimoto/academic/_extension.yml b/_extensions/kazuyanagimoto/academic/_extension.yml deleted file mode 100644 index e9c72c5..0000000 --- a/_extensions/kazuyanagimoto/academic/_extension.yml +++ /dev/null @@ -1,12 +0,0 @@ -title: Quarto Academic Typst -author: Kazuharu Yanagimoto -version: 0.1.0 -quarto-required: ">=1.4.0" -contributes: - formats: - typst: - shortcodes: - - shortcodes.lua - template-partials: - - typst-template.typ - - typst-show.typ diff --git a/_extensions/kazuyanagimoto/academic/shortcodes.lua b/_extensions/kazuyanagimoto/academic/shortcodes.lua deleted file mode 100644 index 5c596cf..0000000 --- a/_extensions/kazuyanagimoto/academic/shortcodes.lua +++ /dev/null @@ -1,3 +0,0 @@ -function appendix() - return pandoc.RawBlock('typst', '#show: appendix') -end \ No newline at end of file diff --git a/_extensions/kazuyanagimoto/academic/typst-show.typ b/_extensions/kazuyanagimoto/academic/typst-show.typ deleted file mode 100644 index 5db58ff..0000000 --- a/_extensions/kazuyanagimoto/academic/typst-show.typ +++ /dev/null @@ -1,88 +0,0 @@ -#show: doc => article( -$if(title)$ - title: [$title$], -$endif$ -$if(subtitle)$ - subtitle: [$subtitle$], -$endif$ -$if(header)$ - header: [$header$], -$endif$ -$if(code-repo)$ - code-repo: [$code-repo$], -$endif$ -$if(by-author)$ - authors: ( -$for(by-author)$ -$if(it.name.literal)$ - ( name: [$it.name.literal$], - affiliation: [$for(it.affiliations)$$it.name$$sep$, $endfor$], - email: [$it.email$], - orcid: [$it.orcid$] - ), -$endif$ -$endfor$ - ), -$endif$ -$if(date)$ - date: [$date$], -$endif$ -$if(lang)$ - lang: "$lang$", -$endif$ -$if(region)$ - region: "$region$", -$endif$ -$if(abstract)$ - abstract: [$abstract$], -$endif$ -$if(keywords)$ - keywords: [$for(keywords)$$keywords$$sep$, $endfor$], -$endif$ -$if(custom-keywords)$ - custom-keywords: ( - $for(custom-keywords)$ - ( name: [$it.name$], - values: [$for(it.values)$$it$$sep$, $endfor$] - ), - $endfor$ - ), -$endif$ -$if(thanks)$ - thanks: [$thanks$], -$endif$ -$if(margin)$ - margin: ($for(margin/pairs)$$margin.key$: $margin.value$,$endfor$), -$endif$ -$if(papersize)$ - paper: "$papersize$", -$endif$ -$if(mainfont)$ - font: ("$mainfont$",), -$endif$ -$if(mainfontoptions)$ - $if(mainfontoptions.number-type)$ - number-type: "$mainfontoptions.number-type$", - $endif$ - $if(mainfontoptions.number-width)$ - number-width: "$mainfontoptions.number-width$", - $endif$ -$endif$ -$if(sansfont)$ - sansfont: ("$sansfont$",), -$endif$ -$if(mathfont)$ - mathfont: ("$mathfont$",), -$endif$ -$if(fontsize)$ - fontsize: $fontsize$, -$endif$ -$if(section-numbering)$ - sectionnumbering: "$section-numbering$", -$endif$ -$if(toc)$ - toc: $toc$, -$endif$ - cols: $if(columns)$$columns$$else$1$endif$, - doc, -) \ No newline at end of file diff --git a/_extensions/kazuyanagimoto/academic/typst-template.typ b/_extensions/kazuyanagimoto/academic/typst-template.typ deleted file mode 100644 index 73c72a7..0000000 --- a/_extensions/kazuyanagimoto/academic/typst-template.typ +++ /dev/null @@ -1,197 +0,0 @@ -#import "@preview/fontawesome:0.3.0": * - -#let color-link = rgb("#483d8b") - -#let article( - title: none, - subtitle: none, - header: none, - code-repo: none, - authors: none, - date: none, - abstract: none, - keywords: none, - custom-keywords: none, - thanks: none, - cols: 1, - margin: (x: 1.25in, y: 1.25in), - paper: "us-letter", - lang: "en", - region: "US", - font: (), - sansfont: (), - mathfont: (), - number-type: auto, - number-width: auto, - fontsize: 11pt, - sectionnumbering: none, - toc: false, - doc, -) = { - set page( - paper: paper, - margin: margin, - numbering: "1", - ) - set par(justify: true) - set text(lang: lang, - region: region, - font: font, - size: fontsize, - number-type: number-type, - number-width: number-width,) - show math.equation: set text(font: mathfont) - set heading(numbering: sectionnumbering) - - show heading: set text(font: sansfont, weight: "semibold") - - show figure.caption: it => [ - #set text(font: sansfont, size: 0.9em) - #if it.supplement == [Figure] { - set align(left) - text(weight: "semibold")[#it.supplement #it.counter.display(it.numbering): ] - it.body - } else { - text(weight: "semibold")[#it.supplement #it.counter.display(it.numbering): ] - it.body - } - - ] - - show ref: it => { - let eq = math.equation - let el = it.element - if el == none { - it - } else if el.func() == eq { - link(el.location())[ - #numbering(el.numbering, - ..counter(eq).at(el.location()) - ) - ] - - } else if el.func() == figure { - el.supplement.text - link(el.location())[ - #set text(fill: color-link) - #numbering(el.numbering,..el.counter.at(el.location())) - ] - } else { - it - } - } - - show link: set text(fill: color-link) - set bibliography(title: "References") - - if date != none { - align(left)[#block()[ - #text(weight: "semibold", font: sansfont, size: 0.8em)[ - #date - #if header != none { - h(3em) - text(weight: "regular")[#header] - } - ] - ]] - } - - if code-repo != none { - align(left)[#block()[ - #text(weight: "regular", font: sansfont, size: 0.8em)[ - #code-repo - ] - ]] - } - - if title != none { - align(left)[#block(spacing: 4em)[ - #text(weight: "semibold", size: 1.5em, font: sansfont)[ - #title - #if thanks != none { - footnote(numbering: "*", thanks) - }\ - #if subtitle != none { - text(weight: "regular", style: "italic", size: 0.8em)[#subtitle] - } - ] - ]] - } - - if authors != none { - let count = authors.len() - let ncols = calc.min(count, 3) - grid( - columns: (1fr,) * ncols, - row-gutter: 1.5em, - ..authors.map(author => - align(left)[ - #text(size: 1.2em, font: sansfont)[#author.name] - #if author.orcid != [] { - link("https://orcid.org/" + author.orcid.text)[ - #set text(size: 0.85em, fill: rgb("a6ce39")) - #fa-orcid() - ] - } \ - #text(size: 0.85em, font: sansfont)[#author.affiliation] \ - #text(size: 0.7em, font: sansfont, fill: color-link)[ - #link("mailto:" + author.email.children.map(email => email.text).join())[#author.email] - ] - ] - ) - ) - } - - if abstract != none { - block(inset: 2em)[ - #text(weight: "semibold", font: sansfont, size: 0.9em)[ABSTRACT] #h(0.5em) - #text(font: sansfont)[#abstract] - #if keywords != none { - text(weight: "semibold", font: sansfont, size: 0.9em)[\ Keywords:] - h(0.5em) - text(font: sansfont)[#keywords] - } - #if custom-keywords != none { - for it in custom-keywords { - text(weight: "semibold", font: sansfont, size: 0.9em)[\ #it.name:] - h(0.5em) - text(font: sansfont)[#it.values] - } - } - ] - } - - if toc { - block(above: 0em, below: 2em)[ - #outline( - title: auto, - depth: none - ); - ] - } - - if cols == 1 { - doc - } else { - columns(cols, doc) - } - -} - -#let appendix(content) = { - // Reset Numbering - set heading(numbering: "A.1.1") - counter(heading).update(0) - counter(figure.where(kind: "quarto-float-fig")).update(0) - counter(figure.where(kind: "quarto-float-tbl")).update(0) - - // Figure & Table Numbering - set figure(numbering: it => { - [A.#it] - }) - - // Appendix Start - pagebreak(weak: true) - text(size: 2em)[Appendix] - content -} \ No newline at end of file diff --git a/_extensions/quarto-journals/acs/_affiliation.tex b/_extensions/quarto-journals/acs/_affiliation.tex deleted file mode 100644 index 5bd4ff4..0000000 --- a/_extensions/quarto-journals/acs/_affiliation.tex +++ /dev/null @@ -1 +0,0 @@ -$if(it.department)$$it.department$,$endif$ $if(it.name)$$it.name$,$endif$ $if(it.city)$$it.city$,$endif$ $if(it.country)$$it.country$$endif$ \ No newline at end of file diff --git a/_extensions/quarto-journals/acs/_extension.yml b/_extensions/quarto-journals/acs/_extension.yml deleted file mode 100644 index af9fa58..0000000 --- a/_extensions/quarto-journals/acs/_extension.yml +++ /dev/null @@ -1,30 +0,0 @@ -title: ACS Journal Format -author: Charles Teague -version: 0.9.2 -contributes: - formats: - common: - csl: american-chemical-society.csl - shortcodes: - - fancy-text - filters: - - latex-environment - environments: - - scheme - - chart - - graph - - tocentry - - acknowledgement - - suppinfo - commands: - - ce - html: default - pdf: - cite-method: natbib - biblio-config: false - format-resources: - - achemso.bst - template-partials: - - "doc-class.tex" - - "title.tex" - - "_affiliation.tex" diff --git a/_extensions/quarto-journals/acs/_extensions/quarto-ext/fancy-text/_extension.yml b/_extensions/quarto-journals/acs/_extensions/quarto-ext/fancy-text/_extension.yml deleted file mode 100644 index 813e238..0000000 --- a/_extensions/quarto-journals/acs/_extensions/quarto-ext/fancy-text/_extension.yml +++ /dev/null @@ -1,7 +0,0 @@ -title: Fancy Text -author: Posit Software, PBC -version: 1.1.1 -quarto-required: ">=1.2.198" -contributes: - shortcodes: - - fancy-text.lua diff --git a/_extensions/quarto-journals/acs/_extensions/quarto-ext/fancy-text/fancy-text.lua b/_extensions/quarto-journals/acs/_extensions/quarto-ext/fancy-text/fancy-text.lua deleted file mode 100644 index 0eec7d2..0000000 --- a/_extensions/quarto-journals/acs/_extensions/quarto-ext/fancy-text/fancy-text.lua +++ /dev/null @@ -1,78 +0,0 @@ --- shortcode that provides a nicely formatted 'LaTeX' string -function latex() - if quarto.doc.is_format("pdf") then - return pandoc.RawBlock('tex', '{\\LaTeX}') - elseif quarto.doc.is_format("html") then - return pandoc.Math('InlineMath', "\\LaTeX") - else - return pandoc.Span('LaTeX') - end -end - -function tex() - if quarto.doc.is_format("pdf") then - return pandoc.RawBlock('tex', '{\\TeX}') - elseif quarto.doc.is_format("html") then - return pandoc.Math('InlineMath', "\\TeX") - else - return pandoc.Span('TeX') - end -end - --- shortcode that provides a nicely formatted 'bibtex' string -function bibtex() - if quarto.doc.is_format("pdf") then - return pandoc.RawBlock('tex', '\\textsc{Bib}{\\TeX}') - elseif quarto.doc.is_format("html") then - return pandoc.RawBlock('html', 'BibTEX') - else - return pandoc.Span('BibTeX') - end -end - -function ldots() - if quarto.doc.is_format("pdf") then - return pandoc.RawBlock('tex', '\\ldots') - elseif quarto.doc.is_format("html") then - return pandoc.RawBlock('html', '…') - else - return "..." - end -end - -function vdots() - if quarto.doc.is_format("pdf") then - return pandoc.Math('InlineMath', "\\vdots") - elseif quarto.doc.is_format("html") then - return pandoc.RawBlock('html', '⋮') - else - return "..." - end -end - -function ddots() - if quarto.doc.is_format("pdf") then - return pandoc.Math('InlineMath', "\\ddots") - elseif quarto.doc.is_format("html") then - return pandoc.RawBlock('html', '⋱') - else - return "..." - end -end - -function pct() - local pct - if quarto.doc.is_format("pdf") then - return pandoc.Math('InlineMath', '\\%') - else - return pandoc.Str("%") - end -end - -function R2() - if quarto.doc.is_format("pdf") then - return pandoc.Math('InlineMath', "R^2") - else - return {pandoc.Str("R"), pandoc.Superscript("2")} - end -end \ No newline at end of file diff --git a/_extensions/quarto-journals/acs/_extensions/quarto-ext/latex-environment/_extension.yml b/_extensions/quarto-journals/acs/_extensions/quarto-ext/latex-environment/_extension.yml deleted file mode 100644 index 2f55b2f..0000000 --- a/_extensions/quarto-journals/acs/_extensions/quarto-ext/latex-environment/_extension.yml +++ /dev/null @@ -1,9 +0,0 @@ -title: LaTeX Environment -author: Posit Software, PBC -version: 1.2.1 -quarto-required: ">=1.3" -contributes: - filters: - - latex-environment.lua - format: - pdf: default diff --git a/_extensions/quarto-journals/acs/_extensions/quarto-ext/latex-environment/latex-environment.lua b/_extensions/quarto-journals/acs/_extensions/quarto-ext/latex-environment/latex-environment.lua deleted file mode 100644 index 389a25f..0000000 --- a/_extensions/quarto-journals/acs/_extensions/quarto-ext/latex-environment/latex-environment.lua +++ /dev/null @@ -1,150 +0,0 @@ --- environment.lua --- Copyright (C) 2020 by RStudio, PBC - -local classEnvironments = pandoc.MetaMap({}) -local classCommands = pandoc.MetaMap({}) - --- helper that identifies arrays -local function tisarray(t) - local i = 0 - for _ in pairs(t) do - i = i + 1 - if t[i] == nil then return false end - end - return true -end - --- reads the environments -local function readEnvironments(meta) - local env = meta['environments'] - if env ~= nil then - if tisarray(env) then - -- read an array of strings - for i, v in ipairs(env) do - local value = pandoc.utils.stringify(v) - classEnvironments[value] = value - end - else - -- read key value pairs - for k, v in pairs(env) do - local key = pandoc.utils.stringify(k) - local value = pandoc.utils.stringify(v) - classEnvironments[key] = value - end - end - end -end - -local function readCommands(meta) - local env = meta['commands'] - if env ~= nil then - if tisarray(env) then - -- read an array of strings - for i, v in ipairs(env) do - local value = pandoc.utils.stringify(v) - classCommands[value] = value - end - else - -- read key value pairs - for k, v in pairs(env) do - local key = pandoc.utils.stringify(k) - local value = pandoc.utils.stringify(v) - classCommands[key] = value - end - end - end -end - -local function readEnvsAndCommands(meta) - readEnvironments(meta) - readCommands(meta) -end - --- use the environments from metadata to --- emit a custom environment for latex -local function writeEnvironments(divEl) - if quarto.doc.is_format("latex") then - for k, v in pairs(classEnvironments) do - if divEl.attr.classes:includes(k) then - -- process this into a latex environment - local beginEnv = '\\begin' .. '{' .. v .. '}' - local endEnv = '\n\\end{' .. v .. '}' - - -- check if custom options or arguments are present - -- and add them to the environment accordingly - local opts = divEl.attr.attributes['options'] - if opts then - beginEnv = beginEnv .. '[' .. opts .. ']' - end - - local args = divEl.attr.attributes['arguments'] - if args then - beginEnv = beginEnv .. '{' .. args .. '}' - end - - -- if the first and last div blocks are paragraphs then we can - -- bring the environment begin/end closer to the content - if #divEl.content > 0 and divEl.content[1].t == "Para" and divEl.content[#divEl.content].t == "Para" then - table.insert(divEl.content[1].content, 1, pandoc.RawInline('tex', beginEnv .. "\n")) - table.insert(divEl.content[#divEl.content].content, pandoc.RawInline('tex', "\n" .. endEnv)) - else - table.insert(divEl.content, 1, pandoc.RawBlock('tex', beginEnv)) - table.insert(divEl.content, pandoc.RawBlock('tex', endEnv)) - end - return divEl - end - end - end -end - -local function buildCommandArgs(opts, format) - local function wrap(o) - return string.format(format, o) - end - local t = pandoc.List() - for str in string.gmatch(opts, "([^"..",".."]+)") do - t:insert(str) - end - return table.concat(t:map(wrap), "") -end - --- use the environments from metadata to --- emit a custom environment for latex -local function writeCommands(spanEl) - if quarto.doc.is_format("latex") then - for k, v in pairs(classCommands) do - if spanEl.attr.classes:includes(k) then - - -- resolve the begin command - local beginCommand = '\\' .. pandoc.utils.stringify(v) - local opts = spanEl.attr.attributes['options'] - local args = spanEl.attr.attributes['arguments'] - if opts then - beginCommand = beginCommand .. buildCommandArgs(opts, "[%s]") - end - if args then - beginCommand = beginCommand .. buildCommandArgs(args, "{%s}") - end - - local beginCommandRaw = pandoc.RawInline('latex', beginCommand .. '{') - - -- the end command - local endCommandRaw = pandoc.RawInline('latex', '}') - - -- attach the raw inlines to the span contents - local result = spanEl.content - table.insert(result, 1, beginCommandRaw) - table.insert(result, endCommandRaw) - - return result - end - end - end -end - --- Run in two passes so we process metadata --- and then process the divs -return { - { Meta = readEnvsAndCommands }, - { Div = writeEnvironments, Span = writeCommands } -} diff --git a/_extensions/quarto-journals/acs/achemso.bst b/_extensions/quarto-journals/acs/achemso.bst deleted file mode 100644 index 3713b0c..0000000 --- a/_extensions/quarto-journals/acs/achemso.bst +++ /dev/null @@ -1,1745 +0,0 @@ -%% -%% This is file `achemso.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% achemso.dtx (with options: `bst') -%% -%% IMPORTANT NOTICE: -%% -%% For the copyright see the source file. -%% -%% Any modified versions of this file must be renamed -%% with new filenames distinct from achemso.bst. -%% -%% For distribution of the original source see the terms -%% for copying and modification in the file achemso.dtx. -%% -%% This generated file may be distributed as long as the -%% original source files, as listed above, are part of the -%% same distribution. (The sources need not necessarily be -%% in the same archive or directory.) - -ENTRY - { - address - author - booktitle - chapter - ctrl-article-title - ctrl-chapter-title - ctrl-doi - ctrl-etal-firstonly - ctrl-etal-number - ctrl-use-title - doi - edition - editor - howpublished - institution - journal - key - maintitle - note - number - organization - pages - publisher - school - series - title - type - url - version - volume - year - } - { } - { - label - short.names - } - - -FUNCTION { and } { - { } - { - pop$ - #0 - } - if$ -} - -FUNCTION { not } { - { #0 } - { #1 } - if$ -} - -FUNCTION { or } { - { - pop$ - #1 - } - { } - if$ -} - -FUNCTION { xor } { - { not } - { } - if$ -} - - -FUNCTION { chr.to.value.error } { - #48 + - int.to.chr$ - "'" swap$ * - "'" * - " is not a number: treated as zero." * - warning$ - #0 -} - -FUNCTION { chr.to.value } { - chr.to.int$ #48 - - duplicate$ - #0 < - { chr.to.value.error } - { - duplicate$ - #9 > - { chr.to.value.error } - { } - if$ - } - if$ -} - -STRINGS { - extract.input.str - extract.output.str -} - -FUNCTION { is.a.digit } { - duplicate$ - "" = - { - pop$ - #0 - } - { - chr.to.int$ - #48 - - duplicate$ - #0 < swap$ #9 > or not - } - if$ -} - -FUNCTION{ is.a.number } { - { - duplicate$ - #1 #1 substring$ - is.a.digit - } - { #2 global.max$ substring$ } - while$ - "" = -} - -FUNCTION { extract.number } { - duplicate$ - 'extract.input.str := - "" 'extract.output.str := - { extract.input.str empty$ not } - { - extract.input.str #1 #1 substring$ - extract.input.str #2 global.max$ substring$ 'extract.input.str := - duplicate$ - is.a.number - { extract.output.str swap$ * 'extract.output.str := } - { - pop$ - "" 'extract.input.str := - } - if$ - } - while$ - extract.output.str empty$ - { } - { - pop$ - extract.output.str - } - if$ -} - -FUNCTION { field.or.null } { - duplicate$ - empty$ - { - pop$ - "" - } - { } - if$ -} - -INTEGERS { - multiply.a.int - multiply.b.int -} - -FUNCTION { multiply } { - 'multiply.a.int := - 'multiply.b.int := - multiply.b.int #0 < - { - #-1 - #0 multiply.b.int - 'multiply.b.int := - } - { #1 } - if$ - #0 - { multiply.b.int #0 > } - { - multiply.a.int + - multiply.b.int #1 - 'multiply.b.int := - } - while$ - swap$ - { } - { #0 swap$ - } - if$ -} - -INTEGERS { str.conversion.int } - -FUNCTION { str.to.int.aux.ii } { - { - duplicate$ - empty$ not - } - { - swap$ - #10 multiply 'str.conversion.int := - duplicate$ - #1 #1 substring$ - chr.to.value - str.conversion.int + - swap$ - #2 global.max$ substring$ - } - while$ - pop$ -} - -FUNCTION { str.to.int.aux.i } { - duplicate$ - #1 #1 substring$ - "-" = - { - #1 swap$ - #2 global.max$ substring$ - } - { - #0 swap$ - } - if$ - #0 - swap$ - str.to.int.aux.ii - swap$ - { #0 swap$ - } - { } - if$ -} - -FUNCTION { str.to.int } { - duplicate$ - empty$ - { - pop$ - #0 - } - { str.to.int.aux.i } - if$ -} - -FUNCTION { tie.or.space.connect } { - duplicate$ - text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} - -FUNCTION { yes.no.to.bool } { - duplicate$ - empty$ - { - pop$ - #0 - } - { - "l" change.case$ - "yes" = - { #1 } - { #0 } - if$ - } - if$ -} - - -FUNCTION { bold } { - duplicate$ - empty$ - { - pop$ - "" - } - { "\textbf{" swap$ * "}" * } - if$ -} - -FUNCTION { emph } { - duplicate$ - empty$ - { - pop$ - "" - } - { "\emph{" swap$ * "}" * } - if$ -} - -FUNCTION { paren } { - duplicate$ - empty$ - { - pop$ - "" - } - { "(" swap$ * ")" * } - if$ -} - - -FUNCTION { add.comma } { ", " * } - -FUNCTION { add.colon } { ": " * } - -FUNCTION { add.period } { add.period$ " " * } - -FUNCTION { add.semicolon } { "; " * } - -FUNCTION { add.space } { " " * } - - -FUNCTION { bbl.and } { "and" } - -FUNCTION { bbl.chapter } { "Chapter" } - -FUNCTION { bbl.doi } { "DOI:" } - -FUNCTION { bbl.editor } { "Ed." } - -FUNCTION { bbl.editors } { "Eds." } - -FUNCTION { bbl.edition } { "ed." } - -FUNCTION { bbl.etal } { "\latin{et~al.}" } - -FUNCTION { bbl.in } { "In" } - -FUNCTION { bbl.inpress } { "in press" } - -FUNCTION { bbl.msc } { "M.Sc.\ thesis" } - -FUNCTION { bbl.page } { "p" } - -FUNCTION { bbl.pages } { "pp" } - -FUNCTION { bbl.phd } { "Ph.D.\ thesis" } - -FUNCTION { bbl.version } { "version" } - -FUNCTION { bbl.volume } { "Vol." } - - -STRINGS { pages.str } - -FUNCTION { hyphen.to.dash } { - 'pages.str := - "" - { pages.str empty$ not } - { - pages.str #1 #1 substring$ - "-" = - { - "--" * - { - pages.str #1 #1 substring$ - "-" = - } - { pages.str #2 global.max$ substring$ 'pages.str := } - while$ - } - { - pages.str #1 #1 substring$ - * - pages.str #2 global.max$ substring$ 'pages.str := - } - if$ - } - while$ -} - -INTEGERS { multiresult.bool } - -FUNCTION { multi.page.check } { - 'pages.str := - #0 'multiresult.bool := - { - multiresult.bool not - pages.str empty$ not - and - } - { - pages.str #1 #1 substring$ - duplicate$ - "-" = swap$ duplicate$ - "," = swap$ - "+" = - or or - { #1 'multiresult.bool := } - { pages.str #2 global.max$ substring$ 'pages.str := } - if$ - } - while$ - multiresult.bool -} - - -INTEGERS { - current.name.int - names.separate.comma - names.separate.semicolon - names.separate.comma.bool - remaining.names.int - total.names.int -} - -STRINGS { - current.name.str - names.str -} - -FUNCTION { full.format.names } { - 'names.str := - #1 'current.name.int := - names.str num.names$ 'remaining.names.int := - { remaining.names.int #0 > } - { - names.str current.name.int "{vv~}{ll}" format.name$ - current.name.int #1 > - { - swap$ add.comma swap$ - remaining.names.int #1 > - { } - { - duplicate$ - "others" = - { bbl.etal } - { bbl.and } - if$ - add.space swap$ * - } - if$ - * - } - { } - if$ - remaining.names.int #1 - 'remaining.names.int := - current.name.int #1 + 'current.name.int := - } - while$ -} - -FUNCTION { full.author } { - author empty$ - { "" } - { author full.format.names } - if$ -} - -FUNCTION { full.author.editor } { - author empty$ - { - editor empty$ - { "" } - { editor full.format.names } - if$ - } - { author full.format.names } - if$ -} - -FUNCTION { full.editor } { - editor empty$ - { "" } - { editor full.format.names } - if$ -} - -FUNCTION { short.format.names } { - 'names.str := - names.str #1 "{vv~}{ll}" format.name$ - names.str num.names$ - duplicate$ - #2 > - { - pop$ - add.space bbl.etal * - } - { - #2 < - { } - { - names.str #2 "{ff }{vv }{ll}{ jj}" format.name$ - "others" = - { add.space bbl.etal * } - { - add.space - bbl.and add.space - * - names.str #2 "{vv~}{ll}" format.name$ - * - } - if$ - } - if$ - } - if$ -} - -FUNCTION { short.author.key } { - author empty$ - { - key empty$ - { cite$ #1 #3 substring$ } - { key } - if$ - } - { author short.format.names } - if$ -} - -FUNCTION { short.author.editor.key } { - author empty$ - { - editor empty$ - { - key empty$ - { cite$ #1 #3 substring$ } - { key } - if$ - } - { editor short.format.names } - if$ - } - { author short.format.names } - if$ -} - -FUNCTION { short.author.key.organization } { - author empty$ - { - key empty$ - { - organization empty$ - { cite$ #1 #3 substring$ } - { - organization #1 #4 substring$ - "The " = - { organization } - { organization #5 global.max$ substring$ } - if$ - #3 text.prefix$ - } - if$ - } - { key } - if$ - } - { author short.format.names } - if$ -} - -FUNCTION { short.editor.key.organization } { - editor empty$ - { - key empty$ - { - organization empty$ - { cite$ #1 #3 substring$ } - { - organization #1 #4 substring$ - "The " = - { organization } - { organization #5 global.max$ substring$ } - if$ - #3 text.prefix$ - } - if$ - } - { key } - if$ - } - { editor short.format.names } - if$ -} - -FUNCTION { calculate.full.names } { - type$ "book" = - type$ "inbook" = - or - { full.author.editor } - { - type$ "proceedings" = - { full.editor } - { full.author } - if$ - } - if$ -} - -FUNCTION { calculate.short.names } { - type$ "book" = - type$ "inbook" = - or - { short.author.editor.key } - { - type$ "proceedings" = - { short.editor.key.organization } - { - type$ "manual" = - { short.author.key.organization } - { short.author.key } - if$ - } - if$ - } - if$ - 'short.names := -} - -FUNCTION { calculate.names } { - calculate.short.names - short.names - year empty$ - { "()" } - { "(" year * ")" * } - if$ - * - 'label := -} - - -INTEGERS { entries.int } - -FUNCTION { initialize.count.entries } { - #0 'entries.int := -} - -FUNCTION { count.entries } { - entries.int #1 + 'entries.int := -} - - -FUNCTION { begin.bib } { - "achemso 2022-11-25 v3.13f" top$ - preamble$ empty$ - { } - { - preamble$ write$ - newline$ - } - if$ - "\providecommand{\latin}[1]{#1}" write$ - newline$ - "\makeatletter" write$ - newline$ - "\providecommand{\doi}" write$ - newline$ - " {\begingroup\let\do\@makeother\dospecials" write$ - newline$ - " \catcode`\{=1 \catcode`\}=2 \doi@aux}" write$ - newline$ - "\providecommand{\doi@aux}[1]{\endgroup\texttt{#1}}" write$ - newline$ - "\makeatother" write$ - newline$ - "\providecommand*\mcitethebibliography{\thebibliography}" write$ - newline$ - "\csname @ifundefined\endcsname{endmcitethebibliography}" write$ - " {\let\endmcitethebibliography\endthebibliography}{}" write$ - newline$ - "\begin{mcitethebibliography}{" - entries.int int.to.str$ * "}" * write$ - newline$ - "\providecommand*\natexlab[1]{#1}" write$ - newline$ - "\providecommand*\mciteSetBstSublistMode[1]{}" write$ - newline$ - "\providecommand*\mciteSetBstMaxWidthForm[2]{}" write$ - newline$ - "\providecommand*\mciteBstWouldAddEndPuncttrue" write$ - newline$ - " {\def\EndOfBibitem{\unskip.}}" write$ - newline$ - "\providecommand*\mciteBstWouldAddEndPunctfalse" write$ - newline$ - " {\let\EndOfBibitem\relax}" write$ - newline$ - "\providecommand*\mciteSetBstMidEndSepPunct[3]{}" write$ - newline$ - "\providecommand*\mciteSetBstSublistLabelBeginEnd[3]{}" write$ - newline$ - "\providecommand*\EndOfBibitem{}" write$ - newline$ - "\mciteSetBstSublistMode{f}" write$ - newline$ - "\mciteSetBstMaxWidthForm{subitem}{(\alph{mcitesubitemcount})}" write$ - newline$ - "\mciteSetBstSublistLabelBeginEnd" write$ - newline$ - " {\mcitemaxwidthsubitemform\space}" write$ - newline$ - " {\relax}" write$ - newline$ - " {\relax}" write$ - newline$ -} - -FUNCTION { end.bib } { - newline$ - "\end{mcitethebibliography}" write$ - newline$ -} - - -INTEGERS { - ctrl.article.title.bool - ctrl.chapter.title.bool - ctrl.doi.bool - ctrl.etal.firstonly.bool - ctrl.etal.number.int -} - -FUNCTION { initialize.control.values } { - #1 'ctrl.article.title.bool := - #0 'ctrl.chapter.title.bool := - #0 'ctrl.doi.bool := - #1 'ctrl.etal.firstonly.bool := - #15 'ctrl.etal.number.int := -} - -FUNCTION { control } { - ctrl-article-title yes.no.to.bool 'ctrl.article.title.bool := - ctrl-chapter-title yes.no.to.bool 'ctrl.chapter.title.bool := - ctrl-doi yes.no.to.bool 'ctrl.doi.bool := - ctrl-etal-firstonly yes.no.to.bool 'ctrl.etal.firstonly.bool := - ctrl-etal-number str.to.int 'ctrl.etal.number.int := - ctrl-use-title empty$ - 'skip$ - { ctrl-use-title yes.no.to.bool 'ctrl.article.title.bool := } - if$ -} - - -INTEGERS { - next.punct.comma - next.punct.period - next.punct.semicolon - next.punct.space -} - -FUNCTION { initialize.tracker } { - #0 'next.punct.comma := - #1 'next.punct.period := - #2 'next.punct.semicolon := - #3 'next.punct.space := -} - -INTEGERS { next.punct.int } - -FUNCTION { output } { - swap$ - duplicate$ empty$ - { pop$ } - { - next.punct.int next.punct.space = - { add.space } - { - next.punct.int next.punct.comma = - { add.comma } - { - next.punct.int next.punct.semicolon = - { add.semicolon } - { add.period } - if$ - } - if$ - } - if$ - write$ - } - if$ - next.punct.comma 'next.punct.int := -} - - -FUNCTION { begin.bibitem } { - newline$ - "\bibitem" write$ - label - calculate.full.names - duplicate$ - short.names = - { pop$ } - { * } - if$ - "[" swap$ * "]" * write$ - "{" cite$ * "}" * write$ - newline$ - "" - next.punct.comma 'next.punct.int := -} - -INTEGERS { add.period.length.int } - -FUNCTION { would.add.period } { - duplicate$ - add.period$ - text.length$ 'add.period.length.int := - duplicate$ - text.length$ - add.period.length.int = - { #0 } - { #1 } - if$ -} - -FUNCTION { end.bibitem } { - would.add.period - { - "\relax" * write$ - newline$ - "\mciteBstWouldAddEndPuncttrue" write$ - newline$ - "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}" write$ - newline$ - "{\mcitedefaultendpunct}{\mcitedefaultseppunct}\relax" - } - { - "\relax" * write$ - newline$ - "\mciteBstWouldAddEndPunctfalse" write$ - newline$ - "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}" write$ - newline$ - "{}{\mcitedefaultseppunct}\relax" - } - if$ - write$ - newline$ - "\EndOfBibitem" write$ -} - - -FUNCTION { initialize.name.separator } { - #1 'names.separate.comma := - #0 'names.separate.semicolon := -} - -FUNCTION { format.names.loop } { - { remaining.names.int #0 > } - { - names.str current.name.int "{vv~}{ll}{,~f.}{,~jj}" format.name$ - duplicate$ - 'current.name.str := - current.name.int #1 > - { - duplicate$ - "others," = - { - pop$ - * - bbl.etal - add.space - remaining.names.int #1 - 'remaining.names.int := - } - { - swap$ - names.separate.comma.bool - { add.comma } - { add.semicolon } - if$ - swap$ - * - } - if$ - } - { } - if$ - remaining.names.int #1 - 'remaining.names.int := - current.name.int #1 + 'current.name.int := - } - while$ -} - -FUNCTION { format.names.all } { - total.names.int 'remaining.names.int := - format.names.loop -} - -FUNCTION { format.names.etal } { - ctrl.etal.firstonly.bool - { #1 'remaining.names.int := } - { ctrl.etal.number.int 'remaining.names.int := } - if$ - format.names.loop - current.name.str "others," = - { } - { - add.space - bbl.etal - add.space - * - } - if$ -} - -FUNCTION { format.names } { - 'names.separate.comma.bool := - 'names.str := - #1 'current.name.int := - names.str num.names$ 'total.names.int := - total.names.int ctrl.etal.number.int > - { - ctrl.etal.number.int #0 = - { format.names.all } - { format.names.etal } - if$ - } - { format.names.all } - if$ -} - - -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" } - -STRINGS { - ord.input.str - ord.output.str -} - -FUNCTION { make.ordinal } { - duplicate$ - "1" swap$ - * - #-2 #1 substring$ - "1" = - { - bbl.th * - } - { - duplicate$ - #-1 #1 substring$ - duplicate$ - "1" = - { - pop$ - bbl.st * - } - { - duplicate$ - "2" = - { - pop$ - bbl.nd * - } - { - "3" = - { bbl.rd * } - { bbl.th * } - if$ - } - if$ - } - if$ - } - if$ -} - -FUNCTION { convert.to.ordinal } { - extract.number - "l" change.case$ 'ord.input.str := - ord.input.str "first" = ord.input.str "1" = or - { bbl.first 'ord.output.str := } - { - ord.input.str "second" = ord.input.str "2" = or - { bbl.second 'ord.output.str := } - { - ord.input.str "third" = ord.input.str "3" = or - { bbl.third 'ord.output.str := } - { - ord.input.str "fourth" = ord.input.str "4" = or - { bbl.fourth 'ord.output.str := } - { - ord.input.str "fifth" = ord.input.str "5" = or - { bbl.fifth 'ord.output.str := } - { - ord.input.str #1 #1 substring$ - is.a.number - { ord.input.str make.ordinal } - { ord.input.str } - if$ - 'ord.output.str := - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - ord.output.str -} - - -FUNCTION { format.address } { - address empty$ - { } - { - address - output - } - if$ -} - -FUNCTION { format.authors } { - author empty$ - { } - { - author names.separate.semicolon format.names - output - next.punct.space 'next.punct.int := - } - if$ -} - -FUNCTION { format.editors } { - editor empty$ - { } - { - editor names.separate.comma format.names - add.comma - editor num.names$ #1 > - { bbl.editors } - { bbl.editor } - if$ - * - output - next.punct.semicolon 'next.punct.int := - } - if$ -} - -FUNCTION { format.authors.or.editors } { - author empty$ - { format.editors } - { format.authors } - if$ - next.punct.space 'next.punct.int := -} - -FUNCTION { format.chapter } { - chapter empty$ - { } - { - bbl.chapter add.space - chapter - * - output - } - if$ -} - -FUNCTION { format.doi } { - doi empty$ - 'skip$ - { - bbl.doi add.space - "\doi{" * doi * "}" * - output - } - if$ -} - -FUNCTION { format.edition } { - edition empty$ - { } - { - edition convert.to.ordinal - add.space bbl.edition * - output - } - if$ - next.punct.semicolon 'next.punct.int := -} - -FUNCTION { format.group.address } { - duplicate$ - empty$ - { pop$ } - { - address empty$ - { } - { - add.colon - address - * - } - if$ - output - } - if$ -} - -FUNCTION { format.howpublished } { - howpublished empty$ - { } - { - howpublished - output - } - if$ -} - -FUNCTION { format.journal } { - journal emph - output - next.punct.space 'next.punct.int := -} - -FUNCTION { format.journal.unpub } { - journal emph - output -} - -FUNCTION { format.note } { - note empty$ - { } - { - note - output - } - if$ -} - -FUNCTION { format.number.series } { - series empty$ - { } - { - series - number empty$ - { } - { - add.space - number * - } - if$ - output - next.punct.semicolon 'next.punct.int := - } - if$ -} - -FUNCTION { format.organization } { - organization empty$ - { } - { - organization paren - output - next.punct.period 'next.punct.int := - } - if$ -} - -FUNCTION { format.organization.address } { - organization format.group.address -} - -FUNCTION { format.pages } { - pages empty$ - { } - { - pages multi.page.check - { - bbl.pages - pages hyphen.to.dash - } - { bbl.page pages } - if$ - tie.or.space.connect - output - } - if$ - ctrl.doi.bool - { format.doi } - 'skip$ - if$ -} - -FUNCTION { format.pages.article } { - pages empty$ - { } - { - pages hyphen.to.dash - output - } - if$ - ctrl.doi.bool - { format.doi } - 'skip$ - if$ -} - -FUNCTION { format.publisher.address } { - publisher format.group.address -} - -FUNCTION { format.school.address } { - school - duplicate$ - empty$ - { pop$ } - { - address empty$ - { } - { - add.comma - address - * - } - if$ - output - } - if$ -} - -FUNCTION { format.title } { - title empty$ - { } - { - title - output - next.punct.period 'next.punct.int := - } - if$ -} - -FUNCTION { format.title.article } { - ctrl.article.title.bool - { - title empty$ - { } - { - title - output - next.punct.period 'next.punct.int := - } - if$ - } - { } - if$ -} - -FUNCTION { format.title.techreport } { - title empty$ - { } - { - title emph - output - next.punct.semicolon 'next.punct.int := - } - if$ -} - -FUNCTION { format.title.booktitle } { - title empty$ - { } - { - title - output - next.punct.period 'next.punct.int := - } - if$ - booktitle empty$ - { } - { - booktitle - output - next.punct.period 'next.punct.int := - } - if$ -} - -STRINGS { - book.title - chapter.title -} - -FUNCTION { format.title.booktitle.book } { - "" 'chapter.title := - booktitle empty$ - { - "" 'chapter.title := - title 'book.title := - } - { - ctrl.chapter.title.bool - { - title empty$ - 'skip$ - { title 'chapter.title := } - if$ - } - 'skip$ - if$ - maintitle empty$ - { booktitle 'book.title := } - { maintitle add.period booktitle * 'book.title := } - if$ - } - if$ - chapter.title empty$ - { } - { - chapter.title - output - next.punct.period 'next.punct.int := - } - if$ - book.title emph - chapter.title empty$ - { - author empty$ - { } - { - editor empty$ - { } - { bbl.in add.space swap$ * } - if$ - } - if$ - } - { bbl.in add.space swap$ * } - if$ - output -} - -FUNCTION { format.type } { - type empty$ - { } - { - pop$ - type - } - if$ - output -} - -FUNCTION { format.type.number } { - type empty$ - { } - { - type - number empty$ - { } - { number tie.or.space.connect } - if$ - output - } - if$ -} - -FUNCTION { format.url } { - url empty$ - { } - { - "\url{" url * "}" * - output - } - if$ -} - -FUNCTION { format.year } { - year empty$ - { } - { - year - output - next.punct.semicolon 'next.punct.int := - } - if$ -} - -FUNCTION { format.year.article } { - year empty$ - { } - { - year bold - output - } - if$ -} - -FUNCTION { format.version } { - version empty$ - { } - { - bbl.version add.space - version - * - output - } - if$ -} - -FUNCTION { format.volume.article } { - volume emph - output -} - -FUNCTION { format.volume } { - volume empty$ - { } - { - bbl.volume - volume - tie.or.space.connect - output - next.punct.semicolon 'next.punct.int := - } - if$ -} - - -FUNCTION { article } { - begin.bibitem - format.authors - format.title.article - format.journal - format.year.article - format.volume.article - format.pages.article - format.note - end.bibitem -} - -FUNCTION { book } { - begin.bibitem - format.authors.or.editors - format.title.booktitle.book - format.edition - author empty$ - { } - { format.editors } - if$ - format.number.series - format.publisher.address - format.year - format.volume - format.chapter - format.pages - format.note - end.bibitem -} - -FUNCTION { inbook } { book } - -FUNCTION { booklet } { - begin.bibitem - format.authors - format.title - format.howpublished - format.address - format.year - format.note - end.bibitem -} - -FUNCTION { collection } { book } - -FUNCTION { incollection } { book } - -FUNCTION { inpress } { - begin.bibitem - format.authors - format.journal.unpub - doi empty$ - { - bbl.inpress - output - } - { - format.year.article - next.punct.comma 'next.punct.int := - format.doi - } - if$ - format.note - end.bibitem -} - -FUNCTION { inproceedings } { - begin.bibitem - format.authors - format.title.booktitle - format.address - format.year - format.pages - format.note - end.bibitem -} - -FUNCTION { manual } { - begin.bibitem - format.authors - format.title - format.version - format.organization.address - format.year - format.note - end.bibitem -} - -FUNCTION { mastersthesis } { - begin.bibitem - format.authors - format.title - bbl.msc format.type - format.school.address - format.year - format.note - end.bibitem -} - -FUNCTION { misc } { - begin.bibitem - format.authors - format.title - format.howpublished - format.year - format.url - format.note - end.bibitem -} - -FUNCTION { patent } { - begin.bibitem - format.authors - format.organization - format.title - format.type.number - format.year - format.note - end.bibitem -} - -FUNCTION { phdthesis } { - begin.bibitem - format.authors - format.title - bbl.phd format.type - format.school.address - format.year - format.note - end.bibitem -} - -FUNCTION { proceeding } { - begin.bibitem - format.title - format.address - format.year - format.pages - format.note - end.bibitem -} - -FUNCTION { techreport } { - begin.bibitem - format.authors.or.editors - format.title.techreport - format.type.number - format.organization.address - format.year - format.volume - format.pages - format.note - end.bibitem -} - -FUNCTION { unpublished } { - begin.bibitem - format.authors - format.journal.unpub - doi empty$ - { format.howpublished } - { - format.year - next.punct.comma 'next.punct.int := - format.doi - } - if$ - format.note - end.bibitem -} - -FUNCTION { default.type } { misc } - - -MACRO { jan } { "Jan." } -MACRO { feb } { "Feb." } -MACRO { mar } { "Mar." } -MACRO { apr } { "Apr." } -MACRO { may } { "May" } -MACRO { jun } { "June" } -MACRO { jul } { "July" } -MACRO { aug } { "Aug." } -MACRO { sep } { "Sept." } -MACRO { oct } { "Oct." } -MACRO { nov } { "Nov." } -MACRO { dec } { "Dec." } - -MACRO { acbcct } { "ACS Chem.\ Biol." } -MACRO { achre4 } { "Acc.\ Chem.\ Res." } -MACRO { acncdm } { "ACS Chem.\ Neurosci." } -MACRO { ancac3 } { "ACS Nano" } -MACRO { ancham } { "Anal.\ Chem." } -MACRO { bichaw } { "Biochemistry" } -MACRO { bcches } { "Bioconjugate Chem." } -MACRO { bomaf6 } { "Biomacromolecules" } -MACRO { bipret } { "Biotechnol.\ Prog." } -MACRO { crtoec } { "Chem.\ Res.\ Toxicol." } -MACRO { chreay } { "Chem.\ Rev." } -MACRO { cmatex } { "Chem.\ Mater." } -MACRO { cgdefu } { "Cryst.\ Growth Des." } -MACRO { enfuem } { "Energy Fuels" } -MACRO { esthag } { "Environ.\ Sci.\ Technol." } -MACRO { iechad } { "Ind.\ Eng.\ Chem.\ Res." } -MACRO { inoraj } { "Inorg.\ Chem." } -MACRO { jafcau } { "J.~Agric.\ Food Chem." } -MACRO { jceaax } { "J.~Chem.\ Eng.\ Data" } -MACRO { jceda8 } { "J.~Chem.\ Ed." } -MACRO { jcisd8 } { "J.~Chem.\ Inf.\ Model." } -MACRO { jctcce } { "J.~Chem.\ Theory Comput." } -MACRO { jcchff } { "J. Comb. Chem." } -MACRO { jmcmar } { "J. Med. Chem." } -MACRO { jnprdf } { "J. Nat. Prod." } -MACRO { joceah } { "J.~Org.\ Chem." } -MACRO { jpcafh } { "J.~Phys.\ Chem.~A" } -MACRO { jpcbfk } { "J.~Phys.\ Chem.~B" } -MACRO { jpccck } { "J.~Phys.\ Chem.~C" } -MACRO { jpclcd } { "J.~Phys.\ Chem.\ Lett." } -MACRO { jprobs } { "J.~Proteome Res." } -MACRO { jacsat } { "J.~Am.\ Chem.\ Soc." } -MACRO { langd5 } { "Langmuir" } -MACRO { mamobx } { "Macromolecules" } -MACRO { mpohbp } { "Mol.\ Pharm." } -MACRO { nalefd } { "Nano Lett." } -MACRO { orlef7 } { "Org.\ Lett." } -MACRO { oprdfk } { "Org.\ Proc.\ Res.\ Dev." } -MACRO { orgnd7 } { "Organometallics" } - - -READ - -EXECUTE { initialize.control.values } - -EXECUTE { initialize.count.entries } - -EXECUTE { initialize.name.separator } - -EXECUTE { initialize.tracker } - -ITERATE { calculate.names } - -ITERATE { count.entries } - -EXECUTE { begin.bib } - -ITERATE { call.type$ } - -EXECUTE { end.bib } -%% -%% Originally developed by Mats Dahlgren -%% Copyright (C) 1996-1998 by Mats Dahlgren -%% Copyright (C) 2008-2022 by -%% Joseph Wright -%% -%% Part of this bundle is derived from cite.sty, to which the -%% following license applies: -%% Copyright (C) 1989-2009 by Donald Arseneau -%% These macros may be freely transmitted, reproduced, or -%% modified provided that this notice is left intact. -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% http://www.latex-project.org/lppl.txt -%% -%% This work is "maintained" (as per LPPL maintenance status) by -%% Joseph Wright. -%% -%% This work consists of the files achemso.dtx, -%% achemso-demo.bib and -%% achemso-demo.tex, -%% and the derived files achemso.cls, -%% achemso.ins, -%% achemso.pdf, -%% achemso.sty, -%% natmove.sty and -%% a number of configuration files. -%% -%% -%% End of file `achemso.bst'. diff --git a/_extensions/quarto-journals/acs/american-chemical-society.csl b/_extensions/quarto-journals/acs/american-chemical-society.csl deleted file mode 100644 index 3e485ed..0000000 --- a/_extensions/quarto-journals/acs/american-chemical-society.csl +++ /dev/null @@ -1,252 +0,0 @@ - - diff --git a/_extensions/quarto-journals/acs/biochem.bst b/_extensions/quarto-journals/acs/biochem.bst deleted file mode 100644 index 26f1495..0000000 --- a/_extensions/quarto-journals/acs/biochem.bst +++ /dev/null @@ -1,1750 +0,0 @@ -%% -%% This is file `biochem.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% achemso.dtx (with options: `bst,bio') -%% -%% IMPORTANT NOTICE: -%% -%% For the copyright see the source file. -%% -%% Any modified versions of this file must be renamed -%% with new filenames distinct from biochem.bst. -%% -%% For distribution of the original source see the terms -%% for copying and modification in the file achemso.dtx. -%% -%% This generated file may be distributed as long as the -%% original source files, as listed above, are part of the -%% same distribution. (The sources need not necessarily be -%% in the same archive or directory.) - -ENTRY - { - address - author - booktitle - chapter - ctrl-article-title - ctrl-chapter-title - ctrl-doi - ctrl-etal-firstonly - ctrl-etal-number - ctrl-use-title - doi - edition - editor - howpublished - institution - journal - key - maintitle - note - number - organization - pages - publisher - school - series - title - type - url - version - volume - year - } - { } - { - label - short.names - } - - -FUNCTION { and } { - { } - { - pop$ - #0 - } - if$ -} - -FUNCTION { not } { - { #0 } - { #1 } - if$ -} - -FUNCTION { or } { - { - pop$ - #1 - } - { } - if$ -} - -FUNCTION { xor } { - { not } - { } - if$ -} - - -FUNCTION { chr.to.value.error } { - #48 + - int.to.chr$ - "'" swap$ * - "'" * - " is not a number: treated as zero." * - warning$ - #0 -} - -FUNCTION { chr.to.value } { - chr.to.int$ #48 - - duplicate$ - #0 < - { chr.to.value.error } - { - duplicate$ - #9 > - { chr.to.value.error } - { } - if$ - } - if$ -} - -STRINGS { - extract.input.str - extract.output.str -} - -FUNCTION { is.a.digit } { - duplicate$ - "" = - { - pop$ - #0 - } - { - chr.to.int$ - #48 - - duplicate$ - #0 < swap$ #9 > or not - } - if$ -} - -FUNCTION{ is.a.number } { - { - duplicate$ - #1 #1 substring$ - is.a.digit - } - { #2 global.max$ substring$ } - while$ - "" = -} - -FUNCTION { extract.number } { - duplicate$ - 'extract.input.str := - "" 'extract.output.str := - { extract.input.str empty$ not } - { - extract.input.str #1 #1 substring$ - extract.input.str #2 global.max$ substring$ 'extract.input.str := - duplicate$ - is.a.number - { extract.output.str swap$ * 'extract.output.str := } - { - pop$ - "" 'extract.input.str := - } - if$ - } - while$ - extract.output.str empty$ - { } - { - pop$ - extract.output.str - } - if$ -} - -FUNCTION { field.or.null } { - duplicate$ - empty$ - { - pop$ - "" - } - { } - if$ -} - -INTEGERS { - multiply.a.int - multiply.b.int -} - -FUNCTION { multiply } { - 'multiply.a.int := - 'multiply.b.int := - multiply.b.int #0 < - { - #-1 - #0 multiply.b.int - 'multiply.b.int := - } - { #1 } - if$ - #0 - { multiply.b.int #0 > } - { - multiply.a.int + - multiply.b.int #1 - 'multiply.b.int := - } - while$ - swap$ - { } - { #0 swap$ - } - if$ -} - -INTEGERS { str.conversion.int } - -FUNCTION { str.to.int.aux.ii } { - { - duplicate$ - empty$ not - } - { - swap$ - #10 multiply 'str.conversion.int := - duplicate$ - #1 #1 substring$ - chr.to.value - str.conversion.int + - swap$ - #2 global.max$ substring$ - } - while$ - pop$ -} - -FUNCTION { str.to.int.aux.i } { - duplicate$ - #1 #1 substring$ - "-" = - { - #1 swap$ - #2 global.max$ substring$ - } - { - #0 swap$ - } - if$ - #0 - swap$ - str.to.int.aux.ii - swap$ - { #0 swap$ - } - { } - if$ -} - -FUNCTION { str.to.int } { - duplicate$ - empty$ - { - pop$ - #0 - } - { str.to.int.aux.i } - if$ -} - -FUNCTION { tie.or.space.connect } { - duplicate$ - text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} - -FUNCTION { yes.no.to.bool } { - duplicate$ - empty$ - { - pop$ - #0 - } - { - "l" change.case$ - "yes" = - { #1 } - { #0 } - if$ - } - if$ -} - - -FUNCTION { bold } { - duplicate$ - empty$ - { - pop$ - "" - } - { "\textbf{" swap$ * "}" * } - if$ -} - -FUNCTION { emph } { - duplicate$ - empty$ - { - pop$ - "" - } - { "\emph{" swap$ * "}" * } - if$ -} - -FUNCTION { paren } { - duplicate$ - empty$ - { - pop$ - "" - } - { "(" swap$ * ")" * } - if$ -} - - -FUNCTION { add.comma } { ", " * } - -FUNCTION { add.colon } { ": " * } - -FUNCTION { add.period } { add.period$ " " * } - -FUNCTION { add.semicolon } { "; " * } - -FUNCTION { add.space } { " " * } - - -FUNCTION { bbl.and } { "and" } - -FUNCTION { bbl.chapter } { "Chapter" } - -FUNCTION { bbl.doi } { "DOI:" } - -FUNCTION { bbl.editor } { "Ed." } - -FUNCTION { bbl.editors } { "Eds." } - -FUNCTION { bbl.edition } { "ed." } - -FUNCTION { bbl.etal } { "\latin{et~al.}" } - -FUNCTION { bbl.in } { "In" } - -FUNCTION { bbl.inpress } { "in press" } - -FUNCTION { bbl.msc } { "M.Sc.\ thesis" } - -FUNCTION { bbl.page } { "p" } - -FUNCTION { bbl.pages } { "pp" } - -FUNCTION { bbl.phd } { "Ph.D.\ thesis" } - -FUNCTION { bbl.version } { "version" } - -FUNCTION { bbl.volume } { "Vol." } - - -STRINGS { pages.str } - -FUNCTION { hyphen.to.dash } { - 'pages.str := - "" - { pages.str empty$ not } - { - pages.str #1 #1 substring$ - "-" = - { - "--" * - { - pages.str #1 #1 substring$ - "-" = - } - { pages.str #2 global.max$ substring$ 'pages.str := } - while$ - } - { - pages.str #1 #1 substring$ - * - pages.str #2 global.max$ substring$ 'pages.str := - } - if$ - } - while$ -} - -INTEGERS { multiresult.bool } - -FUNCTION { multi.page.check } { - 'pages.str := - #0 'multiresult.bool := - { - multiresult.bool not - pages.str empty$ not - and - } - { - pages.str #1 #1 substring$ - duplicate$ - "-" = swap$ duplicate$ - "," = swap$ - "+" = - or or - { #1 'multiresult.bool := } - { pages.str #2 global.max$ substring$ 'pages.str := } - if$ - } - while$ - multiresult.bool -} - - -INTEGERS { - current.name.int - names.separate.comma - names.separate.semicolon - names.separate.comma.bool - remaining.names.int - total.names.int -} - -STRINGS { - current.name.str - names.str -} - -FUNCTION { full.format.names } { - 'names.str := - #1 'current.name.int := - names.str num.names$ 'remaining.names.int := - { remaining.names.int #0 > } - { - names.str current.name.int "{vv~}{ll}" format.name$ - current.name.int #1 > - { - swap$ add.comma swap$ - remaining.names.int #1 > - { } - { - duplicate$ - "others" = - { bbl.etal } - { bbl.and } - if$ - add.space swap$ * - } - if$ - * - } - { } - if$ - remaining.names.int #1 - 'remaining.names.int := - current.name.int #1 + 'current.name.int := - } - while$ -} - -FUNCTION { full.author } { - author empty$ - { "" } - { author full.format.names } - if$ -} - -FUNCTION { full.author.editor } { - author empty$ - { - editor empty$ - { "" } - { editor full.format.names } - if$ - } - { author full.format.names } - if$ -} - -FUNCTION { full.editor } { - editor empty$ - { "" } - { editor full.format.names } - if$ -} - -FUNCTION { short.format.names } { - 'names.str := - names.str #1 "{vv~}{ll}" format.name$ - names.str num.names$ - duplicate$ - #2 > - { - pop$ - add.space bbl.etal * - } - { - #2 < - { } - { - names.str #2 "{ff }{vv }{ll}{ jj}" format.name$ - "others" = - { add.space bbl.etal * } - { - add.space - bbl.and add.space - * - names.str #2 "{vv~}{ll}" format.name$ - * - } - if$ - } - if$ - } - if$ -} - -FUNCTION { short.author.key } { - author empty$ - { - key empty$ - { cite$ #1 #3 substring$ } - { key } - if$ - } - { author short.format.names } - if$ -} - -FUNCTION { short.author.editor.key } { - author empty$ - { - editor empty$ - { - key empty$ - { cite$ #1 #3 substring$ } - { key } - if$ - } - { editor short.format.names } - if$ - } - { author short.format.names } - if$ -} - -FUNCTION { short.author.key.organization } { - author empty$ - { - key empty$ - { - organization empty$ - { cite$ #1 #3 substring$ } - { - organization #1 #4 substring$ - "The " = - { organization } - { organization #5 global.max$ substring$ } - if$ - #3 text.prefix$ - } - if$ - } - { key } - if$ - } - { author short.format.names } - if$ -} - -FUNCTION { short.editor.key.organization } { - editor empty$ - { - key empty$ - { - organization empty$ - { cite$ #1 #3 substring$ } - { - organization #1 #4 substring$ - "The " = - { organization } - { organization #5 global.max$ substring$ } - if$ - #3 text.prefix$ - } - if$ - } - { key } - if$ - } - { editor short.format.names } - if$ -} - -FUNCTION { calculate.full.names } { - type$ "book" = - type$ "inbook" = - or - { full.author.editor } - { - type$ "proceedings" = - { full.editor } - { full.author } - if$ - } - if$ -} - -FUNCTION { calculate.short.names } { - type$ "book" = - type$ "inbook" = - or - { short.author.editor.key } - { - type$ "proceedings" = - { short.editor.key.organization } - { - type$ "manual" = - { short.author.key.organization } - { short.author.key } - if$ - } - if$ - } - if$ - 'short.names := -} - -FUNCTION { calculate.names } { - calculate.short.names - short.names - year empty$ - { "()" } - { "(" year * ")" * } - if$ - * - 'label := -} - - -INTEGERS { entries.int } - -FUNCTION { initialize.count.entries } { - #0 'entries.int := -} - -FUNCTION { count.entries } { - entries.int #1 + 'entries.int := -} - - -FUNCTION { begin.bib } { - "achemso 2022-11-25 v3.13f" top$ - preamble$ empty$ - { } - { - preamble$ write$ - newline$ - } - if$ - "\providecommand{\latin}[1]{#1}" write$ - newline$ - "\makeatletter" write$ - newline$ - "\providecommand{\doi}" write$ - newline$ - " {\begingroup\let\do\@makeother\dospecials" write$ - newline$ - " \catcode`\{=1 \catcode`\}=2 \doi@aux}" write$ - newline$ - "\providecommand{\doi@aux}[1]{\endgroup\texttt{#1}}" write$ - newline$ - "\makeatother" write$ - newline$ - "\providecommand*\mcitethebibliography{\thebibliography}" write$ - newline$ - "\csname @ifundefined\endcsname{endmcitethebibliography}" write$ - " {\let\endmcitethebibliography\endthebibliography}{}" write$ - newline$ - "\begin{mcitethebibliography}{" - entries.int int.to.str$ * "}" * write$ - newline$ - "\providecommand*\natexlab[1]{#1}" write$ - newline$ - "\providecommand*\mciteSetBstSublistMode[1]{}" write$ - newline$ - "\providecommand*\mciteSetBstMaxWidthForm[2]{}" write$ - newline$ - "\providecommand*\mciteBstWouldAddEndPuncttrue" write$ - newline$ - " {\def\EndOfBibitem{\unskip.}}" write$ - newline$ - "\providecommand*\mciteBstWouldAddEndPunctfalse" write$ - newline$ - " {\let\EndOfBibitem\relax}" write$ - newline$ - "\providecommand*\mciteSetBstMidEndSepPunct[3]{}" write$ - newline$ - "\providecommand*\mciteSetBstSublistLabelBeginEnd[3]{}" write$ - newline$ - "\providecommand*\EndOfBibitem{}" write$ - newline$ - "\mciteSetBstSublistMode{f}" write$ - newline$ - "\mciteSetBstMaxWidthForm{subitem}{(\alph{mcitesubitemcount})}" write$ - newline$ - "\mciteSetBstSublistLabelBeginEnd" write$ - newline$ - " {\mcitemaxwidthsubitemform\space}" write$ - newline$ - " {\relax}" write$ - newline$ - " {\relax}" write$ - newline$ -} - -FUNCTION { end.bib } { - newline$ - "\end{mcitethebibliography}" write$ - newline$ -} - - -INTEGERS { - ctrl.article.title.bool - ctrl.chapter.title.bool - ctrl.doi.bool - ctrl.etal.firstonly.bool - ctrl.etal.number.int -} - -FUNCTION { initialize.control.values } { - #1 'ctrl.article.title.bool := - #0 'ctrl.chapter.title.bool := - #0 'ctrl.doi.bool := - #1 'ctrl.etal.firstonly.bool := - #15 'ctrl.etal.number.int := -} - -FUNCTION { control } { - ctrl-article-title yes.no.to.bool 'ctrl.article.title.bool := - ctrl-chapter-title yes.no.to.bool 'ctrl.chapter.title.bool := - ctrl-doi yes.no.to.bool 'ctrl.doi.bool := - ctrl-etal-firstonly yes.no.to.bool 'ctrl.etal.firstonly.bool := - ctrl-etal-number str.to.int 'ctrl.etal.number.int := - ctrl-use-title empty$ - 'skip$ - { ctrl-use-title yes.no.to.bool 'ctrl.article.title.bool := } - if$ -} - - -INTEGERS { - next.punct.comma - next.punct.period - next.punct.semicolon - next.punct.space -} - -FUNCTION { initialize.tracker } { - #0 'next.punct.comma := - #1 'next.punct.period := - #2 'next.punct.semicolon := - #3 'next.punct.space := -} - -INTEGERS { next.punct.int } - -FUNCTION { output } { - swap$ - duplicate$ empty$ - { pop$ } - { - next.punct.int next.punct.space = - { add.space } - { - next.punct.int next.punct.comma = - { add.comma } - { - next.punct.int next.punct.semicolon = - { add.semicolon } - { add.period } - if$ - } - if$ - } - if$ - write$ - } - if$ - next.punct.comma 'next.punct.int := -} - - -FUNCTION { begin.bibitem } { - newline$ - "\bibitem" write$ - label - calculate.full.names - duplicate$ - short.names = - { pop$ } - { * } - if$ - "[" swap$ * "]" * write$ - "{" cite$ * "}" * write$ - newline$ - "" - next.punct.comma 'next.punct.int := -} - -INTEGERS { add.period.length.int } - -FUNCTION { would.add.period } { - duplicate$ - add.period$ - text.length$ 'add.period.length.int := - duplicate$ - text.length$ - add.period.length.int = - { #0 } - { #1 } - if$ -} - -FUNCTION { end.bibitem } { - would.add.period - { - "\relax" * write$ - newline$ - "\mciteBstWouldAddEndPuncttrue" write$ - newline$ - "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}" write$ - newline$ - "{\mcitedefaultendpunct}{\mcitedefaultseppunct}\relax" - } - { - "\relax" * write$ - newline$ - "\mciteBstWouldAddEndPunctfalse" write$ - newline$ - "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}" write$ - newline$ - "{}{\mcitedefaultseppunct}\relax" - } - if$ - write$ - newline$ - "\EndOfBibitem" write$ -} - - -FUNCTION { initialize.name.separator } { - #1 'names.separate.comma := - #0 'names.separate.semicolon := -} - -FUNCTION { format.names.loop } { - { remaining.names.int #0 > } - { - names.str current.name.int "{vv~}{ll}{,~f.}{,~jj}" format.name$ - duplicate$ - 'current.name.str := - current.name.int #1 > - { - duplicate$ - "others," = - { - pop$ - * - bbl.etal - add.space - remaining.names.int #1 - 'remaining.names.int := - } - { - swap$ - names.separate.comma.bool - { add.comma } - { add.semicolon } - if$ - remaining.names.int #1 > - { } - { bbl.and add.space * } - if$ - swap$ - * - } - if$ - } - { } - if$ - remaining.names.int #1 - 'remaining.names.int := - current.name.int #1 + 'current.name.int := - } - while$ -} - -FUNCTION { format.names.all } { - total.names.int 'remaining.names.int := - format.names.loop -} - -FUNCTION { format.names.etal } { - ctrl.etal.firstonly.bool - { #1 'remaining.names.int := } - { ctrl.etal.number.int 'remaining.names.int := } - if$ - format.names.loop - current.name.str "others," = - { } - { - add.space - bbl.etal - add.space - * - } - if$ -} - -FUNCTION { format.names } { - 'names.separate.comma.bool := - 'names.str := - #1 'current.name.int := - names.str num.names$ 'total.names.int := - total.names.int ctrl.etal.number.int > - { - ctrl.etal.number.int #0 = - { format.names.all } - { format.names.etal } - if$ - } - { format.names.all } - if$ -} - - -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" } - -STRINGS { - ord.input.str - ord.output.str -} - -FUNCTION { make.ordinal } { - duplicate$ - "1" swap$ - * - #-2 #1 substring$ - "1" = - { - bbl.th * - } - { - duplicate$ - #-1 #1 substring$ - duplicate$ - "1" = - { - pop$ - bbl.st * - } - { - duplicate$ - "2" = - { - pop$ - bbl.nd * - } - { - "3" = - { bbl.rd * } - { bbl.th * } - if$ - } - if$ - } - if$ - } - if$ -} - -FUNCTION { convert.to.ordinal } { - extract.number - "l" change.case$ 'ord.input.str := - ord.input.str "first" = ord.input.str "1" = or - { bbl.first 'ord.output.str := } - { - ord.input.str "second" = ord.input.str "2" = or - { bbl.second 'ord.output.str := } - { - ord.input.str "third" = ord.input.str "3" = or - { bbl.third 'ord.output.str := } - { - ord.input.str "fourth" = ord.input.str "4" = or - { bbl.fourth 'ord.output.str := } - { - ord.input.str "fifth" = ord.input.str "5" = or - { bbl.fifth 'ord.output.str := } - { - ord.input.str #1 #1 substring$ - is.a.number - { ord.input.str make.ordinal } - { ord.input.str } - if$ - 'ord.output.str := - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - ord.output.str -} - - -FUNCTION { format.address } { - address empty$ - { } - { - address - output - } - if$ -} - -FUNCTION { format.authors } { - author empty$ - { } - { - author names.separate.comma format.names - output - next.punct.space 'next.punct.int := - } - if$ -} - -FUNCTION { format.editors } { - editor empty$ - { } - { - editor names.separate.comma format.names - add.comma - editor num.names$ #1 > - { bbl.editors } - { bbl.editor } - if$ - * - output - next.punct.semicolon 'next.punct.int := - } - if$ -} - -FUNCTION { format.authors.or.editors } { - author empty$ - { format.editors } - { format.authors } - if$ - next.punct.space 'next.punct.int := -} - -FUNCTION { format.chapter } { - chapter empty$ - { } - { - bbl.chapter add.space - chapter - * - output - } - if$ -} - -FUNCTION { format.doi } { - doi empty$ - 'skip$ - { - bbl.doi add.space - "\doi{" * doi * "}" * - output - } - if$ -} - -FUNCTION { format.edition } { - edition empty$ - { } - { - edition convert.to.ordinal - add.space bbl.edition * - output - } - if$ - next.punct.semicolon 'next.punct.int := -} - -FUNCTION { format.group.address } { - duplicate$ - empty$ - { pop$ } - { - address empty$ - { } - { - add.colon - address - * - } - if$ - output - } - if$ -} - -FUNCTION { format.howpublished } { - howpublished empty$ - { } - { - howpublished - output - } - if$ -} - -FUNCTION { format.journal } { - journal emph - output - next.punct.space 'next.punct.int := -} - -FUNCTION { format.journal.unpub } { - journal emph - output -} - -FUNCTION { format.note } { - note empty$ - { } - { - note - output - } - if$ -} - -FUNCTION { format.number.series } { - series empty$ - { } - { - series - number empty$ - { } - { - add.space - number * - } - if$ - output - next.punct.semicolon 'next.punct.int := - } - if$ -} - -FUNCTION { format.organization } { - organization empty$ - { } - { - organization paren - output - next.punct.period 'next.punct.int := - } - if$ -} - -FUNCTION { format.organization.address } { - organization format.group.address -} - -FUNCTION { format.pages } { - pages empty$ - { } - { - pages multi.page.check - { - bbl.pages - pages hyphen.to.dash - } - { bbl.page pages } - if$ - tie.or.space.connect - output - } - if$ - ctrl.doi.bool - { format.doi } - 'skip$ - if$ -} - -FUNCTION { format.pages.article } { - pages empty$ - { } - { - pages hyphen.to.dash - output - } - if$ - ctrl.doi.bool - { format.doi } - 'skip$ - if$ -} - -FUNCTION { format.publisher.address } { - publisher format.group.address -} - -FUNCTION { format.school.address } { - school - duplicate$ - empty$ - { pop$ } - { - address empty$ - { } - { - add.comma - address - * - } - if$ - output - } - if$ -} - -FUNCTION { format.title } { - title empty$ - { } - { - title - output - next.punct.period 'next.punct.int := - } - if$ -} - -FUNCTION { format.title.article } { - ctrl.article.title.bool - { - title empty$ - { } - { - title - output - next.punct.period 'next.punct.int := - } - if$ - } - { } - if$ -} - -FUNCTION { format.title.techreport } { - title empty$ - { } - { - title emph - output - next.punct.semicolon 'next.punct.int := - } - if$ -} - -FUNCTION { format.title.booktitle } { - title empty$ - { } - { - title - output - next.punct.period 'next.punct.int := - } - if$ - booktitle empty$ - { } - { - booktitle - output - next.punct.period 'next.punct.int := - } - if$ -} - -STRINGS { - book.title - chapter.title -} - -FUNCTION { format.title.booktitle.book } { - "" 'chapter.title := - booktitle empty$ - { - "" 'chapter.title := - title 'book.title := - } - { - ctrl.chapter.title.bool - { - title empty$ - 'skip$ - { title 'chapter.title := } - if$ - } - 'skip$ - if$ - maintitle empty$ - { booktitle 'book.title := } - { maintitle add.period booktitle * 'book.title := } - if$ - } - if$ - chapter.title empty$ - { } - { - chapter.title - output - next.punct.period 'next.punct.int := - } - if$ - book.title emph - chapter.title empty$ - { - author empty$ - { } - { - editor empty$ - { } - { bbl.in add.space swap$ * } - if$ - } - if$ - } - { bbl.in add.space swap$ * } - if$ - output -} - -FUNCTION { format.type } { - type empty$ - { } - { - pop$ - type - } - if$ - output -} - -FUNCTION { format.type.number } { - type empty$ - { } - { - type - number empty$ - { } - { number tie.or.space.connect } - if$ - output - } - if$ -} - -FUNCTION { format.url } { - url empty$ - { } - { - "\url{" url * "}" * - output - } - if$ -} - -FUNCTION { format.year } { - year empty$ - { } - { - year - output - next.punct.semicolon 'next.punct.int := - } - if$ -} - -FUNCTION { format.year.article } { - year empty$ - { } - { - year paren - output - next.punct.space 'next.punct.int := - } - if$ -} - -FUNCTION { format.version } { - version empty$ - { } - { - bbl.version add.space - version - * - output - } - if$ -} - -FUNCTION { format.volume.article } { - volume emph - output -} - -FUNCTION { format.volume } { - volume empty$ - { } - { - bbl.volume - volume - tie.or.space.connect - output - next.punct.semicolon 'next.punct.int := - } - if$ -} - - -FUNCTION { article } { - begin.bibitem - format.authors - format.year.article - format.title.article - format.journal - format.volume.article - format.pages.article - format.note - end.bibitem -} - -FUNCTION { book } { - begin.bibitem - format.authors.or.editors - format.title.booktitle.book - format.edition - author empty$ - { } - { format.editors } - if$ - format.number.series - format.publisher.address - format.year - format.volume - format.chapter - format.pages - format.note - end.bibitem -} - -FUNCTION { inbook } { book } - -FUNCTION { booklet } { - begin.bibitem - format.authors - format.title - format.howpublished - format.address - format.year - format.note - end.bibitem -} - -FUNCTION { collection } { book } - -FUNCTION { incollection } { book } - -FUNCTION { inpress } { - begin.bibitem - format.authors - format.year.article - format.journal.unpub - doi empty$ - { - bbl.inpress - output - } - { - next.punct.comma 'next.punct.int := - format.doi - } - if$ - format.note - end.bibitem -} - -FUNCTION { inproceedings } { - begin.bibitem - format.authors - format.title.booktitle - format.address - format.year - format.pages - format.note - end.bibitem -} - -FUNCTION { manual } { - begin.bibitem - format.authors - format.title - format.version - format.organization.address - format.year - format.note - end.bibitem -} - -FUNCTION { mastersthesis } { - begin.bibitem - format.authors - format.title - bbl.msc format.type - format.school.address - format.year - format.note - end.bibitem -} - -FUNCTION { misc } { - begin.bibitem - format.authors - format.title - format.howpublished - format.year - format.url - format.note - end.bibitem -} - -FUNCTION { patent } { - begin.bibitem - format.authors - format.organization - format.title - format.type.number - format.year - format.note - end.bibitem -} - -FUNCTION { phdthesis } { - begin.bibitem - format.authors - format.title - bbl.phd format.type - format.school.address - format.year - format.note - end.bibitem -} - -FUNCTION { proceeding } { - begin.bibitem - format.title - format.address - format.year - format.pages - format.note - end.bibitem -} - -FUNCTION { techreport } { - begin.bibitem - format.authors.or.editors - format.title.techreport - format.type.number - format.organization.address - format.year - format.volume - format.pages - format.note - end.bibitem -} - -FUNCTION { unpublished } { - begin.bibitem - format.authors - format.journal.unpub - doi empty$ - { format.howpublished } - { - format.year - next.punct.comma 'next.punct.int := - format.doi - } - if$ - format.note - end.bibitem -} - -FUNCTION { default.type } { misc } - - -MACRO { jan } { "Jan." } -MACRO { feb } { "Feb." } -MACRO { mar } { "Mar." } -MACRO { apr } { "Apr." } -MACRO { may } { "May" } -MACRO { jun } { "June" } -MACRO { jul } { "July" } -MACRO { aug } { "Aug." } -MACRO { sep } { "Sept." } -MACRO { oct } { "Oct." } -MACRO { nov } { "Nov." } -MACRO { dec } { "Dec." } - -MACRO { acbcct } { "ACS Chem.\ Biol." } -MACRO { achre4 } { "Acc.\ Chem.\ Res." } -MACRO { acncdm } { "ACS Chem.\ Neurosci." } -MACRO { ancac3 } { "ACS Nano" } -MACRO { ancham } { "Anal.\ Chem." } -MACRO { bichaw } { "Biochemistry" } -MACRO { bcches } { "Bioconjugate Chem." } -MACRO { bomaf6 } { "Biomacromolecules" } -MACRO { bipret } { "Biotechnol.\ Prog." } -MACRO { crtoec } { "Chem.\ Res.\ Toxicol." } -MACRO { chreay } { "Chem.\ Rev." } -MACRO { cmatex } { "Chem.\ Mater." } -MACRO { cgdefu } { "Cryst.\ Growth Des." } -MACRO { enfuem } { "Energy Fuels" } -MACRO { esthag } { "Environ.\ Sci.\ Technol." } -MACRO { iechad } { "Ind.\ Eng.\ Chem.\ Res." } -MACRO { inoraj } { "Inorg.\ Chem." } -MACRO { jafcau } { "J.~Agric.\ Food Chem." } -MACRO { jceaax } { "J.~Chem.\ Eng.\ Data" } -MACRO { jceda8 } { "J.~Chem.\ Ed." } -MACRO { jcisd8 } { "J.~Chem.\ Inf.\ Model." } -MACRO { jctcce } { "J.~Chem.\ Theory Comput." } -MACRO { jcchff } { "J. Comb. Chem." } -MACRO { jmcmar } { "J. Med. Chem." } -MACRO { jnprdf } { "J. Nat. Prod." } -MACRO { joceah } { "J.~Org.\ Chem." } -MACRO { jpcafh } { "J.~Phys.\ Chem.~A" } -MACRO { jpcbfk } { "J.~Phys.\ Chem.~B" } -MACRO { jpccck } { "J.~Phys.\ Chem.~C" } -MACRO { jpclcd } { "J.~Phys.\ Chem.\ Lett." } -MACRO { jprobs } { "J.~Proteome Res." } -MACRO { jacsat } { "J.~Am.\ Chem.\ Soc." } -MACRO { langd5 } { "Langmuir" } -MACRO { mamobx } { "Macromolecules" } -MACRO { mpohbp } { "Mol.\ Pharm." } -MACRO { nalefd } { "Nano Lett." } -MACRO { orlef7 } { "Org.\ Lett." } -MACRO { oprdfk } { "Org.\ Proc.\ Res.\ Dev." } -MACRO { orgnd7 } { "Organometallics" } - - -READ - -EXECUTE { initialize.control.values } - -EXECUTE { initialize.count.entries } - -EXECUTE { initialize.name.separator } - -EXECUTE { initialize.tracker } - -ITERATE { calculate.names } - -ITERATE { count.entries } - -EXECUTE { begin.bib } - -ITERATE { call.type$ } - -EXECUTE { end.bib } -%% -%% Originally developed by Mats Dahlgren -%% Copyright (C) 1996-1998 by Mats Dahlgren -%% Copyright (C) 2008-2022 by -%% Joseph Wright -%% -%% Part of this bundle is derived from cite.sty, to which the -%% following license applies: -%% Copyright (C) 1989-2009 by Donald Arseneau -%% These macros may be freely transmitted, reproduced, or -%% modified provided that this notice is left intact. -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% http://www.latex-project.org/lppl.txt -%% -%% This work is "maintained" (as per LPPL maintenance status) by -%% Joseph Wright. -%% -%% This work consists of the files achemso.dtx, -%% achemso-demo.bib and -%% achemso-demo.tex, -%% and the derived files achemso.cls, -%% achemso.ins, -%% achemso.pdf, -%% achemso.sty, -%% natmove.sty and -%% a number of configuration files. -%% -%% -%% End of file `biochem.bst'. diff --git a/_extensions/quarto-journals/acs/doc-class.tex b/_extensions/quarto-journals/acs/doc-class.tex deleted file mode 100644 index 988de81..0000000 --- a/_extensions/quarto-journals/acs/doc-class.tex +++ /dev/null @@ -1,5 +0,0 @@ -\documentclass[journal=$journal.id$,manuscript=$journal.type$$if(journal.layout)$,layout=$journal.layout$$endif$$if(journal.hide-email)$,email=false$endif$]{achemso} -\usepackage[version=3]{mhchem} -\newcommand*\mycommand[1]{\texttt{\emph{#1}}} - - diff --git a/_extensions/quarto-journals/acs/title.tex b/_extensions/quarto-journals/acs/title.tex deleted file mode 100644 index 5ebf2c2..0000000 --- a/_extensions/quarto-journals/acs/title.tex +++ /dev/null @@ -1,40 +0,0 @@ -$for(by-author)$ -\author{$by-author.name.literal$} -$if(by-author.affiliations)$ -$if(by-author.affiliations/first)$ -$for(by-author.affiliations/first)$ -\affiliation{$_affiliation.tex()$} -$endfor$ -$if(by-author.affiliations/rest/first)$ -$for(by-author.affiliations/rest/first)$ -\affiliation{$_affiliation.tex()$} -$endfor$ -$endif$ -$endif$ -$endif$ - -$if(by-author.note.text)$ -\altaffiliation{$by-author.note.text$} -$endif$ - -$if(by-author.email)$ -\email{$by-author.email$} -$endif$ -$if(by-author.phone)$ -\phone{$by-author.phone$} -$endif$ -$if(by-author.fax)$ -\fax{$by-author.fax$} -$endif$ -$endfor$ - -$if(abbr)$ -\abbreviations{$journal.abbreviations$} -$endif$ - -$if(keywords)$ -\keywords{$keywords$} -$endif$ - -\title[$title-short$]{$title$} -\makeatletter \ No newline at end of file diff --git a/figures/demo.RDS b/figures/demo.RDS new file mode 100644 index 0000000000000000000000000000000000000000..0a7f4656e454d64ffd161849e5fcdf9d41ea6b7c GIT binary patch literal 85527 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 z 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 P%=-TWzUn;eH&_V(s8drb literal 0 HcmV?d00001 diff --git a/figures/demo.pdf b/figures/demo.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9feb73874b96623a3d5b960b78b1f4b0b88bd836 GIT binary patch literal 4959 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 D!TI_5 literal 0 HcmV?d00001 diff --git a/figures/demo.svg b/figures/demo.svg new file mode 100644 index 0000000..fff5ed6 --- /dev/null +++ b/figures/demo.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5 +5.0 +7.5 +10.0 + + + + + + + + +2.5 +5.0 +7.5 +10.0 +x +y + + diff --git a/index.qmd b/index.qmd old mode 100644 new mode 100755 index 8651aaf..c04963a --- a/index.qmd +++ b/index.qmd @@ -4,13 +4,10 @@ author: "" engine: knitr --- - ```{r} #| echo: false #| out-width: 100% -#| eval: false -#| include: false -# dwfun::ggsavep("./figures/GA.pdf", loadit = TRUE) +dwfun::ggsavep("./figures/GA20240729.pdf", loadit = TRUE) ```