diff options
author | Norbert Preining <norbert@preining.info> | 2021-07-10 03:00:58 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2021-07-10 03:00:58 +0000 |
commit | a429edf534c5a39d3dc3112b4ef98d0c2cfb9e76 (patch) | |
tree | f350aec8eb09b69d3a1f1875382a98219321ba8c /biblio/bibtex/contrib/newcastle-bst | |
parent | 86f3f0ba5c374ad17aaefc15e92e4ab47edf821e (diff) |
CTAN sync 202107100300
Diffstat (limited to 'biblio/bibtex/contrib/newcastle-bst')
-rw-r--r-- | biblio/bibtex/contrib/newcastle-bst/README.md | 33 | ||||
-rw-r--r-- | biblio/bibtex/contrib/newcastle-bst/bibliography.bib | 149 | ||||
-rw-r--r-- | biblio/bibtex/contrib/newcastle-bst/newcastle-bst.pdf | bin | 0 -> 162951 bytes | |||
-rw-r--r-- | biblio/bibtex/contrib/newcastle-bst/newcastle-bst.tex | 205 | ||||
-rw-r--r-- | biblio/bibtex/contrib/newcastle-bst/newcastle.bst | 1603 |
5 files changed, 1990 insertions, 0 deletions
diff --git a/biblio/bibtex/contrib/newcastle-bst/README.md b/biblio/bibtex/contrib/newcastle-bst/README.md new file mode 100644 index 0000000000..e17249e660 --- /dev/null +++ b/biblio/bibtex/contrib/newcastle-bst/README.md @@ -0,0 +1,33 @@ +# newcastle-bst: Harvard referencing style as recommended by Newcastle University + +This package provides a [BibTeX](https://ctan.org/pkg/README.md/BibTeX) style to format reference lists in the [Harvard at Newcastle](https://libguides.ncl.ac.uk/managing/harvard) style recommended by Newcastle University. It should be used alongside [natbib](https://ctan.org/pkg/README.md/natbib) for citations. + +## Installation +The required style file is available from [GitHub](https://github.com/LukeBriggsDev/Newcastle-BibTeX) and [CTAN](https://ctan.org/pkg/newcastle-bst). You can use the style by copying it into your working directory containing your `.tex` file. You can also add it to your bst directory in your tex path to use it without having to copy it over each time. + +## Using the style +To use the style include this in your preamble: +```tex +\usepackage{natbib} +\usepackage[UKenglish]{isodate} +\bibliographystyle{newcastle} +``` + +Also remember to specify your `.bib` file at the end of the document: +```tex +\bibliography{file} +``` + +The easiest way to create .bib files for this style is through exporting entries from a reference manager such as [Mendeley](https://www.mendeley.com/). +However, some parts are not available through this (such as titleaddon for computer programs). +If you notice any discrepancies between generated references and the recommended styles then please raise this on [GitHub](https://github.com/LukeBriggsDev/Newcastle-BibTeX/issues) + +## License +Copyright 2021 Luke Briggs +This work consists of the documented `newcastle.bst` file. + +The text files contained in this work 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. + +This work has had no input from Newcastle University and is done entirely in order to help other students create bibliography quicker. + +This work is ‘maintained’ (as per LPPL maintenance status) by Luke Briggs.
\ No newline at end of file diff --git a/biblio/bibtex/contrib/newcastle-bst/bibliography.bib b/biblio/bibtex/contrib/newcastle-bst/bibliography.bib new file mode 100644 index 0000000000..9544026f70 --- /dev/null +++ b/biblio/bibtex/contrib/newcastle-bst/bibliography.bib @@ -0,0 +1,149 @@ +@misc{Briggs2021, +author = {Briggs, Luke}, +title = {{Pepys}}, +titleaddon = {(v.1) [computer program]}, +url = {https://lukebriggs.dev/pepys}, +year = {2021}, +} +@book{bnf2020, +year = {2020}, +title = {{British National Formulary}}, +edition = {79}, +address = {London}, +publisher = {Pharmaceutical Press} +} +@book{rothman.etal2008me, +editor = {Kenneth J. Rothman and Sander Greenland and Timothy L. Lash}, +year = {2008}, +title = {Modern Epidemiology}, +edition = {3}, +address = {Philadelphia, Pa.}, +publisher = {Lippincott Williams \& Wilkins} +} +@book{Ammann2016, +abstract = {Extensively class-tested, this textbook takes an innovative approach to software testing: it defines testing as the process of applying a few well-defined, general-purpose test criteria to a structure or model of the software. It incorporates the latest innovations in testing, including techniques to test modern types of software such as OO, web applications, and embedded software. The book contains numerous examples throughout. An instructor's solution manual, PowerPoint slides, sample syllabi, additional examples and updates, testing tools for students, and example software programs in Java are available on an extensive website.}, +address = {Cambridge, United Kingdom}, +author = {Ammann, Paul and Offutt, Jeff}, +doi = {10.1017/9781316771273}, +edition = {2}, +pages = {26}, +publisher = {Cambridge University Press}, +title = {{Introduction to Software Testing}}, +year = {2016} +} +@incollection{Cohn2005, +address = {Hoboken, New Jersey}, +author = {Cohn, Mike}, +booktitle = {Agile Estimating and Planning}, +chapter = {1}, +edition = {1}, +isbn = {0-13-147941-5}, +pages = {3--9}, +publisher = {Prentice Hall}, +title = {{The Purpose of Planning}}, +year = {2005} +} +@misc{Peters2004, +author = {Peters, Tim}, +booktitle = {Python Software Foundation}, +title = {{PEP 20 -- The Zen of Python}}, +url = {https://www.python.org/dev/peps/pep-0020/}, +year = {2004} +} +@misc{UKGovernment2015, +author = {{UK Government}}, +pages = {6}, +title = {{BULK DATA TRANSFER:ADDITIONAL VALIDATION FOR CAS UPLOAD}}, +url = {https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/488478/Bulk_Data_Transfer_-_additional_validation_valid_from_12_November_2015.pdf}, +urldate = {2021-02-10}, +year = {2015} +} +@incollection{Thomas1999, +address = {Reading. MA}, +author = {Thomas, David and Hunt, Andrew}, +booktitle = {The Pragmatic Programmer}, +publisher = {Addison-Wesley}, +title = {{The Evils of Duplication}}, +year = {1999} +} +@incollection{Beck2002, +address = {Boston, MA}, +author = {Beck, Kent}, +booktitle = {Test Driven Development By Example}, +edition = {1}, +pages = {xi}, +publisher = {Addison-Wesley}, +title = {{Preface}}, +year = {2002} +} +@techreport{Hursch1995, +address = {Boston, MA}, +author = {H{\"{u}}rsch, Walter L. and Lopes, Cristina Videira}, +institution = {College of Computer Science, Northeastern University}, +title = {{Separation of Concerns}}, +year = {1995} +} +@inproceedings{Stroustrup2014, +author = {Stroustrup, Bjarne}, +booktitle = {CppCon 2014}, +title = {{Make Simple Tasks Simple!}}, +year = {2014} +} +@incollection{Cunningham2008, +address = {Boston, MA}, +author = {Cunningham, Ward}, +booktitle = {Clean Code: A Handbook of Agile Software Craftsmanship}, +editor = {Martin, Robert C.}, +isbn = {978-0-13-235088-4}, +pages = {11}, +publisher = {Pearson Education, Inc}, +title = {{Ward Cunningham, inventor of Wiki, inventor of Fit, coinventor of eXtreme Programming.}}, +year = {2008} +} +@misc{Peters2004, +author = {Peters, Tim}, +booktitle = {Python Software Foundation}, +title = {{PEP 20 -- The Zen of Python}}, +url = {https://www.python.org/dev/peps/pep-0020/}, +urldate = {2020-01-03}, +year = {2004} +} +@misc{Letouzey2016, +abstract = {What is Technical Debt? Where does it comes from?}, +author = {Letouzey, Jean Louis and Whelan, Declan}, +booktitle = {Agile Alliance}, +pages = {4}, +title = {{Introduction to the Technical Debt Concept}}, +url = {https://www.agilealliance.org/wp-content/uploads/2016/05/IntroductiontotheTechnicalDebtConcept-V-02.pdf}, +urldate = {2020-01-02}, +year = {2016} +} +@book{Martin2008, +address = {Boston, MA}, +author = {Martin, Robert C.}, +isbn = {978-0-13-235088-4}, +publisher = {Pearson Education, Inc}, +title = {{Clean Code: A Handbook of Agile Software Craftsmanship}}, +year = {2008} +} +@article{Stevens1999, +abstract = {Considerations and techniques are proposed that reduce the complexity of programs by dividing them into functional modules. This can make it possible to create complex systems from simple, independent, reusable modules. Debugging and modifying programs, reconfiguring I/O devices, and managing large programming projects can all be greatly simplified. And, as the module library grows, increasingly sophisticated programs can be implemented using less and less new code.}, +author = {Stevens, W. P. and Myers, G. J. and Constantine, L. L.}, +doi = {10.1147/sj.382.0231}, +file = {:C\:/Users/lukeb/AppData/Local/Mendeley Ltd./Mendeley Desktop/Downloaded/Stevens, Myers, Constantine - 1999 - Structured design.pdf:pdf}, +issn = {00188670}, +journal = {IBM Systems Journal}, +number = {2}, +pages = {231--256}, +title = {{Structured design}}, +volume = {38}, +year = {1999} +} +@article{haurant2004bbh, +author = {Haurant, S.}, +year = {2004}, +title = {Britain's Borrowing Hits \pounds 1 Trillion}, +journal = {The {Guardian}}, +volume = {29 July}, +pages = {16c} +} diff --git a/biblio/bibtex/contrib/newcastle-bst/newcastle-bst.pdf b/biblio/bibtex/contrib/newcastle-bst/newcastle-bst.pdf Binary files differnew file mode 100644 index 0000000000..95184d3b31 --- /dev/null +++ b/biblio/bibtex/contrib/newcastle-bst/newcastle-bst.pdf diff --git a/biblio/bibtex/contrib/newcastle-bst/newcastle-bst.tex b/biblio/bibtex/contrib/newcastle-bst/newcastle-bst.tex new file mode 100644 index 0000000000..78806fb671 --- /dev/null +++ b/biblio/bibtex/contrib/newcastle-bst/newcastle-bst.tex @@ -0,0 +1,205 @@ +%! Author = Luke Briggs +%! Date = 2021/07/09 + +\documentclass{article} +\usepackage[comma]{natbib} +\usepackage[colorlinks=true]{hyperref} +\usepackage{listings} +\usepackage[margin=2cm]{geometry} +\usepackage[UKenglish]{isodate} +\usepackage{xcolor} +\usepackage{bibentry} +\bibliographystyle{newcastle} +\definecolor{codebg}{RGB}{246, 245, 244} +\lstdefinestyle{mystyle}{ + basicstyle=\linespread{1.1}\ttfamily\footnotesize, + backgroundcolor=\color{codebg} +} +\lstset{showstringspaces=false, style=mystyle} + +\begin{document} +\nobibliography{bibliography} +\title{newcastle-bst: Harvard referencing style as recommended by Newcastle University} +\author{Maintainer: Luke Briggs} +\date{Package v1.0 - \printdate{2021-07-09}} +\maketitle + +\section{Introduction} +This package provides a \href{https://ctan.org/pkg/README.md/BibTeX}{BibTeX} style to format reference lists in the \href{https://libguides.ncl.ac.uk/managing/harvard}{Harvard at Newcastle} style recommended by Newcastle University. +It should be used alongside \href{https://ctan.org/pkg/README.md/natbib}{natbib} for citations. + +\subsection{Installation} +The required style file is available from \href{https://github.com/LukeBriggsDev/Newcastle-BibTeX}{GitHub} and \href{https://ctan.org/pkg/newcastle-bst}{CTAN}. +You can use the style by copying it into your working directory containing your `.tex` file. +You can also add it to your bst directory in your tex path to use it without having to copy it over each time. + +\subsection{Using the style} +To use the style include this in your preamble: +\begin{lstlisting}[language=tex] +\usepackage{natbib} +\usepackage[UKenglish]{isodate} +\bibliographystyle{newcastle} +\end{lstlisting} + +Also remember to specify your `.bib` file at the end of the document: +\begin{lstlisting}[language=tex] +\bibliography{file} +\end{lstlisting} + +This style is designed to be used alongside \href{https://ctan.org/pkg/natbib}{natbib} and it is the commands from this package that you should use when citing: +\begin{itemize} + \item \lstinline!\citet{key} ==>> Jones et al. (1990)! + \item \lstinline!\citet*{key} ==>> Jones, Baker, and Smith (1990)! + \item \lstinline!\citep{key} ==>> (Jones et al., 1990)! + \item \lstinline!\citep*{key} ==>> (Jones, Baker, and Smith, 1990)! + \item \lstinline!\citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)! + \item \lstinline!\citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990)! + \item \lstinline!\citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., 1990, p. 32)! + \item \lstinline!\citeauthor{key} ==>> Jones et al.! + \item \lstinline!\citeauthor*{key} ==>> Jones, Baker, and Smith! + \item \lstinline!\citeyear{key} ==>> 1990! +\end{itemize} + +\section{Examples} + +The easiest way to create .bib files for this style is through exporting entries from a reference manager such as \href{https://www.mendeley.com/}{Mendeley}. +However, some parts are not available through this (such as titleaddon for computer programs). +If you notice any discrepancies between generated references and the recommended styles then please raise this on \href{https://github.com/LukeBriggsDev/Newcastle-BibTeX/issues}{GitHub} + +\subsection{Books and book chapters} +\subsubsection*{Book with author(s)} + + +\bibentry{Ammann2016} + +\begin{lstlisting} +@book{Ammann2016, +address = {Cambridge, United Kingdom}, +author = {Ammann, Paul and Offutt, Jeff}, +doi = {10.1017/9781316771273}, +edition = {2}, +pages = {26}, +publisher = {Cambridge University Press}, +title = {{Introduction to Software Testing}}, +year = {2016} +} +\end{lstlisting} + +\subsubsection*{Book with editor(s) instead of authors} + +\bibentry{rothman.etal2008me} + +\begin{lstlisting} +@book{rothman.etal2008me, +editor = {Kenneth J. Rothman and Sander Greenland and Timothy L. Lash}, +year = {2008}, +title = {Modern Epidemiology}, +edition = {3}, +address = {Philadelphia, Pa.}, +publisher = {Lippincott Williams \& Wilkins} +} +\end{lstlisting} + +\subsubsection*{Book known by its title} + +\bibentry{bnf2020} + +\begin{lstlisting} +@book{bnf2020, +year = {2020}, +title = {{British National Formulary}}, +edition = {79}, +address = {London}, +publisher = {Pharmaceutical Press} +} +\end{lstlisting} + +\subsubsection*{One chapter from a collection (by different authors) in an edited book} + +Cunningham, W. (2008) ‘Ward Cunningham, inventor of Wiki, inventor of Fit, coinventor of eXtreme Programming.’In R.C. Martin, (ed.)Clean Code: A Handbook of Agile Software Craftsmanship. Boston, MA: Pearson Education,Inc, p. 11. + +\begin{lstlisting} +@incollection{Cunningham2008, +address = {Boston, MA}, +author = {Cunningham, Ward}, +booktitle = {Clean Code: A Handbook of Agile Software Craftsmanship}, +editor = {Martin, Robert C.}, +isbn = {978-0-13-235088-4}, +pages = {11}, +publisher = {Pearson Education, Inc}, +title = {{Ward Cunningham, inventor of Wiki, inventor of Fit, coinventor of eXtreme Programming.}}, +year = {2008} +} +\end{lstlisting} + +\subsection{Articles and periodicals} +\subsubsection{Journal article} + +Stevens, W.P., Myers, G.J. and Constantine, L.L. (1999) ‘Structured design’.IBM Systems Journal, 38(2), pp.231–256. doi: 10.1147/sj.382.0231.4 + +\begin{lstlisting} +@article{Stevens1999, +author = {Stevens, W. P. and Myers, G. J. and Constantine, L. L.}, +doi = {10.1147/sj.382.0231}, +issn = {00188670}, +journal = {IBM Systems Journal}, +number = {2}, +pages = {231--256}, +title = {{Structured design}}, +volume = {38}, +year = {1999} +} +\end{lstlisting} + +\subsubsection{Newspaper article} + +Haurant, S. (2004) ‘Britain’s borrowing hits£1 trillion’.The Guardian, 29 July, p. 16c. + +\begin{lstlisting} +@article{haurant2004bbh, +author = {Haurant, S.}, +year = {2004}, +title = {Britain's Borrowing Hits \pounds 1 Trillion}, +journal = {The {Guardian}}, +volume = {29 July}, +pages = {16c} +} +\end{lstlisting} + +\subsection{Digital media} +\subsubsection{Website/webpage} + +\bibentry{Letouzey2016} + +\begin{lstlisting} +@misc{Letouzey2016, +abstract = {What is Technical Debt? Where does it comes from?}, +author = {Letouzey, Jean Louis and Whelan, Declan}, +booktitle = {Agile Alliance}, +pages = {4}, +title = {{Introduction to the Technical Debt Concept}}, +url = {https://www.agilealliance.org/wp-content/uploads/2016/05/ + IntroductiontotheTechnicalDebtConcept-V-02.pdf}, +urldate = {2020-01-02}, +year = {2016} +} +\end{lstlisting} + +\subsubsection{Computer Program} + +\bibentry{Briggs2021} + +\begin{lstlisting} +@misc{Briggs2021, +author = {Briggs, Luke}, +title = {{Pepys}}, +titleaddon = {(v.1) [computer program]}, +url = {https://lukebriggs.dev/pepys}, +year = {2021}, +} +\end{lstlisting} + +\clearpage + +\end{document} + diff --git a/biblio/bibtex/contrib/newcastle-bst/newcastle.bst b/biblio/bibtex/contrib/newcastle-bst/newcastle.bst new file mode 100644 index 0000000000..4148fe54b9 --- /dev/null +++ b/biblio/bibtex/contrib/newcastle-bst/newcastle.bst @@ -0,0 +1,1603 @@ +%% +%% This is file `newcastle.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `ay,nat,vonx,nm-rvvc,keyxyr,dt-beg,yr-par,yrp-x,note-yr,tit-qq,qt-s,qx,volp-com,jwdpg,pp-last,num-xser,ser-vol,ser-ed,add-pub,pre-edn,doi,edparc,pp,ed,abr,xedn,and-xcom,etal-xc,etal-it,url,url-blk,nfss,') +%% ---------------------------------------- +%% *** For Newcastle University students *** +%% +%% Copyright 1994-2011 Patrick W Daly +%% 2021 Luke Briggs + % =============================================================== + % 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}[2011/11/18 4.33 (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., 1990, p. 32) + % \citeauthor{key} ==>> Jones et al. + % \citeauthor*{key} ==>> Jones, Baker, and Smith + % \citeyear{key} ==>> 1990 + %--------------------------------------------------------------------- + % OTHER REQUIREMENTS: + % - isodate + +ENTRY + { address + author + booktitle + chapter + doi + edition + editor + eid + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + url + urldate + titleaddon + volume + year + } + {} + { 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} +{ 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} +{ + add.blank +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {non.stop} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} +FUNCTION {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.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chap." } + +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."} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +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"} +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 + duplicate$ empty$ + { pop$ "" } + { "Available at: \url{" swap$ * "}" * } + if$ +} + +FUNCTION {format.urldate} +{ + urldate + duplicate$ empty$ + { pop$ "" } + { "(Accessed: \printdate{" swap$ * "})" *} + if$ +} + +INTEGERS { nameptr namesleft numnames } + + +STRINGS { bibinfo} + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, jj}{, f{.}.}" + 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 emphasize * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + '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 emphasize * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +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 empty$ + { "" } + { + new.block + "\doi{" doi * "}" * + } + 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.misctitle} +{ title + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + "\emph{" swap$ * + "}" * + } + if$ +} +FUNCTION {format.title} +{ title + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + "\enquote{" swap$ * + "}" * + } + if$ +} +FUNCTION {format.titleaddon} +{ + titleaddon empty$ + { "" } + { titleaddon } + if$ + +} + +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 emphasize * + } + { + 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 {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} +{ 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$ + { + 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 {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 + { + 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 multi.page.check + 'bbl.pages + 'bbl.page + if$ + swap$ tie.or.space.prefix + "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$ + 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.chapter.pages} +{ chapter empty$ + { "" } + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + } + 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$ + { + "," * + " " * + 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$ + { + 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 {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.block + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + } + if$ + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ + format.doi output + new.block + format.url output + new.block + format.note 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 + new.block + format.number.series output + format.edition output + new.sentence + format.publisher.address output + } + { + new.block + format.book.crossref output.nonnull + } + if$ + format.doi output + new.block + format.url output + new.block + format.note 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.block + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check 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 + 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.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + format.edition output + new.sentence + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.pages "pages" output.check + format.doi output + new.block + format.url output + new.block + format.note 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.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.number.series output + format.edition output + format.chapter.pages output + new.sentence + format.publisher.address output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.pages "pages" output.check + format.doi output + new.block + format.url output + new.block + format.note 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.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.number.series 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 + } + if$ + format.pages "pages" output.check + format.doi output + new.block + format.url output + new.block + format.note 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 + organization address new.block.checkb + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition 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 + author format.key output + format.date "year" output.check + date.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.doi output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.misctitle output + format.titleaddon output + new.block + howpublished "howpublished" bibinfo.check output + format.doi output + new.block + format.url output + new.block + format.urldate output + new.block + format.note output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.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.doi output + new.block + format.url output + new.block + format.note 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 + new.sentence + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + 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 + author format.key output + format.date "year" output.check + date.block + format.title + "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.doi output + new.block + format.url output + new.block + format.note 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 + new.block + format.url output + new.block + format.note "note" output.check + 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 emphasize * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal emphasize * + } + { 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$ + short.list key field.or.null = or + { 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" 't := } + 'skip$ + if$ + t sortify * + } + { 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 last.extra.num.extended last.extra.num.blank number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + "a" chr.to.int$ #1 - 'last.extra.num.blank := + last.extra.num.blank 'last.extra.num.extended := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num "z" chr.to.int$ > + { "a" chr.to.int$ 'last.extra.num := + last.extra.num.extended #1 + 'last.extra.num.extended := + } + 'skip$ + if$ + last.extra.num.extended last.extra.num.blank > + { last.extra.num.extended int.to.chr$ + last.extra.num int.to.chr$ + * 'extra.label := } + { last.extra.num int.to.chr$ 'extra.label := } + if$ + } + { "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$ + "\newcommand{\enquote}[1]{`#1'}" + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\providecommand{\url}[1]{\texttt{#1}}" + write$ newline$ + "\providecommand{\urlprefix}{ Available at: }" + write$ newline$ + "\expandafter\ifx\csname urlstyle\endcsname\relax" + write$ newline$ + " \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else" + write$ newline$ + " \providecommand{\doi}{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `newcastle.bst'.
\ No newline at end of file |