diff --git a/MS/MS.qmd b/MS/MS.qmd index f2d29f3..1d482c4 100644 --- a/MS/MS.qmd +++ b/MS/MS.qmd @@ -1,33 +1,23 @@ --- msname: MS smname: SM -abstract: ABSTRACT -keywords: - - KEYWORD1 - - KEYWORD2 - - KEYWORD3 -date: last-modified +# abstract: "" +# keywords: +# - KEYWORD1; +# date: last-modified +highlights: "" +date: "" bibliography: [../BB/Ref.bib, ../BB/localRef.bib] # csl: https://www.zotero.org/styles/elsevier-harvard -csl: _extensions/inst/tex/elsevier-harvard.csl +csl: ./_extensions/inst/tex/american-chemical-society.csl +# csl: ./_extensions/inst/tex/nature.csl +# titlegraphical: "../figures/GA.pdf" format: elsevier-html: toc: true css: _extensions/inst/css/style.css keep-md: true - # epub: default - # nature-pdf: - # # journal.cite-style is included in the tex file but ignored by pandoc if - # # cite-method is not `natbib`. - # journal: - # cite-style: sn-nature - # # `citeproc` is the pandoc default. Set `cite-method: natbib` if required - # # to use the bst styles from the upstream template. - # cite-method: natbib - # keep-tex: true - # equal-margins: false - # acs-pdf: - # keep-tex: true + epub: default docx: reference-doc: _extensions/inst/word/MS.docx pdf: @@ -35,11 +25,12 @@ format: latex-clean: false # to keep aux citecolor: blue colorlinks: true - number-sections: true + number-sections: false sansfont: "Gill Sans" papersize: a4paper sansfontoptions: - - Color=39729E + # - Color=39729E + - Color=2A303B mainfont: "Source Sans 3" #| Verdana (fontsize: 11pt) # Source Sans 3 | Times New Roman| Helvetica | PT Sans monofont: "JetBrains Mono" mathfont: "Cambria Math" @@ -48,78 +39,86 @@ format: keep-md: false include-in-header: "./_extensions/inst/tex/header.tex" header-includes: + # - \usepackage{threeparttable} # - \usepackage{fontspec} - - \usepackage{endfloat} + # - \usepackage{endfloat} # - \usepackage[UTF8, scheme=plain]{ctex} - \usepackage{float} - \usepackage[normalem]{ulem} - \usepackage[doublespacing]{setspace} - \usepackage{lineno} - \linenumbers + - \usepackage{caption} + - \captionsetup{singlelinecheck=off} + # elsevier-pdf: + # keep-tex: true + # keep-md: false + # include-in-header: "./_extensions/quarto-journals/elsevier/partials/revision.tex" + # latex-clean: false + # header-includes: + # # - \usepackage{threeparttable} + # # - \usepackage{fontspec} + # # - \usepackage{endfloat} + # - \setmainfont{Calibri} + # - \usepackage[UTF8, scheme=plain]{ctex} + # - \usepackage{float} + # - \usepackage[normalem]{ulem} + # - \usepackage[doublespacing]{setspace} + # - \usepackage{lineno} + # - \linenumbers + # journal: + # # - A comprehensive model was contructed to evaluate the risk of odor occurrences + # # - Turbidity distribution determine underwater light and MIB-producing *Planktothrix* + # # - Increasing flowrate increases turbidity that can control *Planktothrix* and MIB + # # - Odor control based on flow regulation in source water is "green" and fundamental + # formatting: preprint # preprint | review | doublebind + # model: 1p + # cite-style: authoryear + # # graphical-abstract: "![](../figures/GA.pdf)" + # # highlights: filters: - latex-environment - authors-block lightbox: auto commands: [clab] -editor: - markdown: - wrap: sentence --- -::: {.content-visible when-format="html"} -# Color tip {.unnumbered} - -- [Something should be deleted]{.del} -- [Something bad]{.bad} -- [Something good]{.good} -- [Something todo]{.todo} -- [Something should be added]{.add} -- [I am a comment]{.com} -::: - - ```{r} #| include: false #| cache: false + lang <- "en" -RM <- "F" # global rendermode, L: load pdata; F: fast load pdf # nolint isRendering <- isTRUE(getOption("knitr.in.progress")) require(tidyverse) -require(lubridate) -require(patchwork) require(drwateR) +require(patchwork) rmdify::rmd_init() -biburl <- "https://drc.drwater.net/datapool/public/BB/Ref.bib" -if (!isRendering) { - download.file(biburl, destfile = "Ref.bib") -} +dwfun::init() ``` -# Introduction -Blabla. [Bla blaBla blaBla blaBla blaBla bla Bla bla.]{.clab options=r1q0101} +{{< pagebreak >}} -# Materials and methods - -To cite a figure in `SM.qmd`, use this syntax: `r zref("sfg-demofigure")`. - -# Results - -# Discussion - -# Conclusions +# Abstract {-} - +{{< pagebreak >}} -# Acknowledgements {.unnumbered} +{{< include MS_main.qmd >}} +{{< include MS_methods.qmd >}} +{{< include MS_results.qmd >}} + -This work was financially supported by the National Natural Science Foundation of China (52030002, 51878649), and Youth Innovation Promotion Association CAS. +{{< pagebreak >}} -# References {.unnumbered} + -```{r} +# References {-} -``` +::: {#refs} +::: +{{< pagebreak >}} + + diff --git a/MS/MS_main.qmd b/MS/MS_main.qmd new file mode 100644 index 0000000..ad0c6d4 --- /dev/null +++ b/MS/MS_main.qmd @@ -0,0 +1,2 @@ +# Main + diff --git a/MS/MS_methods.qmd b/MS/MS_methods.qmd new file mode 100644 index 0000000..c4c0634 --- /dev/null +++ b/MS/MS_methods.qmd @@ -0,0 +1,2 @@ +# Methods + diff --git a/MS/MS_results.qmd b/MS/MS_results.qmd new file mode 100644 index 0000000..53551ce --- /dev/null +++ b/MS/MS_results.qmd @@ -0,0 +1,2 @@ +# Results + diff --git a/MS/SM.qmd b/MS/SM.qmd index 040c0a3..c3432f5 100644 --- a/MS/SM.qmd +++ b/MS/SM.qmd @@ -1,9 +1,12 @@ --- msname: MS smname: SM -subtitle: Supplementary Material bibliography: [../BB/Ref.bib, ../BB/localRef.bib] -csl: _extensions/inst/tex/elsevier-harvard.csl +# csl: _extensions/inst/tex/elsevier-harvard.csl +# csl: ./_extensions/inst/tex/american-chemical-society.csl +csl: ./_extensions/inst/tex/nature.csl +subtitle: "Supplementary Information" +date: "" format: elsevier-html: css: _extensions/inst/css/style.css @@ -12,23 +15,30 @@ format: pdf: # documentclass: article latex-clean: false # to keep aux + # toc: true + # toc-location: body citecolor: blue colorlinks: true number-sections: false sansfont: "Gill Sans" papersize: a4paper sansfontoptions: - - Color=39729E + # - Color=39729E + - Color=2A303B mainfont: "Source Sans 3" #| Verdana (fontsize: 11pt) # Source Sans 3 | Times New Roman| Helvetica | PT Sans monofont: "JetBrains Mono" mathfont: "Cambria Math" CJKmainfont: SimHei - fontsize: 12pt + fontsize: 11pt keep-md: false + keep-tex: true include-in-header: "./_extensions/inst/tex/header.tex" header-includes: - \let\oldsection\section - \renewcommand{\section}{\clearpage\oldsection} + - \let\oldsubsection\subsection + - \renewcommand{\subsection}{\clearpage\oldsubsection} + # - \renewcommand{\thepage}{S\arabic{page}} # - \usepackage{threeparttable} # - \usepackage{fontspec} # - \usepackage{endfloat} @@ -37,8 +47,8 @@ format: - \usepackage{float} - \usepackage[normalem]{ulem} - \usepackage[doublespacing]{setspace} - - \usepackage{lineno} - - \linenumbers + # - \usepackage{lineno} + # - \linenumbers filters: - latex-environment - authors-block @@ -46,54 +56,58 @@ lightbox: auto commands: [clab] --- +\thispagestyle{empty} ```{r} -#| label: setup #| include: false #| cache: false +options(tinytex.clean = FALSE) lang <- "en" -RM <- "F" # global rendermode, L: load pdata; F: fast load pdf # nolint -isRendering <- isTRUE(getOption("knitr.in.progress")) +RM <- "F" # global rendermode, L: load pdata; F: fast load pdf +isRendering <- isTRUE(getOption('knitr.in.progress')) require(tidyverse) -require(lubridate) require(patchwork) require(drwateR) rmdify::rmd_init() -biburl <- "https://drc.drwater.net/datapool/public/BB/Ref.bib" -if (!isRendering) { download.file(biburl, destfile = "Ref.bib") } ``` -# Supplementary Material {-} - Figures and/or tables are provided below as the supplementary evidences to the main text. +{{< pagebreak >}} -\pagebreak -::: {#sfg-demofigure} - -```{r} -#| out-width: 60% -#| lightbox: -#| group: all - -if (!isRendering) { - - mtcars |> - ggplot(aes(x = wt, y = mpg)) + - geom_point() + - labs(x = "Weight", y = "Miles per Gallon") + - dwfun::theme_sci(3, 3) - - ggsavep("../figures/demofigure.pdf", loadit = FALSE) - -} # End of isrendering - -ggsavep("../figures/demofigure.pdf", loadit = TRUE) +```{=latex} +\clearpage +{ +\hypersetup{linkcolor=black} +\setcounter{tocdepth}{3} +\tableofcontents +} ``` -This is demo figure in supplementary material + +{{< pagebreak >}} + + +::: {#sfg-demo} + +```{r} +#| out-width: "40%" + +if (!isRendering) { + data.frame(x = 1:10, y = 1:10) |> + ggplot(aes(x, y)) + + geom_point() + + theme_sci(3, 2.0) + + ggsavep("../figures/demo.pdf", loadit = FALSE) +} + +ggsavep("../figures/demo", loadit = TRUE) +``` + +Caption of demo figure ::: diff --git a/MS/_nature.qmd b/MS/_nature.qmd new file mode 100644 index 0000000..647da2c --- /dev/null +++ b/MS/_nature.qmd @@ -0,0 +1,23 @@ +# Data availability + +The data that support the findings of this study are available upon request. + +# Code availability + +Analysis scripts are available via GitHub at https://git.drwater.net/. + +# Acknowledgements + +This research was financially supported by the National Natural Science Foundation of China (52030002, W2412156, 51878649) and the National Key R&D Program of China (2022YFC3203603). + +# Author contributions + +J.F. led data curation, methodology development, formal analysis, contributed to manuscript writing. editing, while supporting visualisation. M.S. (Corresponding Author) led conceptualization, formal analysis, and visualization while supporting methodology and co-leading manuscript writing and editing. Y.G., Y.A., and T.C. supported methodology and formal analysis. S.H. provided methodological and analytical support. M.Y. (Corresponding Author) co-led conceptualization and project administration, providing supervision and validation. + +# Competing interests + +The authors declare no competing interests. + +# Additional information + +Correspondence and requests for materials should be addressed to Ming Su or Min Yang. diff --git a/Makefile b/Makefile index b8d41f4..7847a04 100644 --- a/Makefile +++ b/Makefile @@ -150,7 +150,8 @@ pull: else \ echo "尝试将远程main分枝合并至本地$$current_branch 分枝."; \ git pull --rebase origin main; \ - fi + fi; \ + git pull # Pull changes from the main branch pullmain: @@ -161,6 +162,7 @@ pullmain: push: @echo "推送到远程..."; \ + git pull; \ git push filehash: diff --git a/TC/index.qmd b/TC/index.qmd old mode 100644 new mode 100755 index 3ace30c..ca588e6 --- a/TC/index.qmd +++ b/TC/index.qmd @@ -13,13 +13,27 @@ rmdify::rmd_init() #| output: asis data.frame(fn = dir("./", pattern = ".*-.*.docx")) |> # dplyr::mutate(oldfn = gsub("^MS([0-9]*)-([0-9]*)_([a-z0-9]*)-([a-z0-9]*).docx$", "MS\\1_\\3.docx", fn)) |> - dplyr::mutate(newfn = gsub("^MS([0-9]*)-([0-9]*)_([a-z0-9]*)-([a-z0-9]*).docx$", "MS\\2_\\4.docx", fn)) |> + dplyr::mutate( + newfn = gsub( + "^MS([0-9]*)-([0-9]*)_([a-z0-9]*)-([a-z0-9]*).docx$", + "MS\\2_\\4.docx", + fn + ) + ) |> # dplyr::mutate(time1 = lubridate::ymd_hm(gsub("MS([0-9]*)_([a-z0-9]*).docx$", "\\1", oldfn))) |> - dplyr::mutate(time2 = lubridate::ymd_hm(gsub("MS([0-9]*)_([a-z0-9]*).docx$", "\\1", newfn))) |> + dplyr::mutate( + time2 = lubridate::ymd_hm(gsub( + "MS([0-9]*)_([a-z0-9]*).docx$", + "\\1", + newfn + )) + ) |> # dplyr::arrange(dplyr::desc(time2), newfn, dplyr::desc(time1)) |> # dplyr::mutate(htmlstr = paste0("- [**", oldfn, "**](MS/", oldfn, ") ← [**", # newfn, "**](MS/", newfn, ") ⇨ [**", fn, "**](", fn, ")\n\n")) |> - dplyr::mutate(htmlstr = paste0("[- ", time2, ": **", fn, "**](", fn, ")\n\n")) |> + dplyr::mutate( + htmlstr = paste0("[- ", time2, ": **", fn, "**](", fn, ")\n\n") + ) |> dplyr::pull(htmlstr) |> paste(collapse = "") |> cat() diff --git a/_extensions/bootstrap/bootstrap-icons.css b/_extensions/bootstrap/bootstrap-icons.css old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/bootstrap-icons.woff b/_extensions/bootstrap/bootstrap-icons.woff old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/bootstrap.min.css b/_extensions/bootstrap/bootstrap.min.css old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/bootstrap.min.js b/_extensions/bootstrap/bootstrap.min.js old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts.css b/_extensions/bootstrap/googlefonts.css old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lujVj9_mf.woff2 b/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lujVj9_mf.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lujVj9_mf.woff2 b/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lujVj9_mf.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lujVj9_mf.woff2 b/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lujVj9_mf.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lujVj9_mf.woff2 b/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lujVj9_mf.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lujVj9_mf.woff2 b/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lujVj9_mf.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7lujVj9w.woff2 b/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7lujVj9w.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lujVj9_mf.woff2 b/_extensions/bootstrap/googlefonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lujVj9_mf.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu3cOWxw.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu3cOWxw.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu3cOWxw.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu3cOWxw.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxdu3cOWxy40.woff2 b/_extensions/bootstrap/googlefonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxdu3cOWxy40.woff2 old mode 100644 new mode 100755 diff --git a/_extensions/christopherkenny/nature/_extension.yml b/_extensions/christopherkenny/nature/_extension.yml deleted file mode 100644 index 198f085..0000000 --- a/_extensions/christopherkenny/nature/_extension.yml +++ /dev/null @@ -1,27 +0,0 @@ -title: Nature Journal Template -author: Christopher Kenny, Cameron Smith -version: 1.0.1 -quarto-required: ">=1.4.0" -contributes: - formats: - common: - toc: false - biblio-config: false - pdf: - include-in-header: header.tex - format-resources: - - sn-jnl.cls - - sn-apacite.bst - - sn-aps.bst - - sn-basic.bst - - sn-chicago.bst - - sn-mathphys-ay.bst - - sn-mathphys-num.bst - - sn-nature.bst - - sn-vancouver.bst - template-partials: - - "partials/doc-class.tex" - - "partials/title.tex" - - "partials/_author.tex" - - "partials/_affiliation.tex" - - "partials/before-body.tex" diff --git a/_extensions/christopherkenny/nature/csl/nature-no-superscript.csl b/_extensions/christopherkenny/nature/csl/nature-no-superscript.csl deleted file mode 100644 index bba16d5..0000000 --- a/_extensions/christopherkenny/nature/csl/nature-no-superscript.csl +++ /dev/null @@ -1,127 +0,0 @@ - - diff --git a/_extensions/christopherkenny/nature/csl/springer-basic-author-date.csl b/_extensions/christopherkenny/nature/csl/springer-basic-author-date.csl deleted file mode 100644 index e397afa..0000000 --- a/_extensions/christopherkenny/nature/csl/springer-basic-author-date.csl +++ /dev/null @@ -1,239 +0,0 @@ - - diff --git a/_extensions/christopherkenny/nature/csl/springer-basic-brackets-no-et-al.csl b/_extensions/christopherkenny/nature/csl/springer-basic-brackets-no-et-al.csl deleted file mode 100644 index ae783d0..0000000 --- a/_extensions/christopherkenny/nature/csl/springer-basic-brackets-no-et-al.csl +++ /dev/null @@ -1,184 +0,0 @@ - - diff --git a/_extensions/christopherkenny/nature/csl/springer-humanities-author-date.csl b/_extensions/christopherkenny/nature/csl/springer-humanities-author-date.csl deleted file mode 100644 index 6756fe6..0000000 --- a/_extensions/christopherkenny/nature/csl/springer-humanities-author-date.csl +++ /dev/null @@ -1,473 +0,0 @@ - - diff --git a/_extensions/christopherkenny/nature/csl/springer-humanities-brackets.csl b/_extensions/christopherkenny/nature/csl/springer-humanities-brackets.csl deleted file mode 100644 index 1f4d567..0000000 --- a/_extensions/christopherkenny/nature/csl/springer-humanities-brackets.csl +++ /dev/null @@ -1,421 +0,0 @@ - - diff --git a/_extensions/christopherkenny/nature/csl/springer-mathphys-author-date.csl b/_extensions/christopherkenny/nature/csl/springer-mathphys-author-date.csl deleted file mode 100644 index c679bc4..0000000 --- a/_extensions/christopherkenny/nature/csl/springer-mathphys-author-date.csl +++ /dev/null @@ -1,198 +0,0 @@ - - diff --git a/_extensions/christopherkenny/nature/csl/springer-mathphys-brackets.csl b/_extensions/christopherkenny/nature/csl/springer-mathphys-brackets.csl deleted file mode 100644 index e6efba5..0000000 --- a/_extensions/christopherkenny/nature/csl/springer-mathphys-brackets.csl +++ /dev/null @@ -1,152 +0,0 @@ - - diff --git a/_extensions/christopherkenny/nature/csl/springer-vancouver.csl b/_extensions/christopherkenny/nature/csl/springer-vancouver.csl deleted file mode 100644 index 1d032c6..0000000 --- a/_extensions/christopherkenny/nature/csl/springer-vancouver.csl +++ /dev/null @@ -1,179 +0,0 @@ - - diff --git a/_extensions/christopherkenny/nature/header.tex b/_extensions/christopherkenny/nature/header.tex deleted file mode 100644 index 9be6852..0000000 --- a/_extensions/christopherkenny/nature/header.tex +++ /dev/null @@ -1,20 +0,0 @@ -%%%% Standard Packages - -\usepackage{graphicx}% -\usepackage{multirow}% -\usepackage{amsmath,amssymb,amsfonts}% -\usepackage{amsthm}% -\usepackage{mathrsfs}% -\usepackage[title]{appendix}% -\usepackage{xcolor}% -\usepackage{textcomp}% -\usepackage{manyfoot}% -\usepackage{booktabs}% -\usepackage{algorithm}% -\usepackage{algorithmicx}% -\usepackage{algpseudocode}% -\usepackage{listings}% - -%%%% - -\raggedbottom \ No newline at end of file diff --git a/_extensions/christopherkenny/nature/partials/_affiliation.tex b/_extensions/christopherkenny/nature/partials/_affiliation.tex deleted file mode 100644 index 599ce84..0000000 --- a/_extensions/christopherkenny/nature/partials/_affiliation.tex +++ /dev/null @@ -1 +0,0 @@ -$if(it.department)$\orgdiv{$it.department$}$endif$$if(it.name)$, \orgname{$it.name$}$endif$$if(it.address)$, \orgaddress{\street{$it.address$}$if(it.city)$, \city{$it.city$}$endif$$if(it.state)$, \state{$it.state$}$endif$$if(it.postal-code)$, \postcode{$it.postal-code$}$endif$$if(it.country)$, \country{$it.country$}$endif$}$endif$ diff --git a/_extensions/christopherkenny/nature/partials/_author.tex b/_extensions/christopherkenny/nature/partials/_author.tex deleted file mode 100644 index 12e288a..0000000 --- a/_extensions/christopherkenny/nature/partials/_author.tex +++ /dev/null @@ -1 +0,0 @@ -$if(it.name.given)$\fnm{$it.name.given$}$endif$ $if(it.name.family)$\sur{$it.name.family$}$endif$ diff --git a/_extensions/christopherkenny/nature/partials/before-body.tex b/_extensions/christopherkenny/nature/partials/before-body.tex deleted file mode 100644 index a6a514c..0000000 --- a/_extensions/christopherkenny/nature/partials/before-body.tex +++ /dev/null @@ -1,3 +0,0 @@ -$if(title)$ -\maketitle -$endif$ \ No newline at end of file diff --git a/_extensions/christopherkenny/nature/partials/doc-class.tex b/_extensions/christopherkenny/nature/partials/doc-class.tex deleted file mode 100644 index 290ba13..0000000 --- a/_extensions/christopherkenny/nature/partials/doc-class.tex +++ /dev/null @@ -1,17 +0,0 @@ -\documentclass[ -$if(journal.cite-style)$ - $journal.cite-style$, -$else$ - default, -$endif$ -$if(fontsize)$ - $fontsize$, -$endif$ -$for(classoption)$ - $classoption$$sep$, -$endfor$ -]{sn-jnl} - -$if(equal-margins)$ -\setlength\evensidemargin{\oddsidemargin} -$endif$ diff --git a/_extensions/christopherkenny/nature/partials/title.tex b/_extensions/christopherkenny/nature/partials/title.tex deleted file mode 100644 index 4958ac4..0000000 --- a/_extensions/christopherkenny/nature/partials/title.tex +++ /dev/null @@ -1,25 +0,0 @@ -$if(title)$ -\title[$title$]{$title$} -$endif$ - -% author setup -$for(by-author)$ -\author$if(by-author.attributes.corresponding)$*$endif$[$if(by-author.affiliations)$$for(by-author.affiliations)$$it.id$$sep$,$endfor$$endif$]{$_author.tex()$}$if(by-author.email)$ -\email{$by-author.email$}$endif$$if(by-author.attributes.equal-contributor)$ -\equalcont{These authors contributed equally to this work.}$endif$$endfor$ - -% affil setup -$for(by-affiliation)$ -\affil[$it.id$]{$_affiliation.tex()$} -$endfor$ - -% abstract - -$if(abstract)$ -\abstract{$abstract$} -$endif$ - -% keywords -$if(keywords)$ -\keywords{$for(keywords)$$keywords$$sep$, $endfor$} -$endif$ \ No newline at end of file diff --git a/_extensions/christopherkenny/nature/sn-apacite.bst b/_extensions/christopherkenny/nature/sn-apacite.bst deleted file mode 100644 index be1dc53..0000000 --- a/_extensions/christopherkenny/nature/sn-apacite.bst +++ /dev/null @@ -1,5364 +0,0 @@ -%% -%% This is file `apacite.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% apacite.dtx (with options: `bibstyle') -%% -%% This is a generated file. -%% -%% Copyright (C) 1994-2013 Erik Meijer and any individual authors listed -%% elsewhere in this file. -%% -%% This file is part of the `apacite' package. -%% ------------------------------------------- -%% -%% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either -%% version 1.3 of this license or (at your option) any later -%% version. The latest version of this license is in: -%% -%% http://www.latex-project.org/lppl.txt -%% -%% and version 1.3 or later is part of all distributions of -%% LaTeX version 2005/12/01 or later. -%% -%% The `apacite' package consists of the files apacite.dtx and -%% apacite.ins, and the following generated files: -%% apacite.sty, apacdoc.sty, apacite.drv, -%% apacite.bst, apacitex.bst, apacann.bst, apacannx.bst, -%% apa5ex.bib, apacxmpl.tex, -%% english.apc, dutch.apc, finnish.apc, french.apc, -%% german.apc, ngerman.apc, greek.apc, norsk.apc, -%% spanish.apc, swedish.apc. -%% -%% This work has the LPPL maintenance status `maintained' -%% -%% The Current Maintainer of this work is Erik Meijer -%% -%% This file may only be distributed together with a copy of the -%% source files of the apacite package, i.e., apacite.dtx and -%% apacite.ins. You may however distribute the apacite package without -%% the generated files. -%% -%% apacite.bst -%% [2013/07/21 v6.03 APA bibliography style] -%% apacite.bst : reference list according to APA manual -%% Written by Erik Meijer - -FUNCTION {identify.apacite.version} -{ % Put identifying string in the .blg file - "apacite.bst" - " [2013/07/21 v6.03 APA bibliography style]" - * top$ -} -ENTRY - { address - annote - annotate - author - booktitle - chair - chapter - day - doi - edition - editor - englishtitle - firstkey - howpublished - institution - journal - key - keywords - lastchecked - month - nihms - note - number - organization - originaladdress - originalbooktitle - originaledition - originaleditor - originaljournal - originalnumber - originalpages - originalpublisher - originalvolume - originalyear - pages - pmcid - publisher - school - series - symposium - text - title - translator - type - url - urldate - volume - year - eprint - archive - archivePrefix - primaryClass - eid - adsurl - adsnote - version - } - { cite.order %% order of first citation - title.number %% for sorting titles - cite.initials %% dummy (0-1) indicating whether or not - %% initials of the 1st author must - %% be used for citing - cite.num.names.full %% number of names to be cited for full and - cite.num.names.short %% short cite - add.to.year %% For a, b, c, etc. after year - %% in multiple citations with same author-year - } - { year.label %% For sorting entries by year - author.year.sort.label %% For sorting entries and checking whether - %% initials should be added, how many authors - %% should be cited and whether a, b, etc. - %% after year is necessary - title.sort.label %% for sorting titles - citeorder.sort.label %% for sorting by citation order - type.2 %% Replacement for type with misc entries and - %% entries that revert to misc. - } -INTEGERS { len pos name.max old.number numnames numnames.old - nameptr lastname format.num.names cite.initials.old - cite.num.names.old add.to.year.old forward - multiresult dot brace.level - } - -STRINGS { s t u old.label field - aut1f aut1s aut1f.old aut1s.old - aut2 aut2.old - aut3 aut3.old - aut4 aut4.old - aut5 aut5.old - aut6 aut6.old - year.label.old - } -FUNCTION {test} { #0 } -FUNCTION {dump.stack} -{ "---- STACK {" cite$ * "} ----" * top$ - stack$ - "---- END STACK {" cite$ * "} ----" * top$ -} -FUNCTION {make.index} { #0 } -FUNCTION {unsorted} { #0 } -MACRO {jan} {"{\APACmonth{01}}"} -MACRO {feb} {"{\APACmonth{02}}"} -MACRO {mar} {"{\APACmonth{03}}"} -MACRO {apr} {"{\APACmonth{04}}"} -MACRO {may} {"{\APACmonth{05}}"} -MACRO {jun} {"{\APACmonth{06}}"} -MACRO {jul} {"{\APACmonth{07}}"} -MACRO {aug} {"{\APACmonth{08}}"} -MACRO {sep} {"{\APACmonth{09}}"} -MACRO {oct} {"{\APACmonth{10}}"} -MACRO {nov} {"{\APACmonth{11}}"} -MACRO {dec} {"{\APACmonth{12}}"} -MACRO {winter} {"{\APACmonth{13}}"} -MACRO {spring} {"{\APACmonth{14}}"} -MACRO {summer} {"{\APACmonth{15}}"} -MACRO {fall} {"{\APACmonth{16}}"} -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % issues warning if field is empty - % call with - % "field" field warning.if.empty - % Note that the first field must be between quotes - % because it is the fieldname for use in the warning message. - % -FUNCTION {warning.if.empty} -{ empty$ - { "No " swap$ * " in " * cite$ * warning$ } - { pop$ } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % issues warning if title, type, and howpublished are empty - % -FUNCTION {check.relevant.fields} -{ title empty$ - type empty$ and - howpublished empty$ and - { "No title, type, and howpublished in " cite$ * warning$ } - 'skip$ - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % delivers 1 if (both editor and translator - % not empty and not equal to each other) - % 0 if (editor or translator empty) or - % (editor = translator) - % -FUNCTION {editor.ne.trans} -{ translator empty$ - { #0 } - { editor empty$ - { #0 } - { translator editor = - { #0 } - { #1 } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {conv.int.to.str} -{ duplicate$ #10 < - { "0000" swap$ int.to.str$ * } - { duplicate$ #100 < - { "000" swap$ int.to.str$ * } - { duplicate$ #1000 < - { "00" swap$ int.to.str$ * } - { duplicate$ #10000 < - { "0" swap$ int.to.str$ * } - { int.to.str$ } - if$ - } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {ref.type} -{ type$ "article" = - type$ "magazine" = - type$ "newspaper" = - type$ "book" = - type$ "techreport" = - type$ "unpublished" = - type$ "misc" = - type$ "booklet" = - type$ "manual" = - type$ "proceedings" = - or - or - or - or - or - or - or - or - or - { #1 } - { type$ "incollection" = - type$ "phdthesis" = - type$ "mastersthesis" = - type$ "lecture" = - type$ "inbook" = - type$ "inproceedings" = - type$ "conference" = - type$ "intechreport" = - or - or - or - or - or - or - or - { #2 } - { type$ "literal" = - { #3 } - { #0 } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {is.atype} -{ type$ "article" = - type$ "magazine" = - type$ "newspaper" = - type$ "incollection" = - type$ "inbook" = - type$ "inproceedings" = - type$ "conference" = - type$ "intechreport" = - type$ "manual" = - or - or - or - or - or - or - or - or - { #1 } - { journal empty$ not - % - type$ "phdthesis" = - type$ "mastersthesis" = - or - % - and - { #1 } - { type$ "misc" = - type empty$ not and - { type "\bibmessage" = - type "\bibcomputerprogram" = - type "\bibcomputerprogrammanual" = - type "\bibcomputerprogramandmanual" = - type "\bibcomputersoftware" = - type "\bibcomputersoftwaremanual" = - type "\bibcomputersoftwareandmanual" = - type "\bibprogramminglanguage" = - or - or - or - or - or - or - or - { #1 } - { #0 } - if$ - } - { #0 } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % connects two strings with connect string - % if one of them empty, then connect string - % is left out - % - % call with S1 S2 connectstring connect.check - % -FUNCTION {connect.check} -{ 'u := - % - % if S2 = "" - % - duplicate$ empty$ - % - % then remove S2 - % - { pop$ - % - % S1 is on top of stack. - % if it is empty, it is replaced by the empty string "" - % - duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ - } - % - % else swap S1 and S2 so that S1 can be checked - % - { swap$ - % - % if S1 is empty, remove S1 so that S2 is left on the - % stack and is the result is given - % - duplicate$ empty$ - { pop$ } - % - % now the real work starts: - % push the connect string "C" - % so that top of stack is "C" "S1" "S2" - % concatenate, so that top of stack is - % "S1+C" "S2" - % - { u * - % - % swap and concatenate - % - swap$ * - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % connects two strings with space ("\ ") - % if length of second is 4 or larger, - % connects them with non-breaking space ("tie", "~") - % if length of second smaller than 4 - % - % call with S1 S2 tie.or.space.connect - % result: "S1\ S2" or "S1~S2" - % -FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #4 < - { "~" } - { "\ " } - if$ - swap$ * * -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % connects two strings with comma (", ") - % if one of them is empty, the comma is left out - % - % call with S1 S2 connect.with.comma.check - % result: "S1, S2" - % -FUNCTION {connect.with.comma.check} -{ ", " connect.check } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % connects two strings with semicolon ("; ") - % if one of them is empty, semicolon is left out - % - % call with S1 S2 connect.with.semicolon.check - % result: "S1; S2" - % -FUNCTION {connect.with.semicolon.check} -{ "; " connect.check } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % connects two strings with colon (": ") - % if one of them is empty, colon is left out - % - % call with S1 S2 connect.with.colon.check - % result: "S1: S2" - % -FUNCTION {connect.with.colon.check} -{ ": " connect.check } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % connects two strings with space ("\ ") - % - % call with S1 S2 connect.with.space.check - % result: "S1\ S2" - % -FUNCTION {connect.with.space.check} -{ "\ " connect.check } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % encloses string in pre- and postfix string - % call with - % prefix postfix S enclose.check - % delivers empty string if S empty - % -FUNCTION {enclose.check} -{ duplicate$ empty$ - { pop$ pop$ pop$ - "" - } - { swap$ * * } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % emphasizes top of stack - % call with - % "string" emphasize.check - % -FUNCTION {emphasize.check} -{ "\Bem{" swap$ - "}" swap$ - enclose.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % brackets top of stack - % call with - % "string" bracket - % -FUNCTION {bracket.check} -{ "[" swap$ - "]" swap$ - enclose.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % parenthesizes top of stack - % call with - % "string" parenthesize - % -FUNCTION {parenthesize.check} -{ "(" swap$ - ")" swap$ - enclose.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % checks whether argument is "multiresult": - % whether it contains '-', '+', or ',' characters - % used with pages to check whether pp. or p. must be used - % -FUNCTION {multi.result.check} -{ 't := - #0 'multiresult := - % - % while (not multiresult) and (length(t) > 1) do - % - { multiresult not - t text.length$ #1 > - and - } - % - % if t(1-2) = "--" or t(1) = "+" or "," - % then multiresult = 1 - % else t = t(2-last) - % - { t #1 #2 substring$ 's := - "--" s = - { #1 'multiresult := } - { t #1 #1 substring$ 's := - "+" s = - "," s = - or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - if$ - } - while$ - multiresult -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % Checks whether an author is a corporate author, i.e., - % whether the field starts with "{\bibcorporate". - % Call with - % field is.bibcorporate - % -FUNCTION {is.bibcorporate} -{ #1 #14 substring$ "{\bibcorporate" = } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {sortify} -{ purify$ - "l" change.case$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {remove.spaces} -{ % Remove spaces from string. - % Works best if string only contains alphanumeric characters and spaces. - 's := % The original string - s text.length$ 'len := % Its length (no. of characters) - "" 't := % Initialize the transformed string - #0 'pos := - % - % while (pos < len) do - % - { pos len < } - { pos #1 + 'pos := - s pos #1 substring$ 'u := - % - % u is the pos-th character in s - % If it is a space, move to next character, - % else copy character to output. - % - u " " = - 'skip$ - { t u * 't := } - if$ - } - while$ - % - % Now push the result back on the stack - t -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % end block by writing what's left on the stack and - % starting a new line - % -FUNCTION {output.end.block} -{ write$ - newline$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % end block by adding a period and writing what's left - % on the stack and starting a new line - % -FUNCTION {output.dot.end.block} -{ add.period$ - output.end.block -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % starting new block by writing what's left on the stack, - % starting a new line and adding some extra space or - % whatever is more defined in \newblock - % -FUNCTION {output.new.block} -{ output.end.block - "\newblock" write$ newline$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % starting new block by writing what's left on the stack, - % starting a new line and adding some extra space or - % whatever is more defined in \newblock - % -FUNCTION {output.dot.new.block} -{ add.period$ - output.new.block -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {start.new.block} -{ "\unskip\ " write$ newline$ - "\newblock " write$ newline$ -} - -FUNCTION {sort.name.format.classic} { "{ll{}}{ f{}}{ vv{}}{ jj{}}" } - -FUNCTION {cite.name.format.classic} { "{ll}" } - -FUNCTION {author.name.format.classic} { "{ll}{, f{.}.}{ vv}{, jj}" } - -FUNCTION {index.name.format.classic} { "{ll}{, f{.}.}{ vv}{, jj}" } - -FUNCTION {sort.name.format} { "{vv{}}{ll{}}{ f{}}{ jj{}}" } - -FUNCTION {cite.name.format} { "{vv }{ll}" } - -FUNCTION {cite.initials.name.format} { "{f{.}.~~}{vv }{ll}{ jj}" } - -FUNCTION {author.name.format} { "{vv }{ll}{, f{.}.}{, jj}" } - -FUNCTION {editor.name.format} { "{f{.}.~~}{vv }{ll}{ jj}" } - -FUNCTION {index.name.format} { "{vv }{ll}{, f{.}.}{, jj}" } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {init.initials} -{ "yyyyy" 'aut1f.old := - "yyyyy" 'aut1s.old := - #0 'cite.initials.old := -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {update.no.initials} -{ 'field := - field 'aut1f.old := - field 'aut1s.old := - #0 'cite.initials.old := -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {check.add.initials.aut} -{ % - % If last name is equal to previous last name - % but initials are different, then initials should - % be cited. If initials are also the same, initials - % should be cited if that is the case for the previous - % author . - % - aut1s aut1s.old = - { aut1f aut1f.old = - { cite.initials.old 'cite.initials := } - { #1 'cite.initials := - aut1f 'aut1f.old := - aut1s 'aut1s.old := - cite.initials 'cite.initials.old := - } - if$ - } - { % - % Different last name. - aut1f 'aut1f.old := - aut1s 'aut1s.old := - cite.initials 'cite.initials.old := - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {check.add.initials.field} -{ 'field := - field #1 cite.initials.name.format format.name$ 'aut1f := - field #1 cite.name.format format.name$ 'aut1s := - % - % Now do the actual work - % - check.add.initials.aut -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {check.add.initials} -{ % - % Check whether author or editor or other field acts as author. - % Initials are only relevant with author or editor. - % - firstkey empty$ not - { key empty$ not - { % - % Both key and firstkey are nonempty. - % Then, key is treated as last name of first author, - % and firstkey is treated as last name + initials of - % first author . - % - firstkey sortify remove.spaces 'aut1f := - key sortify remove.spaces 'aut1s := - check.add.initials.aut - } - { firstkey sortify remove.spaces update.no.initials } - if$ - } - { key empty$ not - { key sortify remove.spaces update.no.initials } - { % - % No key or firstkey, so find out which field - % to use as author. - % - % Check reference type: - % if result is 1 then possibly editor acts as author - % 2 then editor does not act as author - % 3 then key should have been used - % 0 then unknown reference type - ref.type #2 = - { % - % Format first author with and without initials - author empty$ - { title.sort.label update.no.initials } - { author check.add.initials.field } - if$ - } - { % - % Format first author with and without initials - author empty$ - { editor empty$ - { title.sort.label update.no.initials } - { editor check.add.initials.field } - if$ - } - { author check.add.initials.field } - if$ - } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {tentative.cite.num.names.field} -{ 'field := - field num.names$ 'numnames := - numnames #3 < - { % - % 1 or 2 names: always cite all of them. - numnames 'cite.num.names.full := - numnames 'cite.num.names.short := - } - { numnames #6 < - { % - % 3-5 names: cite all of them the first time, - % only the first name later times - numnames 'cite.num.names.full := - #1 'cite.num.names.short := - } - { % - % 6 or more names: cite only the first name - #1 'cite.num.names.full := - #1 'cite.num.names.short := - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {tentative.cite.num.names} -{ % - % Check whether author or editor or other field acts as author. - % Number of names is only relevant with author or editor. - % - firstkey empty$ not - { - #1 'cite.num.names.full := - #1 'cite.num.names.short := - } - { key empty$ not - { - #1 'cite.num.names.full := - #1 'cite.num.names.short := - } - { % - % No key or firstkey, so find out which field - % to use as author. - % - % Check reference type: - % if result is 1 then possibly editor acts as author - % 2 then editor does not act as author - % 3 then key should have been used - % 0 then unknown reference type - ref.type #2 = - { % - % Format first author with and without initials - author empty$ - { - #1 'cite.num.names.full := - #1 'cite.num.names.short := - } - { author tentative.cite.num.names.field } - if$ - } - { % - % Format first author with and without initials - author empty$ - { editor empty$ - { - #1 'cite.num.names.full := - #1 'cite.num.names.short := - } - { editor tentative.cite.num.names.field } - if$ - } - { author tentative.cite.num.names.field } - if$ - } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {init.cite.num.names} -{ #0 'cite.num.names.old := - #0 'numnames.old := - "yyyy" 'year.label.old := - #0 'add.to.year.old := - "" 'aut1f.old := - "" 'aut2.old := - "" 'aut3.old := - "" 'aut4.old := - "" 'aut5.old := - "" 'aut6.old := -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {update.cite.num.names} -{ cite.num.names.short 'cite.num.names.old := - numnames 'numnames.old := - year.label 'year.label.old := - add.to.year 'add.to.year.old := - aut1f 'aut1f.old := - aut2 'aut2.old := - aut3 'aut3.old := - aut4 'aut4.old := - aut5 'aut5.old := - aut6 'aut6.old := -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {format.6.authors} -{ % - % First author: with initials. - % - field #1 cite.initials.name.format format.name$ 'aut1f := - % - % Second and later authors: without initials. - % - numnames #1 > - name.max #1 > - and - { % - % 2nd author - field #2 cite.name.format format.name$ 'aut2 := - % - numnames #2 > - name.max #2 > - and - { % - % 3nd author - field #3 cite.name.format format.name$ 'aut3 := - % - numnames #3 > - name.max #3 > - and - { % - % 4th author - field #4 cite.name.format format.name$ 'aut4 := - % - numnames #4 > - name.max #4 > - and - { % - % 5th author - field #5 cite.name.format format.name$ 'aut5 := - % - numnames #5 > - name.max #5 > - and - { % - % 6th author - field #6 cite.name.format format.name$ 'aut6 := - } - { % - % 5 authors: 6 is empty - % - "" 'aut6 := - } - if$ - } - { % - % 4 authors: 5-6 are empty - % - "" 'aut5 := - "" 'aut6 := - } - if$ - } - { % - % 3 authors: 4-6 are empty - % - "" 'aut4 := - "" 'aut5 := - "" 'aut6 := - } - if$ - } - { % - % 2 authors: 3-6 are empty - % - "" 'aut3 := - "" 'aut4 := - "" 'aut5 := - "" 'aut6 := - } - if$ - } - { % - % Only 1 author: 2-6 are empty - % - "" 'aut2 := - "" 'aut3 := - "" 'aut4 := - "" 'aut5 := - "" 'aut6 := - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {change.add.to.year} -{ - forward #1 = - { % - % Moving forward: this add.to.year number must be 1 higher than - % previous. - % - add.to.year.old #0 > - { add.to.year.old #1 + 'add.to.year := } - { #2 'add.to.year := } - if$ - } - { % - % Moving backward: this add.to.year number must be 1 lower than - % previous. - % - add.to.year.old #1 - 'add.to.year := - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {definitive.cite.num.names.1.or.2} -{ % - numnames numnames.old = - { % - % Same number of names: ambiguity could arise. Check whether current - % and previous have the same author(s). - % - aut1f aut1f.old = - { % - % Same first author: if the second author is also the same or if - % there is only one author, a's and b's should be added. - % - aut2 aut2.old = - numnames #2 = - and - % - numnames #1 = - or - { % - % Same author(s): add to year. - % - change.add.to.year - } - { % - % Different second author: no ambiguity possible. - % - skip$ - } - if$ - } - { % - % Different first author: no ambiguity possible. - % - skip$ - } - if$ - } - { % - % Different number of names: no ambiguity possible. - % - skip$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {definitive.cite.num.names.3.or.more} -{ % - % Check whether current and previous have the same first author. - % - aut1f aut1f.old = - { % - % Same first author: check second author - % - aut2 aut2.old = - { % - % Same 1st & 2nd author: check 3rd. - % - aut3 aut3.old = - { % - % Same 1st-3rd authors: check 4th. - % - numnames.old #3 = - { numnames #3 = - { % - % Both current and previous have 3 authors, which are - % the same, so both have identical author-year - % combinations, so ambiguity should be resolved by - % a's and b's. Check whether more authors were - % necessary for previous one. - % - change.add.to.year - cite.num.names.short cite.num.names.old < - { cite.num.names.old - 'cite.num.names.short := - } - 'skip$ - if$ - } - { % - % Previous has 3 authors, current has more, with same - % first 3, so at least 4 must be used for current to - % make a difference. - % - cite.num.names.short #4 < - { #4 'cite.num.names.short := } - 'skip$ - if$ - } - if$ - } - { numnames #3 = - { % - % Current has 3 authors, previous has more, with same - % first 3, so all 3 of current must be used. - % - numnames 'cite.num.names.short := - } - { % - % Same 1st-3rd author and both current and previous - % have at least 4 authors: check 4th. - % - aut4 aut4.old = - { % - % Same 1st-4th authors: check 5th. - % - numnames.old #4 = - { numnames #4 = - { % - % Both current and previous have 4 authors, - % which are the same, so both have - % identical author-year combinations, so - % ambiguity should be resolved by a's and - % b's. Check whether more authors were - % necessary for previous one. - % - change.add.to.year - cite.num.names.short cite.num.names.old < - { cite.num.names.old - 'cite.num.names.short := - } - 'skip$ - if$ - } - { % - % Previous has 4 authors, current has more, - % with same first 4, so at least 5 must be - % used for current to make a difference. - % - cite.num.names.short #5 < - { #5 'cite.num.names.short := } - 'skip$ - if$ - } - if$ - } - { numnames #4 = - { % - % Current has 4 authors, previous has more, - % with same first 4, so all 4 of current - % must be used. - % - numnames 'cite.num.names.short := - } - { % - % Same 1st-4th author and both current and - % previous have at least 5 authors: check - % 5th. - % - aut5 aut5.old = - { % - % Same 1st-5th authors: check 6th. - % - numnames.old #5 = - { numnames #5 = - { % - % Both current and previous - % have 5 authors, which are the - % same, so both have identical - % author-year combinations, so - % ambiguity should be resolved - % by a's and b's. Check whether - % more authors were necessary - % for previous one. - % - change.add.to.year - cite.num.names.short - cite.num.names.old < - { cite.num.names.old - 'cite.num.names.short := - } - 'skip$ - if$ - } - { % - % Previous has 5 authors, - % current has more, with same - % first 5, so at least 6 must - % be used for current to make - % a difference. - % - cite.num.names.short #6 < - { #6 'cite.num.names.short := } - 'skip$ - if$ - } - if$ - } - { numnames #5 = - { % - % Current has 5 authors, - % previous has more, with same - % first 5, so all 5 of current - % must be used. - % - numnames 'cite.num.names.short := - } - { % - % Same 1st-5th author and both - % current and previous have at - % least 6 authors. If one has - % 6 authors and the other has - % more or the 6th is different, - % 6 should be used (which is - % the maximum). - % - numnames #6 > - numnames.old #6 = - and - % - numnames #6 = - numnames.old #6 > - and - % - or - % - aut6 aut6.old = - not - % - or - { #6 cite.num.names.short < - { #6 - 'cite.num.names.short - := - } - 'skip$ - if$ - } - { % - % The first 6 authors are - % the same and either both - % have 6 or both have more. - % So for all practical - % purposes they have - % identical author-year - % combination, so ambiguity - % should be resolved by a's - % and b's. Check whether - % more authors were - % necessary for previous - % one. - % - change.add.to.year - cite.num.names.short - cite.num.names.old - < - { cite.num.names.old - 'cite.num.names.short - := - } - 'skip$ - if$ - } - if$ - } - if$ - } - if$ - } - { % - % Different 5th author: citing 5 authors is - % sufficient for this comparison. - % - cite.num.names.short #5 < - { #5 'cite.num.names.short := } - 'skip$ - if$ - } - if$ - } - if$ - } - if$ - } - { % - % Different 4th author: citing 4 authors is - % sufficient for this comparison. - % - cite.num.names.short #4 < - { #4 'cite.num.names.short := } - 'skip$ - if$ - } - if$ - } - if$ - } - if$ - } - { % - % Different 3rd author: citing 3 authors is sufficient for this - % comparison. - % - cite.num.names.short #3 < - { #3 'cite.num.names.short := } - 'skip$ - if$ - } - if$ - } - { % - % Different 2nd author: citing 2 authors is sufficient for this - % comparison. - % - cite.num.names.short #2 < - { #2 'cite.num.names.short := } - 'skip$ - if$ - } - if$ - } - { % - % Different first author: no ambiguity, move to next entry. - % - skip$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {definitive.cite.num.names.field} -{ 'field := - field num.names$ 'numnames := - % - % Format authors - % - format.6.authors - % - % Now compare authors with authors of previous entry. - % - cite.num.names.short numnames.old > - { % - % The previous entry has less authors than already defined - % necessary to be cited. No ambiguity is possible and we're ready. - % - skip$ - } - { % - % Both previous and current entry have at least one author . - % - year.label year.label.old = - { % - % Same year label: possibly ambiguous citation. - % - % First check: current and/or previous have 1 or - % 2 authors. - % - numnames #3 < - numnames.old #3 < - or - % - { definitive.cite.num.names.1.or.2 } - { definitive.cite.num.names.3.or.more } - if$ - } - { % - % Different year label: everything's fine, - % move to next entry. - % - skip$ - } - if$ - } - if$ - % - % If during the previous process the name maximum is exceeded - % (which was not checked), correct this. NOTE: If the name - % maximum is smaller than 6, this could lead to ambiguous - % citations if, e.g., the year and the first 5 authors are - % the same, but the 6th author is different. - % - cite.num.names.short name.max > - { name.max 'cite.num.names.short := } - 'skip$ - if$ - % - % For a "full" cite, the number of names should always be at least - % as large as for a "short" cite. - % - cite.num.names.full cite.num.names.short < - { cite.num.names.short 'cite.num.names.full := } - 'skip$ - if$ - % - % Update "old" variables for next entry. - % - update.cite.num.names -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {definitive.cite.no.names} -{ % - % The formatted field that acts as author is on top - % of the stack. - 'aut1f := - "" 'aut2 := - "" 'aut3 := - "" 'aut4 := - "" 'aut5 := - "" 'aut6 := - #1 'numnames := - % - year.label year.label.old = - { % - % Same year label: possibly ambiguous citation. - % - definitive.cite.num.names.1.or.2 - } - { % - % Different year label: everything's fine, - % move to next entry. - % - skip$ - } - if$ - % - % Update "old" variables for next entry. - % - update.cite.num.names -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {definitive.cite.num.names} -{ % - % Check whether author or editor or other field acts as author. - % Number of names is only relevant with author or editor. - % - firstkey empty$ not - { firstkey sortify remove.spaces definitive.cite.no.names } - { key empty$ not - { key sortify remove.spaces definitive.cite.no.names } - { % - % No key or firstkey, so find out which field - % to use as author. - % - % Check reference type: - % if result is 1 then possibly editor acts as author - % 2 then editor does not act as author - % 3 then key should have been used - % 0 then unknown reference type - ref.type #2 = - { % - % Format first author with and without initials - author empty$ - { title.sort.label definitive.cite.no.names } - { author definitive.cite.num.names.field } - if$ - } - { % - % Format first author with and without initials - author empty$ - { editor empty$ - { title.sort.label definitive.cite.no.names } - { editor definitive.cite.num.names.field } - if$ - } - { author definitive.cite.num.names.field } - if$ - } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.tentative.year.sort.label} -{ % - % Implicit or explicit ``no date'' is put at the front - % (the year zero; years B.C. will imply complications) - % because these are possibly old works. - % ``In press'' is put at the end. - % - year empty$ - { "0000" 'year.label := } - { year "\bibnodate" = - year "l" change.case$ "no date" = or - year "l" change.case$ "n.d." = or - { "0000" 'year.label := } - { year "\BIP" = - year "l" change.case$ "in press" = or - year "l" change.case$ "forthcoming" = or - { "9999" 'year.label := } - { % It is not checked whether the year field - % makes sense. - year sortify remove.spaces 'year.label := - } - if$ - } - if$ - } - if$ - % - % Push year sort label on the stack - year.label -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {month.number.day} -{ month empty$ - { "" } - { month sortify remove.spaces - % - % Add the day when available. - day empty$ - 'skip$ - { "/" * - day sortify remove.spaces * - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.name.sort.label} -{ % - % Author or editor-acting-as-author available. - % => Make tentative "short cite with initials" author - % label (L1) of one of the forms - % "Last1 F1" - % "Last1 F1 Last2" - % "Last1 F1 zzzz" ("zzzz" representing et al.) - % => If more than 2 'authors': make label (L2) for 2nd-6th authors - % of one of the forms - % "Last2 Last3" - % "Last2 Last3 Last4" - % "Last2 Last3 Last4 Last5" - % "Last2 Last3 Last4 Last5 Last6" - % "Last2 Last3 Last4 Last5 Last6 zzzz" - % - % Then format year label (L3) of one of the forms: - % "0000" (missing year or explicit 'no date') - % "9999" ('in press') - % year (otherwise; don't use originalyear here yet) - % - % From earlier sorting of titles, we have title number. Convert - % to string, which gives title label (L4) . - % - % Then tentative sorting label (author.year.sort.label) is a - % concatenation of - % L1 - % " " - % L3 - % " " - % L2 - % " " - % L4 - % - % The name field is on top of the stack. - 'field := - % - % numnames is the total number of names contained in field - field num.names$ 'numnames := - % - % Format first author - field #1 sort.name.format format.name$ - % - % Format the second author if there are two, or else "zzzz" = et al. - numnames #1 = - 'skip$ - { numnames #2 = - { % - % Two authors: format second author - field #2 "{ll{}}" format.name$ 's := - s "others" = - { " zzzz" * } % Add "et al."-substitute - { " " * s * } % Add second author - if$ - } - { " zzzz" * } % 3 or more authors: add "et al."-substitute - if$ - } - if$ - " " * % Add spaces - make.tentative.year.sort.label * % Add year (L3). - " " * % Add spaces - % - % Now build up L2 if applicable - numnames #3 < - 'skip$ - { % - % Treat last author slightly differently - numnames name.max > - { name.max 'lastname := - " zzzz" % Push "et al."-substitute on stack - } - { numnames 'lastname := - "" % Push empty string on stack - } - if$ - % - % Names 2 to "last" - 1 - "" % Push empty string on stack - #2 'nameptr := - { nameptr lastname < } - { % Add name no. nameptr - field nameptr "{ll{}}" format.name$ * - " " * - nameptr #1 + 'nameptr := - } - while$ - % - % "Last" author - field lastname "{ll{}}" format.name$ 's := - s "others" = - { "zzzz" * } % Add "et al."-substitute - { s * } % Add last author - if$ - % - swap$ * % Add the previously formatted empty string or - % "et al."-substitute if there are many authors. - * % Add L2 to the earlier labels. - } - if$ - % - " " * % Add spaces - title.number conv.int.to.str * % Add sorted title number (L4). - sortify % Clean up and convert to lowercase - " " * % Add spaces - month.number.day * % Add month and day when available - 'author.year.sort.label := % Assign result to sort label. -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.field.year.sort.label} -{ % - % 'field' acts as first author (L1), subsequent authors - % are empty (L2). - % - % Then format year label (L3) of one of the forms: - % "0000" (missing year or explicit 'no date') - % "9999" ('in press') - % year (otherwise; don't use originalyear here yet) - % - % From earlier sorting of titles, we have title number. Convert - % to string, which gives title label (L4) . - % - % Then tentative sorting label (author.year.sort.label) is a - % concatenation of - % L1 - % " " - % L3 - % " " - % L2 - % " " - % L4 - % - % 'field' is on top of the stack. It is already supposed to be cleaned - % (i.e., sortified and space-removed), so this is already L1. - " " * % Add spaces to L1 - make.tentative.year.sort.label * % Add year (L3). - " " * % Add spaces - " " * % L2 is empty, add spaces - title.number conv.int.to.str * % Add sorted title number (L4). - sortify % Clean up and convert to lowercase - " " * % Add spaces - month.number.day * % Add month and day when available - 'author.year.sort.label := % Assign result to sort label. -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.author.editor.sort.label} -{ author empty$ - { editor empty$ - { % - % Use what has previously been stored in title.sort.label - % as author substitute . - title.sort.label make.field.year.sort.label - } - { editor make.name.sort.label } - if$ - } - { author make.name.sort.label } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.author.sort.label} -{ author empty$ - { % - % Use what has previously been stored in title.sort.label - % as author substitute . - title.sort.label make.field.year.sort.label - } - { author make.name.sort.label } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.tentative.sort.label} -{ % - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % General strategy: - % - % Ordinary situation: author or editor-acting-as-author - % available. - % => Make tentative "short cite with initials" author - % label (L1) of one of the forms - % "Last1 F1" - % "Last1 F1 Last2" - % "Last1 F1 zzzz" ("zzzz" representing et al.) - % => If more than 2 'authors': make label (L2) for 2nd-6th authors - % of one of the forms - % "Last2 Last3" - % "Last2 Last3 Last4" - % "Last2 Last3 Last4 Last5" - % "Last2 Last3 Last4 Last5 Last6" - % "Last2 Last3 Last4 Last5 Last6 zzzz" - % When key is available (overrules author and editor fields): - % => L1 = key, L2 = "" - % No author, editor, and key: define title or substitute as key - % and format as key. - % - % Then format year label (L3) of one of the forms: - % "0000" (missing year or explicit 'no date') - % "9999" ('in press') - % year (otherwise; don't use originalyear here yet) - % - % From earlier sorting of titles, we have title number. Convert - % to string, which gives title label (L4) . - % - % Then tentative sorting label (author.year.sort.label) is a - % concatenation of - % L1 - % " " - % L3 - % " " - % L2 - % " " - % L4 - % - % This can then be sorted, from which it can be derived - % whether initials are necessary, how many names must - % be used for short and full citations, and whether "a"'s and - % "b"'s etc. are necessary behind the year labels. - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % key and firstkey overrule author information - % - firstkey empty$ not - { key empty$ not - { % - % Both key and firstkey available: - % for sorting and checking initials, treat key as last - % name and firstkey as initials. - % - key sortify remove.spaces - " " * - firstkey sortify remove.spaces * - make.field.year.sort.label - } - { firstkey sortify remove.spaces make.field.year.sort.label } - if$ - } - { key empty$ not - { key sortify remove.spaces make.field.year.sort.label } - { % - % No key or firstkey, so find out which field - % to use as author. - % - % Check reference type: - % if result is 1 then possibly editor acts as author - % 2 then editor does not act as author - % 3 then key should have been used - % 0 then unknown reference type - ref.type - duplicate$ #1 = - { pop$ - make.author.editor.sort.label - } - { duplicate$ #2 = - { pop$ - make.author.sort.label - } - { #3 = - { "no key in " cite$ * warning$ - make.author.editor.sort.label - } - { make.author.editor.sort.label } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - % - author.year.sort.label 'sort.key$ := -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.definitive.name.sort.label} -{ % - % Author or editor-acting-as-author available. - % => Make author-with-initials label (L1) of one of the forms - % "Last1 F1 Last2 F2 ... LastN FN" - % "Last1 F1 Last2 F2 ... Last6 F6 zzzz" - % (where N <= 6 is the total number of authors, and - % "zzzz" represents et al. if there are more than 6 authors) - % No author, editor, and key: define title or substitute as sort key. - % - % The name field is on top of the stack. - 'field := - % - % numnames is the total number of names contained in field - field num.names$ 'numnames := - % - % If there are more than 6 authors, only 6 are mentioned. - numnames name.max > - { name.max 'format.num.names := } - { numnames 'format.num.names := } - if$ - % Initialize stack with empty string - "" - % - % Cycle over authors. - #1 'nameptr := - { nameptr format.num.names < } - { % Format author and add spaces - field nameptr sort.name.format format.name$ * - " " * - nameptr #1 + 'nameptr := - } - while$ - % Format last author that must be formatted - field nameptr sort.name.format format.name$ * - % Add et al. if necessary - nameptr numnames < - { " zzzz" * } - 'skip$ - if$ - sortify % Clean up and change case - " " * % Add spaces - year.label * % Add year - " " * % Add spaces - title.number conv.int.to.str * % Add sorted title number - " " * % Add spaces - month.number.day * % Add month and day when available - 'author.year.sort.label := % Assign result to sort label. -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.definitive.field.year.sort.label} -{ % - % 'field' acts as author (L1). - % - % Then format year label (L2) of one of the forms: - % "0000" (missing year or explicit `no date') - % "9999" (`in press') - % year (otherwise; don't use originalyear here yet) - % - % From earlier sorting of titles, we have title number. Convert - % to string, which gives title label (L3) . - % - % Then tentative sorting label (author.year.sort.label) is a - % concatenation of - % L1 - % " " - % L2 - % " " - % L3 - % - % 'field' is on top of the stack. It is already supposed to be cleaned - % (i.e., sortified and space-removed), so this is already L1. - " " * % Add spaces - year.label * % Add year - " " * % Add spaces - title.number conv.int.to.str * % Add sorted title number - " " * % Add spaces - month.number.day * % Add month and day when available - 'author.year.sort.label := % Assign result to sort label. -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.definitive.author.editor.sort.label} -{ author empty$ - { editor empty$ - { % - % Use what has previously been stored in title.sort.label - % as author substitute . - title.sort.label make.definitive.field.year.sort.label - } - { editor make.definitive.name.sort.label } - if$ - } - { author make.definitive.name.sort.label } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.definitive.author.sort.label} -{ author empty$ - { % - % Use what has previously been stored in title.sort.label - % as author substitute . - title.sort.label make.definitive.field.year.sort.label - } - { author make.definitive.name.sort.label } - if$ -} -FUNCTION {make.final.sort.key} -{ ref.type #2 = - { make.definitive.author.sort.label } - { make.definitive.author.editor.sort.label } - if$ - unsorted - { citeorder.sort.label 'sort.key$ := } - { author.year.sort.label 'sort.key$ := } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - { s } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {chop.articles} -{ 's := - "a " #2 - "an " #3 - "the " #4 - s - chop.word - chop.word - chop.word -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {format.sort.title} -{ % - % Remove non-alphanumeric characters and change to lower case . - sortify - % - % Remove "a ", "an ", and "the " from the front . - chop.articles #1 entry.max$ substring$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.sort.title} -{ title empty$ - { text empty$ - { type empty$ - { howpublished empty$ - { note empty$ - { url empty$ - { " " } - { url format.sort.title } - if$ - } - { note format.sort.title } - if$ - } - { howpublished format.sort.title } - if$ - } - { type format.sort.title } - if$ - } - { text format.sort.title } - if$ - } - { title format.sort.title } - if$ - remove.spaces - 'title.sort.label := - title.sort.label 'sort.key$ := -} -FUNCTION {make.title.number} -{ title.sort.label old.label = - { - old.number 'title.number := - } - { - old.number #1 + 'title.number := - title.number 'old.number := - title.sort.label 'old.label := - } - if$ -} -FUNCTION {make.citeorder.number} -{ old.number #1 + 'cite.order := - cite.order 'old.number := - cite.order conv.int.to.str 'citeorder.sort.label := -} - -FUNCTION {last.part.name.format.classic} { "{ll}" } - -FUNCTION {von.junior.name.format.classic} { "{ vv}{, jj}" } - -FUNCTION {last.part.name.format} { "{vv }{ll}" } - -FUNCTION {initials.with.space.name.format} { "{f.}" } - -FUNCTION {von.last.junior.name.format} { "{vv }{ll}{ jj}" } - -FUNCTION {von.junior.name.format} { "{, jj}" } - -FUNCTION {one.complete.name.format} { "{vv }{ll}{, jj}{, ff}" } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {string.length} -{ #0 'pos := - % If the next character exists, i.e., is not empty, - % add 1 to the string length. - % We cannot use empty$ because " " empty$ is true. - { duplicate$ pos #1 + #1 substring$ "" = not } - { pos #1 + 'pos := } - while$ - pop$ pos -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {transform.spaces.and.hyphens} -{ 's := % The original string - s string.length 'len := % Its length (no. of characters) - "" 't := % Initialize the transformed string - #1 'pos := - #0 'brace.level := - % - % while (pos < len) do - % - { pos len < } - { % First, check whether we are at brace level 0 - brace.level #0 = - { - % At least two characters left: check for ". ", ".~", and ".-". - % If so, replace and shift two positions. - s pos #2 substring$ ". " = - s pos #2 substring$ ".~" = or - { t "." * 't := - pos #2 + 'pos := - } - { s pos #2 substring$ ".-" = - { t "\BHBI " * 't := - pos #2 + 'pos := - } - { % neither is true, copy one character and shift one position - t s pos #1 substring$ * 't := - % Check whether we need to increase brace level. - % Note that this is not sophisticated: it does not capture - % \{, \verb+}+, etc. - % Note also that unbalanced braces cause problems. - s pos #1 substring$ "{" = - { brace.level #1 + 'brace.level := } - 'skip$ - if$ - pos #1 + 'pos := - } - if$ - } - if$ - } - { % Not at brace level 0: copy result literally - t s pos #1 substring$ * 't := - % Check whether we need to increase or decrease brace level. - % Note that this is not sophisticated: it does not capture - % \{, \verb+}+, etc. - s pos #1 substring$ "{" = - { brace.level #1 + 'brace.level := } - { s pos #1 substring$ "}" = - { brace.level #1 - 'brace.level := } - 'skip$ - if$ - } - if$ - pos #1 + 'pos := - } - if$ - } - while$ - % - pos len = - { % Last character, copy - t s pos #1 substring$ * 't := - } - { % pos = len + 1, so s ends with ". " or ".-" - % This should not have happened, but make the best out of it. - % Push last two characters of s on the stack, i.e., ". " or ".-". - s len #1 - #2 substring$ - % Remove "\BPBI " or "\BHBI " from t - t text.length$ 'len := % Length of t (no. of characters) - t #1 len #6 - substring$ - % Concatenate and assign to t - swap$ * 't := - } - if$ - % - % Now push the result back on the stack - t -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {format.initials.with.hyphen} -{ % Format initials. - % Call with - % field authornumber format.initials.with.hyphen - % e.g. - % author #1 format.initials.with.hyphen - % Instead of field, a string may also be used. - % - % First, format initials in the default way, retaining spaces - % and hyphens. - initials.with.space.name.format format.name$ - transform.spaces.and.hyphens -} - -FUNCTION {format.last.part.name} -{ % Format a name with last.part.name.format, - % as part of more complicated things. - % Call with - % field authornumber format.last.part.name - % e.g. - % author #1 format.last.part.name - % Instead of field, a string may also be used. - last.part.name.format format.name$ -} - -FUNCTION {format.von.last.junior.name} -{ % Format a name with von.last.junior.name.format, - % for citing or as part of more complicated things. - % Call with - % field authornumber format.von.last.junior.name - % e.g. - % author #1 format.von.last.junior.name - % Instead of field, a string may also be used. - von.last.junior.name.format format.name$ -} - -FUNCTION {format.von.junior.name} -{ % Format a name with von.last.junior.name.format, - % for citing or as part of more complicated things. - % Call with - % field authornumber format.von.junior.name - % e.g. - % author #1 format.von.junior.name - % Instead of field, a string may also be used. - von.junior.name.format format.name$ -} - -FUNCTION {format.cite.initials.name} -{ % Format a name for citing with initials. - % Call with - % field authornumber format.cite.initials.name - % e.g. - % author #1 format.cite.initials.name - % Instead of field, a string may also be used. - % - % First, extract the complete name, format it in the canonical form, - % and push on the stack. - one.complete.name.format format.name$ - % - % Format the initials and push on the stack. - duplicate$ #1 format.initials.with.hyphen - % - % Format the von-last-junior part and push on the stack. - swap$ #1 format.von.last.junior.name - % - % Connect with "~" hyphen (if they're both non-empty). - "~" connect.check -} - -FUNCTION {format.author.name} -{ % Format an author name for the reference list. - % Call with - % field authornumber format.author.name - % e.g. - % author #1 format.author.name - % Instead of field, a string may also be used. - % - % First, extract the complete name, format it in the canonical form, - % and push on the stack. - one.complete.name.format format.name$ - % - % Make two copies of the name, format the last name and push on the stack. - duplicate$ duplicate$ #1 format.last.part.name - % - % Format the initials and push on the stack. - swap$ #1 format.initials.with.hyphen - % - % Connect with last name. - connect.with.comma.check - % - % Format the von-junior part and connect with initials. - swap$ #1 format.von.junior.name "" connect.check -} - -FUNCTION {format.editor.name} -{ % Format a name for the reference list as an editor. - % Call with - % field authornumber format.editor.name - % e.g. - % author #1 format.editor.name - % Instead of field, a string may also be used. - % - format.cite.initials.name -} - -FUNCTION {format.index.name} -{ % Format an author name for the index. - % Call with - % field authornumber format.index.name - % e.g. - % author #1 format.index.name - % Instead of field, a string may also be used. - % - format.author.name -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -FUNCTION {comma.between.two} { "\BCBT {}" } - -FUNCTION {comma.between.names} { ", " } - -FUNCTION {comma.before.last} { "\BCBL {}" } - -FUNCTION {dots.before.last} { "\BDBL {}" } - -FUNCTION {and.before.last} { "\ \BBA {} " } - -FUNCTION {no.and.before.last} { " " } - -FUNCTION {et.al.string.cite} { "\ \protect \BOthers {.}" } - -FUNCTION {et.al.string} { "\ \BOthers {.}" } - -FUNCTION {et.al.string.period} { "\ \BOthersPeriod {.}" } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {add.name.index} -{ % - % - make.index - { "%" * write$ newline$ - % Check for corporate author - field is.bibcorporate - { "\corporateAX{" } - { "\AX{" } - if$ - write$ - field nameptr sort.name.format format.name$ sortify write$ newline$ - "@" write$ - field nameptr format.index.name - "}%" * write$ newline$ - } - { "%" * write$ newline$ } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.name.cite.label} -{ 'field := - 'format.num.names := - % - field num.names$ 'numnames := % numnames is the total number of names - % contained in field - % - % It is implicit in the APA manual that if "et al." would refer - % to exactly one author, then this author should be named - % instead of "et al." - % - format.num.names numnames #1 - = - { numnames 'format.num.names := } - 'skip$ - if$ - % - % Format first author: with or without initials - % - #1 'nameptr := - cite.initials #1 = - { field nameptr format.cite.initials.name } - { field nameptr cite.name.format format.name$ } - if$ - add.name.index % Add index entry when desired. - % - numnames #1 = - 'skip$ - { format.num.names #1 = - { % - % First author et al. - % - et.al.string.cite write$ - } - { numnames #2 = - { % - % Given that format.num.names > 1, it is 2. - % Format second author. - % - #2 'nameptr := - field nameptr cite.name.format format.name$ 's := - % - % Check if 2nd author is explicit "others". - % If so, insert "et al." string. - % - s "others" = - { et.al.string.cite write$ } % First et al. - { % - % First \& Second - % - and.before.last write$ - s - add.name.index % Add index entry when desired. - } - if$ - } - { % - % 3 or more names, 2 or more must be cited - % - % for nameptr := 2 to format.num.names - 1 do - % - #2 'nameptr := - { nameptr format.num.names < } - { % - % Put comma between consecutive authors - % - comma.between.names write$ - % - % Format and add next author - % - field nameptr cite.name.format format.name$ - add.name.index % Add index entry when desired. - % - % Move to next author - % - nameptr #1 + 'nameptr := - } - while$ - % - % nameptr = format.num.names - % Format this author. - % - field nameptr cite.name.format format.name$ 's := - % - format.num.names numnames = - { % - % This is also the last author. Add (optional) comma. - % - comma.before.last write$ - % - % Check if this author is explicit "others". - % If so, insert "et al." string. - % - s "others" = - { et.al.string.cite write$ } - { and.before.last write$ - s - add.name.index % Add index entry when desired. - } - if$ - } - { % - % This is not the last author. - % Add comma, author name, and "et al." - % - comma.between.names write$ - s - add.name.index % Add index entry when desired. - % - comma.before.last et.al.string.cite * write$ - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.title.cite.label} -{ % - % Formatting: check if formatted as article title or - % as book title, and insert this formatting. - % - is.atype - { "\APACciteatitle {" } - { "\APACcitebtitle {" } - if$ - % - title empty$ - { text empty$ - { type empty$ - { howpublished empty$ - { note empty$ - { url empty$ - { cite$ } - { url } - if$ - } - { note } - if$ - } - { howpublished } - if$ - } - { type } - if$ - } - { text } - if$ - } - { title } - if$ - % - % Connect with formatting. - % - * "}" * - % - % Write to output - % - write$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.author.editor.cite.label} -{ author empty$ - { editor empty$ - { % - % No author or editor: - % Use title or other description as citation label. - % - make.title.cite.label - "}{%" write$ newline$ - make.title.cite.label - } - { cite.num.names.full editor make.name.cite.label - "}{%" write$ newline$ - cite.num.names.short editor make.name.cite.label - } - if$ - } - { cite.num.names.full author make.name.cite.label - "}{%" write$ newline$ - cite.num.names.short author make.name.cite.label - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.author.cite.label} -{ author empty$ - { % - % No author: - % Use title or other description as citation label. - % - make.title.cite.label - "}{%" write$ newline$ - make.title.cite.label - } - { cite.num.names.full author make.name.cite.label - "}{%" write$ newline$ - cite.num.names.short author make.name.cite.label - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.definitive.year.supplement} -{ % - % Add "a", "b", etc. when necessary. - % - add.to.year #0 = - { "" } - { "{\protect " - year empty$ - { "\BCntND " * } - { year "\bibnodate" = - year "l" change.case$ "no date" = or - year "l" change.case$ "n.d." = or - { "\BCntND " * } - { year "\BIP" = - year "l" change.case$ "in press" = or - year "l" change.case$ "forthcoming" = or - { "\BCntIP " * } - { "\BCnt " * } - if$ - } - if$ - } - if$ - "{" * add.to.year int.to.str$ * "}}" * - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {protect.year} -{ year empty$ - { "{\protect \bibnodate {}}" } - { year "\bibnodate" = - year "l" change.case$ "no date" = or - year "l" change.case$ "n.d." = or - { "{\protect \bibnodate {}}" } - { year "\BIP" = - year "l" change.case$ "in press" = or - year "l" change.case$ "forthcoming" = or - { "{\protect \BIP {}}" } - { year } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.definitive.year.label} -{ "{\protect \APACyear {" - originalyear empty$ - { protect.year } - { originalyear "\bibnodate" = % date of original publication unknown - originalyear "l" change.case$ "no date" = or - originalyear "l" change.case$ "n.d." = or - { translator empty$ - { protect.year } - { "{\protect \BTRANSL {}}~" protect.year * } - if$ - } - { year empty$ - { originalyear "/{\protect \bibnodate {}}" * } % 1923/n.d. - { originalyear year = - { protect.year } - { originalyear "/" * protect.year * } % 1923/1961 - if$ - } - if$ - } - if$ - } - if$ - * "}}%" * write$ newline$ - % - % Add "a", "b", etc. when necessary. - % - "{\protect \APACexlab {" "}}" - make.definitive.year.supplement enclose.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {make.cite.labels} -{ newline$ - % - % Write a few lines for testing purposes. - % - test - { "\bibitem [] {} \fullciteA {" cite$ * "}" * write$ newline$ - "\bibitem [] {} \citeA {" cite$ * "}" * write$ newline$ - } - 'skip$ - if$ - % - "\bibitem [\protect \citeauthoryear {%" write$ newline$ - % - % When key or firstkey is available, this takes precedence. - % - firstkey empty$ not - { % - % Full cite: firstkey. - % - firstkey write$ - "}{%" write$ newline$ - % - % Short cite: if key is not empty and cite.initials is 0, - % then key, else firstkey. - % - cite.initials #0 = - key empty$ not - and - { key } - { firstkey } - if$ - write$ - } - { key empty$ not - { % - % No firstkey, but key available: - % Both full and short labels are key. - % - key write$ - "}{%" write$ newline$ - key write$ - } - { % No key or firstkey, so find out which field - % to use as author. - % - % Check reference type: - % if result is 1 then possibly editor acts as author - % 2 then editor does not act as author - % 3 then key should have been used - % 0 then unknown reference type - ref.type #2 = - { make.author.cite.label } - { make.author.editor.cite.label } - if$ - } - if$ - } - if$ - "}{%" write$ newline$ - % - % Make year label that's used for citations - % - make.definitive.year.label write$ - "}]{%" write$ newline$ - cite$ write$ - "} " write$ newline$ - % author.year.sort.label write$ newline$ % for testing purposes - % year.label write$ newline$ % for testing purposes - % - % If the item is used in a meta-analysis, indicate this with - % a star. - % - "\APACinsertmetastar {%" write$ newline$ - cite$ write$ - "}%" write$ newline$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {editor.postfix} -{ editor num.names$ #1 > - { "(\BEDS)" } - { "(\BED)" } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {editor.trans.postfix} -{ editor num.names$ #1 > - { "(\BEDS{} \BAnd{} \BTRANSS)" } - { "(\BED{} \BAnd{} \BTRANS)" } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % "(Trans.)" postfix - % translator must not be empty - % -FUNCTION {trans.postfix} -{ translator num.names$ #1 > - { "(\BTRANSS)" } - { "(\BTRANS)" } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {authors.editors.reflist.apa5} -{ 'field := - 'dot := - % - field num.names$ 'numnames := % numnames is the total number of names - % contained in field - numnames 'format.num.names := % Format all authors - format.num.names name.max > % Unless this exceeds the maximum of 6. - { dot - { name.max 'format.num.names := } % Format 6 authors - { cite.num.names.full 'format.num.names := } % Format 1 editor - if$ - } - 'skip$ - if$ - % - % Enclose authors in APACrefauthors environment to allow crude style - % options in \LaTeX. - "\begin{APACrefauthors}%" - write$ newline$ - % - % It is kind of explicit in the APA manual that if "et al." would - % refer to exactly one author (the 7th), then this author should - % still be replaced by "et al.", unlike with citations. - % So format.num.names is not adapted. - % - % Format first author - % - #1 'nameptr := - field nameptr format.author.name - % - % Add period if required and if this is the only author. - % - numnames #1 = - dot - and - { add.period$ } - 'skip$ - if$ - add.name.index % Add index entry when desired. - % - numnames #1 = - 'skip$ - { format.num.names #1 = - { % - % First author et al. - % - comma.between.two - % - % Add period if required. - % - dot - { et.al.string.period * } - { et.al.string * } - if$ - write$ - } - { numnames #2 = - { % - % Given that format.num.names > 1, it is 2. - % - comma.between.two write$ - % - % Format second author. - % - #2 'nameptr := - field nameptr format.author.name 's := - % - % Check if 2nd author is explicit "others". - % If so, insert "et al." string. - % - s "others" = - { % - % First et al. - % Add period if required. - % - dot - { et.al.string.period } - { et.al.string } - if$ - write$ - } - { % - % First \& Second - % - and.before.last write$ - % - % Add period if required. - % - dot - { s add.period$ } - { s } - if$ - add.name.index % Add index entry when desired. - } - if$ - } - { % - % 3 or more names, 2 or more must be cited - % - % for nameptr := 2 to format.num.names - 1 do - % - #2 'nameptr := - { nameptr format.num.names < } - { % - % Put comma between consecutive authors - % - comma.between.names write$ - % - % Format and add next author - % - field nameptr format.author.name - add.name.index % Add index entry when desired. - % - % Move to next author - % - nameptr #1 + 'nameptr := - } - while$ - % - % nameptr = format.num.names - % Format this author. - % - field nameptr format.author.name 's := - % - format.num.names numnames = - { % - % This is also the last author. Add (optional) comma. - % - comma.before.last write$ - % - % Check if this author is explicit "others". - % If so, insert "et al." string. - % - s "others" = - { % - % Add period if required. - % - dot - { et.al.string.period } - { et.al.string } - if$ - write$ - } - { and.before.last write$ - % - % Add period if required. - % - dot - { s add.period$ } - { s } - if$ - add.name.index % Add index entry when desired. - } - if$ - } - { % - % This is not the last author. - % Add comma, author name, and "et al." - % - comma.between.names write$ - s - add.name.index % Add index entry when desired. - % - comma.before.last - % - % Add period if required. - % - dot - { et.al.string.period * } - { et.al.string * } - if$ - write$ - } - if$ - } - if$ - } - if$ - } - if$ - % - % End APACrefauthors environment. - "\end{APACrefauthors}%" - write$ newline$ -} - -FUNCTION {authors.reflist.apa6} -{ 'field := - 'dot := - field num.names$ 'numnames := - numnames #7 > - { #7 'format.num.names := } - { numnames 'format.num.names := } - if$ - "\begin{APACrefauthors}%" - write$ newline$ - #1 'nameptr := - field nameptr format.author.name - numnames #1 = - { dot - { %add.period$ -} - 'skip$ - if$ - add.name.index - } - { add.name.index - numnames #2 = - { comma.between.two write$ - #2 'nameptr := - field nameptr format.author.name 's := - s "others" = - { "`others' not consistent with 6th ed. of the APA Manual" - warning$ - dot - { et.al.string.period } - { et.al.string } - if$ - write$ newline$ - } - { and.before.last write$ - dot - { s add.period$ } - { s } - if$ - add.name.index - } - if$ - } - { %% for nameptr := 2 to format.num.names - 1 do - #2 'nameptr := - { nameptr format.num.names < } - { comma.between.names write$ - field nameptr format.author.name - add.name.index - nameptr #1 + 'nameptr := - } - while$ - field numnames format.author.name 's := - format.num.names numnames = - { comma.before.last write$ - s "others" = - { "`others' not consistent with 6th ed. of the APA " - "Manual" * - warning$ - dot - { et.al.string.period } - { et.al.string } - if$ - write$ - } - { no.and.before.last write$ - dot - { s add.period$ } - { s } - if$ - add.name.index - } - if$ - } - { dots.before.last write$ - s - add.name.index - } - if$ - } - if$ - } - if$ - "\end{APACrefauthors}%" - write$ newline$ -} - -FUNCTION {format.author.names} -{ 'field := - 'dot := - dot - { dot field authors.reflist.apa6 } - { dot field authors.editors.reflist.apa5 } - if$ -} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {format.authors} -{ #1 author format.author.names } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {format.editors.as.authors} -{ #0 editor format.author.names - "\ " editor.postfix * add.period$ write$ newline$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {format.ed.trans.as.authors} -{ #0 editor format.author.names - "\ " editor.trans.postfix * add.period$ write$ newline$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {format.editor.names} -{ 'field := - % - field num.names$ 'numnames := % numnames is the total number of names - % contained in field - numnames 'format.num.names := % Format all authors - format.num.names name.max > % Unless this exceeds the maximum of 6. - { #1 'format.num.names := } % Then it becomes 1 (First et al.) - 'skip$ - if$ - % - % Format first editor - % - field #1 format.editor.name - % - numnames #1 = - 'skip$ - { format.num.names #1 = - { et.al.string * } % First editor et al., no comma. - { numnames #2 = - { % - % Given that format.num.names > 1, it is 2. - % No comma. Format second editor. - % - field #2 format.editor.name 's := - % - % Check if 2nd editor is explicit "others". - % If so, insert "et al." string. - % - s "others" = - { et.al.string * } % First et al. - { and.before.last * s * } % First \& Second - if$ - } - { % - % 3 or more names, 2 or more must be cited - % - % for nameptr := 2 to format.num.names - 1 do - % - #2 'nameptr := - { nameptr format.num.names < } - { % - % Put comma between consecutive editors - % - comma.between.names * - % - % Format and add next editor - % - field nameptr format.editor.name * - % - % Move to next editor - % - nameptr #1 + 'nameptr := - } - while$ - % - % nameptr = format.num.names - % Format this editor. - % - field nameptr format.editor.name 's := - % - format.num.names numnames = - { % - % This is also the last editor. Add (optional) comma. - % - comma.before.last * - % - % Check if this editor is explicit "others". - % If so, insert "et al." string. - % - s "others" = - { et.al.string * } - { and.before.last * s * } - if$ - } - { % - % This is not the last editor. - % Add comma, editor name, and "et al." - % - comma.between.names * s * - comma.before.last * et.al.string * - } - if$ - } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format editors in case editors do not act as authors - % (such as reference to chapter in edited book) - % - % L. W. Poon (Ed.) (1 editor) - % or - % A. S. Gurman \& D. P. Kniskern (Eds.) (2 editors) - % or - % L. Poon, A. Jones, \& D. P. Smith (Eds.) (>2 editors) - % - % editor must not be empty - % -FUNCTION {format.editors.in.line} -{ editor format.editor.names - editor.postfix connect.with.space.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format editors in case editors are also translators - % and do not act as authors - % (such as reference to chapter in edited book - % of translated articles) - % - % L. W. Poon (Ed. and Trans.) (1 editor) - % or - % A. S. Gurman \& D. P. Kniskern (Eds. and Trans.) (2 editors) - % or - % L. Poon, A. Jones, \& D. P. Smith (Eds. and Trans.) (>2 editors) - % - % editor must not be empty - % -FUNCTION {format.editors.trans.in.line} -{ editor format.editor.names - editor.trans.postfix connect.with.space.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format translators in case translators act as editors - % (such as reference to chapter in translated book) - % - % L. W. Poon (Trans.) (1 translator) - % or - % A. S. Gurman \& D. P. Kniskern (Trans.) (2 translators) - % or - % L. Poon, A. Jones, \& D. P. Smith (Trans.) (>2 translators) - % - % translator must not be empty - % -FUNCTION {format.translators.in.line} -{ translator format.editor.names - trans.postfix connect.with.space.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format translators in case translator does not act as editor - % (such as reference to translated book) - % - % L. Solotaroff, Trans. - % -FUNCTION {format.translators.in.paren.check} -{ translator empty$ - { "" } - { translator format.editor.names - translator num.names$ #1 > - { ", \BTRANSS{}" * } - { ", \BTRANS{}" * } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format editors and translators in case neither act as editor - % (such as reference to edited or translated book with a - % a single author) - % - % L. Solotaroff, Ed. - % L. Solotaroff, Ed. \& Trans. - % L. Solotaroff, Trans. - % L. Solotaroff, Ed. \& S. Prokofieff, Trans. - % -FUNCTION {format.editors.translators.in.paren.check} -{ editor empty$ - { translator empty$ - { "" } - { translator format.editor.names - translator num.names$ #1 > - { ", \BTRANSS{}" * } - { ", \BTRANS{}" * } - if$ - } - if$ - } - { editor format.editor.names - editor num.names$ #1 > - { ", \BEDS{}" * } - { ", \BED{}" * } - if$ - translator empty$ - 'skip$ - { editor translator = - { editor num.names$ #1 > - { " \BAnd{} \BTRANSS" * } - { " \BAnd{} \BTRANS" * } - if$ - } - { " \BAnd{} " * - translator format.editor.names * - translator num.names$ #1 > - { ", \BTRANSS{}" * } - { ", \BTRANS{}" * } - if$ - } - if$ - } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % translator of article - % -FUNCTION {format.atrans.check} -{ format.translators.in.paren.check parenthesize.check } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format "In editor (Ed.), " - % -FUNCTION {format.in.editors} -{ "\BIn{} " - editor empty$ - 'skip$ - { format.editors.in.line * ", " * } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format "In translator (Trans.)," - % -FUNCTION {format.in.trans} -{ "\BIn{} " - translator empty$ - 'skip$ - { format.translators.in.line * ", " * } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format "In editor (Ed. and Trans.)" - % or "In editor (Ed.)" if editor not equal to translator - % -FUNCTION {format.in.editors.trans} -%{ "\BIn{} " Commented by SPI -{ " " - editor empty$ - { translator empty$ - 'skip$ - { format.translators.in.line * ", " * } - if$ - } - { translator empty$ - { format.editors.in.line * } - { editor translator = - { format.editors.trans.in.line * } - { format.editors.in.line * } - if$ - } - if$ - ", " * - } - if$ -} - -FUNCTION {in.format.in.editors.trans} -{ "\BIn{} " - editor empty$ - { translator empty$ - 'skip$ - { format.translators.in.line * ", " * } - if$ - } - { translator empty$ - { format.editors.in.line * } - { editor translator = - { format.editors.trans.in.line * } - { format.editors.in.line * } - if$ - } - if$ - ", " * - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {format.year.check} -{ "\APACrefYear{" - protect.year * - % - % Add "a", "b", etc. when necessary. - % - make.definitive.year.supplement * - "}" * -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -FUNCTION {format.year.month.day.check} -{ "\APACrefYearMonthDay{" - protect.year * - % - % Add "a", "b", etc. when necessary. - % - make.definitive.year.supplement * - "}{" * - % - % Add month and day when present. - % - month empty$ - 'skip$ - { month * } - if$ - "}{" * - day empty$ - 'skip$ - { day * } - if$ - "}" * -} -FUNCTION {format.year.nomonth.day.check} -{ "\APACrefYearMonthDay{" - protect.year * - % - % Add "a", "b", etc. when necessary. - % - make.definitive.year.supplement * - "}{" * - % - % Add month and day when present. - % - month empty$ - 'skip$ - { } - if$ - "}{" * - day empty$ - 'skip$ - { day * } - if$ - "}" * -} - -FUNCTION {format.atitle.no.dot} -{ "{\BBOQ}" swap$ - "{\BBCQ}" swap$ - duplicate$ empty$ - 'skip$ - { duplicate$ - % Two arguments: Title twice: (1) don't change case; (2) change case - "\APACrefatitle {" swap$ * "} {" * swap$ - "t" change.case$ - * "}" * - } - if$ - enclose.check -} - -FUNCTION {format.atitle.dot} -{ "{\BBOQ}" swap$ - "{\BBCQ}" swap$ - duplicate$ empty$ - 'skip$ - { duplicate$ - % Two arguments: Title twice: (1) don't change case; (2) change case - "\APACrefatitle {" swap$ * "} {" * swap$ - "t" change.case$ - * "}" * add.period$ - } - if$ - enclose.check -} - -FUNCTION {format.atitle.connect} -{ swap$ - duplicate$ empty$ - { pop$ - format.atitle.dot - } - { swap$ - format.atitle.no.dot - swap$ connect.with.space.check - add.period$ - } - if$ -} - -FUNCTION {format.btitle.no.dot} -{ duplicate$ empty$ - { pop$ - "" - } - { duplicate$ - % Two arguments: Title twice: (1) don't change case; (2) change case - "\APACrefbtitle {" swap$ * "} {" * swap$ - "t" change.case$ - * "}" * - } - if$ -} - -FUNCTION {format.btitle.dot} -{ duplicate$ empty$ - { pop$ - "" - } - { add.period$ format.btitle.no.dot } - if$ -} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % title of book and similar - % field must be on top of stack - % second element on stack must be connected: - % if that is empty, then btitle.dot - % else btitle.no.dot, connect, and add period - % -FUNCTION {format.btitle.connect} -{ swap$ - duplicate$ empty$ - { pop$ - format.btitle.dot - } - { swap$ - format.btitle.no.dot - swap$ connect.with.space.check - add.period$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % title of book and similar - % field must be on top of stack - % second element on stack must be connected - % -FUNCTION {format.btitle.connect.no.dot} -{ swap$ - duplicate$ empty$ - { pop$ - format.btitle.no.dot - } - { swap$ - format.btitle.no.dot - swap$ connect.with.space.check - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format englishtitle (of nonenglish article, etc.) - % -FUNCTION {format.aetitle.check} -{ englishtitle empty$ - { "" } - { % Two arguments: Title twice: (1) don't change case; (2) change case - "\APACrefaetitle {" englishtitle * "} {" * - englishtitle "t" change.case$ * "}" * - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format englishtitle (of nonenglish book, etc.) - % -FUNCTION {format.betitle.check} -{ englishtitle empty$ - { "" } - { % Two arguments: Title twice: (1) don't change case; (2) change case - "\APACrefbetitle {" englishtitle * "} {" * - englishtitle "t" change.case$ * "}" * - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format type (of article, etc.) - % -FUNCTION {format.atype.check} -{ type bracket.check } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format title and englishtitle (of article, etc.) - % -FUNCTION {format.atitle.check} -{ format.aetitle.check - title format.atitle.connect -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format title, englishtitle, and type - % (of article, etc.) - % -FUNCTION {format.atitle.type.check} -{ format.aetitle.check - format.atype.check connect.with.space.check - title format.atitle.connect -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format title, englishtitle, - % and translator (of article, etc.) - % -FUNCTION {format.atitle.trans.check} -{ format.aetitle.check - format.atrans.check connect.with.space.check - title format.atitle.connect -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format title, englishtitle, type, - % and translator (of article, etc.) - % -FUNCTION {format.atitle.type.trans.check} -{ format.aetitle.check - format.atype.check connect.with.space.check - format.atrans.check connect.with.space.check - title format.atitle.connect -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format journal, volume, number and pages - % call with - % formatted.pages format.journal.vol.num.pages.check - % -FUNCTION { format.journal.vol.num.pages.check } -{ "journal" journal warning.if.empty - duplicate$ empty$ - journal empty$ and - volume empty$ and - number empty$ and - { pop$ "" } - { "\APACjournalVolNumPages{" journal "" connect.check - "}{" * volume "" connect.check - "}{" * number "" connect.check - "}{" * swap$ "" connect.check - ",}" * - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % volume of book, checks whether - % "Volume" or "Volumes" - % - % call with - % field format.bvolume.check - % -FUNCTION {format.bvolume.check} -{ duplicate$ empty$ - 'skip$ - { duplicate$ multi.result.check - { "\BVOLS" swap$ tie.or.space.connect } - { "\BVOL" swap$ tie.or.space.connect } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % edition of book, must not be empty - % call with - % field format.edition.check - % -FUNCTION {format.edition.check} -{ duplicate$ empty$ - 'skip$ - { "\PrintOrdinal{" swap$ * "}" * - "\BEd" connect.with.space.check - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % volume and edition of book - % -FUNCTION {format.bvol.edition.check} -{ edition format.edition.check - volume format.bvolume.check - connect.with.comma.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % volume and edition of book - % -FUNCTION {format.bvol.edition} -{ format.bvol.edition.check - parenthesize.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % volume and edition and translator of translated book - % -FUNCTION {format.bvol.edition.trans} -{ format.bvol.edition.check - format.translators.in.paren.check connect.with.semicolon.check - parenthesize.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % volume, edition, editor, and translator of (translated) book - % -FUNCTION {format.bvol.edition.editor.trans} -{ format.bvol.edition.check - format.editors.translators.in.paren.check connect.with.semicolon.check - parenthesize.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % formats pages by first checking if 1 or more pages - % and prefixing pages with "p." or "pp." (these strings - % are given in the commands \BPG and \BPGS, respectively), - % whichever is applicable, and do a tie or space connect - % - % call with - % field format.bpages.check - % -FUNCTION {format.bpages.check} -{ duplicate$ empty$ - 'skip$ - { duplicate$ multi.result.check - { "\BPGS" swap$ tie.or.space.connect } - { "\BPG~" swap$ * } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % formats chapters by first checking if 1 or more chapters - % and prefixing pages with "chap." (this string - % is given in the commands \BCHAP and \BCHAPS, respectively), - % whichever is applicable, and do a tie or space connect - % - % call with - % field format.bchapter.check - % -FUNCTION {format.bchapter.check} -{ duplicate$ empty$ - 'skip$ - { duplicate$ multi.result.check - { "\BCHAPS" swap$ tie.or.space.connect } - { "\BCHAP" swap$ tie.or.space.connect } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % volume, edition, and pages or chapter of article in book etc. - % -FUNCTION {format.bvol.edition.pages} -{ format.bvol.edition.check - pages empty$ - { chapter format.bchapter.check connect.with.comma.check } - { pages format.bpages.check connect.with.comma.check } - if$ - parenthesize.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % title, volume, edition of book - % -FUNCTION {format.btitle.vol.edition} -{ format.betitle.check - format.bvol.edition connect.with.space.check - title format.btitle.connect.no.dot -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % title, volume, edition, and translator of book - % -FUNCTION {format.btitle.vol.edition.trans} -{ format.betitle.check - format.bvol.edition.trans connect.with.space.check - title format.btitle.connect.no.dot -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % title, volume, edition, editor, and translator of book - % -FUNCTION {format.btitle.vol.edition.editor.trans} -{ format.betitle.check - format.bvol.edition.editor.trans connect.with.space.check - title format.btitle.connect.no.dot -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format address and publisher of book etc. - % - % New York: Wiley - % or - % Wiley (if address empty) - % or - % New York (if publisher empty) - % -FUNCTION {format.address.publisher} -{ % - % If publisher = author or publisher = "author" or publisher = "Author" - % then hand over the final choice how to format this to \LaTeX. - % (I could imagine similar code for editors, but the APA manual does - % not mention it and then we'd have to check whether the editor is in - % the author position, so let's keep it simple until someone complains.) - % - author empty$ - publisher empty$ or - { publisher "\APACaddressPublisher{" } - { author publisher = - "author" publisher = or - "Author" publisher = or - { author "\APACaddressPublisherEqAuth{" } - { publisher "\APACaddressPublisher{" } - if$ - } - if$ - address "" connect.check "}{" * - % Recover publisher that was pushed onto the stack previously. - swap$ "" connect.check "}" * -} - -FUNCTION {format.address.publisher.check} -{ publisher empty$ - address empty$ - and - 'skip$ - { - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.address.publisher - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format number as in reports: No. 2017 - % call with - % field format.rnumber.check - % -FUNCTION {format.rnumber.check} -{ duplicate$ empty$ - 'skip$ - { duplicate$ multi.result.check - { "\BNUMS" swap$ tie.or.space.connect } - { "\BNUM" swap$ tie.or.space.connect } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format type and number of a standalone item - % call with - % format.type.number - % -FUNCTION { format.type.number } -{ type empty$ - { type.2 } - { type } - if$ - number empty$ - { bracket.check } - { number format.rnumber.check connect.with.space.check - parenthesize.check - } - if$ -} - -FUNCTION {format.howpublished} -{ howpublished empty$ - 'skip$ - { % clear the stack - duplicate$ empty$ - 'pop$ - { output.dot.new.block } - if$ - "\APAChowpublished {" howpublished * "}" * - } - if$ -} -FUNCTION {output.howpublished} -{ howpublished empty$ - 'skip$ - { "\APAChowpublished {" howpublished * "}" * - output.dot.new.block - } - if$ -} -FUNCTION {howpublished.block} -{ howpublished empty$ - 'skip$ - { start.new.block - "\APAChowpublished {" howpublished * "}" * - output.dot.end.block - } - if$ -} -FUNCTION {begin.end.url.env} -{ "\begin{APACrefURL} " - lastchecked empty$ - { urldate empty$ - 'skip$ - { "[{" * urldate * "}]" * } - if$ - } - { "[{" * lastchecked * "}]" * } - if$ - " \end{APACrefURL} " -} - -FUNCTION {begin.end.doi.env} -{ "\begin{APACrefDOI} " - " \end{APACrefDOI} " -} - -FUNCTION {begin.end.msg.env} -{ "\begin{APACrefURLmsg} " - " \end{APACrefURLmsg} " -} -FUNCTION {format.url} -{ type.2 empty$ - { begin.end.url.env } - { type.2 "\bibmessage" = - { begin.end.msg.env } - { begin.end.url.env } - if$ - } - if$ -%%"\url{" url * "}" * - "{" url * "}" * - enclose.check -} -FUNCTION {url.block} -{ doi empty$ - { url empty$ - 'skip$ - { start.new.block - format.url - output.end.block - } - if$ - } - 'skip$ - if$ -} -FUNCTION {format.doi} -{ begin.end.doi.env - "\doi{" doi * "}" * - enclose.check -} -FUNCTION {doi.block} -{ doi empty$ - 'skip$ - { start.new.block - format.doi - output.end.block - } - if$ -} -FUNCTION {format.note} -{ "\APACrefnote{" "}" note enclose.check } -FUNCTION {note.block} -{ note empty$ - 'skip$ - { start.new.block - format.note - output.end.block - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format original year of publication and note - % (reprint or translation) - % -FUNCTION {format.orig.year.note} -{ originalyear empty$ - { format.note } - { "\APACorigyearnote{" - originalyear "" connect.check "}{" * - note "" connect.check "}" * - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format original journal of publication and note - % (reprint or translation) - % -FUNCTION {format.orig.journal.note} -{ "\APACorigjournalnote{" - originalyear "" connect.check "}{" * - originaljournal "" connect.check "}{" * - originalvolume "" connect.check "}{" * - originalnumber "" connect.check "}{" * - originalpages "" connect.check "}{" * - note "" connect.check "}" * -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format original book of publication and note - % (reprint or translation) - % -FUNCTION {format.orig.book.note} -{ "\APACorigbooknote{" originalyear "" connect.check "}{" * - % - originaleditor empty$ - 'skip$ - { originaleditor num.names$ #1 > - { "\APACorigEDS {" * originaleditor format.editor.names * "}" * } - { "\APACorigED {" * originaleditor format.editor.names * "}" * } - if$ - } - if$ - % - "}{" * - originalbooktitle format.btitle.no.dot "" connect.check "} {" * - originaledition format.edition.check "" connect.check "} {" * - originalvolume format.bvolume.check "" connect.check "} {" * - originalpages format.bpages.check "" connect.check "} {" * - originaladdress "" connect.check "} {" * - originalpublisher "" connect.check "} {" * - note "" connect.check "}" * -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format information about original publication of reprint - % and format optional note - % -FUNCTION {format.orig.note} -{ originaljournal empty$ - { originalbooktitle empty$ - { note empty$ - { originalyear empty$ - 'skip$ - { originalyear "\bibnodate" = - originalyear "l" change.case$ "no date" = or - originalyear "l" change.case$ "n.d." = or - 'skip$ - { output.new.block - format.orig.year.note - } - if$ - } - if$ - } - { output.new.block - format.orig.year.note - } - if$ - } - { output.new.block - format.orig.book.note - } - if$ - } - { output.new.block - format.orig.journal.note - } - if$ -} -FUNCTION {fin.entry} -{ %doi empty$ - % 'skip$ - % { output.new.block - % format.doi - % } - % if$ - output.end.block - "\PrintBackRefs{\CurrentBib}" write$ newline$ - test - { "\vspace{\baselineskip}" write$ newline$ } - 'skip$ - if$ -} -FUNCTION {fin.entry.2} -{ doi.block - "\PrintBackRefs{\CurrentBib}" write$ newline$ - test - { "\vspace{\baselineskip}" write$ newline$ } - 'skip$ - if$ -} - -FUNCTION {format.archive} -{ - archivePrefix empty$ - { "" } - { archivePrefix ":" *} - if$ -} - -FUNCTION {format.primaryClass} -{ - primaryClass empty$ - { "" } - { " {[" primaryClass * "]}" *} - if$ -} - -FUNCTION {format.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - { "{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {format.softmisc.archive} -{ - archivePrefix empty$ - { "" } - { "" } - if$ -} - -FUNCTION {format.softmisc.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {periodical} -{ - author empty$ - % - % no author: possibly special issue with editors as authors - % (APA manual, ex. 11, p. 121) - % - { editor empty$ - % - % no author or editor: title serves as author. - % title formatted as article title (APA manual not consistent in this, - % compare statement on p. 119: ``treat as book title'' and - % example 8, p. 121: no underlining => article title) - % - { format.atitle.type.trans.check output.new.block - % - % now formatted date on top of stack - % - output.dot.new.block - } - % - % format editor and year, and check if year is present - % format article title and check if title or type present - % - { format.editors.as.authors start.new.block - % - % now formatted date on top of stack - % - output.dot.new.block - format.atitle.type.trans.check output.new.block - } - if$ - } - % - % format author and year, and check if year is present - % format article title and check if title or type present - % - { format.authors start.new.block - % - % now formatted date on top of stack - % - output.dot.new.block - format.atitle.type.trans.check output.new.block - } - if$ - % - % format journal name, volume and issue number, and pages - % and check if journal not empty - % - format.journal.vol.num.pages.check -% output.new.block - doi empty$ - 'skip$ - { output.new.block - format.doi - } - if$ - % - % if not empty, insert howpublished. - % (used if article is retrieved from the internet) - % -% format.howpublished add.period$ - % - % format url - % - url empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.url - } - if$ - % - % possible reprint and optional note - % - format.orig.note - output.new.block - format.eprint - output.new.block - format.primaryClass - fin.entry - } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % journal article - % -FUNCTION {article} -{ pages format.year.month.day.check periodical } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % magazine article - % -FUNCTION {magazine} -{ pages format.year.month.day.check periodical } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % newspaper article - % -FUNCTION {newspaper} -{ pages format.bpages.check format.year.month.day.check periodical } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % (translation of) entire book - % -FUNCTION {book} -{ % - % author or editor, - % year, title, englishtitle, translator - % - author empty$ - % - % no author: possibly edited book with editors as authors - % - { editor empty$ - % - % no author or editor: title serves as author. - % title formatted as book title - % - { format.btitle.vol.edition.trans - format.type.number connect.with.space.check - output.dot.new.block - format.year.check add.period$ - } - % - % format editor and year, and check if year is present - % format booktitle, volume, and edition and check if title present - % - { translator empty$ - { format.editors.as.authors start.new.block - format.year.check output.dot.new.block - format.btitle.vol.edition - } - % - % format translator correctly - % - { translator editor = - not - { format.editors.as.authors start.new.block - format.year.check output.dot.new.block - format.btitle.vol.edition.trans - } - { format.ed.trans.as.authors start.new.block - format.year.check output.dot.new.block - format.btitle.vol.edition - } - if$ - } - if$ - format.type.number connect.with.space.check - add.period$ - } - if$ - } - % - % format author and year, and check if year is present - % format booktitle, volume, and edition and check if title present - % - { format.authors start.new.block - format.year.check output.dot.new.block - format.btitle.vol.edition.editor.trans - format.type.number connect.with.space.check - add.period$ - } - if$ - % - % format address and publisher - % - format.address.publisher.check - % - % if not empty, insert howpublished. - % (used if book is retrieved from the internet) - % - format.howpublished add.period$ - % - % format url - % - url empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.url - } - if$ - % - % format original publication (of reprint/translation) - % and optional note - % - format.orig.note - fin.entry -} -FUNCTION {incollection} -{ author empty$ - { editor.ne.trans - { format.atitle.type.trans.check } - { format.atitle.type.check } - if$ - output.new.block - format.year.month.day.check add.period$ - } - { format.authors start.new.block - format.year.month.day.check output.dot.new.block - editor.ne.trans - { format.atitle.type.trans.check } - { format.atitle.type.check } - if$ - } - if$ - editor empty$ - translator empty$ and - edition empty$ and - volume empty$ and - pages empty$ and - chapter empty$ and - booktitle empty$ and - 'skip$ - { - output.new.block - format.in.editors.trans - format.bvol.edition.pages - booktitle format.btitle.connect * add.period$ - } - if$ - format.address.publisher.check - format.howpublished add.period$ - url empty$ - 'skip$ - { - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.url - } - if$ - format.orig.note - fin.entry -} - -FUNCTION {inbookcollection} -{ author empty$ - { editor.ne.trans - { format.atitle.type.trans.check } - { format.atitle.type.check } - if$ - output.new.block - format.year.month.day.check add.period$ - } - { format.authors start.new.block - format.year.month.day.check output.dot.new.block - editor.ne.trans - { format.atitle.type.trans.check } - { format.atitle.type.check } - if$ - } - if$ - editor empty$ - translator empty$ and - edition empty$ and - volume empty$ and - pages empty$ and - chapter empty$ and - booktitle empty$ and - 'skip$ - { - output.new.block - in.format.in.editors.trans - format.bvol.edition.pages - booktitle format.btitle.connect * add.period$ - } - if$ - format.address.publisher.check - format.howpublished add.period$ - url empty$ - 'skip$ - { - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.url - } - if$ - format.orig.note - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % technical report number - % -FUNCTION {format.tr.number} -{ type empty$ - { "\BTR{}" } - { type "\bibnotype" = - { "" } - { type } - if$ - } - if$ - number format.rnumber.check connect.with.space.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % title, volume, edition, report number - % -FUNCTION {format.tr.title.number} -{ format.betitle.check - % Single out the situation in which there is no number - % and type = {\bibnotype}, i.e., no type as well. - % (Why not use book then?) - type empty$ - { % Now, we're in the regular situation with at least a - % number, a type, a volume, or an edition. - "\APACbVolEdTR{" format.bvol.edition.check * "}{" * - format.tr.number * "}" * - } - { type "\bibnotype" = - number empty$ - volume empty$ - edition empty$ - and - and - and - { "" } - { % Now, we're in the regular situation with at least a - % number, a type, a volume, or an edition. - "\APACbVolEdTR {" format.bvol.edition.check * "}{" * - format.tr.number * "}" * - } - if$ - } - if$ - connect.with.space.check - title format.btitle.connect -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % format address and institution of reports etc. - % - % Washington, DC: National Institute of Education - % or - % National Institute of Education (if address empty) - % - % warning if no institution - % -FUNCTION {format.address.institution.check} -{ url empty$ - doi empty$ and - { "institution" institution warning.if.empty - "address" address warning.if.empty - } - 'skip$ - if$ - institution empty$ - address empty$ - and - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - % - % If institution = author or institution = "author" - % or institution = "Author" then hand over the final choice how to - % format this to \LaTeX. See also format.address.publisher - % - author empty$ - institution empty$ or - { institution "\APACaddressInstitution{" } - { author institution = - "author" institution = or - "Author" institution = or - { author "\APACaddressInstitutionEqAuth{" } - { institution "\APACaddressInstitution{" } - if$ - } - if$ - address "" connect.check "}{" * - % Recover institution that was pushed onto the stack previously. - swap$ "" connect.check "}" * - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % reports - % -FUNCTION {techreport} -{ author empty$ - % - % no author: possibly edited report with editors as authors - % - { editor empty$ - % - % no author or editor: title serves as author. - % title formatted as book title - % - { format.tr.title.number output.dot.new.block - format.year.month.day.check add.period$ - } - % - % format editor and year, and check if year is present - % format report title and check if title present - % format volume, edition, type, and number - % - { format.editors.as.authors start.new.block - format.year.month.day.check output.dot.new.block - format.tr.title.number add.period$ - } - if$ - } - % - % format author and year, and check if year is present - % format report title and check if title present - % format volume, edition, type, and number - % - { format.authors start.new.block - format.year.month.day.check output.dot.new.block - format.tr.title.number add.period$ - } - if$ - % - % format address and institution, check if institution present - % - format.address.institution.check - % - % if not empty, insert howpublished. - % (used if report is retrieved from the internet) - % - format.howpublished add.period$ - % - % format url - % - url empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.url - } - if$ - % - % format optional note - % - note empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.note - } - if$ - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % (translated) article or chapter in report - % -FUNCTION {intechreport} -{ author empty$ - % - % no author: title serves as author. - % title formatted as article title (APA manual not consistent in this, - % compare statement on p. 119: ``treat as book title'' and - % example 8, p. 121: no underlining => article title) - % - { editor.ne.trans - { format.atitle.trans.check } - { format.atitle.check } - if$ - output.new.block - format.year.month.day.check output.dot.new.block - } - % - % format author and year, and check if year is present - % format article title and check if title or type present - % - { format.authors start.new.block - format.year.month.day.check output.dot.new.block - editor.ne.trans - { format.atitle.trans.check } - { format.atitle.check } - if$ - output.new.block - } - if$ - % - % format "In " editor " (Ed. \& Trans.), " - % booktitle, volume, edition, pages - % - format.in.editors.trans - % - % volume, edition, report type and number, pages - % - "\APACbVolEdTRpgs {" format.bvol.edition.check * "} {" * - format.tr.number * - "} {" * pages format.bpages.check * - "}" * - % - booktitle format.btitle.connect * - add.period$ - % - % format address and publisher - % - format.address.institution.check - % - % if not empty, insert howpublished. - % (used if report is retrieved from the internet) - % - format.howpublished add.period$ - % - % format url - % - url empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.url - } - if$ - % - % format original publication (of reprint/translation) - % and optional note - % - format.orig.note - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % papers presented at conferences etc. - % -FUNCTION {lecture} -{ author empty$ - { "author" author warning.if.empty } - { format.authors start.new.block } - if$ - % - % format year, month, and day, and check if year present - % format title and check if title present - % format howpublished and check if howpublished present - % - format.year.month.day.check output.dot.new.block - symposium empty$ - { format.betitle.check - title format.btitle.connect output.new.block - howpublished empty$ - { "symposium and howpublished missing in " cite$ * warning$ - "" - } - { "\APAChowpublished {" howpublished * "}" * } - if$ - address connect.with.comma.check - } - { format.atitle.type.check output.new.block - "\BIn{} " - chair empty$ - 'skip$ - { chair format.editor.names - chair num.names$ #1 > - { "(\BCHAIRS)" } - { "(\BCHAIR)" } - if$ - connect.with.space.check * ", " * - } - if$ - symposium format.btitle.no.dot * - format.howpublished - address connect.with.comma.check - } - if$ - add.period$ - % - % format url - % - url empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.url - } - if$ - % - % format optional note - % - note empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.note - } - if$ - fin.entry -} - -FUNCTION {format.ttitle.type.school} -{ doi empty$ not - url empty$ not or - howpublished empty$ not or - { pop$ } - { swap$ pop$ } - if$ - type empty$ - 'skip$ - { type "\bibnotype" = - { pop$ - "" - } - { pop$ - type - } - if$ - } - if$ - duplicate$ empty$ - doi empty$ - url empty$ and - howpublished empty$ and - address empty$ - school empty$ and or and - { 'pop$ - title empty$ not - englishtitle empty$ not or - { start.new.block } - 'skip$ - if$ - "" - } - { start.new.block - "\APACtypeAddressSchool {" swap$ * "}{" * - doi empty$ - url empty$ and - howpublished empty$ and - { "}{}" * } - { address "" connect.check "}{" * - school "" connect.check "}" * - } - if$ - } - if$ - format.betitle.check swap$ - connect.with.space.check - "title" title warning.if.empty - title format.btitle.connect -} -FUNCTION {unpub.address.school.block} -{ doi empty$ - url empty$ and - howpublished empty$ and - { "school" school warning.if.empty - school empty$ - address empty$ and - 'skip$ - { start.new.block - "\APACaddressSchool {" address "" connect.check "}{" * - school "" connect.check "}" * - output.dot.end.block - } - if$ - } - 'skip$ - if$ -} -FUNCTION {thesis} -{ journal empty$ not - { pop$ pop$ - article - } - { author empty$ - { "author" author warning.if.empty } - { format.authors start.new.block } - if$ - format.year.check output.dot.end.block - format.ttitle.type.school output.dot.end.block - unpub.address.school.block - howpublished.block - url.block - note.block - fin.entry.2 - } - if$ -} -FUNCTION {phdthesis} -{ "\BPhD" "\BUPhD" thesis } -FUNCTION {mastersthesis} -{ "\BMTh" "\BUMTh" thesis } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % title of something (used in unpublished and misc) - % english translation of title - % type and number of something - % -FUNCTION {format.btitle.type.num} -{ format.betitle.check - format.bvol.edition connect.with.space.check - format.type.number - connect.with.space.check - title empty$ - { add.period$ } - { title format.btitle.connect } - if$ -} - -FUNCTION {format.version} -{ - version empty$ - { "" } - { " " * version *} - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % title of message or software-related thing (used in misc) - % english translation of title - % type and number of something - % -FUNCTION {format.mtitle.type.num} -{ format.aetitle.check - format.bvol.edition connect.with.space.check - type.2 "\bibmessage" = - { number empty$ - 'skip$ - { type.2 number tie.or.space.connect - bracket.check - connect.with.space.check - } - if$ - } - { format.type.number - connect.with.space.check - } - if$ - title empty$ - { add.period$ } - { title format.atitle.connect } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % title, english translation of title, - % type and number of something (used in misc) - % -FUNCTION {output.misctitle.type.num} -{ type.2 empty$ - { format.btitle.type.num } - { type.2 "\bibmessage" = - type.2 "\bibcomputerprogram" = or - type.2 "\bibcomputerprogrammanual" = or - type.2 "\bibcomputerprogramandmanual" = or - type.2 "\bibcomputersoftware" = or - type.2 "\bibcomputersoftwaremanual" = or - type.2 "\bibcomputersoftwareandmanual" = or - type.2 "\bibprogramminglanguage" = or - { format.mtitle.type.num } - { format.btitle.type.num } - if$ - } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % unpublished manuscripts, etc. - % -FUNCTION {unpublished} -{ check.relevant.fields - author empty$ - % - % no author: possibly edited book with editors as authors - % - { editor empty$ - % - % no author or editor: title serves as author. - % title formatted as book title - % - { format.btitle.type.num output.new.block - format.year.month.day.check add.period$ - } - % - % format editor and year, and check if year is present - % format book title, volume, and edition and check if title present - % - { format.editors.as.authors start.new.block - format.year.month.day.check output.dot.new.block - format.btitle.type.num - } - if$ - } - % - % format author and year, and check if year is present - % format book title, volume, and edition - % and check if title or type present - % - { format.authors start.new.block - format.year.month.day.check output.dot.new.block - format.btitle.type.num - } - if$ - howpublished empty$ - organization empty$ and - address empty$ and - 'skip$ - { output.new.block - "\APAChowpublished{" "}" howpublished enclose.check - organization connect.with.comma.check - address connect.with.comma.check - add.period$ - } - if$ - % - % format url - % - url empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.url - } - if$ - % - % format optional note - % - note empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.note - } - if$ - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % nonprint media and other things that don't fit - % -FUNCTION {misc} -{ % - % To handle @manual: use type.2 instead of type. - type.2 empty$ - type empty$ not and - { type 'type.2 := } - 'skip$ - if$ - % - author empty$ - % - % no author: possibly edited item with editors as authors - % - { editor empty$ - % - % no author or editor: title/type serves as author. - % title formatted as book title - % - % if no title and no type, howpublished is title - % - { title empty$ - type.2 empty$ and - { howpublished empty$ - { "No author, editor, title, type, and howpublished in " - cite$ * warning$ - "" - } - { "\APAChowpublished{" howpublished * "}" * add.period$ } - if$ - format.year.month.day.check add.period$ - } - { output.misctitle.type.num %output.new.block - format.year.month.day.check add.period$ - format.howpublished add.period$ - } - if$ - } - % - % format editor and year, and check if year is present - % format book title, volume, and edition and check if title present - % - { format.editors.as.authors start.new.block - format.year.month.day.check output.dot.new.block - output.misctitle.type.num output.dot.new.block - format.howpublished add.period$ - } - if$ - } - % - % format author and year, and check if year is present - % format book title, volume, and edition - % and check if title or type present - % - { format.authors start.new.block - format.year.month.day.check output.dot.new.block - output.misctitle.type.num - format.howpublished add.period$ - } - if$ - % - address empty$ - publisher empty$ and - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.address.publisher add.period$ - } - if$ - % - % format url - % - url empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.url - } - if$ - % - % format optional note - % - note empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.note - } - if$ - fin.entry -} - -FUNCTION {softmisc} -{ % - % To handle @manual: use type.2 instead of type. - type.2 empty$ - type empty$ not and - { type 'type.2 := } - 'skip$ - if$ - % - author empty$ - % - % no author: possibly edited item with editors as authors - % - { editor empty$ - % - % no author or editor: title/type serves as author. - % title formatted as book title - % - % if no title and no type, howpublished is title - % - { title empty$ - type.2 empty$ and - { howpublished empty$ - { "No author, editor, title, type, and howpublished in " - cite$ * warning$ - "" - } - { "\APAChowpublished{" howpublished * "}" * add.period$ } - if$ - format.year.month.day.check add.period$ - } - { output.misctitle.type.num %output.new.block - format.year.month.day.check add.period$ - format.howpublished add.period$ - } - if$ - } - % - % format editor and year, and check if year is present - % format book title, volume, and edition and check if title present - % - { format.editors.as.authors start.new.block - format.year.month.day.check output.dot.new.block - output.misctitle.type.num output.dot.new.block - format.howpublished add.period$ - } - if$ - } - % - % format author and year, and check if year is present - % format book title, volume, and edition - % and check if title or type present - % - { format.authors start.new.block - format.year.nomonth.day.check output.dot.new.block - output.misctitle.type.num - format.version - format.howpublished add.period$ - } - if$ - % - address empty$ - publisher empty$ and - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.address.publisher add.period$ - } - if$ - % - % format url - % - url empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.url - } - if$ - % - % format optional note - % - note empty$ - 'skip$ - { % Clear the stack - duplicate$ empty$ - 'skip$ - { output.new.block } - if$ - format.note - } - if$ - output.dot.new.block - format.softmisc.eprint - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % for legal cases and other cases that need to be - % done by hand - % -FUNCTION {literal} -{ "key" key warning.if.empty - "text" text warning.if.empty - text empty$ - { "" } - { text } - if$ - fin.entry -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % technical documentation - % -FUNCTION {manual} -{ % - % If type is empty, assume that it is a computer software manual. - % - type empty$ - { "\bibcomputersoftwaremanual" 'type.2 := } - 'skip$ - if$ - misc -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % booklet - % -FUNCTION {booklet} -{ misc } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % part of a book - % -FUNCTION {inbook} -{ inbookcollection } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % article in proceedings - % -FUNCTION {inproceedings} -{ incollection } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % article in proceedings (Kopka & Daly, 2004, p. 230) - % -FUNCTION {conference} -{ inproceedings } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % proceedings - % -FUNCTION {proceedings} -{ misc } - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % unknown types - % -FUNCTION {default.type} -{ misc } - -FUNCTION {initialize} -{ - #6 'name.max := -%% #250 'entry.max$ := -%% #5000 'global.max$ := -} -FUNCTION {init.old.number} -{ #0 'old.number := } -FUNCTION {init.old.label} -{ "zzzzzz" 'old.label := } -FUNCTION {init.cite.initials.add.to.year} -{ #0 'cite.initials := - #0 'add.to.year := -} -FUNCTION {move.forward} -{ #1 'forward := } -FUNCTION {move.backward} -{ #0 'forward := } -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - "\begin{thebibliography}{}" write$ newline$ - "\renewcommand{\doi}[1]{\url{https://doi.org/#1}}" - write$ newline$ - "\bibcommenthead" write$ newline$ -} -FUNCTION {end.bib} -{ newline$ - "\end{thebibliography}" write$ newline$ -} -FUNCTION {write.bbl.entry} -{ - make.cite.labels - call.type$ -} -READ -EXECUTE { identify.apacite.version } -EXECUTE { initialize } -EXECUTE { init.old.number } -ITERATE { make.citeorder.number } -ITERATE { make.sort.title } -SORT -EXECUTE { init.old.number } -EXECUTE { init.old.label } -ITERATE { make.title.number } -ITERATE { make.tentative.sort.label } -SORT -ITERATE { init.cite.initials.add.to.year } -EXECUTE { init.initials } -ITERATE { check.add.initials } -EXECUTE { init.initials } -REVERSE { check.add.initials } -ITERATE { tentative.cite.num.names } -EXECUTE { init.cite.num.names } -EXECUTE { move.forward } -ITERATE { definitive.cite.num.names } -EXECUTE { init.cite.num.names } -EXECUTE { move.backward } -REVERSE { definitive.cite.num.names } -ITERATE { make.final.sort.key } -SORT -EXECUTE { begin.bib } -ITERATE { write.bbl.entry } -EXECUTE { end.bib } - -%% -%% End of file `apacite.bst'. diff --git a/_extensions/christopherkenny/nature/sn-aps.bst b/_extensions/christopherkenny/nature/sn-aps.bst deleted file mode 100644 index 49cf96b..0000000 --- a/_extensions/christopherkenny/nature/sn-aps.bst +++ /dev/null @@ -1,1533 +0,0 @@ -%% -%% This is file `spphys.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% merlin.mbs (with options: `seq-no,vonx,nm-init,ed-au,yr-par,xmth,jtit-x,jttl-rm,thtit-a,vol-bf,volp-com,jpg-1,pgsep-c,num-xser,ser-vol,ser-ed,jnm-x,pub-date,pre-pub,doi,edpar,edby,fin-bare,pp,ed,abr,ord,jabr,xand,url,url-blk,nfss,') -%% ---------------------------------------- -%%********************************************************************************%% -%% %% -%% For Springer physics publications. Based on the APS reference style. %% -%% Report bugs and improvements to: Joylene Vette-Guillaume or Frank Holzwarth %% -%% Springer-Verlag 2004/10/15 %% -%% %% -%%********************************************************************************%% -%% -%% Copyright 1994-2004 Patrick W Daly - % =============================================================== - % IMPORTANT NOTICE: - % This bibliographic style (bst) file has been generated from one or - % more master bibliographic style (mbs) files, listed above. - % - % This generated file can be redistributed and/or modified under the terms - % of the LaTeX Project Public License Distributed from CTAN - % archives in directory macros/latex/base/lppl.txt; either - % version 1 of the License, or any later version. - % =============================================================== - % Name and version information of the main mbs file: - % \ProvidesFile{merlin.mbs}[2004/02/09 4.13 (PWD, AO, DPC)] - % For use with BibTeX version 0.99a or later - %------------------------------------------------------------------- - % This bibliography style file is intended for texts in ENGLISH - % This is a numerical citation style, and as such is standard LaTeX. - % It requires no extra package to interface to the main text. - % The form of the \bibitem entries is - % \bibitem{key}... - % Usage of \cite is as follows: - % \cite{key} ==>> [#] - % \cite[chap. 2]{key} ==>> [#, chap. 2] - % where # is a number determined by the ordering in the reference list. - % The order in the reference list is that by which the works were originally - % cited in the text, or that in the database. - %--------------------------------------------------------------------- - -ENTRY - { address - author - booktitle - chapter - doi - edition - editor - eid - howpublished - institution - journal - key - keywords - month - note - number - organization - pages - publisher - school - series - title - type - url - volume - year - eprint - archive - archivePrefix - primaryClass - adsurl - adsnote - version - } - {} - { label } -INTEGERS { output.state before.all mid.sentence after.sentence after.block } -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := -} -STRINGS { s t} -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { ", " * write$ } - { output.state after.block = - { add.period$ write$ - newline$ - "\newblock " write$ - } - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - s -} -FUNCTION {output} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull - if$ -} -FUNCTION {output.check} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull - if$ -} -FUNCTION {fin.entry} -{ duplicate$ empty$ - 'pop$ - 'write$ - if$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} -FUNCTION {add.blank} -{ " " * before.all 'output.state := -} - -FUNCTION {add.comma} -{ duplicate$ empty$ - 'skip$ - { "," * add.blank } - if$ -} - -FUNCTION {date.block} -{ - new.block -} - -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} -FUNCTION {new.block.checka} -{ empty$ - 'skip$ - 'new.block - if$ -} -FUNCTION {new.block.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.block - if$ -} -FUNCTION {new.sentence.checka} -{ empty$ - 'skip$ - 'new.sentence - if$ -} -FUNCTION {new.sentence.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.sentence - if$ -} -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} -FUNCTION {emphasize} -{ duplicate$ empty$ - { pop$ "" } - { "\emph{" swap$ * "}" * } - if$ -} -FUNCTION {bolden} -{ duplicate$ empty$ - { pop$ "" } - { "\textbf{" swap$ * "}" * } - if$ -} -FUNCTION {tie.or.space.prefix} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ -} - -FUNCTION {capitalize} -{ "u" change.case$ "t" change.case$ } - -FUNCTION {space.word} -{ " " swap$ * " " * } - % Here are the language-specific definitions for explicit words. - % Each function has a name bbl.xxx where xxx is the English word. - % The language selected here is ENGLISH -FUNCTION {bbl.and} -{ "and"} - -FUNCTION {bbl.etal} -{ "et~al." } - -FUNCTION {bbl.editors} -{ "eds." } - -FUNCTION {bbl.editor} -{ "ed." } - -FUNCTION {bbl.edby} -{ "ed. by" } - -FUNCTION {bbl.edition} -{ "edn." } - -FUNCTION {bbl.volume} -{ "vol." } - -FUNCTION {bbl.of} -{ "of" } - -FUNCTION {bbl.number} -{ "no." } - -FUNCTION {bbl.nr} -{ "no." } - -FUNCTION {bbl.in} -{ "in" } - -FUNCTION {bbl.pages} -{ "pp." } - -FUNCTION {bbl.page} -{ "p." } - -FUNCTION {bbl.chapter} -{ "chap." } - -FUNCTION {bbl.techrep} -{ "Tech. Rep." } - -FUNCTION {bbl.mthesis} -{ "Master's thesis" } - -FUNCTION {bbl.phdthesis} -{ "Ph.D. thesis" } - -FUNCTION {bbl.first} -{ "1st" } - -FUNCTION {bbl.second} -{ "2nd" } - -FUNCTION {bbl.third} -{ "3rd" } - -FUNCTION {bbl.fourth} -{ "4th" } - -FUNCTION {bbl.fifth} -{ "5th" } - -FUNCTION {bbl.st} -{ "st" } - -FUNCTION {bbl.nd} -{ "nd" } - -FUNCTION {bbl.rd} -{ "rd" } - -FUNCTION {bbl.th} -{ "th" } - -MACRO {jan} {"Jan."} - -MACRO {feb} {"Feb."} - -MACRO {mar} {"Mar."} - -MACRO {apr} {"Apr."} - -MACRO {may} {"May"} - -MACRO {jun} {"Jun."} - -MACRO {jul} {"Jul."} - -MACRO {aug} {"Aug."} - -MACRO {sep} {"Sep."} - -MACRO {oct} {"Oct."} - -MACRO {nov} {"Nov."} - -MACRO {dec} {"Dec."} - -FUNCTION {eng.ord} -{ duplicate$ "1" swap$ * - #-2 #1 substring$ "1" = - { bbl.th * } - { duplicate$ #-1 #1 substring$ - duplicate$ "1" = - { pop$ bbl.st * } - { duplicate$ "2" = - { pop$ bbl.nd * } - { "3" = - { bbl.rd * } - { bbl.th * } - if$ - } - if$ - } - if$ - } - if$ -} - -MACRO {acmcs} {"ACM Comput. Surv."} - -MACRO {acta} {"Acta Inf."} - -MACRO {cacm} {"Commun. ACM"} - -MACRO {ibmjrd} {"IBM J. Res. Dev."} - -MACRO {ibmsj} {"IBM Syst.~J."} - -MACRO {ieeese} {"IEEE Trans. Software Eng."} - -MACRO {ieeetc} {"IEEE Trans. Comput."} - -MACRO {ieeetcad} - {"IEEE Trans. Comput. Aid. Des."} - -MACRO {ipl} {"Inf. Process. Lett."} - -MACRO {jacm} {"J.~ACM"} - -MACRO {jcss} {"J.~Comput. Syst. Sci."} - -MACRO {scp} {"Sci. Comput. Program."} - -MACRO {sicomp} {"SIAM J. Comput."} - -MACRO {tocs} {"ACM Trans. Comput. Syst."} - -MACRO {tods} {"ACM Trans. Database Syst."} - -MACRO {tog} {"ACM Trans. Graphic."} - -MACRO {toms} {"ACM Trans. Math. Software"} - -MACRO {toois} {"ACM Trans. Office Inf. Syst."} - -MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."} - -MACRO {tcs} {"Theor. Comput. Sci."} - -FUNCTION {bibinfo.check} -{ swap$ - duplicate$ missing$ - { - pop$ pop$ - "" - } - { duplicate$ empty$ - { - swap$ pop$ - } - { swap$ - pop$ - } - if$ - } - if$ -} -FUNCTION {bibinfo.warn} -{ swap$ - duplicate$ missing$ - { - swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ - "" - } - { duplicate$ empty$ - { - swap$ "empty " swap$ * " in " * cite$ * warning$ - } - { swap$ - pop$ - } - if$ - } - if$ -} -FUNCTION {format.url} -{ url empty$ - { "" } - { "\urlprefix\url{" url * "}" * } - if$ -} - -STRINGS { bibinfo} -INTEGERS { nameptr namesleft numnames } - -FUNCTION {format.names} -{ 'bibinfo := - duplicate$ empty$ 'skip$ { - 's := - "" 't := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{f{.}.~}{vv~}{ll}{, jj}" - format.name$ - bibinfo bibinfo.check - 't := - nameptr #1 > - { - namesleft #1 > - { ", " * t * } - { - "," * - s nameptr "{ll}" format.name$ duplicate$ "others" = - { 't := } - { pop$ } - if$ - t "others" = - { - " " * bbl.etal * - } - { " " * t * } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - } if$ -} -FUNCTION {format.names.ed} -{ - format.names -} -FUNCTION {format.authors} -{ author "author" format.names -} -FUNCTION {get.bbl.editor} -{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } - -FUNCTION {format.editors} -{ editor "editor" format.names duplicate$ empty$ 'skip$ - { - " " * - get.bbl.editor - "(" swap$ * ")" * - * - } - if$ -} -FUNCTION {format.doi} -{ doi "doi" bibinfo.check - duplicate$ empty$ 'skip$ - { - new.block - "\doi{" swap$ * "}" * - } - if$ -} -FUNCTION {format.note} -{ - note empty$ - { "" } - { note #1 #1 substring$ - duplicate$ "{" = - 'skip$ - { output.state mid.sentence = - { "l" } - { "u" } - if$ - change.case$ - } - if$ - note #2 global.max$ substring$ * "note" bibinfo.check - } - if$ -} - -FUNCTION {format.title} -{ title - duplicate$ empty$ 'skip$ - { "t" change.case$ } - if$ - "title" bibinfo.check -} -FUNCTION {output.bibitem} -{ newline$ - "\bibitem{" write$ - cite$ write$ - "}" write$ - newline$ - "" - before.all 'output.state := -} - -FUNCTION {if.digit} -{ duplicate$ "0" = - swap$ duplicate$ "1" = - swap$ duplicate$ "2" = - swap$ duplicate$ "3" = - swap$ duplicate$ "4" = - swap$ duplicate$ "5" = - swap$ duplicate$ "6" = - swap$ duplicate$ "7" = - swap$ duplicate$ "8" = - swap$ "9" = or or or or or or or or or -} -FUNCTION {n.separate} -{ 't := - "" - #0 'numnames := - { t empty$ not } - { t #-1 #1 substring$ if.digit - { numnames #1 + 'numnames := } - { #0 'numnames := } - if$ - t #-1 #1 substring$ swap$ * - t #-2 global.max$ substring$ 't := - numnames #5 = - { duplicate$ #1 #2 substring$ swap$ - #3 global.max$ substring$ - "," swap$ * * - } - 'skip$ - if$ - } - while$ -} -FUNCTION {n.dashify} -{ -%% n.separate - 't := - "" - { t empty$ not } - { t #1 #1 substring$ "-" = - { t #1 #2 substring$ "--" = not - { "--" * - t #2 global.max$ substring$ 't := - } - { { t #1 #1 substring$ "-" = } - { "-" * - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -FUNCTION {word.in} -{ bbl.in - " " * } - -FUNCTION {format.date} -{ - "" - duplicate$ empty$ - year "year" bibinfo.check duplicate$ empty$ - { swap$ 'skip$ - { "there's a month but no year in " cite$ * warning$ } - if$ - * - } - { swap$ 'skip$ - { - swap$ - " " * swap$ - } - if$ - * - } - if$ - duplicate$ empty$ - 'skip$ - { - before.all 'output.state := - " (" swap$ * ")" * - } - if$ -} -FUNCTION {format.btitle} -{ title "title" bibinfo.check - duplicate$ empty$ 'skip$ - { - emphasize - } - if$ -} -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "can't use both " swap$ * " fields in " * cite$ * warning$ } - if$ -} -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bbl.volume volume tie.or.space.prefix - "volume" bibinfo.check * * - series "series" bibinfo.check - duplicate$ empty$ 'pop$ - { emphasize ", " * swap$ * } - if$ - "volume and number" number either.or.check - } - if$ -} -FUNCTION {format.number.series} -{ volume empty$ - { number empty$ - { series field.or.null } - { series empty$ - { number "number" bibinfo.check } - { output.state mid.sentence = - { bbl.number } - { bbl.number capitalize } - if$ - number tie.or.space.prefix "number" bibinfo.check * * - bbl.in space.word * - series "series" bibinfo.check * - } - if$ - } - if$ - } - { "" } - if$ -} -FUNCTION {is.num} -{ chr.to.int$ - duplicate$ "0" chr.to.int$ < not - swap$ "9" chr.to.int$ > not and -} - -FUNCTION {extract.num} -{ duplicate$ 't := - "" 's := - { t empty$ not } - { t #1 #1 substring$ - t #2 global.max$ substring$ 't := - duplicate$ is.num - { s swap$ * 's := } - { pop$ "" 't := } - if$ - } - while$ - s empty$ - 'skip$ - { pop$ s } - if$ -} - -FUNCTION {convert.edition} -{ extract.num "l" change.case$ 's := - s "first" = s "1" = or - { bbl.first 't := } - { s "second" = s "2" = or - { bbl.second 't := } - { s "third" = s "3" = or - { bbl.third 't := } - { s "fourth" = s "4" = or - { bbl.fourth 't := } - { s "fifth" = s "5" = or - { bbl.fifth 't := } - { s #1 #1 substring$ is.num - { s eng.ord 't := } - { edition 't := } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - t -} - -FUNCTION {format.edition} -{ edition duplicate$ empty$ 'skip$ - { - convert.edition - output.state mid.sentence = - { "l" } - { "t" } - if$ change.case$ - "edition" bibinfo.check - " " * bbl.edition * - } - if$ -} -INTEGERS { multiresult } -FUNCTION {multi.page.check} -{ 't := - #0 'multiresult := - { multiresult not - t empty$ not - and - } - { t #1 #1 substring$ - duplicate$ "-" = - swap$ duplicate$ "," = - swap$ "+" = - or or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - multiresult -} -FUNCTION {format.pages} -{ pages duplicate$ empty$ 'skip$ - { duplicate$ multi.page.check - { - bbl.pages swap$ - n.dashify - } - { - bbl.page swap$ - } - if$ - tie.or.space.prefix - "pages" bibinfo.check - * * - } - if$ -} -FUNCTION {first.page} -{ 't := - "" - { t empty$ not t #1 #1 substring$ "-" = not and } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - while$ -} - -FUNCTION {format.journal.pages} -{ pages duplicate$ empty$ 'pop$ - { swap$ duplicate$ empty$ - { pop$ pop$ format.pages } - { - ", " * - swap$ - n.dashify - "pages" bibinfo.check - * - } - if$ - } - if$ -} -FUNCTION {format.journal.eid} -{ eid "eid" bibinfo.check - duplicate$ empty$ 'pop$ - { swap$ duplicate$ empty$ 'skip$ - { - ", " * - } - if$ - swap$ * - } - if$ -} -FUNCTION {format.vol.num.pages} -{ volume field.or.null - duplicate$ empty$ 'skip$ - { - "volume" bibinfo.check - } - if$ - bolden - number "number" bibinfo.check duplicate$ empty$ 'skip$ - { - swap$ duplicate$ empty$ - { "there's a number but no volume in " cite$ * warning$ } - 'skip$ - if$ - swap$ - "(" swap$ * ")" * - } - if$ * - eid empty$ - { format.journal.pages } - { format.journal.eid } - if$ -} - -FUNCTION {format.chapter.pages} -{ chapter empty$ - 'format.pages - { type empty$ - { bbl.chapter } - { type "l" change.case$ - "type" bibinfo.check - } - if$ - chapter tie.or.space.prefix - "chapter" bibinfo.check - * * - pages empty$ - 'skip$ - { ", " * format.pages * } - if$ - } - if$ -} - -FUNCTION {format.booktitle} -{ - booktitle "booktitle" bibinfo.check - emphasize -} - -FUNCTION {format.in.ed.booktitle} -{format.booktitle duplicate$ empty$ 'skip$ - { - format.bvolume duplicate$ empty$ 'pop$ - { ", " swap$ * * } - if$ - editor "editor" format.names.ed duplicate$ empty$ 'pop$ - { - bbl.edby - " " * swap$ * - swap$ - "," * - " " * swap$ - * } - if$ - word.in swap$ * - } - if$ -} -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ -} -FUNCTION {format.thesis.type} -{ type duplicate$ empty$ - 'pop$ - { swap$ pop$ - "t" change.case$ "type" bibinfo.check - } - if$ -} -FUNCTION {format.tr.number} -{ number "number" bibinfo.check - type duplicate$ empty$ - { pop$ bbl.techrep } - 'skip$ - if$ - "type" bibinfo.check - swap$ duplicate$ empty$ - { pop$ "t" change.case$ } - { tie.or.space.prefix * * } - if$ -} -FUNCTION {format.article.crossref} -{ - key duplicate$ empty$ - { pop$ - journal duplicate$ empty$ - { "need key or journal for " cite$ * " to crossref " * crossref * warning$ } - { "journal" bibinfo.check emphasize word.in swap$ * } - if$ - } - { word.in swap$ * " " *} - if$ - " \cite{" * crossref * "}" * -} -FUNCTION {format.crossref.editor} -{ editor #1 "{vv~}{ll}" format.name$ - "editor" bibinfo.check - editor num.names$ duplicate$ - #2 > - { pop$ - "editor" bibinfo.check - " " * bbl.etal - * - } - { #2 < - 'skip$ - { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { - "editor" bibinfo.check - " " * bbl.etal - * - } - { - bbl.and space.word - * editor #2 "{vv~}{ll}" format.name$ - "editor" bibinfo.check - * - } - if$ - } - if$ - } - if$ -} -FUNCTION {format.book.crossref} -{ volume duplicate$ empty$ - { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ - pop$ word.in - } - { bbl.volume - capitalize - swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * - } - if$ - editor empty$ - editor field.or.null author field.or.null = - or - { key empty$ - { series empty$ - { "need editor, key, or series for " cite$ * " to crossref " * - crossref * warning$ - "" * - } - { series emphasize * } - if$ - } - { key * } - if$ - } - { format.crossref.editor * } - if$ - " \cite{" * crossref * "}" * -} -FUNCTION {format.incoll.inproc.crossref} -{ - editor empty$ - editor field.or.null author field.or.null = - or - { key empty$ - { format.booktitle duplicate$ empty$ - { "need editor, key, or booktitle for " cite$ * " to crossref " * - crossref * warning$ - } - { word.in swap$ * } - if$ - } - { word.in key * " " *} - if$ - } - { word.in format.crossref.editor * " " *} - if$ - " \cite{" * crossref * "}" * -} -FUNCTION {format.org.or.pub} -{ 't := - "" - year empty$ - { "empty year in " cite$ * warning$ } - 'skip$ - if$ - address empty$ t empty$ and - year empty$ and - 'skip$ - { - add.blank "(" * - t empty$ - { address "address" bibinfo.check * - } - { t * - address empty$ - 'skip$ - { ", " * address "address" bibinfo.check * } - if$ - } - if$ - year empty$ - 'skip$ - { t empty$ address empty$ and - 'skip$ - { ", " * } - if$ - year "year" bibinfo.check - * - } - if$ - ")" * - } - if$ -} -FUNCTION {format.publisher.address} -{ publisher "publisher" bibinfo.warn format.org.or.pub -} - -FUNCTION {format.organization.address} -{ organization "organization" bibinfo.check format.org.or.pub -} - -FUNCTION {format.softmisc.archive} -{ - archivePrefix empty$ - { "" } - { "" } - if$ -} - -FUNCTION {format.archive} -{ - archivePrefix empty$ - { "" } - { archivePrefix ":" *} - if$ -} - -FUNCTION {format.primaryClass} -{ - primaryClass empty$ - { "" } - { "{[" primaryClass * "]}" *} - if$ -} - -FUNCTION {format.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {format.softmisc.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {article} -{ output.bibitem - format.authors "author" output.check - add.comma - format.title "title" output.check - new.block - crossref missing$ - { - journal - "journal" bibinfo.check - "journal" output.check - add.blank - format.vol.num.pages output - format.date "year" output.check - } - { format.article.crossref output.nonnull - format.pages output - } - if$ - format.doi output - new.block - format.url output - new.block - format.note output - new.block - format.eprint output - add.blank - format.primaryClass output - fin.entry -} - -FUNCTION {book} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check - } - { format.authors output.nonnull - crossref missing$ - { "author and editor" editor either.or.check } - 'skip$ - if$ - } - if$ - add.comma - format.btitle "title" output.check - crossref missing$ - { format.bvolume output - format.edition output - new.block - format.number.series output - new.sentence - format.publisher.address output - format.pages output - } - { - new.block - format.book.crossref output.nonnull - format.date "year" output.check - } - if$ - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry -} -FUNCTION {booklet} -{ output.bibitem - format.authors output - add.comma - format.title "title" output.check - new.block - howpublished "howpublished" bibinfo.check output - address "address" bibinfo.check output - format.date output - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check - } - { format.authors output.nonnull - crossref missing$ - { "author and editor" editor either.or.check } - 'skip$ - if$ - } - if$ - add.comma - format.btitle "title" output.check - crossref missing$ - { - format.publisher.address output - format.bvolume output - format.edition output - format.chapter.pages "chapter and pages" output.check - new.block - format.number.series output - new.sentence - } - { - format.chapter.pages "chapter and pages" output.check - new.block - format.book.crossref output.nonnull - format.date "year" output.check - } - if$ - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - format.authors "author" output.check - add.comma - crossref missing$ - { format.in.ed.booktitle "booktitle" output.check - format.edition output - format.number.series output - format.publisher.address output - format.chapter.pages output - new.sentence - } - { format.incoll.inproc.crossref output.nonnull - format.chapter.pages output - } - if$ - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry -} - -FUNCTION {inproceedings} -{ output.bibitem - format.authors "author" output.check - add.comma - format.btitle "title" output.check - crossref missing$ - { format.in.ed.booktitle "booktitle" output.check - new.sentence - publisher empty$ - { format.organization.address output } - { organization "organization" bibinfo.check output - format.publisher.address output - } - if$ - format.number.series output - format.pages output - } - { format.incoll.inproc.crossref output.nonnull - format.pages output - } - if$ - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry -} -FUNCTION {conference} { inproceedings } -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization "organization" bibinfo.check - duplicate$ empty$ 'pop$ - { output - address "address" bibinfo.check output - } - if$ - } - { format.authors output.nonnull } - if$ - add.comma - format.btitle "title" output.check - author empty$ - { organization empty$ - { - address new.block.checka - address "address" bibinfo.check output - } - 'skip$ - if$ - } - { - organization address new.block.checkb - organization "organization" bibinfo.check output - address "address" bibinfo.check output - } - if$ - format.edition output - format.date output - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry -} - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check - add.comma - format.title - "title" output.check - new.block - bbl.mthesis format.thesis.type output.nonnull - school "school" bibinfo.warn output - address "address" bibinfo.check output - format.date "year" output.check - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - title howpublished new.block.checkb - format.title output - howpublished new.block.checka - howpublished "howpublished" bibinfo.check output - format.date output - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry - empty.misc.check -} - -FUNCTION {softmisc} -{ output.bibitem - format.authors output - title howpublished new.block.checkb - format.title output - version output - howpublished new.block.checka - howpublished "howpublished" bibinfo.check output - format.date output - format.doi output - new.block - format.url output - new.block - format.note output - new.block - format.softmisc.eprint output - fin.entry - empty.misc.check -} - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check - add.comma - format.title - "title" output.check - new.block - bbl.phdthesis format.thesis.type output.nonnull - school "school" bibinfo.warn output - address "address" bibinfo.check output - format.date "year" output.check - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - editor empty$ - { organization "organization" bibinfo.check output - } - { format.editors output.nonnull } - if$ - new.block - format.btitle "title" output.check - format.bvolume output - format.number.series output - editor empty$ - { publisher empty$ - 'skip$ - { - new.sentence - format.publisher.address output - } - if$ - } - { publisher empty$ - { - new.sentence - format.organization.address output } - { - new.sentence - organization "organization" bibinfo.check output - format.publisher.address output - } - if$ - } - if$ - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry -} - -FUNCTION {techreport} -{ output.bibitem - format.authors "author" output.check - add.comma - format.title - "title" output.check - new.block - format.tr.number output.nonnull - institution "institution" bibinfo.warn output - address "address" bibinfo.check output - format.date "year" output.check - format.doi output - new.block - format.url output - new.block - format.note output - fin.entry -} - -FUNCTION {unpublished} -{ output.bibitem - format.authors "author" output.check - add.comma - format.title "title" output.check - format.date output - format.doi output - new.block - format.url output - new.block - format.note "note" output.check - fin.entry -} - -FUNCTION {default.type} { misc } -READ -STRINGS { longest.label } -INTEGERS { number.label longest.label.width } -FUNCTION {initialize.longest.label} -{ "" 'longest.label := - #1 'number.label := - #0 'longest.label.width := -} -FUNCTION {longest.label.pass} -{ number.label int.to.str$ 'label := - number.label #1 + 'number.label := - label width$ longest.label.width > - { label 'longest.label := - label width$ 'longest.label.width := - } - 'skip$ - if$ -} -EXECUTE {initialize.longest.label} -ITERATE {longest.label.pass} -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - "\begin{thebibliography}{" longest.label * "}" * - write$ newline$ - "\providecommand{\url}[1]{{#1}}" - write$ newline$ - "\providecommand{\urlprefix}{URL }" - write$ newline$ - %%"\expandafter\ifx\csname urlstyle\endcsname\relax" - %% write$ newline$ - %%" \providecommand{\doi}[1]{\discretionary{}{}{}#1}\else" - %%write$ newline$ - %%" \providecommand{\doi}{\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi" - "\providecommand{\doi}[1]{\url{https://doi.org/#1}}" - write$ newline$ - "\bibcommenthead" write$ newline$ -} -EXECUTE {begin.bib} -EXECUTE {init.state.consts} -ITERATE {call.type$} -FUNCTION {end.bib} -{ newline$ - "\end{thebibliography}" write$ newline$ -} -EXECUTE {end.bib} -%% End of customized bst file -%% -%% End of file `spphys.bst'. - diff --git a/_extensions/christopherkenny/nature/sn-basic.bst b/_extensions/christopherkenny/nature/sn-basic.bst deleted file mode 100644 index 5072a4d..0000000 --- a/_extensions/christopherkenny/nature/sn-basic.bst +++ /dev/null @@ -1,1798 +0,0 @@ -%% -%% This is file `spbasic.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% merlin.mbs (with options: `ay,nat,seq-lab,vonx,nm-rvx,ed-rev,jnrlst,dt-beg,yr-par,yrp-x,yrpp-xsp,note-yr,jxper,jttl-rm,thtit-a,pgsep-c,num-xser,ser-vol,jnm-x,btit-rm,bt-rm,pre-pub,doi,edparxc,blk-tit,in-col,fin-bare,pp,ed,abr,mth-bare,ord,jabr,xand,eprint,url,url-blk,em-x,nfss,') -%% ---------------------------------------- -%% -%%********************************************************************************%% -%% %% -%% For Springer medical, life sciences, chemistry, geology, engineering and %% -%% computer science publications. %% -%% For use with the natbib package (see below). Default is author-year citations. %% -%% When citations are numbered, please use \usepackage[numbers]{natbib}. %% -%% %% -%%********************************************************************************%% -%% -%% Copyright 1994-2004 Patrick W Daly - % =============================================================== - % IMPORTANT NOTICE: - % This bibliographic style (bst) file has been generated from one or - % more master bibliographic style (mbs) files, listed above. - % - % This generated file can be redistributed and/or modified under the terms - % of the LaTeX Project Public License Distributed from CTAN - % archives in directory macros/latex/base/lppl.txt; either - % version 1 of the License, or any later version. - % =============================================================== - % Name and version information of the main mbs file: - % \ProvidesFile{merlin.mbs}[2004/02/09 4.13 (PWD, AO, DPC)] - % For use with BibTeX version 0.99a or later - %------------------------------------------------------------------- - % This bibliography style file is intended for texts in ENGLISH - % This is an author-year citation style bibliography. As such, it is - % non-standard LaTeX, and requires a special package file to function properly. - % Such a package is natbib.sty by Patrick W. Daly - % The form of the \bibitem entries is - % \bibitem[Jones et al.(1990)]{key}... - % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... - % The essential feature is that the label (the part in brackets) consists - % of the author names, as they should appear in the citation, with the year - % in parentheses following. There must be no space before the opening - % parenthesis! - % With natbib v5.3, a full list of authors may also follow the year. - % In natbib.sty, it is possible to define the type of enclosures that is - % really wanted (brackets or parentheses), but in either case, there must - % be parentheses in the label. - % The \cite command functions as follows: - % \citet{key} ==>> Jones et al. (1990) - % \citet*{key} ==>> Jones, Baker, and Smith (1990) - % \citep{key} ==>> (Jones et al., 1990) - % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) - % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) - % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) - % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) - % \citeauthor{key} ==>> Jones et al. - % \citeauthor*{key} ==>> Jones, Baker, and Smith - % \citeyear{key} ==>> 1990 - %--------------------------------------------------------------------- - -ENTRY - { address - archive - author - booktitle - chapter - doi - edition - editor - eid - eprint - howpublished - institution - journal - key - keywords - month - note - number - organization - pages - publisher - school - series - title - type - url - volume - year - archivePrefix - primaryClass - adsurl - adsnote - version - } - {} - { label extra.label sort.label short.list } -INTEGERS { output.state before.all mid.sentence after.sentence after.block } -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := -} -STRINGS { s t} -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { ", " * write$ } - { output.state after.block = - { add.period$ write$ - newline$ - "\newblock " write$ - } - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - s -} -FUNCTION {output} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull - if$ -} -FUNCTION {output.check} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull - if$ -} -FUNCTION {fin.entry} -{ duplicate$ empty$ - 'pop$ - 'write$ - if$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} -FUNCTION {add.blank} -{ " " * before.all 'output.state := -} - -FUNCTION {no.blank.or.punct} -{ "\hspace{0pt}" * before.all 'output.state := -} - -FUNCTION {date.block} -{ - add.blank -} - -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} -STRINGS {z} -FUNCTION {remove.dots} -{ 'z := - "" - { z empty$ not } - { z #1 #1 substring$ - z #2 global.max$ substring$ 'z := - duplicate$ "." = 'pop$ - { * } - if$ - } - while$ -} -FUNCTION {new.block.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.block - if$ -} -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} -FUNCTION {emphasize} -{ skip$ } -FUNCTION {tie.or.space.prefix} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ -} - -FUNCTION {capitalize} -{ "u" change.case$ "t" change.case$ } - -FUNCTION {space.word} -{ " " swap$ * " " * } - % Here are the language-specific definitions for explicit words. - % Each function has a name bbl.xxx where xxx is the English word. - % The language selected here is ENGLISH -FUNCTION {bbl.and} -{ "and"} - -FUNCTION {bbl.etal} -{ "et~al" } - -FUNCTION {bbl.editors} -{ "eds" } - -FUNCTION {bbl.editor} -{ "ed" } - -FUNCTION {bbl.edby} -{ "edited by" } - -FUNCTION {bbl.edition} -{ "edn." } - -FUNCTION {bbl.volume} -{ "vol" } - -FUNCTION {bbl.of} -{ "of" } - -FUNCTION {bbl.number} -{ "no." } - -FUNCTION {bbl.nr} -{ "no." } - -FUNCTION {bbl.in} -{ "in" } - -FUNCTION {bbl.pages} -{ "pp" } - -FUNCTION {bbl.incoll.pages} -{ "p" } - -FUNCTION {bbl.page} -{ "p" } - -FUNCTION {bbl.chapter} -{ "chap" } - -FUNCTION {bbl.techrep} -{ "Tech. Rep." } - -FUNCTION {bbl.mthesis} -{ "Master's thesis" } - -FUNCTION {bbl.phdthesis} -{ "PhD thesis" } - -FUNCTION {bbl.first} -{ "1st" } - -FUNCTION {bbl.second} -{ "2nd" } - -FUNCTION {bbl.third} -{ "3rd" } - -FUNCTION {bbl.fourth} -{ "4th" } - -FUNCTION {bbl.fifth} -{ "5th" } - -FUNCTION {bbl.st} -{ "st" } - -FUNCTION {bbl.nd} -{ "nd" } - -FUNCTION {bbl.rd} -{ "rd" } - -FUNCTION {bbl.th} -{ "th" } - -MACRO {jan} {"Jan."} - -MACRO {feb} {"Feb."} - -MACRO {mar} {"Mar."} - -MACRO {apr} {"Apr."} - -MACRO {may} {"May"} - -MACRO {jun} {"Jun."} - -MACRO {jul} {"Jul."} - -MACRO {aug} {"Aug."} - -MACRO {sep} {"Sep."} - -MACRO {oct} {"Oct."} - -MACRO {nov} {"Nov."} - -MACRO {dec} {"Dec."} - -FUNCTION {eng.ord} -{ duplicate$ "1" swap$ * - #-2 #1 substring$ "1" = - { bbl.th * } - { duplicate$ #-1 #1 substring$ - duplicate$ "1" = - { pop$ bbl.st * } - { duplicate$ "2" = - { pop$ bbl.nd * } - { "3" = - { bbl.rd * } - { bbl.th * } - if$ - } - if$ - } - if$ - } - if$ -} - -MACRO {acmcs} {"ACM Comput Surv"} - -MACRO {acta} {"Acta Inf"} - -MACRO {cacm} {"Commun ACM"} - -MACRO {ibmjrd} {"IBM~J~Res Dev"} - -MACRO {ibmsj} {"IBM Syst~J"} - -MACRO {ieeese} {"IEEE Trans Softw Eng"} - -MACRO {ieeetc} {"IEEE Trans Comput"} - -MACRO {ieeetcad} - {"IEEE Trans Comput Aid Des"} - -MACRO {ipl} {"Inf Process Lett"} - -MACRO {jacm} {"J~ACM"} - -MACRO {jcss} {"J~Comput Syst Sci"} - -MACRO {scp} {"Sci Comput Program"} - -MACRO {sicomp} {"SIAM J~Comput"} - -MACRO {tocs} {"ACM Trans Comput Syst"} - -MACRO {tods} {"ACM Trans Database Syst"} - -MACRO {tog} {"ACM Trans Graphic"} - -MACRO {toms} {"ACM Trans Math Softw"} - -MACRO {toois} {"ACM Trans Office Inf Syst"} - -MACRO {toplas} {"ACM Trans Program Lang Syst"} - -MACRO {tcs} {"Theor Comput Sci"} - -FUNCTION {bibinfo.check} -{ swap$ - duplicate$ missing$ - { - pop$ pop$ - "" - } - { duplicate$ empty$ - { - swap$ pop$ - } - { swap$ - pop$ - } - if$ - } - if$ -} -FUNCTION {bibinfo.warn} -{ swap$ - duplicate$ missing$ - { - swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ - "" - } - { duplicate$ empty$ - { - swap$ "empty " swap$ * " in " * cite$ * warning$ - } - { swap$ - pop$ - } - if$ - } - if$ -} - -FUNCTION {format.eprint} -{ eprint duplicate$ empty$ - 'skip$ - { "\eprint" - archive empty$ - 'skip$ - { "[" * archive * "]" * } - if$ - "{" * swap$ * "}" * - } - if$ -} - -FUNCTION {format.archive} -{ - archivePrefix empty$ - { "" } - { archivePrefix ":" *} - if$ -} - -FUNCTION {format.primaryClass} -{ - primaryClass empty$ - { "" } - { "{[" primaryClass * "]}" *} - if$ -} - -FUNCTION {format.soft.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {format.softmisc.archive} -{ - archivePrefix empty$ - { "" } - { "" } - if$ -} - -FUNCTION {format.softmisc.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { "\urlprefix\url{" url * "}" * } - if$ -} - -STRINGS { bibinfo} -INTEGERS { nameptr namesleft numnames } - -FUNCTION {format.names} -{ 'bibinfo := - duplicate$ empty$ 'skip$ { - 's := - "" 't := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{vv~}{ll}{ f{}}{jj}" - format.name$ 't := - nameptr #1 > - { - nameptr #3 - #1 + = - numnames #3 - > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - namesleft #1 > - { ", " * t * } - { - "," * - s nameptr "{ll}" format.name$ duplicate$ "others" = - { 't := } - { pop$ } - if$ - t "others" = - { - " " * bbl.etal * - } - { " " * t * } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - } if$ -} - -FUNCTION {format.names.ed} -{ - format.names -} -FUNCTION {format.key} -{ empty$ - { key field.or.null } - { "" } - if$ -} - -FUNCTION {format.authors} -{ author "author" format.names -} -FUNCTION {get.bbl.editor} -{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } - -FUNCTION {format.editors} -{ editor "editor" format.names duplicate$ empty$ 'skip$ - { - " " * - get.bbl.editor - "(" swap$ * ")" * - * - } - if$ -} -FUNCTION {format.doi} -{ doi "doi" bibinfo.check - duplicate$ empty$ 'skip$ - { - "\doi{" swap$ * "}" * - } - if$ -} -FUNCTION {format.note} -{ - note empty$ - { "" } - { note #1 #1 substring$ - duplicate$ "{" = - 'skip$ - { output.state mid.sentence = - { "l" } - { "u" } - if$ - change.case$ - } - if$ - note #2 global.max$ substring$ * "note" bibinfo.check - } - if$ -} - -FUNCTION {format.title} -{ title - duplicate$ empty$ 'skip$ - { "t" change.case$ } - if$ - "title" bibinfo.check -} -FUNCTION {format.full.names} -{'s := - "" 't := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{vv~}{ll}" format.name$ - 't := - nameptr #1 > - { - namesleft #1 > - { ", " * t * } - { - s nameptr "{ll}" format.name$ duplicate$ "others" = - { 't := } - { pop$ } - if$ - t "others" = - { - " " * bbl.etal * - } - { - numnames #2 > - { "," * } - 'skip$ - if$ - bbl.and - space.word * t * - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {author.editor.key.full} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { editor format.full.names } - if$ - } - { author format.full.names } - if$ -} - -FUNCTION {author.key.full} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { author format.full.names } - if$ -} - -FUNCTION {editor.key.full} -{ editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { editor format.full.names } - if$ -} - -FUNCTION {make.full.names} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.full - { type$ "proceedings" = - 'editor.key.full - 'author.key.full - if$ - } - if$ -} - -FUNCTION {output.bibitem} -{ newline$ - "\bibitem[{" write$ - label write$ - ")" make.full.names duplicate$ short.list = - { pop$ } - { * } - if$ - "}]{" * write$ - cite$ write$ - "}" write$ - newline$ - "" - before.all 'output.state := -} - -FUNCTION {add.period} -{ duplicate$ empty$ - 'skip$ - { "." * add.blank } - if$ -} - -FUNCTION {if.digit} -{ duplicate$ "0" = - swap$ duplicate$ "1" = - swap$ duplicate$ "2" = - swap$ duplicate$ "3" = - swap$ duplicate$ "4" = - swap$ duplicate$ "5" = - swap$ duplicate$ "6" = - swap$ duplicate$ "7" = - swap$ duplicate$ "8" = - swap$ "9" = or or or or or or or or or -} -FUNCTION {n.separate} -{ 't := - "" - #0 'numnames := - { t empty$ not } - { t #-1 #1 substring$ if.digit - { numnames #1 + 'numnames := } - { #0 'numnames := } - if$ - t #-1 #1 substring$ swap$ * - t #-2 global.max$ substring$ 't := - numnames #5 = - { duplicate$ #1 #2 substring$ swap$ - #3 global.max$ substring$ - "," swap$ * * - } - 'skip$ - if$ - } - while$ -} -FUNCTION {n.dashify} -{ -%% n.separate - 't := - "" - { t empty$ not } - { t #1 #1 substring$ "-" = - { t #1 #2 substring$ "--" = not - { "--" * - t #2 global.max$ substring$ 't := - } - { { t #1 #1 substring$ "-" = } - { "-" * - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -FUNCTION {word.in} -{ bbl.in capitalize - ":" * - " " * } - -FUNCTION {format.date} -{ year "year" bibinfo.check duplicate$ empty$ - { - "empty year in " cite$ * "; set to ????" * warning$ - pop$ "????" - } - 'skip$ - if$ - extra.label * - before.all 'output.state := - " (" swap$ * ")" * -} -FUNCTION {format.btitle} -{ title "title" bibinfo.check - duplicate$ empty$ 'skip$ - { - } - if$ -} -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "can't use both " swap$ * " fields in " * cite$ * warning$ } - if$ -} -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bbl.volume volume tie.or.space.prefix - "volume" bibinfo.check * * - series "series" bibinfo.check - duplicate$ empty$ 'pop$ - { emphasize ", " * swap$ * } - if$ - "volume and number" number either.or.check - } - if$ -} -FUNCTION {format.number.series} -{ volume empty$ - { number empty$ - { series field.or.null } - { series empty$ - { number "number" bibinfo.check } - { output.state mid.sentence = - { bbl.number } - { bbl.number capitalize } - if$ - number tie.or.space.prefix "number" bibinfo.check * * - bbl.in space.word * - series "series" bibinfo.check * - } - if$ - } - if$ - } - { "" } - if$ -} -FUNCTION {is.num} -{ chr.to.int$ - duplicate$ "0" chr.to.int$ < not - swap$ "9" chr.to.int$ > not and -} - -FUNCTION {extract.num} -{ duplicate$ 't := - "" 's := - { t empty$ not } - { t #1 #1 substring$ - t #2 global.max$ substring$ 't := - duplicate$ is.num - { s swap$ * 's := } - { pop$ "" 't := } - if$ - } - while$ - s empty$ - 'skip$ - { pop$ s } - if$ -} - -FUNCTION {convert.edition} -{ extract.num "l" change.case$ 's := - s "first" = s "1" = or - { bbl.first 't := } - { s "second" = s "2" = or - { bbl.second 't := } - { s "third" = s "3" = or - { bbl.third 't := } - { s "fourth" = s "4" = or - { bbl.fourth 't := } - { s "fifth" = s "5" = or - { bbl.fifth 't := } - { s #1 #1 substring$ is.num - { s eng.ord 't := } - { edition 't := } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - t -} - -FUNCTION {format.edition} -{ edition duplicate$ empty$ 'skip$ - { - convert.edition - output.state mid.sentence = - { "l" } - { "t" } - if$ change.case$ - "edition" bibinfo.check - " " * bbl.edition * - } - if$ -} -INTEGERS { multiresult } -FUNCTION {multi.page.check} -{ 't := - #0 'multiresult := - { multiresult not - t empty$ not - and - } - { t #1 #1 substring$ - duplicate$ "-" = - swap$ duplicate$ "," = - swap$ "+" = - or or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - multiresult -} -FUNCTION {format.pages} -{ pages duplicate$ empty$ 'skip$ - { duplicate$ multi.page.check - { - bbl.pages swap$ - n.dashify - } - { - bbl.page swap$ - } - if$ - tie.or.space.prefix - "pages" bibinfo.check - * * - } - if$ -} -FUNCTION {format.journal.pages} -{ pages duplicate$ empty$ 'pop$ - { swap$ duplicate$ empty$ - { pop$ pop$ format.pages } - { - ":" * - swap$ - n.dashify - "pages" bibinfo.check - * - } - if$ - } - if$ -} -FUNCTION {format.journal.eid} -{ eid "eid" bibinfo.check - duplicate$ empty$ 'pop$ - { swap$ duplicate$ empty$ 'skip$ - { - ":" * - } - if$ - swap$ * - } - if$ -} - -FUNCTION {format.incoll.pages} -{ pages duplicate$ empty$ 'skip$ - { duplicate$ multi.page.check - { - bbl.incoll.pages swap$ - n.dashify - } - { - bbl.page swap$ - } - if$ - tie.or.space.prefix - "pages" bibinfo.check - * * - } - if$ -} - -FUNCTION {format.incoll.chapter.pages} -{ chapter empty$ - 'format.incoll.pages - { type empty$ - { bbl.chapter } - { type "l" change.case$ - "type" bibinfo.check - } - if$ - chapter tie.or.space.prefix - "chapter" bibinfo.check - * * - pages empty$ - 'skip$ - { ", " * format.incoll.pages * } - if$ - } - if$ -} - -FUNCTION {format.vol.num.pages} -{ volume field.or.null - duplicate$ empty$ 'skip$ - { - "volume" bibinfo.check - } - if$ - number "number" bibinfo.check duplicate$ empty$ 'skip$ - { - swap$ duplicate$ empty$ - { "there's a number but no volume in " cite$ * warning$ } - 'skip$ - if$ - swap$ - "(" swap$ * ")" * - } - if$ * - eid empty$ - { format.journal.pages } - { format.journal.eid } - if$ -} - -FUNCTION {format.chapter.pages} -{ chapter empty$ - 'format.pages - { type empty$ - { bbl.chapter } - { type "l" change.case$ - "type" bibinfo.check - } - if$ - chapter tie.or.space.prefix - "chapter" bibinfo.check - * * - pages empty$ - 'skip$ - { ", " * format.pages * } - if$ - } - if$ -} - -FUNCTION {format.booktitle} -{ - booktitle "booktitle" bibinfo.check -} -FUNCTION {format.in.ed.booktitle} -{ format.booktitle duplicate$ empty$ 'skip$ - { - editor "editor" format.names.ed duplicate$ empty$ 'pop$ - { - " " * - get.bbl.editor - "(" swap$ * ") " * - * swap$ - * } - if$ - word.in swap$ * - } - if$ -} -FUNCTION {format.thesis.type} -{ type duplicate$ empty$ - 'pop$ - { swap$ pop$ - "t" change.case$ "type" bibinfo.check - } - if$ -} -FUNCTION {format.tr.number} -{ number "number" bibinfo.check - type duplicate$ empty$ - { pop$ bbl.techrep } - 'skip$ - if$ - "type" bibinfo.check - swap$ duplicate$ empty$ - { pop$ "t" change.case$ } - { tie.or.space.prefix * * } - if$ -} -FUNCTION {format.article.crossref} -{ - word.in - " \cite{" * crossref * "}" * -} -FUNCTION {format.book.crossref} -{ volume duplicate$ empty$ - { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ - pop$ word.in - } - { bbl.volume - capitalize - swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * - } - if$ - " \cite{" * crossref * "}" * -} -FUNCTION {format.incoll.inproc.crossref} -{ - word.in - " \cite{" * crossref * "}" * -} -FUNCTION {format.org.or.pub} -{ 't := - "" - address empty$ t empty$ and - 'skip$ - { - t empty$ - { address "address" bibinfo.check * - } - { t * - address empty$ - 'skip$ - { ", " * address "address" bibinfo.check * } - if$ - } - if$ - } - if$ -} -FUNCTION {format.publisher.address} -{ publisher "publisher" bibinfo.warn format.org.or.pub -} - -FUNCTION {format.organization.address} -{ organization "organization" bibinfo.check format.org.or.pub -} - -FUNCTION {article} -{ output.bibitem - format.authors "author" output.check - author format.key output - format.date "year" output.check - date.block - format.title "title" output.check - new.sentence - crossref missing$ - { - journal - remove.dots - "journal" bibinfo.check - "journal" output.check - add.blank - format.vol.num.pages output - } - { format.article.crossref output.nonnull - format.pages output - } - if$ - new.sentence - format.doi output - format.url output - format.note output - format.soft.eprint output - add.blank - format.primaryClass output - fin.entry -} - -FUNCTION {book} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check - editor format.key output - add.blank - } - { format.authors output.nonnull - crossref missing$ - { "author and editor" editor either.or.check } - 'skip$ - if$ - } - if$ - format.date "year" output.check - date.block - format.btitle "title" output.check - crossref missing$ - { format.bvolume output - format.edition output - new.sentence - format.number.series output - format.publisher.address output - } - { - new.sentence - format.book.crossref output.nonnull - } - if$ - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} -FUNCTION {booklet} -{ output.bibitem - format.authors output - author format.key output - format.date "year" output.check - date.block - format.title "title" output.check - new.sentence - howpublished "howpublished" bibinfo.check output - address "address" bibinfo.check output - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check - editor format.key output - } - { format.authors output.nonnull - crossref missing$ - { "author and editor" editor either.or.check } - 'skip$ - if$ - } - if$ - format.date "year" output.check - date.block - format.btitle "title" output.check - crossref missing$ - { - format.bvolume output - format.edition output - format.publisher.address output - format.chapter.pages "chapter and pages" output.check - new.sentence - format.number.series output - } - { - format.chapter.pages "chapter and pages" output.check - new.sentence - format.book.crossref output.nonnull - } - if$ - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - format.authors "author" output.check - author format.key output - format.date "year" output.check - date.block - format.title "title" output.check - new.sentence - crossref missing$ - { format.in.ed.booktitle "booktitle" output.check - format.bvolume output - format.edition output - new.sentence - format.number.series output - format.publisher.address output - format.incoll.chapter.pages output - } - { format.incoll.inproc.crossref output.nonnull - format.incoll.chapter.pages output - } - if$ - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} -FUNCTION {inproceedings} -{ output.bibitem - format.authors "author" output.check - author format.key output - format.date "year" output.check - date.block - format.title "title" output.check - new.sentence - crossref missing$ - { format.in.ed.booktitle "booktitle" output.check - publisher empty$ - { format.organization.address output } - { organization "organization" bibinfo.check output - format.bvolume output - new.sentence - format.publisher.address output - } - if$ - format.number.series output - format.pages output - } - { format.incoll.inproc.crossref output.nonnull - format.pages output - } - if$ - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} -FUNCTION {conference} { inproceedings } -FUNCTION {manual} -{ output.bibitem - format.authors output - author format.key output - format.date "year" output.check - date.block - format.btitle "title" output.check - new.sentence - organization "organization" bibinfo.check output - address "address" bibinfo.check output - format.edition output - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check - author format.key output - format.date "year" output.check - date.block - format.title - "title" output.check - new.sentence - bbl.mthesis format.thesis.type output.nonnull - school "school" bibinfo.warn output - address "address" bibinfo.check output - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - author format.key output - format.date "year" output.check - date.block - format.title output - new.sentence - howpublished "howpublished" bibinfo.check output - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} - -FUNCTION {insert.comma} -{ duplicate$ empty$ - 'skip$ - { ", " * add.blank } - if$ -} - -FUNCTION {softmisc} -{ output.bibitem - format.authors output - author format.key output - format.date "year" output.check - date.block - format.title output - insert.comma - version output - new.sentence - howpublished "howpublished" bibinfo.check output - format.doi output - format.url output - format.note output - format.softmisc.eprint output - fin.entry -} - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check - author format.key output - format.date "year" output.check - date.block - format.title - "title" output.check - new.sentence - bbl.phdthesis format.thesis.type output.nonnull - school "school" bibinfo.warn output - address "address" bibinfo.check output - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - format.editors output - editor format.key output - format.date "year" output.check - date.block - format.btitle "title" output.check - format.bvolume output - format.number.series output - publisher empty$ - { format.organization.address output } - { organization "organization" bibinfo.check output - format.publisher.address output - } - if$ - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} - -FUNCTION {techreport} -{ output.bibitem - format.authors "author" output.check - author format.key output - format.date "year" output.check - date.block - format.title - "title" output.check - new.sentence - format.tr.number output.nonnull - institution "institution" bibinfo.warn output - address "address" bibinfo.check output - format.doi output - format.url output - format.note output - format.eprint output - fin.entry -} - -FUNCTION {unpublished} -{ output.bibitem - format.authors "author" output.check - author format.key output - format.date "year" output.check - date.block - format.title "title" output.check - format.doi output - format.url output - format.note "note" output.check - format.eprint output - fin.entry -} - -FUNCTION {default.type} { misc } -READ -FUNCTION {sortify} -{ purify$ - "l" change.case$ -} -INTEGERS { len } -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} -FUNCTION {format.lab.names} -{ 's := - "" 't := - s #1 "{vv~}{ll}" format.name$ - s num.names$ duplicate$ - #2 > - { pop$ - " " * bbl.etal * - } - { #2 < - 'skip$ - { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { - " " * bbl.etal * - } - { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ - * } - if$ - } - if$ - } - if$ -} - -FUNCTION {author.key.label} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {author.editor.key.label} -{ author empty$ - { editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { editor format.lab.names } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {editor.key.label} -{ editor empty$ - { key empty$ - { cite$ #1 #3 substring$ } - 'key - if$ - } - { editor format.lab.names } - if$ -} - -FUNCTION {calc.short.authors} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label - { type$ "proceedings" = - 'editor.key.label - 'author.key.label - if$ - } - if$ - 'short.list := -} - -FUNCTION {calc.label} -{ calc.short.authors - short.list - "(" - * - year duplicate$ empty$ - { pop$ "????" } - 'skip$ - if$ - * - 'label := -} - -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{ll{ }}{ f{ }}{ jj{ }}" - format.name$ 't := - nameptr #1 > - { - " " * - namesleft #1 = t "others" = and - { "zzzzz" * } - { numnames #2 > nameptr #2 = and - { "zz" * year field.or.null * " " * } - 'skip$ - if$ - t sortify * - } - if$ - } - { t sortify * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {sort.format.title} -{ 't := - "A " #2 - "An " #3 - "The " #4 t chop.word - chop.word - chop.word - sortify - #1 global.max$ substring$ -} -FUNCTION {author.sort} -{ author empty$ - { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { author sort.format.names } - if$ -} -FUNCTION {author.editor.sort} -{ author empty$ - { editor empty$ - { key empty$ - { "to sort, need author, editor, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ - } - { author sort.format.names } - if$ -} -FUNCTION {editor.sort} -{ editor empty$ - { key empty$ - { "to sort, need editor or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ -} -FUNCTION {presort} -{ calc.label - label sortify - " " - * - type$ "book" = - type$ "inbook" = - or - 'author.editor.sort - { type$ "proceedings" = - 'editor.sort - 'author.sort - if$ - } - if$ - #1 entry.max$ substring$ - 'sort.label := - sort.label - * - " " - * - title field.or.null - sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := -} - -ITERATE {presort} -SORT -STRINGS { last.label next.extra } -INTEGERS { last.extra.num number.label } -FUNCTION {initialize.extra.label.stuff} -{ #0 int.to.chr$ 'last.label := - "" 'next.extra := - #0 'last.extra.num := - #0 'number.label := -} -FUNCTION {forward.pass} -{ last.label label = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - label 'last.label := - } - if$ - number.label #1 + 'number.label := -} -FUNCTION {reverse.pass} -{ next.extra "b" = - { "a" 'extra.label := } - 'skip$ - if$ - extra.label 'next.extra := - extra.label - duplicate$ empty$ - 'skip$ - { "{\natexlab{" swap$ * "}}" * } - if$ - 'extra.label := - label extra.label * 'label := -} -EXECUTE {initialize.extra.label.stuff} -ITERATE {forward.pass} -REVERSE {reverse.pass} -FUNCTION {bib.sort.order} -{ sort.label - " " - * - year field.or.null sortify - * - " " - * - title field.or.null - sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := -} -ITERATE {bib.sort.order} -SORT -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - "\begin{thebibliography}{" number.label int.to.str$ * "}" * - write$ newline$ - "\providecommand{\natexlab}[1]{#1}" - write$ newline$ - "\providecommand{\url}[1]{{#1}}" - write$ newline$ - "\providecommand{\urlprefix}{URL }" - write$ newline$ - %%"\expandafter\ifx\csname urlstyle\endcsname\relax" - %%write$ newline$ - %%" \providecommand{\doi}[1]{\discretionary{}{}{}https://doi.org/#1}\else" - %%write$ newline$ - %%" \providecommand{\doi}{\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi" - "\providecommand{\doi}[1]{\url{https://doi.org/#1}}" - write$ newline$ - "\providecommand{\eprint}[2][]{\url{#2}}" - write$ newline$ - " \bibcommenthead " - write$ newline$ -} -EXECUTE {begin.bib} -EXECUTE {init.state.consts} -ITERATE {call.type$} -FUNCTION {end.bib} -{ newline$ - "\end{thebibliography}" write$ newline$ -} -EXECUTE {end.bib} -%% End of customized bst file -%% -%% End of file `spbasic.bst'. - diff --git a/_extensions/christopherkenny/nature/sn-chicago.bst b/_extensions/christopherkenny/nature/sn-chicago.bst deleted file mode 100644 index bb6d2c6..0000000 --- a/_extensions/christopherkenny/nature/sn-chicago.bst +++ /dev/null @@ -1,1808 +0,0 @@ -%%% ==================================================================== -%%% @BibTeX-style-file{ -%%% author = "Glenn Paulley", -%%% version = "4", -%%% date = "28 August 1992", -%%% time = "10:23:39 199", -%%% filename = "chicago.bst", -%%% address = "Data Structuring Group -%%% Department of Computer Science -%%% University of Waterloo -%%% Waterloo, Ontario, Canada -%%% N2L 3G1", -%%% telephone = "(519) 885-1211", -%%% FAX = "(519) 885-1208", -%%% checksum = "26323 1654 5143 37417", -%%% email = "gnpaulle@bluebox.uwaterloo.ca", -%%% codetable = "ISO/ASCII", -%%% keywords = "", -%%% supported = "yes", -%%% abstract = "A BibTeX bibliography style that follows the -%%% `B' reference style of the 13th Edition of -%%% the Chicago Manual of Style. A detailed -%%% feature list is given below.", -%%% docstring = "The checksum field above contains a CRC-16 -%%% checksum as the first value, followed by the -%%% equivalent of the standard UNIX wc (word -%%% count) utility output of lines, words, and -%%% characters. This is produced by Robert -%%% Solovay's checksum utility.", -%%% } -%%% ==================================================================== -% -% "Chicago" BibTeX style, chicago.bst -% =================================== -% -% BibTeX `chicago' style file for BibTeX version 0.99c, LaTeX version 2.09 -% Place it in a file called chicago.bst in the BibTeX search path. -% You need to include chicago.sty as a \documentstyle option. -% (Placing it in the same directory as the LaTeX document should also work.) -% This "chicago" style is based on newapa.bst (American Psych. Assoc.) -% found at ymir.claremont.edu. -% -% Citation format: (author-last-name year) -% (author-last-name and author-last-name year) -% (author-last-name, author-last-name, and author-last-name year) -% (author-last-name et al. year) -% (author-last-name) -% author-last-name (year) -% (author-last-name and author-last-name) -% (author-last-name et al.) -% (year) or (year,year) -% year or year,year -% -% Reference list ordering: alphabetical by author or whatever passes -% for author in the absence of one. -% -% This BibTeX style has support for abbreviated author lists and for -% year-only citations. This is done by having the citations -% actually look like -% -% \citeauthoryear{full-author-info}{abbrev-author-info}{year} -% -% The LaTeX style has to have the following (or similar) -% -% \let\@internalcite\cite -% \def\fullcite{\def\citeauthoryear##1##2##3{##1, ##3}\@internalcite} -% \def\fullciteA{\def\citeauthoryear##1##2##3{##1}\@internalcite} -% \def\shortcite{\def\citeauthoryear##1##2##3{##2, ##3}\@internalcite} -% \def\shortciteA{\def\citeauthoryear##1##2##3{##2}\@internalcite} -% \def\citeyear{\def\citeauthoryear##1##2##3{##3}\@internalcite} -% -% These TeX macro definitions are found in chicago.sty. Additional -% commands to manipulate different components of a citation can be defined -% so that, for example, you can list author's names without parentheses -% if using a citation as a noun or object in a sentence. -% -% This file was originally copied from newapa.bst at ymir.claremont.edu. -% -% Features of chicago.bst: -% ======================= -% -% - full names used in citations, but abbreviated citations are available -% (see above) -% - if an entry has a "month", then the month and year are also printed -% as part of that bibitem. -% - all conjunctions use "and" instead of "\&" -% - major modification from Chicago Manual of Style (13th ed.) is that -% only the first author in a reference appears last name first- -% additional authors appear as J. Q. Public. -% - pages are listed as "pp. xx-xx" in all entry types except -% article entries. -% - book, inbook, and manual use "location: publisher" (or organization) -% for address and publisher. All other types list publishers separately. -% - "pp." are used to identify page numbers for all entry types except -% articles. -% - organization is used as a citation label if neither author nor editor -% is present (for manuals). -% - "et al." is used for long author and editor lists, or when "others" -% is used. -% -% Modifications and bug fixes from newapa.bst: -% =========================================== -% -% - added month, year to bib entries if month is present -% - fixed bug with In proceedings, added necessary comma after title -% - all conjunctions changed to "and" from "\&" -% - fixed bug with author labels in my.full.label: "et al." now is -% generated when "others" is an author name -% - major modification from Chicago Manual of Style (13th ed.) is that -% only the first author in a reference appears last name first- -% additional authors appear as J. Q. Public. -% - pages are listed as "pp. xx-xx" in all entry types except -% article entries. Unnecessary (IMHO) "()" around page numbers -% were removed, and page numbers now don't end with a period. -% - created chicago.sty for use with this bibstyle (required). -% - fixed bugs in FUNCTION {format.vol.num.pages} for missing volume, -% number, and /or pages. Renamed to format.jour.vol. -% - fixed bug in formatting booktitles: additional period an error if -% book has a volume. -% - fixed bug: editors usually given redundant period before next clause -% (format.editors.dot) removed. -% - added label support for organizations, if both author and editor -% are missing (from alpha.bst). If organization is too long, then -% the key field is used for abbreviated citations. -% - In proceedings or books of several volumes, no comma was written -% between the "Volume x" and the page numbers (this was intentional -% in newapa.bst). Fixed. -% - Some journals may not have volumes/numbers, only month/year (eg. -% IEEE Computer). Fixed bug in article style that assumed volume/number -% was always present. -% -% Original documentation for newapa.sty: -% ===================================== -% -% This version was made by modifying the master file made by -% Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU), and the 'named' BibTeX -% style of Peter F. Patel-Schneider. -% -% Copyright (C) 1985, all rights reserved. -% Copying of this file is authorized only if either -% (1) you make absolutely no changes to your copy, including name, or -% (2) if you do make changes, you name it something other than 'newapa.bst'. -% There are undoubtably bugs in this style. If you make bug fixes, -% improvements, etc. please let me know. My e-mail address is: -% spencer@cgrg.ohio.state.edu or 71160.3141@compuserve.com -% -% This style was made from 'plain.bst', 'named.bst', and 'apalike.bst', -% with lots of tweaking to make it look like APA style, along with tips -% from Young Ryu and Brian Reiser's modifications of 'apalike.bst'. - -ENTRY - { address - author - booktitle - chapter - edition - editor - howpublished - institution - journal - key - keywords - month - note - doi - number - organization - pages - publisher - school - series - title - type - volume - year - eprint - archive - archivePrefix - primaryClass - eid - adsurl - adsnote - version - } - {} - { label.year extra.label sort.year sort.label } - -INTEGERS { output.state before.all mid.sentence after.sentence after.block } - -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := -} - -STRINGS { s t u } - -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { ", " * write$ } - { output.state after.block = - { add.period$ write$ - newline$ - "\newblock " write$ - } - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - s -} - -FUNCTION {add.blank} -{ " " * before.all 'output.state := -} - -% Use a colon to separate output. Used only for address/publisher -% combination in book/inbook types, address/institution for manuals, -% and organization:publisher for proceedings (inproceedings). -% -FUNCTION {output.nonnull.colon} -{ 's := - output.state mid.sentence = - { ": " * write$ } - { output.state after.block = - { add.period$ write$ - newline$ - "\newblock " write$ - } - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - s -} - -FUNCTION {output} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull - if$ -} - -FUNCTION {output.colon} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull.colon - if$ -} - -FUNCTION {output.check} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull - if$ -} - -FUNCTION {output.check.colon} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull.colon - if$ -} - -FUNCTION {output.year.check} -{ year empty$ - { "empty year in " cite$ * warning$ } - { write$ - " " year * extra.label * - month empty$ - { "" * } - { ", " * month * "" * } - if$ - mid.sentence 'output.state := - } - if$ -} - - -FUNCTION {fin.entry} -{ add.period$ - write$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} - -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} - -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - -FUNCTION {new.block.checka} -{ empty$ - 'skip$ - 'new.block - if$ -} - -FUNCTION {new.block.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.block - if$ -} - -FUNCTION {new.sentence.checka} -{ empty$ - 'skip$ - 'new.sentence - if$ -} - -FUNCTION {new.sentence.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.sentence - if$ -} - -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} - -% -% Emphasize the top string on the stack. -% -FUNCTION {emphasize} -{ duplicate$ empty$ - { pop$ "" } - { "{\em " swap$ * "}" * } - if$ -} - -% -% Emphasize the top string on the stack, but add a trailing space. -% -FUNCTION {emphasize.space} -{ duplicate$ empty$ - { pop$ "" } - { "{\em " swap$ * "\/}" * } - if$ -} - -INTEGERS { nameptr namesleft numnames } -% -% Format bibliographical entries with the first author last name first, -% and subsequent authors with initials followed by last name. -% All names are formatted in this routine. -% -FUNCTION {format.names} -{ 's := - #1 'nameptr := % nameptr = 1; - s num.names$ 'numnames := % numnames = num.name$(s); - numnames 'namesleft := - { namesleft #0 > } - - { nameptr #1 = - {s nameptr "{vv~}{ll}{, jj}{, f{.}.}" format.name$ 't := } - {s nameptr "{f{.}.~}{vv~}{ll}{, jj}" format.name$ 't := } - if$ - nameptr #1 > - { namesleft #1 > - { ", " * t * } - { numnames #2 > - { "," * } - 'skip$ - if$ - t "others" = - { " et~al." * } - { " and " * t * } % from Chicago Manual of Style - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := % nameptr += 1; - namesleft #1 - 'namesleft := % namesleft =- 1; - } - while$ -} - -FUNCTION {my.full.label} -{ 's := - #1 'nameptr := % nameptr = 1; - s num.names$ 'numnames := % numnames = num.name$(s); - numnames 'namesleft := - { namesleft #0 > } - - { s nameptr "{vv~}{ll}" format.name$ 't := % get the next name - nameptr #1 > - { namesleft #1 > - { ", " * t * } - { numnames #2 > - { "," * } - 'skip$ - if$ - t "others" = - { " et~al." * } - { " and " * t * } % from Chicago Manual of Style - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := % nameptr += 1; - namesleft #1 - 'namesleft := % namesleft =- 1; - } - while$ - -} - -FUNCTION {format.names.fml} -% -% Format names in "familiar" format, with first initial followed by -% last name. Like format.names, ALL names are formatted. -% -{ 's := - #1 'nameptr := % nameptr = 1; - s num.names$ 'numnames := % numnames = num.name$(s); - numnames 'namesleft := - { namesleft #0 > } - - { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := - - nameptr #1 > - { namesleft #1 > - { ", " * t * } - { numnames #2 > - { "," * } - 'skip$ - if$ - t "others" = - { " et~al." * } - { " and " * t * } -% { " \& " * t * } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := % nameptr += 1; - namesleft #1 - 'namesleft := % namesleft =- 1; - } - while$ -} - -FUNCTION {format.authors} -{ author empty$ - { "" } - { author format.names } - if$ -} - -FUNCTION {format.key} -{ empty$ - { key field.or.null } - { "" } - if$ -} - -% -% Format editor names for use in the "in" types: inbook, incollection, -% inproceedings: first initial, then last names. When editors are the -% LABEL for an entry, then format.editor is used which lists editors -% by last name first. -% -FUNCTION {format.editors.fml} -{ editor empty$ - { "" } - { editor format.names.fml - editor num.names$ #1 > - { " (Eds.)" * } - { " (Ed.)" * } - if$ - } - if$ -} - -% -% Format editor names for use in labels, last names first. -% -FUNCTION {format.editors} -{ editor empty$ - { "" } - { editor format.names - editor num.names$ #1 > - { " eds." * } - { " ed." * } - if$ - } - if$ -} - -FUNCTION {in.format.editors} -{ editor empty$ - { "" } - { editor format.names - editor num.names$ #1 > - { " eds. " swap$ * } - { " ed. " swap$ * } - if$ - } - if$ -} - -FUNCTION {format.title} -{ title empty$ - { "" } - { title "t" change.case$ } - if$ -} - -% Note that the APA style requres case changes -% in article titles. The following does not -% change cases. If you perfer it, uncomment the -% following and comment out the above. - -%FUNCTION {format.title} -%{ title empty$ -% { "" } -% { title } -% if$ -%} - -FUNCTION {n.dashify} -{ 't := - "" - { t empty$ not } - { t #1 #1 substring$ "-" = - { t #1 #2 substring$ "--" = not - { "--" * - t #2 global.max$ substring$ 't := - } - { { t #1 #1 substring$ "-" = } - { "-" * - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -FUNCTION {format.btitle} -{ edition empty$ - { title emphasize } - { title empty$ - { title emphasize } - { volume empty$ % gnp - check for volume, then don't need period - { "{\em " title * "\/} (" * edition * " ed.)" * "." * } - { "{\em " title * "\/} (" * edition * " ed.)" * } - if$ - } - if$ - } - if$ -} - -FUNCTION {format.emphasize.booktitle} -{ edition empty$ - { booktitle emphasize } - { booktitle empty$ - { booktitle emphasize } - { volume empty$ % gnp - extra period an error if book has a volume - { "{\em " booktitle * "\/} (" * edition * " ed.)" * "." *} - { "{\em " booktitle * "\/} (" * edition * " ed.)" * } - if$ - } - if$ - } - if$ - } - - -FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} - -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "can't use both " swap$ * " fields in " * cite$ * warning$ } - if$ -} - -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { "Volume" volume tie.or.space.connect % gnp - changed to mixed case - series empty$ - 'skip$ - { " of " * series emphasize * } - if$ - "volume and number" number either.or.check - } - if$ -} - -FUNCTION {format.number.series} -{ volume empty$ - { number empty$ - { series field.or.null } - { output.state mid.sentence = - { "Number" } % gnp - changed to mixed case always - { "Number" } - if$ - number tie.or.space.connect - series empty$ - { "there's a number but no series in " cite$ * warning$ } - { " in " * series * } - if$ - } - if$ - } - { "" } - if$ -} - -INTEGERS { multiresult } - -FUNCTION {multi.page.check} -{ 't := - #0 'multiresult := - { multiresult not - t empty$ not - and - } - { t #1 #1 substring$ - duplicate$ "-" = - swap$ duplicate$ "," = - swap$ "+" = - or or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - multiresult -} - -FUNCTION {format.pages} -{ pages empty$ - { "" } - { pages multi.page.check - { "pp.\ " pages n.dashify tie.or.space.connect } % gnp - removed () - { "pp.\ " pages tie.or.space.connect } - if$ - } - if$ -} - - -FUNCTION {format.in.pages} -{ pages empty$ - { "" } - { pages multi.page.check - { "" pages n.dashify tie.or.space.connect } % gnp - removed () - { "" pages tie.or.space.connect } - if$ - } - if$ -} - -% By Young (and Spencer) -% GNP - fixed bugs with missing volume, number, and/or pages -% -% Format journal, volume, number, pages for article types. -% -FUNCTION {format.jour.vol} -{ journal empty$ - { "no journal in " cite$ * warning$ - "" } - { journal emphasize.space } - if$ - number empty$ - { volume empty$ - { "no number and no volume in " cite$ * warning$ - "" * } - { "~" * Volume * "" * } - if$ - } - { volume empty$ - {"no volume for " cite$ * warning$ - "~(" * number * ")" * } - { "~" * - volume emphasize.space - "(" * number * ")" * * } - if$ - } - if$ - pages empty$ - {"page numbers missing in " cite$ * warning$ - "" * } % gnp - place a null string on the stack for output - { duplicate$ empty$ - { pop$ format.pages } - { ": " * pages n.dashify * } % gnp - removed pp. for articles - if$ - } - if$ -} - -FUNCTION {format.chapter.pages} -{ chapter empty$ - 'format.pages - { type empty$ - { "Chapter" } % gnp - changed to mixed case - { type "t" change.case$ } - if$ - chapter tie.or.space.connect - pages empty$ - {"page numbers missing in " cite$ * warning$} % gnp - added check - { ", " * format.pages * } - if$ - } - if$ -} - - -FUNCTION {format.in.chapter.pages} -{ chapter empty$ - 'format.in.pages - { type empty$ - { "Chapter" } % gnp - changed to mixed case - { type "t" change.case$ } - if$ - chapter tie.or.space.connect - pages empty$ - {"page numbers missing in " cite$ * warning$} % gnp - added check - { ", " * format.in.pages * } - if$ - } - if$ -} - -FUNCTION {format.in.ed.booktitle} -{ booktitle empty$ - { "" } - { editor empty$ - { "In " format.emphasize.booktitle * } - { "In " format.editors.fml * ", " * format.emphasize.booktitle * } - if$ - } - if$ -} - -FUNCTION {format.in.coll.ed.booktitle} -{ booktitle empty$ - { "" } - { editor empty$ - { "" format.emphasize.booktitle * } - { "In " format.emphasize.booktitle * ", " * in.format.editors * } - if$ - } - if$ -} - -FUNCTION {format.thesis.type} -{ type empty$ - 'skip$ - { pop$ - type "t" change.case$ - } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { "Technical Report" } - 'type - if$ - number empty$ - { "t" change.case$ } - { number tie.or.space.connect } - if$ -} - -FUNCTION {format.article.crossref} -{ "See" - "\citeN{" * crossref * "}" * -} - -FUNCTION {format.crossref.editor} -{ editor #1 "{vv~}{ll}" format.name$ - editor num.names$ duplicate$ - #2 > - { pop$ " et~al." * } - { #2 < - 'skip$ - { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { " et~al." * } - { " and " * editor #2 "{vv~}{ll}" format.name$ * } - if$ - } - if$ - } - if$ -} - -FUNCTION {format.book.crossref} -{ volume empty$ - { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ - "In " - } - { "Volume" volume tie.or.space.connect % gnp - changed to mixed case - " of " * - } - if$ - editor empty$ - editor field.or.null author field.or.null = - or - { key empty$ - { series empty$ - { "need editor, key, or series for " cite$ * " to crossref " * - crossref * warning$ - "" * - } - { "{\em " * series * "\/}" * } - if$ - } - { key * } - if$ - } - { format.crossref.editor * } - if$ - " \citeN{" * crossref * "}" * -} - -FUNCTION {format.incoll.inproc.crossref} -{ "See" - " \citeN{" * crossref * "}" * -} - -% format.lab.names: -% -% determines "short" names for the abbreviated author information. -% "Long" labels are created in calc.label, using the routine my.full.label -% to format author and editor fields. -% -% There are 4 cases for labels. (n=3 in the example) -% a) one author Foo -% b) one to n Foo, Bar and Baz -% c) use of "and others" Foo, Bar et al. -% d) more than n Foo et al. -% -FUNCTION {format.lab.names} -{ 's := - s num.names$ 'numnames := - numnames #2 > % change number to number of others allowed before - % forcing "et al". - { s #1 "{vv~}{ll}" format.name$ " et~al." * } - { - numnames #1 - 'namesleft := - #2 'nameptr := - s #1 "{vv~}{ll}" format.name$ - { namesleft #0 > } - { nameptr numnames = - { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { " et~al." * } - { " and " * s nameptr "{vv~}{ll}" format.name$ * } - if$ - } - { ", " * s nameptr "{vv~}{ll}" format.name$ * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - } - if$ -} - -FUNCTION {author.key.label} -{ author empty$ - { key empty$ - { "no key, author in " cite$ * warning$ - cite$ #1 #3 substring$ } - 'key - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {editor.key.label} -{ editor empty$ - { key empty$ - { "no key, editor in " cite$ * warning$ - cite$ #1 #3 substring$ } - 'key - if$ - } - { editor format.lab.names } - if$ -} - -FUNCTION {author.key.organization.label} -% -% added - gnp. Provide label formatting by organization if author is null. -% -{ author empty$ - { organization empty$ - { key empty$ - { "no key, author or organization in " cite$ * warning$ - cite$ #1 #3 substring$ } - 'key - if$ - } - { organization } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {editor.key.organization.label} -% -% added - gnp. Provide label formatting by organization if editor is null. -% -{ editor empty$ - { organization empty$ - { key empty$ - { "no key, editor or organization in " cite$ * warning$ - cite$ #1 #3 substring$ } - 'key - if$ - } - { organization } - if$ - } - { editor format.lab.names } - if$ -} - -FUNCTION {author.editor.key.label} -{ author empty$ - { editor empty$ - { key empty$ - { "no key, author, or editor in " cite$ * warning$ - cite$ #1 #3 substring$ } - 'key - if$ - } - { editor format.lab.names } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {calc.label} -% -% Changed - GNP. See also author.organization.sort, editor.organization.sort -% Form label for BibTeX entry. The classification of which fields are used -% for which type of entry (book, inbook, etc.) are taken from alpha.bst. -% The change here from newapa is to also include organization as a -% citation label if author or editor is missing. -% -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label - { type$ "proceedings" = - 'editor.key.organization.label - { type$ "manual" = - 'author.key.organization.label - 'author.key.label - if$ - } - if$ - } - if$ - - author empty$ % generate the full label citation information. - { editor empty$ - { organization empty$ - { "no author, editor, or organization in " cite$ * warning$ - "??" } - { organization } - if$ - } - { editor my.full.label } - if$ - } - { author my.full.label } - if$ - -% leave label on the stack, to be popped when required. - - "}{" * swap$ * "}{" * -% year field.or.null purify$ #-1 #4 substring$ * -% -% save the year for sort processing afterwards (adding a, b, c, etc.) -% - year field.or.null purify$ #-1 #4 substring$ - 'label.year := -} - -FUNCTION {output.bibitem} -{ newline$ - - "\bibitem[\protect\citeauthoryear{" write$ - calc.label write$ - sort.year write$ - "}]{" write$ - - cite$ write$ - "}" write$ - newline$ - "" - before.all 'output.state := -} - -FUNCTION {output.doi} -{ - doi empty$ - { skip$ } - { "\doi{" doi * "}" * output } - if$ -} - -FUNCTION {format.archive} -{ - archivePrefix empty$ - { "" } - { archivePrefix ":" *} - if$ -} - -FUNCTION {format.primaryClass} -{ - primaryClass empty$ - { "" } - { "{[" primaryClass * "]}" *} - if$ -} - -FUNCTION {format.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {format.softmisc.archive} -{ - archivePrefix empty$ - { "" } - { "" } - if$ -} - -FUNCTION {format.softmisc.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {article} -{ output.bibitem - format.authors - "author" output.check -add.period$ "" * - author format.key output % added - output.year.check % added - new.block - format.title - "title" output.check - new.block - crossref missing$ - { format.jour.vol output - } - { format.article.crossref output.nonnull - format.pages output - } - if$ - new.block - output.doi - new.block - format.eprint output - add.blank - format.primaryClass output - fin.entry -} - -FUNCTION {book} -{ output.bibitem - author empty$ - { format.editors - "author and editor" output.check } - { format.authors - output.nonnull -add.period$ "" * - crossref missing$ - { "author and editor" editor either.or.check } - 'skip$ - if$ - } - if$ - output.year.check % added - new.block - format.btitle - "title" output.check - crossref missing$ - { format.bvolume output - new.block - format.number.series output - new.sentence - address output - publisher "publisher" output.check.colon - } - { new.block - format.book.crossref output.nonnull - } - if$ - new.block - note output - fin.entry -} - -FUNCTION {booklet} -{ output.bibitem - format.authors output - author format.key output % added - output.year.check % added - new.block - format.title - "title" output.check - new.block - howpublished output - address output - new.block - note output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { format.editors - "author and editor" output.check - } - { format.authors output.nonnull - crossref missing$ - { "author and editor" editor either.or.check } - 'skip$ - if$ - } - if$ - output.year.check % added - new.block - format.btitle - "title" output.check - crossref missing$ - { format.bvolume output - format.chapter.pages - "chapter and pages" output.check - new.block - format.number.series output - new.sentence - address output - publisher - "publisher" output.check.colon - } - { format.chapter.pages "chapter and pages" output.check - new.block - format.book.crossref output.nonnull - } - if$ - new.block - note output - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - format.authors - "author" output.check -add.period$ "" * - author format.key output % added - output.year.check % added - new.block - format.title - "title" output.check - crossref missing$ - { format.in.coll.ed.booktitle -"booktitle" output.check - format.bvolume output - format.number.series output - format.in.chapter.pages output % gnp - was special.output.nonnull -% left out comma before page numbers - new.sentence - address output - publisher "publisher" output.check.colon - } - { format.incoll.inproc.crossref - output.nonnull - format.in.chapter.pages output - } - if$ - new.block - note output - new.block - output.doi - fin.entry -} - -FUNCTION {inproceedings} -{ output.bibitem - format.authors - "author" output.check - author format.key output % added - output.year.check % added - new.block - format.title - "title" output.check - new.block - crossref missing$ - { format.in.ed.booktitle - "booktitle" output.check - format.bvolume output - format.number.series output - address output - format.pages output - new.sentence - organization output - publisher output.colon - } - { format.incoll.inproc.crossref output.nonnull - format.pages output - } - if$ - new.block - note output - fin.entry -} - -FUNCTION {conference} { inproceedings } - -FUNCTION {manual} -{ output.bibitem - author empty$ - { editor empty$ - { organization "organization" output.check - organization format.key output } % if all else fails, use key - { format.editors "author and editor" output.check } - if$ - } - { format.authors output.nonnull } - if$ - output.year.check % added - new.block - format.btitle - "title" output.check - organization address new.block.checkb -% Reversed the order of "address" and "organization", added the ":". - address output - organization "organization" output.check.colon -% address output -% ":" output -% organization output - new.block - note output - fin.entry -} - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors - "author" output.check - author format.key output % added - output.year.check % added - new.block - format.title - "title" output.check - new.block - "Master's thesis" format.thesis.type output.nonnull - school "school" output.check - address output - new.block - note output - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output -add.period$ "" * - author format.key output % added - output.year.check % added - title howpublished new.block.checkb - format.title output - new.block - howpublished output - new.block - note output - fin.entry -} - -FUNCTION {softmisc} -{ output.bibitem - format.authors output -add.period$ "" * - author format.key output % added - %%output.year.check % added - year output - title howpublished new.block.checkb - format.title output - version output - new.block - howpublished output - new.block - note output - new.block - format.softmisc.eprint output - fin.entry -} - -FUNCTION {phdthesis} -{ output.bibitem - format.authors - "author" output.check - author format.key output % added - output.year.check % added - new.block - format.btitle - "title" output.check - new.block - "Ph.\ D. thesis" format.thesis.type output.nonnull - school "school" output.check - address output - new.block - note output - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - editor empty$ - { organization output - organization format.key output } % gnp - changed from author format.key - { format.editors output.nonnull } - if$ -% author format.key output % gnp - removed (should be either -% editor or organization - output.year.check % added (newapa) - new.block - format.btitle - "title" output.check - format.bvolume output - format.number.series output - address output - new.sentence - organization output - publisher output.colon - new.block - note output - fin.entry -} - -FUNCTION {techreport} -{ output.bibitem - format.authors - "author" output.check - author format.key output % added - output.year.check % added - new.block - format.title - "title" output.check - new.block - format.tr.number output.nonnull - institution - "institution" output.check - address output - new.block - note output - fin.entry -} - -FUNCTION {unpublished} -{ output.bibitem - format.authors - "author" output.check - author format.key output % added - output.year.check % added - new.block - format.title - "title" output.check - new.block - note "note" output.check - fin.entry -} - -FUNCTION {default.type} { misc } - -MACRO {jan} {"January"} - -MACRO {feb} {"February"} - -MACRO {mar} {"March"} - -MACRO {apr} {"April"} - -MACRO {may} {"May"} - -MACRO {jun} {"June"} - -MACRO {jul} {"July"} - -MACRO {aug} {"August"} - -MACRO {sep} {"September"} - -MACRO {oct} {"October"} - -MACRO {nov} {"November"} - -MACRO {dec} {"December"} - -MACRO {acmcs} {"ACM Computing Surveys"} - -MACRO {acta} {"Acta Informatica"} - -MACRO {ai} {"Artificial Intelligence"} - -MACRO {cacm} {"Communications of the ACM"} - -MACRO {ibmjrd} {"IBM Journal of Research and Development"} - -MACRO {ibmsj} {"IBM Systems Journal"} - -MACRO {ieeese} {"IEEE Transactions on Software Engineering"} - -MACRO {ieeetc} {"IEEE Transactions on Computers"} - -MACRO {ieeetcad} - {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} - -MACRO {ipl} {"Information Processing Letters"} - -MACRO {jacm} {"Journal of the ACM"} - -MACRO {jcss} {"Journal of Computer and System Sciences"} - -MACRO {scp} {"Science of Computer Programming"} - -MACRO {sicomp} {"SIAM Journal on Computing"} - -MACRO {tocs} {"ACM Transactions on Computer Systems"} - -MACRO {tods} {"ACM Transactions on Database Systems"} - -MACRO {tog} {"ACM Transactions on Graphics"} - -MACRO {toms} {"ACM Transactions on Mathematical Software"} - -MACRO {toois} {"ACM Transactions on Office Information Systems"} - -MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} - -MACRO {tcs} {"Theoretical Computer Science"} - -READ - -FUNCTION {sortify} -{ purify$ - "l" change.case$ -} - -INTEGERS { len } - -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - - - -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { nameptr #1 > - { " " * } - 'skip$ - if$ - s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := - nameptr numnames = t "others" = and - { " et~al" * } - { t sortify * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {sort.format.title} -{ 't := - "A " #2 - "An " #3 - "The " #4 t chop.word - chop.word - chop.word - sortify - #1 global.max$ substring$ -} - -FUNCTION {author.sort} -{ author empty$ - { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "" } - { key sortify } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {editor.sort} -{ editor empty$ - { key empty$ - { "to sort, need editor or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ -} - -FUNCTION {author.editor.sort} -{ author empty$ - { "missing author in " cite$ * warning$ - editor empty$ - { key empty$ - { "to sort, need author, editor, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {author.organization.sort} -% -% added - GNP. Stack author or organization for sorting (from alpha.bst). -% Unlike alpha.bst, we need entire names, not abbreviations -% -{ author empty$ - { organization empty$ - { key empty$ - { "to sort, need author, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { organization sortify } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {editor.organization.sort} -% -% added - GNP. Stack editor or organization for sorting (from alpha.bst). -% Unlike alpha.bst, we need entire names, not abbreviations -% -{ editor empty$ - { organization empty$ - { key empty$ - { "to sort, need editor, organization, or key in " cite$ * warning$ - "" - } - { key sortify } - if$ - } - { organization sortify } - if$ - } - { editor sort.format.names } - if$ -} - -FUNCTION {presort} -% -% Presort creates the bibentry's label via a call to calc.label, and then -% sorts the entries based on entry type. Chicago.bst adds support for -% including organizations as the sort key; the following is stolen from -% alpha.bst. -% -{ calc.label sortify % recalculate bibitem label - year field.or.null purify$ #-1 #4 substring$ * % add year - " " - * - type$ "book" = - type$ "inbook" = - or - 'author.editor.sort - { type$ "proceedings" = - 'editor.organization.sort - { type$ "manual" = - 'author.organization.sort - 'author.sort - if$ - } - if$ - } - if$ - #1 entry.max$ substring$ % added for newapa - 'sort.label := % added for newapa - sort.label % added for newapa - * - " " - * - title field.or.null - sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := -} - -ITERATE {presort} - -SORT % by label, year, author/editor, title - -STRINGS { last.label next.extra } - -INTEGERS { last.extra.num } - -FUNCTION {initialize.extra.label.stuff} -{ #0 int.to.chr$ 'last.label := - "" 'next.extra := - #0 'last.extra.num := -} - -FUNCTION {forward.pass} -% -% Pass through all entries, comparing current entry to last one. -% Need to concatenate year to the stack (done by calc.label) to determine -% if two entries are the same (see presort) -% -{ last.label - calc.label year field.or.null purify$ #-1 #4 substring$ * % add year - #1 entry.max$ substring$ = % are they equal? - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - calc.label year field.or.null purify$ #-1 #4 substring$ * % add year - #1 entry.max$ substring$ 'last.label := % assign to last.label - } - if$ -} - -FUNCTION {reverse.pass} -{ next.extra "b" = - { "a" 'extra.label := } - 'skip$ - if$ - label.year extra.label * 'sort.year := - extra.label 'next.extra := -} - -EXECUTE {initialize.extra.label.stuff} - -ITERATE {forward.pass} - -REVERSE {reverse.pass} - -FUNCTION {bib.sort.order} -{ sort.label - " " - * - year field.or.null sortify - * - " " - * - title field.or.null - sort.format.title - * - #1 entry.max$ substring$ - 'sort.key$ := -} - -ITERATE {bib.sort.order} - -SORT % by sort.label, year, title --- giving final bib. order. - -FUNCTION {begin.bib} - -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - "\begin{thebibliography}{}" write$ newline$ - "\providecommand{\doi}[1]{\url{https://doi.org/#1}}" - write$ newline$ - "\bibcommenthead" write$ newline$ -} - - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -FUNCTION {end.bib} -{ newline$ - "\end{thebibliography}" write$ newline$ -} - -EXECUTE {end.bib} - diff --git a/_extensions/christopherkenny/nature/sn-jnl.cls b/_extensions/christopherkenny/nature/sn-jnl.cls deleted file mode 100644 index bb00241..0000000 --- a/_extensions/christopherkenny/nature/sn-jnl.cls +++ /dev/null @@ -1,1791 +0,0 @@ -%% -%% This is file `sn-jnl.cls', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% classes.dtx (with options: `sn-jnl') -%% -%% This is a generated file. -%% -%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 -%% The LaTeX3 Project and any individual authors listed elsewhere -%% in this file. -%% -%% This file was generated from file(s) of the LaTeX base system. -%% -------------------------------------------------------------- -%% -%% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3c -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3c or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This file has the LPPL maintenance status "maintained". -%% -%% This file may only be distributed together with a copy of the LaTeX -%% base system. You may however distribute the LaTeX base system without -%% such generated files. -%% -%% The list of all files belonging to the LaTeX base distribution is -%% given in the file `manifest.txt'. See also `legal.txt' for additional -%% information. -%% -%% The list of derived (unpacked) files belonging to the distribution -%% and covered by LPPL is defined by the unpacking scripts (with -%% extension .ins) which are part of the distribution. -%% \CharacterTable -%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -%% Digits \0\1\2\3\4\5\6\7\8\9 -%% Exclamation \! Double quote \" Hash (number) \# -%% Dollar \$ Percent \% Ampersand \& -%% Acute accent \' Left paren \( Right paren \) -%% Asterisk \* Plus \+ Comma \, -%% Minus \- Point \. Solidus \/ -%% Colon \: Semicolon \; Less than \< -%% Equals \= Greater than \> Question mark \? -%% Commercial at \@ Left bracket \[ Backslash \\ -%% Right bracket \] Circumflex \^ Underscore \_ -%% Grave accent \` Left brace \{ Vertical bar \| -%% Right brace \} Tilde \~} -\NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesClass{sn-jnl} - [2019/11/18 v0.1: An authoring template for Springer Journal articles] - -\newif\if@restonecol -\newif\if@titlepage \@titlepagefalse -\newif\if@cropmarkson \@cropmarksonfalse -\newif\ifDoublecol \Doublecolfalse% -\newif\ifpagebody\global\pagebodyfalse% -\newif\if@iicol\global\@iicolfalse% -\newif\if@bibcomment\global\@bibcommentfalse% -\newif\if@referee\global\@refereefalse% -\newif\if@vrulerlinenumberon\global\@vrulerlinenumberonfalse% -\newif\if@pdflatex\global\@pdflatexfalse% -\newif\if@remarkboxon\global\@remarkboxonfalse% - -\newif\if@Numbered@refstyle\global\@Numbered@refstylefalse% Namedate - -\newif\if@Spr@basic@refstyle\global\@Spr@basic@refstylefalse% 1.Basic Springer Nature Reference Style/Chemistry Reference Style -> sn-basic.bst -\newif\if@Mathphys@numrefstyle\global\@Mathphys@numrefstylefalse% 2.Math and Physical Sciences Reference Style -> sn-mathphys.bst -\newif\if@Mathphys@ayrefstyle\global\@Mathphys@ayrefstylefalse% 2.Math and Physical Sciences Reference Style -> sn-mathphys.bst -\newif\if@APS@refstyle\global\@APS@refstylefalse% 3.American Physical Society (APS) Reference Style -> sn-APS.bst -\newif\if@Vancouver@refstyle\global\@Vancouver@refstylefalse% 4.Vancouver Reference Style -> sn-vancouver.bst -\newif\if@APA@refstyle\global\@APA@refstylefalse% 5.APA-based Social Sciences/Psychology Reference Style -> sn-apacite.bst -\newif\if@Chicago@refstyle\global\@Chicago@refstylefalse% 6.Chicago-based Humanities Reference Style -> sn-chicago.bst -\newif\if@Standard@Nature@refstyle\global\@Standard@Nature@refstylefalse% 7.Standard Nature Research Style -> sn-nature.bst - -%% Template Options -\DeclareOption{a4paper}{\PassOptionsToPackage{a4}{crop}} -\DeclareOption{a3paper}{\PassOptionsToClass{a3paper}{article}\PassOptionsToPackage{a3}{crop}} -\DeclareOption{centre}{\PassOptionsToPackage{center}{crop}} -\DeclareOption{crop}{\PassOptionsToPackage{frame}{crop}\global\@cropmarksontrue} -\DeclareOption{nocrop}{\PassOptionsToPackage{off}{crop}\global\@cropmarksontrue} -\DeclareOption{info}{\PassOptionsToPackage{info}{crop}} -\DeclareOption{noinfo}{\PassOptionsToPackage{noinfo}{crop}} - -%% Classfile Options -\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse} -\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue} -\DeclareOption{draft}{\setlength\overfullrule{5pt}} -\DeclareOption{titlepage}{\@titlepagetrue} -\DeclareOption{notitlepage}{\@titlepagefalse} -\DeclareOption{onecolumn}{\@twocolumnfalse} -\DeclareOption{twocolumn}{\@twocolumntrue} -\DeclareOption{openbib}{\let\if@openbib\iftrue} -\DeclareOption{pagegrid}{\global\pagebodytrue}% -\DeclareOption{iicol}{\global\@iicoltrue}% -\DeclareOption{bibcomment}{\global\@bibcommenttrue}% -\DeclareOption{referee}{\global\@refereetrue}% -\DeclareOption{lineno}{\global\@vrulerlinenumberontrue}% -\DeclareOption{pdflatex}{\global\@pdflatextrue}% -\DeclareOption{remarkboxoff}{\global\@remarkboxonfalse}% - -\DeclareOption{sn-basic}{\global\@Spr@basic@refstyletrue}% -\DeclareOption{sn-mathphys-num}{\global\@Mathphys@numrefstyletrue}% -\DeclareOption{sn-mathphys-ay}{\global\@Mathphys@ayrefstyletrue}% -\DeclareOption{sn-aps}{\global\@APS@refstyletrue}% -\DeclareOption{sn-vancouver}{\global\@Vancouver@refstyletrue}% -\DeclareOption{sn-apa}{\global\@APA@refstyletrue}% -\DeclareOption{sn-chicago}{\global\@Chicago@refstyletrue}% -\DeclareOption{sn-nature}{\global\@Standard@Nature@refstyletrue}% - -\DeclareOption{Numbered}{\global\@Numbered@refstyletrue}% -\DeclareOption{NameDate}{\global\@Numbered@refstylefalse}% - - -%%\ExecuteOptions{twosidecrop,crop,centre,info,croppage} -\ProcessOptions -\LoadClass[twoside,fleqn]{article} - -\gdef\refereedefns{% -\if@referee% -\usepackage{setspace}% -\doublespacing% -\fi}% -\refereedefns% - -%% General Packages Used -% -%\AtBeginDocument{% -%%\newcommand*\ExtraParaSkip{12pt}% -%\SetFootnoteHook{\hspace*{-8pt}}% -%\DeclareNewFootnote{A}[gobble]% -%\setlength{\skip\footinsA}{0pt} -%}% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%% Fonts & Sizes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -%% Fonts Used -%%\RequirePackage[T1]{fontenc}% -% -\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}% -\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}% -\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}% -\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}% -\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}% -\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}% -\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}% -\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal}% -\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal}% -% -\renewcommand\normalsize{% - \@setfontsize\normalsize{10bp}{12bp}% - \abovedisplayskip 12\p@ \@plus2\p@ \@minus1\p@ - \abovedisplayshortskip \z@ \@plus3\p@% - \belowdisplayshortskip 3\p@ \@plus3\p@ \@minus3\p@% - \belowdisplayskip \abovedisplayskip% - \let\@listi\@listI}% -\normalsize% -% -\newcommand\medsize{% - \@setfontsize\small\@xipt{13}% - \abovedisplayskip 5\p@ \@plus3\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus2\p@ - \belowdisplayshortskip 3\p@ \@plus2\p@ \@minus2\p@ - \def\@listi{\leftmargin\leftmargini - \topsep 4\p@ \@plus2\p@ \@minus2\p@ - \parsep 2\p@ \@plus\p@ \@minus\p@ - \itemsep \parsep}% - \belowdisplayskip \abovedisplayskip}% -% -\renewcommand\small{% - \@setfontsize\small\@ixpt{11}% - \abovedisplayskip 5\p@ \@plus3\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus2\p@ - \belowdisplayshortskip 3\p@ \@plus2\p@ \@minus2\p@ - \def\@listi{\leftmargin\leftmargini - \topsep 4\p@ \@plus2\p@ \@minus2\p@ - \parsep 2\p@ \@plus\p@ \@minus\p@ - \itemsep \parsep}% - \belowdisplayskip \abovedisplayskip}% -% -\renewcommand\footnotesize{% - \@setfontsize\footnotesize{7}{8}% - \abovedisplayskip 5\p@ \@plus2\p@ \@minus4\p@ - \abovedisplayshortskip \z@ \@plus\p@ - \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ - \def\@listi{\leftmargin\leftmargini - \topsep 3\p@ \@plus\p@ \@minus\p@ - \parsep 2\p@ \@plus\p@ \@minus\p@ - \itemsep \parsep}% - \belowdisplayskip \abovedisplayskip} -% -\renewcommand\scriptsize{\@setfontsize\scriptsize\@ixpt\@ixpt}% -\newcommand\scrisize{\@setfontsize\scrisize{9.3}{9}}% -\renewcommand\tiny{\@setfontsize\tiny\@vpt\@vipt}% -\renewcommand\large{\@setfontsize\large{12}{14}}% -\newcommand\larg{\@setfontsize\larg{11}{13}}% -\renewcommand\Large{\@setfontsize\Large{16}{18}}% -\renewcommand\LARGE{\@setfontsize\LARGE\@xviipt{22}}% -\renewcommand\huge{\@setfontsize\huge\@xxpt{25}}% -\renewcommand\Huge{\@setfontsize\Huge\@xxvpt{30}}% -% -\DeclareMathSizes{\@ixpt}{\@ixpt}{7}{5}% -\DeclareMathSizes{\@xpt}{\@xpt}{7}{5}% -\DeclareMathSizes{\@xipt}{\@xipt}{7}{5}% -% -\DeclareRobustCommand*\textsubscript[1]{% - \@textsubscript{\selectfont#1}}% -% -\def\@textsubscript#1{% - {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}}% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%% Layout Settings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -%%\RequirePackage{geometry}% -% -\newlength\columnhsize% -% -%% Regular Pages (for Opening page - redefined) -% -\if@iicol% -% -%% for double column used sn-medium design trim and page size %% -% -\setlength\headheight{12pt}% -\setlength\headsep{5.15mm}% -% -\setlength\columnsep{8mm}% -\setlength\columnhsize{76mm}% -% -\setlength\maxdepth{0pt}% -\setlength\footnotesep{7\p@}% -\setlength{\skip\footins}{18\p@ \@plus 6\p@ \@minus 3\p@}% -% -\RequirePackage[% - reversemp, - paperwidth=210mm, - paperheight=297mm, - top={26mm}, - headheight={12pt}, - headsep={5.15mm}, - text={160mm,216mm}, - marginparsep=5mm, - marginparwidth=12mm, - bindingoffset=6mm, - footskip=10.13mm,twocolumn]{geometry}% -% -\renewcommand\footnoterule{% - \kern3\p@% - \hrule \@height.2mm \@width\columnwidth% - \kern5.5\p@}% -% -\else% -%% For single column used smallcond design trim and page size %% -\RequirePackage[% - reversemp, - paperwidth=210mm, - paperheight=297mm, - top={26mm}, - headheight={5.5pt}, - headsep={5.6mm}, - text={31pc,194.25mm}, - marginparsep=5mm, - marginparwidth=12mm, - bindingoffset=6mm, - footskip=10mm]{geometry} -% - \setlength\maxdepth{0pt}% - \setlength\columnsep{5mm}% - \setlength{\marginparsep}{5mm}% - \setlength{\marginparwidth}{12mm}% - \setlength\footnotesep{5.75\p@}% - \setlength{\skip\footins}{8\p@ \@plus 4\p@ \@minus 0\p@}% -% -\renewcommand\footnoterule{% - \kern3\p@% - \ifodd\c@page% - \hrule \@height.2mm \@width\textwidth% - \else% - \hrule \@height.2mm \@width37mm - \fi% - \kern5.5\p@}% -% -\fi% -% -% -\setlength\parindent{1.5em}% -% -\def\StepUpCounter#1{\global\advance#1by 1\relax}% -\def\StepDownCounter#1{\global\advance#1by -1\relax}% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%% Pagination Settings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Line spacing -\setlength\lineskip{1\p@}% -\setlength\normallineskip{1\p@}% -%%\renewcommand\baselinestretch{1.5}% -\parskip=0pt% -% -% Page break penalties -% -\@lowpenalty 51 -\@medpenalty 151 -\@highpenalty 301 -% -% Disallow widows and orphans -% -\clubpenalty 10000 -\widowpenalty 10000 -% -% Disable page breaks before equations, allow pagebreaks after -% equations and discourage widow lines before equations. -% -\displaywidowpenalty 100 -\predisplaypenalty 10000 -\postdisplaypenalty 0 -% -% Set these global demerits -% -\doublehyphendemerits 1000000 % corresponds to badness 800 -\finalhyphendemerits 1000000 % corresponds to badness 1000 -% -% Allow loose lines rather than overfull lines -% -\vbadness=9999 -\tolerance=9999 -% -% Allow breaking the page in the middle of a paragraph -% -\interlinepenalty 0 -% -% Disallow breaking the page after a hyphenated line -\brokenpenalty 10000 -% -% Hyphenation; don't split words into less than three characters -\lefthyphenmin=3 -\righthyphenmin=3 -% -% Float placement parameters -% -% The total number of floats that can be allowed on a page. -\setcounter{totalnumber}{3} -% -% The maximum number of floats at the top and bottom of a page. -\setcounter{topnumber}{5} -\setcounter{bottomnumber}{5} -% -% The maximum part of the top or bottom of a text page that can be -% occupied by floats. This is set so that at least four lines of text -% fit on the page. -\renewcommand\topfraction{.921} -\renewcommand\bottomfraction{.921} - -% The minimum amount of a text page that must be occupied by text. -% This should accomodate four lines of text. -\renewcommand\textfraction{.13} - -% The minimum amount of a float page that must be occupied by floats. -\renewcommand\floatpagefraction{.887} - -% The same parameters repeated for double column output -\renewcommand\dbltopfraction{.88} -\renewcommand\dblfloatpagefraction{.88} - -% Space between floats -\setlength\floatsep{18\p@ \@plus 4\p@ \@minus 2\p@} - -% Space between floats and text -\setlength\textfloatsep{15\p@ \@plus 4\p@ \@minus 2\p@} - -% Space above and below an inline figure -\setlength\intextsep {18\p@ \@plus 4\p@ \@minus 2\p@} - -% For double column floats -\setlength\dblfloatsep {20\p@ \@plus 4\p@ \@minus 2\p@} -\setlength\dbltextfloatsep{15\p@ \@plus 4\p@ \@minus 2\p@} - -\hyphenation{Figure Figures Table Tables Equation Equations Section Sections Appendix Theorem Lemma} - - -% -%%%%%%%%%%%%%%%%%%%%%%%%%%% Math Settings %%%%%%%%%%%%%%%%%%%%%%%%%%% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%% For above/below spacing -\def\eqnarray{% - \stepcounter{equation}% - \def\@currentlabel{\p@equation\theequation}% - \global\@eqnswtrue - \m@th - \global\@eqcnt\z@ - \tabskip\@centering - \let\\\@eqncr - $$\everycr{}\halign to\displaywidth\bgroup - \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel - &\global\@eqcnt\@ne\hskip \tw@\arraycolsep \hfil${##}$\hfil - &\global\@eqcnt\tw@ \hskip \tw@\arraycolsep - $\displaystyle{##}$\hfil\tabskip\@centering - &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup - \tabskip\z@skip - \cr -} -\def\endeqnarray{% - \@@eqncr - \egroup - \global\advance\c@equation\m@ne - $$\@ignoretrue -} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%% Titles %%%%%%%%%%%%%%%%%%%%%%%%%%% -% -\renewcommand\refname{References}% -\renewcommand\figurename{Fig.}% defined as per springer style -\renewcommand\tablename{Table}% -\renewcommand\appendixname{Appendix}% -\renewcommand\abstractname{Abstract}% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%% Article Front Matter %%%%%%%%%%%%%%%%%%%%%%%%%%% -% - -\def\raggedleft{\leftskip0pt plus 1fil\parfillskip=0pt\relax}% -\def\raggedright{\rightskip0pt plus 1fil\parfillskip=0pt\relax}% -\def\raggedcenter{\leftskip=0pt plus 0.5fil\rightskip=0pt plus 0.5fil% -\parfillskip=0pt\let\hb=\break}% -\def\titraggedcenter{\leftskip=12pt plus 0.5fil\rightskip=12pt plus 0.5fil% -\parfillskip=0pt\let\hb=\break}% -\def\absraggedcenter{\leftskip=24pt plus 0.5fil\rightskip=24pt plus 0.5fil% -\parfillskip=0pt\let\hb=\break}% - -% -%%% Font Def -\def\Artcatfont{\reset@font\fontsize{8bp}{10bp}\selectfont}% -\def\Titlefont{\reset@font\fontsize{17bp}{22.5bp}\selectfont\titraggedcenter}% -\def\SubTitlefont{\reset@font\fontsize{14bp}{16.5bp}\selectfont\titraggedcenter}% -\def\Authorfont{\reset@font\fontsize{12bp}{14.5bp}\selectfont\boldmath\titraggedcenter}% -\def\addressfont{\reset@font\fontsize{11bp}{13.5bp}\selectfont\titraggedcenter}% -\def\abstractheadfont{\reset@font\fontsize{9bp}{11bp}\bfseries\selectfont\titraggedcenter}% -\def\abstractsubheadfont{\reset@font\fontsize{9bp}{11bp}\bfseries\selectfont}% -\def\abstractfont{\reset@font\fontsize{9bp}{11bp}\selectfont\leftskip=24pt\rightskip=24pt\parfillskip=0pt plus 1fil}% -\def\keywordfont{\reset@font\fontsize{8bp}{9.5bp}\selectfont\leftskip=24pt\rightskip=24pt plus0.5fill}% -\def\historyfont{\reset@font\fontsize{8bp}{9.5bp}\selectfont\leftskip=24pt\rightskip=24pt plus0.5fill}% - -%% Article Type - -\newbox\artcatbox% - - - -\def\articletype#1{\if!#1!\else\setbox\artcatbox\hbox{\Artcatfont\hskip1mm#1\hskip1mm}\fi% -\gdef\ArtType{\fboxsep=0pt{\vbox to 4mm{\vfil% - {\raggedright\box\artcatbox}\vfil}}}% -\gdef\@ArtType{#1}}% -%%\articletype{RESEARCH ARTICLE}% -\articletype{}% - - -%% Article Title - -\renewcommand{\title}[2][]{% -\gdef\@checktitle{#1}\ifx\@checktitle\empty\gdef\@title{#2}% -\gdef\s@title{#2}\else\gdef\@title{#2}\gdef\s@title{#1}\fi% -\markboth{\textit{\s@title}}{\textit{\s@title}}}% - -\def\subtitle#1{\gdef\@subtitle{#1}}\subtitle{}% - -%% Cross Link for Author & Address -\def\jmkLabel#1{\@bsphack\protected@write\@auxout{}{\string\Newlabel{#1}{\@currentlabel}}\@esphack}% -\def\Newlabel#1#2{\expandafter\xdef\csname X@#1\endcsname{#2}}% -\def\jmkRef#1{\@ifundefined{X@#1}{0}{\csname X@#1\endcsname}}% - -%% Article Author(s) -\let\sep\@empty% -\let\authorsep\@empty% -\newcount\aucount% -\newcount\corraucount% -\newcount\punctcount% -% -\def\artauthors{}% -\newif\if@auemail% -\newif\if@corauemail% -% -\def\au@and{\ifnum\punctcount=2\ and\else\unskip, \advance\punctcount by -1 \fi}% -% -\def\author{\advance\aucount by 1\@ifstar\@@corrauthor\@@author}% -% -\newcommand{\@@author}[2][]{\def\@authfrstarg{#1}\@corauemailfalse% -\g@addto@macro\artauthors{% - \ifnum\aucount=1% - \global\@auemailtrue% - \else% - \global\@auemailfalse% - \fi% - \Authorfont% - \def\baselinestretch{1}% - \authorsep{#2}\unskip\ifx\@authfrstarg\empty\else\textsuperscript{\smash{{% - \@for\@@affmark:=#1\do{\edef\affnum{\@ifundefined{X@\@@affmark}{\@@affmark}{\jmkRef{\@@affmark}}}% - \unskip\sep\affnum\let\sep=,}}}}\fi% - \def\authorsep{{\au@and} }%%% - \global\let\sep\@empty\global\let\@corref\@empty% -}}% -% -\newcommand{\@@corrauthor}[2][]{\def\@authfrstarg{#1}\@corauemailtrue\advance\corraucount by 1% -\g@addto@macro\artauthors{% - \global\@auemailtrue% - \Authorfont% - \def\baselinestretch{1}% - \authorsep{#2}\unskip\ifx\@authfrstarg\empty\else\textsuperscript{\smash{{% - \@for\@@affmark:=#1\do{\edef\affnum{\@ifundefined{X@\@@affmark}{\@@affmark}{\jmkRef{\@@affmark}}}% - \unskip\sep\affnum\let\sep=,}}}{*}\hskip-1pt}\fi\unskip% - \def\authorsep{\au@and~}%%% - \global\let\sep\@empty\global\let\@corref\@empty% -}}% -%% -%% Miscellaneous macros %% -%% -\def\fnm#1{\leavevmode\hbox{#1}}% -\def\sur#1{\unskip~\nobreak\leavevmode\hbox{#1}}% -\def\spfx#1{#1}% -\def\pfx#1{#1}% -\def\sfx#1{#1}% -\def\tanm#1{#1}% -\def\dgr#1{#1}% -% -%% Author Email -% -\let\nomail\relax% -\def\corrauthemail{}% -\def\authemail{}% - -\newcount\emailcnt% - -\def\email#1{\global\advance\emailcnt by 1\relax% -\if@corauemail% - \g@addto@macro\corrauthemail{% - \setcounter{footnote}{0}% - \textcolor{blue}{#1};\ % - }% -\else% - \g@addto@macro\authemail{% - \setcounter{footnote}{0}% - \textcolor{blue}{#1};\ % - }% -\fi} - -%% Corrseponding Address -\def\@copycorthanks{}% -\def\auaddress{}% -\def\@auaddress{}% - -\newcounter{affn}% -\newcount\addcount% To check the count of address - -\renewcommand\theaffn{\arabic{affn}}% - -\def\affil{\advance\addcount by 1\@ifstar\@@coraddress\@@address}% - -\newcommand{\@@coraddress}[2][]{%\advance\addcount by 1 -\g@addto@macro\auaddress{% - \stepcounter{affn}% - \xdef\@currentlabel{\theaffn}% - \jmkLabel{\theaffn}% - {\textsuperscript{#1*}#2.\par} } -} - -%% Macros for present address - -\newif\ifpresentaddress% - -\def\@presentaddresstxt{}% -\def\presentaddresstxt#1{\gdef\@presentaddresstxt{#1:}}\presentaddresstxt{Present Address}% -\newcommand{\presentaddress}[1]{\gdef\@presentaddresstext{\@presentaddresstxt\par#1}\global\presentaddresstrue}% - -%% Macros for equally contributed - -\newif\ifequalcont% - -%\def\@equalconttxt{}% -%\def\equalcontxt#1{\gdef\@equalconttxt{#1}}\equalcontxt{These authors contributed equally to this work.}% -%\newcommand{\equalcont}[1][\@equalconttxt]{\gdef\@equalconttext{#1}\g@addto@macro\artauthors{$^{\dagger}$}\global\equalconttrue}% - -\def\@equalconttxt{}% -\def\equalcontxt#1{\gdef\@equalconttxt{#1}}\equalcontxt{}% -\newcommand{\equalcont}[1]{\gdef\@equalconttext{#1}\g@addto@macro\artauthors{$^{\dagger}$}\global\equalconttrue}% - -%% Author Address - -\newcommand{\@@address}[2][]{%%\advance\addcount by 1 -\g@addto@macro\auaddress{% - \stepcounter{affn}% - \xdef\@currentlabel{\theaffn}% - \jmkLabel{\theaffn}% - {\textsuperscript{#1}#2.\par} }%\theaffn -} - -%% Address tagging -\newcommand{\orgdiv}[1]{#1}% -\newcommand{\orgname}[1]{#1}% -\newcommand{\orgaddress}[1]{#1}% -\newcommand{\street}[1]{#1}% -\newcommand{\postcode}[1]{#1}% -\newcommand{\city}[1]{#1}% -\newcommand{\state}[1]{#1}% -\newcommand{\country}[1]{#1}% - -%% Article notes - -\def\@artnote{}% -\def\artnote#1{\gdef\@artnote{#1}}% - -%% Miscellaneous notes - -\def\@miscnote{}% -\def\miscnote#1{\gdef\@miscnote{\par\addvspace{3pt}#1}}% - -%% Motto - -\def\mottofont{\reset@font\fontfamily{\rmdefault}\fontsize{8.5bp}{10bp}\fontshape{it}\selectfont\raggedright} -% -\let\@motto\@empty -\def\mottoraggedright{\rightskip0mm\leftskip=42mm plus 1fil\parfillskip=0pt\relax}% -\newcommand{\motto}[2][]{\gdef\@headcheck{#1}\gdef\@motto{\@headcheck\ifx\@headcheck\@empty\vskip12pt\else\fi{\mottofont\mottoraggedright#2\par}}} - -%% Article Abstract -\newcommand\abstracthead{\@startsection {section}{1}{\z@}{-22pt \@plus0ex \@minus0ex}{3pt}{\abstractheadfont}} -\newcommand\subabstracthead{\@startsection{subsection}{2}{\z@}{3pt \@plus0ex \@minus0ex}{-.5em}{\abstractsubheadfont}} - -\def\@abstract{}% -\long\def\abstract#1{\def\@abstract{% -\let\paragraph\subabstracthead% -\abstractfont% -\abstracthead*{\abstractname}% -#1\par}}% - -\def\printabstract{\ifx\@abstract\empty\else\@abstract\fi\par}% - -\def\printkeywords{\ifx\@keywords\empty\else\@keywords\fi\par}% - -% -%% Keywords -\def\keywordname{Keywords}% -\def\keywords#1{\ifx#1\empty\else\def\@keywords{\par\addvspace{10pt}{\keywordfont{\bfseries\keywordname:} #1\par}}\fi}% -\def\@keywords{}% - -%% PACs - -\def\pacsbullet{\hbox{\hskip2.5pt,\hskip2.5pt}}% - -\def\change@commas#1,#2{% - \ifx#2\@empty% - #1% - \else% - #1\nobreak\hbox{\pacsbullet}\allowbreak\expandafter\change@commas% - \fi% - #2}% - -\newcommand\keywordhead[1]{\par\addvspace{10pt}% -{{\keywordfont\bfseries#1:\ }}}% - -\newcommand{\pacs}[1]{\keywordhead{\pacsname}#1}% -% -\newcount\PacsCount% -\PacsCount=0% -% -\newcount\PacsTmpCnt% -\PacsTmpCnt=1% -% -\gdef\StorePacsText#1#2{% -\edef\GetRoman{\romannumeral#1}% -\expandafter\gdef\csname\GetRoman StorePacsTxt\endcsname{#2}% -}% -% -\let\oldpacs\pacs% -\renewcommand\pacs[2][PAC Codes]{\gdef\pacsname{{\bfseries#1}}\gdef\@pacs{\keywordfont\raggedright\oldpacs\change@commas#2,\@empty\par} -\StepUpCounter{\PacsCount}% -\StorePacsText{\the\PacsCount}{\gdef\pacsname{{\bfseries#1}}\keywordfont\raggedright\oldpacs\change@commas#2,\@empty}% -}% - -\def\@pacs{}% - -%% Glossary - -\def\gloshead{Glossary}% - -\newenvironment{glos}[1][\gloshead]{\begingroup\parindent=0pt% -\section*{#1} -\def\item[##1]{##1,\ }}{% -\endgroup}% -% - -%% Article History - -\def\received#1{\g@addto@macro\@history{{Received #1}}}% -\def\revised#1{\g@addto@macro\@history{{; revised #1}}}% -\def\accepted#1{\g@addto@macro\@history{{; accepted #1}}}% - -%% Remark on Front page %% - -\newdimen\FMremarkdim% - -\newcommand{\FMremark}{\begingroup\parindent=0pt\parskip=0pt% -\if@referee\singlespacing\fi% -\fboxsep=6pt\fboxrule=0.5pt% -\FMremarkdim=\textwidth%%\paperwidth% -\advance\FMremarkdim-\fboxsep% -\advance\FMremarkdim-2\fboxrule% -\if@referee\vskip-21pt\fi% -%%\fbox{\vbox{\hsize=\FMremarkdim\small% -\unvbox\fmremarkbox -%%}}% -\endgroup} - -\newbox\fmremarkbox% - -\newenvironment{fmremark}{\begingroup\parindent=0pt% -\fboxsep=6pt\fboxrule=0.5pt% -\FMremarkdim=\textwidth%%\paperwidth% -\advance\FMremarkdim-\fboxsep% -\advance\FMremarkdim-2\fboxrule% -\global\setbox\fmremarkbox\vbox\bgroup\small% -}{\egroup\endgroup} - -%% Article Header Definition -\renewcommand{\@maketitle}{\newpage\null% - \if@remarkboxon\vbox to 0pt{\vspace*{-78pt}\hspace*{-18pt}\FMremark}\else\vskip21pt\fi%%\par% - \hsize\textwidth\parindent0pt%%%\vskip7pt% - %% Aritle Type - {\hbox to \textwidth{{\Artcatfont\ArtType\hfill}\par}} - %% Aritle Title - \ifx\@title\empty\else% - \removelastskip\vskip20pt\nointerlineskip% - {\Titlefont\@title\par} - %\addcontentsline{toc}{chapter}{\@title}% for bookmarks - \fi% - %% Aritle SubTitle - \ifx\@subtitle\empty\else% - \vskip9pt% - {{\SubTitlefont\@subtitle\par}} - \fi% - %% Aritle Authors, Address and Correspondings - \ifnum\aucount>0 - \global\punctcount\aucount% - \vskip20pt% - \artauthors\par%% authors and emails - {\vskip7pt\addressfont\auaddress\par%% corresponding adress - \removelastskip\vskip24pt% - \ifnum\emailcnt>0\relax% - \ifx\corrauthemail\@empty\else{\ifnum\aucount>1*\fi}% - Corresponding author(s). E-mail(s): \corrauthemail\par\fi% - \ifx\authemail\@empty\else Contributing authors:\ \authemail\fi% - \fi% - \ifequalcont{\par$^{\dagger}$\@equalconttext\par}\fi% - \removelastskip\vskip24pt% - \ifpresentaddress{\par\@presentaddresstext\par}\fi% - } - \fi% - {\printabstract\par}% - {\printkeywords\par}% - \ifx\@pacs\empty\else% - \loop\ifnum\PacsCount>0% - \csname\romannumeral\PacsTmpCnt StorePacsTxt\endcsname\par% - \StepDownCounter{\PacsCount}% - \StepUpCounter{\PacsTmpCnt}% - \repeat% - \fi% - %%{\printhistory\par}% - %%{\ifx\@motto\empty\else\@motto\fi}% - \removelastskip\vskip36pt\vskip0pt}% - -\usepackage{cuted}% -\@ifpackageloaded{cuted}{\gdef\@setmarks{}}{}% - -%% Printing Article Header -\newdimen\firstpagehtcheck - -\renewcommand\maketitle{\par - \@afterindentfalse% - \begingroup - \gdef\UrlFont{\rmfamily}% - \renewcommand\thefootnote{\@fnsymbol\c@footnote}% - \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\smash{\@thefnmark}}}}% - \long\def\@makefntext##1{\parindent 1em\noindent\small\selectfont - \hbox{\@textsuperscript{\normalfont\@thefnmark}}##1}% - \if@twocolumn - \ifnum \col@number=\@ne% -\setbox0=\vbox{\@maketitle} -\firstpagehtcheck=\ht0% -\advance\firstpagehtcheck by \dp0% -\ifdim\firstpagehtcheck>\textheight% -\setbox1=\vsplit0to2\textheight% -\setbox1=\vbox{\unvbox1}% -\setbox2=\vbox{\unvbox0}% -\unvbox1% -\stripsep=0pt% -\begin{strip} -\unvbox2% -\end{strip} -\else -\twocolumn[\@maketitle]% -\fi -\else -\@maketitle -\fi% - \else% - \newpage% - \global\@topnum\z@% Prevents figures from going at top of page. - \@maketitle% - \fi% - \endgroup% - \ifx\@artnote\@empty\else\footnoteA{\@artnote}\fi% - \ifx\@miscnote\@empty\else\footnoteA{\@miscnote\par}\fi% - \setcounter{footnote}{0}% - \global\let\thanks\relax% - \global\let\artnote\relax% - \global\let\maketitle\relax% - \global\let\@maketitle\relax% - \global\let\@thanks\@empty% - \global\let\@author\@empty% - \global\let\@date\@empty% - \global\let\title\relax% - \global\let\author\relax% - \global\let\date\relax% - \global\let\and\relax% - \pagestyle{headings}% - %%%print continuous abstract on next page - \@afterheading% - %%\vskip-18pt% this is included to avoid vertical space at the beginning of left column on article opening pages -}% - -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Page Styles %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% -\def\opheaderfont{\reset@font\fontsize{10bp}{0bp}\selectfont}% -\def\headerfont{\reset@font\fontsize{10bp}{0bp}\selectfont}% -\def\footerfont{\reset@font\fontsize{10bp}{0bp}\selectfont}% - -%% Regular Page Style -\def\ps@headings{% - \def\@oddfoot{\hfill\thepage\hfill}% - \let\@evenfoot\@oddfoot% - \def\@evenhead{% - \vbox to 0pt{\vspace*{-48pt}% - \hbox to \hsize{\hfill \relax\hfill}}\par%% - \hspace*{-\textwidth}\hbox to \hsize{\hfill}}% - \def\@oddhead{% - \vbox to 0pt{\vspace*{-48pt}% - \hbox to \hsize{\hfill \relax\hfill}}\par%% - \hspace*{-\textwidth}\hbox to \hsize{\hfill}}% - \let\@mkboth\markboth% - }% - - -%% Opening Page Style -\def\ps@titlepage{% - %%\def\@oddhead{\vbox{\vskip-36pt\hbox to \textwidth{\hfill\includegraphics{springer-nature-logo}\hspace*{-1pt}}}}% - %%\let\@oddhead\@empty\let\@evenhead\@empty% - \def\@oddhead{% - \vbox to 0pt{\vspace*{-38pt}% - \hbox to \hsize{\hfill \hfill}}}%% - \let\@evenhead\@oddhead% - \def\@oddfoot{\vbox to 18pt{\vfill\reset@font\rmfamily\hfil\thepage\hfil}}%% - \def\@evenfoot{}}% - -\def\ps@plain{\let\@mkboth\@gobbletwo% -\let\@oddhead\@empty\let\@evenhead\@empty% -\def\@oddfoot{\vbox to 18pt{\vfill\reset@font\rmfamily\hfil ddd\thepage\hfil}}% -\let\@evenfoot\@oddfoot}% - -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Sections %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% - -\def\numbered{\setcounter{secnumdepth}{3}}% -\def\unnumbered{\setcounter{secnumdepth}{0}}% -\numbered%% default is numbered Sections - -\renewcommand\thesection {\@arabic\c@section}% -\renewcommand\thesubsection {\thesection.\@arabic\c@subsection}% -\renewcommand\thesubsubsection{\thesubsection.\@arabic\c@subsubsection}% -\renewcommand\theparagraph {\thesubsubsection.\@arabic\c@paragraph}% -\renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph}% -%% -\def\@seccntformat#1{\csname the#1\endcsname\hskip.5em}% - -\def\@sect#1#2#3#4#5#6[#7]#8{% - \ifnum #2>\c@secnumdepth - \let\@svsec\@empty - \else - \refstepcounter{#1}% - \protected@edef\@svsec{\@seccntformat{#1}\relax}% - \fi - \@tempskipa #5\relax - \ifdim \@tempskipa>\z@ - \begingroup - #6{% - \@hangfrom{\hskip #3\relax\@svsec}% - \interlinepenalty \@M #8\@@par}% - \endgroup - \csname #1mark\endcsname{#7}% - \addcontentsline{toc}{#1}{% - \ifnum #2>\c@secnumdepth \else - \protect\numberline{\csname the#1\endcsname}% - \fi - #7}% - \else - \def\@svsechd{% - #6{\hskip #3\relax - \@svsec #8.}% - \csname #1mark\endcsname{#7}% - \addcontentsline{toc}{#1}{% - \ifnum #2>\c@secnumdepth \else - \protect\numberline{\csname the#1\endcsname}% - \fi - #7}}% - \fi - \@xsect{#5}} -% -\def\sectionfont{\reset@font\fontfamily{\rmdefault}\fontsize{14bp}{16bp}\bfseries\selectfont\raggedright\boldmath}% -\def\subsectionfont{\reset@font\fontfamily{\rmdefault}\fontsize{12bp}{14bp}\bfseries\selectfont\raggedright\boldmath}% -\def\subsubsectionfont{\reset@font\fontsize{11bp}{13bp}\bfseries\selectfont\raggedright\boldmath}% -\def\paragraphfont{\reset@font\fontsize{10bp}{12bp}\bfseries\itshape\selectfont\raggedright}% -% -\def\subparagraphfont{\itshape}% -\def\bmheadfont{\reset@font\fontfamily{\rmdefault}\fontsize{10bp}{12bp}\bfseries\selectfont\raggedright\boldmath}% -% -\renewcommand\section{\@startsection{section}{1}{\z@}% - {-12pt \@plus -4pt \@minus -2pt}% - {9pt}% - {\sectionfont}} -\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% - {-12pt \@plus -4pt \@minus -2pt}% - {6pt}% - {\subsectionfont}} -\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% - {-12pt \@plus -4pt \@minus -2pt}% - {6pt}% - {\subsubsectionfont}} -\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% - {-12pt \@plus -4pt \@minus-2pt}% - {3pt}% - {\paragraphfont}} -\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\z@}% - {6pt \@plus1ex \@minus.2ex}% - {-1em}% - {\subparagraphfont}} -\newcommand\bmhead{\@startsection{subparagraph}{5}{\z@}% - {6pt \@plus1ex \@minus .2ex}% - {-1em}% - {\bmheadfont}} -% -\def\@startsection#1#2#3#4#5#6{% - \if@noskipsec \leavevmode \fi - \par - \@tempskipa #4\relax - \@afterindenttrue - \ifdim \@tempskipa <\z@ - \@tempskipa -\@tempskipa \@afterindentfalse - \fi - \if@nobreak - \everypar{}% - \else - \addpenalty\@secpenalty\addvspace\@tempskipa - \fi - \@ifstar - {\@ssect{#3}{#4}{#5}{#6}}% - {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Lists %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -\newdimen\labelwidthi% -\newdimen\labelwidthii% -\newdimen\labelwidthiii% -\newdimen\labelwidthiv% - -\def\normal@labelsep{0.5em}% -\labelsep\normal@labelsep% -\settowidth{\labelwidthi}{(iii)}% -\settowidth{\labelwidthii}{(d)}% -\settowidth{\labelwidthiii}{(iii)}% -\settowidth{\labelwidthiv}{(M)}% - -\leftmargini\labelwidthi \advance\leftmargini\labelsep -\leftmarginii\labelwidthii \advance\leftmarginii\labelsep -\leftmarginiii\labelwidthiii \advance\leftmarginiii\labelsep -\leftmarginiv\labelwidthiv \advance\leftmarginiv\labelsep - -\def\setleftmargin#1#2{\settowidth{\@tempdima}{#2}\labelsep\normal@labelsep - \csname labelwidth#1\endcsname\@tempdima - \@tempdimb\@tempdima \advance\@tempdimb\labelsep - \csname leftmargin#1\endcsname\@tempdimb} -\def\@listI{\leftmargin\leftmargini - \labelwidth\labelwidthi \labelsep\normal@labelsep - \topsep \z@ \partopsep\z@ \parsep\z@ \itemsep\z@ - \listparindent 1em} -\def\@listii{\leftmargin\leftmarginii - \labelwidth\labelwidthii \labelsep\normal@labelsep - \topsep\z@ \partopsep\z@ \parsep\z@ \itemsep\z@ - \listparindent 1em} -\def\@listiii{\leftmargin\leftmarginiii - \labelwidth\labelwidthiii \labelsep\normal@labelsep - \topsep\z@ \partopsep\z@ \parsep\z@ \itemsep\z@ - \listparindent 1em} -\def\@listiv{\leftmargin\leftmarginiv - \labelwidth\labelwidthiv \labelsep\normal@labelsep - \topsep\z@ \partopsep\z@ \parsep\z@ \itemsep\z@ - \listparindent 1em} -\let\@listi\@listI -\@listi -% -\setlength \labelsep {.5em} -\setlength \labelwidth{\leftmargini} -\addtolength\labelwidth{-\labelsep} -\@beginparpenalty -\@lowpenalty -\@endparpenalty -\@lowpenalty -\@itempenalty -\@lowpenalty -\def\labelitemi{$\bullet$} \def\labelitemii{$\cdot$} -\def\labelenumi{\theenumi.} \def\theenumi{\arabic{enumi}} -\def\labelenumii{(\alph{enumii})} \def\theenumii{\alph{enumii}} -\def\labelenumiii{(\roman{enumiii})}\def\theenumiii{\roman{enumiii}} -\def\labelenumiv{(\Alph{enumiv})} \def\theenumiv{\Alph{enumiv}} - -% -%%%%%%%%%%%%%%%%%%%%%%%%%%% Ordered & Unordered List %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -\def\listfont{\normalsize}% -% -\def\enumargs{% - \listfont% - \leftmargini0pt% - \leftmarginii0pt% - \leftmarginiii0pt% - \ifnum\@enumdepth=3\topsep0pt\else\ifnum\@enumdepth=2\topsep0pt\else\topsep 6pt\fi\fi% - \partopsep \z@% - \itemsep \z@% - \parsep \z@% - \labelsep 0.5em% - \rightmargin \z@% - \raggedright% - \listparindent \parindent% - \itemindent \z@}% - -\def\enumerate{% - \@ifnextchar[{\@numerate}{\@numerate[0.]}} - -\def\@numerate[#1]{\par% - \ifnum \@enumdepth >3 \@toodeep\else - \advance\@enumdepth \@ne - \edef\@enumctr{enum\romannumeral\the\@enumdepth} - \list{\csname label\@enumctr\endcsname}{% - \enumargs% - \setlength{\leftmargin}{\csname leftmargin\romannumeral\the\@enumdepth\endcsname} - \usecounter{\@enumctr} - \settowidth\labelwidth{#1} - \addtolength{\leftmargin}{\labelwidth} - \addtolength{\leftmargin}{\labelsep} - \def\makelabel##1{\hss\llap{##1}}}% - \fi - } -\let\endenumerate\endlist - -%%Unnumbered list%% - -\def\unenumargs{% - \listfont% - \leftmargini\parindent% - \topsep6pt% - \partopsep \z@% - \itemsep \z@% - \parsep \z@% - \labelsep 0\p@% - \rightmargin \z@% - \raggedright% - \listparindent \parindent% - \itemindent -12pt}% - -\def\unenumerate{% - \@ifnextchar[{\@unenumerate}{\@unenumerate[0.]}} - -\def\@unenumerate[#1]{\par% - \ifnum \@enumdepth >3 \@toodeep\else - \advance\@enumdepth \@ne - \edef\@enumctr{enum\romannumeral\the\@enumdepth} - \list{}{% - \unenumargs - \setlength{\leftmargin}{\csname leftmargin\romannumeral\the\@enumdepth\endcsname} - \usecounter{\@enumctr} - \settowidth\labelwidth{#1} - \addtolength{\leftmargin}{0pt} - \addtolength{\leftmargin}{0pt} - \def\makelabel##1{\hss\llap{##1}}}% - \fi - } - -\let\endunenumerate\endlist% - -%% bulleted list - -\def\itemargs{% - \listfont% - \leftmargini0pt% - \leftmarginii0pt% - \ifnum\@enumdepth=3\topsep0pt\else\ifnum\@enumdepth=2\topsep0pt\else\topsep 6pt\fi\fi% - \partopsep \z@% - \itemsep \z@% - \parsep \z@% - \labelsep 0.5em% - \rightmargin \z@% - \raggedright% - \listparindent \z@% - \itemindent \z@}% - -\renewcommand\labelitemi{\raise1pt\hbox{\textbullet}}% -\renewcommand\labelitemii{\textendash}% - -\def\itemize{% - \@ifnextchar[{\@itemize}{\@itemize[$\bullet$]}} - -\def\@itemize[#1]{\par% - \ifnum \@itemdepth >3 \@toodeep\else - \advance\@itemdepth \@ne - \edef\@itemctr{item\romannumeral\the\@itemdepth} - \list{\csname label\@itemctr\endcsname}{% - \itemargs - \setlength{\leftmargin}{\csname leftmargin\romannumeral\the\@itemdepth\endcsname} - \settowidth\labelwidth{#1} - \addtolength{\leftmargin}{\labelwidth} - \addtolength{\leftmargin}{\labelsep} - \def\makelabel##1{\hss \llap{##1}}}% - \fi - } -\let\enditemize\endlist -% -\def\quote{\list{}{\itemindent\z@ - \leftmargin 1em \rightmargin \z@}% -\item[]} -\let\endquote\endlist -% -\def\descriptionlabel#1{\hspace\labelsep \itshape #1} -\def\description{\list{}{\labelwidth\z@ - \leftmargin \z@ \topsep6pt\itemindent \z@ %-\leftmargin - \let\makelabel\descriptionlabel}} -\let\enddescription\endlist - -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Float %%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\setlength\abovecaptionskip{2.25\p@}% -\setlength\belowcaptionskip{6\p@}% - -\setlength\arraycolsep{2\p@}% -\setlength\tabcolsep{6\p@}% -\setlength\arrayrulewidth{.4\p@}% -\setlength\doublerulesep{2\p@}% -\setlength\tabbingsep{\labelsep}% - -\def\fnum@figure{{\bfseries\figurename\space\thefigure}}% -\def\fnum@table{{\bfseries\tablename\space\thetable}}% - -\def\FigName{figure}% - -\long\def\@makecaption#1#2{% - \ifx\FigName\@captype - \vskip\abovecaptionskip - \@figurecaption{#1}{#2} - \else - \@tablecaption{#1}{#2} - \vskip\belowcaptionskip - \fi% -} - -%% Figure - -\def\figurecaptionfont{\reset@font\fontfamily{\rmdefault}\fontsize{8}{9.5}\selectfont}% - -\newdimen\figwidth% -\newdimen\figheight% -\newdimen\sidecapwidth -\newdimen\wrapcapline% -\newdimen\totalwrapline% -\newdimen\wraptotline% - -%% Figures macro -\newbox\figurebox% -\newbox\wrapfigcapbox - -\def\FIG#1#2{% -\setbox\figurebox\hbox{#1}% -%% Figure dimensions -\figwidth\wd\figurebox% -\figheight\ht\figurebox% -{\parbox{\hsize}{% -\centerline{\box\figurebox}% -%% Caption -#2}}} - -%% Figures caption -\newbox\figcapbox -\newbox\capbox -\long\def\@figurecaption#1#2{{\figurecaptionfont{\bfseries#1}\hskip.7em#2\par}}% - -\newenvironment{unnumfigure}{\begingroup\setlength{\topsep}{12pt}% -\begin{center}}{\end{center}\endgroup} - -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -\@ifpackageloaded{booktabs}{\cmidrulewidth=.15pt}{}% -% -\def\tablecaptionfont{\reset@font\fontsize{8bp}{9.5bp}\selectfont}% -\def\tablebodyfont{\reset@font\fontsize{8bp}{9.5bp}\selectfont}% -\def\tablecolheadfont{\reset@font\fontsize{8bp}{9.5bp}\selectfont\bfseries\boldmath}% -\def\tablefootnotefont{\reset@font\fontsize{8bp}{9.5bp}\selectfont}% - -%% Table Macro - -\newskip\headwidthskip% - -\def\tabraggedcenter{\leftskip=0pt plus 0.5fil\rightskip=0pt plus 0.5fil\parfillskip=0pt}% - -\newenvironment{@processtable}[4]{% -\setbox4=\hbox to \hsize{\hss% -\begin{minipage}[t]{#4}% -\tabraggedcenter% -\caption{#1}\par% -{\tablebodyfont\noindent\ignorespaces#2\par}\par\vglue6pt% -{\if!#3!\else{\tablefootnotefont#3}\fi}% -\end{minipage}% -\hss}% -\box4\par}% - -\newcommand\TBL[3]{\begingroup% -% -\if!#1!\let\caption\relax\fi% -% - \global\setbox\temptbox=\hbox{\bgroup{\tablebodyfont#2}\egroup}% - \global\tempdime\wd\temptbox% - \@processtable{#1}{\global\headwidthskip=\tempdime% - \vbox{#2}}{#3}{\tempdime}% -\endgroup}% - -%% Table Caption -\newbox\tabcapbox% -\newbox\temptbox% -\newdimen\tempdime% -\newdimen\tabhtdime% - -\long\def\@tablecaption#1#2{% - \setbox\tabcapbox\vbox{\tablecaptionfont\raggedright% - {\bfseries #1}{\hskip2mm}#2\vphantom{y}\par}% - \box\tabcapbox% -} - -%% Table Column Heads -\def\TCH#1{{\tablecolheadfont #1}} - -%% Table Footnotes - -\newenvironment{tablenotes}{\list{}{\setlength{\labelsep}{0pt}% -\setlength{\labelwidth}{0pt}% -\setlength{\leftmargin}{0pt}% -\setlength{\rightmargin}{0pt}% -\setlength{\topsep}{-6pt}% -\setlength{\itemsep}{2pt}% -\setlength{\partopsep}{0pt}% -\setlength{\listparindent}{0em}% -\setlength{\parsep}{0pt}}% -\item\relax% -}{\endlist}% - -\def\tnote#1{$^{#1}$}%% - -%% Table Rules - -\def\toprule{%\noalign{\vskip3pt} -\noalign{\ifnum0=`}\fi - \hrule \@height 0\p@ \@width 0pt - \hrule \@height 0.75\p@ % <- rule height - \hrule \@height 5pt \@width 0pt - \futurelet\@tempa\@xhline} -% Middle rule -\def\midrule{\noalign{\ifnum0=`}\fi% - \hrule \@height 3pt \@width 0pt - \hrule \@height .5pt % <- rule height - \hrule \@height 5pt \@width 0pt - \futurelet \@tempa\@xhline} -% Bottom rule -\def\botrule{\noalign{\ifnum0=`}\fi - \hrule \@height 3pt \@width 0pt - \hrule \@height 0.75\p@ % <- rule height - \hrule \@height 3pt \@width 0pt - \futurelet\@tempa\@xhline} -% -\def\@@@cmidrule[#1-#2]#3#4{\global\@cmidla#1\relax - \global\advance\@cmidla\m@ne - \ifnum\@cmidla>0\global\let\@gtempa\@cmidrulea\else - \global\let\@gtempa\@cmidruleb\fi - \global\@cmidlb#2\relax - \global\advance\@cmidlb-\@cmidla - \global\@thisrulewidth=#3 - \@setrulekerning{#4} - \ifnum\@lastruleclass=\z@\vskip 3\p@\fi - \ifnum0=`{\fi}\@gtempa - \noalign{\ifnum0=`}\fi\futurenonspacelet\@tempa\@xcmidrule} -\def\@xcmidrule{% - \ifx\@tempa\cmidrule - \vskip-\@thisrulewidth - \global\@lastruleclass=\@ne - \else \ifx\@tempa\morecmidrules - \vskip \cmidrulesep - \global\@lastruleclass=\@ne\else - \vskip 5\p@ - \global\@lastruleclass=\z@ - \fi\fi - \ifnum0=`{\fi}} -\let\cline\cmidrule - -\usepackage[figuresright]{rotating}% -\usepackage{threeparttable} - -\let\tableorg\table% -\let\endtableorg\endtable% - -\let\sidewaystableorg\sidewaystable% -\let\endsidewaystableorg\endsidewaystable% - -\renewenvironment{table}[1][]% -{\begin{tableorg}[#1]% -\begin{center} -\begin{threeparttable} -\tablebodyfont% -\renewcommand\footnotetext[2][]{{\removelastskip\vskip3pt% -\let\tablebodyfont\tablefootnotefont% -\hskip0pt\if!##1!\else{\smash{$^{##1}$}}\fi##2\par}}% -}{\end{threeparttable}\end{center}\end{tableorg}} - -\renewenvironment{sidewaystable}[1][]% -{\begin{sidewaystableorg}[#1]% -\begin{center} -\begin{threeparttable} -\tablebodyfont% -\renewcommand\footnotetext[2][]{{\removelastskip\vskip3pt% -\let\tablebodyfont\tablefootnotefont% -\hskip0pt\if!##1!\else{\smash{$^{##1}$}}\fi##2\par}}% -}{\end{threeparttable}\end{center}\end{sidewaystableorg}} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%% Other Env. %%%%%%%%%%%%%%%%%%%%%%%%% - -\def\quotefont{\reset@font\fontfamily{\rmdefault}\fontsize{9}{11}\selectfont}% - -\renewenvironment{quote} - {\list{}{\topsep=0pt\topsep6pt\leftmargin=1em\raggedright\quotefont}% - \item\relax} - {\endlist} - -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%% Appendix %%%%%%%%%%%%%%%%%%%%%%%%% -% - -\newif\ifbackmatter% -\newcommand{\backmatter}{\global\backmattertrue}% - -\usepackage[title]{appendix}% - -\@ifpackageloaded{appendix}{% -% -\renewenvironment{appendices}{% - \@resets@pp - \if@dotoc@pp - \if@dopage@pp % both page and toc - \if@chapter@pp % chapters - \clear@ppage - \fi - \appendixpage - \else % toc only - \if@chapter@pp % chapters - \clear@ppage - \fi - \addappheadtotoc - \fi - \else - \if@dopage@pp % page only - \appendixpage - \fi - \fi - \if@chapter@pp - \if@dotitletoc@pp \@redotocentry@pp{chapter} \fi - \else - \if@dotitletoc@pp \@redotocentry@pp{section} \fi - \if@dohead@pp - \def\sectionmark##1{% - \if@twoside - \markboth{\@formatsecmark@pp{##1}}{} - \else - \markright{\@formatsecmark@pp{##1}}{} - \fi} - \fi - \if@dotitle@pp - \def\sectionname{\appendixname} - \def\@seccntformat##1{\@ifundefined{##1name}{}{\csname ##1name\endcsname\ }% - \csname the##1\endcsname\quad} - \fi - \fi -}{% - \@ppsaveapp\@pprestoresec} -%% -\AtBeginDocument{% -% -\let\oldappendices\appendices% -\let\oldendappendices\endappendices% -%% -\renewenvironment{appendices}{% -\setcounter{figure}{0}% -\setcounter{table}{0}% -\setcounter{equation}{0}% -%% -\begin{oldappendices}% - \gdef\thefigure{\@Alph\c@section\arabic{figure}}% - \gdef\thetable{\@Alph\c@section\arabic{table}}% - \gdef\theequation{\@Alph\c@section\arabic{equation}}% -}{\end{oldappendices}} -} -%% -}{} - - -% -%%%%%%%%%%%%%%%%%%%%%%%%%%% Article History %%%%%%%%%%%%%%%%%%%% -% -\def\@history{} -\def\printhistory{{\par\addvspace{8pt}% -\historyfont\noindent% -\ifx\@history\empty\gdef\@history{Received xx xxx xxxx}\fi\@history\par}}% -% -%%%%%%%%%%%%%%%%%%%%%%% Footnotes %%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% -\renewcommand\@makefntext[1]{% - \hskip8pt{\smash{\@makefnmark}}#1} -% -\RequirePackage{hyperref}% -%%\RequirePackage{hypcap}% -% ctk \gdef\breakurldefns{% -% ctk \if@pdflatex\else% -% ctk \RequirePackage[hyphenbreaks]{breakurl}% -% ctk % \let\href\burlalt% -% ctk \fi}% -% ctk \breakurldefns% -% \bgroup -% \catcode`\&=12\relax -% \hyper@normalise\burl@addtocharlistbefore{%} -% \hyper@normalise\burl@addtocharlistafter{:/.?#&_,;!=+~}%% for extra breaks in url -% \egroup -% \burl@defifstructure -% -\hypersetup{% - colorlinks, - breaklinks=true, - plainpages=false,% - citecolor=blue, - linkcolor=blue, - urlcolor=blue, - bookmarksopen=true,% - bookmarksnumbered=false,% - bookmarksdepth=5% -} -% -\AtBeginDocument{\renewcommand\UrlFont{\rmfamily}}% -% -\AtBeginDocument{% -\@ifpackageloaded{natbib}{% - \renewcommand\bibsection{% - \section*{\refname}% - }% -}{}% -}% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -\pagestyle{headings}% -\pagenumbering{arabic}% -\sloppy% -\frenchspacing% -\flushbottom% - -%%% special parameters for TeX -\adjdemerits=100 -\linepenalty=100 -% -%%%%%%%%%%%%%%% Biography -% -\RequirePackage{wrapfig}% -% -% -% \begin{wrapfigure}[12]{r}[34pt]{5cm}
\end{wrapfigure} -% -- - ---- --- -% [number of narrow lines] {placement} [overhang] {width of figure} -\newcount\wraplines% -%%\wraplines=5% -% -\newbox\@authorfigbox% -\newskip\@authorfigboxdim% -% -\newskip\biofigadjskip% -\biofigadjskip=0pt% -% -\def\authbiotextfont{\reset@font\fontsize{8bp}{9.5bp}\selectfont}% -% -\newenvironment{biography}[2]{\par\addvspace{11.5pt plus3.375pt minus1.6875pt}%\lineno@off% -\def\author##1{{\bfseries##1}}% -\if!#1!\def\@authorfig{}\else\def\@authorfig{{#1}}\fi% -\setbox\@authorfigbox=\hbox{#1}% -\@authorfigboxdim=\wd\@authorfigbox% -\if@iicol\advance\@authorfigboxdim by -10pt\else\advance\@authorfigboxdim by -2pt\fi% -\wraplines=9\fboxrule=1pt\fboxsep=6pt% -\noindent{% -\ifx\@authorfig\@empty\else\unskip% -\begin{wrapfigure}[\wraplines]{l}[0pt]{\@authorfigboxdim}%{38.25mm}% -\vskip-19pt\addvspace{\biofigadjskip}% -\@authorfig% -\end{wrapfigure}% -\fi% -{\authbiotextfont#2\par}% -\par% -}}{\par\addvspace{10.5pt plus3.375pt minus1.6875pt}} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Theorem %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% -\@ifpackageloaded{amsthm}{% -% -%\let\proof\relax% -%\let\endproof\relax% - -\def\@begintheorem#1#2[#3]{% - \deferred@thm@head{\the\thm@headfont \thm@indent - \@ifempty{#1}{\let\thmname\@gobble}{\let\thmname\@iden}% - \@ifempty{#2}{\let\thmnumber\@gobble}{\let\thmnumber\@iden}% - \@ifempty{#3}{\let\thmnote\@gobble}{\let\thmnote\@iden}% - \thm@swap\swappedhead\thmhead{#1}{#2}{#3}% - \the\thm@headpunct - \thmheadnl % possibly a newline. - \hskip\thm@headsep - }% - \ignorespaces -} - -\def\@endtheorem{\endtrivlist\@endpefalse} - - -\AtBeginDocument{% -% -\DeclareRobustCommand{\S}{\ifmmode\mathsection\else\textsection\fi} - -\DeclareSymbolFont{AMSa}{U}{msa}{m}{n}% -\DeclareMathSymbol{\opensquare}{\mathord}{AMSa}{"03}% -\def\qedsymbol{\ensuremath{\opensquare}}% -% -\newenvironment{spiproof}[1][\proofname]{\par\removelastskip%\vspace*{2pt}% - \pushQED{\qed}% - \small\normalfont \topsep7.5\p@\@plus7.5\p@\relax% - \trivlist% - \item[\hskip\labelsep% - \itshape% - #1\@addpunct{}]\ignorespaces% -}{% - \popQED\endtrivlist\@endpefalse% -}% -% -\let\proof\spiproof\let\endproof\endspiproof% -% -}% -% -\def\thm@space@setup{% -\thm@preskip=12pt% -\thm@postskip=12pt} -% -%%%%%%%%%%%%%%%%%% StyleOne -% -\newtheoremstyle{thmstyleone}% Numbered -{18pt plus2pt minus1pt}% Space above -{18pt plus2pt minus1pt}% Space below -{\small\itshape}% Body font -{0pt}% Indent amount -{\small\bfseries}% Theorem head font -{}% Punctuation after theorem head -{.5em}% Space after theorem headi -{\thmname{#1}\thmnumber{\@ifnotempty{#1}{ }\@upn{#2}}% - \thmnote{ {\the\thm@notefont(#3)}}}% Theorem head spec (can be left empty, meaning `normal') -% -\newtheoremstyle{thmstyletwo}% Numbered -{18pt plus2pt minus1pt}% Space above -{18pt plus2pt minus1pt}% Space below -{\small\normalfont}% Body font -{0pt}% Indent amount -{\small\itshape}% Theorem head font -{}% Punctuation after theorem head -{.5em}% Space after theorem headi -{\thmname{#1}\thmnumber{\@ifnotempty{#1}{ }{#2}}% - \thmnote{ {\the\thm@notefont(#3)}}}% Theorem head spec (can be left empty, meaning `normal') -% -\newtheoremstyle{thmstylethree}% Definition -{18pt plus2pt minus1pt}% Space above -{18pt plus2pt minus1pt}% Space below -{\small\normalfont}% Body font -{0pt}% Indent amount -{\small\bfseries}% Theorem head font -{}% Punctuation after theorem head -{.5em}% Space after theorem headi -{\thmname{#1}\thmnumber{\@ifnotempty{#1}{ }\@upn{#2}}% - \thmnote{ {\the\thm@notefont(#3)}}}% Theorem head spec (can be left empty, meaning `normal') -% -\newtheoremstyle{thmstylefour}% Proof -{18pt plus2pt minus1pt}% Space above -{18pt plus2pt minus1pt}% Space below -{\small\normalfont}% Body font -{0pt}% Indent amount -{\small\itshape}% Theorem head font -{}% Punctuation after theorem head -{.5em}% Space after theorem headi -{\global\proofthmtrue\thmname{#1} \thmnote{#3}}% Theorem head spec (can be left empty, meaning `normal') -% -}{} - -%% Macros for bibliographystyles %% - -% \def\bibcommenthead{\if@bibcomment\begingroup\parindent=0pt\parskip=0pt% -% \removelastskip\vskip13pt\nointerlineskip% -% -% \vbox{\bibfont If you are submitting to one of the Nature Research journals, using the eJP -% submission system, please include the references within the manuscript file itself. You may -% do this by copying the reference list from your .bbl file, and pasting it into the bibliography -% environment of the main manuscript .tex file.}\par% -% \removelastskip\nobreak\vskip13pt\nobreak% -% \endgroup\fi}% - -\def\bibcommenthead{}% - -\if@Spr@basic@refstyle% -\if@Numbered@refstyle% - \usepackage[super,sort&compress]{natbib}% - \gdef\NumBib{YES}% -\else% - \usepackage[authoryear]{natbib}% - \gdef\NumBib{NO}% -\fi% - \bibliographystyle{sn-basic}% - \setlength{\bibsep}{1em}% - \def\bibfont{\reset@font\fontfamily{\rmdefault}\normalsize\selectfont}% -\fi% - -\if@Mathphys@numrefstyle% - \usepackage[super,sort&compress]{natbib}% - \gdef\NumBib{YES}% - \bibliographystyle{sn-mathphys-num}% - \setlength{\bibsep}{1em}% - \def\bibfont{\reset@font\fontfamily{\rmdefault}\normalsize\selectfont}% -\else% -\if@Mathphys@ayrefstyle% - \usepackage[authoryear]{natbib}% - \gdef\NumBib{NO}% - \bibliographystyle{sn-mathphys-ay}% - \setlength{\bibsep}{1em}% - \def\bibfont{\reset@font\fontfamily{\rmdefault}\normalsize\selectfont}% -\fi\fi% -\if@APS@refstyle% - \usepackage[super,sort&compress]{natbib}% - \gdef\NumBib{YES}% - \bibliographystyle{sn-APS}% - \setlength{\bibsep}{1em}% - \def\bibfont{\reset@font\fontfamily{\rmdefault}\normalsize\selectfont}% -\fi% -\if@Vancouver@refstyle% -\if@Numbered@refstyle% - \usepackage[super,sort&compress]{natbib}% - \gdef\NumBib{YES}% -\else% - \usepackage[authoryear]{natbib}% - \gdef\NumBib{NO}% -\fi% - \bibliographystyle{sn-vancouver}% - \setlength{\bibsep}{1em}% - \def\bibfont{\reset@font\fontfamily{\rmdefault}\normalsize\selectfont}% -\fi% -\if@APA@refstyle% -\if@Numbered@refstyle% - \usepackage[natbibapa]{apacite}% - \gdef\NumBib{YES}% -\else% - \usepackage[natbibapa]{apacite}% - \gdef\NumBib{NO}% -\fi% - \bibliographystyle{sn-apacite}% - \def\refdoi#1{\urlstyle{rm}\url{#1}}% - \renewcommand{\doiprefix}{}% - \AtBeginDocument{% - \renewcommand{\BPBI}{.}% Period between initials - command from apacite.sty - }% - \setlength{\bibsep}{1em}% - \def\bibfont{\reset@font\fontfamily{\rmdefault}\normalsize\selectfont}% -\fi% -\if@Chicago@refstyle% -\if@Numbered@refstyle% - \usepackage[super,sort&compress]{natbib}% - \gdef\NumBib{YES}% -\else% - \usepackage[authoryear]{natbib}% - \gdef\NumBib{NO}% -\fi% - \bibliographystyle{sn-chicago}% - \hypersetup{urlcolor=black,colorlinks=false,pdfborder={0 0 0}}\urlstyle{same}% - \setlength{\bibsep}{1em}% - \def\bibfont{\reset@font\fontfamily{\rmdefault}\normalsize\selectfont}% -\fi% -\if@Standard@Nature@refstyle% - \usepackage[super,sort&compress]{natbib}% - \gdef\NumBib{YES}% - \bibliographystyle{sn-nature}% - \setlength{\bibsep}{1em}% - \def\bibfont{\reset@font\fontfamily{\rmdefault}\normalsize\selectfont}% -\fi% - -\AtBeginDocument{\allowdisplaybreaks}% - -\def\eqnheadfont{\reset@font\fontfamily{\rmdefault}\fontsize{16}{18}\bfseries\selectfont}% - -\newcommand{\eqnhead}[1]{\begingroup% -\begin{center} -{\eqnheadfont #1}\par% -\end{center} -\removelastskip\vskip24pt% -\thispagestyle{titlepage}%% -%%\thispagestyle{empty}% -\endgroup} - -%% Macros for border matrix %% - -\newif\if@borderstar - -\def\bordermatrix{\@ifnextchar*{% -\@borderstartrue\@bordermatrix@i}{\@borderstarfalse\@bordermatrix@i*}% -} -\def\@bordermatrix@i*{\@ifnextchar[{\@bordermatrix@ii}{\@bordermatrix@ii[()]}} -\def\@bordermatrix@ii[#1]#2{% -\begingroup -\m@th\@tempdima8.75\p@\setbox\z@\vbox{% -\def\cr{\crcr\noalign{\kern 2\p@\global\let\cr\endline }}% -\ialign {$##$\hfil\kern 2\p@\kern\@tempdima & \thinspace % -\hfil $##$\hfil && \quad\hfil $##$\hfil\crcr\omit\strut % -\hfil\crcr\noalign{\kern -\baselineskip}#2\crcr\omit % -\strut\cr}}% -\setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}% -\setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}% -\setbox\tw@\hbox{% -$\kern\wd\@ne\kern -\@tempdima\left\@firstoftwo#1% -\if@borderstar\kern2pt\else\kern -\wd\@ne\fi% -\global\setbox\@ne\vbox{\box\@ne\if@borderstar\else\kern 2\p@\fi}% -\vcenter{\if@borderstar\else\kern -\ht\@ne\fi% -\unvbox\z@\kern-\if@borderstar2\fi\baselineskip}% -\if@borderstar\kern-2\@tempdima\kern2\p@\else\,\fi\right\@secondoftwo#1 $% -}\null \;\vbox{\kern\ht\@ne\box\tw@}% -\endgroup -} - -%% Macros for line numbers %% - -\if@vrulerlinenumberon% -% -\usepackage{vruler}% -% -%%\setvruler[][][][][][][][][] -\def\linenoon{%%\definecolor{blue}{gray}{0}% -\def\tiny{\normalsize\color{black}}% -\setvruler[12bp][1][1][3][1][1.18\textwidth][26pt][-7pt][0.99\textheight]% for even pages: left side; for odd pages: right side; -%%\linkbluecolor -}% -\linenoon% -\def\lineno@off{\unsetvruler}% -\fi% -%% url macros %% - -\gdef\orcidlogo{% -\includegraphics{Orcidlogo.eps}% -}% - -\gdef\orcid#1{\href{#1}{\orcidlogo}}% - - -\endinput diff --git a/_extensions/christopherkenny/nature/sn-mathphys-ay.bst b/_extensions/christopherkenny/nature/sn-mathphys-ay.bst deleted file mode 100644 index fa05df2..0000000 --- a/_extensions/christopherkenny/nature/sn-mathphys-ay.bst +++ /dev/null @@ -1,3208 +0,0 @@ -%% This is file `bmc-mathphys.bst' (created: 2011-12-27) -%% Compatible with bibtex version 0.99d. -%% -%% Please submit bugs or your comments to vtex@vtex.lt -%% Start subject with a "[BMC] bibtex: " + subject -%% -%% Sorting entries is done by name and year fields! -%% -%% You are free to use this style file as you see fit, provided -%% that you do not make changes to the file. -%% If you DO make changes, you are required to rename this file. -%% -%% It may be distributed under the terms of the LaTeX Project Public -%% License, as described in lppl.txt in the base LaTeX distribution. -%% Either version 1.0 or, at your option, any later version. -%% -%% LIMITATIONS: -%% If you are getting error like -%% "Sorry---you've exceeded BibTeX's number of string global-variables" -%% that means you are using to old bibtex version. You should download latest version 0.99d. -%% (One of the binaries location is minimals.contextgarden.net/current/bin/common/) -%% -%% BibTeX programming: Linas Stonys, VTeX, Lithuania, lstonys@vtex.lt -% -% Changes: -% 2013-07-15 -- added XML output (taken from bmc_article.bst) v2.0 -% - -ENTRY - { address - author - booktitle - bnumber - chapter - doi - edition - editor - howpublished - institution - isbn - journal - key - keywords - month - note - number - organization - pages - publisher - school - series - title - type - volume - year - url - info - options - urldate - eprint - archive - archivePrefix - primaryClass - eid - adsurl - adsnote - version - } - {} - { label extra.label sort.label short.list} - -INTEGERS { output.state before.all mid.sentence after.sentence - after.block after.authors between.elements bother - Nisbn Nmonth slen set.settings tmp month.printed} - -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := - #4 'after.authors := - #5 'between.elements := -} - -STRINGS { s t element} -STRINGS { longest.label last.label list.string default.list} -STRINGS { v l f j b temp.str} - -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { " " * write$ newline$} - { output.state after.block = - { add.period$ write$ - newline$ - } - { - output.state after.authors = - { ": " * write$ - newline$ - } - { output.state between.elements = - { ", " * write$ newline$} - { output.state before.all = - 'write$ - { add.period$ " " * write$ newline$} - if$ - } - if$ - } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - s -} - -FUNCTION {output} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull - if$ -} - -FUNCTION {output.check} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull - if$ -} -FUNCTION {fin.entry} -{ write$ newline$ } - -FUNCTION {stupid.colon} -{ after.authors 'output.state := } - - -FUNCTION {insert.comma} -{ output.state before.all = - 'skip$ - { between.elements 'output.state := } - if$ -} - -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} - -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - - -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} - -FUNCTION {sort.format.month} -{ 't := - t #1 #2 substring$ "01" = - t #1 #1 substring$ "1" = - t #2 #2 substring$ "" = - and or - { "January" } - { t #1 #2 substring$ "02" = - t #1 #1 substring$ "2" = - t #2 #2 substring$ "" = - and or - { "February" } - { t #1 #2 substring$ "03" = - t #1 #1 substring$ "3" = - t #2 #2 substring$ "" = - and or - { "March" } - { t #1 #2 substring$ "04" = - t #1 #1 substring$ "4" = - or - { "April" } - { t #1 #2 substring$ "05" = - t #1 #1 substring$ "5" = - or - { "May" } - { t #1 #2 substring$ "06" = - t #1 #1 substring$ "6" = - or - { "June" } - { t #1 #2 substring$ "07" = - t #1 #1 substring$ "7" = - or - { "July" } - { t #1 #2 substring$ "08" = - t #1 #1 substring$ "8" = - or - { "August" } - { t #1 #2 substring$ "09" = - t #1 #1 substring$ "9" = - or - { "September" } - { t #1 #2 substring$ "10" = - { "October" } - { t #1 #2 substring$ "11" = - { "November" } - { t #1 #2 substring$ "12" = - { "December" } - { t } % No match - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - -} - -INTEGERS {sk} -FUNCTION {is.num} -{ chr.to.int$ - duplicate$ "0" chr.to.int$ < not - swap$ "9" chr.to.int$ > not and -} - -FUNCTION {make.tag} -{ 't := - duplicate$ empty$ - { pop$ "" } - { bother #0 = - { - t "volume" = - {"\textbf{" swap$ * "}" * } - 'skip$ - if$ - } - { "\b" t * "{" * swap$ * "}" * } - if$ - } - if$ -} - - - -FUNCTION {springer.publisher} -{publisher #1 #8 substring$ "Springer" = - { "Springer" } - { publisher } - if$ -} - -FUNCTION {format.adsurl} -{ - adsurl empty$ - { "" } - {" \href{" adsurl "}" *} - if$ -} - -FUNCTION {format.adsnote} -{ - adsnote empty$ - { "" } - { ". " * adsnote *} - if$ -} - - -FUNCTION {format.soft.title} -{ - title empty$ - { "" } - { title "," *} - if$ -} - -FUNCTION {format.softmisctitle} -{ title empty$ - { ""} - { version empty$ - { title ", " *} - { title ", " * version " " *} - if$ - } - if$ -} - -FUNCTION {format.softmisc.archive} -{ - archivePrefix empty$ - { "" } - { "" } - if$ -} - -FUNCTION {format.archive} -{ - archivePrefix empty$ - { "" } - { archivePrefix ":" *} - if$ -} - -FUNCTION {format.primaryClass} -{ - primaryClass empty$ - { "" } - { "{[" primaryClass * "]}" *} - if$ -} - -FUNCTION {format.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {format.softmisc.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {format.pub.address} -{ publisher empty$ - howpublished empty$ - and - { - address empty$ - 'skip$ - { volume empty$ - 'insert.comma - 'new.sentence - if$ - address - type$ "inproceedings" = - {"conflocation"} - {"location"} - if$ - make.tag output - } - if$ - } - { - address empty$ - { publisher empty$ - {howpublished} - {springer.publisher} - if$ - "publisher" make.tag - #1 bother = - {", \blocation{???}" * } - 'skip$ - if$ - output - } - { - publisher empty$ - {howpublished } - {springer.publisher } - if$ - "publisher" make.tag output - insert.comma - address "location" make.tag output - } - if$ - } - if$ -} - -INTEGERS { nameptr namesleft numnames } - -FUNCTION {mk.tag} -{ 'temp.str := - duplicate$ empty$ - { pop$ "" } - { - b "nothing" = - 'skip$ - { "\b" temp.str * "{" * swap$ * "}" * } - if$ - } - if$ -} - -FUNCTION {space.after.dot} -{'j := - t 'f := - j 't := - s 'j := - "" 'l := - "" 's := - { t empty$ not } - { - t #1 #3 substring$ "{-}" = - { l " {q}. " * 'l := - t #4 global.max$ substring$ 't := - } - 'skip$ - if$ - - t #1 #1 substring$ 's := - l s * 'l := - s "." = - { - t #2 #1 substring$ " " = - 'skip$ - { - l " " * 'l := - t #2 #4 substring$ "{\,}" = - { t #5 global.max$ substring$ 't := } - 'skip$ - if$ - } - if$ - } - 'skip$ - if$ - t #2 global.max$ substring$ 't := - } - while$ - f 't := - j 's := - l -} - -FUNCTION {fix.inits}{ - 't := - "" 'element := - { t empty$ not } - { - t #1 #3 substring$ ".q." = - { element ".-" * 'element := - t #3 global.max$ substring$ 't := - } - {element t #1 #1 substring$ * 'element :=} - if$ - - t #2 global.max$ substring$ 't := - } - while$ - element -} - -FUNCTION {fix.snm}{ - 't := - "" 'element := - { t empty$ not } - { - t #1 #3 substring$ "{-}" = - {element "-" * 'element := - t #3 global.max$ substring$ 't := - } - {element t #1 #1 substring$ * 'element :=} - if$ - - t #2 global.max$ substring$ 't := - } - while$ - element -} - -FUNCTION {enbrace.dash}{ - 't := - "" 'element := - { t empty$ not } - { - t #1 #1 substring$ "-" = - {element "{-}" * 'element :=} - {element t #1 #1 substring$ * 'element :=} - if$ - t #2 global.max$ substring$ 't := - } - while$ - element -} - -FUNCTION {fix.name}{ - - enbrace.dash 's := - "" 'l := - "" 't := - - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { - s nameptr "{vv~}{ll}{, jj}" format.name$ - s nameptr "{, ff}" format.name$ space.after.dot * 'l := - #1 nameptr = - {l 't :=} - {t " and " * l * 't := } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - t -} - -FUNCTION {name.separator}{ - namesleft #1 > - {", " * } - 'skip$ - if$ -} - -FUNCTION {format.author.editor} -{ 'b := - - bother #1 = - b "nothing" = - or - 'skip$ - {"b" b * 'b :=} - if$ - - b "editor" = - b "beditor" = - b "nothing" = - or or - {editor 's :=} - {author 's :=} - if$ - - %% modifying name - s fix.name 's := - - "" 't := - - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - - s numnames "{ll}" format.name$ 'l := - l "others" = - l "{others}" = - l "et al." = - l "{et al.}" = - or or or - {#1 'tmp :=} - {#0 'tmp :=} - if$ - - { namesleft #0 > } - { s nameptr "{vv}" format.name$ "particle" mk.tag 'v := - s nameptr "{ll}" format.name$ fix.snm "snm" mk.tag 'l := - s nameptr "{f{.}.}" format.name$ fix.inits "inits" mk.tag 'f := - s nameptr "{jj}" format.name$ "suffix" mk.tag 'j := - - - namesleft #1 = - tmp #1 = - and - { b "bauthor" = - b "beditor" = - or - {"et al."} - {"\betal"} - if$ - #1 'tmp := - } - { - b "bauthor" = - b "beditor" = - or - {"\oauthor{"} - { - b "nothing" = - {""} - {"\b" b * "{" *} - if$ - } -%% if$ -%% -%% v empty$ -%% 'skip$ -%% {v * " " *} - if$ - - l empty$ - 'skip$ - { l *} - if$ - - f empty$ - 'skip$ - {", " * f *} - if$ - - j empty$ - 'skip$ - {" " * j *} - if$ - - b "nothing" = - {""} - {"}"} - if$ - - * "" 't := - } - if$ - - name.separator - write$ - - namesleft #1 > - b "nothing" = not - and - { namesleft #2 = - tmp #1 = - and - 'skip$ - 'newline$ - if$ - } - 'skip$ - if$ - - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {format.editors} -{ editor empty$ - 'skip$ - { - bother #0 = - { author empty$ - {"editor"} - {"nothing"} - if$ - } - {"editor"} - if$ - format.author.editor - editor num.names$ #1 > - { " (eds.)" } - { " (ed.)" } - if$ - write$ - } - if$ -} - -FUNCTION {format.authors} -{ author empty$ - 'skip$ - {"author" format.author.editor} - if$ -} - -FUNCTION {cite.author.editor} -{ 's := - s #1 "{vv~}{ll}" format.name$ - s num.names$ duplicate$ - #2 > - { pop$ " et~al." * } - { #2 = - { s #2 "{vv~}{ll}{ jj}{ f}" format.name$ "others" = - { " et~al." * } - { " and " * s #2 "{vv~}{ll}" format.name$ * } - if$ - } - 'skip$ - if$ - } - if$ -} - -FUNCTION {check.auth.edit.org} -{author empty$ - { - editor empty$ - { - organization empty$ - {""} - {organization} - if$ - } - {editor cite.author.editor} - if$ - } - {author cite.author.editor} - if$ -} - -FUNCTION {check.year} -{ year empty$ - {""} - {year extra.label *} - if$ -} - -INTEGERS { multiresult char.num k int} -INTEGERS {str.length count return save.num1 save.num2} -FUNCTION {is.in.list}{ - 'f := - %%%% saveing "s" and "t" - s 'j := - f 's := - t 'f := - list.string text.length$ 'str.length := - list.string 't := -% s text.length$ 'slen := - int 'save.num1 := - count 'save.num2 := - #1 'int := - #1 'count := - #0 'return := - - { count str.length = not - #0 str.length = not - and - } - { - count #1 + 'count := - t int #1 substring$ "," = - { - t #1 int substring$ s "," * = - { - #1 'return := - str.length 'count := - } - 'skip$ - if$ - - int #1 + 'int := - t int global.max$ substring$ 't := - #0 'int := - } - 'skip$ - if$ - int #1 + 'int := - } - while$ - - save.num1 'int := - save.num2 'count := - - #0 return = - { s t = - {#1 'return :=} - 'skip$ - if$ - } - 'skip$ - if$ - %%%% returning original "s" and "t" - j 's := - f 't := - - return -} - -INTEGERS {bibitem.count} - -FUNCTION {print.count} -{ bibitem.count #1 + 'bibitem.count := - newline$ - "%%% " - bibitem.count int.to.str$ * write$ -} - - -FUNCTION {output.bibitem} -{ print.count - newline$ - "\bibitem[\protect\citeauthoryear{" write$ - check.auth.edit.org write$ - "}{" write$ - check.year write$ - "}]{" write$ - cite$ write$ - "}" write$ - newline$ - "" before.all 'output.state := -} - - - - -FUNCTION {string.to.integer} -{ 't := - t text.length$ 'k := - #1 'char.num := - { t char.num #1 substring$ 's := - s is.num - s "." = - or - char.num k = not - and - } - { char.num #1 + 'char.num := } - while$ - char.num #1 - 'char.num := - t #1 char.num substring$ -} - - -FUNCTION {find.integer} -{ 't := - #0 'int := - { int not - t empty$ not - and - } - { t #1 #1 substring$ 's := - s is.num - {#1 'int :=} - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - int -} - -function{title.lowerwords}{ -"a,an,and,of,the,for,in,to,over,from,on,or,so,than,that,this,as,but,with,by,at,down,up,upon,al,ale,aus,aux,d'Analyse,d'Analystes,d'Architecture,d'Etudes,d'Histoire,da,dans,de,degli,dei,del," -"dell',dell'Accademia,dell'Istituto,dell'Universita,della,delle,dem,der,des,detta,di,die,din,dlia,do,du,e,eXpress,ed,ego,el,em,en,et,fur,i,iz,l'Academie,l'Age,l'Antiquite," * -"l'Approximation,l'Ecole,l'Histoire,l'I.S.U.P.,l'INSA,l'IREM,l'Indirizzo,l'Institut,l'Institute,l'UFR,l'Union,l'Universite,la,las,les,na,nella,per,po,si,sue,sur,ta,tes,und,van,voor,zu,zum,zur" * -} - -FUNCTION {upercase.first.letters}{ - 't := - "" 's := - #1 'int := - #1 'count := - list.string 'v := - "" 'b := - title.lowerwords 'list.string := - - t text.length$ 'slen := - - {count slen = not } - {t int #1 substring$ " " = - { - int #1 - 'int := - t #1 int substring$ 'b := - - % if word not in title.lowerwords - uppercase first letter - b is.in.list not - { b "l" change.case$ b = - { b "u" change.case$ "t" change.case$ 'b := } - 'skip$ - if$ - } - 'skip$ - if$ - - int #1 + 'int := - - s b " " * * 's := - int #1 + 'int := - t int global.max$ substring$ 't := - #0 'int := - } - 'skip$ - if$ - int #1 + 'int := - count #1 + 'count := -% "count=" count int.to.str$ * " slen=" * slen int.to.str$ * top$ - } - while$ - v 'list.string := - % last word is "t" and need to check it too - s t - t "l" change.case$ t = - { "u" change.case$ "t" change.case$ } - 'skip$ - if$ - * -} - - -FUNCTION {format.title} -{ title empty$ - { "" } - { title - "article" type$ = - type$ "techreport" = - type$ "inbook" = - type$ "inproceedings" = - type$ "incollection" = - type$ "phdthesis" = - type$ "mastersthesis" = - or or or or or or - {"t" change.case$} - { type$ "unpublished" = - type$ "misc" = - or - 'skip$ - 'upercase.first.letters - if$ - } - if$ - } - if$ -} - - -FUNCTION {note.presented} -{ note #1 #9 substring$ "presented" = - note #1 #9 substring$ "Presented" = - or -} - -FUNCTION {n.filter} -{ 't := - "" - { t empty$ not } - { t #1 #1 substring$ "," = - t #1 #1 substring$ "\" = - t #1 #1 substring$ "~" = - or or - { "" * - t #2 global.max$ substring$ 't := - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -FUNCTION {byear} -{ duplicate$ empty$ - { pop$ "" } - { 't := - t text.length$ 'sk := - #5 sk = - { t #1 #4 substring$ 's := - t #5 #1 substring$ 'longest.label := - longest.label is.num not - {s "year" make.tag - "nameyear" is.in.list - {longest.label * } - 'skip$ - if$ - } - {t "year" make.tag } - if$ - } - { t "year" make.tag - "nameyear" is.in.list - {extra.label *} - 'skip$ - if$ - } - if$ - } - if$ -} - -FUNCTION {format.date} -{ year empty$ - { "" } - { year byear } - if$ -} - -FUNCTION {parens} -{ "(" swap$ * ")" * } - -FUNCTION {format.date.parens} -{ year empty$ - { "" } - { year byear parens } - if$ -} - -FUNCTION {noparens} -{ " " swap$ * "" * } - -FUNCTION {format.softmiscdate} -{ year empty$ - { "" } - { year byear parens } - if$ -} - -FUNCTION {format.month}{ - month empty$ - {""} - {month sort.format.month "confdate" make.tag} - if$ -} - -FUNCTION {formatpatent.date} -{ year empty$ - 'skip$ - { month empty$ - { year } - {format.month " " * year *} - if$ - } - if$ -} - -FUNCTION {month.year.date} -{ year empty$ - {""} - { month empty$ - {year byear} - { format.month " " * year byear * } - if$ - type$ "inproceedings" = - 'skip$ - {"(" swap$ * ")" * } - if$ - } - if$ -} - -FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} -FUNCTION {format.volume} -{ volume empty$ - { "book" type$ = - {number empty$ - {""} - {"vol. " number "seriesno" make.tag *} - if$ - } - {""} - if$ - } - {"vol. " volume "seriesno" make.tag *} - if$ -} -FUNCTION {format.volume2} -{ volume empty$ - {""} - {"vol. " volume "seriesno" make.tag *} - if$ -} - -FUNCTION {format.art.vol} -{ - volume empty$ - {""} - {volume n.filter "volume" make.tag} - if$ - number empty$ - 'skip$ - { "(" number "issue" make.tag * ")" * * } - if$ -} - -FUNCTION {format.series} -{ series empty$ - 'skip$ - {series "sertitle" make.tag} - if$ -} - -FUNCTION {format.edition} -{ edition empty$ - { "" } - { "" 'v := - "" 'l := - "" 'f := - edition "l" change.case$ 's := - "1" s = - "first" s = - or - { - "1" 'v := - "st" 'l := - } - { - "2" s = - "second" s = - or - { - "2" 'v := - "nd" 'l := - } - { - "3" s = - "third" s = - or - { - "3" 'v := - "rd" 'l := - } - { - "4" s = - "fourth" s = - or - { - "4" 'v := - "th" 'l := - } - { - "5" s = - "fifth" s = - or - { - "5" 'v := - "th" 'l := - } - { - "6" s = - "sixth" s = - or - { - "6" 'v := - "th" 'l := - } - { - "7" s = - "seventh" s = - or - { - "7" 'v := - "th" 'l := - } - { - "8" s = - "eighth" s = - or - { - "8" 'v := - "th" 'l := - } - { - "9" s = - "nineth" s = - or - { - "9" 'v := - "th" 'l := - } - { - edition "t" change.case$ 'f := - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - #0 bother = - { f "" = - { v l * 'f :=} - 'skip$ - if$ - } - { f "" = - { "\bedition{" v * "}" * l * 'f :=} - { "\bedition{" f * "}" * 'f :=} - if$ - } - if$ - f " edn." * - } - if$ -} -FUNCTION {format.isbn} -{ isbn empty$ - { "" } - { isbn "isbn" make.tag} - if$ -} - -INTEGERS {default.info} - - -FUNCTION {multi.page.check} -{ 't := - #0 'multiresult := - "" 'l := - - {t empty$ not} - { t #1 #1 substring$ 's := - - s is.num not - { "" l = not - {t find.integer - {#1 'multiresult := } - {#0 'multiresult := } - if$ - "" 't := - } - { - t #2 global.max$ substring$ 't := - } - if$ - } - { l s * 'l := - t #2 global.max$ substring$ 't := - } - if$ - } - while$ - multiresult -} -FUNCTION {clearpage} -{ 't := - "" 's := - "" 'l := - - { t empty$ not } - { - t #1 #1 substring$ 's := - s is.num not - 'skip$ - { l s * 'l := } - if$ - t #2 global.max$ substring$ 't := - } - while$ - l - -} -FUNCTION {do.pages} -{'t := - "" 'j := - "" 'v := - {t empty$ not} - { t #1 #1 substring$ 's := - s is.num not - s "," = not - and - { "" j = - { - t #2 global.max$ substring$ 't := - } - {t find.integer - { t clearpage 'v := } - 'skip$ - if$ - "" 't := - } - if$ - } - { j s * 'j := - t #2 global.max$ substring$ 't := - } - if$ - } - while$ - j clearpage 'j := - j "fpage" make.tag - "cnd" is.in.list - 'skip$ - {"--" * v "lpage" make.tag *} - if$ -} - - -FUNCTION {format.pages} -{ pages empty$ - { "" } - { pages multi.page.check - {type$ "article" = - {""} - {"cnd" is.in.list - {"p. "} - {"pp. "} - if$ - } - if$ - pages do.pages * - } - {type$ "article" = - {""} - {"p. "} - if$ - pages clearpage "fpage" make.tag * - } - - if$ - } - if$ -} - -FUNCTION {replace.tilde} -{ 't := - "" - { t empty$ not } - { t #1 #1 substring$ "~" = - { { t #1 #1 substring$ "~" = } - { "\texttildelow " * - t #2 global.max$ substring$ 't := - } - while$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - - -FUNCTION {format.url} -{ url empty$ - 'skip$ - { type$ "article" = - 'skip$ - { #0 bother = - { "\url{" } - { "\burl{" } - if$ - url replace.tilde * "}" * - output - } - if$ - - urldate empty$ - 'skip$ - { "Accessed " urldate * output } - if$ - } - if$ -} - - -FUNCTION {publisher.month.pages}{ - publisher empty$ series empty$ and - { address empty$ - 'skip$ - 'new.sentence - if$ - format.pub.address - - pages empty$ - 'skip$ - {insert.comma} - if$ - format.pages output - - } - { - pages empty$ - 'skip$ - {insert.comma} - if$ - format.pages output - publisher empty$ - 'skip$ - {new.sentence} - if$ - format.pub.address - } - if$ -} - -function{process.doi}{ - doi 't := - "" 'b := - #1 'int := -% "doi =" t * top$ - - t text.length$ 'slen := - - {int slen = not } - {t int #3 substring$ "10." = - { - t int #1 - #1 substring$ 'b := - b "" = - {"a" 'b :=} % if b is empty need to set a letter - 'skip$ - if$ - - b is.num not - { - t int slen int - #1 + substring$ 't := - slen #1 - 'int := - } - 'skip$ - if$ - - } - 'skip$ - if$ - int #1 + 'int := - } - while$ - t -} - -FUNCTION {format.doi} -{ doi empty$ - {""} - { - "nodoi" is.in.list - {""} - %%{"doi:\doiurl{" process.doi * "}" * } - {"\doiurl{" process.doi * "} " * } - if$ - } - if$ -} - -FUNCTION {format.in.ed.booktitle} -{ booktitle empty$ - {#1 bother = - "cnd" is.in.list not - and - { editor empty$ - 'skip$ - { "In: " output write$ format.editors } - if$ - } - 'skip$ - if$ - } - { editor empty$ - { "In: " booktitle upercase.first.letters "btitle" make.tag * output} - { "In: " output write$ format.editors "" %%% pushing empty string to the empty stack - booktitle upercase.first.letters "btitle" make.tag output - } - if$ - } - - if$ -} - -FUNCTION {format.in.ed} -{ title empty$ - 'skip$ - { editor empty$ - { title "btitle" make.tag output} - { author empty$ - { format.editors - stupid.colon - %format.date output - title "btitle" make.tag output - } - { "In: " output write$ format.editors "" %%% pushing empty string to the empty stack - title "btitle" make.tag output - } - if$ - } - if$ - } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { "Technical Report" } - 'type - if$ - number empty$ - { "t" change.case$ } - { number tie.or.space.connect } - if$ -} - -FUNCTION {patent.number} -{ number empty$ - 'skip$ - { number } - if$ -} -INTEGERS { len } - -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -FUNCTION {format.inpres} -{ "l" change.case$ 't := - "in press: " #10 - "in press. " #10 - "in press " #9 t chop.word - chop.word - chop.word - #1 global.max$ substring$ -} - -FUNCTION {bcomment.note} -{ note empty$ - 'skip$ - {note format.inpres "comment" make.tag output} - if$ -} - -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ -} - -FUNCTION {format.thesis.type} -{ type empty$ - 'skip$ - { pop$ - type "t" change.case$ - } - if$ -} - -FUNCTION {format.chapter.and.note} -{ note empty$ chapter empty$ organization empty$ and and - 'skip$ - { chapter empty$ - "notnumber" last.label = - or - {organization empty$ - { note "comment" make.tag output } - { note empty$ - { organization "comment" make.tag output } - { organization ". " * note * "comment" make.tag output } - if$ - } - if$ - } - { note empty$ - { "Chap. " chapter * "comment" make.tag output} - { type empty$ - { "Chap. " } - { type "t" change.case$ "Section" = - { "Sect. " } - { "Chap. " } - if$ - } - if$ - chapter * ". " * note * "comment" make.tag output - } - if$ - } - if$ - } - if$ -} - -FUNCTION {item.end} -{ chapter empty$ - type$ "unpublished" = not - type$ "misc" = not - and and - { new.sentence - format.doi output - } - 'skip$ - if$ - - type$ "unpublished" = - type$ "misc" = - or - { note empty$ - 'skip$ - {note.presented - 'skip$ - {new.sentence note output} - if$ - } - if$ - format.date.parens output - } - { new.sentence - type$ "proceedings" = - { author empty$ editor empty$ and - 'bcomment.note - 'format.chapter.and.note - if$ - } - 'format.chapter.and.note - if$ - } - if$ - list.string 'v := - default.list 'list.string := - - type$ ".isbn" * is.in.list - "cnd" is.in.list - or - { - new.sentence -% format.isbn output - } - 'skip$ - if$ - new.sentence - %% commented by SPi as we are using format.eprint %% - %% and also to avoide eprint being printed twice - Start %% - %%eprint empty$ - %% 'skip$ - %% {"\arxivurl{" eprint * "}" * output} - %%if$ - %% End %% - chapter empty$ - type$ "unpublished" = not - type$ "misc" = not - and and - 'skip$ - { new.sentence - format.doi output - } - if$ - new.sentence - format.url - v 'list.string := - fin.entry -} - -FUNCTION {article.item.end} -{ chapter empty$ - type$ "unpublished" = not - type$ "misc" = not - and and - { new.sentence -% format.doi output - } - 'skip$ - if$ - - type$ "unpublished" = - type$ "misc" = - or - { note empty$ - 'skip$ - {note.presented - 'skip$ - {new.sentence note output} - if$ - } - if$ - format.date.parens output - } - { new.sentence - type$ "proceedings" = - { author empty$ editor empty$ and - 'bcomment.note - 'format.chapter.and.note - if$ - } - 'format.chapter.and.note - if$ - } - if$ - list.string 'v := - default.list 'list.string := - - type$ ".isbn" * is.in.list - "cnd" is.in.list - or - { - new.sentence -% format.isbn output - } - 'skip$ - if$ - new.sentence - %% commented by SPi as we are using format.eprint %% - %% and also to avoide eprint being printed twice - Start %% - %%eprint empty$ - %% 'skip$ - %% {"\arxivurl{" eprint * "}" * output} - %%if$ - %% End %% - chapter empty$ - type$ "unpublished" = not - type$ "misc" = not - and and - 'skip$ - { new.sentence -%% format.doi output - } - if$ - new.sentence - format.url - v 'list.string := - fin.entry -} - - -FUNCTION {insert.element} -{ #0 bother = - { element "{botherref}" * write$ newline$} - { - type$ "article" = - {element "{barticle}" * write$ newline$} - 'skip$ - if$ - type$ "book" = - type$ "proceedings" = - type$ "manual" = - type$ "booklet" = - or or or - {element "{bbook}" * write$ newline$} - 'skip$ - if$ - - type$ "inbook" = - { "notnumber" last.label = - {element "{bchapter}" * write$ newline$} - {element "{bbook}" * write$ newline$} - if$ - } - 'skip$ - if$ - - type$ "incollection" = - type$ "inproceedings" = - type$ "conference" = - or or - {element "{bchapter}" * write$ newline$} - 'skip$ - if$ - } - if$ -} - -FUNCTION {end.element} -{ "\end" 'element := - item.end - insert.element - "\endbibitem" write$ newline$ -} - -FUNCTION {article.end.element} -{ "\end" 'element := - article.item.end - insert.element - "\endbibitem" write$ newline$ -} - - -FUNCTION {begin.element} -{ "\begin" 'element := - insert.element -} -function {set.options}{ - options empty$ - 'skip$ - {options 'list.string :=} - if$ -} - -FUNCTION {settings} -{} - -FUNCTION {article} -{ output.bibitem - author empty$ - institution empty$ - editor empty$ - and and - journal empty$ - or - year empty$ - or - % above tagging rule means: - % nead: (volume & (pages or number) ) or (doi [without volume, pages and number]) - volume empty$ not - pages empty$ not bnumber empty$ not or - and - - volume empty$ pages empty$ bnumber empty$ and and - doi empty$ not and - or - not - or - {#0 'bother :=} - {#1 'bother :=} - if$ - begin.element - author empty$ - { editor empty$ - 'skip$ - {format.editors stupid.colon} - if$ - } - { format.authors stupid.colon} - if$ - "cnd" is.in.list - { - journal empty$ - {format.title "atitle" make.tag "title" output.check} - {journal "jtitle" make.tag output} - if$ - } - { - format.title "atitle" make.tag "title" output.check - journal empty$ - 'skip$ - {new.sentence journal "jtitle" make.tag output} - if$ - } - if$ - format.art.vol output - pages empty$ - 'skip$ - {insert.comma} - if$ - format.pages output - format.date.parens output - format.doi output - format.eprint output - format.primaryClass output - article.end.element -} - - -FUNCTION {patent} -{ output.bibitem - #0 'bother := - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "title" output.check - add.period$ - patent.number output - insert.comma - formatpatent.date output - end.element -} - -FUNCTION { other } { patent } - -FUNCTION {book} -{ output.bibitem - author empty$ - institution empty$ - organization empty$ - editor empty$ - and and and - title empty$ - year empty$ - or or - {#0 'bother :=} - { - publisher empty$ address empty$ not and - {#0 'bother :=} - {#1 'bother :=} - if$ - } - if$ - begin.element - author empty$ - { editor empty$ - 'skip$ - {format.editors stupid.colon} - if$ - } - { format.authors stupid.colon} - if$ - format.title "btitle" make.tag "title" output.check - series empty$ - { - format.volume output - insert.comma - format.edition output - } - { edition empty$ - 'skip$ - 'insert.comma - if$ - format.edition output - new.sentence - format.series output - insert.comma - format.volume output - } - if$ - publisher.month.pages - format.date.parens output - end.element -} - -FUNCTION {booklet} -{output.bibitem - author empty$ - title empty$ - year empty$ - howpublished empty$ - or or or - {#0 'bother :=} - {#1 'bother :=} - if$ - - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "btitle" make.tag "title" output.check - address empty$ publisher empty$ howpublished empty$ and and - 'skip$ - 'new.sentence - if$ - format.pub.address - format.date.parens output - end.element -} - -FUNCTION {misc} -{output.bibitem - #0 'bother := - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "btitle" make.tag "title" output.check - address empty$ publisher empty$ howpublished empty$ and and - 'skip$ - 'new.sentence - if$ - format.pub.address - end.element -} - -FUNCTION {softmisc} -{output.bibitem - #0 'bother := - begin.element - author empty$ - 'skip$ - {format.authors} - if$ - stupid.colon - format.title "btitle" make.tag "title" output.check - insert.comma - version output - insert.comma - %%address empty$ publisher empty$ howpublished empty$ and and - %%'skip$ - %% 'new.sentence - %%if$ - format.pub.address - format.softmiscdate output - insert.comma - format.softmisc.eprint output - end.element -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - institution empty$ - organization empty$ - editor empty$ - and and and - title empty$ - year empty$ - or or - {#0 'bother :=} - { - publisher empty$ address empty$ not and - {#0 'bother :=} - {#1 'bother :=} - if$ - } - if$ - - chapter empty$ - { "" 'last.label :=} - { chapter string.to.integer empty$ author empty$ not and - { "notnumber" 'last.label :=} - { "" 'last.label :=} - if$ - } - if$ - - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - "notnumber" last.label = - { chapter "ctitle" make.tag output - add.period$ - } - 'skip$ - if$ - format.in.ed - series empty$ - { - insert.comma - format.volume output - insert.comma - format.edition output - new.sentence - } - { - insert.comma - format.edition output - new.sentence - format.series output - volume empty$ - 'skip$ - 'insert.comma - if$ - format.volume output - } - if$ - publisher.month.pages - publisher empty$ address empty$ edition empty$ series empty$ pages empty$ volume empty$ and and and and and - 'insert.comma - 'skip$ - if$ - format.date.parens output - end.element -} -FUNCTION {incollection} -{ output.bibitem - author empty$ - institution empty$ - and - booktitle empty$ - title empty$ - year empty$ - or or or - {#0 'bother :=} - { - publisher empty$ address empty$ not and - {#0 'bother :=} - {#1 'bother :=} - if$ - } - if$ - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - - "cnd" is.in.list - { - booktitle empty$ title empty$ not and - { - format.title "ctitle" make.tag "title" output.check - new.sentence - } - 'skip$ - if$ - } - { - format.title "ctitle" make.tag "title" output.check - title empty$ - 'skip$ - {new.sentence} - if$ - } - if$ - format.in.ed.booktitle - series empty$ - { - format.volume output - insert.comma - format.edition output - } - { - edition empty$ - 'skip$ - { insert.comma - format.edition output - } - if$ - new.sentence - format.series output - insert.comma - format.volume output - } - if$ - publisher.month.pages - format.date.parens output - end.element -} - -FUNCTION {inproceedings} -{ output.bibitem - author empty$ - institution empty$ - and - title empty$ - year empty$ - or or - {#0 'bother :=} - {#1 'bother :=} - if$ - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - - "cnd" is.in.list - { - booktitle empty$ title empty$ not and - { - format.title "ctitle" make.tag "title" output.check - new.sentence - } - 'skip$ - if$ - } - { - format.title "ctitle" make.tag "title" output.check - title empty$ booktitle empty$ not and - 'skip$ - {new.sentence} - if$ - } - if$ - - format.in.ed.booktitle - series empty$ - 'skip$ - {new.sentence format.series output} - if$ - volume empty$ address empty$ publisher empty$ and and - 'skip$ - 'insert.comma - if$ - format.volume output - publisher.month.pages - format.date.parens output - end.element -} - -FUNCTION {conference} { inproceedings } - -FUNCTION {manual} -{ output.bibitem - author empty$ - organization empty$ - title empty$ - year empty$ - address empty$ - or or or or - {#0 'bother :=} - {#1 'bother :=} - if$ - begin.element - - author empty$ - { organization empty$ - 'skip$ - { organization "publisher" make.tag output.nonnull - stupid.colon% add.period$ - } - if$ - } - { format.authors stupid.colon} - if$ - title empty$ - 'skip$ - {format.title "btitle" make.tag output} - if$ - edition empty$ - {new.sentence} - {insert.comma} - if$ - format.edition output - edition empty$ - 'skip$ - {new.sentence} - if$ - author empty$ organization empty$ - or - 'skip$ - { organization "publisher" make.tag output.nonnull - insert.comma - } - if$ - address empty$ - 'skip$ - {address "location" make.tag output} - if$ - format.date.parens output - end.element -} - - -FUNCTION {phdthesis} -{output.bibitem - #0 'bother := - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "title" output.check - new.sentence - type$ "mastersthesis" = - {"Master's thesis" format.thesis.type output.nonnull} - {"PhD thesis" format.thesis.type output.nonnull} - if$ - school empty$ - 'skip$ - 'insert.comma - if$ - school "school" output.check - address empty$ - 'skip$ - 'insert.comma - if$ - address output - month.year.date output - end.element -} -FUNCTION {mastersthesis}{phdthesis} - - -FUNCTION {proceedings} -{ output.bibitem - author empty$ - institution empty$ - organization empty$ - editor empty$ - and and and - title empty$ - year empty$ - or or - {#0 'bother :=} - { - publisher empty$ address empty$ not and - {#0 'bother :=} - {#1 'bother :=} - if$ - } - if$ - - begin.element - author empty$ - { editor empty$ - {organization "institutionaled" make.tag "organization" output.check } - { format.editors } - if$ - } - { format.authors } - if$ - stupid.colon - format.title "btitle" make.tag output - series empty$ - 'skip$ - {new.sentence format.series output} - if$ - volume empty$ - 'skip$ - 'insert.comma - if$ - format.volume output - publisher.month.pages - format.date.parens output - end.element -} - -FUNCTION {techreport} -{ output.bibitem - #0 'bother := - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "title" output.check - new.sentence - format.tr.number output.nonnull - institution empty$ - 'skip$ - 'insert.comma - if$ - institution "institution" output.check - address empty$ - 'skip$ - 'insert.comma - if$ - address output - month.year.date output - end.element -} - -FUNCTION {unpublished} -{ output.bibitem - #0 'bother := - - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "title" output.check - note empty$ - 'skip$ - { note.presented - {note output} - 'skip$ - if$ - } - if$ - end.element -} - -FUNCTION {default.type} { unpublished } - -MACRO {jan} {"January"} -MACRO {feb} {"February"} -MACRO {mar} {"March"} -MACRO {apr} {"April"} -MACRO {may} {"May"} -MACRO {jun} {"June"} -MACRO {jul} {"July"} -MACRO {aug} {"August"} -MACRO {sep} {"September"} -MACRO {oct} {"October"} -MACRO {nov} {"November"} -MACRO {dec} {"December"} - -READ - -FUNCTION {sortify} -{ purify$ - "l" change.case$ -} - -INTEGERS { et.al.char.used } - -FUNCTION {initialize.et.al.char.used} -{ #0 'et.al.char.used := -} - -%%%%% setting default options -FUNCTION {set.default.opt} -{"alpha" 'list.string :=} - -EXECUTE {set.default.opt} - -FUNCTION {assign.opt}{ - % First need to set options - "settings" type$ = - { options empty$ - 'skip$ - {options 'list.string :=} - if$ - } - 'skip$ - if$ -} - -ITERATE {assign.opt} -EXECUTE {initialize.et.al.char.used} - -FUNCTION {alpha.format.lab.names} -{ 's := - s num.names$ 'numnames := - numnames #1 > - { numnames #4 > - { #3 'namesleft := } - { numnames 'namesleft := } - if$ - #1 'nameptr := - "" - { namesleft #0 > } - { nameptr numnames = - { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { "+" * - #1 'et.al.char.used := - } - { s nameptr "{v{}}{l{}}" format.name$ * } - if$ - } - { s nameptr "{v{}}{l{}}" format.name$ * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - numnames #4 > - { "+" * - #1 'et.al.char.used := - } - 'skip$ - if$ - } - { s #1 "{v{}}{l{}}" format.name$ - duplicate$ text.length$ #2 < - { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } - 'skip$ - if$ - } - if$ -} - -FUNCTION {standard.format.lab.names} -{ 's := - s #1 "{vv~}{ll}" format.name$ - s num.names$ duplicate$ - #2 > - { pop$ " et~al." * } - { #2 < - 'skip$ - { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { " et~al." * } - { " and " * s #2 "{vv~}{ll}" format.name$ * } - if$ - } - if$ - } - if$ -} -FUNCTION {format.lab.names}{ - "alpha" is.in.list - 'alpha.format.lab.names - 'standard.format.lab.names - if$ -} - -FUNCTION {author.key.label} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {author.editor.key.label} -{ author empty$ - { editor empty$ - { key empty$ - { "zzz" } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {author.key.organization.label} -{ author empty$ - { key empty$ - { organization empty$ - { "zzz" } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {editor.key.organization.label} -{ editor empty$ - { key empty$ - { organization empty$ - { "zzz" } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names } - if$ -} - -FUNCTION {calc.short.authors} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label - { type$ "proceedings" = - 'editor.key.organization.label - { type$ "manual" = - 'author.key.organization.label - 'author.key.label - if$ - } - if$ - } - if$ - 'short.list := -} - -FUNCTION {calc.label} -{ calc.short.authors - short.list - - "alpha" is.in.list - { - duplicate$ - year field.or.null purify$ #-1 #2 substring$ - * - 'label := - year field.or.null purify$ #-1 #4 substring$ - * - sortify 'sort.label := - } - { - "(" - * - year duplicate$ empty$ - short.list key field.or.null = or - { pop$ "" } - 'skip$ - if$ - * - 'label := - label 'sort.label := - } - if$ -} - -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { nameptr #1 > - { " " * - "alpha" is.in.list - 'skip$ - {numnames int.to.str$ * " " *} - if$ - } - 'skip$ - if$ - s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := - nameptr numnames = - t "others" = - and - { "et al" * } - { t sortify * } - if$ - #3 numnames < - "alpha" is.in.list not - and - {#0 'namesleft := - " zzz " * - } - { - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - if$ - } - while$ -} - -FUNCTION {sort.format.title} -{ 't := - "A " #2 - "An " #3 - "The " #4 t chop.word - chop.word - chop.word - sortify - #1 global.max$ substring$ -} - -FUNCTION {author.sort} -{ author empty$ - { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "zzz" - } - { key sortify } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {author.editor.sort} -{ author empty$ - { editor empty$ - { key empty$ - { "to sort, need author, editor, or key in " cite$ * warning$ - "z" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {author.organization.sort} -{ author empty$ - { organization empty$ - { key empty$ - { "to sort, need author, organization, or key in " cite$ * warning$ - "z" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {editor.organization.sort} -{ editor empty$ - { organization empty$ - { key empty$ - { "to sort, need editor, organization, or key in " cite$ * warning$ - "z" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { editor sort.format.names } - if$ -} - -FUNCTION {presort} -{ calc.label - sort.label sortify - " " - * - type$ "book" = - type$ "inbook" = - or - {author empty$ - 'editor.organization.sort - 'author.organization.sort - if$ - } - { type$ "proceedings" = - type$ "incollection" = - or - {author empty$ - 'editor.organization.sort - 'author.organization.sort - if$ - } - { type$ "manual" = - 'author.organization.sort - 'author.sort - if$ - } - if$ - } - if$ - " " - * - year field.or.null sortify - * - " " - * - title field.or.null - sort.format.title - * - #1 entry.max$ substring$ 'sort.label := - sort.label * - #1 entry.max$ substring$ 'sort.key$ := - - "settings" type$ = - {"aaa"} - {"unsort" is.in.list - {"bb"} - {"alpha" is.in.list - {sort.key$} - {sort.label} - if$ - } - if$ - } - if$ - 'sort.key$ := -} - - -ITERATE {presort} - -SORT - -INTEGERS { longest.label.width last.extra.num number.label } - -FUNCTION {initialize.longest.label} -{ "" 'longest.label := - #0 int.to.chr$ 'last.label := - "" 'j := - #0 'longest.label.width := - #0 'last.extra.num := - #0 'number.label := -} - -FUNCTION {forward.pass} -{ last.label label = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - label 'last.label := - } - if$ - number.label #1 + 'number.label := -} - -FUNCTION {reverse.pass} -{ j "b" = - { "a" 'extra.label := } - 'skip$ - if$ - extra.label 'j := - label extra.label * 'label := -} - -EXECUTE {initialize.longest.label} - -ITERATE {forward.pass} - -REVERSE {reverse.pass} - -FUNCTION {write.preambule} -{ "%% BioMed_Central_Bib_Style_v1.01" write$ newline$ newline$ - "\begin{thebibliography}{" number.label int.to.str$ * "}" * write$ newline$ - "% BibTex style file: bmc-mathphys.bst (version 2.1), 2014-07-24" write$ newline$ - "\ifx \bisbn \undefined \def \bisbn #1{ISBN #1}\fi" write$ newline$ - "\ifx \binits \undefined \def \binits#1{#1}\fi" write$ newline$ - "\ifx \bauthor \undefined \def \bauthor#1{#1}\fi" write$ newline$ - "\ifx \batitle \undefined \def \batitle#1{#1}\fi" write$ newline$ - "\ifx \bjtitle \undefined \def \bjtitle#1{#1}\fi" write$ newline$ - "\ifx \bvolume \undefined \def \bvolume#1{\textbf{#1}}\fi" write$ newline$ - "\ifx \byear \undefined \def \byear#1{#1}\fi" write$ newline$ - "\ifx \bissue \undefined \def \bissue#1{#1}\fi" write$ newline$ - "\ifx \bfpage \undefined \def \bfpage#1{#1}\fi" write$ newline$ - "\ifx \blpage \undefined \def \blpage #1{#1}\fi" write$ newline$ - "\ifx \burl \undefined \def \burl#1{\textsf{#1}}\fi" write$ newline$ - %%"\ifx \doiurl \undefined \def \doiurl#1{\textsf{#1}}\fi" write$ newline$ - "\ifx \doiurl \undefined \def \doiurl#1{\url{https://doi.org/#1}}\fi" write$ newline$ - "\ifx \betal \undefined \def \betal{\textit{et al.}}\fi" write$ newline$ - "\ifx \binstitute \undefined \def \binstitute#1{#1}\fi" write$ newline$ - "\ifx \binstitutionaled \undefined \def \binstitutionaled#1{#1}\fi" write$ newline$ - "\ifx \bctitle \undefined \def \bctitle#1{#1}\fi" write$ newline$ - "\ifx \beditor \undefined \def \beditor#1{#1}\fi" write$ newline$ - "\ifx \bpublisher \undefined \def \bpublisher#1{#1}\fi" write$ newline$ - "\ifx \bbtitle \undefined \def \bbtitle#1{#1}\fi" write$ newline$ - "\ifx \bedition \undefined \def \bedition#1{#1}\fi" write$ newline$ - "\ifx \bseriesno \undefined \def \bseriesno#1{#1}\fi" write$ newline$ - "\ifx \blocation \undefined \def \blocation#1{#1}\fi" write$ newline$ - "\ifx \bsertitle \undefined \def \bsertitle#1{#1}\fi" write$ newline$ - "\ifx \bsnm \undefined \def \bsnm#1{#1}\fi" write$ newline$ - "\ifx \bsuffix \undefined \def \bsuffix#1{#1}\fi" write$ newline$ - "\ifx \bparticle \undefined \def \bparticle#1{#1}\fi" write$ newline$ - "\ifx \barticle \undefined \def \barticle#1{#1}\fi" write$ newline$ - "\bibcommenthead" write$ newline$ -} - - -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - write.preambule - "\ifx \bconfdate \undefined \def \bconfdate #1{#1}\fi" write$ newline$ - "\ifx \botherref \undefined \def \botherref #1{#1}\fi" write$ newline$ - "\ifx \url \undefined \def \url#1{\textsf{#1}}\fi" write$ newline$ - "\ifx \bchapter \undefined \def \bchapter#1{#1}\fi" write$ newline$ - "\ifx \bbook \undefined \def \bbook#1{#1}\fi" write$ newline$ - "\ifx \bcomment \undefined \def \bcomment#1{#1}\fi" write$ newline$ - "\ifx \oauthor \undefined \def \oauthor#1{#1}\fi" write$ newline$ - "\ifx \citeauthoryear \undefined \def \citeauthoryear#1{#1}\fi" write$ newline$ - "\ifx \endbibitem \undefined \def \endbibitem {}\fi" write$ newline$ - "\ifx \bconflocation \undefined \def \bconflocation#1{#1}\fi" write$ newline$ - "\ifx \arxivurl \undefined \def \arxivurl#1{\textsf{#1}}\fi" write$ newline$ - "\csname PreBibitemsHook\endcsname" write$ newline$ -} - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -FUNCTION {end.bib} -{ newline$ - "\end{thebibliography}" write$ newline$ -} - -EXECUTE {end.bib} - - -%% XML output - done for each entry referenced in the BibTeX database -INTEGERS {i ll li j.int global.counter} -STRINGS {lr lp lt ls } - -FUNCTION {replace} -{ - 'lr := % replace string - 'lp := % pattern - 'lt := % text to search - "" 'ls := % result string - lp text.length$ 'll := % length of the search pattern - { lt empty$ not } - { lt #1 ll substring$ lp = - { ls lr * 'ls := - lt ll #1 + global.max$ substring$ 'lt := } - { ls lt #1 #1 substring$ * 'ls := - lt #2 global.max$ substring$ 'lt := } - if$ - } - while$ - ls -} - -FUNCTION {strip.letters} -{ - "" 's := - duplicate$ missing$ - 'pop$ - { - 't := - { t "" = not } - { % ascii '0' = 48, '9' = 57 - t #1 #1 substring$ chr.to.int$ 'i := - i #47 > i #58 < and - { s t #1 #1 substring$ * 's := } - 'skip$ - if$ - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - s -} -FUNCTION {output.xml} -{ duplicate$ "" = - 'pop$ - { " " swap$ * write$ newline$ } - if$ -} - -%% - % markup.xml - % - % Takes 2 args text & tag {"the text " "tag"} - % Returns 1 string {"the text <\tag>"} -%% -FUNCTION {markup.xml} -{ - "" 'v := % result - 't := % tag - duplicate$ missing$ - 'pop$ - { 'v := } - if$ - v "" = - 'skip$ - { "<" t * ">" * v * "" * 'v := } - if$ - v -} - -%% Takes 2 args - tag, string -FUNCTION{markup.xml.title} -{ pop$ % tag - duplicate$ missing$ - 'pop$ - { - 's := % string - s "\&" "&" replace 's := - s "p" markup.xml 's := - s "title" markup.xml output.xml - } - if$ -} - - -%% - % markup.xml.pages - % - % Takes 1 arg (pages string) - % seperates into and if - % there is a - seperator. else no lpage. - % - % need to remove others -%% -FUNCTION{markup.xml.pages} -{ - "" 'v := % fpage - "" 's := % lpage - duplicate$ missing$ - 'pop$ - { - 't := - t " " "" replace 't := % remove all spaces. pgs must be - seperated - { t empty$ not } - { - t #1 #1 substring$ "-" = - { - t #2 global.max$ substring$ 's := - "" 't := % break while loop - }{ - v t #1 #1 substring$ * 'v := - t #2 global.max$ substring$ 't := - } - if$ - } - while$ - } - if$ - v "fpage" markup.xml output.xml - s "lpage" markup.xml output.xml -} - - -%% - % markup.xml.names - % - % Takes 2 args - % tag, namefield (eg. author "au") - % splits fields into and - % writes info - % returns nothing -%% -FUNCTION {markup.xml.names} -{ - 't := % tag - "" 'v := - "" 's := - duplicate$ empty$ - { pop$ - organization missing$ - { institution "cnm" markup.xml - "au" markup.xml "aug" markup.xml output.xml } - { organization "cnm" markup.xml - "au" markup.xml "aug" markup.xml output.xml } - if$ } - { - " " write$ newline$ - 'temp.str := % names string - temp.str num.names$ 'j.int := % num of names - #1 'i := % init counter - { i #1 j.int + < } % while (i <= j.int) - { - " " write$ - - % Initial first names - % if first name all in capitals - % - assume is initial list of first names. - temp.str i "{ff{ }}" format.name$ - duplicate$ "u" change.case$ = - { temp.str i "{ff{ }}" format.name$ } - { temp.str i "{f{}}" format.name$ } - if$ - - % if last name but no first name use cnm; else snm - duplicate$ "" = - { temp.str i "{ll{ }}" format.name$ % last names space seperated. - "cnm" markup.xml write$ } - { temp.str i "{ll{ }}" format.name$ % last names space seperated. - "snm" markup.xml write$ } - if$ - - "fnm" markup.xml write$ - - "" write$ newline$ - i #1 + 'i := - } - while$ - " " write$ newline$ - } - if$ -} - - -%% - % markup.xml.pub - % - % Takes 4 args (school address publisher tag) - % prints concatenation - % returns nothing -%% -FUNCTION {markup.xml.pub} -{ - 't := % Tag - "" 'v := % Publisher - "" 'l := % Address - "" 'f := % School - "" 's := % Answer - duplicate$ missing$ 'pop$ { 'v := } if$ - duplicate$ missing$ 'pop$ { 'l := } if$ - duplicate$ missing$ 'pop$ { 'f := } if$ - "" f = not % school not empty - { f 's := } % return school as publisher - { % else - "" v = "" l = and % address and pub empty - 'skip$ - { - "" l = - { v 's := } % return pub - { "" v = - { l 's := } % return add - { l ": " * v * 's := } % return add : pub - if$ - } - if$ - } - if$ - } - if$ - s t markup.xml output.xml -} - -%% - % xml.phd - % - % Takes nothing - % Returns type (phd/msc) of empty string -%% -FUNCTION {xml.phd} -{ - "phdthesis" type$ = - "mastersthesis" type$ = or - { "phdthesis" type$ = - { "PhD thesis" } - { "Master's thesis" } - if$ - } - { type } % usually empty - if$ -} - -% markup.xml.edition -% -% edition is a numeric value. ie "2" -% if format 2nd 1st etc.. strip letters. -% -FUNCTION {markup.xml.edition} -{ pop$ pop$ %clear stack - edition strip.letters duplicate$ "" = - { pop$ edition } - 'skip$ - if$ - "edition" markup.xml output.xml -} - - -FUNCTION{begin.bmcxmlcomment}{ - newline$ - "\newcommand{\BMCxmlcomment}[1]{}" write$ newline$ - newline$ - "\BMCxmlcomment{" write$ newline$ - newline$ "" write$ newline$ -} - -FUNCTION{end.bmcxmlcomment}{ - newline$ - "" write$ newline$ - "} % end of \BMCxmlcomment" write$ newline$ -} - -FUNCTION {export.xml}{ - newline$ - global.counter #1 + 'global.counter := - "" * - write$ newline$ -% title "\&" "&" replace "title" markup.xml.title - title "title" markup.xml.title - author "aug" markup.xml.names % org. and inst. here - howpublished missing$ - { booktitle missing$ - { journal missing$ - { xml.phd } % Phd/Msc - {journal} - if$ - } {booktitle} - if$ - } { howpublished } - if$ "source" markup.xml output.xml - school - address - publisher "publisher" markup.xml.pub - editor "editor" markup.xml output.xml - edition "edition" markup.xml.edition - series "p" markup.xml - "title" markup.xml - "series" markup.xml output.xml - chapter "p" markup.xml - "title" markup.xml - "section" markup.xml output.xml - % month % ignore - year "pubdate" markup.xml output.xml - - note missing$ - { volume "volume" markup.xml output.xml - number "issue" markup.xml output.xml - pages markup.xml.pages - url "url" markup.xml output.xml } - { note "l" change.case$ "in press" = - { " " write$ newline$ } - { volume "volume" markup.xml output.xml - number "issue" markup.xml output.xml - pages markup.xml.pages - url "url" markup.xml output.xml - note "note" markup.xml output.xml - } - if$ - } - if$ - "" write$ newline$ -} - -%%EXECUTE {begin.bmcxmlcomment} -%%ITERATE {export.xml} -%%EXECUTE {end.bmcxmlcomment} - - - - diff --git a/_extensions/christopherkenny/nature/sn-mathphys-num.bst b/_extensions/christopherkenny/nature/sn-mathphys-num.bst deleted file mode 100644 index 236a058..0000000 --- a/_extensions/christopherkenny/nature/sn-mathphys-num.bst +++ /dev/null @@ -1,3208 +0,0 @@ -%% This is file `bmc-mathphys.bst' (created: 2011-12-27) -%% Compatible with bibtex version 0.99d. -%% -%% Please submit bugs or your comments to vtex@vtex.lt -%% Start subject with a "[BMC] bibtex: " + subject -%% -%% Sorting entries is done by name and year fields! -%% -%% You are free to use this style file as you see fit, provided -%% that you do not make changes to the file. -%% If you DO make changes, you are required to rename this file. -%% -%% It may be distributed under the terms of the LaTeX Project Public -%% License, as described in lppl.txt in the base LaTeX distribution. -%% Either version 1.0 or, at your option, any later version. -%% -%% LIMITATIONS: -%% If you are getting error like -%% "Sorry---you've exceeded BibTeX's number of string global-variables" -%% that means you are using to old bibtex version. You should download latest version 0.99d. -%% (One of the binaries location is minimals.contextgarden.net/current/bin/common/) -%% -%% BibTeX programming: Linas Stonys, VTeX, Lithuania, lstonys@vtex.lt -% -% Changes: -% 2013-07-15 -- added XML output (taken from bmc_article.bst) v2.0 -% - -ENTRY - { address - author - booktitle - bnumber - chapter - doi - edition - editor - howpublished - institution - isbn - journal - key - keywords - month - note - number - organization - pages - publisher - school - series - title - type - volume - year - url - info - options - urldate - eprint - archive - archivePrefix - primaryClass - eid - adsurl - adsnote - version - } - {} - { label extra.label sort.label short.list} - -INTEGERS { output.state before.all mid.sentence after.sentence - after.block after.authors between.elements bother - Nisbn Nmonth slen set.settings tmp month.printed} - -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := - #4 'after.authors := - #5 'between.elements := -} - -STRINGS { s t element} -STRINGS { longest.label last.label list.string default.list} -STRINGS { v l f j b temp.str} - -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { " " * write$ newline$} - { output.state after.block = - { add.period$ write$ - newline$ - } - { - output.state after.authors = - { ": " * write$ - newline$ - } - { output.state between.elements = - { ", " * write$ newline$} - { output.state before.all = - 'write$ - { add.period$ " " * write$ newline$} - if$ - } - if$ - } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - s -} - -FUNCTION {output} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull - if$ -} - -FUNCTION {output.check} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull - if$ -} -FUNCTION {fin.entry} -{ write$ newline$ } - -FUNCTION {stupid.colon} -{ after.authors 'output.state := } - - -FUNCTION {insert.comma} -{ output.state before.all = - 'skip$ - { between.elements 'output.state := } - if$ -} - -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} - -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - - -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} - -FUNCTION {sort.format.month} -{ 't := - t #1 #2 substring$ "01" = - t #1 #1 substring$ "1" = - t #2 #2 substring$ "" = - and or - { "January" } - { t #1 #2 substring$ "02" = - t #1 #1 substring$ "2" = - t #2 #2 substring$ "" = - and or - { "February" } - { t #1 #2 substring$ "03" = - t #1 #1 substring$ "3" = - t #2 #2 substring$ "" = - and or - { "March" } - { t #1 #2 substring$ "04" = - t #1 #1 substring$ "4" = - or - { "April" } - { t #1 #2 substring$ "05" = - t #1 #1 substring$ "5" = - or - { "May" } - { t #1 #2 substring$ "06" = - t #1 #1 substring$ "6" = - or - { "June" } - { t #1 #2 substring$ "07" = - t #1 #1 substring$ "7" = - or - { "July" } - { t #1 #2 substring$ "08" = - t #1 #1 substring$ "8" = - or - { "August" } - { t #1 #2 substring$ "09" = - t #1 #1 substring$ "9" = - or - { "September" } - { t #1 #2 substring$ "10" = - { "October" } - { t #1 #2 substring$ "11" = - { "November" } - { t #1 #2 substring$ "12" = - { "December" } - { t } % No match - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - -} - -INTEGERS {sk} -FUNCTION {is.num} -{ chr.to.int$ - duplicate$ "0" chr.to.int$ < not - swap$ "9" chr.to.int$ > not and -} - -FUNCTION {make.tag} -{ 't := - duplicate$ empty$ - { pop$ "" } - { bother #0 = - { - t "volume" = - {"\textbf{" swap$ * "}" * } - 'skip$ - if$ - } - { "\b" t * "{" * swap$ * "}" * } - if$ - } - if$ -} - - - -FUNCTION {springer.publisher} -{publisher #1 #8 substring$ "Springer" = - { "Springer" } - { publisher } - if$ -} - -FUNCTION {format.adsurl} -{ - adsurl empty$ - { "" } - {" \href{" adsurl "}" *} - if$ -} - -FUNCTION {format.adsnote} -{ - adsnote empty$ - { "" } - { ". " * adsnote *} - if$ -} - - -FUNCTION {format.soft.title} -{ - title empty$ - { "" } - { title "," *} - if$ -} - -FUNCTION {format.softmisctitle} -{ title empty$ - { ""} - { version empty$ - { title ", " *} - { title ", " * version " " *} - if$ - } - if$ -} - -FUNCTION {format.softmisc.archive} -{ - archivePrefix empty$ - { "" } - { "" } - if$ -} - -FUNCTION {format.archive} -{ - archivePrefix empty$ - { "" } - { archivePrefix ":" *} - if$ -} - -FUNCTION {format.primaryClass} -{ - primaryClass empty$ - { "" } - { "{[" primaryClass * "]}" *} - if$ -} - -FUNCTION {format.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {format.softmisc.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {format.pub.address} -{ publisher empty$ - howpublished empty$ - and - { - address empty$ - 'skip$ - { volume empty$ - 'insert.comma - 'new.sentence - if$ - address - type$ "inproceedings" = - {"conflocation"} - {"location"} - if$ - make.tag output - } - if$ - } - { - address empty$ - { publisher empty$ - {howpublished} - {springer.publisher} - if$ - "publisher" make.tag - #1 bother = - {", \blocation{???}" * } - 'skip$ - if$ - output - } - { - publisher empty$ - {howpublished } - {springer.publisher } - if$ - "publisher" make.tag output - insert.comma - address "location" make.tag output - } - if$ - } - if$ -} - -INTEGERS { nameptr namesleft numnames } - -FUNCTION {mk.tag} -{ 'temp.str := - duplicate$ empty$ - { pop$ "" } - { - b "nothing" = - 'skip$ - { "\b" temp.str * "{" * swap$ * "}" * } - if$ - } - if$ -} - -FUNCTION {space.after.dot} -{'j := - t 'f := - j 't := - s 'j := - "" 'l := - "" 's := - { t empty$ not } - { - t #1 #3 substring$ "{-}" = - { l " {q}. " * 'l := - t #4 global.max$ substring$ 't := - } - 'skip$ - if$ - - t #1 #1 substring$ 's := - l s * 'l := - s "." = - { - t #2 #1 substring$ " " = - 'skip$ - { - l " " * 'l := - t #2 #4 substring$ "{\,}" = - { t #5 global.max$ substring$ 't := } - 'skip$ - if$ - } - if$ - } - 'skip$ - if$ - t #2 global.max$ substring$ 't := - } - while$ - f 't := - j 's := - l -} - -FUNCTION {fix.inits}{ - 't := - "" 'element := - { t empty$ not } - { - t #1 #3 substring$ ".q." = - { element ".-" * 'element := - t #3 global.max$ substring$ 't := - } - {element t #1 #1 substring$ * 'element :=} - if$ - - t #2 global.max$ substring$ 't := - } - while$ - element -} - -FUNCTION {fix.snm}{ - 't := - "" 'element := - { t empty$ not } - { - t #1 #3 substring$ "{-}" = - {element "-" * 'element := - t #3 global.max$ substring$ 't := - } - {element t #1 #1 substring$ * 'element :=} - if$ - - t #2 global.max$ substring$ 't := - } - while$ - element -} - -FUNCTION {enbrace.dash}{ - 't := - "" 'element := - { t empty$ not } - { - t #1 #1 substring$ "-" = - {element "{-}" * 'element :=} - {element t #1 #1 substring$ * 'element :=} - if$ - t #2 global.max$ substring$ 't := - } - while$ - element -} - -FUNCTION {fix.name}{ - - enbrace.dash 's := - "" 'l := - "" 't := - - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { - s nameptr "{vv~}{ll}{, jj}" format.name$ - s nameptr "{, ff}" format.name$ space.after.dot * 'l := - #1 nameptr = - {l 't :=} - {t " and " * l * 't := } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - t -} - -FUNCTION {name.separator}{ - namesleft #1 > - {", " * } - 'skip$ - if$ -} - -FUNCTION {format.author.editor} -{ 'b := - - bother #1 = - b "nothing" = - or - 'skip$ - {"b" b * 'b :=} - if$ - - b "editor" = - b "beditor" = - b "nothing" = - or or - {editor 's :=} - {author 's :=} - if$ - - %% modifying name - s fix.name 's := - - "" 't := - - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - - s numnames "{ll}" format.name$ 'l := - l "others" = - l "{others}" = - l "et al." = - l "{et al.}" = - or or or - {#1 'tmp :=} - {#0 'tmp :=} - if$ - - { namesleft #0 > } - { s nameptr "{vv}" format.name$ "particle" mk.tag 'v := - s nameptr "{ll}" format.name$ fix.snm "snm" mk.tag 'l := - s nameptr "{f{.}.}" format.name$ fix.inits "inits" mk.tag 'f := - s nameptr "{jj}" format.name$ "suffix" mk.tag 'j := - - - namesleft #1 = - tmp #1 = - and - { b "bauthor" = - b "beditor" = - or - {"et al."} - {"\betal"} - if$ - #1 'tmp := - } - { - b "bauthor" = - b "beditor" = - or - {"\oauthor{"} - { - b "nothing" = - {""} - {"\b" b * "{" *} - if$ - } -%% if$ -%% -%% v empty$ -%% 'skip$ -%% {v * " " *} - if$ - - l empty$ - 'skip$ - { l *} - if$ - - f empty$ - 'skip$ - {", " * f *} - if$ - - j empty$ - 'skip$ - {" " * j *} - if$ - - b "nothing" = - {""} - {"}"} - if$ - - * "" 't := - } - if$ - - name.separator - write$ - - namesleft #1 > - b "nothing" = not - and - { namesleft #2 = - tmp #1 = - and - 'skip$ - 'newline$ - if$ - } - 'skip$ - if$ - - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ -} - -FUNCTION {format.editors} -{ editor empty$ - 'skip$ - { - bother #0 = - { author empty$ - {"editor"} - {"nothing"} - if$ - } - {"editor"} - if$ - format.author.editor - editor num.names$ #1 > - { " (eds.)" } - { " (ed.)" } - if$ - write$ - } - if$ -} - -FUNCTION {format.authors} -{ author empty$ - 'skip$ - {"author" format.author.editor} - if$ -} - -FUNCTION {cite.author.editor} -{ 's := - s #1 "{vv~}{ll}" format.name$ - s num.names$ duplicate$ - #2 > - { pop$ " et~al." * } - { #2 = - { s #2 "{vv~}{ll}{ jj}{ f}" format.name$ "others" = - { " et~al." * } - { " and " * s #2 "{vv~}{ll}" format.name$ * } - if$ - } - 'skip$ - if$ - } - if$ -} - -FUNCTION {check.auth.edit.org} -{author empty$ - { - editor empty$ - { - organization empty$ - {""} - {organization} - if$ - } - {editor cite.author.editor} - if$ - } - {author cite.author.editor} - if$ -} - -FUNCTION {check.year} -{ year empty$ - {""} - {year extra.label *} - if$ -} - -INTEGERS { multiresult char.num k int} -INTEGERS {str.length count return save.num1 save.num2} -FUNCTION {is.in.list}{ - 'f := - %%%% saveing "s" and "t" - s 'j := - f 's := - t 'f := - list.string text.length$ 'str.length := - list.string 't := -% s text.length$ 'slen := - int 'save.num1 := - count 'save.num2 := - #1 'int := - #1 'count := - #0 'return := - - { count str.length = not - #0 str.length = not - and - } - { - count #1 + 'count := - t int #1 substring$ "," = - { - t #1 int substring$ s "," * = - { - #1 'return := - str.length 'count := - } - 'skip$ - if$ - - int #1 + 'int := - t int global.max$ substring$ 't := - #0 'int := - } - 'skip$ - if$ - int #1 + 'int := - } - while$ - - save.num1 'int := - save.num2 'count := - - #0 return = - { s t = - {#1 'return :=} - 'skip$ - if$ - } - 'skip$ - if$ - %%%% returning original "s" and "t" - j 's := - f 't := - - return -} - -INTEGERS {bibitem.count} - -FUNCTION {print.count} -{ bibitem.count #1 + 'bibitem.count := - newline$ - "%%% " - bibitem.count int.to.str$ * write$ -} - - -FUNCTION {output.bibitem} -{ print.count - newline$ - "\bibitem[\protect\citeauthoryear{" write$ - check.auth.edit.org write$ - "}{" write$ - check.year write$ - "}]{" write$ - cite$ write$ - "}" write$ - newline$ - "" before.all 'output.state := -} - - - - -FUNCTION {string.to.integer} -{ 't := - t text.length$ 'k := - #1 'char.num := - { t char.num #1 substring$ 's := - s is.num - s "." = - or - char.num k = not - and - } - { char.num #1 + 'char.num := } - while$ - char.num #1 - 'char.num := - t #1 char.num substring$ -} - - -FUNCTION {find.integer} -{ 't := - #0 'int := - { int not - t empty$ not - and - } - { t #1 #1 substring$ 's := - s is.num - {#1 'int :=} - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - int -} - -function{title.lowerwords}{ -"a,an,and,of,the,for,in,to,over,from,on,or,so,than,that,this,as,but,with,by,at,down,up,upon,al,ale,aus,aux,d'Analyse,d'Analystes,d'Architecture,d'Etudes,d'Histoire,da,dans,de,degli,dei,del," -"dell',dell'Accademia,dell'Istituto,dell'Universita,della,delle,dem,der,des,detta,di,die,din,dlia,do,du,e,eXpress,ed,ego,el,em,en,et,fur,i,iz,l'Academie,l'Age,l'Antiquite," * -"l'Approximation,l'Ecole,l'Histoire,l'I.S.U.P.,l'INSA,l'IREM,l'Indirizzo,l'Institut,l'Institute,l'UFR,l'Union,l'Universite,la,las,les,na,nella,per,po,si,sue,sur,ta,tes,und,van,voor,zu,zum,zur" * -} - -FUNCTION {upercase.first.letters}{ - 't := - "" 's := - #1 'int := - #1 'count := - list.string 'v := - "" 'b := - title.lowerwords 'list.string := - - t text.length$ 'slen := - - {count slen = not } - {t int #1 substring$ " " = - { - int #1 - 'int := - t #1 int substring$ 'b := - - % if word not in title.lowerwords - uppercase first letter - b is.in.list not - { b "l" change.case$ b = - { b "u" change.case$ "t" change.case$ 'b := } - 'skip$ - if$ - } - 'skip$ - if$ - - int #1 + 'int := - - s b " " * * 's := - int #1 + 'int := - t int global.max$ substring$ 't := - #0 'int := - } - 'skip$ - if$ - int #1 + 'int := - count #1 + 'count := -% "count=" count int.to.str$ * " slen=" * slen int.to.str$ * top$ - } - while$ - v 'list.string := - % last word is "t" and need to check it too - s t - t "l" change.case$ t = - { "u" change.case$ "t" change.case$ } - 'skip$ - if$ - * -} - - -FUNCTION {format.title} -{ title empty$ - { "" } - { title - "article" type$ = - type$ "techreport" = - type$ "inbook" = - type$ "inproceedings" = - type$ "incollection" = - type$ "phdthesis" = - type$ "mastersthesis" = - or or or or or or - {"t" change.case$} - { type$ "unpublished" = - type$ "misc" = - or - 'skip$ - 'upercase.first.letters - if$ - } - if$ - } - if$ -} - - -FUNCTION {note.presented} -{ note #1 #9 substring$ "presented" = - note #1 #9 substring$ "Presented" = - or -} - -FUNCTION {n.filter} -{ 't := - "" - { t empty$ not } - { t #1 #1 substring$ "," = - t #1 #1 substring$ "\" = - t #1 #1 substring$ "~" = - or or - { "" * - t #2 global.max$ substring$ 't := - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -FUNCTION {byear} -{ duplicate$ empty$ - { pop$ "" } - { 't := - t text.length$ 'sk := - #5 sk = - { t #1 #4 substring$ 's := - t #5 #1 substring$ 'longest.label := - longest.label is.num not - {s "year" make.tag - "nameyear" is.in.list - {longest.label * } - 'skip$ - if$ - } - {t "year" make.tag } - if$ - } - { t "year" make.tag - "nameyear" is.in.list - {extra.label *} - 'skip$ - if$ - } - if$ - } - if$ -} - -FUNCTION {format.date} -{ year empty$ - { "" } - { year byear } - if$ -} - -FUNCTION {parens} -{ "(" swap$ * ")" * } - -FUNCTION {format.date.parens} -{ year empty$ - { "" } - { year byear parens } - if$ -} - -FUNCTION {noparens} -{ " " swap$ * "" * } - -FUNCTION {format.softmiscdate} -{ year empty$ - { "" } - { year byear parens } - if$ -} - -FUNCTION {format.month}{ - month empty$ - {""} - {month sort.format.month "confdate" make.tag} - if$ -} - -FUNCTION {formatpatent.date} -{ year empty$ - 'skip$ - { month empty$ - { year } - {format.month " " * year *} - if$ - } - if$ -} - -FUNCTION {month.year.date} -{ year empty$ - {""} - { month empty$ - {year byear} - { format.month " " * year byear * } - if$ - type$ "inproceedings" = - 'skip$ - {"(" swap$ * ")" * } - if$ - } - if$ -} - -FUNCTION {tie.or.space.connect} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} -FUNCTION {format.volume} -{ volume empty$ - { "book" type$ = - {number empty$ - {""} - {"vol. " number "seriesno" make.tag *} - if$ - } - {""} - if$ - } - {"vol. " volume "seriesno" make.tag *} - if$ -} -FUNCTION {format.volume2} -{ volume empty$ - {""} - {"vol. " volume "seriesno" make.tag *} - if$ -} - -FUNCTION {format.art.vol} -{ - volume empty$ - {""} - {volume n.filter "volume" make.tag} - if$ - number empty$ - 'skip$ - { "(" number "issue" make.tag * ")" * * } - if$ -} - -FUNCTION {format.series} -{ series empty$ - 'skip$ - {series "sertitle" make.tag} - if$ -} - -FUNCTION {format.edition} -{ edition empty$ - { "" } - { "" 'v := - "" 'l := - "" 'f := - edition "l" change.case$ 's := - "1" s = - "first" s = - or - { - "1" 'v := - "st" 'l := - } - { - "2" s = - "second" s = - or - { - "2" 'v := - "nd" 'l := - } - { - "3" s = - "third" s = - or - { - "3" 'v := - "rd" 'l := - } - { - "4" s = - "fourth" s = - or - { - "4" 'v := - "th" 'l := - } - { - "5" s = - "fifth" s = - or - { - "5" 'v := - "th" 'l := - } - { - "6" s = - "sixth" s = - or - { - "6" 'v := - "th" 'l := - } - { - "7" s = - "seventh" s = - or - { - "7" 'v := - "th" 'l := - } - { - "8" s = - "eighth" s = - or - { - "8" 'v := - "th" 'l := - } - { - "9" s = - "nineth" s = - or - { - "9" 'v := - "th" 'l := - } - { - edition "t" change.case$ 'f := - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - #0 bother = - { f "" = - { v l * 'f :=} - 'skip$ - if$ - } - { f "" = - { "\bedition{" v * "}" * l * 'f :=} - { "\bedition{" f * "}" * 'f :=} - if$ - } - if$ - f " edn." * - } - if$ -} -FUNCTION {format.isbn} -{ isbn empty$ - { "" } - { isbn "isbn" make.tag} - if$ -} - -INTEGERS {default.info} - - -FUNCTION {multi.page.check} -{ 't := - #0 'multiresult := - "" 'l := - - {t empty$ not} - { t #1 #1 substring$ 's := - - s is.num not - { "" l = not - {t find.integer - {#1 'multiresult := } - {#0 'multiresult := } - if$ - "" 't := - } - { - t #2 global.max$ substring$ 't := - } - if$ - } - { l s * 'l := - t #2 global.max$ substring$ 't := - } - if$ - } - while$ - multiresult -} -FUNCTION {clearpage} -{ 't := - "" 's := - "" 'l := - - { t empty$ not } - { - t #1 #1 substring$ 's := - s is.num not - 'skip$ - { l s * 'l := } - if$ - t #2 global.max$ substring$ 't := - } - while$ - l - -} -FUNCTION {do.pages} -{'t := - "" 'j := - "" 'v := - {t empty$ not} - { t #1 #1 substring$ 's := - s is.num not - s "," = not - and - { "" j = - { - t #2 global.max$ substring$ 't := - } - {t find.integer - { t clearpage 'v := } - 'skip$ - if$ - "" 't := - } - if$ - } - { j s * 'j := - t #2 global.max$ substring$ 't := - } - if$ - } - while$ - j clearpage 'j := - j "fpage" make.tag - "cnd" is.in.list - 'skip$ - {"--" * v "lpage" make.tag *} - if$ -} - - -FUNCTION {format.pages} -{ pages empty$ - { "" } - { pages multi.page.check - {type$ "article" = - {""} - {"cnd" is.in.list - {"p. "} - {"pp. "} - if$ - } - if$ - pages do.pages * - } - {type$ "article" = - {""} - {"p. "} - if$ - pages clearpage "fpage" make.tag * - } - - if$ - } - if$ -} - -FUNCTION {replace.tilde} -{ 't := - "" - { t empty$ not } - { t #1 #1 substring$ "~" = - { { t #1 #1 substring$ "~" = } - { "\texttildelow " * - t #2 global.max$ substring$ 't := - } - while$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - - -FUNCTION {format.url} -{ url empty$ - 'skip$ - { type$ "article" = - 'skip$ - { #0 bother = - { "\url{" } - { "\burl{" } - if$ - url replace.tilde * "}" * - output - } - if$ - - urldate empty$ - 'skip$ - { "Accessed " urldate * output } - if$ - } - if$ -} - - -FUNCTION {publisher.month.pages}{ - publisher empty$ series empty$ and - { address empty$ - 'skip$ - 'new.sentence - if$ - format.pub.address - - pages empty$ - 'skip$ - {insert.comma} - if$ - format.pages output - - } - { - pages empty$ - 'skip$ - {insert.comma} - if$ - format.pages output - publisher empty$ - 'skip$ - {new.sentence} - if$ - format.pub.address - } - if$ -} - -function{process.doi}{ - doi 't := - "" 'b := - #1 'int := -% "doi =" t * top$ - - t text.length$ 'slen := - - {int slen = not } - {t int #3 substring$ "10." = - { - t int #1 - #1 substring$ 'b := - b "" = - {"a" 'b :=} % if b is empty need to set a letter - 'skip$ - if$ - - b is.num not - { - t int slen int - #1 + substring$ 't := - slen #1 - 'int := - } - 'skip$ - if$ - - } - 'skip$ - if$ - int #1 + 'int := - } - while$ - t -} - -FUNCTION {format.doi} -{ doi empty$ - {""} - { - "nodoi" is.in.list - {""} - %%{"doi:\doiurl{" process.doi * "}" * } - {"\doiurl{" process.doi * "} " * } - if$ - } - if$ -} - -FUNCTION {format.in.ed.booktitle} -{ booktitle empty$ - {#1 bother = - "cnd" is.in.list not - and - { editor empty$ - 'skip$ - { "In: " output write$ format.editors } - if$ - } - 'skip$ - if$ - } - { editor empty$ - { "In: " booktitle upercase.first.letters "btitle" make.tag * output} - { "In: " output write$ format.editors "" %%% pushing empty string to the empty stack - booktitle upercase.first.letters "btitle" make.tag output - } - if$ - } - - if$ -} - -FUNCTION {format.in.ed} -{ title empty$ - 'skip$ - { editor empty$ - { title "btitle" make.tag output} - { author empty$ - { format.editors - stupid.colon - %format.date output - title "btitle" make.tag output - } - { "In: " output write$ format.editors "" %%% pushing empty string to the empty stack - title "btitle" make.tag output - } - if$ - } - if$ - } - if$ -} - -FUNCTION {format.tr.number} -{ type empty$ - { "Technical Report" } - 'type - if$ - number empty$ - { "t" change.case$ } - { number tie.or.space.connect } - if$ -} - -FUNCTION {patent.number} -{ number empty$ - 'skip$ - { number } - if$ -} -INTEGERS { len } - -FUNCTION {chop.word} -{ 's := - 'len := - s #1 len substring$ = - { s len #1 + global.max$ substring$ } - 's - if$ -} - -FUNCTION {format.inpres} -{ "l" change.case$ 't := - "in press: " #10 - "in press. " #10 - "in press " #9 t chop.word - chop.word - chop.word - #1 global.max$ substring$ -} - -FUNCTION {bcomment.note} -{ note empty$ - 'skip$ - {note format.inpres "comment" make.tag output} - if$ -} - -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ -} - -FUNCTION {format.thesis.type} -{ type empty$ - 'skip$ - { pop$ - type "t" change.case$ - } - if$ -} - -FUNCTION {format.chapter.and.note} -{ note empty$ chapter empty$ organization empty$ and and - 'skip$ - { chapter empty$ - "notnumber" last.label = - or - {organization empty$ - { note "comment" make.tag output } - { note empty$ - { organization "comment" make.tag output } - { organization ". " * note * "comment" make.tag output } - if$ - } - if$ - } - { note empty$ - { "Chap. " chapter * "comment" make.tag output} - { type empty$ - { "Chap. " } - { type "t" change.case$ "Section" = - { "Sect. " } - { "Chap. " } - if$ - } - if$ - chapter * ". " * note * "comment" make.tag output - } - if$ - } - if$ - } - if$ -} - -FUNCTION {item.end} -{ chapter empty$ - type$ "unpublished" = not - type$ "misc" = not - and and - { new.sentence - format.doi output - } - 'skip$ - if$ - - type$ "unpublished" = - type$ "misc" = - or - { note empty$ - 'skip$ - {note.presented - 'skip$ - {new.sentence note output} - if$ - } - if$ - format.date.parens output - } - { new.sentence - type$ "proceedings" = - { author empty$ editor empty$ and - 'bcomment.note - 'format.chapter.and.note - if$ - } - 'format.chapter.and.note - if$ - } - if$ - list.string 'v := - default.list 'list.string := - - type$ ".isbn" * is.in.list - "cnd" is.in.list - or - { - new.sentence -% format.isbn output - } - 'skip$ - if$ - new.sentence - %% commented by SPi as we are using format.eprint %% - %% and also to avoide eprint being printed twice - Start %% - %%eprint empty$ - %% 'skip$ - %% {"\arxivurl{" eprint * "}" * output} - %%if$ - %% End %% - chapter empty$ - type$ "unpublished" = not - type$ "misc" = not - and and - 'skip$ - { new.sentence - format.doi output - } - if$ - new.sentence - format.url - v 'list.string := - fin.entry -} - -FUNCTION {article.item.end} -{ chapter empty$ - type$ "unpublished" = not - type$ "misc" = not - and and - { new.sentence -% format.doi output - } - 'skip$ - if$ - - type$ "unpublished" = - type$ "misc" = - or - { note empty$ - 'skip$ - {note.presented - 'skip$ - {new.sentence note output} - if$ - } - if$ - format.date.parens output - } - { new.sentence - type$ "proceedings" = - { author empty$ editor empty$ and - 'bcomment.note - 'format.chapter.and.note - if$ - } - 'format.chapter.and.note - if$ - } - if$ - list.string 'v := - default.list 'list.string := - - type$ ".isbn" * is.in.list - "cnd" is.in.list - or - { - new.sentence -% format.isbn output - } - 'skip$ - if$ - new.sentence - %% commented by SPi as we are using format.eprint %% - %% and also to avoide eprint being printed twice - Start %% - %%eprint empty$ - %% 'skip$ - %% {"\arxivurl{" eprint * "}" * output} - %%if$ - %% End %% - chapter empty$ - type$ "unpublished" = not - type$ "misc" = not - and and - 'skip$ - { new.sentence -%% format.doi output - } - if$ - new.sentence - format.url - v 'list.string := - fin.entry -} - - -FUNCTION {insert.element} -{ #0 bother = - { element "{botherref}" * write$ newline$} - { - type$ "article" = - {element "{barticle}" * write$ newline$} - 'skip$ - if$ - type$ "book" = - type$ "proceedings" = - type$ "manual" = - type$ "booklet" = - or or or - {element "{bbook}" * write$ newline$} - 'skip$ - if$ - - type$ "inbook" = - { "notnumber" last.label = - {element "{bchapter}" * write$ newline$} - {element "{bbook}" * write$ newline$} - if$ - } - 'skip$ - if$ - - type$ "incollection" = - type$ "inproceedings" = - type$ "conference" = - or or - {element "{bchapter}" * write$ newline$} - 'skip$ - if$ - } - if$ -} - -FUNCTION {end.element} -{ "\end" 'element := - item.end - insert.element - "\endbibitem" write$ newline$ -} - -FUNCTION {article.end.element} -{ "\end" 'element := - article.item.end - insert.element - "\endbibitem" write$ newline$ -} - - -FUNCTION {begin.element} -{ "\begin" 'element := - insert.element -} -function {set.options}{ - options empty$ - 'skip$ - {options 'list.string :=} - if$ -} - -FUNCTION {settings} -{} - -FUNCTION {article} -{ output.bibitem - author empty$ - institution empty$ - editor empty$ - and and - journal empty$ - or - year empty$ - or - % above tagging rule means: - % nead: (volume & (pages or number) ) or (doi [without volume, pages and number]) - volume empty$ not - pages empty$ not bnumber empty$ not or - and - - volume empty$ pages empty$ bnumber empty$ and and - doi empty$ not and - or - not - or - {#0 'bother :=} - {#1 'bother :=} - if$ - begin.element - author empty$ - { editor empty$ - 'skip$ - {format.editors stupid.colon} - if$ - } - { format.authors stupid.colon} - if$ - "cnd" is.in.list - { - journal empty$ - {format.title "atitle" make.tag "title" output.check} - {journal "jtitle" make.tag output} - if$ - } - { - format.title "atitle" make.tag "title" output.check - journal empty$ - 'skip$ - {new.sentence journal "jtitle" make.tag output} - if$ - } - if$ - format.art.vol output - pages empty$ - 'skip$ - {insert.comma} - if$ - format.pages output - format.date.parens output - format.doi output - format.eprint output - format.primaryClass output - article.end.element -} - - -FUNCTION {patent} -{ output.bibitem - #0 'bother := - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "title" output.check - add.period$ - patent.number output - insert.comma - formatpatent.date output - end.element -} - -FUNCTION { other } { patent } - -FUNCTION {book} -{ output.bibitem - author empty$ - institution empty$ - organization empty$ - editor empty$ - and and and - title empty$ - year empty$ - or or - {#0 'bother :=} - { - publisher empty$ address empty$ not and - {#0 'bother :=} - {#1 'bother :=} - if$ - } - if$ - begin.element - author empty$ - { editor empty$ - 'skip$ - {format.editors stupid.colon} - if$ - } - { format.authors stupid.colon} - if$ - format.title "btitle" make.tag "title" output.check - series empty$ - { - format.volume output - insert.comma - format.edition output - } - { edition empty$ - 'skip$ - 'insert.comma - if$ - format.edition output - new.sentence - format.series output - insert.comma - format.volume output - } - if$ - publisher.month.pages - format.date.parens output - end.element -} - -FUNCTION {booklet} -{output.bibitem - author empty$ - title empty$ - year empty$ - howpublished empty$ - or or or - {#0 'bother :=} - {#1 'bother :=} - if$ - - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "btitle" make.tag "title" output.check - address empty$ publisher empty$ howpublished empty$ and and - 'skip$ - 'new.sentence - if$ - format.pub.address - format.date.parens output - end.element -} - -FUNCTION {misc} -{output.bibitem - #0 'bother := - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "btitle" make.tag "title" output.check - address empty$ publisher empty$ howpublished empty$ and and - 'skip$ - 'new.sentence - if$ - format.pub.address - end.element -} - -FUNCTION {softmisc} -{output.bibitem - #0 'bother := - begin.element - author empty$ - 'skip$ - {format.authors} - if$ - stupid.colon - format.title "btitle" make.tag "title" output.check - insert.comma - version output - insert.comma - %%address empty$ publisher empty$ howpublished empty$ and and - %%'skip$ - %% 'new.sentence - %%if$ - format.pub.address - format.softmiscdate output - insert.comma - format.softmisc.eprint output - end.element -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - institution empty$ - organization empty$ - editor empty$ - and and and - title empty$ - year empty$ - or or - {#0 'bother :=} - { - publisher empty$ address empty$ not and - {#0 'bother :=} - {#1 'bother :=} - if$ - } - if$ - - chapter empty$ - { "" 'last.label :=} - { chapter string.to.integer empty$ author empty$ not and - { "notnumber" 'last.label :=} - { "" 'last.label :=} - if$ - } - if$ - - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - "notnumber" last.label = - { chapter "ctitle" make.tag output - add.period$ - } - 'skip$ - if$ - format.in.ed - series empty$ - { - insert.comma - format.volume output - insert.comma - format.edition output - new.sentence - } - { - insert.comma - format.edition output - new.sentence - format.series output - volume empty$ - 'skip$ - 'insert.comma - if$ - format.volume output - } - if$ - publisher.month.pages - publisher empty$ address empty$ edition empty$ series empty$ pages empty$ volume empty$ and and and and and - 'insert.comma - 'skip$ - if$ - format.date.parens output - end.element -} -FUNCTION {incollection} -{ output.bibitem - author empty$ - institution empty$ - and - booktitle empty$ - title empty$ - year empty$ - or or or - {#0 'bother :=} - { - publisher empty$ address empty$ not and - {#0 'bother :=} - {#1 'bother :=} - if$ - } - if$ - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - - "cnd" is.in.list - { - booktitle empty$ title empty$ not and - { - format.title "ctitle" make.tag "title" output.check - new.sentence - } - 'skip$ - if$ - } - { - format.title "ctitle" make.tag "title" output.check - title empty$ - 'skip$ - {new.sentence} - if$ - } - if$ - format.in.ed.booktitle - series empty$ - { - format.volume output - insert.comma - format.edition output - } - { - edition empty$ - 'skip$ - { insert.comma - format.edition output - } - if$ - new.sentence - format.series output - insert.comma - format.volume output - } - if$ - publisher.month.pages - format.date.parens output - end.element -} - -FUNCTION {inproceedings} -{ output.bibitem - author empty$ - institution empty$ - and - title empty$ - year empty$ - or or - {#0 'bother :=} - {#1 'bother :=} - if$ - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - - "cnd" is.in.list - { - booktitle empty$ title empty$ not and - { - format.title "ctitle" make.tag "title" output.check - new.sentence - } - 'skip$ - if$ - } - { - format.title "ctitle" make.tag "title" output.check - title empty$ booktitle empty$ not and - 'skip$ - {new.sentence} - if$ - } - if$ - - format.in.ed.booktitle - series empty$ - 'skip$ - {new.sentence format.series output} - if$ - volume empty$ address empty$ publisher empty$ and and - 'skip$ - 'insert.comma - if$ - format.volume output - publisher.month.pages - format.date.parens output - end.element -} - -FUNCTION {conference} { inproceedings } - -FUNCTION {manual} -{ output.bibitem - author empty$ - organization empty$ - title empty$ - year empty$ - address empty$ - or or or or - {#0 'bother :=} - {#1 'bother :=} - if$ - begin.element - - author empty$ - { organization empty$ - 'skip$ - { organization "publisher" make.tag output.nonnull - stupid.colon% add.period$ - } - if$ - } - { format.authors stupid.colon} - if$ - title empty$ - 'skip$ - {format.title "btitle" make.tag output} - if$ - edition empty$ - {new.sentence} - {insert.comma} - if$ - format.edition output - edition empty$ - 'skip$ - {new.sentence} - if$ - author empty$ organization empty$ - or - 'skip$ - { organization "publisher" make.tag output.nonnull - insert.comma - } - if$ - address empty$ - 'skip$ - {address "location" make.tag output} - if$ - format.date.parens output - end.element -} - - -FUNCTION {phdthesis} -{output.bibitem - #0 'bother := - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "title" output.check - new.sentence - type$ "mastersthesis" = - {"Master's thesis" format.thesis.type output.nonnull} - {"PhD thesis" format.thesis.type output.nonnull} - if$ - school empty$ - 'skip$ - 'insert.comma - if$ - school "school" output.check - address empty$ - 'skip$ - 'insert.comma - if$ - address output - month.year.date output - end.element -} -FUNCTION {mastersthesis}{phdthesis} - - -FUNCTION {proceedings} -{ output.bibitem - author empty$ - institution empty$ - organization empty$ - editor empty$ - and and and - title empty$ - year empty$ - or or - {#0 'bother :=} - { - publisher empty$ address empty$ not and - {#0 'bother :=} - {#1 'bother :=} - if$ - } - if$ - - begin.element - author empty$ - { editor empty$ - {organization "institutionaled" make.tag "organization" output.check } - { format.editors } - if$ - } - { format.authors } - if$ - stupid.colon - format.title "btitle" make.tag output - series empty$ - 'skip$ - {new.sentence format.series output} - if$ - volume empty$ - 'skip$ - 'insert.comma - if$ - format.volume output - publisher.month.pages - format.date.parens output - end.element -} - -FUNCTION {techreport} -{ output.bibitem - #0 'bother := - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "title" output.check - new.sentence - format.tr.number output.nonnull - institution empty$ - 'skip$ - 'insert.comma - if$ - institution "institution" output.check - address empty$ - 'skip$ - 'insert.comma - if$ - address output - month.year.date output - end.element -} - -FUNCTION {unpublished} -{ output.bibitem - #0 'bother := - - begin.element - author empty$ - 'skip$ - {format.authors stupid.colon} - if$ - format.title "title" output.check - note empty$ - 'skip$ - { note.presented - {note output} - 'skip$ - if$ - } - if$ - end.element -} - -FUNCTION {default.type} { unpublished } - -MACRO {jan} {"January"} -MACRO {feb} {"February"} -MACRO {mar} {"March"} -MACRO {apr} {"April"} -MACRO {may} {"May"} -MACRO {jun} {"June"} -MACRO {jul} {"July"} -MACRO {aug} {"August"} -MACRO {sep} {"September"} -MACRO {oct} {"October"} -MACRO {nov} {"November"} -MACRO {dec} {"December"} - -READ - -FUNCTION {sortify} -{ purify$ - "l" change.case$ -} - -INTEGERS { et.al.char.used } - -FUNCTION {initialize.et.al.char.used} -{ #0 'et.al.char.used := -} - -%%%%% setting default options -FUNCTION {set.default.opt} -{"unsort" 'list.string :=} - -EXECUTE {set.default.opt} - -FUNCTION {assign.opt}{ - % First need to set options - "settings" type$ = - { options empty$ - 'skip$ - {options 'list.string :=} - if$ - } - 'skip$ - if$ -} - -ITERATE {assign.opt} -EXECUTE {initialize.et.al.char.used} - -FUNCTION {alpha.format.lab.names} -{ 's := - s num.names$ 'numnames := - numnames #1 > - { numnames #4 > - { #3 'namesleft := } - { numnames 'namesleft := } - if$ - #1 'nameptr := - "" - { namesleft #0 > } - { nameptr numnames = - { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { "+" * - #1 'et.al.char.used := - } - { s nameptr "{v{}}{l{}}" format.name$ * } - if$ - } - { s nameptr "{v{}}{l{}}" format.name$ * } - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - numnames #4 > - { "+" * - #1 'et.al.char.used := - } - 'skip$ - if$ - } - { s #1 "{v{}}{l{}}" format.name$ - duplicate$ text.length$ #2 < - { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } - 'skip$ - if$ - } - if$ -} - -FUNCTION {standard.format.lab.names} -{ 's := - s #1 "{vv~}{ll}" format.name$ - s num.names$ duplicate$ - #2 > - { pop$ " et~al." * } - { #2 < - 'skip$ - { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { " et~al." * } - { " and " * s #2 "{vv~}{ll}" format.name$ * } - if$ - } - if$ - } - if$ -} -FUNCTION {format.lab.names}{ - "alpha" is.in.list - 'alpha.format.lab.names - 'standard.format.lab.names - if$ -} - -FUNCTION {author.key.label} -{ author empty$ - { key empty$ - { cite$ #1 #3 substring$ } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {author.editor.key.label} -{ author empty$ - { editor empty$ - { key empty$ - { "zzz" } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {author.key.organization.label} -{ author empty$ - { key empty$ - { organization empty$ - { "zzz" } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { author format.lab.names } - if$ -} - -FUNCTION {editor.key.organization.label} -{ editor empty$ - { key empty$ - { organization empty$ - { "zzz" } - { "The " #4 organization chop.word #3 text.prefix$ } - if$ - } - { key #3 text.prefix$ } - if$ - } - { editor format.lab.names } - if$ -} - -FUNCTION {calc.short.authors} -{ type$ "book" = - type$ "inbook" = - or - 'author.editor.key.label - { type$ "proceedings" = - 'editor.key.organization.label - { type$ "manual" = - 'author.key.organization.label - 'author.key.label - if$ - } - if$ - } - if$ - 'short.list := -} - -FUNCTION {calc.label} -{ calc.short.authors - short.list - - "alpha" is.in.list - { - duplicate$ - year field.or.null purify$ #-1 #2 substring$ - * - 'label := - year field.or.null purify$ #-1 #4 substring$ - * - sortify 'sort.label := - } - { - "(" - * - year duplicate$ empty$ - short.list key field.or.null = or - { pop$ "" } - 'skip$ - if$ - * - 'label := - label 'sort.label := - } - if$ -} - -FUNCTION {sort.format.names} -{ 's := - #1 'nameptr := - "" - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { nameptr #1 > - { " " * - "alpha" is.in.list - 'skip$ - {numnames int.to.str$ * " " *} - if$ - } - 'skip$ - if$ - s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := - nameptr numnames = - t "others" = - and - { "et al" * } - { t sortify * } - if$ - #3 numnames < - "alpha" is.in.list not - and - {#0 'namesleft := - " zzz " * - } - { - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - if$ - } - while$ -} - -FUNCTION {sort.format.title} -{ 't := - "A " #2 - "An " #3 - "The " #4 t chop.word - chop.word - chop.word - sortify - #1 global.max$ substring$ -} - -FUNCTION {author.sort} -{ author empty$ - { key empty$ - { "to sort, need author or key in " cite$ * warning$ - "zzz" - } - { key sortify } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {author.editor.sort} -{ author empty$ - { editor empty$ - { key empty$ - { "to sort, need author, editor, or key in " cite$ * warning$ - "z" - } - { key sortify } - if$ - } - { editor sort.format.names } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {author.organization.sort} -{ author empty$ - { organization empty$ - { key empty$ - { "to sort, need author, organization, or key in " cite$ * warning$ - "z" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { author sort.format.names } - if$ -} - -FUNCTION {editor.organization.sort} -{ editor empty$ - { organization empty$ - { key empty$ - { "to sort, need editor, organization, or key in " cite$ * warning$ - "z" - } - { key sortify } - if$ - } - { "The " #4 organization chop.word sortify } - if$ - } - { editor sort.format.names } - if$ -} - -FUNCTION {presort} -{ calc.label - sort.label sortify - " " - * - type$ "book" = - type$ "inbook" = - or - {author empty$ - 'editor.organization.sort - 'author.organization.sort - if$ - } - { type$ "proceedings" = - type$ "incollection" = - or - {author empty$ - 'editor.organization.sort - 'author.organization.sort - if$ - } - { type$ "manual" = - 'author.organization.sort - 'author.sort - if$ - } - if$ - } - if$ - " " - * - year field.or.null sortify - * - " " - * - title field.or.null - sort.format.title - * - #1 entry.max$ substring$ 'sort.label := - sort.label * - #1 entry.max$ substring$ 'sort.key$ := - - "settings" type$ = - {"aaa"} - {"unsort" is.in.list - {"bb"} - {"alpha" is.in.list - {sort.key$} - {sort.label} - if$ - } - if$ - } - if$ - 'sort.key$ := -} - - -ITERATE {presort} - -SORT - -INTEGERS { longest.label.width last.extra.num number.label } - -FUNCTION {initialize.longest.label} -{ "" 'longest.label := - #0 int.to.chr$ 'last.label := - "" 'j := - #0 'longest.label.width := - #0 'last.extra.num := - #0 'number.label := -} - -FUNCTION {forward.pass} -{ last.label label = - { last.extra.num #1 + 'last.extra.num := - last.extra.num int.to.chr$ 'extra.label := - } - { "a" chr.to.int$ 'last.extra.num := - "" 'extra.label := - label 'last.label := - } - if$ - number.label #1 + 'number.label := -} - -FUNCTION {reverse.pass} -{ j "b" = - { "a" 'extra.label := } - 'skip$ - if$ - extra.label 'j := - label extra.label * 'label := -} - -EXECUTE {initialize.longest.label} - -ITERATE {forward.pass} - -REVERSE {reverse.pass} - -FUNCTION {write.preambule} -{ "%% BioMed_Central_Bib_Style_v1.01" write$ newline$ newline$ - "\begin{thebibliography}{" number.label int.to.str$ * "}" * write$ newline$ - "% BibTex style file: bmc-mathphys.bst (version 2.1), 2014-07-24" write$ newline$ - "\ifx \bisbn \undefined \def \bisbn #1{ISBN #1}\fi" write$ newline$ - "\ifx \binits \undefined \def \binits#1{#1}\fi" write$ newline$ - "\ifx \bauthor \undefined \def \bauthor#1{#1}\fi" write$ newline$ - "\ifx \batitle \undefined \def \batitle#1{#1}\fi" write$ newline$ - "\ifx \bjtitle \undefined \def \bjtitle#1{#1}\fi" write$ newline$ - "\ifx \bvolume \undefined \def \bvolume#1{\textbf{#1}}\fi" write$ newline$ - "\ifx \byear \undefined \def \byear#1{#1}\fi" write$ newline$ - "\ifx \bissue \undefined \def \bissue#1{#1}\fi" write$ newline$ - "\ifx \bfpage \undefined \def \bfpage#1{#1}\fi" write$ newline$ - "\ifx \blpage \undefined \def \blpage #1{#1}\fi" write$ newline$ - "\ifx \burl \undefined \def \burl#1{\textsf{#1}}\fi" write$ newline$ - %%"\ifx \doiurl \undefined \def \doiurl#1{\textsf{#1}}\fi" write$ newline$ - "\ifx \doiurl \undefined \def \doiurl#1{\url{https://doi.org/#1}}\fi" write$ newline$ - "\ifx \betal \undefined \def \betal{\textit{et al.}}\fi" write$ newline$ - "\ifx \binstitute \undefined \def \binstitute#1{#1}\fi" write$ newline$ - "\ifx \binstitutionaled \undefined \def \binstitutionaled#1{#1}\fi" write$ newline$ - "\ifx \bctitle \undefined \def \bctitle#1{#1}\fi" write$ newline$ - "\ifx \beditor \undefined \def \beditor#1{#1}\fi" write$ newline$ - "\ifx \bpublisher \undefined \def \bpublisher#1{#1}\fi" write$ newline$ - "\ifx \bbtitle \undefined \def \bbtitle#1{#1}\fi" write$ newline$ - "\ifx \bedition \undefined \def \bedition#1{#1}\fi" write$ newline$ - "\ifx \bseriesno \undefined \def \bseriesno#1{#1}\fi" write$ newline$ - "\ifx \blocation \undefined \def \blocation#1{#1}\fi" write$ newline$ - "\ifx \bsertitle \undefined \def \bsertitle#1{#1}\fi" write$ newline$ - "\ifx \bsnm \undefined \def \bsnm#1{#1}\fi" write$ newline$ - "\ifx \bsuffix \undefined \def \bsuffix#1{#1}\fi" write$ newline$ - "\ifx \bparticle \undefined \def \bparticle#1{#1}\fi" write$ newline$ - "\ifx \barticle \undefined \def \barticle#1{#1}\fi" write$ newline$ - "\bibcommenthead" write$ newline$ -} - - -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - write.preambule - "\ifx \bconfdate \undefined \def \bconfdate #1{#1}\fi" write$ newline$ - "\ifx \botherref \undefined \def \botherref #1{#1}\fi" write$ newline$ - "\ifx \url \undefined \def \url#1{\textsf{#1}}\fi" write$ newline$ - "\ifx \bchapter \undefined \def \bchapter#1{#1}\fi" write$ newline$ - "\ifx \bbook \undefined \def \bbook#1{#1}\fi" write$ newline$ - "\ifx \bcomment \undefined \def \bcomment#1{#1}\fi" write$ newline$ - "\ifx \oauthor \undefined \def \oauthor#1{#1}\fi" write$ newline$ - "\ifx \citeauthoryear \undefined \def \citeauthoryear#1{#1}\fi" write$ newline$ - "\ifx \endbibitem \undefined \def \endbibitem {}\fi" write$ newline$ - "\ifx \bconflocation \undefined \def \bconflocation#1{#1}\fi" write$ newline$ - "\ifx \arxivurl \undefined \def \arxivurl#1{\textsf{#1}}\fi" write$ newline$ - "\csname PreBibitemsHook\endcsname" write$ newline$ -} - -EXECUTE {begin.bib} - -EXECUTE {init.state.consts} - -ITERATE {call.type$} - -FUNCTION {end.bib} -{ newline$ - "\end{thebibliography}" write$ newline$ -} - -EXECUTE {end.bib} - - -%% XML output - done for each entry referenced in the BibTeX database -INTEGERS {i ll li j.int global.counter} -STRINGS {lr lp lt ls } - -FUNCTION {replace} -{ - 'lr := % replace string - 'lp := % pattern - 'lt := % text to search - "" 'ls := % result string - lp text.length$ 'll := % length of the search pattern - { lt empty$ not } - { lt #1 ll substring$ lp = - { ls lr * 'ls := - lt ll #1 + global.max$ substring$ 'lt := } - { ls lt #1 #1 substring$ * 'ls := - lt #2 global.max$ substring$ 'lt := } - if$ - } - while$ - ls -} - -FUNCTION {strip.letters} -{ - "" 's := - duplicate$ missing$ - 'pop$ - { - 't := - { t "" = not } - { % ascii '0' = 48, '9' = 57 - t #1 #1 substring$ chr.to.int$ 'i := - i #47 > i #58 < and - { s t #1 #1 substring$ * 's := } - 'skip$ - if$ - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - s -} -FUNCTION {output.xml} -{ duplicate$ "" = - 'pop$ - { " " swap$ * write$ newline$ } - if$ -} - -%% - % markup.xml - % - % Takes 2 args text & tag {"the text " "tag"} - % Returns 1 string {"the text <\tag>"} -%% -FUNCTION {markup.xml} -{ - "" 'v := % result - 't := % tag - duplicate$ missing$ - 'pop$ - { 'v := } - if$ - v "" = - 'skip$ - { "<" t * ">" * v * "" * 'v := } - if$ - v -} - -%% Takes 2 args - tag, string -FUNCTION{markup.xml.title} -{ pop$ % tag - duplicate$ missing$ - 'pop$ - { - 's := % string - s "\&" "&" replace 's := - s "p" markup.xml 's := - s "title" markup.xml output.xml - } - if$ -} - - -%% - % markup.xml.pages - % - % Takes 1 arg (pages string) - % seperates into and if - % there is a - seperator. else no lpage. - % - % need to remove others -%% -FUNCTION{markup.xml.pages} -{ - "" 'v := % fpage - "" 's := % lpage - duplicate$ missing$ - 'pop$ - { - 't := - t " " "" replace 't := % remove all spaces. pgs must be - seperated - { t empty$ not } - { - t #1 #1 substring$ "-" = - { - t #2 global.max$ substring$ 's := - "" 't := % break while loop - }{ - v t #1 #1 substring$ * 'v := - t #2 global.max$ substring$ 't := - } - if$ - } - while$ - } - if$ - v "fpage" markup.xml output.xml - s "lpage" markup.xml output.xml -} - - -%% - % markup.xml.names - % - % Takes 2 args - % tag, namefield (eg. author "au") - % splits fields into and - % writes info - % returns nothing -%% -FUNCTION {markup.xml.names} -{ - 't := % tag - "" 'v := - "" 's := - duplicate$ empty$ - { pop$ - organization missing$ - { institution "cnm" markup.xml - "au" markup.xml "aug" markup.xml output.xml } - { organization "cnm" markup.xml - "au" markup.xml "aug" markup.xml output.xml } - if$ } - { - " " write$ newline$ - 'temp.str := % names string - temp.str num.names$ 'j.int := % num of names - #1 'i := % init counter - { i #1 j.int + < } % while (i <= j.int) - { - " " write$ - - % Initial first names - % if first name all in capitals - % - assume is initial list of first names. - temp.str i "{ff{ }}" format.name$ - duplicate$ "u" change.case$ = - { temp.str i "{ff{ }}" format.name$ } - { temp.str i "{f{}}" format.name$ } - if$ - - % if last name but no first name use cnm; else snm - duplicate$ "" = - { temp.str i "{ll{ }}" format.name$ % last names space seperated. - "cnm" markup.xml write$ } - { temp.str i "{ll{ }}" format.name$ % last names space seperated. - "snm" markup.xml write$ } - if$ - - "fnm" markup.xml write$ - - "" write$ newline$ - i #1 + 'i := - } - while$ - " " write$ newline$ - } - if$ -} - - -%% - % markup.xml.pub - % - % Takes 4 args (school address publisher tag) - % prints concatenation - % returns nothing -%% -FUNCTION {markup.xml.pub} -{ - 't := % Tag - "" 'v := % Publisher - "" 'l := % Address - "" 'f := % School - "" 's := % Answer - duplicate$ missing$ 'pop$ { 'v := } if$ - duplicate$ missing$ 'pop$ { 'l := } if$ - duplicate$ missing$ 'pop$ { 'f := } if$ - "" f = not % school not empty - { f 's := } % return school as publisher - { % else - "" v = "" l = and % address and pub empty - 'skip$ - { - "" l = - { v 's := } % return pub - { "" v = - { l 's := } % return add - { l ": " * v * 's := } % return add : pub - if$ - } - if$ - } - if$ - } - if$ - s t markup.xml output.xml -} - -%% - % xml.phd - % - % Takes nothing - % Returns type (phd/msc) of empty string -%% -FUNCTION {xml.phd} -{ - "phdthesis" type$ = - "mastersthesis" type$ = or - { "phdthesis" type$ = - { "PhD thesis" } - { "Master's thesis" } - if$ - } - { type } % usually empty - if$ -} - -% markup.xml.edition -% -% edition is a numeric value. ie "2" -% if format 2nd 1st etc.. strip letters. -% -FUNCTION {markup.xml.edition} -{ pop$ pop$ %clear stack - edition strip.letters duplicate$ "" = - { pop$ edition } - 'skip$ - if$ - "edition" markup.xml output.xml -} - - -FUNCTION{begin.bmcxmlcomment}{ - newline$ - "\newcommand{\BMCxmlcomment}[1]{}" write$ newline$ - newline$ - "\BMCxmlcomment{" write$ newline$ - newline$ "" write$ newline$ -} - -FUNCTION{end.bmcxmlcomment}{ - newline$ - "" write$ newline$ - "} % end of \BMCxmlcomment" write$ newline$ -} - -FUNCTION {export.xml}{ - newline$ - global.counter #1 + 'global.counter := - "" * - write$ newline$ -% title "\&" "&" replace "title" markup.xml.title - title "title" markup.xml.title - author "aug" markup.xml.names % org. and inst. here - howpublished missing$ - { booktitle missing$ - { journal missing$ - { xml.phd } % Phd/Msc - {journal} - if$ - } {booktitle} - if$ - } { howpublished } - if$ "source" markup.xml output.xml - school - address - publisher "publisher" markup.xml.pub - editor "editor" markup.xml output.xml - edition "edition" markup.xml.edition - series "p" markup.xml - "title" markup.xml - "series" markup.xml output.xml - chapter "p" markup.xml - "title" markup.xml - "section" markup.xml output.xml - % month % ignore - year "pubdate" markup.xml output.xml - - note missing$ - { volume "volume" markup.xml output.xml - number "issue" markup.xml output.xml - pages markup.xml.pages - url "url" markup.xml output.xml } - { note "l" change.case$ "in press" = - { " " write$ newline$ } - { volume "volume" markup.xml output.xml - number "issue" markup.xml output.xml - pages markup.xml.pages - url "url" markup.xml output.xml - note "note" markup.xml output.xml - } - if$ - } - if$ - "" write$ newline$ -} - -%%EXECUTE {begin.bmcxmlcomment} -%%ITERATE {export.xml} -%%EXECUTE {end.bmcxmlcomment} - - - - diff --git a/_extensions/christopherkenny/nature/sn-nature.bst b/_extensions/christopherkenny/nature/sn-nature.bst deleted file mode 100644 index cae8f64..0000000 --- a/_extensions/christopherkenny/nature/sn-nature.bst +++ /dev/null @@ -1,1710 +0,0 @@ -%% -%% This is file `naturemag.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% merlin.mbs (with options: `head,seq-no,nm-rev,ed-rev,jnrlst,nmlm,x5,m1,yr-par,xmth,vol-bf,vnum-x,volp-com,num-xser,jnm-x,bkpg-x,pub-date,edparxc,ppx,ed,abr,xedn,jabr,amper,and-xcom,etal-it,eprint,url,url-blk,bibinfo,nfss,{}') -%% physjour.mbs (with options: `seq-no,nm-rev,ed-rev,jnrlst,nmlm,x5,m1,yr-par,xmth,vol-bf,vnum-x,volp-com,num-xser,jnm-x,bkpg-x,pub-date,edparxc,ppx,ed,abr,xedn,jabr,amper,and-xcom,etal-it,eprint,url,url-blk,bibinfo,nfss,{}') -%% geojour.mbs (with options: `seq-no,nm-rev,ed-rev,jnrlst,nmlm,x5,m1,yr-par,xmth,vol-bf,vnum-x,volp-com,num-xser,jnm-x,bkpg-x,pub-date,edparxc,ppx,ed,abr,xedn,jabr,amper,and-xcom,etal-it,eprint,url,url-blk,bibinfo,nfss,{}') -%% photjour.mbs (with options: `seq-no,nm-rev,ed-rev,jnrlst,nmlm,x5,m1,yr-par,xmth,vol-bf,vnum-x,volp-com,num-xser,jnm-x,bkpg-x,pub-date,edparxc,ppx,ed,abr,xedn,jabr,amper,and-xcom,etal-it,eprint,url,url-blk,bibinfo,nfss,{}') -%% merlin.mbs (with options: `tail,seq-no,nm-rev,ed-rev,jnrlst,nmlm,x5,m1,yr-par,xmth,vol-bf,vnum-x,volp-com,num-xser,jnm-x,bkpg-x,pub-date,edparxc,ppx,ed,abr,xedn,jabr,amper,and-xcom,etal-it,eprint,url,url-blk,bibinfo,nfss,{}') -%% ---------------------------------------- -%% *** Style for the journal Nature (created by Peter Czoschke) *** -%% -%% Copyright 1994-2002 Patrick W Daly - % =============================================================== - % IMPORTANT NOTICE: - % This bibliographic style (bst) file has been generated from one or - % more master bibliographic style (mbs) files, listed above. - % - % This generated file can be redistributed and/or modified under the terms - % of the LaTeX Project Public License Distributed from CTAN - % archives in directory macros/latex/base/lppl.txt; either - % version 1 of the License, or any later version. - % =============================================================== - % Name and version information of the main mbs file: - % \ProvidesFile{merlin.mbs}[2002/10/21 4.05 (PWD, AO, DPC)] - % For use with BibTeX version 0.99a or later - %------------------------------------------------------------------- - % This bibliography style file is intended for texts in ENGLISH - % This is a numerical citation style, and as such is standard LaTeX. - % It requires no extra package to interface to the main text. - % The form of the \bibitem entries is - % \bibitem{key}... - % Usage of \cite is as follows: - % \cite{key} ==>> [#] - % \cite[chap. 2]{key} ==>> [#, chap. 2] - % where # is a number determined by the ordering in the reference list. - % The order in the reference list is that by which the works were originally - % cited in the text, or that in the database. - %--------------------------------------------------------------------- - -ENTRY - { address - archive - author - booktitle - chapter - edition - editor - eprint - howpublished - institution - journal - key - keywords - month - note - number - organization - pages - publisher - school - series - title - type - url - doi - volume - year - archivePrefix - primaryClass - eid - adsurl - adsnote - version - } - {} - { label } -INTEGERS { output.state before.all mid.sentence after.sentence after.block } -FUNCTION {init.state.consts} -{ #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := -} -STRINGS { s t} -FUNCTION {output.nonnull} -{ 's := - output.state mid.sentence = - { ", " * write$ } - { output.state after.block = - { add.period$ write$ - newline$ - "\newblock " write$ - } - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - s -} - -FUNCTION {output.in.nonnull} -{ 's := - output.state mid.sentence = - { ", " * write$ } - { output.state after.block = - { add.period$ write$ - newline$ - "\newblock " write$ - } - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - s -} -FUNCTION {output} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull - if$ -} -FUNCTION {output.check} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull - if$ -} - -FUNCTION {in.output.check} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.in.nonnull - if$ -} -FUNCTION {fin.entry} -{ add.period$ - write$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} -FUNCTION {add.blank} -{ " " * before.all 'output.state := -} - -FUNCTION {date.block} -{ - new.block -} - -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} -FUNCTION {new.block.checka} -{ empty$ - 'skip$ - 'new.block - if$ -} -FUNCTION {new.block.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.block - if$ -} -FUNCTION {new.sentence.checka} -{ empty$ - 'skip$ - 'new.sentence - if$ -} -FUNCTION {new.sentence.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.sentence - if$ -} -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} -FUNCTION {emphasize} -{ duplicate$ empty$ - { pop$ "" } - { "\emph{" swap$ * "}" * } - if$ -} -FUNCTION {bolden} -{ duplicate$ empty$ - { pop$ "" } - { "\textbf{" swap$ * "}" * } - if$ -} -FUNCTION {tie.or.space.prefix} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ -} - -FUNCTION {capitalize} -{ "u" change.case$ "t" change.case$ } - -FUNCTION {space.word} -{ " " swap$ * " " * } - % Here are the language-specific definitions for explicit words. - % Each function has a name bbl.xxx where xxx is the English word. - % The language selected here is ENGLISH -FUNCTION {bbl.and} -{ "and"} - -FUNCTION {bbl.etal} -{ "et~al." } - -FUNCTION {bbl.in.editors} -{ "eds " } - -FUNCTION {bbl.editors} -{ "eds" } - -FUNCTION {bbl.editor} -{ "ed." } - -FUNCTION {bbl.edby} -{ "edited by" } - -FUNCTION {bbl.edition} -{ "edn" } - -FUNCTION {bbl.volume} -{ "Vol." } - -FUNCTION {bbl.of} -{ "of" } - -FUNCTION {bbl.number} -{ "no." } - -FUNCTION {bbl.nr} -{ "no." } - -FUNCTION {bbl.in} -{ "in" } - -FUNCTION {bbl.pages} -{ "" } - -FUNCTION {bbl.page} -{ "" } - -FUNCTION {bbl.chapter} -{ "Ch." } - -FUNCTION {bbl.techrep} -{ "Tech. Rep." } - -FUNCTION {bbl.mthesis} -{ "Master's thesis" } - -FUNCTION {bbl.phdthesis} -{ "Ph.D. thesis" } - -MACRO {jan} {"Jan."} - -MACRO {feb} {"Feb."} - -MACRO {mar} {"Mar."} - -MACRO {apr} {"Apr."} - -MACRO {may} {"May"} - -MACRO {jun} {"Jun."} - -MACRO {jul} {"Jul."} - -MACRO {aug} {"Aug."} - -MACRO {sep} {"Sep."} - -MACRO {oct} {"Oct."} - -MACRO {nov} {"Nov."} - -MACRO {dec} {"Dec."} - - %------------------------------------------------------------------- - % Begin module: - % \ProvidesFile{physjour.mbs}[2002/01/14 2.2 (PWD)] -MACRO {aa}{"Astron. \& Astrophys."} -MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} -MACRO {aj} {"Astron. J."} -MACRO {aph} {"Acta Phys."} -MACRO {advp} {"Adv. Phys."} -MACRO {ajp} {"Amer. J. Phys."} -MACRO {ajm} {"Amer. J. Math."} -MACRO {amsci} {"Amer. Sci."} -MACRO {anofd} {"Ann. Fluid Dyn."} -MACRO {am} {"Ann. Math."} -MACRO {ap} {"Ann. Phys. (NY)"} -MACRO {adp} {"Ann. Phys. (Leipzig)"} -MACRO {ao} {"Appl. Opt."} -MACRO {apl} {"Appl. Phys. Lett."} -MACRO {app} {"Astroparticle Phys."} -MACRO {apj} {"Astrophys. J."} -MACRO {apjsup} {"Astrophys. J. Suppl."} -MACRO {apss} {"Astrophys. Space Sci."} -MACRO {araa} {"Ann. Rev. Astron. Astrophys."} -MACRO {baas} {"Bull. Amer. Astron. Soc."} -MACRO {baps} {"Bull. Amer. Phys. Soc."} -MACRO {cmp} {"Comm. Math. Phys."} -MACRO {cpam} {"Commun. Pure Appl. Math."} -MACRO {cppcf} {"Comm. Plasma Phys. \& Controlled Fusion"} -MACRO {cpc} {"Comp. Phys. Comm."} -MACRO {cqg} {"Class. Quant. Grav."} -MACRO {cra} {"C. R. Acad. Sci. A"} -MACRO {fed} {"Fusion Eng. \& Design"} -MACRO {ft} {"Fusion Tech."} -MACRO {grg} {"Gen. Relativ. Gravit."} -MACRO {ieeens} {"IEEE Trans. Nucl. Sci."} -MACRO {ieeeps} {"IEEE Trans. Plasma Sci."} -MACRO {ijimw} {"Interntl. J. Infrared \& Millimeter Waves"} -MACRO {ip} {"Infrared Phys."} -MACRO {irp} {"Infrared Phys."} -MACRO {jap} {"J. Appl. Phys."} -MACRO {jasa} {"J. Acoust. Soc. America"} -MACRO {jcp} {"J. Comp. Phys."} -MACRO {jetp} {"Sov. Phys.--JETP"} -MACRO {jfe} {"J. Fusion Energy"} -MACRO {jfm} {"J. Fluid Mech."} -MACRO {jmp} {"J. Math. Phys."} -MACRO {jne} {"J. Nucl. Energy"} -MACRO {jnec} {"J. Nucl. Energy, C: Plasma Phys., Accelerators, Thermonucl. Res."} -MACRO {jnm} {"J. Nucl. Mat."} -MACRO {jpc} {"J. Phys. Chem."} -MACRO {jpp} {"J. Plasma Phys."} -MACRO {jpsj} {"J. Phys. Soc. Japan"} -MACRO {jsi} {"J. Sci. Instrum."} -MACRO {jvst} {"J. Vac. Sci. \& Tech."} -MACRO {nat} {"Nature"} -MACRO {nature} {"Nature"} -MACRO {nedf} {"Nucl. Eng. \& Design/Fusion"} -MACRO {nf} {"Nucl. Fusion"} -MACRO {nim} {"Nucl. Inst. \& Meth."} -MACRO {nimpr} {"Nucl. Inst. \& Meth. in Phys. Res."} -MACRO {np} {"Nucl. Phys."} -MACRO {npb} {"Nucl. Phys. B"} -MACRO {nt/f} {"Nucl. Tech./Fusion"} -MACRO {npbpc} {"Nucl. Phys. B (Proc. Suppl.)"} -MACRO {inc} {"Nuovo Cimento"} -MACRO {nc} {"Nuovo Cimento"} -MACRO {pf} {"Phys. Fluids"} -MACRO {pfa} {"Phys. Fluids A: Fluid Dyn."} -MACRO {pfb} {"Phys. Fluids B: Plasma Phys."} -MACRO {pl} {"Phys. Lett."} -MACRO {pla} {"Phys. Lett. A"} -MACRO {plb} {"Phys. Lett. B"} -MACRO {prep} {"Phys. Rep."} -MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"} -MACRO {pp} {"Phys. Plasmas"} -MACRO {ppcf} {"Plasma Phys. \& Controlled Fusion"} -MACRO {phitrsl} {"Philos. Trans. Roy. Soc. London"} -MACRO {prl} {"Phys. Rev. Lett."} -MACRO {pr} {"Phys. Rev."} -MACRO {physrev} {"Phys. Rev."} -MACRO {pra} {"Phys. Rev. A"} -MACRO {prb} {"Phys. Rev. B"} -MACRO {prc} {"Phys. Rev. C"} -MACRO {prd} {"Phys. Rev. D"} -MACRO {pre} {"Phys. Rev. E"} -MACRO {ps} {"Phys. Scripta"} -MACRO {procrsl} {"Proc. Roy. Soc. London"} -MACRO {rmp} {"Rev. Mod. Phys."} -MACRO {rsi} {"Rev. Sci. Inst."} -MACRO {science} {"Science"} -MACRO {sciam} {"Sci. Am."} -MACRO {sam} {"Stud. Appl. Math."} -MACRO {sjpp} {"Sov. J. Plasma Phys."} -MACRO {spd} {"Sov. Phys.--Doklady"} -MACRO {sptp} {"Sov. Phys.--Tech. Phys."} -MACRO {spu} {"Sov. Phys.--Uspeki"} -MACRO {st} {"Sky and Telesc."} - % End module: physjour.mbs - %------------------------------------------------------------------- - % Begin module: - % \ProvidesFile{geojour.mbs}[2002/07/10 2.0h (PWD)] -MACRO {aisr} {"Adv. Space Res."} -MACRO {ag} {"Ann. Geophys."} -MACRO {anigeo} {"Ann. Geofis."} -MACRO {angl} {"Ann. Glaciol."} -MACRO {andmet} {"Ann. d. Meteor."} -MACRO {andgeo} {"Ann. d. Geophys."} -MACRO {andphy} {"Ann. Phys.-Paris"} -MACRO {afmgb} {"Arch. Meteor. Geophys. Bioklimatol."} -MACRO {atph} {"Atm\'osphera"} -MACRO {aao} {"Atmos. Ocean"} -MACRO {ass}{"Astrophys. Space Sci."} -MACRO {atenv} {"Atmos. Environ."} -MACRO {aujag} {"Aust. J. Agr. Res."} -MACRO {aumet} {"Aust. Meteorol. Mag."} -MACRO {blmet} {"Bound.-Lay. Meteorol."} -MACRO {bams} {"Bull. Amer. Meteorol. Soc."} -MACRO {cch} {"Clim. Change"} -MACRO {cdyn} {"Clim. Dynam."} -MACRO {cbul} {"Climatol. Bull."} -MACRO {cap} {"Contrib. Atmos. Phys."} -MACRO {dsr} {"Deep-Sea Res."} -MACRO {dhz} {"Dtsch. Hydrogr. Z."} -MACRO {dao} {"Dynam. Atmos. Oceans"} -MACRO {eco} {"Ecology"} -MACRO {empl}{"Earth, Moon and Planets"} -MACRO {envres} {"Environ. Res."} -MACRO {envst} {"Environ. Sci. Technol."} -MACRO {ecms} {"Estuarine Coastal Mar. Sci."} -MACRO {expa}{"Exper. Astron."} -MACRO {geoint} {"Geofis. Int."} -MACRO {geopub} {"Geofys. Publ."} -MACRO {geogeo} {"Geol. Geofiz."} -MACRO {gafd} {"Geophys. Astrophys. Fluid Dyn."} -MACRO {gfd} {"Geophys. Fluid Dyn."} -MACRO {geomag} {"Geophys. Mag."} -MACRO {georl} {"Geophys. Res. Lett."} -MACRO {grl} {"Geophys. Res. Lett."} -MACRO {ga} {"Geophysica"} -MACRO {gs} {"Geophysics"} -MACRO {ieeetap} {"IEEE Trans. Antenn. Propag."} -MACRO {ijawp} {"Int. J. Air Water Pollut."} -MACRO {ijc} {"Int. J. Climatol."} -MACRO {ijrs} {"Int. J. Remote Sens."} -MACRO {jam} {"J. Appl. Meteorol."} -MACRO {jaot} {"J. Atmos. Ocean. Technol."} -MACRO {jatp} {"J. Atmos. Terr. Phys."} -MACRO {jastp} {"J. Atmos. Solar-Terr. Phys."} -MACRO {jce} {"J. Climate"} -MACRO {jcam} {"J. Climate Appl. Meteor."} -MACRO {jcm} {"J. Climate Meteor."} -MACRO {jcy} {"J. Climatol."} -MACRO {jgr} {"J. Geophys. Res."} -MACRO {jga} {"J. Glaciol."} -MACRO {jh} {"J. Hydrol."} -MACRO {jmr} {"J. Mar. Res."} -MACRO {jmrj} {"J. Meteor. Res. Japan"} -MACRO {jm} {"J. Meteor."} -MACRO {jpo} {"J. Phys. Oceanogr."} -MACRO {jra} {"J. Rech. Atmos."} -MACRO {jaes} {"J. Aeronaut. Sci."} -MACRO {japca} {"J. Air Pollut. Control Assoc."} -MACRO {jas} {"J. Atmos. Sci."} -MACRO {jmts} {"J. Mar. Technol. Soc."} -MACRO {jmsj} {"J. Meteorol. Soc. Japan"} -MACRO {josj} {"J. Oceanogr. Soc. Japan"} -MACRO {jwm} {"J. Wea. Mod."} -MACRO {lao} {"Limnol. Oceanogr."} -MACRO {mwl} {"Mar. Wea. Log"} -MACRO {mau} {"Mausam"} -MACRO {meteor} {"``Meteor'' Forschungsergeb."} -MACRO {map} {"Meteorol. Atmos. Phys."} -MACRO {metmag} {"Meteor. Mag."} -MACRO {metmon} {"Meteor. Monogr."} -MACRO {metrun} {"Meteor. Rundsch."} -MACRO {metzeit} {"Meteor. Z."} -MACRO {metgid} {"Meteor. Gidrol."} -MACRO {mwr} {"Mon. Weather Rev."} -MACRO {nwd} {"Natl. Weather Dig."} -MACRO {nzjmfr} {"New Zeal. J. Mar. Freshwater Res."} -MACRO {npg} {"Nonlin. Proc. Geophys."} -MACRO {om} {"Oceanogr. Meteorol."} -MACRO {ocac} {"Oceanol. Acta"} -MACRO {oceanus} {"Oceanus"} -MACRO {paleoc} {"Paleoceanography"} -MACRO {pce} {"Phys. Chem. Earth"} -MACRO {pmg} {"Pap. Meteor. Geophys."} -MACRO {ppom} {"Pap. Phys. Oceanogr. Meteor."} -MACRO {physzeit} {"Phys. Z."} -MACRO {pps} {"Planet. Space Sci."} -MACRO {pss} {"Planet. Space Sci."} -MACRO {pag} {"Pure Appl. Geophys."} -MACRO {qjrms} {"Quart. J. Roy. Meteorol. Soc."} -MACRO {quatres} {"Quat. Res."} -MACRO {rsci} {"Radio Sci."} -MACRO {rse} {"Remote Sens. Environ."} -MACRO {rgeo} {"Rev. Geophys."} -MACRO {rgsp} {"Rev. Geophys. Space Phys."} -MACRO {rdgeo} {"Rev. Geofis."} -MACRO {revmeta} {"Rev. Meteorol."} -MACRO {sgp}{"Surveys in Geophys."} -MACRO {sp} {"Solar Phys."} -MACRO {ssr} {"Space Sci. Rev."} -MACRO {tellus} {"Tellus"} -MACRO {tac} {"Theor. Appl. Climatol."} -MACRO {tagu} {"Trans. Am. Geophys. Union (EOS)"} -MACRO {wrr} {"Water Resour. Res."} -MACRO {weather} {"Weather"} -MACRO {wafc} {"Weather Forecast."} -MACRO {ww} {"Weatherwise"} -MACRO {wmob} {"WMO Bull."} -MACRO {zeitmet} {"Z. Meteorol."} - % End module: geojour.mbs - %------------------------------------------------------------------- - % Begin module: - % \ProvidesFile{photjour.mbs}[1999/02/24 2.0b (PWD)] - -MACRO {appopt} {"Appl. Opt."} -MACRO {bell} {"Bell Syst. Tech. J."} -MACRO {ell} {"Electron. Lett."} -MACRO {jasp} {"J. Appl. Spectr."} -MACRO {jqe} {"IEEE J. Quantum Electron."} -MACRO {jlwt} {"J. Lightwave Technol."} -MACRO {jmo} {"J. Mod. Opt."} -MACRO {josa} {"J. Opt. Soc. America"} -MACRO {josaa} {"J. Opt. Soc. Amer.~A"} -MACRO {josab} {"J. Opt. Soc. Amer.~B"} -MACRO {jdp} {"J. Phys. (Paris)"} -MACRO {oc} {"Opt. Commun."} -MACRO {ol} {"Opt. Lett."} -MACRO {phtl} {"IEEE Photon. Technol. Lett."} -MACRO {pspie} {"Proc. Soc. Photo-Opt. Instrum. Eng."} -MACRO {sse} {"Solid-State Electron."} -MACRO {sjot} {"Sov. J. Opt. Technol."} -MACRO {sjqe} {"Sov. J. Quantum Electron."} -MACRO {sleb} {"Sov. Phys.--Leb. Inst. Rep."} -MACRO {stph} {"Sov. Phys.--Techn. Phys."} -MACRO {stphl} {"Sov. Techn. Phys. Lett."} -MACRO {vr} {"Vision Res."} -MACRO {zph} {"Z. f. Physik"} -MACRO {zphb} {"Z. f. Physik~B"} -MACRO {zphd} {"Z. f. Physik~D"} - -MACRO {CLEO} {"CLEO"} -MACRO {ASSL} {"Adv. Sol.-State Lasers"} -MACRO {OSA} {"OSA"} - % End module: photjour.mbs -%% Copyright 1994-2002 Patrick W Daly -MACRO {acmcs} {"ACM Comput. Surv."} - -MACRO {acta} {"Acta Inf."} - -MACRO {cacm} {"Commun. ACM"} - -MACRO {ibmjrd} {"IBM J. Res. Dev."} - -MACRO {ibmsj} {"IBM Syst.~J."} - -MACRO {ieeese} {"IEEE Trans. Software Eng."} - -MACRO {ieeetc} {"IEEE Trans. Comput."} - -MACRO {ieeetcad} - {"IEEE Trans. Comput. Aid. Des."} - -MACRO {ipl} {"Inf. Process. Lett."} - -MACRO {jacm} {"J.~ACM"} - -MACRO {jcss} {"J.~Comput. Syst. Sci."} - -MACRO {scp} {"Sci. Comput. Program."} - -MACRO {sicomp} {"SIAM J. Comput."} - -MACRO {tocs} {"ACM Trans. Comput. Syst."} - -MACRO {tods} {"ACM Trans. Database Syst."} - -MACRO {tog} {"ACM Trans. Graphic."} - -MACRO {toms} {"ACM Trans. Math. Software"} - -MACRO {toois} {"ACM Trans. Office Inf. Syst."} - -MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."} - -MACRO {tcs} {"Theor. Comput. Sci."} - -FUNCTION {bibinfo.check} -{ swap$ - duplicate$ missing$ - { - pop$ pop$ - "" - } - { duplicate$ empty$ - { - swap$ pop$ - } - { swap$ - "\bibinfo{" swap$ * "}{" * swap$ * "}" * - } - if$ - } - if$ -} -FUNCTION {bibinfo.warn} -{ swap$ - duplicate$ missing$ - { - swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ - "" - } - { duplicate$ empty$ - { - swap$ "empty " swap$ * " in " * cite$ * warning$ - } - { swap$ - "\bibinfo{" swap$ * "}{" * swap$ * "}" * - } - if$ - } - if$ -} -FUNCTION {format.eprint} -{ eprint duplicate$ empty$ - 'skip$ - { "\eprint" - archive empty$ - 'skip$ - { "[" * archive * "]" * } - if$ - "{" * swap$ * "}" * - } - if$ -} -FUNCTION {format.url} -{ url empty$ - { "" } - { "\urlprefix\url{" url * "}" * } - if$ -} - -FUNCTION {format.doi} -{ doi empty$ - { "" } - { "\doi{" doi * "}" * } - if$ -} - -STRINGS { bibinfo} -INTEGERS { nameptr namesleft numnames } - -FUNCTION {format.names} -{ 'bibinfo := - duplicate$ empty$ 'skip$ { - 's := - "" 't := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{vv~}{ll}{, f.}{, jj}" - format.name$ - bibinfo bibinfo.check - 't := - nameptr #1 > - { - nameptr #1 - #1 + = - numnames #5 - > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - namesleft #1 > - { ", " * t * } - { - s nameptr "{ll}" format.name$ duplicate$ "others" = - { 't := } - { pop$ } - if$ - t "others" = - { - " " * bbl.etal emphasize * - } - { - "\&" - space.word * t * - } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - } if$ -} -FUNCTION {format.names.ed} -{ - format.names -} -FUNCTION {format.authors} -{ author "author" format.names -} -FUNCTION {get.bbl.editor} -{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } - -FUNCTION {get.in.bbl.editor} -{ } - -FUNCTION {format.editors} -{ editor "editor" format.names duplicate$ empty$ 'skip$ - { - " " * - get.bbl.editor - "(" swap$ * ")" * - * - } - if$ -} - -FUNCTION {format.in.editors} -{ "" editor "editor" format.names duplicate$ empty$ 'skip$ - { swap$ "(eds" * - " " * swap$ * - swap$ " " * - swap$ * ")" * - } - if$ -} - -FUNCTION {format.note} -{ - note empty$ - { "" } - { note #1 #1 substring$ - duplicate$ "{" = - 'skip$ - { output.state mid.sentence = - { "l" } - { "u" } - if$ - change.case$ - } - if$ - note #2 global.max$ substring$ * "note" bibinfo.check - } - if$ -} - - - -FUNCTION {format.in.title} -{ title - duplicate$ empty$ 'skip$ - { "t" change.case$ } - if$ - " in \textit{" swap$ * "}" * "title" bibinfo.check -} - -FUNCTION {format.title} -{ title - duplicate$ empty$ 'skip$ - { "t" change.case$ } - if$ - "title" bibinfo.check -} - -FUNCTION {format.inpro.title} -{ title - duplicate$ empty$ 'skip$ - { "t" change.case$ } - if$ - "title" bibinfo.check - emphasize} - -FUNCTION {format.version} -{ version - duplicate$ empty$ 'skip$ - { "t" change.case$ } - if$ - "version" bibinfo.check -} - -%FUNCTION {format.inpro.title} -%{ title -% duplicate$ empty$ 'skip$ -% { "t" change.case$ } -% if$ -% "title" bibinfo.check -% emphasize} - -FUNCTION {output.bibitem} -{ newline$ - "\bibitem{" write$ - cite$ write$ - "}" write$ - newline$ - "" - before.all 'output.state := -} - -FUNCTION {n.dashify} -{ - 't := - "" - { t empty$ not } - { t #1 #1 substring$ "-" = - { t #1 #2 substring$ "--" = not - { "--" * - t #2 global.max$ substring$ 't := - } - { { t #1 #1 substring$ "-" = } - { "-" * - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -FUNCTION {word.in} -{ bbl.in capitalize - " " * } - -FUNCTION {format.date} -{ - "" - duplicate$ empty$ - year "year" bibinfo.check duplicate$ empty$ - { swap$ 'skip$ - { "there's a month but no year in " cite$ * warning$ } - if$ - * - } - { swap$ 'skip$ - { - swap$ - " " * swap$ - } - if$ - * - } - if$ - duplicate$ empty$ - 'skip$ - { - before.all 'output.state := - " (" swap$ * ")" * - } - if$ -} -FUNCTION {format.btitle} -{ title "title" bibinfo.check - duplicate$ empty$ 'skip$ - { - emphasize - } - if$ -} -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "can't use both " swap$ * " fields in " * cite$ * warning$ } - if$ -} -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bbl.volume volume tie.or.space.prefix - "volume" bibinfo.check * * - series "series" bibinfo.check - duplicate$ empty$ 'pop$ - { swap$ bbl.of space.word * swap$ - emphasize * } - if$ - "volume and number" number either.or.check - } - if$ -} -FUNCTION {format.number.series} -{ volume empty$ - { number empty$ - { series field.or.null } - { series empty$ - { number "number" bibinfo.check } - { output.state mid.sentence = - { bbl.number } - { bbl.number capitalize } - if$ - number tie.or.space.prefix "number" bibinfo.check * * - bbl.in space.word * - series "series" bibinfo.check * - } - if$ - } - if$ - } - { "" } - if$ -} - -FUNCTION {format.edition} -{ edition duplicate$ empty$ 'skip$ - { - output.state mid.sentence = - { "l" } - { "t" } - if$ change.case$ - "edition" bibinfo.check - " " * bbl.edition * - } - if$ -} -INTEGERS { multiresult } -FUNCTION {multi.page.check} -{ 't := - #0 'multiresult := - { multiresult not - t empty$ not - and - } - { t #1 #1 substring$ - duplicate$ "-" = - swap$ duplicate$ "," = - swap$ "+" = - or or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - multiresult -} -FUNCTION {format.pages} -{ pages duplicate$ empty$ 'skip$ - { duplicate$ multi.page.check - { - n.dashify - } - { - } - if$ - "pages" bibinfo.check - } - if$ -} -FUNCTION {format.journal.pages} -{ pages duplicate$ empty$ 'pop$ - { swap$ duplicate$ empty$ - { pop$ pop$ format.pages } - { - ", " * - swap$ - n.dashify - "pages" bibinfo.check - * - } - if$ - } - if$ -} -FUNCTION {format.number} - {number empty$ - 'skip$ - { "~(" number * ")" * * } - if$ - } -FUNCTION {format.vol.num.pages} -{ volume field.or.null - duplicate$ empty$ 'skip$ - { - "volume" bibinfo.check - } - if$ - bolden -% format.number - format.journal.pages -} - -FUNCTION {format.chapter.pages} -{ chapter empty$ - 'format.pages - { type empty$ - { bbl.chapter } - { type "l" change.case$ - "type" bibinfo.check - } - if$ - chapter tie.or.space.prefix - "chapter" bibinfo.check - * * - pages empty$ - 'skip$ - { ", " * format.pages * } - if$ - } - if$ -} - -FUNCTION {format.booktitle} -{ - booktitle "booktitle" bibinfo.check - emphasize -} -FUNCTION {format.in.ed.booktitle} -{ duplicate$ empty$ 'skip$ - { -editor "editor" format.names.ed duplicate$ empty$ 'pop$ - { -format.booktitle swap$ -"(" editor num.names$ #1 > 'bbl.in.editors 'bbl.editor if$ * swap$ ") " * - * swap$ - * } - if$ - } - if$ -} -FUNCTION {empty.misc.check} -{ author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ -} -FUNCTION {format.thesis.type} -{ type duplicate$ empty$ - 'pop$ - { swap$ pop$ - "t" change.case$ "type" bibinfo.check - } - if$ -} -FUNCTION {format.tr.number} -{ number "number" bibinfo.check - type duplicate$ empty$ - { pop$ bbl.techrep } - 'skip$ - if$ - "type" bibinfo.check - swap$ duplicate$ empty$ - { pop$ "t" change.case$ } - { tie.or.space.prefix * * } - if$ -} -FUNCTION {format.article.crossref} -{ - key duplicate$ empty$ - { pop$ - journal duplicate$ empty$ - { "need key or journal for " cite$ * " to crossref " * crossref * warning$ } - { "journal" bibinfo.check emphasize word.in swap$ * } - if$ - } - { word.in swap$ * " " *} - if$ - " \cite{" * crossref * "}" * -} -FUNCTION {format.crossref.editor} -{ editor #1 "{vv~}{ll}" format.name$ - "editor" bibinfo.check - editor num.names$ duplicate$ - #2 > - { pop$ - "editor" bibinfo.check - " " * bbl.etal - emphasize - * - } - { #2 < - 'skip$ - { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { - "editor" bibinfo.check - " " * bbl.etal - emphasize - * - } - { - " \& " - * editor #2 "{vv~}{ll}" format.name$ - "editor" bibinfo.check - * - } - if$ - } - if$ - } - if$ -} -FUNCTION {format.book.crossref} -{ volume duplicate$ empty$ - { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ - pop$ word.in - } - { bbl.volume - capitalize - swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * - } - if$ - editor empty$ - editor field.or.null author field.or.null = - or - { key empty$ - { series empty$ - { "need editor, key, or series for " cite$ * " to crossref " * - crossref * warning$ - "" * - } - { series emphasize * } - if$ - } - { key * } - if$ - } - { format.crossref.editor * } - if$ - " \cite{" * crossref * "}" * -} -FUNCTION {format.incoll.inproc.crossref} -{ - editor empty$ - editor field.or.null author field.or.null = - or - { key empty$ - { format.booktitle duplicate$ empty$ - { "need editor, key, or booktitle for " cite$ * " to crossref " * - crossref * warning$ - } - { word.in swap$ * } - if$ - } - { word.in key * " " *} - if$ - } - { word.in format.crossref.editor * " " *} - if$ - " \cite{" * crossref * "}" * -} -FUNCTION {format.org.or.pub} -{ 't := - "" - year empty$ - { "empty year in " cite$ * warning$ } - 'skip$ - if$ - address empty$ t empty$ and - year empty$ and - 'skip$ - { - add.blank "(" * - t empty$ - { address "address" bibinfo.check * - } - { t * - address empty$ - 'skip$ - { ", " * address "address" bibinfo.check * } - if$ - } - if$ - year empty$ - 'skip$ - { t empty$ address empty$ and - 'skip$ - { ", " * } - if$ - year "year" bibinfo.check - * - } - if$ - ")" * - } - if$ -} -FUNCTION {format.publisher.address} -{ publisher "publisher" bibinfo.warn format.org.or.pub -} - -FUNCTION {format.organization.address} -{ organization "organization" bibinfo.check format.org.or.pub -} - -FUNCTION {format.archive} -{ - archivePrefix empty$ - { "" } - { archivePrefix ":" *} - if$ -} - -FUNCTION {format.primaryClass} -{ - primaryClass empty$ - { "" } - { " {[" primaryClass * "]}" *} - if$ -} - -FUNCTION {format.soft.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ - "eprint" bibinfo.check -} - -FUNCTION {format.softmisc.archive} -{ - archivePrefix empty$ - { "" } - { "" } - if$ -} - -FUNCTION {format.softmisc.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {article} -{ output.bibitem - format.authors "author" output.check - new.block - format.title "title" output.check - new.block - crossref missing$ - { - journal - "journal" bibinfo.check - emphasize - "journal" output.check - add.blank - format.vol.num.pages output - format.date "year" output.check - } - { format.article.crossref output.nonnull - format.pages output - } - if$ - new.block - format.url output - new.block - %% format.doi output - format.note output - %%format.eprint output - %% format.soft.eprint output - %% add.blank - %% format.primaryClass output - fin.entry -} - -FUNCTION {book} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check - add.blank - } - { format.authors output.nonnull - crossref missing$ - { "author and editor" editor either.or.check } - 'skip$ - if$ - } - if$ - new.block - format.btitle "title" output.check - add.blank - format.edition output - crossref missing$ - { format.bvolume output - new.block - format.number.series output - new.sentence - format.publisher.address output - } - { - new.block - format.book.crossref output.nonnull - format.date "year" output.check - } - if$ - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry -} -FUNCTION {booklet} -{ output.bibitem - format.authors output - new.block - format.title "title" output.check - new.block - howpublished "howpublished" bibinfo.check output - address "address" bibinfo.check output - format.date output - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - author empty$ - { format.editors "author and editor" output.check - } - { format.authors output.nonnull - crossref missing$ - { "author and editor" editor either.or.check } - 'skip$ - if$ - } - if$ - new.block - format.btitle "title" output.check - crossref missing$ - { - format.bvolume output - format.chapter.pages "chapter and pages" output.check - new.block - format.number.series output - new.sentence - format.publisher.address output - } - { - format.chapter.pages "chapter and pages" output.check - new.block - format.book.crossref output.nonnull - format.date "year" output.check - } - if$ - format.edition output - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - format.authors "author" output.check - new.block - format.in.title "title" output.check - add.blank - format.edition output -% new.block - crossref missing$ - { format.in.ed.booktitle "booktitle" output.check - format.bvolume output - add.blank - format.number.series output - format.chapter.pages output - new.sentence - format.publisher.address output - } - { format.incoll.inproc.crossref output.nonnull - format.chapter.pages output - } - if$ - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry -} -FUNCTION {inproceedings} -{ output.bibitem - format.authors "author" output.check - new.block - format.editors output -add.blank - format.inpro.title "title" output.check - new.block - crossref missing$ - { format.in.ed.booktitle "booktitle" output.check - format.bvolume output - format.number.series output - format.pages output - new.sentence - publisher empty$ - { format.organization.address output } - { organization "organization" bibinfo.check output - format.publisher.address output - } - if$ - } - { format.incoll.inproc.crossref output.nonnull - format.pages output - } - if$ - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry -} -FUNCTION {conference} { inproceedings } -FUNCTION {manual} -{ output.bibitem - author empty$ - { organization "organization" bibinfo.check - duplicate$ empty$ 'pop$ - { output - address "address" bibinfo.check output - } - if$ - } - { format.authors output.nonnull } - if$ - new.block - format.btitle "title" output.check - author empty$ - { organization empty$ - { - address new.block.checka - address "address" bibinfo.check output - } - 'skip$ - if$ - } - { - organization address new.block.checkb - organization "organization" bibinfo.check output - address "address" bibinfo.check output - } - if$ - format.edition output - format.date output - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry -} - -FUNCTION {mastersthesis} -{ output.bibitem - format.authors "author" output.check - new.block - format.btitle - "title" output.check - new.block - bbl.mthesis format.thesis.type output.nonnull - school "school" bibinfo.warn output - address "address" bibinfo.check output - format.date "year" output.check - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry -} - -FUNCTION {misc} -{ output.bibitem - format.authors output - title howpublished new.block.checkb - format.title output - howpublished new.block.checka - howpublished "howpublished" bibinfo.check output - format.date output - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry - empty.misc.check -} - -FUNCTION {softmisc} -{ output.bibitem - format.authors output - title howpublished new.block.checkb - format.title output - format.version output - howpublished new.block.checka - howpublished "howpublished" bibinfo.check output - format.date output - new.block - format.url output - new.block - format.note output - %%format.eprint output - format.softmisc.eprint output - fin.entry - empty.misc.check -} - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check - new.block - format.btitle - "title" output.check - new.block - bbl.phdthesis format.thesis.type output.nonnull - school "school" bibinfo.warn output - address "address" bibinfo.check output - format.date "year" output.check - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry -} - -FUNCTION {proceedings} -{ output.bibitem - editor empty$ - { organization "organization" bibinfo.check output - } - { format.editors output.nonnull } - if$ - new.block - format.btitle "title" output.check - format.bvolume output - format.number.series output - editor empty$ - { publisher empty$ - 'skip$ - { - new.sentence - format.publisher.address output - } - if$ - } - { publisher empty$ - { - new.sentence - format.organization.address output } - { - new.sentence - organization "organization" bibinfo.check output - format.publisher.address output - } - if$ - } - if$ - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry -} - -FUNCTION {techreport} -{ output.bibitem - format.authors "author" output.check - new.block - format.title - "title" output.check - new.block - format.tr.number output.nonnull - institution "institution" bibinfo.warn output - address "address" bibinfo.check output - format.date "year" output.check - new.block - format.url output - new.block - format.note output - format.eprint output - fin.entry -} - -FUNCTION {unpublished} -{ output.bibitem - format.authors "author" output.check - new.block - format.title "title" output.check - format.date output - new.block - format.url output - new.block - format.note "note" output.check - format.eprint output - fin.entry -} - -FUNCTION {default.type} { misc } -READ -STRINGS { longest.label } -INTEGERS { number.label longest.label.width } -FUNCTION {initialize.longest.label} -{ "" 'longest.label := - #1 'number.label := - #0 'longest.label.width := -} -FUNCTION {longest.label.pass} -{ number.label int.to.str$ 'label := - number.label #1 + 'number.label := - label width$ longest.label.width > - { label 'longest.label := - label width$ 'longest.label.width := - } - 'skip$ - if$ -} -EXECUTE {initialize.longest.label} -ITERATE {longest.label.pass} -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - "\begin{thebibliography}{" longest.label * "}" * - write$ newline$ - "\expandafter\ifx\csname url\endcsname\relax" - write$ newline$ - %%" \def\url#1{\texttt{#1}}\fi" - " \def\url#1{\burl{#1}}\fi" - write$ newline$ - "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi" - write$ newline$ - "\providecommand{\bibinfo}[2]{#2}" - write$ newline$ - "\providecommand{\eprint}[2][]{\url{#2}}" - write$ newline$ - "\providecommand{\doi}[1]{\url{https://doi.org/#1}}" - write$ newline$ - "\bibcommenthead" write$ newline$ -} -EXECUTE {begin.bib} -EXECUTE {init.state.consts} -ITERATE {call.type$} -FUNCTION {end.bib} -{ newline$ - "\end{thebibliography}" write$ newline$ -} -EXECUTE {end.bib} -%% End of customized bst file -%% -%% End of file `nature.bst'. \ No newline at end of file diff --git a/_extensions/christopherkenny/nature/sn-vancouver.bst b/_extensions/christopherkenny/nature/sn-vancouver.bst deleted file mode 100644 index 5af9052..0000000 --- a/_extensions/christopherkenny/nature/sn-vancouver.bst +++ /dev/null @@ -1,2033 +0,0 @@ -%% -%% This `vancouver.bst' bibliographic style file (for LaTeX/BibTeX) is -%% generated with the docstrip utility and modified manually to meet the -%% ``Uniform Requirements for Manuscripts Submitted to Biomedical Journals'' -%% as published in N Engl J Med 1997;336:309-315. -%% (also known as the Vancouver style) -%% This specification may be found on the web page of the -%% International Committe of Medical Journal Editors: -%% -%% http://www.icmje.org -%% -%%------------------------------------------------------------------- -%% -%% Copyright 2004 Folkert van der Beek -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3 or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This work has the LPPL maintenance status `maintained'. -%% -%% The Current Maintainer of this work is Folkert van der Beek. -%% -%% Complaints, suggestions and comments may be sent to -%% -%% Folkert van der Beek -%% -%%------------------------------------------------------------------- -%% -%% This bibliography style file is intended for texts in ENGLISH -%% This is a numerical citation style, and as such is standard LaTeX. -%% It requires no extra package to interface to the main text. -%% The form of the \bibitem entries is -%% \bibitem{key}... -%% Usage of \cite is as follows: -%% \cite{key} ==>> [#] -%% \cite[chap. 2]{key} ==>> [#, chap. 2] -%% where # is a number determined by the ordering in the reference list. -%% The order in the reference list is that by which the works were originally -%% cited in the text, or that in the database. - % -%% To change the reference numbering system from [1] to 1, -%% put the following code in the preamble: -%% \makeatletter % Reference list option change -%% \renewcommand\@biblabel[1]{#1} % from [1] to 1 -%% \makeatother % -%% -%%--------------------------------------------------------------------- - -%% List of all possible fields -ENTRY - { address - assignee % for patents - author - booktitle % for articles in books - chapter % for incollection, esp. internet documents - cartographer % for maps - day - edition - editor - howpublished - institution % for technical reports - inventor % for patents - journal - key - keywords - month - note - number - organization - pages - part - publisher - school - series - title - type - volume - word - year - eprint % urlbst - doi % urlbst - url % urlbst - lastchecked % urlbst - updated % urlbst - archive - archivePrefix - primaryClass - eid - adsurl - adsnote - version - } - {} - { label } -%% Declaration of integer variables -INTEGERS { output.state before.all mid.sentence after.sentence after.block } -STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl } % urlbst... -INTEGERS { hrefform addeprints adddoiresolver } -% Following constants may be adjusted by hand, if desired -FUNCTION {init.config.constants} -{ - "Available from: " 'urlintro := % prefix before URL - "http://arxiv.org/abs/" 'eprinturl := % prefix to make URL from eprint ref - "arXiv:" 'eprintprefix := % text prefix printed before eprint ref - "http://dx.doi.org/" 'doiurl := % prefix to make URL from DOI - "" 'doiprefix := % text prefix printed before DOI ref - #0 'addeprints := % 0=no eprints; 1=include eprints - #0 'adddoiresolver := % 0=no DOI resolver; 1=include it - #0 'hrefform := % 0=no crossrefs; 1=hypertex xrefs; 2=hyperref refs -} -INTEGERS { - bracket.state - outside.brackets - open.brackets - within.brackets - close.brackets -} -% ...urlbst to here -FUNCTION {init.state.consts} -{ #0 'outside.brackets := % urlbst - #1 'open.brackets := - #2 'within.brackets := - #3 'close.brackets := - - #0 'before.all := - #1 'mid.sentence := - #2 'after.sentence := - #3 'after.block := -} -%% Declaration of string variables -STRINGS { s t} - -% urlbst -FUNCTION {output.nonnull.original} -{ 's := - output.state mid.sentence = - { ". " * write$ } - { output.state after.block = - { add.period$ write$ - newline$ - "\newblock " write$ - } - { output.state before.all = - 'write$ - { add.period$ " " * write$ } - if$ - } - if$ - mid.sentence 'output.state := - } - if$ - s -} - -% urlbst... -FUNCTION {output.nonnull} -{ % Save the thing we've been asked to output - 's := - % If the bracket-state is close.brackets, then add a close-bracket to - % what is currently at the top of the stack, and set bracket.state - % to outside.brackets - bracket.state close.brackets = - { "]" * - outside.brackets 'bracket.state := - } - 'skip$ - if$ - bracket.state outside.brackets = - { % We're outside all brackets -- this is the normal situation. - % Write out what's currently at the top of the stack, using the - % original output.nonnull function. - s - output.nonnull.original - } - { % Still in brackets. Add open-bracket or (continuation) comma, add the - % new text (in s) to the top of the stack, and move to the close-brackets - % state, ready for next time (unless inbrackets resets it). If we come - % into this branch, then output.state is carefully undisturbed. - bracket.state open.brackets = - { " [" * } - { ", " * } % bracket.state will be within.brackets - if$ - s * - close.brackets 'bracket.state := - } - if$ -} - -% Call this function just before adding something which should be presented in -% brackets. bracket.state is handled specially within output.nonnull. -FUNCTION {inbrackets} -{ bracket.state close.brackets = - { within.brackets 'bracket.state := } % reset the state: not open nor closed - { open.brackets 'bracket.state := } - if$ -} - -FUNCTION {format.lastchecked} -{ lastchecked empty$ - { "" } - { updated empty$ - { inbrackets "cited " lastchecked * } - { inbrackets "updated " updated * "; cited " * lastchecked * } - if$ - } - if$ -} -% ...urlbst to here - -FUNCTION {output} -{ duplicate$ empty$ - 'pop$ - 'output.nonnull - if$ -} - -FUNCTION {output.check} -{ 't := - duplicate$ empty$ - { pop$ "empty " t * " in " * cite$ * warning$ } - 'output.nonnull - if$ -} - -FUNCTION {fin.entry} -{ - bracket.state close.brackets = % urlbst - { "]" * } - 'skip$ - if$ - add.period$ - write$ - newline$ -} - -FUNCTION {new.block} -{ output.state before.all = - 'skip$ - { after.block 'output.state := } - if$ -} - -FUNCTION {new.sentence} -{ output.state after.block = - 'skip$ - { output.state before.all = - 'skip$ - { after.sentence 'output.state := } - if$ - } - if$ -} - -FUNCTION {add.blank} -{ " " * before.all 'output.state := -} - -FUNCTION {no.blank.or.punct} -{ "" * before.all 'output.state := -} - -FUNCTION {add.semicolon} -{ - ";" * - no.blank.or.punct -} - - -FUNCTION {misc.add.colon} -{ - ": " * - } - -FUNCTION {misc.add.comma} -{ - ", " * - } - -FUNCTION {date.block} -{ - "." * - no.blank.or.punct -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% LOGICAL `NOT', `AND', AND `OR' % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Logical 'not': -% If the first element on the stack is A then this function -% does the following: -% push { #0 } -% push { #1 } -% So now the first 3 elements of the stack are -% { #1 } { #0 } A -% The first 3 are popped and subjected to 'if': -% If A > 0 then { #0 } is executed, else { #1 } is executed: -% if A > 0 -% then 0 -% else 1 -% So consider integers as logicals, where 1 = true and 0 = false, -% then this does -% (if A then false else true) -% which is a logical 'not'. - -FUNCTION {not} -{ { #0 } - { #1 } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Logical 'and': -% If the first 2 elements on the stack are A B -% then this function does the following: -% push 'skip$ -% push { pop$ #0 } -% So now first 4 elements are -% { pop$ #0 } 'skip$ A B -% The first 3 are popped and subjected to 'if' (B is on top of -% the stack): -% If A > 0 then 'skip$ is executed, else { pop$ #0 } is executed: -% if A > 0 -% then (B stays on top of stack) -% else (B is popped and #0 is pushed) -% So consider integers as logicals, where 1 = true and 0 = false, -% then this does -% (if A then B else false) -% which is a logical 'and'. - -FUNCTION {and} -{ 'skip$ - { pop$ #0 } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Logical 'or': -% If the first 2 elements on the stack are A B -% then this function does the following: -% push { pop$ #1 } -% push 'skip$ -% So now first 4 elements are -% 'skip$ { pop$ #1 } A B -% The first 3 are popped and subjected to 'if' (B is on top of -% the stack): -% If A > 0 then { pop$ #1 } is executed, else 'skip$ is executed: -% if A > 0 -% then (B is popped and #1 is pushed) -% else (B stays on top of stack) -% So consider integers as logicals, where 1 = true and 0 = false, -% then this does -% (if A then true else B) -% which is a logical 'or'. - -FUNCTION {or} -{ { pop$ #1 } - 'skip$ - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% GENERAL PURPOSE FUNCTIONS FOR FORMATTING % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% issues warning if field is empty -% call with -% "field" field warning.if.empty -% Note that the first field must be between quotes -% because it is the fieldname for use in the warning message. -% - -FUNCTION {warning.if.empty} -{ empty$ - { "No " swap$ * " in " * cite$ * warning$ } - { pop$ } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % encloses string in pre- and postfix string - % call with - % prefix postfix S enclose.check - % delivers empty string if S empty - % -FUNCTION {enclose.check} -{ duplicate$ empty$ - { pop$ pop$ pop$ - "" - } - { swap$ * * } - if$ -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% emphasizes top of stack -% call with -% string" emphasize.check -% - -FUNCTION {emphasize.check} -{ "\Bem{" swap$ - "}" swap$ - enclose.check -} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % brackets top of stack - % call with - % "string" bracket.check - % -FUNCTION {bracket.check} -{ "[" swap$ - "]" swap$ - enclose.check -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % - % parenthesizes top of stack - % call with - % "string" parenthesize - % -FUNCTION {parenthesize.check} -{ "(" swap$ - ")" swap$ - enclose.check -} - -STRINGS {z} - -FUNCTION {remove.dots} -{ 'z := % expects string on top of the stack, pops the string and assigns it to variable z - "" % push empty string - { z empty$ not } % returns 0 if variable z is empty - { z #1 #1 substring$ % push the first character of variable z - z #2 global.max$ substring$ 'z := % assigns the 2nd to last character of variable z to variable z - duplicate$ "\" = % pushes 1 if the last character is "\", otherwise 0 - { * % concatenates the last 2 literals - z #1 #1 substring$ % push the first character of variable z - z #2 global.max$ substring$ 'z := % assigns the 2nd to last character of variable z to variable z - * % concatenates the last 2 literals, i.e. every character, even a dot, following a "\" will be printed - } - { duplicate$ "." = % pushes 1 if the last character is ".", otherwise 0 - 'pop$ % pushes the pop$ function - { * } % concatenates the last 2 literals - if$ % pops the last character if it is a dot, otherwise concatenates it with the string on top of the stack - } - if$ - } - while$ -} - -INTEGERS {l} -FUNCTION{string.length} -{ - #1 'l := - { duplicate$ duplicate$ #1 l substring$ = not } - { l #1 + 'l := } - while$ - pop$ l -} - -STRINGS {replace find text} -INTEGERS {find_length} -FUNCTION {find.replace} -{ - 'replace := - 'find := - 'text := - find string.length 'find_length := - "" - { text empty$ not } - { text #1 find_length substring$ find = - { - replace * - text #1 find_length + global.max$ substring$ 'text := - } - { text #1 #1 substring$ * - text #2 global.max$ substring$ 'text := - } - if$ - } - while$ -} - -FUNCTION {new.block.checka} -{ empty$ - 'skip$ - 'new.block - if$ -} - -FUNCTION {new.block.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.block - if$ -} - -FUNCTION {new.sentence.checka} -{ empty$ - 'skip$ - 'new.sentence - if$ -} - -FUNCTION {new.sentence.checkb} -{ empty$ - swap$ empty$ - and - 'skip$ - 'new.sentence - if$ -} - -FUNCTION {field.or.null} -{ duplicate$ empty$ - { pop$ "" } - 'skip$ - if$ -} - -FUNCTION {emphasize} -{ skip$ } - -FUNCTION {tie.or.space.prefix} -{ duplicate$ text.length$ #3 < - { "~" } - { " " } - if$ - swap$ -} - -FUNCTION {capitalize} -{ "u" change.case$ "t" change.case$ } - -FUNCTION {space.word} -{ " " swap$ * " " * } - - % Here are the language-specific definitions for explicit words. - % Each function has a name bbl.xxx where xxx is the English word. - % The language selected here is ENGLISH - -FUNCTION {bbl.and} -{ "and"} - -FUNCTION {bbl.etal} -{ "et~al." } - -FUNCTION {bbl.editors} -{ "editors" } - -FUNCTION {bbl.editor} -{ "editor" } - -FUNCTION {bbl.cartographers} -{ "cartographers" } - -FUNCTION {bbl.cartographer} -{ "cartographer" } - -FUNCTION {bbl.inventors} -{ "inventors" } - -FUNCTION {bbl.inventor} -{ "inventor" } - -FUNCTION {bbl.assignees} -{ "assignees" } - -FUNCTION {bbl.assignee} -{ "assignee" } - -FUNCTION {bbl.edby} -{ "edited by" } - -FUNCTION {bbl.edition} -{ "ed." } - -FUNCTION {bbl.volume} -{ "vol." } - -FUNCTION {bbl.of} -{ "of" } - -FUNCTION {bbl.number} -{ "no." } - -FUNCTION {bbl.nr} -{ "no." } - -FUNCTION {bbl.in} -{ "in" } - -FUNCTION {bbl.pages} -{ "p." } - -FUNCTION {bbl.page} -{ "p." } - -FUNCTION {bbl.chapter} -{ "chap." } - -FUNCTION {bbl.techrep} -{ "Tech. Rep." } - -FUNCTION {bbl.mthesis} -{ "Master's thesis" } - -FUNCTION {bbl.phdthesis} -{ "Ph.D. thesis" } - -FUNCTION {bbl.first} -{ "1st" } - -FUNCTION {bbl.second} -{ "2nd" } - -FUNCTION {bbl.third} -{ "3rd" } - -FUNCTION {bbl.fourth} -{ "4th" } - -FUNCTION {bbl.fifth} -{ "5th" } - -FUNCTION {bbl.st} -{ "st" } - -FUNCTION {bbl.nd} -{ "nd" } - -FUNCTION {bbl.rd} -{ "rd" } - -FUNCTION {bbl.th} -{ "th" } - -MACRO {jan} {"Jan."} - -MACRO {feb} {"Feb."} - -MACRO {mar} {"Mar."} - -MACRO {apr} {"Apr."} - -MACRO {may} {"May"} - -MACRO {jun} {"Jun."} - -MACRO {jul} {"Jul."} - -MACRO {aug} {"Aug."} - -MACRO {sep} {"Sep."} - -MACRO {oct} {"Oct."} - -MACRO {nov} {"Nov."} - -MACRO {dec} {"Dec."} - -FUNCTION {eng.ord} -{ duplicate$ "1" swap$ * - #-2 #1 substring$ "1" = - { bbl.th * } - { duplicate$ #-1 #1 substring$ - duplicate$ "1" = - { pop$ bbl.st * } - { duplicate$ "2" = - { pop$ bbl.nd * } - { "3" = - { bbl.rd * } - { bbl.th * } - if$ - } - if$ - } - if$ - } - if$ -} - -FUNCTION {bibinfo.check} -{ swap$ - duplicate$ missing$ - { - pop$ pop$ - "" - } - { duplicate$ empty$ - { - swap$ pop$ - } - { swap$ - pop$ - } - if$ - } - if$ -} - -FUNCTION {bibinfo.warn} -{ swap$ - duplicate$ missing$ - { - swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ - "" - } - { duplicate$ empty$ - { - swap$ "empty " swap$ * " in " * cite$ * warning$ - } - { swap$ - pop$ - } - if$ - } - if$ -} - -STRINGS { bibinfo} -INTEGERS { nameptr namesleft numnames } - -FUNCTION {format.names} -{ 'bibinfo := - duplicate$ empty$ 'skip$ { - "." ". " find.replace 's := - "" 't := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{vv~}{ll}{ f{}}{ jj}" - format.name$ - remove.dots - bibinfo bibinfo.check - 't := - nameptr #1 > - { - nameptr #6 - #1 + = - numnames #6 - > and - { "others" 't := - #1 'namesleft := } - 'skip$ - if$ - namesleft #1 > - { ", " * t * } - { - "," * - s nameptr "{ll}" format.name$ duplicate$ "others" = - { 't := } - { pop$ } - if$ - t "others" = - { - " " * bbl.etal * - } - { " " * t * } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - } if$ -} - -FUNCTION {format.names.org} -{ 'bibinfo := - duplicate$ empty$ 'skip$ { - 's := - "" 't := - #1 'nameptr := - s num.names$ 'numnames := - numnames 'namesleft := - { namesleft #0 > } - { s nameptr - "{ff~}{vv~}{ll}" - format.name$ - bibinfo bibinfo.check - 't := - nameptr #1 > - { - namesleft #1 > - { "; " * t * } - { - ";" * - s nameptr "{ll}" format.name$ duplicate$ "others" = - { 't := } - { pop$ } - if$ - t "others" = - { - " " * bbl.etal * - } - { " " * t * } - if$ - } - if$ - } - 't - if$ - nameptr #1 + 'nameptr := - namesleft #1 - 'namesleft := - } - while$ - } if$ -} - -FUNCTION {format.names.ed} -{ - format.names -} - -FUNCTION {format.authors} -{ - author "author" format.names - %%"." " " "author" find.replace format.names -} - -FUNCTION {format.organizations} -{ organization "organization" format.names.org -} - -FUNCTION {get.bbl.editor} -{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } - -FUNCTION {get.bbl.cartographer} -{ cartographer num.names$ #1 > 'bbl.cartographers 'bbl.cartographer if$ } - -FUNCTION {get.bbl.inventor} -{ inventor num.names$ #1 > 'bbl.inventors 'bbl.inventor if$ } - -FUNCTION {get.bbl.assignee} -{ assignee num.names$ #1 > 'bbl.assignees 'bbl.assignee if$ } - -FUNCTION {format.editors} -{ editor "editor" format.names duplicate$ empty$ 'skip$ - { - "," * - " " * - get.bbl.editor - * - } - if$ -} - -FUNCTION {format.assignees} -{ assignee "assignee" format.names.org duplicate$ empty$ 'skip$ - { - "," * - " " * - get.bbl.assignee - * - } - if$ -} - -FUNCTION {format.cartographers} -{ cartographer "cartographer" format.names duplicate$ empty$ 'skip$ - { - "," * - " " * - get.bbl.cartographer - * - } - if$ -} - -FUNCTION {format.inventors} -{ inventor "inventor" format.names duplicate$ empty$ 'skip$ - { - "," * - " " * - get.bbl.inventor - * - } - if$ -} - -FUNCTION {format.note} -{ - note empty$ - { "" } - { note #1 #1 substring$ - duplicate$ "{" = - 'skip$ - { output.state mid.sentence = - { "l" } - { "u" } - if$ - change.case$ - } - if$ - note #2 global.max$ substring$ * "note" bibinfo.check - } - if$ -} - -FUNCTION {format.title} -{ title -%%duplicate$ empty$ 'skip$ -%% { "t" change.case$ } -%%if$ - "title" bibinfo.check -} - -FUNCTION {format.type} -{ type empty$ - 'skip$ - { inbrackets type } - %%{ add.blank "[" type * "]" * } - if$ -} - -FUNCTION {cite.author.editor} -{ 's := - s #1 "{vv~}{ll}" format.name$ - s num.names$ duplicate$ - #2 > - { pop$ " et~al." * } - { #2 = - { s #2 "{vv~}{ll}{ jj}{ f}" format.name$ "others" = - { " et~al." * } - { " and " * s #2 "{vv~}{ll}" format.name$ * } - if$ - } - 'skip$ - if$ - } - if$ -} - -FUNCTION {check.auth.edit.org} -{author empty$ - { - editor empty$ - { - organization empty$ - {""} - {organization} - if$ - } - {editor cite.author.editor} - if$ - } - {author cite.author.editor} - if$ -} - -FUNCTION {check.year} -{ year empty$ - {""} - {year} - if$ -} - -FUNCTION {output.bibitem} -{ outside.brackets 'bracket.state := % urlbst - newline$ - "\bibitem[\protect\citeauthoryear{" write$ -check.auth.edit.org write$ -"}{" write$ check.year write$ "}]{" write$ cite$ write$ - "}" write$ - newline$ - "" - before.all 'output.state := -} - -FUNCTION {n.dashify} -{ - 't := - "" - { t empty$ not } - { t #1 #1 substring$ "-" = - { t #1 #2 substring$ "--" = not - { "--" * - t #2 global.max$ substring$ 't := - } - { { t #1 #1 substring$ "-" = } - { "-" * - t #2 global.max$ substring$ 't := - } - while$ - } - if$ - } - { t #1 #1 substring$ * - t #2 global.max$ substring$ 't := - } - if$ - } - while$ -} - -FUNCTION {word.in} -{ bbl.in capitalize - ":" * - " " * } - -FUNCTION {format.journal.date} -{ - month "month" bibinfo.check - duplicate$ empty$ - year "year" bibinfo.check duplicate$ empty$ - { - swap$ 'skip$ - { "there's a month but no year in " cite$ * warning$ } - if$ - * - } - { swap$ 'skip$ - { - " " * swap$ - } - if$ - * - remove.dots - } - if$ - duplicate$ empty$ - 'skip$ - { - before.all 'output.state := - after.sentence 'output.state := - } - if$ -} - -FUNCTION {format.date} -{ - no.blank.or.punct - ";" - duplicate$ empty$ - year "year" bibinfo.check duplicate$ empty$ - { swap$ 'skip$ - { "there's a month but no year in " cite$ * warning$ } - if$ - * - } - { swap$ 'skip$ - { - swap$ - " " * swap$ - } - if$ - * - } - if$ -} - -FUNCTION {format.btitle} -{ title "title" bibinfo.check - duplicate$ empty$ 'skip$ - { - } - if$ -} - -FUNCTION {either.or.check} -{ empty$ - 'pop$ - { "can't use both " swap$ * " fields in " * cite$ * warning$ } - if$ -} - -FUNCTION {format.bvolume} -{ volume empty$ - { "" } - { bbl.volume volume tie.or.space.prefix - "volume" bibinfo.check * * - series "series" bibinfo.check - duplicate$ empty$ 'pop$ - { swap$ bbl.of space.word * swap$ - emphasize * } - if$ - "volume and number" number either.or.check - } - if$ -} - -FUNCTION {format.number.series} -{ volume empty$ - { number empty$ - { series field.or.null } - { series empty$ - { number "number" bibinfo.check } - { output.state mid.sentence = - { bbl.number } - { bbl.number capitalize } - if$ - number tie.or.space.prefix "number" bibinfo.check * * - bbl.in space.word * - series "series" bibinfo.check * - } - if$ - } - if$ - } - { "" } - if$ -} - -FUNCTION {is.num} -{ chr.to.int$ - duplicate$ "0" chr.to.int$ < not - swap$ "9" chr.to.int$ > not and -} - -FUNCTION {extract.num} -{ duplicate$ 't := - "" 's := - { t empty$ not } - { t #1 #1 substring$ - t #2 global.max$ substring$ 't := - duplicate$ is.num - { s swap$ * 's := } - { pop$ "" 't := } - if$ - } - while$ - s empty$ - 'skip$ - { pop$ s } - if$ -} - -FUNCTION {convert.edition} -{ extract.num "l" change.case$ 's := - s "first" = s "1" = or - { bbl.first 't := } - { s "second" = s "2" = or - { bbl.second 't := } - { s "third" = s "3" = or - { bbl.third 't := } - { s "fourth" = s "4" = or - { bbl.fourth 't := } - { s "fifth" = s "5" = or - { bbl.fifth 't := } - { s #1 #1 substring$ is.num - { s eng.ord 't := } - { edition 't := } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - t -} - -FUNCTION {format.edition} -{ edition duplicate$ empty$ 'skip$ - { - convert.edition - output.state mid.sentence = - { "l" } - { "t" } - if$ change.case$ - "edition" bibinfo.check - " " * bbl.edition * - } - if$ -} -INTEGERS { multiresult } -FUNCTION {multi.page.check} -{ 't := - #0 'multiresult := - { multiresult not - t empty$ not - and - } - { t #1 #1 substring$ - duplicate$ "-" = - swap$ duplicate$ "," = - swap$ "+" = - or or - { #1 'multiresult := } - { t #2 global.max$ substring$ 't := } - if$ - } - while$ - multiresult -} - -FUNCTION {format.pages} -{ pages duplicate$ empty$ 'skip$ - { duplicate$ multi.page.check - { - bbl.pages swap$ - n.dashify - } - { - bbl.page swap$ - } - if$ - tie.or.space.prefix - "pages" bibinfo.check - * * - } - if$ -} - -FUNCTION {format.journal.pages} -{ pages duplicate$ empty$ 'pop$ - { swap$ duplicate$ empty$ - { pop$ pop$ format.pages } - { - ":" * - swap$ - n.dashify - "pages" bibinfo.check - * - } - if$ - } - if$ -} - -FUNCTION {format.vol.num} -{ volume field.or.null - duplicate$ empty$ 'skip$ - { - "volume" bibinfo.check - } - if$ - number "number" bibinfo.check duplicate$ empty$ 'skip$ - { - swap$ duplicate$ empty$ - { "there's a number but no volume in " cite$ * warning$ } - 'skip$ - if$ - swap$ - "(" swap$ * ")" * - } - if$ * -} - -FUNCTION {format.vol.num.pages} -{ volume field.or.null - duplicate$ empty$ 'skip$ - { - "volume" bibinfo.check - } - if$ - number "number" bibinfo.check duplicate$ empty$ 'skip$ - { - swap$ duplicate$ empty$ - { "there's a number but no volume in " cite$ * warning$ } - 'skip$ - if$ - swap$ - "(" swap$ * ")" * - } - if$ * - format.journal.pages -} - -FUNCTION {format.chapter.pages} -{ chapter empty$ - 'format.pages - { type empty$ - { bbl.chapter } - { type "l" change.case$ - "type" bibinfo.check - } - if$ - chapter tie.or.space.prefix - "chapter" bibinfo.check - * * - pages empty$ - 'skip$ - { ", " * format.pages * } - if$ - } - if$ - } - - FUNCTION {format.booktitle} - { - booktitle "booktitle" bibinfo.check - } - - FUNCTION {format.in.ed.booktitle} - { format.booktitle duplicate$ empty$ 'skip$ - { - editor "editor" format.names.ed duplicate$ empty$ 'pop$ - { - "," * - " " * - get.bbl.editor - ". " * - * swap$ - * } - if$ - word.in swap$ * - } - if$ - } - - FUNCTION {format.in.ed.title} - { format.title duplicate$ empty$ 'skip$ - { - editor "editor" format.names.ed duplicate$ empty$ 'pop$ - { - "," * - " " * - get.bbl.editor - ". " * - * swap$ - * } - if$ - word.in swap$ * - } - if$ - } - - FUNCTION {empty.misc.check} - { author empty$ title empty$ howpublished empty$ - month empty$ year empty$ note empty$ - and and and and and - { "all relevant fields are empty in " cite$ * warning$ } - 'skip$ - if$ - } - FUNCTION {format.thesis.type} - { type duplicate$ empty$ - 'pop$ - { swap$ pop$ - "t" change.case$ "type" bibinfo.check - } - if$ -} -FUNCTION {format.tr.number} -{ - number "number" bibinfo.check - %%type duplicate$ empty$ - %%{ pop$ bbl.techrep } - %%'skip$ - %%if$ - %%"type" bibinfo.check - %%swap$ duplicate$ empty$ - %%{ pop$ "t" change.case$ } - %%{ tie.or.space.prefix * * } - %%if$ -} - -FUNCTION {format.org.or.pub} -{ 't := - "" - address empty$ t empty$ and - 'skip$ - { - address "address" bibinfo.check * - t empty$ - 'skip$ - { address empty$ - 'skip$ - { ": " * } - if$ - t * - } - if$ - } - if$ -} - -FUNCTION {format.publisher.address} -{ publisher "publisher" bibinfo.warn format.org.or.pub -} - -FUNCTION {format.organization.address} -{ organization "organization" bibinfo.check format.org.or.pub -} - -FUNCTION {format.institution.address} -{ institution "institution" bibinfo.check format.org.or.pub -} - - -% urlbst... -% Functions for making hypertext links. -% In all cases, the stack has (link-text href-url) -% -% make 'null' specials -FUNCTION {make.href.null} -{ - pop$ -} -% make hypertex specials -FUNCTION {make.href.hypertex} -{ - "\special {html: }" * swap$ * - "\special {html:}" * -} -% make hyperref specials -FUNCTION {make.href.hyperref} -{ - "\href {" swap$ * "} {" * swap$ * "}" * -} -FUNCTION {make.href} -{ hrefform #2 = - 'make.href.hyperref % hrefform = 2 - { hrefform #1 = - 'make.href.hypertex % hrefform = 1 - 'make.href.null % hrefform = 0 (or anything else) - if$ - } - if$ -} - -FUNCTION {format.url} -{ url empty$ - { "" } - { hrefform #1 = - { % special case -- add HyperTeX specials - urlintro "\url{" url * "}" * url make.href.hypertex * } - { urlintro "\url{" * url * "}" * } - if$ - } - if$ -} - -FUNCTION {format.eprint} -{ eprint empty$ - { "" } - { eprintprefix eprint * eprinturl eprint * make.href } - if$ -} - -FUNCTION {format.doi} -{ doi empty$ - { "" } - { doiprefix doi * doiurl doi * make.href } - if$ -} - -FUNCTION {format.ddoi} -{ doi "doi" bibinfo.check - duplicate$ empty$ 'skip$ - { - "\doi{" swap$ * "}" * - } - if$ -} - -% Output a URL. We can't use the more normal idiom (something like -% `format.url output'), because the `inbrackets' within -% format.lastchecked applies to everything between calls to `output', -% so that `format.url format.lastchecked * output' ends up with both -% the URL and the lastchecked in brackets. -FUNCTION {output.url} -{ url empty$ - 'skip$ - { new.block - format.url output - format.lastchecked output - } - if$ -} - -FUNCTION {output.web.refs} -{ - new.block - output.url - addeprints eprint empty$ not and - { format.eprint output.nonnull } - 'skip$ - if$ - adddoiresolver doi empty$ not and - { format.doi output.nonnull } - 'skip$ - if$ -% addeprints -% { eprint empty$ -% 'skip$ -% { format.eprint output.nonnull } -% if$ -% } -% 'skip$ -% if$ -} - -% Webpage entry type. -% Title and url fields required; -% author, note, year, month, and lastchecked fields optional -STRINGS {database} -FUNCTION {webpage} -{ output.bibitem - author empty$ - { editor empty$ - 'skip$ % author and editor both optional - { format.editors output.nonnull } - if$ - } - { editor empty$ - { format.authors output.nonnull } - { "can't use both author and editor fields in " cite$ * warning$ } - if$ - } - if$ -% author empty$ -% 'skip$ -% { format.authors output.nonnull } -% if$ - new.block - format.title "title" output.check - journal empty$ - { - format.type "type" output.check - publisher empty$ - 'skip$ - { format.publisher.address output } - if$ - "database on the Internet" 'database := - type database = - { format.journal.date "year" output.check } - { format.date "year" output.check } - if$ - lastchecked empty$ - 'skip$ - { format.lastchecked output } - if$ - new.block - part empty$ - 'skip$ - { part output } - if$ - pages empty$ - 'skip$ - { pages bracket.check output } - if$ - } - { journal - remove.dots - "journal" bibinfo.check - "journal" output.check - format.type "type" output.check - format.journal.date "year" output.check - lastchecked empty$ - 'skip$ - { format.lastchecked output - ";" no.blank.or.punct output - } - if$ - no.blank.or.punct format.vol.num output - pages empty$ - 'skip$ - { ":" no.blank.or.punct output - no.blank.or.punct pages bracket.check output - } - if$ - new.block - } - if$ - format.url "url" output.check - new.block - note output - fin.entry -} -% ...urlbst to here - -FUNCTION {misc} -{ output.bibitem - format.authors "author" output.check - format.editors "author and editor" output.check - no.blank.or.punct - add.period$ misc.add.colon -format.title "title" output.check - type missing$ - { skip$ } - { format.type "type" output.check } - %%{ inbrackets type output } - if$ - new.block - format.publisher.address output -% format.date "year" output.check - new.block - format.note output - new.block - howpublished new.block.checka - howpublished "howpublished" bibinfo.check output - output.web.refs % urlbst - fin.entry - empty.misc.check -} - -FUNCTION {format.archive} -{ - archivePrefix empty$ - { "" } - { archivePrefix ":" *} - if$ -} - -FUNCTION {format.primaryClass} -{ - primaryClass empty$ - { "" } - { "{[" primaryClass * "]}" *} - if$ -} - -FUNCTION {format.soft.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://arxiv.org/abs/" eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {format.softmisc.archive} -{ - archivePrefix empty$ - { "" } - { "" } - if$ -} - -FUNCTION {format.softmisc.eprint} -{ eprint empty$ - { ""} - { archive empty$ - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - {"{\href{https://ascl.net/" format.softmisc.archive * eprint * "}" * - "{{" * format.archive * eprint * "}}}" *} - if$ - } - if$ -} - -FUNCTION {article} -{ output.bibitem - format.authors "author" output.check - organization empty$ - 'skip$ - { author empty$ - { - format.organizations "organization" output.check - } - { - "; " * - no.blank.or.punct - format.organizations "organization" output.check - } - if$ - } - if$ - new.block - format.title "title" output.check - type missing$ - { skip$ } - { format.type "type" output.check } - if$ - new.block - journal - remove.dots - "journal" bibinfo.check - "journal" output.check - format.journal.date "year" output.check - add.semicolon - format.vol.num.pages output - new.block - format.note output - format.ddoi output - new.block - format.soft.eprint output - format.primaryClass output - fin.entry -} - -FUNCTION {softmisc} -{ output.bibitem - format.authors "author" output.check - format.editors "author and editor" output.check - no.blank.or.punct - add.period$ misc.add.colon - format.title "title" output.check misc.add.comma - no.blank.or.punct - version output - type missing$ - { skip$ } - { format.type "type" output.check } - %%{ inbrackets type output } - if$ - new.block - format.publisher.address output -% format.date "year" output.check - new.block - format.note output - new.block - howpublished new.block.checka - howpublished "howpublished" bibinfo.check output - format.date "year" output.check - output.web.refs % urlbst - new.block - format.softmisc.eprint output - fin.entry - empty.misc.check -} - -FUNCTION {book} -{ output.bibitem - author empty$ - { editor empty$ - { format.organizations "organization" output.check } - { format.editors "author and editor" output.check } - if$ - } - { format.authors output.nonnull - "author and editor" editor either.or.check - } - if$ - new.block - format.btitle "title" output.check - format.bvolume output - new.block - format.edition output - new.sentence - author empty$ not - editor empty$ not - and - { format.editors "author and editor" output.check } - 'skip$ - if$ - format.number.series output - format.publisher.address output - format.date "year" output.check - new.block - format.note output - output.web.refs % urlbst - fin.entry -} - -FUNCTION {booklet} -{ misc } - -FUNCTION {dictionary} -{ output.bibitem - format.booktitle "booktitle" output.check - format.bvolume output - new.block - format.edition output - new.sentence - format.publisher.address output - format.date "year" output.check - format.btitle "title" output.check - add.semicolon - add.blank - format.pages "pages" output.check - new.block - format.note output - output.web.refs % urlbst - fin.entry -} - -FUNCTION {inbook} -{ output.bibitem - format.authors "author" output.check - new.block - chapter "chapter" output.check - new.block - format.in.ed.title "title" output.check - format.bvolume output - format.edition output - new.sentence - format.number.series output - format.publisher.address output - format.date "year" output.check - date.block - add.blank - format.pages "pages" output.check - new.block - format.note output - output.web.refs % urlbst - fin.entry -} - -FUNCTION {incollection} -{ output.bibitem - format.authors "author" output.check - new.block - format.title "title" output.check - new.block - format.in.ed.booktitle "booktitle" output.check - format.bvolume output - format.edition output - new.sentence - format.number.series output - format.publisher.address output - format.date "year" output.check - date.block - add.blank - format.pages "pages" output.check - new.block - format.note output - output.web.refs % urlbst - fin.entry -} - -FUNCTION {inproceedings} -{ output.bibitem - format.authors "author" output.check - new.block - format.title "title" output.check - new.block - format.in.ed.booktitle "booktitle" output.check - format.bvolume output - new.sentence - format.number.series output - publisher empty$ - { format.organization.address output } - { organization "organization" bibinfo.check output - format.publisher.address output - } - if$ - format.date "year" output.check - date.block - add.blank - format.pages "pages" output.check - new.block - format.note output - output.web.refs % urlbst - fin.entry -} - -FUNCTION {conference} -{inproceedings} - -FUNCTION {manual} -{misc} - -FUNCTION {phdthesis} -{ output.bibitem - format.authors "author" output.check - new.block - format.btitle - "title" output.check - format.type "type" output.check - new.block - school "school" bibinfo.warn output - address "address" bibinfo.check output - format.date "year" output.check - new.block - format.note output - output.web.refs % urlbst - fin.entry -} - -FUNCTION {mastersthesis} -{phdthesis} - -FUNCTION {proceedings} -{ output.bibitem - editor empty$ - { organization "organization" bibinfo.check output - } - { format.editors output.nonnull } - if$ - new.block - format.btitle "title" output.check - format.bvolume output - editor empty$ - { publisher empty$ - 'skip$ - { - new.sentence - format.number.series output - format.publisher.address output - } - if$ - } - { publisher empty$ - { - new.sentence - format.organization.address output } - { - new.sentence - organization "organization" bibinfo.check output - format.publisher.address output - } - if$ - } - if$ - format.date "year" output.check - new.block - format.note output - output.web.refs % urlbst - fin.entry -} - -FUNCTION {techreport} -{ output.bibitem - format.authors "author" output.check - new.block - format.title - "title" output.check - new.block - format.institution.address output - format.date "year" output.check - format.tr.number output.nonnull - new.block - format.note output - output.web.refs % urlbst - fin.entry -} - -FUNCTION {map} -{ output.bibitem - format.cartographers "cartographer" output.check - new.block - format.title - "title" output.check - format.type "type" output.check - new.block - format.publisher.address output - format.date "year" output.check - new.block - format.note output - output.web.refs % urlbst - fin.entry -} - -FUNCTION {patent} -{ output.bibitem - format.inventors "inventor" output.check - "; " * - no.blank.or.punct - format.assignees "assignee" output.check - new.block - format.title - "title" output.check - new.block - format.tr.number output.nonnull - format.date "year" output.check - new.block - format.note output - output.web.refs % urlbst - fin.entry -} - -FUNCTION {unpublished} -{ output.bibitem - format.authors "author" output.check - new.block - format.title "title" output.check - format.date output - new.block - format.note "note" output.check - output.web.refs % urlbst - fin.entry -} - -FUNCTION {default.type} { misc } -READ -STRINGS { longest.label } -INTEGERS { number.label longest.label.width } -FUNCTION {initialize.longest.label} -{ "" 'longest.label := - #1 'number.label := - #0 'longest.label.width := -} -FUNCTION {longest.label.pass} -{ number.label int.to.str$ 'label := - number.label #1 + 'number.label := - label width$ longest.label.width > - { label 'longest.label := - label width$ 'longest.label.width := - } - 'skip$ - if$ -} -EXECUTE {initialize.longest.label} -ITERATE {longest.label.pass} -FUNCTION {begin.bib} -{ preamble$ empty$ - 'skip$ - { preamble$ write$ newline$ } - if$ - "\begin{thebibliography}{" longest.label * "}" * - write$ newline$ - "\providecommand{\doi}[1]{\url{https://doi.org/#1}}" - write$ newline$ - "\bibcommenthead" write$ newline$ -} -EXECUTE {begin.bib} -EXECUTE {init.config.constants} -EXECUTE {init.state.consts} -ITERATE {call.type$} -FUNCTION {end.bib} -{ newline$ - "\end{thebibliography}" write$ newline$ -} -EXECUTE {end.bib} -%% End of customized bst file -%% -%% End of file `vancouver.bst'. - diff --git a/_extensions/d2/_extension.yml b/_extensions/d2/_extension.yml old mode 100644 new mode 100755 diff --git a/_extensions/d2/d2.lua b/_extensions/d2/d2.lua old mode 100644 new mode 100755 diff --git a/_extensions/inst/css/style.css b/_extensions/inst/css/style.css old mode 100644 new mode 100755 diff --git a/_extensions/inst/img/rceeslogo.png b/_extensions/inst/img/rceeslogo.png old mode 100644 new mode 100755 diff --git a/_extensions/inst/img/rceeslonglogo.png b/_extensions/inst/img/rceeslonglogo.png old mode 100644 new mode 100755 diff --git a/_extensions/inst/img/signms.png b/_extensions/inst/img/signms.png old mode 100644 new mode 100755 diff --git a/_extensions/inst/img/signmy.png b/_extensions/inst/img/signmy.png old mode 100644 new mode 100755 diff --git a/_extensions/inst/tex/american-chemical-society.csl b/_extensions/inst/tex/american-chemical-society.csl old mode 100644 new mode 100755 diff --git a/_extensions/inst/tex/china-national-standard-gb-t-7714-2015-numeric.csl b/_extensions/inst/tex/china-national-standard-gb-t-7714-2015-numeric.csl old mode 100644 new mode 100755 diff --git a/_extensions/inst/tex/cv.tex b/_extensions/inst/tex/cv.tex old mode 100644 new mode 100755 diff --git a/_extensions/inst/tex/els.tex b/_extensions/inst/tex/els.tex old mode 100644 new mode 100755 diff --git a/_extensions/inst/tex/elsevier-harvard.csl b/_extensions/inst/tex/elsevier-harvard.csl old mode 100644 new mode 100755 diff --git a/_extensions/inst/tex/supp.cls b/_extensions/inst/tex/supp.cls old mode 100644 new mode 100755 diff --git a/_extensions/inst/tex/supp.tex b/_extensions/inst/tex/supp.tex old mode 100644 new mode 100755 diff --git a/_extensions/inst/tex/the-isme-j.csl b/_extensions/inst/tex/the-isme-j.csl old mode 100644 new mode 100755 diff --git a/_extensions/inst/word/MS.docx b/_extensions/inst/word/MS.docx old mode 100644 new mode 100755 diff --git a/_extensions/inst/word/RN.docx b/_extensions/inst/word/RN.docx old mode 100644 new mode 100755 diff --git a/_extensions/inst/word/cv.docx b/_extensions/inst/word/cv.docx old mode 100644 new mode 100755 diff --git a/_extensions/inst/word/manu.docx b/_extensions/inst/word/manu.docx old mode 100644 new mode 100755 diff --git a/_extensions/inst/word/repcn.docx b/_extensions/inst/word/repcn.docx old mode 100644 new mode 100755 diff --git a/_extensions/kazuyanagimoto/academic/_extension.yml b/_extensions/kazuyanagimoto/academic/_extension.yml deleted file mode 100644 index e9c72c5..0000000 --- a/_extensions/kazuyanagimoto/academic/_extension.yml +++ /dev/null @@ -1,12 +0,0 @@ -title: Quarto Academic Typst -author: Kazuharu Yanagimoto -version: 0.1.0 -quarto-required: ">=1.4.0" -contributes: - formats: - typst: - shortcodes: - - shortcodes.lua - template-partials: - - typst-template.typ - - typst-show.typ diff --git a/_extensions/kazuyanagimoto/academic/shortcodes.lua b/_extensions/kazuyanagimoto/academic/shortcodes.lua deleted file mode 100644 index 5c596cf..0000000 --- a/_extensions/kazuyanagimoto/academic/shortcodes.lua +++ /dev/null @@ -1,3 +0,0 @@ -function appendix() - return pandoc.RawBlock('typst', '#show: appendix') -end \ No newline at end of file diff --git a/_extensions/kazuyanagimoto/academic/typst-show.typ b/_extensions/kazuyanagimoto/academic/typst-show.typ deleted file mode 100644 index 5db58ff..0000000 --- a/_extensions/kazuyanagimoto/academic/typst-show.typ +++ /dev/null @@ -1,88 +0,0 @@ -#show: doc => article( -$if(title)$ - title: [$title$], -$endif$ -$if(subtitle)$ - subtitle: [$subtitle$], -$endif$ -$if(header)$ - header: [$header$], -$endif$ -$if(code-repo)$ - code-repo: [$code-repo$], -$endif$ -$if(by-author)$ - authors: ( -$for(by-author)$ -$if(it.name.literal)$ - ( name: [$it.name.literal$], - affiliation: [$for(it.affiliations)$$it.name$$sep$, $endfor$], - email: [$it.email$], - orcid: [$it.orcid$] - ), -$endif$ -$endfor$ - ), -$endif$ -$if(date)$ - date: [$date$], -$endif$ -$if(lang)$ - lang: "$lang$", -$endif$ -$if(region)$ - region: "$region$", -$endif$ -$if(abstract)$ - abstract: [$abstract$], -$endif$ -$if(keywords)$ - keywords: [$for(keywords)$$keywords$$sep$, $endfor$], -$endif$ -$if(custom-keywords)$ - custom-keywords: ( - $for(custom-keywords)$ - ( name: [$it.name$], - values: [$for(it.values)$$it$$sep$, $endfor$] - ), - $endfor$ - ), -$endif$ -$if(thanks)$ - thanks: [$thanks$], -$endif$ -$if(margin)$ - margin: ($for(margin/pairs)$$margin.key$: $margin.value$,$endfor$), -$endif$ -$if(papersize)$ - paper: "$papersize$", -$endif$ -$if(mainfont)$ - font: ("$mainfont$",), -$endif$ -$if(mainfontoptions)$ - $if(mainfontoptions.number-type)$ - number-type: "$mainfontoptions.number-type$", - $endif$ - $if(mainfontoptions.number-width)$ - number-width: "$mainfontoptions.number-width$", - $endif$ -$endif$ -$if(sansfont)$ - sansfont: ("$sansfont$",), -$endif$ -$if(mathfont)$ - mathfont: ("$mathfont$",), -$endif$ -$if(fontsize)$ - fontsize: $fontsize$, -$endif$ -$if(section-numbering)$ - sectionnumbering: "$section-numbering$", -$endif$ -$if(toc)$ - toc: $toc$, -$endif$ - cols: $if(columns)$$columns$$else$1$endif$, - doc, -) \ No newline at end of file diff --git a/_extensions/kazuyanagimoto/academic/typst-template.typ b/_extensions/kazuyanagimoto/academic/typst-template.typ deleted file mode 100644 index 73c72a7..0000000 --- a/_extensions/kazuyanagimoto/academic/typst-template.typ +++ /dev/null @@ -1,197 +0,0 @@ -#import "@preview/fontawesome:0.3.0": * - -#let color-link = rgb("#483d8b") - -#let article( - title: none, - subtitle: none, - header: none, - code-repo: none, - authors: none, - date: none, - abstract: none, - keywords: none, - custom-keywords: none, - thanks: none, - cols: 1, - margin: (x: 1.25in, y: 1.25in), - paper: "us-letter", - lang: "en", - region: "US", - font: (), - sansfont: (), - mathfont: (), - number-type: auto, - number-width: auto, - fontsize: 11pt, - sectionnumbering: none, - toc: false, - doc, -) = { - set page( - paper: paper, - margin: margin, - numbering: "1", - ) - set par(justify: true) - set text(lang: lang, - region: region, - font: font, - size: fontsize, - number-type: number-type, - number-width: number-width,) - show math.equation: set text(font: mathfont) - set heading(numbering: sectionnumbering) - - show heading: set text(font: sansfont, weight: "semibold") - - show figure.caption: it => [ - #set text(font: sansfont, size: 0.9em) - #if it.supplement == [Figure] { - set align(left) - text(weight: "semibold")[#it.supplement #it.counter.display(it.numbering): ] - it.body - } else { - text(weight: "semibold")[#it.supplement #it.counter.display(it.numbering): ] - it.body - } - - ] - - show ref: it => { - let eq = math.equation - let el = it.element - if el == none { - it - } else if el.func() == eq { - link(el.location())[ - #numbering(el.numbering, - ..counter(eq).at(el.location()) - ) - ] - - } else if el.func() == figure { - el.supplement.text - link(el.location())[ - #set text(fill: color-link) - #numbering(el.numbering,..el.counter.at(el.location())) - ] - } else { - it - } - } - - show link: set text(fill: color-link) - set bibliography(title: "References") - - if date != none { - align(left)[#block()[ - #text(weight: "semibold", font: sansfont, size: 0.8em)[ - #date - #if header != none { - h(3em) - text(weight: "regular")[#header] - } - ] - ]] - } - - if code-repo != none { - align(left)[#block()[ - #text(weight: "regular", font: sansfont, size: 0.8em)[ - #code-repo - ] - ]] - } - - if title != none { - align(left)[#block(spacing: 4em)[ - #text(weight: "semibold", size: 1.5em, font: sansfont)[ - #title - #if thanks != none { - footnote(numbering: "*", thanks) - }\ - #if subtitle != none { - text(weight: "regular", style: "italic", size: 0.8em)[#subtitle] - } - ] - ]] - } - - if authors != none { - let count = authors.len() - let ncols = calc.min(count, 3) - grid( - columns: (1fr,) * ncols, - row-gutter: 1.5em, - ..authors.map(author => - align(left)[ - #text(size: 1.2em, font: sansfont)[#author.name] - #if author.orcid != [] { - link("https://orcid.org/" + author.orcid.text)[ - #set text(size: 0.85em, fill: rgb("a6ce39")) - #fa-orcid() - ] - } \ - #text(size: 0.85em, font: sansfont)[#author.affiliation] \ - #text(size: 0.7em, font: sansfont, fill: color-link)[ - #link("mailto:" + author.email.children.map(email => email.text).join())[#author.email] - ] - ] - ) - ) - } - - if abstract != none { - block(inset: 2em)[ - #text(weight: "semibold", font: sansfont, size: 0.9em)[ABSTRACT] #h(0.5em) - #text(font: sansfont)[#abstract] - #if keywords != none { - text(weight: "semibold", font: sansfont, size: 0.9em)[\ Keywords:] - h(0.5em) - text(font: sansfont)[#keywords] - } - #if custom-keywords != none { - for it in custom-keywords { - text(weight: "semibold", font: sansfont, size: 0.9em)[\ #it.name:] - h(0.5em) - text(font: sansfont)[#it.values] - } - } - ] - } - - if toc { - block(above: 0em, below: 2em)[ - #outline( - title: auto, - depth: none - ); - ] - } - - if cols == 1 { - doc - } else { - columns(cols, doc) - } - -} - -#let appendix(content) = { - // Reset Numbering - set heading(numbering: "A.1.1") - counter(heading).update(0) - counter(figure.where(kind: "quarto-float-fig")).update(0) - counter(figure.where(kind: "quarto-float-tbl")).update(0) - - // Figure & Table Numbering - set figure(numbering: it => { - [A.#it] - }) - - // Appendix Start - pagebreak(weak: true) - text(size: 2em)[Appendix] - content -} \ No newline at end of file diff --git a/_extensions/quarto-journals/acs/_affiliation.tex b/_extensions/quarto-journals/acs/_affiliation.tex deleted file mode 100644 index 5bd4ff4..0000000 --- a/_extensions/quarto-journals/acs/_affiliation.tex +++ /dev/null @@ -1 +0,0 @@ -$if(it.department)$$it.department$,$endif$ $if(it.name)$$it.name$,$endif$ $if(it.city)$$it.city$,$endif$ $if(it.country)$$it.country$$endif$ \ No newline at end of file diff --git a/_extensions/quarto-journals/acs/_extension.yml b/_extensions/quarto-journals/acs/_extension.yml deleted file mode 100644 index af9fa58..0000000 --- a/_extensions/quarto-journals/acs/_extension.yml +++ /dev/null @@ -1,30 +0,0 @@ -title: ACS Journal Format -author: Charles Teague -version: 0.9.2 -contributes: - formats: - common: - csl: american-chemical-society.csl - shortcodes: - - fancy-text - filters: - - latex-environment - environments: - - scheme - - chart - - graph - - tocentry - - acknowledgement - - suppinfo - commands: - - ce - html: default - pdf: - cite-method: natbib - biblio-config: false - format-resources: - - achemso.bst - template-partials: - - "doc-class.tex" - - "title.tex" - - "_affiliation.tex" diff --git a/_extensions/quarto-journals/acs/_extensions/quarto-ext/fancy-text/_extension.yml b/_extensions/quarto-journals/acs/_extensions/quarto-ext/fancy-text/_extension.yml deleted file mode 100644 index 813e238..0000000 --- a/_extensions/quarto-journals/acs/_extensions/quarto-ext/fancy-text/_extension.yml +++ /dev/null @@ -1,7 +0,0 @@ -title: Fancy Text -author: Posit Software, PBC -version: 1.1.1 -quarto-required: ">=1.2.198" -contributes: - shortcodes: - - fancy-text.lua diff --git a/_extensions/quarto-journals/acs/_extensions/quarto-ext/fancy-text/fancy-text.lua b/_extensions/quarto-journals/acs/_extensions/quarto-ext/fancy-text/fancy-text.lua deleted file mode 100644 index 0eec7d2..0000000 --- a/_extensions/quarto-journals/acs/_extensions/quarto-ext/fancy-text/fancy-text.lua +++ /dev/null @@ -1,78 +0,0 @@ --- shortcode that provides a nicely formatted 'LaTeX' string -function latex() - if quarto.doc.is_format("pdf") then - return pandoc.RawBlock('tex', '{\\LaTeX}') - elseif quarto.doc.is_format("html") then - return pandoc.Math('InlineMath', "\\LaTeX") - else - return pandoc.Span('LaTeX') - end -end - -function tex() - if quarto.doc.is_format("pdf") then - return pandoc.RawBlock('tex', '{\\TeX}') - elseif quarto.doc.is_format("html") then - return pandoc.Math('InlineMath', "\\TeX") - else - return pandoc.Span('TeX') - end -end - --- shortcode that provides a nicely formatted 'bibtex' string -function bibtex() - if quarto.doc.is_format("pdf") then - return pandoc.RawBlock('tex', '\\textsc{Bib}{\\TeX}') - elseif quarto.doc.is_format("html") then - return pandoc.RawBlock('html', 'BibTEX') - else - return pandoc.Span('BibTeX') - end -end - -function ldots() - if quarto.doc.is_format("pdf") then - return pandoc.RawBlock('tex', '\\ldots') - elseif quarto.doc.is_format("html") then - return pandoc.RawBlock('html', '…') - else - return "..." - end -end - -function vdots() - if quarto.doc.is_format("pdf") then - return pandoc.Math('InlineMath', "\\vdots") - elseif quarto.doc.is_format("html") then - return pandoc.RawBlock('html', '⋮') - else - return "..." - end -end - -function ddots() - if quarto.doc.is_format("pdf") then - return pandoc.Math('InlineMath', "\\ddots") - elseif quarto.doc.is_format("html") then - return pandoc.RawBlock('html', '⋱') - else - return "..." - end -end - -function pct() - local pct - if quarto.doc.is_format("pdf") then - return pandoc.Math('InlineMath', '\\%') - else - return pandoc.Str("%") - end -end - -function R2() - if quarto.doc.is_format("pdf") then - return pandoc.Math('InlineMath', "R^2") - else - return {pandoc.Str("R"), pandoc.Superscript("2")} - end -end \ No newline at end of file diff --git a/_extensions/quarto-journals/acs/_extensions/quarto-ext/latex-environment/_extension.yml b/_extensions/quarto-journals/acs/_extensions/quarto-ext/latex-environment/_extension.yml deleted file mode 100644 index 2f55b2f..0000000 --- a/_extensions/quarto-journals/acs/_extensions/quarto-ext/latex-environment/_extension.yml +++ /dev/null @@ -1,9 +0,0 @@ -title: LaTeX Environment -author: Posit Software, PBC -version: 1.2.1 -quarto-required: ">=1.3" -contributes: - filters: - - latex-environment.lua - format: - pdf: default diff --git a/_extensions/quarto-journals/acs/_extensions/quarto-ext/latex-environment/latex-environment.lua b/_extensions/quarto-journals/acs/_extensions/quarto-ext/latex-environment/latex-environment.lua deleted file mode 100644 index 389a25f..0000000 --- a/_extensions/quarto-journals/acs/_extensions/quarto-ext/latex-environment/latex-environment.lua +++ /dev/null @@ -1,150 +0,0 @@ --- environment.lua --- Copyright (C) 2020 by RStudio, PBC - -local classEnvironments = pandoc.MetaMap({}) -local classCommands = pandoc.MetaMap({}) - --- helper that identifies arrays -local function tisarray(t) - local i = 0 - for _ in pairs(t) do - i = i + 1 - if t[i] == nil then return false end - end - return true -end - --- reads the environments -local function readEnvironments(meta) - local env = meta['environments'] - if env ~= nil then - if tisarray(env) then - -- read an array of strings - for i, v in ipairs(env) do - local value = pandoc.utils.stringify(v) - classEnvironments[value] = value - end - else - -- read key value pairs - for k, v in pairs(env) do - local key = pandoc.utils.stringify(k) - local value = pandoc.utils.stringify(v) - classEnvironments[key] = value - end - end - end -end - -local function readCommands(meta) - local env = meta['commands'] - if env ~= nil then - if tisarray(env) then - -- read an array of strings - for i, v in ipairs(env) do - local value = pandoc.utils.stringify(v) - classCommands[value] = value - end - else - -- read key value pairs - for k, v in pairs(env) do - local key = pandoc.utils.stringify(k) - local value = pandoc.utils.stringify(v) - classCommands[key] = value - end - end - end -end - -local function readEnvsAndCommands(meta) - readEnvironments(meta) - readCommands(meta) -end - --- use the environments from metadata to --- emit a custom environment for latex -local function writeEnvironments(divEl) - if quarto.doc.is_format("latex") then - for k, v in pairs(classEnvironments) do - if divEl.attr.classes:includes(k) then - -- process this into a latex environment - local beginEnv = '\\begin' .. '{' .. v .. '}' - local endEnv = '\n\\end{' .. v .. '}' - - -- check if custom options or arguments are present - -- and add them to the environment accordingly - local opts = divEl.attr.attributes['options'] - if opts then - beginEnv = beginEnv .. '[' .. opts .. ']' - end - - local args = divEl.attr.attributes['arguments'] - if args then - beginEnv = beginEnv .. '{' .. args .. '}' - end - - -- if the first and last div blocks are paragraphs then we can - -- bring the environment begin/end closer to the content - if #divEl.content > 0 and divEl.content[1].t == "Para" and divEl.content[#divEl.content].t == "Para" then - table.insert(divEl.content[1].content, 1, pandoc.RawInline('tex', beginEnv .. "\n")) - table.insert(divEl.content[#divEl.content].content, pandoc.RawInline('tex', "\n" .. endEnv)) - else - table.insert(divEl.content, 1, pandoc.RawBlock('tex', beginEnv)) - table.insert(divEl.content, pandoc.RawBlock('tex', endEnv)) - end - return divEl - end - end - end -end - -local function buildCommandArgs(opts, format) - local function wrap(o) - return string.format(format, o) - end - local t = pandoc.List() - for str in string.gmatch(opts, "([^"..",".."]+)") do - t:insert(str) - end - return table.concat(t:map(wrap), "") -end - --- use the environments from metadata to --- emit a custom environment for latex -local function writeCommands(spanEl) - if quarto.doc.is_format("latex") then - for k, v in pairs(classCommands) do - if spanEl.attr.classes:includes(k) then - - -- resolve the begin command - local beginCommand = '\\' .. pandoc.utils.stringify(v) - local opts = spanEl.attr.attributes['options'] - local args = spanEl.attr.attributes['arguments'] - if opts then - beginCommand = beginCommand .. buildCommandArgs(opts, "[%s]") - end - if args then - beginCommand = beginCommand .. buildCommandArgs(args, "{%s}") - end - - local beginCommandRaw = pandoc.RawInline('latex', beginCommand .. '{') - - -- the end command - local endCommandRaw = pandoc.RawInline('latex', '}') - - -- attach the raw inlines to the span contents - local result = spanEl.content - table.insert(result, 1, beginCommandRaw) - table.insert(result, endCommandRaw) - - return result - end - end - end -end - --- Run in two passes so we process metadata --- and then process the divs -return { - { Meta = readEnvsAndCommands }, - { Div = writeEnvironments, Span = writeCommands } -} diff --git a/_extensions/quarto-journals/acs/achemso.bst b/_extensions/quarto-journals/acs/achemso.bst deleted file mode 100644 index 3713b0c..0000000 --- a/_extensions/quarto-journals/acs/achemso.bst +++ /dev/null @@ -1,1745 +0,0 @@ -%% -%% This is file `achemso.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% achemso.dtx (with options: `bst') -%% -%% IMPORTANT NOTICE: -%% -%% For the copyright see the source file. -%% -%% Any modified versions of this file must be renamed -%% with new filenames distinct from achemso.bst. -%% -%% For distribution of the original source see the terms -%% for copying and modification in the file achemso.dtx. -%% -%% This generated file may be distributed as long as the -%% original source files, as listed above, are part of the -%% same distribution. (The sources need not necessarily be -%% in the same archive or directory.) - -ENTRY - { - address - author - booktitle - chapter - ctrl-article-title - ctrl-chapter-title - ctrl-doi - ctrl-etal-firstonly - ctrl-etal-number - ctrl-use-title - doi - edition - editor - howpublished - institution - journal - key - maintitle - note - number - organization - pages - publisher - school - series - title - type - url - version - volume - year - } - { } - { - label - short.names - } - - -FUNCTION { and } { - { } - { - pop$ - #0 - } - if$ -} - -FUNCTION { not } { - { #0 } - { #1 } - if$ -} - -FUNCTION { or } { - { - pop$ - #1 - } - { } - if$ -} - -FUNCTION { xor } { - { not } - { } - if$ -} - - -FUNCTION { chr.to.value.error } { - #48 + - int.to.chr$ - "'" swap$ * - "'" * - " is not a number: treated as zero." * - warning$ - #0 -} - -FUNCTION { chr.to.value } { - chr.to.int$ #48 - - duplicate$ - #0 < - { chr.to.value.error } - { - duplicate$ - #9 > - { chr.to.value.error } - { } - if$ - } - if$ -} - -STRINGS { - extract.input.str - extract.output.str -} - -FUNCTION { is.a.digit } { - duplicate$ - "" = - { - pop$ - #0 - } - { - chr.to.int$ - #48 - - duplicate$ - #0 < swap$ #9 > or not - } - if$ -} - -FUNCTION{ is.a.number } { - { - duplicate$ - #1 #1 substring$ - is.a.digit - } - { #2 global.max$ substring$ } - while$ - "" = -} - -FUNCTION { extract.number } { - duplicate$ - 'extract.input.str := - "" 'extract.output.str := - { extract.input.str empty$ not } - { - extract.input.str #1 #1 substring$ - extract.input.str #2 global.max$ substring$ 'extract.input.str := - duplicate$ - is.a.number - { extract.output.str swap$ * 'extract.output.str := } - { - pop$ - "" 'extract.input.str := - } - if$ - } - while$ - extract.output.str empty$ - { } - { - pop$ - extract.output.str - } - if$ -} - -FUNCTION { field.or.null } { - duplicate$ - empty$ - { - pop$ - "" - } - { } - if$ -} - -INTEGERS { - multiply.a.int - multiply.b.int -} - -FUNCTION { multiply } { - 'multiply.a.int := - 'multiply.b.int := - multiply.b.int #0 < - { - #-1 - #0 multiply.b.int - 'multiply.b.int := - } - { #1 } - if$ - #0 - { multiply.b.int #0 > } - { - multiply.a.int + - multiply.b.int #1 - 'multiply.b.int := - } - while$ - swap$ - { } - { #0 swap$ - } - if$ -} - -INTEGERS { str.conversion.int } - -FUNCTION { str.to.int.aux.ii } { - { - duplicate$ - empty$ not - } - { - swap$ - #10 multiply 'str.conversion.int := - duplicate$ - #1 #1 substring$ - chr.to.value - str.conversion.int + - swap$ - #2 global.max$ substring$ - } - while$ - pop$ -} - -FUNCTION { str.to.int.aux.i } { - duplicate$ - #1 #1 substring$ - "-" = - { - #1 swap$ - #2 global.max$ substring$ - } - { - #0 swap$ - } - if$ - #0 - swap$ - str.to.int.aux.ii - swap$ - { #0 swap$ - } - { } - if$ -} - -FUNCTION { str.to.int } { - duplicate$ - empty$ - { - pop$ - #0 - } - { str.to.int.aux.i } - if$ -} - -FUNCTION { tie.or.space.connect } { - duplicate$ - text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} - -FUNCTION { yes.no.to.bool } { - duplicate$ - empty$ - { - pop$ - #0 - } - { - "l" change.case$ - "yes" = - { #1 } - { #0 } - if$ - } - if$ -} - - -FUNCTION { bold } { - duplicate$ - empty$ - { - pop$ - "" - } - { "\textbf{" swap$ * "}" * } - if$ -} - -FUNCTION { emph } { - duplicate$ - empty$ - { - pop$ - "" - } - { "\emph{" swap$ * "}" * } - if$ -} - -FUNCTION { paren } { - duplicate$ - empty$ - { - pop$ - "" - } - { "(" swap$ * ")" * } - if$ -} - - -FUNCTION { add.comma } { ", " * } - -FUNCTION { add.colon } { ": " * } - -FUNCTION { add.period } { add.period$ " " * } - -FUNCTION { add.semicolon } { "; " * } - -FUNCTION { add.space } { " " * } - - -FUNCTION { bbl.and } { "and" } - -FUNCTION { bbl.chapter } { "Chapter" } - -FUNCTION { bbl.doi } { "DOI:" } - -FUNCTION { bbl.editor } { "Ed." } - -FUNCTION { bbl.editors } { "Eds." } - -FUNCTION { bbl.edition } { "ed." } - -FUNCTION { bbl.etal } { "\latin{et~al.}" } - -FUNCTION { bbl.in } { "In" } - -FUNCTION { bbl.inpress } { "in press" } - -FUNCTION { bbl.msc } { "M.Sc.\ thesis" } - -FUNCTION { bbl.page } { "p" } - -FUNCTION { bbl.pages } { "pp" } - -FUNCTION { bbl.phd } { "Ph.D.\ thesis" } - -FUNCTION { bbl.version } { "version" } - -FUNCTION { bbl.volume } { "Vol." } - - -STRINGS { pages.str } - -FUNCTION { hyphen.to.dash } { - 'pages.str := - "" - { pages.str empty$ not } - { - pages.str #1 #1 substring$ - "-" = - { - "--" * - { - pages.str #1 #1 substring$ - "-" = - } - { pages.str #2 global.max$ substring$ 'pages.str := } - while$ - } - { - pages.str #1 #1 substring$ - * - pages.str #2 global.max$ substring$ 'pages.str := - } - if$ - } - while$ -} - -INTEGERS { multiresult.bool } - -FUNCTION { multi.page.check } { - 'pages.str := - #0 'multiresult.bool := - { - multiresult.bool not - pages.str empty$ not - and - } - { - pages.str #1 #1 substring$ - duplicate$ - "-" = swap$ duplicate$ - "," = swap$ - "+" = - or or - { #1 'multiresult.bool := } - { pages.str #2 global.max$ substring$ 'pages.str := } - if$ - } - while$ - multiresult.bool -} - - -INTEGERS { - current.name.int - names.separate.comma - names.separate.semicolon - names.separate.comma.bool - remaining.names.int - total.names.int -} - -STRINGS { - current.name.str - names.str -} - -FUNCTION { full.format.names } { - 'names.str := - #1 'current.name.int := - names.str num.names$ 'remaining.names.int := - { remaining.names.int #0 > } - { - names.str current.name.int "{vv~}{ll}" format.name$ - current.name.int #1 > - { - swap$ add.comma swap$ - remaining.names.int #1 > - { } - { - duplicate$ - "others" = - { bbl.etal } - { bbl.and } - if$ - add.space swap$ * - } - if$ - * - } - { } - if$ - remaining.names.int #1 - 'remaining.names.int := - current.name.int #1 + 'current.name.int := - } - while$ -} - -FUNCTION { full.author } { - author empty$ - { "" } - { author full.format.names } - if$ -} - -FUNCTION { full.author.editor } { - author empty$ - { - editor empty$ - { "" } - { editor full.format.names } - if$ - } - { author full.format.names } - if$ -} - -FUNCTION { full.editor } { - editor empty$ - { "" } - { editor full.format.names } - if$ -} - -FUNCTION { short.format.names } { - 'names.str := - names.str #1 "{vv~}{ll}" format.name$ - names.str num.names$ - duplicate$ - #2 > - { - pop$ - add.space bbl.etal * - } - { - #2 < - { } - { - names.str #2 "{ff }{vv }{ll}{ jj}" format.name$ - "others" = - { add.space bbl.etal * } - { - add.space - bbl.and add.space - * - names.str #2 "{vv~}{ll}" format.name$ - * - } - if$ - } - if$ - } - if$ -} - -FUNCTION { short.author.key } { - author empty$ - { - key empty$ - { cite$ #1 #3 substring$ } - { key } - if$ - } - { author short.format.names } - if$ -} - -FUNCTION { short.author.editor.key } { - author empty$ - { - editor empty$ - { - key empty$ - { cite$ #1 #3 substring$ } - { key } - if$ - } - { editor short.format.names } - if$ - } - { author short.format.names } - if$ -} - -FUNCTION { short.author.key.organization } { - author empty$ - { - key empty$ - { - organization empty$ - { cite$ #1 #3 substring$ } - { - organization #1 #4 substring$ - "The " = - { organization } - { organization #5 global.max$ substring$ } - if$ - #3 text.prefix$ - } - if$ - } - { key } - if$ - } - { author short.format.names } - if$ -} - -FUNCTION { short.editor.key.organization } { - editor empty$ - { - key empty$ - { - organization empty$ - { cite$ #1 #3 substring$ } - { - organization #1 #4 substring$ - "The " = - { organization } - { organization #5 global.max$ substring$ } - if$ - #3 text.prefix$ - } - if$ - } - { key } - if$ - } - { editor short.format.names } - if$ -} - -FUNCTION { calculate.full.names } { - type$ "book" = - type$ "inbook" = - or - { full.author.editor } - { - type$ "proceedings" = - { full.editor } - { full.author } - if$ - } - if$ -} - -FUNCTION { calculate.short.names } { - type$ "book" = - type$ "inbook" = - or - { short.author.editor.key } - { - type$ "proceedings" = - { short.editor.key.organization } - { - type$ "manual" = - { short.author.key.organization } - { short.author.key } - if$ - } - if$ - } - if$ - 'short.names := -} - -FUNCTION { calculate.names } { - calculate.short.names - short.names - year empty$ - { "()" } - { "(" year * ")" * } - if$ - * - 'label := -} - - -INTEGERS { entries.int } - -FUNCTION { initialize.count.entries } { - #0 'entries.int := -} - -FUNCTION { count.entries } { - entries.int #1 + 'entries.int := -} - - -FUNCTION { begin.bib } { - "achemso 2022-11-25 v3.13f" top$ - preamble$ empty$ - { } - { - preamble$ write$ - newline$ - } - if$ - "\providecommand{\latin}[1]{#1}" write$ - newline$ - "\makeatletter" write$ - newline$ - "\providecommand{\doi}" write$ - newline$ - " {\begingroup\let\do\@makeother\dospecials" write$ - newline$ - " \catcode`\{=1 \catcode`\}=2 \doi@aux}" write$ - newline$ - "\providecommand{\doi@aux}[1]{\endgroup\texttt{#1}}" write$ - newline$ - "\makeatother" write$ - newline$ - "\providecommand*\mcitethebibliography{\thebibliography}" write$ - newline$ - "\csname @ifundefined\endcsname{endmcitethebibliography}" write$ - " {\let\endmcitethebibliography\endthebibliography}{}" write$ - newline$ - "\begin{mcitethebibliography}{" - entries.int int.to.str$ * "}" * write$ - newline$ - "\providecommand*\natexlab[1]{#1}" write$ - newline$ - "\providecommand*\mciteSetBstSublistMode[1]{}" write$ - newline$ - "\providecommand*\mciteSetBstMaxWidthForm[2]{}" write$ - newline$ - "\providecommand*\mciteBstWouldAddEndPuncttrue" write$ - newline$ - " {\def\EndOfBibitem{\unskip.}}" write$ - newline$ - "\providecommand*\mciteBstWouldAddEndPunctfalse" write$ - newline$ - " {\let\EndOfBibitem\relax}" write$ - newline$ - "\providecommand*\mciteSetBstMidEndSepPunct[3]{}" write$ - newline$ - "\providecommand*\mciteSetBstSublistLabelBeginEnd[3]{}" write$ - newline$ - "\providecommand*\EndOfBibitem{}" write$ - newline$ - "\mciteSetBstSublistMode{f}" write$ - newline$ - "\mciteSetBstMaxWidthForm{subitem}{(\alph{mcitesubitemcount})}" write$ - newline$ - "\mciteSetBstSublistLabelBeginEnd" write$ - newline$ - " {\mcitemaxwidthsubitemform\space}" write$ - newline$ - " {\relax}" write$ - newline$ - " {\relax}" write$ - newline$ -} - -FUNCTION { end.bib } { - newline$ - "\end{mcitethebibliography}" write$ - newline$ -} - - -INTEGERS { - ctrl.article.title.bool - ctrl.chapter.title.bool - ctrl.doi.bool - ctrl.etal.firstonly.bool - ctrl.etal.number.int -} - -FUNCTION { initialize.control.values } { - #1 'ctrl.article.title.bool := - #0 'ctrl.chapter.title.bool := - #0 'ctrl.doi.bool := - #1 'ctrl.etal.firstonly.bool := - #15 'ctrl.etal.number.int := -} - -FUNCTION { control } { - ctrl-article-title yes.no.to.bool 'ctrl.article.title.bool := - ctrl-chapter-title yes.no.to.bool 'ctrl.chapter.title.bool := - ctrl-doi yes.no.to.bool 'ctrl.doi.bool := - ctrl-etal-firstonly yes.no.to.bool 'ctrl.etal.firstonly.bool := - ctrl-etal-number str.to.int 'ctrl.etal.number.int := - ctrl-use-title empty$ - 'skip$ - { ctrl-use-title yes.no.to.bool 'ctrl.article.title.bool := } - if$ -} - - -INTEGERS { - next.punct.comma - next.punct.period - next.punct.semicolon - next.punct.space -} - -FUNCTION { initialize.tracker } { - #0 'next.punct.comma := - #1 'next.punct.period := - #2 'next.punct.semicolon := - #3 'next.punct.space := -} - -INTEGERS { next.punct.int } - -FUNCTION { output } { - swap$ - duplicate$ empty$ - { pop$ } - { - next.punct.int next.punct.space = - { add.space } - { - next.punct.int next.punct.comma = - { add.comma } - { - next.punct.int next.punct.semicolon = - { add.semicolon } - { add.period } - if$ - } - if$ - } - if$ - write$ - } - if$ - next.punct.comma 'next.punct.int := -} - - -FUNCTION { begin.bibitem } { - newline$ - "\bibitem" write$ - label - calculate.full.names - duplicate$ - short.names = - { pop$ } - { * } - if$ - "[" swap$ * "]" * write$ - "{" cite$ * "}" * write$ - newline$ - "" - next.punct.comma 'next.punct.int := -} - -INTEGERS { add.period.length.int } - -FUNCTION { would.add.period } { - duplicate$ - add.period$ - text.length$ 'add.period.length.int := - duplicate$ - text.length$ - add.period.length.int = - { #0 } - { #1 } - if$ -} - -FUNCTION { end.bibitem } { - would.add.period - { - "\relax" * write$ - newline$ - "\mciteBstWouldAddEndPuncttrue" write$ - newline$ - "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}" write$ - newline$ - "{\mcitedefaultendpunct}{\mcitedefaultseppunct}\relax" - } - { - "\relax" * write$ - newline$ - "\mciteBstWouldAddEndPunctfalse" write$ - newline$ - "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}" write$ - newline$ - "{}{\mcitedefaultseppunct}\relax" - } - if$ - write$ - newline$ - "\EndOfBibitem" write$ -} - - -FUNCTION { initialize.name.separator } { - #1 'names.separate.comma := - #0 'names.separate.semicolon := -} - -FUNCTION { format.names.loop } { - { remaining.names.int #0 > } - { - names.str current.name.int "{vv~}{ll}{,~f.}{,~jj}" format.name$ - duplicate$ - 'current.name.str := - current.name.int #1 > - { - duplicate$ - "others," = - { - pop$ - * - bbl.etal - add.space - remaining.names.int #1 - 'remaining.names.int := - } - { - swap$ - names.separate.comma.bool - { add.comma } - { add.semicolon } - if$ - swap$ - * - } - if$ - } - { } - if$ - remaining.names.int #1 - 'remaining.names.int := - current.name.int #1 + 'current.name.int := - } - while$ -} - -FUNCTION { format.names.all } { - total.names.int 'remaining.names.int := - format.names.loop -} - -FUNCTION { format.names.etal } { - ctrl.etal.firstonly.bool - { #1 'remaining.names.int := } - { ctrl.etal.number.int 'remaining.names.int := } - if$ - format.names.loop - current.name.str "others," = - { } - { - add.space - bbl.etal - add.space - * - } - if$ -} - -FUNCTION { format.names } { - 'names.separate.comma.bool := - 'names.str := - #1 'current.name.int := - names.str num.names$ 'total.names.int := - total.names.int ctrl.etal.number.int > - { - ctrl.etal.number.int #0 = - { format.names.all } - { format.names.etal } - if$ - } - { format.names.all } - if$ -} - - -FUNCTION { bbl.first } { "1st" } - -FUNCTION { bbl.second } { "2nd" } - -FUNCTION { bbl.third } { "3rd" } - -FUNCTION { bbl.fourth } { "4th" } - -FUNCTION { bbl.fifth } { "5th" } - -FUNCTION { bbl.st } { "st" } - -FUNCTION { bbl.nd } { "nd" } - -FUNCTION { bbl.rd } { "rd" } - -FUNCTION { bbl.th } { "th" } - -STRINGS { - ord.input.str - ord.output.str -} - -FUNCTION { make.ordinal } { - duplicate$ - "1" swap$ - * - #-2 #1 substring$ - "1" = - { - bbl.th * - } - { - duplicate$ - #-1 #1 substring$ - duplicate$ - "1" = - { - pop$ - bbl.st * - } - { - duplicate$ - "2" = - { - pop$ - bbl.nd * - } - { - "3" = - { bbl.rd * } - { bbl.th * } - if$ - } - if$ - } - if$ - } - if$ -} - -FUNCTION { convert.to.ordinal } { - extract.number - "l" change.case$ 'ord.input.str := - ord.input.str "first" = ord.input.str "1" = or - { bbl.first 'ord.output.str := } - { - ord.input.str "second" = ord.input.str "2" = or - { bbl.second 'ord.output.str := } - { - ord.input.str "third" = ord.input.str "3" = or - { bbl.third 'ord.output.str := } - { - ord.input.str "fourth" = ord.input.str "4" = or - { bbl.fourth 'ord.output.str := } - { - ord.input.str "fifth" = ord.input.str "5" = or - { bbl.fifth 'ord.output.str := } - { - ord.input.str #1 #1 substring$ - is.a.number - { ord.input.str make.ordinal } - { ord.input.str } - if$ - 'ord.output.str := - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - ord.output.str -} - - -FUNCTION { format.address } { - address empty$ - { } - { - address - output - } - if$ -} - -FUNCTION { format.authors } { - author empty$ - { } - { - author names.separate.semicolon format.names - output - next.punct.space 'next.punct.int := - } - if$ -} - -FUNCTION { format.editors } { - editor empty$ - { } - { - editor names.separate.comma format.names - add.comma - editor num.names$ #1 > - { bbl.editors } - { bbl.editor } - if$ - * - output - next.punct.semicolon 'next.punct.int := - } - if$ -} - -FUNCTION { format.authors.or.editors } { - author empty$ - { format.editors } - { format.authors } - if$ - next.punct.space 'next.punct.int := -} - -FUNCTION { format.chapter } { - chapter empty$ - { } - { - bbl.chapter add.space - chapter - * - output - } - if$ -} - -FUNCTION { format.doi } { - doi empty$ - 'skip$ - { - bbl.doi add.space - "\doi{" * doi * "}" * - output - } - if$ -} - -FUNCTION { format.edition } { - edition empty$ - { } - { - edition convert.to.ordinal - add.space bbl.edition * - output - } - if$ - next.punct.semicolon 'next.punct.int := -} - -FUNCTION { format.group.address } { - duplicate$ - empty$ - { pop$ } - { - address empty$ - { } - { - add.colon - address - * - } - if$ - output - } - if$ -} - -FUNCTION { format.howpublished } { - howpublished empty$ - { } - { - howpublished - output - } - if$ -} - -FUNCTION { format.journal } { - journal emph - output - next.punct.space 'next.punct.int := -} - -FUNCTION { format.journal.unpub } { - journal emph - output -} - -FUNCTION { format.note } { - note empty$ - { } - { - note - output - } - if$ -} - -FUNCTION { format.number.series } { - series empty$ - { } - { - series - number empty$ - { } - { - add.space - number * - } - if$ - output - next.punct.semicolon 'next.punct.int := - } - if$ -} - -FUNCTION { format.organization } { - organization empty$ - { } - { - organization paren - output - next.punct.period 'next.punct.int := - } - if$ -} - -FUNCTION { format.organization.address } { - organization format.group.address -} - -FUNCTION { format.pages } { - pages empty$ - { } - { - pages multi.page.check - { - bbl.pages - pages hyphen.to.dash - } - { bbl.page pages } - if$ - tie.or.space.connect - output - } - if$ - ctrl.doi.bool - { format.doi } - 'skip$ - if$ -} - -FUNCTION { format.pages.article } { - pages empty$ - { } - { - pages hyphen.to.dash - output - } - if$ - ctrl.doi.bool - { format.doi } - 'skip$ - if$ -} - -FUNCTION { format.publisher.address } { - publisher format.group.address -} - -FUNCTION { format.school.address } { - school - duplicate$ - empty$ - { pop$ } - { - address empty$ - { } - { - add.comma - address - * - } - if$ - output - } - if$ -} - -FUNCTION { format.title } { - title empty$ - { } - { - title - output - next.punct.period 'next.punct.int := - } - if$ -} - -FUNCTION { format.title.article } { - ctrl.article.title.bool - { - title empty$ - { } - { - title - output - next.punct.period 'next.punct.int := - } - if$ - } - { } - if$ -} - -FUNCTION { format.title.techreport } { - title empty$ - { } - { - title emph - output - next.punct.semicolon 'next.punct.int := - } - if$ -} - -FUNCTION { format.title.booktitle } { - title empty$ - { } - { - title - output - next.punct.period 'next.punct.int := - } - if$ - booktitle empty$ - { } - { - booktitle - output - next.punct.period 'next.punct.int := - } - if$ -} - -STRINGS { - book.title - chapter.title -} - -FUNCTION { format.title.booktitle.book } { - "" 'chapter.title := - booktitle empty$ - { - "" 'chapter.title := - title 'book.title := - } - { - ctrl.chapter.title.bool - { - title empty$ - 'skip$ - { title 'chapter.title := } - if$ - } - 'skip$ - if$ - maintitle empty$ - { booktitle 'book.title := } - { maintitle add.period booktitle * 'book.title := } - if$ - } - if$ - chapter.title empty$ - { } - { - chapter.title - output - next.punct.period 'next.punct.int := - } - if$ - book.title emph - chapter.title empty$ - { - author empty$ - { } - { - editor empty$ - { } - { bbl.in add.space swap$ * } - if$ - } - if$ - } - { bbl.in add.space swap$ * } - if$ - output -} - -FUNCTION { format.type } { - type empty$ - { } - { - pop$ - type - } - if$ - output -} - -FUNCTION { format.type.number } { - type empty$ - { } - { - type - number empty$ - { } - { number tie.or.space.connect } - if$ - output - } - if$ -} - -FUNCTION { format.url } { - url empty$ - { } - { - "\url{" url * "}" * - output - } - if$ -} - -FUNCTION { format.year } { - year empty$ - { } - { - year - output - next.punct.semicolon 'next.punct.int := - } - if$ -} - -FUNCTION { format.year.article } { - year empty$ - { } - { - year bold - output - } - if$ -} - -FUNCTION { format.version } { - version empty$ - { } - { - bbl.version add.space - version - * - output - } - if$ -} - -FUNCTION { format.volume.article } { - volume emph - output -} - -FUNCTION { format.volume } { - volume empty$ - { } - { - bbl.volume - volume - tie.or.space.connect - output - next.punct.semicolon 'next.punct.int := - } - if$ -} - - -FUNCTION { article } { - begin.bibitem - format.authors - format.title.article - format.journal - format.year.article - format.volume.article - format.pages.article - format.note - end.bibitem -} - -FUNCTION { book } { - begin.bibitem - format.authors.or.editors - format.title.booktitle.book - format.edition - author empty$ - { } - { format.editors } - if$ - format.number.series - format.publisher.address - format.year - format.volume - format.chapter - format.pages - format.note - end.bibitem -} - -FUNCTION { inbook } { book } - -FUNCTION { booklet } { - begin.bibitem - format.authors - format.title - format.howpublished - format.address - format.year - format.note - end.bibitem -} - -FUNCTION { collection } { book } - -FUNCTION { incollection } { book } - -FUNCTION { inpress } { - begin.bibitem - format.authors - format.journal.unpub - doi empty$ - { - bbl.inpress - output - } - { - format.year.article - next.punct.comma 'next.punct.int := - format.doi - } - if$ - format.note - end.bibitem -} - -FUNCTION { inproceedings } { - begin.bibitem - format.authors - format.title.booktitle - format.address - format.year - format.pages - format.note - end.bibitem -} - -FUNCTION { manual } { - begin.bibitem - format.authors - format.title - format.version - format.organization.address - format.year - format.note - end.bibitem -} - -FUNCTION { mastersthesis } { - begin.bibitem - format.authors - format.title - bbl.msc format.type - format.school.address - format.year - format.note - end.bibitem -} - -FUNCTION { misc } { - begin.bibitem - format.authors - format.title - format.howpublished - format.year - format.url - format.note - end.bibitem -} - -FUNCTION { patent } { - begin.bibitem - format.authors - format.organization - format.title - format.type.number - format.year - format.note - end.bibitem -} - -FUNCTION { phdthesis } { - begin.bibitem - format.authors - format.title - bbl.phd format.type - format.school.address - format.year - format.note - end.bibitem -} - -FUNCTION { proceeding } { - begin.bibitem - format.title - format.address - format.year - format.pages - format.note - end.bibitem -} - -FUNCTION { techreport } { - begin.bibitem - format.authors.or.editors - format.title.techreport - format.type.number - format.organization.address - format.year - format.volume - format.pages - format.note - end.bibitem -} - -FUNCTION { unpublished } { - begin.bibitem - format.authors - format.journal.unpub - doi empty$ - { format.howpublished } - { - format.year - next.punct.comma 'next.punct.int := - format.doi - } - if$ - format.note - end.bibitem -} - -FUNCTION { default.type } { misc } - - -MACRO { jan } { "Jan." } -MACRO { feb } { "Feb." } -MACRO { mar } { "Mar." } -MACRO { apr } { "Apr." } -MACRO { may } { "May" } -MACRO { jun } { "June" } -MACRO { jul } { "July" } -MACRO { aug } { "Aug." } -MACRO { sep } { "Sept." } -MACRO { oct } { "Oct." } -MACRO { nov } { "Nov." } -MACRO { dec } { "Dec." } - -MACRO { acbcct } { "ACS Chem.\ Biol." } -MACRO { achre4 } { "Acc.\ Chem.\ Res." } -MACRO { acncdm } { "ACS Chem.\ Neurosci." } -MACRO { ancac3 } { "ACS Nano" } -MACRO { ancham } { "Anal.\ Chem." } -MACRO { bichaw } { "Biochemistry" } -MACRO { bcches } { "Bioconjugate Chem." } -MACRO { bomaf6 } { "Biomacromolecules" } -MACRO { bipret } { "Biotechnol.\ Prog." } -MACRO { crtoec } { "Chem.\ Res.\ Toxicol." } -MACRO { chreay } { "Chem.\ Rev." } -MACRO { cmatex } { "Chem.\ Mater." } -MACRO { cgdefu } { "Cryst.\ Growth Des." } -MACRO { enfuem } { "Energy Fuels" } -MACRO { esthag } { "Environ.\ Sci.\ Technol." } -MACRO { iechad } { "Ind.\ Eng.\ Chem.\ Res." } -MACRO { inoraj } { "Inorg.\ Chem." } -MACRO { jafcau } { "J.~Agric.\ Food Chem." } -MACRO { jceaax } { "J.~Chem.\ Eng.\ Data" } -MACRO { jceda8 } { "J.~Chem.\ Ed." } -MACRO { jcisd8 } { "J.~Chem.\ Inf.\ Model." } -MACRO { jctcce } { "J.~Chem.\ Theory Comput." } -MACRO { jcchff } { "J. Comb. Chem." } -MACRO { jmcmar } { "J. Med. Chem." } -MACRO { jnprdf } { "J. Nat. Prod." } -MACRO { joceah } { "J.~Org.\ Chem." } -MACRO { jpcafh } { "J.~Phys.\ Chem.~A" } -MACRO { jpcbfk } { "J.~Phys.\ Chem.~B" } -MACRO { jpccck } { "J.~Phys.\ Chem.~C" } -MACRO { jpclcd } { "J.~Phys.\ Chem.\ Lett." } -MACRO { jprobs } { "J.~Proteome Res." } -MACRO { jacsat } { "J.~Am.\ Chem.\ Soc." } -MACRO { langd5 } { "Langmuir" } -MACRO { mamobx } { "Macromolecules" } -MACRO { mpohbp } { "Mol.\ Pharm." } -MACRO { nalefd } { "Nano Lett." } -MACRO { orlef7 } { "Org.\ Lett." } -MACRO { oprdfk } { "Org.\ Proc.\ Res.\ Dev." } -MACRO { orgnd7 } { "Organometallics" } - - -READ - -EXECUTE { initialize.control.values } - -EXECUTE { initialize.count.entries } - -EXECUTE { initialize.name.separator } - -EXECUTE { initialize.tracker } - -ITERATE { calculate.names } - -ITERATE { count.entries } - -EXECUTE { begin.bib } - -ITERATE { call.type$ } - -EXECUTE { end.bib } -%% -%% Originally developed by Mats Dahlgren -%% Copyright (C) 1996-1998 by Mats Dahlgren -%% Copyright (C) 2008-2022 by -%% Joseph Wright -%% -%% Part of this bundle is derived from cite.sty, to which the -%% following license applies: -%% Copyright (C) 1989-2009 by Donald Arseneau -%% These macros may be freely transmitted, reproduced, or -%% modified provided that this notice is left intact. -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% http://www.latex-project.org/lppl.txt -%% -%% This work is "maintained" (as per LPPL maintenance status) by -%% Joseph Wright. -%% -%% This work consists of the files achemso.dtx, -%% achemso-demo.bib and -%% achemso-demo.tex, -%% and the derived files achemso.cls, -%% achemso.ins, -%% achemso.pdf, -%% achemso.sty, -%% natmove.sty and -%% a number of configuration files. -%% -%% -%% End of file `achemso.bst'. diff --git a/_extensions/quarto-journals/acs/american-chemical-society.csl b/_extensions/quarto-journals/acs/american-chemical-society.csl deleted file mode 100644 index 3e485ed..0000000 --- a/_extensions/quarto-journals/acs/american-chemical-society.csl +++ /dev/null @@ -1,252 +0,0 @@ - - diff --git a/_extensions/quarto-journals/acs/biochem.bst b/_extensions/quarto-journals/acs/biochem.bst deleted file mode 100644 index 26f1495..0000000 --- a/_extensions/quarto-journals/acs/biochem.bst +++ /dev/null @@ -1,1750 +0,0 @@ -%% -%% This is file `biochem.bst', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% achemso.dtx (with options: `bst,bio') -%% -%% IMPORTANT NOTICE: -%% -%% For the copyright see the source file. -%% -%% Any modified versions of this file must be renamed -%% with new filenames distinct from biochem.bst. -%% -%% For distribution of the original source see the terms -%% for copying and modification in the file achemso.dtx. -%% -%% This generated file may be distributed as long as the -%% original source files, as listed above, are part of the -%% same distribution. (The sources need not necessarily be -%% in the same archive or directory.) - -ENTRY - { - address - author - booktitle - chapter - ctrl-article-title - ctrl-chapter-title - ctrl-doi - ctrl-etal-firstonly - ctrl-etal-number - ctrl-use-title - doi - edition - editor - howpublished - institution - journal - key - maintitle - note - number - organization - pages - publisher - school - series - title - type - url - version - volume - year - } - { } - { - label - short.names - } - - -FUNCTION { and } { - { } - { - pop$ - #0 - } - if$ -} - -FUNCTION { not } { - { #0 } - { #1 } - if$ -} - -FUNCTION { or } { - { - pop$ - #1 - } - { } - if$ -} - -FUNCTION { xor } { - { not } - { } - if$ -} - - -FUNCTION { chr.to.value.error } { - #48 + - int.to.chr$ - "'" swap$ * - "'" * - " is not a number: treated as zero." * - warning$ - #0 -} - -FUNCTION { chr.to.value } { - chr.to.int$ #48 - - duplicate$ - #0 < - { chr.to.value.error } - { - duplicate$ - #9 > - { chr.to.value.error } - { } - if$ - } - if$ -} - -STRINGS { - extract.input.str - extract.output.str -} - -FUNCTION { is.a.digit } { - duplicate$ - "" = - { - pop$ - #0 - } - { - chr.to.int$ - #48 - - duplicate$ - #0 < swap$ #9 > or not - } - if$ -} - -FUNCTION{ is.a.number } { - { - duplicate$ - #1 #1 substring$ - is.a.digit - } - { #2 global.max$ substring$ } - while$ - "" = -} - -FUNCTION { extract.number } { - duplicate$ - 'extract.input.str := - "" 'extract.output.str := - { extract.input.str empty$ not } - { - extract.input.str #1 #1 substring$ - extract.input.str #2 global.max$ substring$ 'extract.input.str := - duplicate$ - is.a.number - { extract.output.str swap$ * 'extract.output.str := } - { - pop$ - "" 'extract.input.str := - } - if$ - } - while$ - extract.output.str empty$ - { } - { - pop$ - extract.output.str - } - if$ -} - -FUNCTION { field.or.null } { - duplicate$ - empty$ - { - pop$ - "" - } - { } - if$ -} - -INTEGERS { - multiply.a.int - multiply.b.int -} - -FUNCTION { multiply } { - 'multiply.a.int := - 'multiply.b.int := - multiply.b.int #0 < - { - #-1 - #0 multiply.b.int - 'multiply.b.int := - } - { #1 } - if$ - #0 - { multiply.b.int #0 > } - { - multiply.a.int + - multiply.b.int #1 - 'multiply.b.int := - } - while$ - swap$ - { } - { #0 swap$ - } - if$ -} - -INTEGERS { str.conversion.int } - -FUNCTION { str.to.int.aux.ii } { - { - duplicate$ - empty$ not - } - { - swap$ - #10 multiply 'str.conversion.int := - duplicate$ - #1 #1 substring$ - chr.to.value - str.conversion.int + - swap$ - #2 global.max$ substring$ - } - while$ - pop$ -} - -FUNCTION { str.to.int.aux.i } { - duplicate$ - #1 #1 substring$ - "-" = - { - #1 swap$ - #2 global.max$ substring$ - } - { - #0 swap$ - } - if$ - #0 - swap$ - str.to.int.aux.ii - swap$ - { #0 swap$ - } - { } - if$ -} - -FUNCTION { str.to.int } { - duplicate$ - empty$ - { - pop$ - #0 - } - { str.to.int.aux.i } - if$ -} - -FUNCTION { tie.or.space.connect } { - duplicate$ - text.length$ #3 < - { "~" } - { " " } - if$ - swap$ * * -} - -FUNCTION { yes.no.to.bool } { - duplicate$ - empty$ - { - pop$ - #0 - } - { - "l" change.case$ - "yes" = - { #1 } - { #0 } - if$ - } - if$ -} - - -FUNCTION { bold } { - duplicate$ - empty$ - { - pop$ - "" - } - { "\textbf{" swap$ * "}" * } - if$ -} - -FUNCTION { emph } { - duplicate$ - empty$ - { - pop$ - "" - } - { "\emph{" swap$ * "}" * } - if$ -} - -FUNCTION { paren } { - duplicate$ - empty$ - { - pop$ - "" - } - { "(" swap$ * ")" * } - if$ -} - - -FUNCTION { add.comma } { ", " * } - -FUNCTION { add.colon } { ": " * } - -FUNCTION { add.period } { add.period$ " " * } - -FUNCTION { add.semicolon } { "; " * } - -FUNCTION { add.space } { " " * } - - -FUNCTION { bbl.and } { "and" } - -FUNCTION { bbl.chapter } { "Chapter" } - -FUNCTION { bbl.doi } { "DOI:" } - -FUNCTION { bbl.editor } { "Ed." } - -FUNCTION { bbl.editors } { "Eds." } - -FUNCTION { bbl.edition } { "ed." } - -FUNCTION { bbl.etal } { "\latin{et~al.}" } - -FUNCTION { bbl.in } { "In" } - -FUNCTION { bbl.inpress } { "in press" } - -FUNCTION { bbl.msc } { "M.Sc.\ thesis" } - -FUNCTION { bbl.page } { "p" } - -FUNCTION { bbl.pages } { "pp" } - -FUNCTION { bbl.phd } { "Ph.D.\ thesis" } - -FUNCTION { bbl.version } { "version" } - -FUNCTION { bbl.volume } { "Vol." } - - -STRINGS { pages.str } - -FUNCTION { hyphen.to.dash } { - 'pages.str := - "" - { pages.str empty$ not } - { - pages.str #1 #1 substring$ - "-" = - { - "--" * - { - pages.str #1 #1 substring$ - "-" = - } - { pages.str #2 global.max$ substring$ 'pages.str := } - while$ - } - { - pages.str #1 #1 substring$ - * - pages.str #2 global.max$ substring$ 'pages.str := - } - if$ - } - while$ -} - -INTEGERS { multiresult.bool } - -FUNCTION { multi.page.check } { - 'pages.str := - #0 'multiresult.bool := - { - multiresult.bool not - pages.str empty$ not - and - } - { - pages.str #1 #1 substring$ - duplicate$ - "-" = swap$ duplicate$ - "," = swap$ - "+" = - or or - { #1 'multiresult.bool := } - { pages.str #2 global.max$ substring$ 'pages.str := } - if$ - } - while$ - multiresult.bool -} - - -INTEGERS { - current.name.int - names.separate.comma - names.separate.semicolon - names.separate.comma.bool - remaining.names.int - total.names.int -} - -STRINGS { - current.name.str - names.str -} - -FUNCTION { full.format.names } { - 'names.str := - #1 'current.name.int := - names.str num.names$ 'remaining.names.int := - { remaining.names.int #0 > } - { - names.str current.name.int "{vv~}{ll}" format.name$ - current.name.int #1 > - { - swap$ add.comma swap$ - remaining.names.int #1 > - { } - { - duplicate$ - "others" = - { bbl.etal } - { bbl.and } - if$ - add.space swap$ * - } - if$ - * - } - { } - if$ - remaining.names.int #1 - 'remaining.names.int := - current.name.int #1 + 'current.name.int := - } - while$ -} - -FUNCTION { full.author } { - author empty$ - { "" } - { author full.format.names } - if$ -} - -FUNCTION { full.author.editor } { - author empty$ - { - editor empty$ - { "" } - { editor full.format.names } - if$ - } - { author full.format.names } - if$ -} - -FUNCTION { full.editor } { - editor empty$ - { "" } - { editor full.format.names } - if$ -} - -FUNCTION { short.format.names } { - 'names.str := - names.str #1 "{vv~}{ll}" format.name$ - names.str num.names$ - duplicate$ - #2 > - { - pop$ - add.space bbl.etal * - } - { - #2 < - { } - { - names.str #2 "{ff }{vv }{ll}{ jj}" format.name$ - "others" = - { add.space bbl.etal * } - { - add.space - bbl.and add.space - * - names.str #2 "{vv~}{ll}" format.name$ - * - } - if$ - } - if$ - } - if$ -} - -FUNCTION { short.author.key } { - author empty$ - { - key empty$ - { cite$ #1 #3 substring$ } - { key } - if$ - } - { author short.format.names } - if$ -} - -FUNCTION { short.author.editor.key } { - author empty$ - { - editor empty$ - { - key empty$ - { cite$ #1 #3 substring$ } - { key } - if$ - } - { editor short.format.names } - if$ - } - { author short.format.names } - if$ -} - -FUNCTION { short.author.key.organization } { - author empty$ - { - key empty$ - { - organization empty$ - { cite$ #1 #3 substring$ } - { - organization #1 #4 substring$ - "The " = - { organization } - { organization #5 global.max$ substring$ } - if$ - #3 text.prefix$ - } - if$ - } - { key } - if$ - } - { author short.format.names } - if$ -} - -FUNCTION { short.editor.key.organization } { - editor empty$ - { - key empty$ - { - organization empty$ - { cite$ #1 #3 substring$ } - { - organization #1 #4 substring$ - "The " = - { organization } - { organization #5 global.max$ substring$ } - if$ - #3 text.prefix$ - } - if$ - } - { key } - if$ - } - { editor short.format.names } - if$ -} - -FUNCTION { calculate.full.names } { - type$ "book" = - type$ "inbook" = - or - { full.author.editor } - { - type$ "proceedings" = - { full.editor } - { full.author } - if$ - } - if$ -} - -FUNCTION { calculate.short.names } { - type$ "book" = - type$ "inbook" = - or - { short.author.editor.key } - { - type$ "proceedings" = - { short.editor.key.organization } - { - type$ "manual" = - { short.author.key.organization } - { short.author.key } - if$ - } - if$ - } - if$ - 'short.names := -} - -FUNCTION { calculate.names } { - calculate.short.names - short.names - year empty$ - { "()" } - { "(" year * ")" * } - if$ - * - 'label := -} - - -INTEGERS { entries.int } - -FUNCTION { initialize.count.entries } { - #0 'entries.int := -} - -FUNCTION { count.entries } { - entries.int #1 + 'entries.int := -} - - -FUNCTION { begin.bib } { - "achemso 2022-11-25 v3.13f" top$ - preamble$ empty$ - { } - { - preamble$ write$ - newline$ - } - if$ - "\providecommand{\latin}[1]{#1}" write$ - newline$ - "\makeatletter" write$ - newline$ - "\providecommand{\doi}" write$ - newline$ - " {\begingroup\let\do\@makeother\dospecials" write$ - newline$ - " \catcode`\{=1 \catcode`\}=2 \doi@aux}" write$ - newline$ - "\providecommand{\doi@aux}[1]{\endgroup\texttt{#1}}" write$ - newline$ - "\makeatother" write$ - newline$ - "\providecommand*\mcitethebibliography{\thebibliography}" write$ - newline$ - "\csname @ifundefined\endcsname{endmcitethebibliography}" write$ - " {\let\endmcitethebibliography\endthebibliography}{}" write$ - newline$ - "\begin{mcitethebibliography}{" - entries.int int.to.str$ * "}" * write$ - newline$ - "\providecommand*\natexlab[1]{#1}" write$ - newline$ - "\providecommand*\mciteSetBstSublistMode[1]{}" write$ - newline$ - "\providecommand*\mciteSetBstMaxWidthForm[2]{}" write$ - newline$ - "\providecommand*\mciteBstWouldAddEndPuncttrue" write$ - newline$ - " {\def\EndOfBibitem{\unskip.}}" write$ - newline$ - "\providecommand*\mciteBstWouldAddEndPunctfalse" write$ - newline$ - " {\let\EndOfBibitem\relax}" write$ - newline$ - "\providecommand*\mciteSetBstMidEndSepPunct[3]{}" write$ - newline$ - "\providecommand*\mciteSetBstSublistLabelBeginEnd[3]{}" write$ - newline$ - "\providecommand*\EndOfBibitem{}" write$ - newline$ - "\mciteSetBstSublistMode{f}" write$ - newline$ - "\mciteSetBstMaxWidthForm{subitem}{(\alph{mcitesubitemcount})}" write$ - newline$ - "\mciteSetBstSublistLabelBeginEnd" write$ - newline$ - " {\mcitemaxwidthsubitemform\space}" write$ - newline$ - " {\relax}" write$ - newline$ - " {\relax}" write$ - newline$ -} - -FUNCTION { end.bib } { - newline$ - "\end{mcitethebibliography}" write$ - newline$ -} - - -INTEGERS { - ctrl.article.title.bool - ctrl.chapter.title.bool - ctrl.doi.bool - ctrl.etal.firstonly.bool - ctrl.etal.number.int -} - -FUNCTION { initialize.control.values } { - #1 'ctrl.article.title.bool := - #0 'ctrl.chapter.title.bool := - #0 'ctrl.doi.bool := - #1 'ctrl.etal.firstonly.bool := - #15 'ctrl.etal.number.int := -} - -FUNCTION { control } { - ctrl-article-title yes.no.to.bool 'ctrl.article.title.bool := - ctrl-chapter-title yes.no.to.bool 'ctrl.chapter.title.bool := - ctrl-doi yes.no.to.bool 'ctrl.doi.bool := - ctrl-etal-firstonly yes.no.to.bool 'ctrl.etal.firstonly.bool := - ctrl-etal-number str.to.int 'ctrl.etal.number.int := - ctrl-use-title empty$ - 'skip$ - { ctrl-use-title yes.no.to.bool 'ctrl.article.title.bool := } - if$ -} - - -INTEGERS { - next.punct.comma - next.punct.period - next.punct.semicolon - next.punct.space -} - -FUNCTION { initialize.tracker } { - #0 'next.punct.comma := - #1 'next.punct.period := - #2 'next.punct.semicolon := - #3 'next.punct.space := -} - -INTEGERS { next.punct.int } - -FUNCTION { output } { - swap$ - duplicate$ empty$ - { pop$ } - { - next.punct.int next.punct.space = - { add.space } - { - next.punct.int next.punct.comma = - { add.comma } - { - next.punct.int next.punct.semicolon = - { add.semicolon } - { add.period } - if$ - } - if$ - } - if$ - write$ - } - if$ - next.punct.comma 'next.punct.int := -} - - -FUNCTION { begin.bibitem } { - newline$ - "\bibitem" write$ - label - calculate.full.names - duplicate$ - short.names = - { pop$ } - { * } - if$ - "[" swap$ * "]" * write$ - "{" cite$ * "}" * write$ - newline$ - "" - next.punct.comma 'next.punct.int := -} - -INTEGERS { add.period.length.int } - -FUNCTION { would.add.period } { - duplicate$ - add.period$ - text.length$ 'add.period.length.int := - duplicate$ - text.length$ - add.period.length.int = - { #0 } - { #1 } - if$ -} - -FUNCTION { end.bibitem } { - would.add.period - { - "\relax" * write$ - newline$ - "\mciteBstWouldAddEndPuncttrue" write$ - newline$ - "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}" write$ - newline$ - "{\mcitedefaultendpunct}{\mcitedefaultseppunct}\relax" - } - { - "\relax" * write$ - newline$ - "\mciteBstWouldAddEndPunctfalse" write$ - newline$ - "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}" write$ - newline$ - "{}{\mcitedefaultseppunct}\relax" - } - if$ - write$ - newline$ - "\EndOfBibitem" write$ -} - - -FUNCTION { initialize.name.separator } { - #1 'names.separate.comma := - #0 'names.separate.semicolon := -} - -FUNCTION { format.names.loop } { - { remaining.names.int #0 > } - { - names.str current.name.int "{vv~}{ll}{,~f.}{,~jj}" format.name$ - duplicate$ - 'current.name.str := - current.name.int #1 > - { - duplicate$ - "others," = - { - pop$ - * - bbl.etal - add.space - remaining.names.int #1 - 'remaining.names.int := - } - { - swap$ - names.separate.comma.bool - { add.comma } - { add.semicolon } - if$ - remaining.names.int #1 > - { } - { bbl.and add.space * } - if$ - swap$ - * - } - if$ - } - { } - if$ - remaining.names.int #1 - 'remaining.names.int := - current.name.int #1 + 'current.name.int := - } - while$ -} - -FUNCTION { format.names.all } { - total.names.int 'remaining.names.int := - format.names.loop -} - -FUNCTION { format.names.etal } { - ctrl.etal.firstonly.bool - { #1 'remaining.names.int := } - { ctrl.etal.number.int 'remaining.names.int := } - if$ - format.names.loop - current.name.str "others," = - { } - { - add.space - bbl.etal - add.space - * - } - if$ -} - -FUNCTION { format.names } { - 'names.separate.comma.bool := - 'names.str := - #1 'current.name.int := - names.str num.names$ 'total.names.int := - total.names.int ctrl.etal.number.int > - { - ctrl.etal.number.int #0 = - { format.names.all } - { format.names.etal } - if$ - } - { format.names.all } - if$ -} - - -FUNCTION { bbl.first } { "1st" } - -FUNCTION { bbl.second } { "2nd" } - -FUNCTION { bbl.third } { "3rd" } - -FUNCTION { bbl.fourth } { "4th" } - -FUNCTION { bbl.fifth } { "5th" } - -FUNCTION { bbl.st } { "st" } - -FUNCTION { bbl.nd } { "nd" } - -FUNCTION { bbl.rd } { "rd" } - -FUNCTION { bbl.th } { "th" } - -STRINGS { - ord.input.str - ord.output.str -} - -FUNCTION { make.ordinal } { - duplicate$ - "1" swap$ - * - #-2 #1 substring$ - "1" = - { - bbl.th * - } - { - duplicate$ - #-1 #1 substring$ - duplicate$ - "1" = - { - pop$ - bbl.st * - } - { - duplicate$ - "2" = - { - pop$ - bbl.nd * - } - { - "3" = - { bbl.rd * } - { bbl.th * } - if$ - } - if$ - } - if$ - } - if$ -} - -FUNCTION { convert.to.ordinal } { - extract.number - "l" change.case$ 'ord.input.str := - ord.input.str "first" = ord.input.str "1" = or - { bbl.first 'ord.output.str := } - { - ord.input.str "second" = ord.input.str "2" = or - { bbl.second 'ord.output.str := } - { - ord.input.str "third" = ord.input.str "3" = or - { bbl.third 'ord.output.str := } - { - ord.input.str "fourth" = ord.input.str "4" = or - { bbl.fourth 'ord.output.str := } - { - ord.input.str "fifth" = ord.input.str "5" = or - { bbl.fifth 'ord.output.str := } - { - ord.input.str #1 #1 substring$ - is.a.number - { ord.input.str make.ordinal } - { ord.input.str } - if$ - 'ord.output.str := - } - if$ - } - if$ - } - if$ - } - if$ - } - if$ - ord.output.str -} - - -FUNCTION { format.address } { - address empty$ - { } - { - address - output - } - if$ -} - -FUNCTION { format.authors } { - author empty$ - { } - { - author names.separate.comma format.names - output - next.punct.space 'next.punct.int := - } - if$ -} - -FUNCTION { format.editors } { - editor empty$ - { } - { - editor names.separate.comma format.names - add.comma - editor num.names$ #1 > - { bbl.editors } - { bbl.editor } - if$ - * - output - next.punct.semicolon 'next.punct.int := - } - if$ -} - -FUNCTION { format.authors.or.editors } { - author empty$ - { format.editors } - { format.authors } - if$ - next.punct.space 'next.punct.int := -} - -FUNCTION { format.chapter } { - chapter empty$ - { } - { - bbl.chapter add.space - chapter - * - output - } - if$ -} - -FUNCTION { format.doi } { - doi empty$ - 'skip$ - { - bbl.doi add.space - "\doi{" * doi * "}" * - output - } - if$ -} - -FUNCTION { format.edition } { - edition empty$ - { } - { - edition convert.to.ordinal - add.space bbl.edition * - output - } - if$ - next.punct.semicolon 'next.punct.int := -} - -FUNCTION { format.group.address } { - duplicate$ - empty$ - { pop$ } - { - address empty$ - { } - { - add.colon - address - * - } - if$ - output - } - if$ -} - -FUNCTION { format.howpublished } { - howpublished empty$ - { } - { - howpublished - output - } - if$ -} - -FUNCTION { format.journal } { - journal emph - output - next.punct.space 'next.punct.int := -} - -FUNCTION { format.journal.unpub } { - journal emph - output -} - -FUNCTION { format.note } { - note empty$ - { } - { - note - output - } - if$ -} - -FUNCTION { format.number.series } { - series empty$ - { } - { - series - number empty$ - { } - { - add.space - number * - } - if$ - output - next.punct.semicolon 'next.punct.int := - } - if$ -} - -FUNCTION { format.organization } { - organization empty$ - { } - { - organization paren - output - next.punct.period 'next.punct.int := - } - if$ -} - -FUNCTION { format.organization.address } { - organization format.group.address -} - -FUNCTION { format.pages } { - pages empty$ - { } - { - pages multi.page.check - { - bbl.pages - pages hyphen.to.dash - } - { bbl.page pages } - if$ - tie.or.space.connect - output - } - if$ - ctrl.doi.bool - { format.doi } - 'skip$ - if$ -} - -FUNCTION { format.pages.article } { - pages empty$ - { } - { - pages hyphen.to.dash - output - } - if$ - ctrl.doi.bool - { format.doi } - 'skip$ - if$ -} - -FUNCTION { format.publisher.address } { - publisher format.group.address -} - -FUNCTION { format.school.address } { - school - duplicate$ - empty$ - { pop$ } - { - address empty$ - { } - { - add.comma - address - * - } - if$ - output - } - if$ -} - -FUNCTION { format.title } { - title empty$ - { } - { - title - output - next.punct.period 'next.punct.int := - } - if$ -} - -FUNCTION { format.title.article } { - ctrl.article.title.bool - { - title empty$ - { } - { - title - output - next.punct.period 'next.punct.int := - } - if$ - } - { } - if$ -} - -FUNCTION { format.title.techreport } { - title empty$ - { } - { - title emph - output - next.punct.semicolon 'next.punct.int := - } - if$ -} - -FUNCTION { format.title.booktitle } { - title empty$ - { } - { - title - output - next.punct.period 'next.punct.int := - } - if$ - booktitle empty$ - { } - { - booktitle - output - next.punct.period 'next.punct.int := - } - if$ -} - -STRINGS { - book.title - chapter.title -} - -FUNCTION { format.title.booktitle.book } { - "" 'chapter.title := - booktitle empty$ - { - "" 'chapter.title := - title 'book.title := - } - { - ctrl.chapter.title.bool - { - title empty$ - 'skip$ - { title 'chapter.title := } - if$ - } - 'skip$ - if$ - maintitle empty$ - { booktitle 'book.title := } - { maintitle add.period booktitle * 'book.title := } - if$ - } - if$ - chapter.title empty$ - { } - { - chapter.title - output - next.punct.period 'next.punct.int := - } - if$ - book.title emph - chapter.title empty$ - { - author empty$ - { } - { - editor empty$ - { } - { bbl.in add.space swap$ * } - if$ - } - if$ - } - { bbl.in add.space swap$ * } - if$ - output -} - -FUNCTION { format.type } { - type empty$ - { } - { - pop$ - type - } - if$ - output -} - -FUNCTION { format.type.number } { - type empty$ - { } - { - type - number empty$ - { } - { number tie.or.space.connect } - if$ - output - } - if$ -} - -FUNCTION { format.url } { - url empty$ - { } - { - "\url{" url * "}" * - output - } - if$ -} - -FUNCTION { format.year } { - year empty$ - { } - { - year - output - next.punct.semicolon 'next.punct.int := - } - if$ -} - -FUNCTION { format.year.article } { - year empty$ - { } - { - year paren - output - next.punct.space 'next.punct.int := - } - if$ -} - -FUNCTION { format.version } { - version empty$ - { } - { - bbl.version add.space - version - * - output - } - if$ -} - -FUNCTION { format.volume.article } { - volume emph - output -} - -FUNCTION { format.volume } { - volume empty$ - { } - { - bbl.volume - volume - tie.or.space.connect - output - next.punct.semicolon 'next.punct.int := - } - if$ -} - - -FUNCTION { article } { - begin.bibitem - format.authors - format.year.article - format.title.article - format.journal - format.volume.article - format.pages.article - format.note - end.bibitem -} - -FUNCTION { book } { - begin.bibitem - format.authors.or.editors - format.title.booktitle.book - format.edition - author empty$ - { } - { format.editors } - if$ - format.number.series - format.publisher.address - format.year - format.volume - format.chapter - format.pages - format.note - end.bibitem -} - -FUNCTION { inbook } { book } - -FUNCTION { booklet } { - begin.bibitem - format.authors - format.title - format.howpublished - format.address - format.year - format.note - end.bibitem -} - -FUNCTION { collection } { book } - -FUNCTION { incollection } { book } - -FUNCTION { inpress } { - begin.bibitem - format.authors - format.year.article - format.journal.unpub - doi empty$ - { - bbl.inpress - output - } - { - next.punct.comma 'next.punct.int := - format.doi - } - if$ - format.note - end.bibitem -} - -FUNCTION { inproceedings } { - begin.bibitem - format.authors - format.title.booktitle - format.address - format.year - format.pages - format.note - end.bibitem -} - -FUNCTION { manual } { - begin.bibitem - format.authors - format.title - format.version - format.organization.address - format.year - format.note - end.bibitem -} - -FUNCTION { mastersthesis } { - begin.bibitem - format.authors - format.title - bbl.msc format.type - format.school.address - format.year - format.note - end.bibitem -} - -FUNCTION { misc } { - begin.bibitem - format.authors - format.title - format.howpublished - format.year - format.url - format.note - end.bibitem -} - -FUNCTION { patent } { - begin.bibitem - format.authors - format.organization - format.title - format.type.number - format.year - format.note - end.bibitem -} - -FUNCTION { phdthesis } { - begin.bibitem - format.authors - format.title - bbl.phd format.type - format.school.address - format.year - format.note - end.bibitem -} - -FUNCTION { proceeding } { - begin.bibitem - format.title - format.address - format.year - format.pages - format.note - end.bibitem -} - -FUNCTION { techreport } { - begin.bibitem - format.authors.or.editors - format.title.techreport - format.type.number - format.organization.address - format.year - format.volume - format.pages - format.note - end.bibitem -} - -FUNCTION { unpublished } { - begin.bibitem - format.authors - format.journal.unpub - doi empty$ - { format.howpublished } - { - format.year - next.punct.comma 'next.punct.int := - format.doi - } - if$ - format.note - end.bibitem -} - -FUNCTION { default.type } { misc } - - -MACRO { jan } { "Jan." } -MACRO { feb } { "Feb." } -MACRO { mar } { "Mar." } -MACRO { apr } { "Apr." } -MACRO { may } { "May" } -MACRO { jun } { "June" } -MACRO { jul } { "July" } -MACRO { aug } { "Aug." } -MACRO { sep } { "Sept." } -MACRO { oct } { "Oct." } -MACRO { nov } { "Nov." } -MACRO { dec } { "Dec." } - -MACRO { acbcct } { "ACS Chem.\ Biol." } -MACRO { achre4 } { "Acc.\ Chem.\ Res." } -MACRO { acncdm } { "ACS Chem.\ Neurosci." } -MACRO { ancac3 } { "ACS Nano" } -MACRO { ancham } { "Anal.\ Chem." } -MACRO { bichaw } { "Biochemistry" } -MACRO { bcches } { "Bioconjugate Chem." } -MACRO { bomaf6 } { "Biomacromolecules" } -MACRO { bipret } { "Biotechnol.\ Prog." } -MACRO { crtoec } { "Chem.\ Res.\ Toxicol." } -MACRO { chreay } { "Chem.\ Rev." } -MACRO { cmatex } { "Chem.\ Mater." } -MACRO { cgdefu } { "Cryst.\ Growth Des." } -MACRO { enfuem } { "Energy Fuels" } -MACRO { esthag } { "Environ.\ Sci.\ Technol." } -MACRO { iechad } { "Ind.\ Eng.\ Chem.\ Res." } -MACRO { inoraj } { "Inorg.\ Chem." } -MACRO { jafcau } { "J.~Agric.\ Food Chem." } -MACRO { jceaax } { "J.~Chem.\ Eng.\ Data" } -MACRO { jceda8 } { "J.~Chem.\ Ed." } -MACRO { jcisd8 } { "J.~Chem.\ Inf.\ Model." } -MACRO { jctcce } { "J.~Chem.\ Theory Comput." } -MACRO { jcchff } { "J. Comb. Chem." } -MACRO { jmcmar } { "J. Med. Chem." } -MACRO { jnprdf } { "J. Nat. Prod." } -MACRO { joceah } { "J.~Org.\ Chem." } -MACRO { jpcafh } { "J.~Phys.\ Chem.~A" } -MACRO { jpcbfk } { "J.~Phys.\ Chem.~B" } -MACRO { jpccck } { "J.~Phys.\ Chem.~C" } -MACRO { jpclcd } { "J.~Phys.\ Chem.\ Lett." } -MACRO { jprobs } { "J.~Proteome Res." } -MACRO { jacsat } { "J.~Am.\ Chem.\ Soc." } -MACRO { langd5 } { "Langmuir" } -MACRO { mamobx } { "Macromolecules" } -MACRO { mpohbp } { "Mol.\ Pharm." } -MACRO { nalefd } { "Nano Lett." } -MACRO { orlef7 } { "Org.\ Lett." } -MACRO { oprdfk } { "Org.\ Proc.\ Res.\ Dev." } -MACRO { orgnd7 } { "Organometallics" } - - -READ - -EXECUTE { initialize.control.values } - -EXECUTE { initialize.count.entries } - -EXECUTE { initialize.name.separator } - -EXECUTE { initialize.tracker } - -ITERATE { calculate.names } - -ITERATE { count.entries } - -EXECUTE { begin.bib } - -ITERATE { call.type$ } - -EXECUTE { end.bib } -%% -%% Originally developed by Mats Dahlgren -%% Copyright (C) 1996-1998 by Mats Dahlgren -%% Copyright (C) 2008-2022 by -%% Joseph Wright -%% -%% Part of this bundle is derived from cite.sty, to which the -%% following license applies: -%% Copyright (C) 1989-2009 by Donald Arseneau -%% These macros may be freely transmitted, reproduced, or -%% modified provided that this notice is left intact. -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% http://www.latex-project.org/lppl.txt -%% -%% This work is "maintained" (as per LPPL maintenance status) by -%% Joseph Wright. -%% -%% This work consists of the files achemso.dtx, -%% achemso-demo.bib and -%% achemso-demo.tex, -%% and the derived files achemso.cls, -%% achemso.ins, -%% achemso.pdf, -%% achemso.sty, -%% natmove.sty and -%% a number of configuration files. -%% -%% -%% End of file `biochem.bst'. diff --git a/_extensions/quarto-journals/acs/doc-class.tex b/_extensions/quarto-journals/acs/doc-class.tex deleted file mode 100644 index 988de81..0000000 --- a/_extensions/quarto-journals/acs/doc-class.tex +++ /dev/null @@ -1,5 +0,0 @@ -\documentclass[journal=$journal.id$,manuscript=$journal.type$$if(journal.layout)$,layout=$journal.layout$$endif$$if(journal.hide-email)$,email=false$endif$]{achemso} -\usepackage[version=3]{mhchem} -\newcommand*\mycommand[1]{\texttt{\emph{#1}}} - - diff --git a/_extensions/quarto-journals/acs/title.tex b/_extensions/quarto-journals/acs/title.tex deleted file mode 100644 index 5ebf2c2..0000000 --- a/_extensions/quarto-journals/acs/title.tex +++ /dev/null @@ -1,40 +0,0 @@ -$for(by-author)$ -\author{$by-author.name.literal$} -$if(by-author.affiliations)$ -$if(by-author.affiliations/first)$ -$for(by-author.affiliations/first)$ -\affiliation{$_affiliation.tex()$} -$endfor$ -$if(by-author.affiliations/rest/first)$ -$for(by-author.affiliations/rest/first)$ -\affiliation{$_affiliation.tex()$} -$endfor$ -$endif$ -$endif$ -$endif$ - -$if(by-author.note.text)$ -\altaffiliation{$by-author.note.text$} -$endif$ - -$if(by-author.email)$ -\email{$by-author.email$} -$endif$ -$if(by-author.phone)$ -\phone{$by-author.phone$} -$endif$ -$if(by-author.fax)$ -\fax{$by-author.fax$} -$endif$ -$endfor$ - -$if(abbr)$ -\abbreviations{$journal.abbreviations$} -$endif$ - -$if(keywords)$ -\keywords{$keywords$} -$endif$ - -\title[$title-short$]{$title$} -\makeatletter \ No newline at end of file diff --git a/figures/demo.RDS b/figures/demo.RDS new file mode 100644 index 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2.5 +5.0 +7.5 +10.0 + + + + + + + + +2.5 +5.0 +7.5 +10.0 +x +y + + diff --git a/index.qmd b/index.qmd old mode 100644 new mode 100755 index 8651aaf..c04963a --- a/index.qmd +++ b/index.qmd @@ -4,13 +4,10 @@ author: "" engine: knitr --- - ```{r} #| echo: false #| out-width: 100% -#| eval: false -#| include: false -# dwfun::ggsavep("./figures/GA.pdf", loadit = TRUE) +dwfun::ggsavep("./figures/GA20240729.pdf", loadit = TRUE) ```