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: ""
+ # # 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 * "" * t * ">" * '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 * "" * t * ">" * '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 0000000..0a7f465
Binary files /dev/null and b/figures/demo.RDS differ
diff --git a/figures/demo.pdf b/figures/demo.pdf
new file mode 100644
index 0000000..9feb738
Binary files /dev/null and b/figures/demo.pdf differ
diff --git a/figures/demo.png b/figures/demo.png
new file mode 100644
index 0000000..66ebf5b
Binary files /dev/null and b/figures/demo.png differ
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 @@
+
+
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)
```