From 5cb64616be8bf599f2f0243c1590d8f96cdcdf99 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 25 Feb 2021 22:08:34 +0000 Subject: bath-bst (25feb21) git-svn-id: svn://tug.org/texlive/trunk@57925 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/bibtex/bst/bath-bst/bath.bst | 152 ++++++--- Master/texmf-dist/bibtex/bst/bath-bst/bathx.bst | 194 +++++++---- Master/texmf-dist/doc/bibtex/bath-bst/README.md | 10 +- .../texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.bib | 35 ++ .../texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.pdf | Bin 325472 -> 336669 bytes .../texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.tex | 97 +++++- Master/texmf-dist/doc/bibtex/bath-bst/bath-bst.bib | 35 ++ Master/texmf-dist/doc/bibtex/bath-bst/bath-bst.pdf | Bin 557273 -> 574847 bytes .../texmf-dist/source/bibtex/bath-bst/bath-bst.dtx | 359 +++++++++++++++++---- .../texmf-dist/source/bibtex/bath-bst/bath-bst.ins | 52 --- 10 files changed, 712 insertions(+), 222 deletions(-) delete mode 100644 Master/texmf-dist/source/bibtex/bath-bst/bath-bst.ins (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/bibtex/bst/bath-bst/bath.bst b/Master/texmf-dist/bibtex/bst/bath-bst/bath.bst index f3aea4b2043..06a0aa908a4 100644 --- a/Master/texmf-dist/bibtex/bst/bath-bst/bath.bst +++ b/Master/texmf-dist/bibtex/bst/bath-bst/bath.bst @@ -238,22 +238,21 @@ FUNCTION {either.or.check} if$ } FUNCTION {is.online} -{ type$ "software" = - { #0 } - { url empty$ doi empty$ and - { type$ "online" = - { #1 } - { #0 } - if$ - } +{ url empty$ doi empty$ and + { type$ "online" = { #1 } + { #0 } if$ } + { #1 } if$ } FUNCTION {bbl.and} { "and"} +FUNCTION {bbl.byeditor} +{ "Ed. by" } + FUNCTION {bbl.etal} { "et~al." } @@ -485,6 +484,14 @@ FUNCTION {format.names.ed} FUNCTION {format.authors} { author "author" format.names } +FUNCTION {format.byeditors} +{ editor "editor" format.names.ed duplicate$ empty$ 'skip$ + { bbl.byeditor + " " * + swap$ * + } + if$ +} FUNCTION {get.bbl.editor} { editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } FUNCTION {format.editors} @@ -661,23 +668,33 @@ FUNCTION {get.title.addenda} continue.clause format.titleaddon output continue.clause + type$ "reference" = + { format.byeditors output } + 'skip$ + if$ format.translators output } FUNCTION {word.in} { bbl.in capitalize ":" * " " * } -FUNCTION {format.booktitle} +FUNCTION {format.label.booktitle} { booktitle duplicate$ empty$ 'skip$ { "t" change.case$ } if$ "booktitle" bibinfo.check +} +FUNCTION {format.booktitle} +{ format.label.booktitle emphasize } FUNCTION {format.in.ed.booktitle} -{ format.booktitle duplicate$ empty$ 'skip$ - { editor "editor" format.names.ed duplicate$ empty$ 'pop$ +{ format.booktitle + duplicate$ empty$ + 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ { "," * " " * get.bbl.editor add.period$ @@ -1506,13 +1523,17 @@ FUNCTION {book} { output.bibitem author empty$ { editor empty$ - { format.btitle "title" output.check + type$ "reference" = + or + { type$ "reference" = + { format.title "title" output.check } + { format.btitle "title" output.check } + if$ format.date "year" output.check year empty$ 'skip$ { date.block } if$ get.title.addenda } { format.editors "author and editor" output.check - editor format.key output format.date "year" output.check date.block format.btitle "title" output.check @@ -1598,6 +1619,8 @@ FUNCTION {inbook} date.block format.btitle "title" output.check get.title.addenda + new.block + format.edition output crossref missing$ { format.publisher.address output format.bvolume output @@ -1611,7 +1634,6 @@ FUNCTION {inbook} format.book.crossref output.nonnull } if$ - format.edition output new.block format.note output new.block @@ -1621,22 +1643,49 @@ FUNCTION {inbook} } 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 - get.title.addenda + author empty$ + { type$ "inreference" = + { format.label.booktitle output } + { format.title "title" output.check } + if$ + format.date "year" output.check + year empty$ 'skip$ { date.block } if$ + type$ "inreference" = + 'skip$ + { get.title.addenda } + if$ + } + { format.authors output.nonnull + format.date "year" output.check + date.block + format.title "title" output.check + get.title.addenda + } + if$ new.block crossref missing$ - { format.in.ed.booktitle "booktitle" output.check + { type$ "inreference" = + author empty$ + and + { format.byeditors output } + { format.in.ed.booktitle "booktitle" output.check } + if$ new.block + format.edition output + new.block + type$ "inreference" = + author empty$ + and + { format.btitle "title" output.check + get.title.addenda + new.block + } + 'skip$ + if$ format.publisher.address output format.bvolume output format.number.series output format.chapter.pages output - new.sentence - format.edition output } { format.incoll.inproc.crossref output.nonnull format.chapter.pages output @@ -2052,6 +2101,9 @@ FUNCTION {letter} 'article if$ } +FUNCTION {collection} { book } +FUNCTION {reference} { book } +FUNCTION {inreference} { incollection } FUNCTION {audio} { booklet } FUNCTION {movie} { booklet } FUNCTION {music} { booklet } @@ -2161,18 +2213,28 @@ FUNCTION {editor.key.label} FUNCTION {author.key.label} { author empty$ { key empty$ - { title empty$ - { cite$ #1 #3 substring$ } - { title - type$ "article" = - type$ "incollection" = - or - type$ "inproceedings" = - or - type$ "misc" = - or - 'skip$ - { emphasize } + { type$ "inreference" = + booktitle empty$ not + and + { booktitle } + { title empty$ + { cite$ #1 #3 substring$ } + { title + type$ "article" = + type$ "incollection" = + or + type$ "inproceedings" = + or + type$ "reference" = + author empty$ + and + or + type$ "misc" = + or + 'skip$ + { emphasize } + if$ + } if$ } if$ @@ -2283,15 +2345,21 @@ FUNCTION {editor.sort} } FUNCTION {author.sort} { author empty$ - { title empty$ - { key empty$ - { "to sort, need author, title, or key in " cite$ * warning$ - "" + { type$ "inreference" = + booktitle empty$ not + and + { booktitle sort.format.title } + { title empty$ + { key empty$ + { "to sort, need author, title, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ } - { key sortify } + { title sort.format.title } if$ } - { title sort.format.title } if$ } { author sort.format.names } @@ -2425,6 +2493,6 @@ FUNCTION {end.bib} } EXECUTE {end.bib} %% -%% Copyright (C) 2020 by University of Bath +%% Copyright (C) 2016-2021 by University of Bath %% %% End of file `bath.bst'. diff --git a/Master/texmf-dist/bibtex/bst/bath-bst/bathx.bst b/Master/texmf-dist/bibtex/bst/bath-bst/bathx.bst index e7f61277456..41ec643e053 100644 --- a/Master/texmf-dist/bibtex/bst/bath-bst/bathx.bst +++ b/Master/texmf-dist/bibtex/bst/bath-bst/bathx.bst @@ -238,22 +238,21 @@ FUNCTION {either.or.check} if$ } FUNCTION {is.online} -{ type$ "software" = - { #0 } - { url empty$ doi empty$ and - { type$ "online" = - { #1 } - { #0 } - if$ - } +{ url empty$ doi empty$ and + { type$ "online" = { #1 } + { #0 } if$ } + { #1 } if$ } FUNCTION {bbl.and} { "and"} +FUNCTION {bbl.byeditor} +{ "Ed. by" } + FUNCTION {bbl.etal} { "et~al." } @@ -485,6 +484,14 @@ FUNCTION {format.names.ed} FUNCTION {format.authors} { author "author" format.names } +FUNCTION {format.byeditors} +{ editor "editor" format.names.ed duplicate$ empty$ 'skip$ + { bbl.byeditor + " " * + swap$ * + } + if$ +} FUNCTION {get.bbl.editor} { editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } FUNCTION {format.editors} @@ -661,46 +668,70 @@ FUNCTION {get.title.addenda} continue.clause format.titleaddon output continue.clause - library empty$ - type$ "image" = - or is.online - and journal empty$ and - type empty$ - type$ "booklet" = not - type$ "audio" = not - and - type$ "video" = not - and - type$ "music" = not - and - type$ "movie" = not - and + booktitle empty$ + type$ "inreference" = + author empty$ + and + or + and + library empty$ + type$ "image" = + or + and + type$ "software" = not + and + type empty$ + type$ "booklet" = not + type$ "audio" = not + and + type$ "video" = not + and + type$ "music" = not + and + type$ "movie" = not + and or and { bbl.online output } 'skip$ if$ continue.clause + type$ "reference" = + { format.byeditors output } + 'skip$ + if$ format.translators output } FUNCTION {word.in} { bbl.in capitalize ":" * " " * } -FUNCTION {format.booktitle} +FUNCTION {format.label.booktitle} { booktitle duplicate$ empty$ 'skip$ { "t" change.case$ } if$ "booktitle" bibinfo.check +} +FUNCTION {format.booktitle} +{ format.label.booktitle emphasize } FUNCTION {format.in.ed.booktitle} -{ format.booktitle duplicate$ empty$ 'skip$ - { editor "editor" format.names.ed duplicate$ empty$ 'pop$ +{ format.booktitle + duplicate$ empty$ + 'skip$ + { + is.online + { " " * + bbl.online * + } + 'skip$ + if$ + editor "editor" format.names.ed duplicate$ empty$ 'pop$ { "," * " " * get.bbl.editor add.period$ @@ -1556,13 +1587,17 @@ FUNCTION {book} { output.bibitem author empty$ { editor empty$ - { format.btitle "title" output.check + type$ "reference" = + or + { type$ "reference" = + { format.title "title" output.check } + { format.btitle "title" output.check } + if$ format.date "year" output.check year empty$ 'skip$ { date.block } if$ get.title.addenda } { format.editors "author and editor" output.check - editor format.key output format.date "year" output.check date.block format.btitle "title" output.check @@ -1648,6 +1683,8 @@ FUNCTION {inbook} date.block format.btitle "title" output.check get.title.addenda + new.block + format.edition output crossref missing$ { format.publisher.address output format.bvolume output @@ -1661,7 +1698,6 @@ FUNCTION {inbook} format.book.crossref output.nonnull } if$ - format.edition output new.block format.note output new.block @@ -1671,22 +1707,49 @@ FUNCTION {inbook} } 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 - get.title.addenda + author empty$ + { type$ "inreference" = + { format.label.booktitle output } + { format.title "title" output.check } + if$ + format.date "year" output.check + year empty$ 'skip$ { date.block } if$ + type$ "inreference" = + 'skip$ + { get.title.addenda } + if$ + } + { format.authors output.nonnull + format.date "year" output.check + date.block + format.title "title" output.check + get.title.addenda + } + if$ new.block crossref missing$ - { format.in.ed.booktitle "booktitle" output.check + { type$ "inreference" = + author empty$ + and + { format.byeditors output } + { format.in.ed.booktitle "booktitle" output.check } + if$ + new.block + format.edition output new.block + type$ "inreference" = + author empty$ + and + { format.btitle "title" output.check + get.title.addenda + new.block + } + 'skip$ + if$ format.publisher.address output format.bvolume output format.number.series output format.chapter.pages output - new.sentence - format.edition output } { format.incoll.inproc.crossref output.nonnull format.chapter.pages output @@ -2102,6 +2165,9 @@ FUNCTION {letter} 'article if$ } +FUNCTION {collection} { book } +FUNCTION {reference} { book } +FUNCTION {inreference} { incollection } FUNCTION {audio} { booklet } FUNCTION {movie} { booklet } FUNCTION {music} { booklet } @@ -2211,18 +2277,28 @@ FUNCTION {editor.key.label} FUNCTION {author.key.label} { author empty$ { key empty$ - { title empty$ - { cite$ #1 #3 substring$ } - { title - type$ "article" = - type$ "incollection" = - or - type$ "inproceedings" = - or - type$ "misc" = - or - 'skip$ - { emphasize } + { type$ "inreference" = + booktitle empty$ not + and + { booktitle } + { title empty$ + { cite$ #1 #3 substring$ } + { title + type$ "article" = + type$ "incollection" = + or + type$ "inproceedings" = + or + type$ "reference" = + author empty$ + and + or + type$ "misc" = + or + 'skip$ + { emphasize } + if$ + } if$ } if$ @@ -2333,15 +2409,21 @@ FUNCTION {editor.sort} } FUNCTION {author.sort} { author empty$ - { title empty$ - { key empty$ - { "to sort, need author, title, or key in " cite$ * warning$ - "" + { type$ "inreference" = + booktitle empty$ not + and + { booktitle sort.format.title } + { title empty$ + { key empty$ + { "to sort, need author, title, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ } - { key sortify } + { title sort.format.title } if$ } - { title sort.format.title } if$ } { author sort.format.names } @@ -2475,6 +2557,6 @@ FUNCTION {end.bib} } EXECUTE {end.bib} %% -%% Copyright (C) 2020 by University of Bath +%% Copyright (C) 2016-2021 by University of Bath %% %% End of file `bathx.bst'. diff --git a/Master/texmf-dist/doc/bibtex/bath-bst/README.md b/Master/texmf-dist/doc/bibtex/bath-bst/README.md index 6aa0ea1e747..bfdef8de152 100644 --- a/Master/texmf-dist/doc/bibtex/bath-bst/README.md +++ b/Master/texmf-dist/doc/bibtex/bath-bst/README.md @@ -53,9 +53,10 @@ documentation. 2. Compile `bath-bst.dtx` with [LuaLaTeX] and BibTeX to generate the documentation. You will need, among other things, the [luatexja], - [adobemapping] and [ipaex] packages installed; this is just for the - documentation, not for the BibTeX style itself. To generate the version 1 - tests and documentation, compile `bath-bst-v1.tex` with LuaLaTeX and BibTeX. + [adobemapping], [ipaex] and [haranoaji] packages installed; this is just for + the documentation, not for the BibTeX style itself. To generate the version + 1 tests and documentation, compile `bath-bst-v1.tex` with LuaLaTeX and + BibTeX. 3. If you are using TeX Live, find your home TeX tree using the following command at the command prompt/terminal: @@ -93,10 +94,11 @@ documentation. [luatexja]: http://ctan.org/pkg/luatexja [adobemapping]: http://ctan.org/pkg/adobemapping [ipaex]: http://ctan.org/pkg/ipaex +[haranoaji]: http://ctan.org/pkg/haranoaji ## Licence -Copyright 2016-2020 University of Bath. +Copyright 2016-2021 University of Bath. This work consists of the documented LaTeX file bath-bst.dtx and a Makefile. diff --git a/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.bib b/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.bib index 799b638b140..7a8210ad9a7 100644 --- a/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.bib +++ b/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.bib @@ -35,6 +35,27 @@ titleaddon = {[Kindle version 4.18]}, address = {Bath}, publisher = {University of Bath}} +@reference{bnf2020, + year = {2020}, + title = {{British National Formulary}}, + edition = {79}, + address = {London}, + publisher = {Pharmaceutical Press}} +@inreference{asprin2020bnf, + title = {Asprin}, + year = {2020}, + booktitle = {{British National Formulary}}, + edition = {79}, + address = {London}, + publisher = {Pharmaceutical Press}} +@inreference{asprin2019bnf, + title = {Asprin}, + year = {2019}, + booktitle = {{British National Formulary \textup{[Online]}}}, + address = {London}, + publisher = {Pharmaceutical Press}, + url = {https://www.medicinescomplete.com/\#/content/bnf/_456850132}, + urldate = {26 November 2019}} @incollection{burchard1965hhl, author = {Burchard, J. E.}, year = {1965}, @@ -223,6 +244,20 @@ series = {1 inch to 2 miles}, address = {Devizes}, publisher = {Wiltshire Record Society}} +@manual{os2020bath, + author = {{Ordnance Survey}}, + year = {2020}, + title = {Street view map of {University of Bath}}, + series = {1:5000, OS VectorMap® Local}, + url = {https://digimap.edina.ac.uk/roam/map/os}, + urlyear = {30 April 2020}} +@manual{google2020harbourside, + author = {{Google}}, + year = {2020}, + title = {{Harbourside, Bristol}}, + series = {Google Maps}, + url = {https://www.google.co.uk/maps/place/Harbourside,+Bristol/}, + urldate = {2020-04-30}} @booklet{macbeth1948, year = {1948}, title = {Macbeth}, diff --git a/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.pdf b/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.pdf index 3e748e4f7d6..7fc28cd33f7 100644 Binary files a/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.pdf and b/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.pdf differ diff --git a/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.tex b/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.tex index e010b70d718..7f4fbc493dc 100644 --- a/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.tex +++ b/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.tex @@ -14,7 +14,7 @@ %% ---------------------------------------------------------------- %% \ProvidesFile{bath-bst-v1.tex} - [2020/01/16 v3.2 Harvard referencing style as recommended by the University of Bath Library] + [2021/02/25 v4.0 Harvard referencing style as recommended by the University of Bath Library] \documentclass[10pt,a4paper]{article} \usepackage[british]{babel} @@ -418,6 +418,10 @@ though of course any item might need adjustment to take account of differing con \end{Verbatim} \end{bibexbox} +\begin{info}\item +Internally, \texttt{collection} is an alias for \texttt{book}. +\end{info} + \subsubsection*{Electronic book} \begin{bibexbox}{haynes2014crc} @@ -451,6 +455,67 @@ though of course any item might need adjustment to take account of differing con \end{Verbatim} \end{bibexbox} +\subsubsection*{Book known by its title} + +\begin{info}\item +Unfortunately, to avoid breaking other use cases for the \texttt{book} entry +type, to achieve the following format you must use the non-standard +\texttt{reference} entry type. +\end{info} + +\begin{bibexbox}{bnf2020} + British National Formulary, 2020. 79th ed. London: Pharmaceutical Press. + \tcblower +\begin{Verbatim} +@reference{bnf2020, + year = {2020}, + title = {{British National Formulary}}, + edition = {79}, + address = {London}, + publisher = {Pharmaceutical Press}} +\end{Verbatim} +\end{bibexbox} + +\begin{info}\item +Similarly, to achieve the following formats you must use the non-standard +\texttt{inreference} entry type. +\end{info} + +\begin{bibexbox}{asprin2020bnf} + British National Formulary, 2020. 79th ed. \emph{Asprin.} London: Pharmaceutical Press. + \tcblower +\begin{Verbatim} +@inreference{asprin2020bnf, + title = {Asprin}, + year = {2020}, + booktitle = {{British National Formulary}}, + edition = {79}, + address = {London}, + publisher = {Pharmaceutical Press}} +\end{Verbatim} +\end{bibexbox} + +\begin{bibexbox}{asprin2019bnf} + British National Formulary, 2019. \emph{Aspirin} [Online]. London: Pharmaceutical Press. Available from: \url{https://www.medicinescomplete.com/\#/content/bnf/_456850132} [Accessed 26 November 2019]. + \tcblower +\begin{Verbatim} +@inreference{asprin2019bnf, + title = {Asprin}, + year = {2019}, + booktitle = {{British National Formulary \textup{[Online]}}}, + address = {London}, + publisher = {Pharmaceutical Press}, + url = {https://www.medicinescomplete.com/\#/content/bnf/_456850132}, + urldate = {26 November 2019}} +\end{Verbatim} +\end{bibexbox} + +\begin{info}\item +Internally, \texttt{inreference} is an alias for \texttt{incollection}. +\end{info} + +\citet{bnf2020}, \cite{asprin2019bnf}, \citet{asprin2020bnf}. + \subsubsection*{One chapter\slash paper from a collection (by different authors) in an edited book} \begin{bibexbox}{burchard1965hhl} @@ -906,6 +971,34 @@ record the source of the image.\end{tips} \begin{tips}\item The \texttt{book} entry type would also work for this reference.\end{tips} +\begin{bibexbox}{os2020bath} + Ordnance Survey, 2020. \emph{Street view map of University of Bath} [Online], 1:5000, OS VectorMap® Local. Available from: \url{https://digimap.edina.ac.uk/roam/map/os} [Accessed 30 April 2020]. + \tcblower +\begin{Verbatim} +@manual{os2020bath, + author = {{Ordnance Survey}}, + year = {2020}, + title = {Street view map of {University of Bath}}, + series = {1:5000, OS VectorMap® Local}, + url = {https://digimap.edina.ac.uk/roam/map/os}, + urlyear = {30 April 2020}} +\end{Verbatim} +\end{bibexbox} + +\begin{bibexbox}{google2020harbourside} + Google, 2020. \emph{Harbourside, Bristol} [Online], Google Maps. Available from: \url{https://www.google.co.uk/maps/place/Harbourside,+Bristol/} [Accessed 30 April 2020]. + \tcblower +\begin{Verbatim} +@manual{google2020harbourside, + author = {{Google}}, + year = {2020}, + title = {{Harbourside, Bristol}}, + series = {Google Maps}, + url = {https://www.google.co.uk/maps/place/Harbourside,+Bristol/}, + urldate = {2020-04-30}} +\end{Verbatim} +\end{bibexbox} + \subsubsection*{Film, video or DVD} \begin{bibexbox}{macbeth1948} @@ -1434,6 +1527,6 @@ not. \bibliography{bath-bst-v1} \end{document} %% -%% Copyright (C) 2020 by University of Bath +%% Copyright (C) 2016-2021 by University of Bath %% %% End of file `bath-bst-v1.tex'. diff --git a/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst.bib b/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst.bib index 06c27ed2fab..211651016b8 100644 --- a/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst.bib +++ b/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst.bib @@ -34,6 +34,27 @@ titleaddon = {Kindle version 4.18}, address = {Bath}, publisher = {University of Bath}} +@reference{bnf2020, + year = {2020}, + title = {{British National Formulary}}, + edition = {79}, + address = {London}, + publisher = {Pharmaceutical Press}} +@inreference{asprin2020bnf, + title = {Asprin}, + year = {2020}, + booktitle = {{British National Formulary}}, + edition = {79}, + address = {London}, + publisher = {Pharmaceutical Press}} +@inreference{asprin2019bnf, + title = {Asprin}, + year = {2019}, + booktitle = {{British National Formulary}}, + address = {London}, + publisher = {Pharmaceutical Press}, + url = {https://www.medicinescomplete.com/\#/content/bnf/_456850132}, + urlyear = {26 November 2019}} @incollection{burchard1965hhl, author = {Burchard, J. E.}, year = {1965}, @@ -223,6 +244,20 @@ series = {1 inch to 2 miles}, address = {Devizes}, publisher = {Wiltshire Record Society}} +@manual{os2020bath, + author = {{Ordnance Survey}}, + year = {2020}, + title = {Street view map of {University of Bath}}, + series = {1:5000, OS VectorMap® Local}, + url = {https://digimap.edina.ac.uk/roam/map/os}, + urlyear = {30 April 2020}} +@manual{google2020harbourside, + author = {{Google}}, + year = {2020}, + title = {{Harbourside, Bristol}}, + series = {Google Maps}, + url = {https://www.google.co.uk/maps/place/Harbourside,+Bristol/}, + urldate = {2020-04-30}} @video{macbeth1948, year = {1948}, title = {Macbeth}, diff --git a/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst.pdf b/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst.pdf index 7290d79e447..085f19ad430 100644 Binary files a/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst.pdf and b/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst.pdf differ diff --git a/Master/texmf-dist/source/bibtex/bath-bst/bath-bst.dtx b/Master/texmf-dist/source/bibtex/bath-bst/bath-bst.dtx index 18e1beb4f69..1f7e5e63177 100644 --- a/Master/texmf-dist/source/bibtex/bath-bst/bath-bst.dtx +++ b/Master/texmf-dist/source/bibtex/bath-bst/bath-bst.dtx @@ -39,7 +39,7 @@ See: http://www.latex-project.org/lppl.txt \endpreamble \postamble -Copyright (C) 2020 by University of Bath +Copyright (C) 2016-2021 by University of Bath \endpostamble \usedir{bibtex/bst/\jobname} @@ -74,7 +74,7 @@ Copyright (C) 2020 by University of Bath \ProvidesFile{bath-bst.dtx} % %<*driver|tex1> - [2020/01/16 v3.2 Harvard referencing style as recommended by the University of Bath Library] + [2021/02/25 v4.0 Harvard referencing style as recommended by the University of Bath Library] \documentclass[10pt,a4paper]{article} \usepackage[british]{babel} @@ -445,9 +445,10 @@ documentation. 2. Compile `bath-bst.dtx` with [LuaLaTeX] and BibTeX to generate the documentation. You will need, among other things, the [luatexja], - [adobemapping] and [ipaex] packages installed; this is just for the - documentation, not for the BibTeX style itself. To generate the version 1 - tests and documentation, compile `bath-bst-v1.tex` with LuaLaTeX and BibTeX. + [adobemapping], [ipaex] and [haranoaji] packages installed; this is just for + the documentation, not for the BibTeX style itself. To generate the version + 1 tests and documentation, compile `bath-bst-v1.tex` with LuaLaTeX and + BibTeX. 3. If you are using TeX Live, find your home TeX tree using the following command at the command prompt/terminal: @@ -485,6 +486,7 @@ documentation. [luatexja]: http://ctan.org/pkg/luatexja [adobemapping]: http://ctan.org/pkg/adobemapping [ipaex]: http://ctan.org/pkg/ipaex +[haranoaji]: http://ctan.org/pkg/haranoaji % %<*driver> \end{markdown*} @@ -704,6 +706,10 @@ though of course any item might need adjustment to take account of differing con \end{Verbatim} \end{bibexbox} +\begin{info}\item +Internally, \texttt{collection} is an alias for \texttt{book}. +\end{info} + \subsubsection*{Electronic book} @@ -781,6 +787,97 @@ though of course any item might need adjustment to take account of differing con \end{bibexbox} +\subsubsection*{Book known by its title} + +\begin{info}\item +Unfortunately, to avoid breaking other use cases for the \texttt{book} entry +type, to achieve the following format you must use the non-standard +\texttt{reference} entry type. +\end{info} + +\begin{bibexbox}{bnf2020} + British National Formulary, 2020. 79th ed. London: Pharmaceutical Press. + \tcblower +\begin{Verbatim} +% +%<*driver|bib|tex1|bib1> +@reference{bnf2020, + year = {2020}, + title = {{British National Formulary}}, + edition = {79}, + address = {London}, + publisher = {Pharmaceutical Press}} +% +%<*driver|tex1> +\end{Verbatim} +\end{bibexbox} + +\begin{info}\item +Similarly, to achieve the following formats you must use the non-standard +\texttt{inreference} entry type. +\end{info} + +\begin{bibexbox}{asprin2020bnf} + British National Formulary, 2020. 79th ed. \emph{Asprin.} London: Pharmaceutical Press. + \tcblower +\begin{Verbatim} +% +%<*driver|bib|tex1|bib1> +@inreference{asprin2020bnf, + title = {Asprin}, + year = {2020}, + booktitle = {{British National Formulary}}, + edition = {79}, + address = {London}, + publisher = {Pharmaceutical Press}} +% +%<*driver|tex1> +\end{Verbatim} +\end{bibexbox} + +\begin{bibexbox}{asprin2019bnf} + British National Formulary, 2019. \emph{Aspirin} [Online]. London: Pharmaceutical Press. Available from: \url{https://www.medicinescomplete.com/\#/content/bnf/_456850132} [Accessed 26 November 2019]. + \tcblower +\begin{Verbatim} +% +%<*driver|bib> +@inreference{asprin2019bnf, + title = {Asprin}, + year = {2019}, + booktitle = {{British National Formulary}}, + address = {London}, + publisher = {Pharmaceutical Press}, + url = {https://www.medicinescomplete.com/\#/content/bnf/_456850132}, + urlyear = {26 November 2019}} +% +%<*driver> +\end{Verbatim} +\iffalse +% +%<*tex1|bib1> +@inreference{asprin2019bnf, + title = {Asprin}, + year = {2019}, + booktitle = {{British National Formulary \textup{[Online]}}}, + address = {London}, + publisher = {Pharmaceutical Press}, + url = {https://www.medicinescomplete.com/\#/content/bnf/_456850132}, + urldate = {26 November 2019}} +% +%<*driver|tex1> +\end{Verbatim} +%<*driver> +\fi +% +\end{bibexbox} + +\begin{info}\item +Internally, \texttt{inreference} is an alias for \texttt{incollection}. +%Use \texttt{inreference} if you need compatibility with \textsf{biblatex-bath}. +\end{info} + +\citet{bnf2020}, \cite{asprin2019bnf}, \citet{asprin2020bnf}. + \subsubsection*{One chapter\slash paper from a collection (by different authors) in an edited book} \begin{bibexbox}{burchard1965hhl} @@ -1563,6 +1660,42 @@ but the \texttt{organization} field if the location relates to the archive. \begin{tips}\item The \texttt{book} entry type would also work for this reference.\end{tips} +\begin{bibexbox}{os2020bath} + Ordnance Survey, 2020. \emph{Street view map of University of Bath} [Online], 1:5000, OS VectorMap® Local. Available from: \url{https://digimap.edina.ac.uk/roam/map/os} [Accessed 30 April 2020]. + \tcblower +\begin{Verbatim} +% +%<*driver|bib|tex1|bib1> +@manual{os2020bath, + author = {{Ordnance Survey}}, + year = {2020}, + title = {Street view map of {University of Bath}}, + series = {1:5000, OS VectorMap® Local}, + url = {https://digimap.edina.ac.uk/roam/map/os}, + urlyear = {30 April 2020}} +% +%<*driver|tex1> +\end{Verbatim} +\end{bibexbox} + +\begin{bibexbox}{google2020harbourside} + Google, 2020. \emph{Harbourside, Bristol} [Online], Google Maps. Available from: \url{https://www.google.co.uk/maps/place/Harbourside,+Bristol/} [Accessed 30 April 2020]. + \tcblower +\begin{Verbatim} +% +%<*driver|bib|tex1|bib1> +@manual{google2020harbourside, + author = {{Google}}, + year = {2020}, + title = {{Harbourside, Bristol}}, + series = {Google Maps}, + url = {https://www.google.co.uk/maps/place/Harbourside,+Bristol/}, + urldate = {2020-04-30}} +% +%<*driver|tex1> +\end{Verbatim} +\end{bibexbox} + \subsubsection*{Film, video or DVD} @@ -2780,7 +2913,7 @@ Commission case number, \texttt{number} for the formal decision number, and give %## Licence % %<*driver|readme> -Copyright 2016-2020 University of Bath. +Copyright 2016-2021 University of Bath. This work consists of the documented LaTeX file bath-bst.dtx and a Makefile. @@ -3210,17 +3343,13 @@ FUNCTION {either.or.check} % % \begin{macrocode} FUNCTION {is.online} -{ type$ "software" = - { #0 } - { url empty$ doi empty$ and - { type$ "online" = - { #1 } - { #0 } - if$ - } +{ url empty$ doi empty$ and + { type$ "online" = { #1 } + { #0 } if$ } + { #1 } if$ } % \end{macrocode} @@ -3235,6 +3364,9 @@ FUNCTION {is.online} FUNCTION {bbl.and} { "and"} +FUNCTION {bbl.byeditor} +{ "Ed. by" } + FUNCTION {bbl.etal} { "et~al." } @@ -3499,6 +3631,19 @@ FUNCTION {format.authors} } % \end{macrocode} % +% |format.byeditors| returns editor names, and prepended by `Ed. by'. +% +% \begin{macrocode} +FUNCTION {format.byeditors} +{ editor "editor" format.names.ed duplicate$ empty$ 'skip$ + { bbl.byeditor + " " * + swap$ * + } + if$ +} +% \end{macrocode} +% % |format.editors| returns editor names, and appends `ed.' or `eds' as % appropriate. % @@ -3673,8 +3818,8 @@ FUNCTION {output.bibitem} % % |format.key| takes a field (author or editor). If the field is empty, it % replaces it with the key field (if not non-null). Otherwise, replaces it with -% an empty string. It is used as a last resort to stop an entry beginning with -% the date. +% an empty string. It is used as an extra defence against an entry beginning +% with the date. % % \begin{macrocode} FUNCTION {format.key} @@ -3688,7 +3833,7 @@ FUNCTION {format.key} % \subsection{Titles} % % |select.language| checks if the field before was written out, and if so, -% wraps |{\selectlanguage{language}\dots}| around it. +% wraps |{\selectlanguage{language}|\dots|}| around it. % % \begin{macrocode} FUNCTION {select.language} @@ -3775,23 +3920,31 @@ FUNCTION {get.title.addenda} format.titleaddon output continue.clause %<*bst2> - library empty$ - type$ "image" = - or is.online - and journal empty$ and - type empty$ - type$ "booklet" = not - type$ "audio" = not - and - type$ "video" = not - and - type$ "music" = not - and - type$ "movie" = not - and + booktitle empty$ + type$ "inreference" = + author empty$ + and + or + and + library empty$ + type$ "image" = + or + and + type$ "software" = not + and + type empty$ + type$ "booklet" = not + type$ "audio" = not + and + type$ "video" = not + and + type$ "music" = not + and + type$ "movie" = not + and or and { bbl.online output } @@ -3799,6 +3952,10 @@ FUNCTION {get.title.addenda} if$ continue.clause % + type$ "reference" = + { format.byeditors output } + 'skip$ + if$ format.translators output } % \end{macrocode} @@ -3812,15 +3969,23 @@ FUNCTION {word.in} " " * } % \end{macrocode} % -% |format.booktitle| returns the booktitle field in italics. +% |format.label.booktitle| returns the booktitle field upright % % \begin{macrocode} -FUNCTION {format.booktitle} +FUNCTION {format.label.booktitle} { booktitle duplicate$ empty$ 'skip$ { "t" change.case$ } if$ "booktitle" bibinfo.check +} +% \end{macrocode} +% +% |format.booktitle| returns the booktitle field in italics. +% +% \begin{macrocode} +FUNCTION {format.booktitle} +{ format.label.booktitle emphasize } % \end{macrocode} @@ -3830,8 +3995,19 @@ FUNCTION {format.booktitle} % % \begin{macrocode} FUNCTION {format.in.ed.booktitle} -{ format.booktitle duplicate$ empty$ 'skip$ - { editor "editor" format.names.ed duplicate$ empty$ 'pop$ +{ format.booktitle + duplicate$ empty$ + 'skip$ + { +%<*bst2> + is.online + { " " * + bbl.online * + } + 'skip$ + if$ +% + editor "editor" format.names.ed duplicate$ empty$ 'pop$ { "," * " " * get.bbl.editor add.period$ @@ -4970,13 +5146,17 @@ FUNCTION {book} { output.bibitem author empty$ { editor empty$ - { format.btitle "title" output.check + type$ "reference" = + or + { type$ "reference" = + { format.title "title" output.check } + { format.btitle "title" output.check } + if$ format.date "year" output.check year empty$ 'skip$ { date.block } if$ get.title.addenda } { format.editors "author and editor" output.check - editor format.key output format.date "year" output.check date.block format.btitle "title" output.check @@ -5072,6 +5252,8 @@ FUNCTION {inbook} date.block format.btitle "title" output.check get.title.addenda + new.block + format.edition output crossref missing$ { format.publisher.address output format.bvolume output @@ -5085,7 +5267,6 @@ FUNCTION {inbook} format.book.crossref output.nonnull } if$ - format.edition output new.block format.note output new.block @@ -5100,22 +5281,49 @@ FUNCTION {inbook} % \begin{macrocode} 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 - get.title.addenda + author empty$ + { type$ "inreference" = + { format.label.booktitle output } + { format.title "title" output.check } + if$ + format.date "year" output.check + year empty$ 'skip$ { date.block } if$ + type$ "inreference" = + 'skip$ + { get.title.addenda } + if$ + } + { format.authors output.nonnull + format.date "year" output.check + date.block + format.title "title" output.check + get.title.addenda + } + if$ new.block crossref missing$ - { format.in.ed.booktitle "booktitle" output.check + { type$ "inreference" = + author empty$ + and + { format.byeditors output } + { format.in.ed.booktitle "booktitle" output.check } + if$ new.block + format.edition output + new.block + type$ "inreference" = + author empty$ + and + { format.btitle "title" output.check + get.title.addenda + new.block + } + 'skip$ + if$ format.publisher.address output format.bvolume output format.number.series output format.chapter.pages output - new.sentence - format.edition output } { format.incoll.inproc.crossref output.nonnull format.chapter.pages output @@ -5593,6 +5801,9 @@ FUNCTION {letter} 'article if$ } +FUNCTION {collection} { book } +FUNCTION {reference} { book } +FUNCTION {inreference} { incollection } FUNCTION {audio} { booklet } FUNCTION {movie} { booklet } FUNCTION {music} { booklet } @@ -5755,18 +5966,28 @@ FUNCTION {editor.key.label} FUNCTION {author.key.label} { author empty$ { key empty$ - { title empty$ - { cite$ #1 #3 substring$ } - { title - type$ "article" = - type$ "incollection" = - or - type$ "inproceedings" = - or - type$ "misc" = - or - 'skip$ - { emphasize } + { type$ "inreference" = + booktitle empty$ not + and + { booktitle } + { title empty$ + { cite$ #1 #3 substring$ } + { title + type$ "article" = + type$ "incollection" = + or + type$ "inproceedings" = + or + type$ "reference" = + author empty$ + and + or + type$ "misc" = + or + 'skip$ + { emphasize } + if$ + } if$ } if$ @@ -5919,15 +6140,21 @@ FUNCTION {editor.sort} % \begin{macrocode} FUNCTION {author.sort} { author empty$ - { title empty$ - { key empty$ - { "to sort, need author, title, or key in " cite$ * warning$ - "" + { type$ "inreference" = + booktitle empty$ not + and + { booktitle sort.format.title } + { title empty$ + { key empty$ + { "to sort, need author, title, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ } - { key sortify } + { title sort.format.title } if$ } - { title sort.format.title } if$ } { author sort.format.names } @@ -6035,7 +6262,7 @@ FUNCTION {reverse.pass} % % Applying these functions is a bit more tricky, but once we have done that, % we re-sort the entries to make absolutely sure they in the right order, -% this time wih the year between with |sort.label| and the title. +% this time with the year between with |sort.label| and the title. % % \begin{macrocode} EXECUTE {initialize.extra.label.stuff} diff --git a/Master/texmf-dist/source/bibtex/bath-bst/bath-bst.ins b/Master/texmf-dist/source/bibtex/bath-bst/bath-bst.ins deleted file mode 100644 index 6aa443b30a2..00000000000 --- a/Master/texmf-dist/source/bibtex/bath-bst/bath-bst.ins +++ /dev/null @@ -1,52 +0,0 @@ -%% -%% This is file `bath-bst.ins', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% bath-bst.dtx (with options: `install') -%% ---------------------------------------------------------------- -%% bath-bst --- Harvard referencing style as recommended by the University of Bath Library -%% Author: Alex Ball -%% E-mail: a.j.ball@bath.ac.uk -%% License: Released under the LaTeX Project Public License v1.3c or later -%% See: http://www.latex-project.org/lppl.txt -%% ---------------------------------------------------------------- -%% -\input docstrip.tex -\keepsilent -\askforoverwritefalse - -\nopreamble\nopostamble - -\usedir{doc/bibtex/\jobname} -\generate{ - \file{README.md}{\from{\jobname.dtx}{readme}} - \file{\jobname.bib}{\from{\jobname.dtx}{bib}} -} - -\preamble ----------------------------------------------------------------- -bath-bst --- Harvard referencing style as recommended by the University of Bath Library -Author: Alex Ball -E-mail: a.j.ball@bath.ac.uk -License: Released under the LaTeX Project Public License v1.3c or later -See: http://www.latex-project.org/lppl.txt ----------------------------------------------------------------- - -\endpreamble -\postamble - -Copyright (C) 2020 by University of Bath -\endpostamble - -\usedir{bibtex/bst/\jobname} -\generate{ - \file{bath.bst}{\from{\jobname.dtx}{bst1}} - \file{bathx.bst}{\from{\jobname.dtx}{bst2}} -} -\endbatchfile -%% -%% Copyright (C) 2020 by University of Bath -%% -%% End of file `bath-bst.ins'. -- cgit v1.2.3