texlive[57925] Master/texmf-dist: bath-bst (25feb21)

commits+karl at tug.org commits+karl at tug.org
Thu Feb 25 23:08:34 CET 2021


Revision: 57925
          http://tug.org/svn/texlive?view=revision&revision=57925
Author:   karl
Date:     2021-02-25 23:08:34 +0100 (Thu, 25 Feb 2021)
Log Message:
-----------
bath-bst (25feb21)

Modified Paths:
--------------
    trunk/Master/texmf-dist/bibtex/bst/bath-bst/bath.bst
    trunk/Master/texmf-dist/bibtex/bst/bath-bst/bathx.bst
    trunk/Master/texmf-dist/doc/bibtex/bath-bst/README.md
    trunk/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.bib
    trunk/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.pdf
    trunk/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.tex
    trunk/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst.bib
    trunk/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst.pdf
    trunk/Master/texmf-dist/source/bibtex/bath-bst/bath-bst.dtx

Removed Paths:
-------------
    trunk/Master/texmf-dist/source/bibtex/bath-bst/bath-bst.ins

Modified: trunk/Master/texmf-dist/bibtex/bst/bath-bst/bath.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/bath-bst/bath.bst	2021-02-25 22:08:09 UTC (rev 57924)
+++ trunk/Master/texmf-dist/bibtex/bst/bath-bst/bath.bst	2021-02-25 22:08:34 UTC (rev 57925)
@@ -238,22 +238,21 @@
   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.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,6 +668,10 @@
   continue.clause
   format.titleaddon output
   continue.clause
+  type$ "reference" =
+    { format.byeditors output }
+    'skip$
+  if$
   format.translators output
 }
 FUNCTION {word.in}
@@ -667,17 +678,23 @@
 { 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 @@
 { 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 @@
   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 @@
       format.book.crossref output.nonnull
     }
   if$
-  format.edition output
   new.block
   format.note output
   new.block
@@ -1621,22 +1643,49 @@
 }
 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 @@
     '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 {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 {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 @@
 }
 EXECUTE {end.bib}
 %% 
-%% Copyright (C) 2020 by University of Bath
+%% Copyright (C) 2016-2021 by University of Bath
 %%
 %% End of file `bath.bst'.

Modified: trunk/Master/texmf-dist/bibtex/bst/bath-bst/bathx.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/bath-bst/bathx.bst	2021-02-25 22:08:09 UTC (rev 57924)
+++ trunk/Master/texmf-dist/bibtex/bst/bath-bst/bathx.bst	2021-02-25 22:08:34 UTC (rev 57925)
@@ -238,22 +238,21 @@
   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.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,29 +668,41 @@
   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}
@@ -690,17 +709,29 @@
 { 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 @@
 { 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 @@
   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 @@
       format.book.crossref output.nonnull
     }
   if$
-  format.edition output
   new.block
   format.note output
   new.block
@@ -1671,22 +1707,49 @@
 }
 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 @@
     '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 {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 {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 @@
 }
 EXECUTE {end.bib}
 %% 
-%% Copyright (C) 2020 by University of Bath
+%% Copyright (C) 2016-2021 by University of Bath
 %%
 %% End of file `bathx.bst'.

Modified: trunk/Master/texmf-dist/doc/bibtex/bath-bst/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/bath-bst/README.md	2021-02-25 22:08:09 UTC (rev 57924)
+++ trunk/Master/texmf-dist/doc/bibtex/bath-bst/README.md	2021-02-25 22:08:34 UTC (rev 57925)
@@ -53,9 +53,10 @@
 
  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 @@
 [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.
 

Modified: trunk/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.bib
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.bib	2021-02-25 22:08:09 UTC (rev 57924)
+++ trunk/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.bib	2021-02-25 22:08:34 UTC (rev 57925)
@@ -35,6 +35,27 @@
   titleaddon = {[Kindle version 4.18]},
   address = {Bath},
   publisher = {University of Bath}}
+ at reference{bnf2020,
+  year = {2020},
+  title = {{British National Formulary}},
+  edition = {79},
+  address = {London},
+  publisher = {Pharmaceutical Press}}
+ at inreference{asprin2020bnf,
+  title = {Asprin},
+  year = {2020},
+  booktitle = {{British National Formulary}},
+  edition = {79},
+  address = {London},
+  publisher = {Pharmaceutical Press}}
+ at 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}}
+ at 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}}
+ at 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},

Modified: trunk/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.tex
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.tex	2021-02-25 22:08:09 UTC (rev 57924)
+++ trunk/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.tex	2021-02-25 22:08:34 UTC (rev 57925)
@@ -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 @@
 \end{Verbatim}
 \end{bibexbox}
 
+\begin{info}\item
+Internally, \texttt{collection} is an alias for \texttt{book}.
+\end{info}
+
 \subsubsection*{Electronic book}
 
 \begin{bibexbox}<RX>{haynes2014crc}
@@ -451,6 +455,67 @@
 \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}<RX>{bnf2020}
+  British National Formulary, 2020. 79th ed. London: Pharmaceutical Press.
+  \tcblower
+\begin{Verbatim}
+ at 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}<RX>{asprin2020bnf}
+  British National Formulary, 2020. 79th ed. \emph{Asprin.} London: Pharmaceutical Press.
+  \tcblower
+\begin{Verbatim}
+ at inreference{asprin2020bnf,
+  title = {Asprin},
+  year = {2020},
+  booktitle = {{British National Formulary}},
+  edition = {79},
+  address = {London},
+  publisher = {Pharmaceutical Press}}
+\end{Verbatim}
+\end{bibexbox}
+
+\begin{bibexbox}<RX>{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}
+ at 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}<RL>{burchard1965hhl}
@@ -906,6 +971,34 @@
 
 \begin{tips}\item The \texttt{book} entry type would also work for this reference.\end{tips}
 
+\begin{bibexbox}<RX>{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}
+ at 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}<RX>{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}
+ at 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}<RX>{macbeth1948}
@@ -1434,6 +1527,6 @@
 \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'.

Modified: trunk/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst.bib
===================================================================
--- trunk/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst.bib	2021-02-25 22:08:09 UTC (rev 57924)
+++ trunk/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst.bib	2021-02-25 22:08:34 UTC (rev 57925)
@@ -34,6 +34,27 @@
   titleaddon = {Kindle version 4.18},
   address = {Bath},
   publisher = {University of Bath}}
+ at reference{bnf2020,
+  year = {2020},
+  title = {{British National Formulary}},
+  edition = {79},
+  address = {London},
+  publisher = {Pharmaceutical Press}}
+ at inreference{asprin2020bnf,
+  title = {Asprin},
+  year = {2020},
+  booktitle = {{British National Formulary}},
+  edition = {79},
+  address = {London},
+  publisher = {Pharmaceutical Press}}
+ at 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}}
+ at 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}}
+ at 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},

Modified: trunk/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/bibtex/bath-bst/bath-bst.dtx
===================================================================
--- trunk/Master/texmf-dist/source/bibtex/bath-bst/bath-bst.dtx	2021-02-25 22:08:09 UTC (rev 57924)
+++ trunk/Master/texmf-dist/source/bibtex/bath-bst/bath-bst.dtx	2021-02-25 22:08:34 UTC (rev 57925)
@@ -39,7 +39,7 @@
 \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 @@
 \ProvidesFile{bath-bst.dtx}
 %</driver>
 %<*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 @@
 
  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 @@
 [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|readme>
 %<*driver>
 \end{markdown*}
@@ -704,7 +706,11 @@
 \end{Verbatim}
 \end{bibexbox}
 
+\begin{info}\item
+Internally, \texttt{collection} is an alias for \texttt{book}.
+\end{info}
 
+
 \subsubsection*{Electronic book}
 
 \begin{bibexbox}<RX>{haynes2014crc}
@@ -781,6 +787,97 @@
 \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}<RX>{bnf2020}
+  British National Formulary, 2020. 79th ed. London: Pharmaceutical Press.
+  \tcblower
+\begin{Verbatim}
+%</driver|tex1>
+%<*driver|bib|tex1|bib1>
+ at reference{bnf2020,
+  year = {2020},
+  title = {{British National Formulary}},
+  edition = {79},
+  address = {London},
+  publisher = {Pharmaceutical Press}}
+%</driver|bib|tex1|bib1>
+%<*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}<RX>{asprin2020bnf}
+  British National Formulary, 2020. 79th ed. \emph{Asprin.} London: Pharmaceutical Press.
+  \tcblower
+\begin{Verbatim}
+%</driver|tex1>
+%<*driver|bib|tex1|bib1>
+ at inreference{asprin2020bnf,
+  title = {Asprin},
+  year = {2020},
+  booktitle = {{British National Formulary}},
+  edition = {79},
+  address = {London},
+  publisher = {Pharmaceutical Press}}
+%</driver|bib|tex1|bib1>
+%<*driver|tex1>
+\end{Verbatim}
+\end{bibexbox}
+
+\begin{bibexbox}<RX>{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|tex1>
+%<*driver|bib>
+ at 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|bib>
+%<*driver>
+\end{Verbatim}
+\iffalse
+%</driver>
+%<*tex1|bib1>
+ at 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}}
+%</tex1|bib1>
+%<*driver|tex1>
+\end{Verbatim}
+%<*driver>
+\fi
+%</driver>
+\end{bibexbox}
+
+\begin{info}\item
+Internally, \texttt{inreference} is an alias for \texttt{incollection}.
+%<driver>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}<RL>{burchard1965hhl}
@@ -1563,7 +1660,43 @@
 
 \begin{tips}\item The \texttt{book} entry type would also work for this reference.\end{tips}
 
+\begin{bibexbox}<RX>{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|tex1>
+%<*driver|bib|tex1|bib1>
+ at 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|bib|tex1|bib1>
+%<*driver|tex1>
+\end{Verbatim}
+\end{bibexbox}
 
+\begin{bibexbox}<RX>{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|tex1>
+%<*driver|bib|tex1|bib1>
+ at 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|bib|tex1|bib1>
+%<*driver|tex1>
+\end{Verbatim}
+\end{bibexbox}
+
+
 \subsubsection*{Film, video or DVD}
 
 \begin{bibexbox}<RX>{macbeth1948}
@@ -2780,7 +2913,7 @@
 %<readme>## Licence
 %<readme>
 %<*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 @@
 %
 %    \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 {bbl.and}
 { "and"}
 
+FUNCTION {bbl.byeditor}
+{ "Ed. by" }
+
 FUNCTION {bbl.etal}
 { "et~al." }
 
@@ -3499,6 +3631,19 @@
 }
 %    \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 @@
 %
 % |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 @@
 % \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,30 +3920,42 @@
   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 }
     'skip$
   if$
   continue.clause
 %</bst2>
+  type$ "reference" =
+    { format.byeditors output }
+    'skip$
+  if$
   format.translators output
 }
 %    \end{macrocode}
@@ -3812,15 +3969,23 @@
   " " * }
 %    \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 @@
 %
 %    \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$
+%</bst2>
+      editor "editor" format.names.ed duplicate$ empty$ 'pop$
         { "," *
           " " *
           get.bbl.editor add.period$
@@ -4970,13 +5146,17 @@
 { 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 @@
   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 @@
       format.book.crossref output.nonnull
     }
   if$
-  format.edition output
   new.block
   format.note output
   new.block
@@ -5100,22 +5281,49 @@
 %    \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 @@
     '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 {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 @@
 %    \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 @@
 %
 % 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}

Deleted: trunk/Master/texmf-dist/source/bibtex/bath-bst/bath-bst.ins
===================================================================
--- trunk/Master/texmf-dist/source/bibtex/bath-bst/bath-bst.ins	2021-02-25 22:08:09 UTC (rev 57924)
+++ trunk/Master/texmf-dist/source/bibtex/bath-bst/bath-bst.ins	2021-02-25 22:08:34 UTC (rev 57925)
@@ -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 at 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 at 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'.



More information about the tex-live-commits mailing list.