texlive[74820] Master/texmf-dist: bath-bst (1apr25)

commits+karl at tug.org commits+karl at tug.org
Tue Apr 1 22:05:00 CEST 2025


Revision: 74820
          https://tug.org/svn/texlive?view=revision&revision=74820
Author:   karl
Date:     2025-04-01 22:05:00 +0200 (Tue, 01 Apr 2025)
Log Message:
-----------
bath-bst (1apr25)

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

Modified: trunk/Master/texmf-dist/bibtex/bst/bath-bst/bath.bst
===================================================================
--- trunk/Master/texmf-dist/bibtex/bst/bath-bst/bath.bst	2025-04-01 20:04:42 UTC (rev 74819)
+++ trunk/Master/texmf-dist/bibtex/bst/bath-bst/bath.bst	2025-04-01 20:05:00 UTC (rev 74820)
@@ -790,23 +790,28 @@
 { options field.or.null "scottish-style" =
   keywords field.or.null "sc" =
   or
-    'format.date
+    { end.clause format.date }
     'format.date.brackets
   if$
 }
 FUNCTION {format.jur.date}
-{ journal field.or.null 's :=
-  s "OJ" =
-  s "ECR" =
+{ institution empty$
+  number empty$
   or
-    'format.date.brackets
-    { options field.or.null "year-essential=false" =
-        'format.date.parens
-        { volume empty$
-            'format.jur.date.essential
-            { options field.or.null "year-essential=true" =
+    { journal field.or.null 's :=
+      s "OJ" =
+      s "ECR" =
+      or
+        'format.date.brackets
+        { options field.or.null "year-essential=false" =
+            'format.date.parens
+            { volume empty$
                 'format.jur.date.essential
-                'format.date.parens
+                { options field.or.null "year-essential=true" =
+                    'format.jur.date.essential
+                    'format.date.parens
+                  if$
+                }
               if$
             }
           if$
@@ -813,6 +818,7 @@
         }
       if$
     }
+    { end.clause format.date }
   if$
 }
 FUNCTION {format.eu.date}
@@ -1053,7 +1059,7 @@
             'pop$
             { tie.or.space.prefix
               "number" bibinfo.check
-              * *
+                * *
             }
           if$
         }
@@ -1061,16 +1067,14 @@
     }
     { "t" change.case$
       number duplicate$ empty$
-        { pop$
+        'pop$
+        { "number" bibinfo.check
+          ", " swap$ * *
         }
-        { tie.or.space.prefix
-          "number" bibinfo.check
-          * *
-        }
       if$
       type duplicate$ empty$
         'pop$
-        { ", " swap$ *
+        { ". " swap$ *
           "t" change.case$ "type" bibinfo.check
           *
         }
@@ -1147,33 +1151,48 @@
   if$
 }
 FUNCTION {format.case.number}
-{ casenumber duplicate$ empty$
-    { pop$
-      number duplicate$ empty$
-        { pop$ "" }
-        { institution field.or.null "Commission" =
-          userb empty$ not
-          and
-            { userb "userb" bibinfo.check
-              "(" swap$ * ") " * bbl.commission * " " *
-              swap$ "number" bibinfo.check *
+{ number field.or.null 's :=
+  s empty$
+    { casenumber field.or.null 's := }
+    'skip$
+  if$
+  s empty$
+    { "" }
+    { institution field.or.null duplicate$ empty$
+        { pop$
+          s "number" bibinfo.check
+          "(" swap$ * ")" *
+        }
+        { "Commission" =
+            { userb field.or.null 's :=
+              s empty$
+                { casenumber field.or.null 's := }
+                'skip$
+              if$
+              s duplicate$ empty$
+                { "" }
+                { "(" swap$ * ")" * " " }
+              if$
+              number duplicate$ empty$
+                { pop$ pop$ }
+                { bbl.commission " " *
+                  swap$ * * *
+                }
+              if$
             }
-            { "number" bibinfo.check
-            "(" swap$ * ")" *
-            }
+            { "" }
           if$
         }
       if$
     }
-    { "casenumber" bibinfo.check
-      "(" swap$ * ")" *
-      institution field.or.null "Commission" =
-      number empty$ not
-      and
-        { " " * bbl.commission * " " *
-          number "number" bibinfo.check *
-        }
-        'skip$
+  if$
+}
+FUNCTION {case.check}
+{ institution duplicate$ empty$
+    { pop$ continue.clause }
+    { "Commission" =
+        'continue.clause
+        'new.block
       if$
     }
   if$
@@ -1393,6 +1412,23 @@
     }
   if$
 }
+FUNCTION {format.vol.num}
+{ volume field.or.null duplicate$ empty$
+    'skip$
+    { "volume" bibinfo.check
+    }
+  if$
+  number "number" bibinfo.check duplicate$ empty$
+    'skip$
+    { swap$ duplicate$ empty$
+        { "there's a number but no volume in " cite$ * warning$ }
+        'skip$
+      if$
+      swap$
+      "(" swap$ * ")" *
+    }
+  if$
+}
 FUNCTION {format.vol.num.pages}
 { pubstate field.or.null
   duplicate$ "inpress" =
@@ -1409,24 +1445,20 @@
   if$
   duplicate$ empty$
     { pop$
-      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$
+      format.vol.num *
+      eventyear field.or.null duplicate$ empty$
+        { pop$
+          month "month" bibinfo.check duplicate$ empty$
+            'pop$
+            { swap$ duplicate$ empty$
+                'pop$
+                { ", " * swap$ * }
+              if$
+            }
           if$
-          swap$
-          "(" swap$ * ")" *
         }
-      if$ *
-      month "month" bibinfo.check duplicate$ empty$
-        'pop$
         { swap$ duplicate$ empty$
-            'pop$
+           'pop$
             { ", " * swap$ * }
           if$
         }
@@ -1458,6 +1490,7 @@
     }
   if$
 }
+
 FUNCTION {format.journal.series.vol.pages}
 { journal field.or.null
   duplicate$ "OJ" =
@@ -1512,6 +1545,58 @@
     { eid "eid" bibinfo.check * }
   if$
 }
+FUNCTION {format.inst.journal.series.vol.pages}
+{ institution duplicate$ empty$
+    { pop$ format.journal.series.vol.pages }
+    { duplicate$ "Commission" =
+        { pop$ format.journal.series.vol.pages }
+        { number duplicate$ empty$
+            { pop$ casenumber duplicate$ empty$
+                'skip$
+                { "casenumber" bibinfo.check
+                  ", " swap$ * *
+                }
+              if$
+            }
+            { "number" bibinfo.check
+              ", " swap$ * *
+            }
+          if$
+          output new.sentence
+          journal "t" change.case$
+          "journal" bibinfo.check
+          emphasize output
+          volume field.or.null
+          duplicate$ empty$ 'skip$
+            { "volume" bibinfo.check
+            }
+          if$
+          eventyear field.or.null duplicate$ empty$
+            { pop$
+              month "month" bibinfo.check duplicate$ empty$
+                'pop$
+                { swap$ duplicate$ empty$
+                    'pop$
+                    { ", " * swap$ * }
+                  if$
+                }
+              if$
+            }
+            { swap$ duplicate$ empty$
+              'pop$
+                { ", " * swap$ * }
+              if$
+            }
+          if$
+          eid empty$
+            { format.journal.pages }
+            { format.journal.eid }
+          if$
+        }
+      if$
+    }
+  if$
+}
 FUNCTION {format.eprint}
 { eprint duplicate$ empty$
     'skip$
@@ -1636,11 +1721,15 @@
       print.title.addenda
     }
   if$
+  new.block
+  format.edition output
+  edition empty$
+    { mid.sentence 'output.state := }
+    'new.block
+  if$
   format.bvolume output
   format.number.series output
   new.block
-  format.edition output
-  new.block
   format.note output
   crossref missing$
     { keywords field.or.null "uksi" =
@@ -1695,36 +1784,40 @@
 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$
-    }
+  { format.title "title" output.check
+    print.labeltitle.addenda
+    format.date "year" output.check
+    year empty$ 'skip$ { date.block } if$
+    print.title.addenda
+  }
+  { format.authors output.nonnull
+    format.date "year" output.check
+    date.block
+    format.title "title" output.check
+    print.title.addenda
+  }
   if$
-  format.date "year" output.check
-  date.block
-  format.btitle "title" output.check
-  print.title.addenda
   new.block
-  format.edition output
-  new.block
-  format.note output
-  new.block
   crossref missing$
-    { format.publisher.address output
+    { format.in.ed.booktitle "booktitle" output.check
+      new.block
+      format.edition output
+      edition empty$
+        { mid.sentence 'output.state := }
+        'new.block
+      if$
       format.bvolume output
-      format.chapter.pages "chapter and pages" output.check
+      format.number.series output
       new.block
-      format.number.series output
-      new.sentence
+      format.note output
+      new.block
+      format.publisher.address output
+      format.chapter.pages output
     }
-    { format.chapter.pages "chapter and pages" output.check
+    { format.note output
       new.block
-      format.book.crossref output.nonnull
+      format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
     }
   if$
   new.block
@@ -1765,21 +1858,26 @@
       if$
       new.block
       format.edition output
-      new.block
       type$ "inreference" =
       author empty$
       and
-        { format.btitle "title" output.check
+        { new.block
+          format.btitle "title" output.check
           print.title.addenda
           new.block
         }
-        'skip$
+        { edition empty$
+          { mid.sentence 'output.state := }
+            'new.block
+          if$
+        }
       if$
+      format.bvolume output
+      format.number.series output
+      new.block
       format.note output
       new.block
       format.publisher.address output
-      format.bvolume output
-      format.number.series output
       format.chapter.pages output
     }
     { format.note output
@@ -1804,6 +1902,8 @@
   new.block
   crossref missing$
     { format.in.ed.booktitle "booktitle" output.check
+      format.bvolume output
+      format.number.series output
       eventyear output
       venue output
       format.note output
@@ -1814,8 +1914,6 @@
           format.publisher.address output
         }
       if$
-      format.bvolume output
-      format.number.series output
       format.pages output
     }
     { format.note output
@@ -1836,15 +1934,11 @@
     { format.btitle "title" output.check
       continue.clause
       format.case.number output
-      number empty$
-      casenumber empty$
-      and
-        'new.sentence
-        'continue.clause
-      if$
+      continue.clause
       print.labeltitle.addenda
+      continue.clause
       format.jur.date "year" output.check
-      year empty$ 'skip$ { eu.case.check } if$
+      year empty$ 'skip$ { case.check } if$
       print.title.addenda
     }
     { format.authors output
@@ -1857,15 +1951,15 @@
       print.title.addenda
     }
   if$
-  eu.case.check
+  case.check
   format.note output
   note empty$
-    'eu.case.check
+    'case.check
     'new.block
   if$
   crossref missing$
     { continue.clause
-      format.journal.series.vol.pages output
+      format.inst.journal.series.vol.pages output
     }
     { format.article.crossref output.nonnull
       format.pages output
@@ -1978,6 +2072,13 @@
     'eulegislation
   if$
 }
+FUNCTION {legal}
+{ entrysubtype field.or.null
+ "parliamentary" =
+    'article
+    'article
+  if$
+}
 FUNCTION {manual}
 { output.bibitem
   author empty$
@@ -2000,7 +2101,7 @@
   new.block
   format.manual.number output
   new.block
-  format.note output
+  format.note format.journal.pages output
   new.block
   format.library output
   organization address new.block.checkb
@@ -2124,6 +2225,8 @@
   if$
   format.bvolume output
   format.number.series output
+  eventyear output
+  venue output
   format.note output
   new.sentence
   publisher empty$
@@ -2608,6 +2711,6 @@
 }
 EXECUTE {end.bib}
 %% 
-%% Copyright (C) 2016-2022 by University of Bath
+%% Copyright (C) 2016-2025 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	2025-04-01 20:04:42 UTC (rev 74819)
+++ trunk/Master/texmf-dist/bibtex/bst/bath-bst/bathx.bst	2025-04-01 20:05:00 UTC (rev 74820)
@@ -777,7 +777,9 @@
   is.online
     { entrysubtype duplicate$ empty$
         type$ duplicate$ "legislation" =
-        swap$ "jurisdiction" =
+          swap$ duplicate$ "jurisdiction" =
+          swap$ "legal" =
+          or
         or
       or
         { pop$
@@ -900,23 +902,28 @@
 { options field.or.null "scottish-style" =
   keywords field.or.null "sc" =
   or
-    'format.date
+    { end.clause format.date }
     'format.date.brackets
   if$
 }
 FUNCTION {format.jur.date}
-{ journal field.or.null 's :=
-  s "OJ" =
-  s "ECR" =
+{ institution empty$
+  number empty$
   or
-    'format.date.brackets
-    { options field.or.null "year-essential=false" =
-        'format.date.parens
-        { volume empty$
-            'format.jur.date.essential
-            { options field.or.null "year-essential=true" =
+    { journal field.or.null 's :=
+      s "OJ" =
+      s "ECR" =
+      or
+        'format.date.brackets
+        { options field.or.null "year-essential=false" =
+            'format.date.parens
+            { volume empty$
                 'format.jur.date.essential
-                'format.date.parens
+                { options field.or.null "year-essential=true" =
+                    'format.jur.date.essential
+                    'format.date.parens
+                  if$
+                }
               if$
             }
           if$
@@ -923,6 +930,7 @@
         }
       if$
     }
+    { end.clause format.date }
   if$
 }
 FUNCTION {format.eu.date}
@@ -1163,7 +1171,7 @@
             'pop$
             { tie.or.space.prefix
               "number" bibinfo.check
-              * *
+                * *
             }
           if$
         }
@@ -1171,16 +1179,14 @@
     }
     { "t" change.case$
       number duplicate$ empty$
-        { pop$
+        'pop$
+        { "number" bibinfo.check
+          ", " swap$ * *
         }
-        { tie.or.space.prefix
-          "number" bibinfo.check
-          * *
-        }
       if$
       type duplicate$ empty$
         'pop$
-        { ", " swap$ *
+        { ". " swap$ *
           "t" change.case$ "type" bibinfo.check
           *
         }
@@ -1257,33 +1263,48 @@
   if$
 }
 FUNCTION {format.case.number}
-{ casenumber duplicate$ empty$
-    { pop$
-      number duplicate$ empty$
-        { pop$ "" }
-        { institution field.or.null "Commission" =
-          userb empty$ not
-          and
-            { userb "userb" bibinfo.check
-              "(" swap$ * ") " * bbl.commission * " " *
-              swap$ "number" bibinfo.check *
+{ number field.or.null 's :=
+  s empty$
+    { casenumber field.or.null 's := }
+    'skip$
+  if$
+  s empty$
+    { "" }
+    { institution field.or.null duplicate$ empty$
+        { pop$
+          s "number" bibinfo.check
+          "(" swap$ * ")" *
+        }
+        { "Commission" =
+            { userb field.or.null 's :=
+              s empty$
+                { casenumber field.or.null 's := }
+                'skip$
+              if$
+              s duplicate$ empty$
+                { "" }
+                { "(" swap$ * ")" * " " }
+              if$
+              number duplicate$ empty$
+                { pop$ pop$ }
+                { bbl.commission " " *
+                  swap$ * * *
+                }
+              if$
             }
-            { "number" bibinfo.check
-            "(" swap$ * ")" *
-            }
+            { "" }
           if$
         }
       if$
     }
-    { "casenumber" bibinfo.check
-      "(" swap$ * ")" *
-      institution field.or.null "Commission" =
-      number empty$ not
-      and
-        { " " * bbl.commission * " " *
-          number "number" bibinfo.check *
-        }
-        'skip$
+  if$
+}
+FUNCTION {case.check}
+{ institution duplicate$ empty$
+    { pop$ continue.clause }
+    { "Commission" =
+        'continue.clause
+        'new.block
       if$
     }
   if$
@@ -1513,6 +1534,23 @@
     }
   if$
 }
+FUNCTION {format.vol.num}
+{ volume field.or.null duplicate$ empty$
+    'skip$
+    { "volume" bibinfo.check
+    }
+  if$
+  number "number" bibinfo.check duplicate$ empty$
+    'skip$
+    { swap$ duplicate$ empty$
+        { "there's a number but no volume in " cite$ * warning$ }
+        'skip$
+      if$
+      swap$
+      "(" swap$ * ")" *
+    }
+  if$
+}
 FUNCTION {format.vol.num.pages}
 { pubstate field.or.null
   duplicate$ "inpress" =
@@ -1529,24 +1567,20 @@
   if$
   duplicate$ empty$
     { pop$
-      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$
+      format.vol.num *
+      eventyear field.or.null duplicate$ empty$
+        { pop$
+          month "month" bibinfo.check duplicate$ empty$
+            'pop$
+            { swap$ duplicate$ empty$
+                'pop$
+                { ", " * swap$ * }
+              if$
+            }
           if$
-          swap$
-          "(" swap$ * ")" *
         }
-      if$ *
-      month "month" bibinfo.check duplicate$ empty$
-        'pop$
         { swap$ duplicate$ empty$
-            'pop$
+           'pop$
             { ", " * swap$ * }
           if$
         }
@@ -1578,6 +1612,7 @@
     }
   if$
 }
+
 FUNCTION {format.journal.series.vol.pages}
 { journal field.or.null
   duplicate$ "OJ" =
@@ -1638,6 +1673,65 @@
     { eid "eid" bibinfo.check * }
   if$
 }
+FUNCTION {format.inst.journal.series.vol.pages}
+{ institution duplicate$ empty$
+    { pop$ format.journal.series.vol.pages }
+    { duplicate$ "Commission" =
+        { pop$ format.journal.series.vol.pages }
+        { number duplicate$ empty$
+            { pop$ casenumber duplicate$ empty$
+                'skip$
+                { "casenumber" bibinfo.check
+                  ", " swap$ * *
+                }
+              if$
+            }
+            { "number" bibinfo.check
+              ", " swap$ * *
+            }
+          if$
+          output new.sentence
+          journal "t" change.case$
+          "journal" bibinfo.check
+          emphasize output
+          is.online
+            { continue.clause
+              bbl.online output
+              #1 'online.shown :=
+            }
+            'skip$
+          if$
+          volume field.or.null
+          duplicate$ empty$ 'skip$
+            { "volume" bibinfo.check
+            }
+          if$
+          eventyear field.or.null duplicate$ empty$
+            { pop$
+              month "month" bibinfo.check duplicate$ empty$
+                'pop$
+                { swap$ duplicate$ empty$
+                    'pop$
+                    { ", " * swap$ * }
+                  if$
+                }
+              if$
+            }
+            { swap$ duplicate$ empty$
+              'pop$
+                { ", " * swap$ * }
+              if$
+            }
+          if$
+          eid empty$
+            { format.journal.pages }
+            { format.journal.eid }
+          if$
+        }
+      if$
+    }
+  if$
+}
 FUNCTION {format.eprint}
 { eprint duplicate$ empty$
     'skip$
@@ -1769,11 +1863,15 @@
       print.title.addenda
     }
   if$
+  new.block
+  format.edition output
+  edition empty$
+    { mid.sentence 'output.state := }
+    'new.block
+  if$
   format.bvolume output
   format.number.series output
   new.block
-  format.edition output
-  new.block
   format.note output
   crossref missing$
     { keywords field.or.null "uksi" =
@@ -1835,36 +1933,40 @@
 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$
-    }
+  { format.title "title" output.check
+    print.labeltitle.addenda
+    format.date "year" output.check
+    year empty$ 'skip$ { date.block } if$
+    print.title.addenda
+  }
+  { format.authors output.nonnull
+    format.date "year" output.check
+    date.block
+    format.title "title" output.check
+    print.title.addenda
+  }
   if$
-  format.date "year" output.check
-  date.block
-  format.btitle "title" output.check
-  print.title.addenda
   new.block
-  format.edition output
-  new.block
-  format.note output
-  new.block
   crossref missing$
-    { format.publisher.address output
+    { format.in.ed.booktitle "booktitle" output.check
+      new.block
+      format.edition output
+      edition empty$
+        { mid.sentence 'output.state := }
+        'new.block
+      if$
       format.bvolume output
-      format.chapter.pages "chapter and pages" output.check
+      format.number.series output
       new.block
-      format.number.series output
-      new.sentence
+      format.note output
+      new.block
+      format.publisher.address output
+      format.chapter.pages output
     }
-    { format.chapter.pages "chapter and pages" output.check
+    { format.note output
       new.block
-      format.book.crossref output.nonnull
+      format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
     }
   if$
   new.block
@@ -1905,21 +2007,26 @@
       if$
       new.block
       format.edition output
-      new.block
       type$ "inreference" =
       author empty$
       and
-        { format.btitle "title" output.check
+        { new.block
+          format.btitle "title" output.check
           print.title.addenda
           new.block
         }
-        'skip$
+        { edition empty$
+          { mid.sentence 'output.state := }
+            'new.block
+          if$
+        }
       if$
+      format.bvolume output
+      format.number.series output
+      new.block
       format.note output
       new.block
       format.publisher.address output
-      format.bvolume output
-      format.number.series output
       format.chapter.pages output
     }
     { format.note output
@@ -1944,6 +2051,8 @@
   new.block
   crossref missing$
     { format.in.ed.booktitle "booktitle" output.check
+      format.bvolume output
+      format.number.series output
       eventyear output
       venue output
       format.note output
@@ -1954,8 +2063,6 @@
           format.publisher.address output
         }
       if$
-      format.bvolume output
-      format.number.series output
       format.pages output
     }
     { format.note output
@@ -1976,15 +2083,11 @@
     { format.btitle "title" output.check
       continue.clause
       format.case.number output
-      number empty$
-      casenumber empty$
-      and
-        'new.sentence
-        'continue.clause
-      if$
+      continue.clause
       print.labeltitle.addenda
+      continue.clause
       format.jur.date "year" output.check
-      year empty$ 'skip$ { eu.case.check } if$
+      year empty$ 'skip$ { case.check } if$
       print.title.addenda
     }
     { format.authors output
@@ -1997,15 +2100,15 @@
       print.title.addenda
     }
   if$
-  eu.case.check
+  case.check
   format.note output
   note empty$
-    'eu.case.check
+    'case.check
     'new.block
   if$
   crossref missing$
     { continue.clause
-      format.journal.series.vol.pages output
+      format.inst.journal.series.vol.pages output
     }
     { format.article.crossref output.nonnull
       format.pages output
@@ -2118,6 +2221,13 @@
     'eulegislation
   if$
 }
+FUNCTION {legal}
+{ entrysubtype field.or.null
+ "parliamentary" =
+    'article
+    'article
+  if$
+}
 FUNCTION {manual}
 { output.bibitem
   author empty$
@@ -2140,7 +2250,7 @@
   new.block
   format.manual.number output
   new.block
-  format.note output
+  format.note format.journal.pages output
   new.block
   format.library output
   organization address new.block.checkb
@@ -2264,6 +2374,8 @@
   if$
   format.bvolume output
   format.number.series output
+  eventyear output
+  venue output
   format.note output
   new.sentence
   publisher empty$
@@ -2741,6 +2853,6 @@
 }
 EXECUTE {end.bib}
 %% 
-%% Copyright (C) 2016-2022 by University of Bath
+%% Copyright (C) 2016-2025 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	2025-04-01 20:04:42 UTC (rev 74819)
+++ trunk/Master/texmf-dist/doc/bibtex/bath-bst/README.md	2025-04-01 20:05:00 UTC (rev 74820)
@@ -98,7 +98,7 @@
 
 ## Licence
 
-Copyright 2016-2022 University of Bath.
+Copyright 2016-2025 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	2025-04-01 20:04:42 UTC (rev 74819)
+++ trunk/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.bib	2025-04-01 20:05:00 UTC (rev 74820)
@@ -56,7 +56,8 @@
   booktitle = {{British National Formulary}},
   edition = {79},
   address = {London},
-  publisher = {Pharmaceutical Press}}
+  publisher = {Pharmaceutical Press},
+  pages = {280-281}}
 @inreference{aspirin2019bnf,
   title = {Aspirin},
   titleaddon = {[Online]},
@@ -104,7 +105,7 @@
   author = {Newman, R.},
   year = {2010},
   title = {Malaria control beyond 2010},
-  journal = {{Brit.\@ Med.\@ J.}},
+  journal = {{British} Medical Journal},
   volume = {341},
   number = {7765},
   pages = {157-208}}
@@ -123,7 +124,7 @@
   year = {2021},
   title = {Identifying Prognostic Pairwise Relationships Among Bacterial
     Species in Microbiome Studies},
-  journal = {{PLOS Computational Biology} \textup{[Online]}},
+  journal = {{PLOS} Computational Biology \textup{[Online]}},
   volume = {17},
   number = {11},
   url = {https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1009501},
@@ -251,7 +252,7 @@
   author = {{Phillipp Morris Inc.}},
   year = {1981},
   title = {Optical perforating apparatus and system},
-  series = {European patent application},
+  type = {European patent application},
   number = {0021165A1. 1981-01-07}}
 @unpublished{harris2013fgr,
   author = {Harris, G.},
@@ -331,7 +332,7 @@
   year = {2016},
   title = {Save Our Libraries},
   titleaddon = {[Online]},
-  url = {https://www.youtube.com/watch?v=gKTfCz4JtVE&feature=youtu.be},
+  url = {https://youtu.be/gKTfCz4JtVE},
   urldate = {29 April 2016}}
 @manual{chakrabarti2016hac,
   author = {Chakrabarti, V.},
@@ -381,6 +382,15 @@
   titleaddon = {[Online]},
   url = {https://www.buildinghistory.org/style/vernacular.shtml},
   urldate = {20 February 2020}}
+ at manual{chatgpt2023wcr,
+  author = {{ChatGPT}},
+  year = {2023},
+  title = {Why is Citing and Referencing Your Sources Important?},
+  titleaddon = {[Online]},
+  address = {San Francisco, Calif.},
+  organization = {OpenAI},
+  url = {https://chat.openai.com/share/782cb099-a0dc-45b1-8da4-0e99713f2d45},
+  urldate = {4 September 2023}}
 @manual{gaiman2021fbp,
   author = {Gaiman, N.},
   year = {2021},
@@ -536,6 +546,15 @@
   url = {http://www.legislation.gov.uk/uksi/2012/1916/pdfs/uksi_20121916_en.pdf},
   urldate = {17 April 2016},
   keywords = {uksi}}
+ at article{gb.hc2024rpc,
+  author = {{Great Britain. Parliament. House of Commons}},
+  year = {2024},
+  title = {{Rwanda Plan Cost and Asylum System}},
+  journal = {Hansard \textup{[Online]}},
+  volume = {744},
+  month = {9 January 2024},
+  url = {https://hansard.parliament.uk/Commons/2024-01-09/debates/57105D77-72DE-4246-9F6E-ED87FCB9A088/RwandaPlanCostAndAsylumSystem},
+  urldate = {12 December 2024}}
 @techreport{ec2015gra,
   author = {{European Commission}},
   year = {2015},
@@ -547,12 +566,27 @@
     the Statistical Monitoring of Trade in Bluefin Tuna, Swordfish and Big Eye Tuna within
     the {Community}},
   titleaddon = {[2003] \emph{OJ} L295}}
- at report{seldon-v-c.w.j2012,
-  title = {Seldon v.~{Clarkson} {Wright} \& {Jakes}},
-  note = {[2012]. UKSC 16}}
 @report{srl.etal-v-comm2005,
   title = {Alessandrini {Srl} and others v.~{Commission}},
   titleaddon = {(C-295/03 P) [2005] ECR I--5700}}
+ at manual{seldon-v-c.w.j2009,
+  title = {Seldon v~{Clarkson} {Wright} \& {Jakes}},
+  year = {2009},
+  series = {{England and Wales Court of Appeal (Civil Division)}},
+  number = {889},
+  note = {\emph{Bailii} [Online]},
+  url = {http://www.bailii.org/ew/cases/EWCA/Civ/2009/889.html},
+  urldate = {23 April 2024}}
+ at manual{braceurself-v-nhs.england2013,
+  title = {{Braceurself} {Ltd} v~{NHS} {England}},
+  year = {2013},
+  series = {{England and Wales Court of Appeal (Civil Division)}},
+  number = {39},
+  note = {\emph{Construction law reports}, {212}},
+  pages = {95-135}}
+ at report{seldon-v-c.w.j2012,
+  title = {Seldon v~{Clarkson} {Wright} \& {Jakes}},
+  titleaddon = {[2012] UKSC 16}}
 @book{adams2009tc1,
   author = {Adams, Gomez},
   year = {2009},

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	2025-04-01 20:04:42 UTC (rev 74819)
+++ trunk/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst-v1.tex	2025-04-01 20:05:00 UTC (rev 74820)
@@ -14,7 +14,7 @@
 %% ----------------------------------------------------------------
 %% 
 \ProvidesFile{bath-bst-v1.tex}
-    [2022/05/25 v6.0 Harvard referencing style as recommended by the University of Bath Library]
+    [2025/04/01 v7.0 Harvard referencing style as recommended by the University of Bath Library]
 
 \documentclass[10pt,a4paper]{article}
 \usepackage[british]{babel}
@@ -300,7 +300,7 @@
 \texttt{urldate}.
 
 This document provides a suite of examples that demonstrate and test the
-\texttt{bath} bibliography style with mostly standard Bib\TeX entry types
+\texttt{bath} bibliography style with mostly standard Bib\TeX\ entry types
 and fields.
 
 \section{Using the style}
@@ -542,7 +542,7 @@
 \end{info}
 
 \begin{bibexbox}<RX>{aspirin2020bnf}
-  British National Formulary, 2020. 79th ed. \emph{Aspirin}. London: Pharmaceutical Press.
+  British National Formulary, 2020. 79th ed. \emph{Aspirin}. London: Pharmaceutical Press, pp.280--281.
   \tcblower
 \begin{Verbatim}
 @inreference{aspirin2020bnf,
@@ -551,7 +551,8 @@
   booktitle = {{British National Formulary}},
   edition = {79},
   address = {London},
-  publisher = {Pharmaceutical Press}}
+  publisher = {Pharmaceutical Press},
+  pages = {280-281}}
 \end{Verbatim}
 \end{bibexbox}
 
@@ -651,7 +652,7 @@
 \end{bibexbox}
 
 \begin{bibexbox}<RX>{newman2010mcb}
-  Newman, R., 2010. Malaria control beyond 2010. \emph{Brit. Med. J.}, 341(7765), pp.157--208.
+  Newman, R., 2010. Malaria control beyond 2010. \emph{British medical journal}, 341(7765), pp.157--208.
   \tcblower
 \begin{Verbatim}
 @article{newman2010mcb,
@@ -658,7 +659,7 @@
   author = {Newman, R.},
   year = {2010},
   title = {Malaria control beyond 2010},
-  journal = {{Brit.\@ Med.\@ J.}},
+  journal = {{British} Medical Journal},
   volume = {341},
   number = {7765},
   pages = {157-208}}
@@ -685,7 +686,7 @@
 \subsubsection*{Electronic journal article}
 
 \begin{bibexbox}<RX>{devlin.etal2021ipp}
-  Devlin, S.M., Martin, A. and Ostrovnaya, I., 2021. Identifying prognostic pairwise relationships among bacterial species in microbiome studies. \emph{PLOS Computational Biology} [Online], 17(11). Available from: \url{https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1009501} [Accessed 9 December 2021].
+  Devlin, S.M., Martin, A. and Ostrovnaya, I., 2021. Identifying prognostic pairwise relationships among bacterial species in microbiome studies. \emph{PLOS computational biology} [Online], 17(11). Available from: \url{https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1009501} [Accessed 9 December 2021].
   \tcblower
 \begin{Verbatim}
 @article{devlin.etal2021ipp,
@@ -693,7 +694,7 @@
   year = {2021},
   title = {Identifying Prognostic Pairwise Relationships Among Bacterial
     Species in Microbiome Studies},
-  journal = {{PLOS Computational Biology} \textup{[Online]}},
+  journal = {{PLOS} Computational Biology \textup{[Online]}},
   volume = {17},
   number = {11},
   url = {https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1009501},
@@ -1006,7 +1007,7 @@
   author = {{Phillipp Morris Inc.}},
   year = {1981},
   title = {Optical perforating apparatus and system},
-  series = {European patent application},
+  type = {European patent application},
   number = {0021165A1. 1981-01-07}}
 \end{Verbatim}
 \end{bibexbox}
@@ -1213,7 +1214,7 @@
 \subsubsection*{Online video\slash audio}
 
 \begin{bibexbox}<RX>{moran2016sol}
-  Moran, C., 2016. \emph{Save our libraries} [Online]. Available from: \url{https://www.youtube.com/watch?v=gKTfCz4JtVE&feature=youtu.be} [Accessed 29 April 2016].
+  Moran, C., 2016. \emph{Save our libraries} [Online]. Available from: \url{https://youtu.be/gKTfCz4JtVE} [Accessed 29 April 2016].
   \tcblower
 \begin{Verbatim}
 @manual{moran2016sol,
@@ -1221,7 +1222,7 @@
   year = {2016},
   title = {Save Our Libraries},
   titleaddon = {[Online]},
-  url = {https://www.youtube.com/watch?v=gKTfCz4JtVE&feature=youtu.be},
+  url = {https://youtu.be/gKTfCz4JtVE},
   urldate = {29 April 2016}}
 \end{Verbatim}
 \end{bibexbox}
@@ -1347,6 +1348,24 @@
 \end{Verbatim}
 \end{bibexbox}
 
+This template is also used for retrievable Generative AI content.
+
+\begin{bibexbox}<RX>{chatgpt2023wcr}
+  ChatGPT, 2023. \emph{Why is citing and referencing your sources important?} [Online]. San Francisco, Calif.: OpenAI. Available from: \url{https://chat.openai.com/share/782cb099-a0dc-45b1-8da4-0e99713f2d45} [Accessed 4 September 2023].
+  \tcblower
+\begin{Verbatim}
+ at manual{chatgpt2023wcr,
+  author = {{ChatGPT}},
+  year = {2023},
+  title = {Why is Citing and Referencing Your Sources Important?},
+  titleaddon = {[Online]},
+  address = {San Francisco, Calif.},
+  organization = {OpenAI},
+  url = {https://chat.openai.com/share/782cb099-a0dc-45b1-8da4-0e99713f2d45},
+  urldate = {4 September 2023}}
+\end{Verbatim}
+\end{bibexbox}
+
 \subsubsection*{Social media}
 
 \begin{bibexbox}<RX>{gaiman2021fbp}
@@ -1614,7 +1633,7 @@
 \end{Verbatim}
 \end{bibexbox}
 
-\subsection{Legal or government document: UK parliamentary reports\slash legislation}
+\subsection{Government and parliamentary document}
 
 
 \subsubsection*{House of Commons paper}
@@ -1678,7 +1697,16 @@
 \end{Verbatim}
 \end{bibexbox}
 
+\begin{tips}\item
+To support the Command Paper template, if you give a report the \texttt{series}
+`C', `Cd', `Cmd', `Cmnd' or `Cm', it is followed by a dot rather than a comma.
+(If you need the comma as normal, wrap the value in an extra pair of braces.)
 
+If you prefer, you can give the Command Paper abbreviation in \texttt{type} and
+supply the dot yourself.
+\end{tips}
+
+
 \subsubsection*{House of Commons\slash House of Lords bill}
 
 \begin{bibexbox}<RX>{gb.bill1987/88-66}
@@ -1748,11 +1776,32 @@
 It should be ignored harmlessly by other styles.
 \end{tips}
 
-\subsection{Legal or government document: EU reports\slash legislation}
 
+\subsubsection*{Parliamentary debate}
 
+\begin{bibexbox}<RX>{gb.hc2024rpc}
+  Great Britain. Parliament. House of Commons, 2024. Rwanda Plan Cost and Asylum System. \emph{Hansard} [Online], 744, 9 January 2024. Available from: \url{https://hansard.parliament.uk/Commons/2024-01-09/debates/57105D77-72DE-4246-9F6E-ED87FCB9A088/RwandaPlanCostAndAsylumSystem} [Accessed 12 December 2024].
+  \tcblower
+\begin{Verbatim}
+ at article{gb.hc2024rpc,
+  author = {{Great Britain. Parliament. House of Commons}},
+  year = {2024},
+  title = {{Rwanda Plan Cost and Asylum System}},
+  journal = {Hansard \textup{[Online]}},
+  volume = {744},
+  month = {9 January 2024},
+  url = {https://hansard.parliament.uk/Commons/2024-01-09/debates/57105D77-72DE-4246-9F6E-ED87FCB9A088/RwandaPlanCostAndAsylumSystem},
+  urldate = {12 December 2024}}
+\end{Verbatim}
+\end{bibexbox}
+
+\subsection{Legal document: EU reports\slash legislation}
+
+
 \subsubsection*{EU publication}
 
+The following example has been removed.
+
 \begin{bibexbox}<RX>{ec2015gra}
   European Commission, 2015. \emph{General report on the activities of the European Union 2014}. Luxembourg: Publications Office of the European Union.
   \tcblower
@@ -1790,42 +1839,75 @@
 \end{tcblisting}
 \end{hacks}
 
-\subsection{Legal or government document: case reports}
+\subsection{Legal document: case reports}
 
+\subsubsection*{Judgment of the European Court of Justice}
+
+\begin{bibexbox}<RX>{srl.etal-v-comm2005}
+  \emph{Alessandrini Srl and others v.~Commission} (C-295/03 P) [2005] ECR I--5700.
+  \tcblower
+\begin{Verbatim}
+ at report{srl.etal-v-comm2005,
+  title = {Alessandrini {Srl} and others v.~{Commission}},
+  titleaddon = {(C-295/03 P) [2005] ECR I--5700}}
+\end{Verbatim}
+\end{bibexbox}
+
+
 \subsubsection*{Legal case study}
 
-\begin{bibexbox}<RX>{seldon-v-c.w.j2012}
-  \emph{Seldon v.~Clarkson Wright \& Jakes}. [2012]. UKSC 16.
+\begin{bibexbox}<RX>{seldon-v-c.w.j2009}
+  \emph{Seldon v Clarkson Wright \& Jakes}, 2009. England and Wales Court of Appeal (Civil Division), 889. \emph{Bailii} [Online]. Available from: \url{http://www.bailii.org/ew/cases/EWCA/Civ/2009/889.html} [Accessed 23 April 2024].
   \tcblower
 \begin{Verbatim}
- at report{seldon-v-c.w.j2012,
-  title = {Seldon v.~{Clarkson} {Wright} \& {Jakes}},
-  note = {[2012]. UKSC 16}}
+ at manual{seldon-v-c.w.j2009,
+  title = {Seldon v~{Clarkson} {Wright} \& {Jakes}},
+  year = {2009},
+  series = {{England and Wales Court of Appeal (Civil Division)}},
+  number = {889},
+  note = {\emph{Bailii} [Online]},
+  url = {http://www.bailii.org/ew/cases/EWCA/Civ/2009/889.html},
+  urldate = {23 April 2024}}
 \end{Verbatim}
 \end{bibexbox}
 
-\begin{info}\item
-Generally speaking, the year should be in square brackets if it is essential to the citation
-(unless it is a Scottish case, in which case it is printed bare), and in parentheses if it is
-not.
-\end{info}
+\begin{bibexbox}<RX>{braceurself-v-nhs.england2013}
+  \emph{Braceurself Ltd v~NHS England}, 2013. England and Wales Court of Appeal (Civil Division), 39. \emph{Construction law reports}, 212, pp.95--135.
+  \tcblower
+\begin{Verbatim}
+ at manual{braceurself-v-nhs.england2013,
+  title = {{Braceurself} {Ltd} v~{NHS} {England}},
+  year = {2013},
+  series = {{England and Wales Court of Appeal (Civil Division)}},
+  number = {39},
+  note = {\emph{Construction law reports}, {212}},
+  pages = {95-135}}
+\end{Verbatim}
+\end{bibexbox}
 
-\subsubsection*{Judgment of the European Court of Justice}
+It is also possible to achieve a more traditional or
+\href{http://www.bailii.org/bailii/citation.html}{neutral citation} format,
+similar to Harvard (Bath)'s pre-2024 format:
 
-\begin{bibexbox}<RX>{srl.etal-v-comm2005}
-  \emph{Alessandrini Srl and others v.~Commission} (C-295/03 P) [2005] ECR I--5700.
+\begin{bibexbox}<RX>{seldon-v-c.w.j2012}
+  \emph{Seldon v~Clarkson Wright \& Jakes} [2012] UKSC 16.
   \tcblower
 \begin{Verbatim}
- at report{srl.etal-v-comm2005,
-  title = {Alessandrini {Srl} and others v.~{Commission}},
-  titleaddon = {(C-295/03 P) [2005] ECR I--5700}}
+ at report{seldon-v-c.w.j2012,
+  title = {Seldon v~{Clarkson} {Wright} \& {Jakes}},
+  titleaddon = {[2012] UKSC 16}}
 \end{Verbatim}
 \end{bibexbox}
 
+\begin{info}\item
+Generally speaking, in a neutral citation the year should be in square brackets
+if it is essential to the citation (unless it is a Scottish case,
+in which case it is printed bare), and in parentheses if it is not.
+\end{info}
 
 \bibliography{bath-bst-v1}
 \end{document}
 %% 
-%% Copyright (C) 2016-2022 by University of Bath
+%% Copyright (C) 2016-2025 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	2025-04-01 20:04:42 UTC (rev 74819)
+++ trunk/Master/texmf-dist/doc/bibtex/bath-bst/bath-bst.bib	2025-04-01 20:05:00 UTC (rev 74820)
@@ -54,7 +54,8 @@
   booktitle = {{British National Formulary}},
   edition = {79},
   address = {London},
-  publisher = {Pharmaceutical Press}}
+  publisher = {Pharmaceutical Press},
+  pages = {280-281}}
 @inreference{aspirin2019bnf,
   title = {Aspirin},
   year = {2019},
@@ -101,7 +102,7 @@
   author = {Newman, R.},
   year = {2010},
   title = {Malaria control beyond 2010},
-  journal = {{Brit.\@ Med.\@ J.}},
+  journal = {{British} Medical Journal},
   volume = {341},
   number = {7765},
   pages = {157-208}}
@@ -120,7 +121,7 @@
   year = {2021},
   title = {Identifying Prognostic Pairwise Relationships Among Bacterial
     Species in Microbiome Studies},
-  journal = {{PLOS Computational Biology}},
+  journal = {{PLOS} Computational Biology},
   volume = {17},
   number = {11},
   url = {https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1009501},
@@ -332,7 +333,7 @@
   author = {Moran, C.},
   year = {2016},
   title = {Save Our Libraries},
-  url = {https://www.youtube.com/watch?v=gKTfCz4JtVE&feature=youtu.be},
+  url = {https://youtu.be/gKTfCz4JtVE},
   urlyear = {29 April 2016}}
 @audio{chakrabarti2016hac,
   author = {Chakrabarti, V.},
@@ -385,6 +386,14 @@
   title = {Vernacular Architecture},
   url = {https://www.buildinghistory.org/style/vernacular.shtml},
   urlyear = {20 February 2020}}
+ at online{chatgpt2023wcr,
+  author = {{ChatGPT}},
+  year = {2023},
+  title = {Why is Citing and Referencing Your Sources Important?},
+  address = {San Francisco, Calif.},
+  organization = {OpenAI},
+  url = {https://chat.openai.com/share/782cb099-a0dc-45b1-8da4-0e99713f2d45},
+  urlyear = {4 September 2023}}
 @online{gaiman2021fbp,
   author = {Gaiman, N.},
   year = {2021},
@@ -487,7 +496,7 @@
   titleaddon = {Roma everyday life in Bulgaria},
   address = {Veliko Tarnovo},
   publisher = {Faber}}
- at techreport{gb.hc2003/04-30,
+ at report{gb.hc2003/04-30,
   author = {{Great Britain. Parliament. House of Commons}},
   year = {2004},
   title = {National {Savings} Investment Deposits: account 2002--2003},
@@ -494,9 +503,8 @@
   address = {London},
   publisher = {National Audit Office},
   series = {{HC} 2003/04},
-  type = {},
   number = {30}}
- at techreport{gb.hl1986/87-66,
+ at report{gb.hl1986/87-66,
   author = {{Great Britain. Parliament. House of Lords}},
   year = {1987},
   title = {Social Fund (Maternity and Funeral Expenses) Bill},
@@ -503,9 +511,8 @@
   address = {London},
   publisher = {HMSO},
   series = {{HL} 1986/87},
-  type = {},
   number = {66}}
- at techreport{gb.cm6041,
+ at report{gb.cm6041,
   author = {{Great Britain. Ministry of Defence}},
   year = {2004},
   title = {Delivering Security in a Changing World{:} Defence White Paper},
@@ -512,7 +519,6 @@
   address = {London},
   publisher = {TSO},
   series = {Cm},
-  type = {},
   number = {6041}}
 @legislation{gb.bill1987/88-66,
   author = {{Great Britain. Parliament. House of Commons}},
@@ -542,6 +548,16 @@
   publisher = {HMSO},
   url = {http://www.legislation.gov.uk/uksi/2012/1916/pdfs/uksi_20121916_en.pdf},
   urlyear = {17 April 2016}}
+ at legal{gb.hc2024rpc,
+  entrysubtype = {parliamentary},
+  author = {{Great Britain. Parliament. House of Commons}},
+  year = {2024},
+  title = {{Rwanda Plan Cost and Asylum System}},
+  journal = {Hansard},
+  volume = {744},
+  eventyear = {9 January 2024},
+  url = {https://hansard.parliament.uk/Commons/2024-01-09/debates/57105D77-72DE-4246-9F6E-ED87FCB9A088/RwandaPlanCostAndAsylumSystem},
+  urlyear = {12 December 2024}}
 @report{ec2015gra,
   author = {{European Commission}},
   year = {2015},
@@ -556,11 +572,6 @@
   journal = {OJ},
   series = {L},
   volume = {295}}
- at jurisdiction{seldon-v-c.w.j2012,
-  title = {Seldon v.~{Clarkson} {Wright} \& {Jakes}},
-  year = {2012},
-  journal = {UKSC},
-  pages = {16}}
 @jurisdiction{srl.etal-v-comm2005,
   title = {Alessandrini {Srl} and others v.~{Commission}},
   number = {C-295/03 P},
@@ -568,6 +579,27 @@
   journal = {ECR},
   volume = {I},
   pages = {5700}}
+ at jurisdiction{seldon-v-c.w.j2009,
+  title = {Seldon v~{Clarkson} {Wright} \& {Jakes}},
+  year = {2009},
+  institution = {England and Wales Court of Appeal (Civil Division)},
+  number = {889},
+  journal = {Bailii},
+  url = {http://www.bailii.org/ew/cases/EWCA/Civ/2009/889.html},
+  urlyear = {23 April 2024}}
+ at jurisdiction{braceurself-v-nhs.england2013,
+  title = {{Braceurself} {Ltd} v~{NHS} {England}},
+  year = {2013},
+  institution = {England and Wales Court of Appeal (Civil Division)},
+  number = {39},
+  journal = {Construction law reports},
+  volume = {212},
+  pages = {95-135}}
+ at jurisdiction{seldon-v-c.w.j2012,
+  title = {Seldon v~{Clarkson} {Wright} \& {Jakes}},
+  year = {2012},
+  journal = {UKSC},
+  pages = {16}}
 @book{adams2009tc1,
   author = {Adams, Gomez},
   year = {2009},

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	2025-04-01 20:04:42 UTC (rev 74819)
+++ trunk/Master/texmf-dist/source/bibtex/bath-bst/bath-bst.dtx	2025-04-01 20:05:00 UTC (rev 74820)
@@ -39,7 +39,7 @@
 \endpreamble
 \postamble
 
-Copyright (C) 2016-2022 by University of Bath
+Copyright (C) 2016-2025 by University of Bath
 \endpostamble
 
 \usedir{bibtex/bst/\jobname}
@@ -74,7 +74,7 @@
 \ProvidesFile{bath-bst.dtx}
 %</driver>
 %<*driver|tex1>
-    [2022/05/25 v6.0 Harvard referencing style as recommended by the University of Bath Library]
+    [2025/04/01 v7.0 Harvard referencing style as recommended by the University of Bath Library]
 
 \documentclass[10pt,a4paper]{article}
 \usepackage[british]{babel}
@@ -554,7 +554,7 @@
 %</driver>
 %<*tex1>
 This document provides a suite of examples that demonstrate and test the
-\texttt{bath} bibliography style with mostly standard Bib\TeX entry types
+\texttt{bath} bibliography style with mostly standard Bib\TeX\ entry types
 and fields.
 %</tex1>
 %<*driver>
@@ -911,7 +911,7 @@
 \end{info}
 
 \begin{bibexbox}<RX>{aspirin2020bnf}
-  British National Formulary, 2020. 79th ed. \emph{Aspirin}. London: Pharmaceutical Press.
+  British National Formulary, 2020. 79th ed. \emph{Aspirin}. London: Pharmaceutical Press, pp.280--281.
   \tcblower
 \begin{Verbatim}
 %</driver|tex1>
@@ -922,7 +922,8 @@
   booktitle = {{British National Formulary}},
   edition = {79},
   address = {London},
-  publisher = {Pharmaceutical Press}}
+  publisher = {Pharmaceutical Press},
+  pages = {280-281}}
 %</driver|bib|tex1|bib1>
 %<*driver|tex1>
 \end{Verbatim}
@@ -1072,7 +1073,7 @@
 \end{bibexbox}
 
 \begin{bibexbox}<RX>{newman2010mcb}
-  Newman, R., 2010. Malaria control beyond 2010. \emph{Brit. Med. J.}, 341(7765), pp.157--208.
+  Newman, R., 2010. Malaria control beyond 2010. \emph{British medical journal}, 341(7765), pp.157--208.
   \tcblower
 \begin{Verbatim}
 %</driver|tex1>
@@ -1081,7 +1082,7 @@
   author = {Newman, R.},
   year = {2010},
   title = {Malaria control beyond 2010},
-  journal = {{Brit.\@ Med.\@ J.}},
+  journal = {{British} Medical Journal},
   volume = {341},
   number = {7765},
   pages = {157-208}}
@@ -1116,7 +1117,7 @@
 \subsubsection*{Electronic journal article}
 
 \begin{bibexbox}<RX>{devlin.etal2021ipp}
-  Devlin, S.M., Martin, A. and Ostrovnaya, I., 2021. Identifying prognostic pairwise relationships among bacterial species in microbiome studies. \emph{PLOS Computational Biology} [Online], 17(11). Available from: \url{https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1009501} [Accessed 9 December 2021].
+  Devlin, S.M., Martin, A. and Ostrovnaya, I., 2021. Identifying prognostic pairwise relationships among bacterial species in microbiome studies. \emph{PLOS computational biology} [Online], 17(11). Available from: \url{https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1009501} [Accessed 9 December 2021].
   \tcblower
 \begin{Verbatim}
 %</driver|tex1>
@@ -1126,7 +1127,7 @@
   year = {2021},
   title = {Identifying Prognostic Pairwise Relationships Among Bacterial
     Species in Microbiome Studies},
-  journal = {{PLOS Computational Biology}},
+  journal = {{PLOS} Computational Biology},
   volume = {17},
   number = {11},
   url = {https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1009501},
@@ -1142,7 +1143,7 @@
   year = {2021},
   title = {Identifying Prognostic Pairwise Relationships Among Bacterial
     Species in Microbiome Studies},
-  journal = {{PLOS Computational Biology} \textup{[Online]}},
+  journal = {{PLOS} Computational Biology \textup{[Online]}},
   volume = {17},
   number = {11},
   url = {https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1009501},
@@ -1777,7 +1778,7 @@
   author = {{Phillipp Morris Inc.}},
   year = {1981},
   title = {Optical perforating apparatus and system},
-  series = {European patent application},
+  type = {European patent application},
   number = {0021165A1. 1981-01-07}}
 %</tex1|bib1>
 %<*driver|tex1>
@@ -2182,7 +2183,7 @@
 \subsubsection*{Online video\slash audio}
 
 \begin{bibexbox}<RX>{moran2016sol}
-  Moran, C., 2016. \emph{Save our libraries} [Online]. Available from: \url{https://www.youtube.com/watch?v=gKTfCz4JtVE&feature=youtu.be} [Accessed 29 April 2016].
+  Moran, C., 2016. \emph{Save our libraries} [Online]. Available from: \url{https://youtu.be/gKTfCz4JtVE} [Accessed 29 April 2016].
   \tcblower
 \begin{Verbatim}
 %</driver|tex1>
@@ -2191,7 +2192,7 @@
   author = {Moran, C.},
   year = {2016},
   title = {Save Our Libraries},
-  url = {https://www.youtube.com/watch?v=gKTfCz4JtVE&feature=youtu.be},
+  url = {https://youtu.be/gKTfCz4JtVE},
   urlyear = {29 April 2016}}
 %</driver|bib>
 %<*driver>
@@ -2204,7 +2205,7 @@
   year = {2016},
   title = {Save Our Libraries},
   titleaddon = {[Online]},
-  url = {https://www.youtube.com/watch?v=gKTfCz4JtVE&feature=youtu.be},
+  url = {https://youtu.be/gKTfCz4JtVE},
   urldate = {29 April 2016}}
 %</tex1|bib1>
 %<*driver|tex1>
@@ -2486,7 +2487,46 @@
 %</driver>
 \end{bibexbox}
 
+This template is also used for retrievable Generative AI content.
 
+\begin{bibexbox}<RX>{chatgpt2023wcr}
+  ChatGPT, 2023. \emph{Why is citing and referencing your sources important?} [Online]. San Francisco, Calif.: OpenAI. Available from: \url{https://chat.openai.com/share/782cb099-a0dc-45b1-8da4-0e99713f2d45} [Accessed 4 September 2023].
+  \tcblower
+\begin{Verbatim}
+%</driver|tex1>
+%<*driver|bib>
+ at online{chatgpt2023wcr,
+  author = {{ChatGPT}},
+  year = {2023},
+  title = {Why is Citing and Referencing Your Sources Important?},
+  address = {San Francisco, Calif.},
+  organization = {OpenAI},
+  url = {https://chat.openai.com/share/782cb099-a0dc-45b1-8da4-0e99713f2d45},
+  urlyear = {4 September 2023}}
+%</driver|bib>
+%<*driver>
+\end{Verbatim}
+\iffalse
+%</driver>
+%<*tex1|bib1>
+ at manual{chatgpt2023wcr,
+  author = {{ChatGPT}},
+  year = {2023},
+  title = {Why is Citing and Referencing Your Sources Important?},
+  titleaddon = {[Online]},
+  address = {San Francisco, Calif.},
+  organization = {OpenAI},
+  url = {https://chat.openai.com/share/782cb099-a0dc-45b1-8da4-0e99713f2d45},
+  urldate = {4 September 2023}}
+%</tex1|bib1>
+%<*driver|tex1>
+\end{Verbatim}
+%<*driver>
+\fi
+%</driver>
+\end{bibexbox}
+
+
 \subsubsection*{Social media}
 
 \begin{bibexbox}<RX>{gaiman2021fbp}
@@ -3063,7 +3103,7 @@
 \end{bibexbox}
 
 
-\subsection{Legal or government document: UK parliamentary reports\slash legislation}
+\subsection{Government and parliamentary document}
 
 % Parliamentary reports
 
@@ -3079,7 +3119,7 @@
 \begin{Verbatim}
 %</driver|tex1>
 %<*driver|bib>
- at techreport{gb.hc2003/04-30,
+ at report{gb.hc2003/04-30,
   author = {{Great Britain. Parliament. House of Commons}},
   year = {2004},
   title = {National {Savings} Investment Deposits: account 2002--2003},
@@ -3086,7 +3126,6 @@
   address = {London},
   publisher = {National Audit Office},
   series = {{HC} 2003/04},
-  type = {},
   number = {30}}
 %</driver|bib>
 %<*driver>
@@ -3130,7 +3169,7 @@
 \begin{Verbatim}
 %</driver|tex1>
 %<*driver|bib>
- at techreport{gb.hl1986/87-66,
+ at report{gb.hl1986/87-66,
   author = {{Great Britain. Parliament. House of Lords}},
   year = {1987},
   title = {Social Fund (Maternity and Funeral Expenses) Bill},
@@ -3137,7 +3176,6 @@
   address = {London},
   publisher = {HMSO},
   series = {{HL} 1986/87},
-  type = {},
   number = {66}}
 %</driver|bib>
 %<*driver>
@@ -3177,7 +3215,7 @@
 \begin{Verbatim}
 %</driver|tex1>
 %<*driver|bib>
- at techreport{gb.cm6041,
+ at report{gb.cm6041,
   author = {{Great Britain. Ministry of Defence}},
   year = {2004},
   title = {Delivering Security in a Changing World{:} Defence White Paper},
@@ -3184,7 +3222,6 @@
   address = {London},
   publisher = {TSO},
   series = {Cm},
-  type = {},
   number = {6041}}
 %</driver|bib>
 %<*driver>
@@ -3208,7 +3245,16 @@
 %</driver>
 \end{bibexbox}
 
+\begin{tips}\item
+To support the Command Paper template, if you give a report the \texttt{series}
+`C', `Cd', `Cmd', `Cmnd' or `Cm', it is followed by a dot rather than a comma.
+(If you need the comma as normal, wrap the value in an extra pair of braces.)
 
+If you prefer, you can give the Command Paper abbreviation in \texttt{type} and
+supply the dot yourself.
+\end{tips}
+
+
 % UK Primary Legislation
 
 \subsubsection*{House of Commons\slash House of Lords bill}
@@ -3374,12 +3420,58 @@
 \end{tips}
 
 
-\subsection{Legal or government document: EU reports\slash legislation}
+% UK parliamentary debates
 
+\subsubsection*{Parliamentary debate}
+
+\begin{bibexbox}<RX>{gb.hc2024rpc}
+  Great Britain. Parliament. House of Commons, 2024. Rwanda Plan Cost and Asylum System. \emph{Hansard} [Online], 744, 9 January 2024. Available from: \url{https://hansard.parliament.uk/Commons/2024-01-09/debates/57105D77-72DE-4246-9F6E-ED87FCB9A088/RwandaPlanCostAndAsylumSystem} [Accessed 12 December 2024].
+  \tcblower
+\begin{Verbatim}
+%</driver|tex1>
+%<*driver|bib>
+ at legal{gb.hc2024rpc,
+  entrysubtype = {parliamentary},
+  author = {{Great Britain. Parliament. House of Commons}},
+  year = {2024},
+  title = {{Rwanda Plan Cost and Asylum System}},
+  journal = {Hansard},
+  volume = {744},
+  eventyear = {9 January 2024},
+  url = {https://hansard.parliament.uk/Commons/2024-01-09/debates/57105D77-72DE-4246-9F6E-ED87FCB9A088/RwandaPlanCostAndAsylumSystem},
+  urlyear = {12 December 2024}}
+%</driver|bib>
+%<*driver>
+\end{Verbatim}
+\iffalse
+%</driver>
+%<*tex1|bib1>
+ at article{gb.hc2024rpc,
+  author = {{Great Britain. Parliament. House of Commons}},
+  year = {2024},
+  title = {{Rwanda Plan Cost and Asylum System}},
+  journal = {Hansard \textup{[Online]}},
+  volume = {744},
+  month = {9 January 2024},
+  url = {https://hansard.parliament.uk/Commons/2024-01-09/debates/57105D77-72DE-4246-9F6E-ED87FCB9A088/RwandaPlanCostAndAsylumSystem},
+  urldate = {12 December 2024}}
+%</tex1|bib1>
+%<*driver|tex1>
+\end{Verbatim}
+%<*driver>
+\fi
+%</driver>
+\end{bibexbox}
+
+
+\subsection{Legal document: EU reports\slash legislation}
+
 % European reports
 
 \subsubsection*{EU publication}
 
+The following example has been removed.
+
 \begin{bibexbox}<RX>{ec2015gra}
   European Commission, 2015. \emph{General report on the activities of the European Union 2014}. Luxembourg: Publications Office of the European Union.
   \tcblower
@@ -3460,18 +3552,135 @@
 \end{hacks}
 
 
-\subsection{Legal or government document: case reports}
+\subsection{Legal document: case reports}
 
+\subsubsection*{Judgment of the European Court of Justice}
+
+\begin{bibexbox}<RX>{srl.etal-v-comm2005}
+  \emph{Alessandrini Srl and others v.~Commission} (C-295/03 P) [2005] ECR I--5700.
+  \tcblower
+\begin{Verbatim}
+%</driver|tex1>
+%<*driver|bib>
+ at jurisdiction{srl.etal-v-comm2005,
+  title = {Alessandrini {Srl} and others v.~{Commission}},
+  number = {C-295/03 P},
+  year = {2005},
+  journal = {ECR},
+  volume = {I},
+  pages = {5700}}
+%</driver|bib>
+%<*driver>
+\end{Verbatim}
+\iffalse
+%</driver>
+%<*tex1|bib1>
+ at report{srl.etal-v-comm2005,
+  title = {Alessandrini {Srl} and others v.~{Commission}},
+  titleaddon = {(C-295/03 P) [2005] ECR I--5700}}
+%</tex1|bib1>
+%<*driver|tex1>
+\end{Verbatim}
+%<*driver>
+\fi
+%</driver>
+\end{bibexbox}
+
+%<*driver>
+\begin{tips}\item
+Use the \texttt{number} field (or the non-standard \texttt{casenumber} field)
+for the case number. For Commission Decisions, use the (non-standard)
+\texttt{casenumber} or (\textsf{biblatex-oscola}) \texttt{userb} field for the
+Commission case number, \texttt{number} for the formal decision number, and give
+`Commission' as the \texttt{institution}.
+\end{tips}
+%</driver>
+
 \subsubsection*{Legal case study}
 
+\begin{bibexbox}<RX>{seldon-v-c.w.j2009}
+  \emph{Seldon v Clarkson Wright \& Jakes}, 2009. England and Wales Court of Appeal (Civil Division), 889. \emph{Bailii} [Online]. Available from: \url{http://www.bailii.org/ew/cases/EWCA/Civ/2009/889.html} [Accessed 23 April 2024].
+  \tcblower
+\begin{Verbatim}
+%</driver|tex1>
+%<*driver|bib>
+ at jurisdiction{seldon-v-c.w.j2009,
+  title = {Seldon v~{Clarkson} {Wright} \& {Jakes}},
+  year = {2009},
+  institution = {England and Wales Court of Appeal (Civil Division)},
+  number = {889},
+  journal = {Bailii},
+  url = {http://www.bailii.org/ew/cases/EWCA/Civ/2009/889.html},
+  urlyear = {23 April 2024}}
+%</driver|bib>
+%<*driver>
+\end{Verbatim}
+\iffalse
+%</driver>
+%<*tex1|bib1>
+ at manual{seldon-v-c.w.j2009,
+  title = {Seldon v~{Clarkson} {Wright} \& {Jakes}},
+  year = {2009},
+  series = {{England and Wales Court of Appeal (Civil Division)}},
+  number = {889},
+  note = {\emph{Bailii} [Online]},
+  url = {http://www.bailii.org/ew/cases/EWCA/Civ/2009/889.html},
+  urldate = {23 April 2024}}
+%</tex1|bib1>
+%<*driver|tex1>
+\end{Verbatim}
+%<*driver>
+\fi
+%</driver>
+\end{bibexbox}
+
+\begin{bibexbox}<RX>{braceurself-v-nhs.england2013}
+  \emph{Braceurself Ltd v~NHS England}, 2013. England and Wales Court of Appeal (Civil Division), 39. \emph{Construction law reports}, 212, pp.95--135.
+  \tcblower
+\begin{Verbatim}
+%</driver|tex1>
+%<*driver|bib>
+ at jurisdiction{braceurself-v-nhs.england2013,
+  title = {{Braceurself} {Ltd} v~{NHS} {England}},
+  year = {2013},
+  institution = {England and Wales Court of Appeal (Civil Division)},
+  number = {39},
+  journal = {Construction law reports},
+  volume = {212},
+  pages = {95-135}}
+%</driver|bib>
+%<*driver>
+\end{Verbatim}
+\iffalse
+%</driver>
+%<*tex1|bib1>
+ at manual{braceurself-v-nhs.england2013,
+  title = {{Braceurself} {Ltd} v~{NHS} {England}},
+  year = {2013},
+  series = {{England and Wales Court of Appeal (Civil Division)}},
+  number = {39},
+  note = {\emph{Construction law reports}, {212}},
+  pages = {95-135}}
+%</tex1|bib1>
+%<*driver|tex1>
+\end{Verbatim}
+%<*driver>
+\fi
+%</driver>
+\end{bibexbox}
+
+It is also possible to achieve a more traditional or
+\href{http://www.bailii.org/bailii/citation.html}{neutral citation} format,
+similar to Harvard (Bath)'s pre-2024 format:
+
 \begin{bibexbox}<RX>{seldon-v-c.w.j2012}
-  \emph{Seldon v.~Clarkson Wright \& Jakes}. [2012]. UKSC 16.
+  \emph{Seldon v~Clarkson Wright \& Jakes} [2012] UKSC 16.
   \tcblower
 \begin{Verbatim}
 %</driver|tex1>
 %<*driver|bib>
 @jurisdiction{seldon-v-c.w.j2012,
-  title = {Seldon v.~{Clarkson} {Wright} \& {Jakes}},
+  title = {Seldon v~{Clarkson} {Wright} \& {Jakes}},
   year = {2012},
   journal = {UKSC},
   pages = {16}}
@@ -3482,8 +3691,8 @@
 %</driver>
 %<*tex1|bib1>
 @report{seldon-v-c.w.j2012,
-  title = {Seldon v.~{Clarkson} {Wright} \& {Jakes}},
-  note = {[2012]. UKSC 16}}
+  title = {Seldon v~{Clarkson} {Wright} \& {Jakes}},
+  titleaddon = {[2012] UKSC 16}}
 %</tex1|bib1>
 %<*driver|tex1>
 \end{Verbatim}
@@ -3492,10 +3701,11 @@
 %</driver>
 \end{bibexbox}
 
+
 \begin{info}\item
-Generally speaking, the year should be in square brackets if it is essential to the citation
-(unless it is a Scottish case, in which case it is printed bare), and in parentheses if it is
-not.
+Generally speaking, in a neutral citation the year should be in square brackets
+if it is essential to the citation (unless it is a Scottish case,
+in which case it is printed bare), and in parentheses if it is not.
 \end{info}
 %<*driver>
 
@@ -3548,59 +3758,15 @@
   , fontupper = \footnotesize
   ]
 \begin{Verbatim}
-  title = {Seldon v.~{Clarkson} {Wright} \& {Jakes}},
-  sortyear = {2012},
-  note = {[2012]. UKSC 16}
+  title = {Seldon v~{Clarkson} {Wright} \& {Jakes}},
+  sortyear = {2009},
+  note = {[2009] EWCA Civ 889}
 \end{Verbatim}
 \end{tcolorbox}
 \end{hacks}
 %</driver>
 
-
-\subsubsection*{Judgment of the European Court of Justice}
-
-\begin{bibexbox}<RX>{srl.etal-v-comm2005}
-  \emph{Alessandrini Srl and others v.~Commission} (C-295/03 P) [2005] ECR I--5700.
-  \tcblower
-\begin{Verbatim}
 %</driver|tex1>
-%<*driver|bib>
- at jurisdiction{srl.etal-v-comm2005,
-  title = {Alessandrini {Srl} and others v.~{Commission}},
-  number = {C-295/03 P},
-  year = {2005},
-  journal = {ECR},
-  volume = {I},
-  pages = {5700}}
-%</driver|bib>
-%<*driver>
-\end{Verbatim}
-\iffalse
-%</driver>
-%<*tex1|bib1>
- at report{srl.etal-v-comm2005,
-  title = {Alessandrini {Srl} and others v.~{Commission}},
-  titleaddon = {(C-295/03 P) [2005] ECR I--5700}}
-%</tex1|bib1>
-%<*driver|tex1>
-\end{Verbatim}
-%<*driver>
-\fi
-%</driver>
-\end{bibexbox}
-
-%<*driver>
-\begin{tips}\item
-Use the \texttt{number} field (or the non-standard \texttt{casenmuber} field)
-for the case number. For Commission Decisions, use the (non-standard)
-\texttt{casenumber} or (\textsf{biblatex-oscola}) \texttt{userb} field for the
-Commission case number, \texttt{number} for the formal decision number, and give
-`Commission' as the \texttt{institution}.
-\end{tips}
-%</driver>
-
-
-%</driver|tex1>
 %<tex1>\bibliography{bath-bst-v1}
 %<*driver>
 \bibliography{bath-bst}
@@ -3613,7 +3779,7 @@
 %<readme>## Licence
 %<readme>
 %<*driver|readme>
-Copyright 2016-2022 University of Bath.
+Copyright 2016-2025 University of Bath.
 
 This work consists of the documented LaTeX file bath-bst.dtx and a Makefile.
 
@@ -4846,7 +5012,9 @@
   is.online
     { entrysubtype duplicate$ empty$
         type$ duplicate$ "legislation" =
-        swap$ "jurisdiction" =
+          swap$ duplicate$ "jurisdiction" =
+          swap$ "legal" =
+          or
         or
       or
         { pop$
@@ -5055,23 +5223,28 @@
 { options field.or.null "scottish-style" =
   keywords field.or.null "sc" =
   or
-    'format.date
+    { end.clause format.date }
     'format.date.brackets
   if$
 }
 FUNCTION {format.jur.date}
-{ journal field.or.null 's :=
-  s "OJ" =
-  s "ECR" =
+{ institution empty$
+  number empty$
   or
-    'format.date.brackets
-    { options field.or.null "year-essential=false" =
-        'format.date.parens
-        { volume empty$
-            'format.jur.date.essential
-            { options field.or.null "year-essential=true" =
+    { journal field.or.null 's :=
+      s "OJ" =
+      s "ECR" =
+      or
+        'format.date.brackets
+        { options field.or.null "year-essential=false" =
+            'format.date.parens
+            { volume empty$
                 'format.jur.date.essential
-                'format.date.parens
+                { options field.or.null "year-essential=true" =
+                    'format.jur.date.essential
+                    'format.date.parens
+                  if$
+                }
               if$
             }
           if$
@@ -5078,6 +5251,7 @@
         }
       if$
     }
+    { end.clause format.date }
   if$
 }
 %    \end{macrocode}
@@ -5381,7 +5555,9 @@
 %    \end{macrocode}
 %
 % |format.manual.number| returns the series, type and number fields as one of
-% `number', `type number', `series number', or `series number, type'.
+% `number', `type number' `series, number', or `series, number. type'. The last
+% of these formulations is for compatibility with previous versions, but may
+% change in future.
 %
 %    \begin{macrocode}
 FUNCTION {format.manual.number}
@@ -5401,7 +5577,7 @@
             'pop$
             { tie.or.space.prefix
               "number" bibinfo.check
-              * *
+                * *
             }
           if$
         }
@@ -5409,16 +5585,14 @@
     }
     { "t" change.case$ 
       number duplicate$ empty$
-        { pop$
+        'pop$
+        { "number" bibinfo.check
+          ", " swap$ * *
         }
-        { tie.or.space.prefix
-          "number" bibinfo.check
-          * *
-        }
       if$
       type duplicate$ empty$
         'pop$
-        { ", " swap$ *
+        { ". " swap$ *
           "t" change.case$ "type" bibinfo.check
           *
         }
@@ -5508,39 +5682,61 @@
 }
 %    \end{macrocode}
 %
-% |format.case.number| returns the number field, suppressing punctuation,
-% or inserts a period. In the case of EU Commission Decisions, the format is
-% `(userb) Commission Decision number`
+% |format.case.number| adds to the stack `(number or casenumber)' if either
+% of those fields is provided with no |institution|; or `(userb or casenumber)
+% Commission Decision number' if |institution| is `Commission'; otherwise
+% adds an empty string.
 %
 %    \begin{macrocode}
 FUNCTION {format.case.number}
-{ casenumber duplicate$ empty$
-    { pop$
-      number duplicate$ empty$
-        { pop$ "" }
-        { institution field.or.null "Commission" =
-          userb empty$ not
-          and
-            { userb "userb" bibinfo.check
-              "(" swap$ * ") " * bbl.commission * " " *
-              swap$ "number" bibinfo.check *
+{ number field.or.null 's :=
+  s empty$
+    { casenumber field.or.null 's := }
+    'skip$
+  if$
+  s empty$
+    { "" }
+    { institution field.or.null duplicate$ empty$
+        { pop$
+          s "number" bibinfo.check
+          "(" swap$ * ")" *
+        }
+        { "Commission" =
+            { userb field.or.null 's :=
+              s empty$
+                { casenumber field.or.null 's := }
+                'skip$
+              if$
+              s duplicate$ empty$
+                { "" }
+                { "(" swap$ * ")" * " " }
+              if$
+              number duplicate$ empty$
+                { pop$ pop$ }
+                { bbl.commission " " *
+                  swap$ * * *
+                }
+              if$
             }
-            { "number" bibinfo.check
-            "(" swap$ * ")" *
-            }
+            { "" }
           if$
         }
       if$
     }
-    { "casenumber" bibinfo.check
-      "(" swap$ * ")" *
-      institution field.or.null "Commission" =
-      number empty$ not
-      and
-        { " " * bbl.commission * " " *
-          number "number" bibinfo.check *
-        }
-        'skip$
+  if$
+}
+%    \end{macrocode}
+%
+% |case.check| checks if the entry should be puncuation with a full stop.
+% 
+%
+%    \begin{macrocode}
+FUNCTION {case.check}
+{ institution duplicate$ empty$
+    { pop$ continue.clause }
+    { "Commission" =
+        'continue.clause
+        'new.block
       if$
     }
   if$
@@ -5861,12 +6057,36 @@
 }
 %    \end{macrocode}
 %
+% |format.vol.num| returns volume and number in the form `volume(number)'. It
+% writes a warning to the log if |number| is given instead of |volume|: if a
+% journal does not organize itself into volumes, treat every issue as its own
+% volume!
+%
+%    \begin{macrocode}
+FUNCTION {format.vol.num}
+{ volume field.or.null duplicate$ empty$
+    'skip$
+    { "volume" bibinfo.check
+    }
+  if$
+  number "number" bibinfo.check duplicate$ empty$
+    'skip$
+    { swap$ duplicate$ empty$
+        { "there's a number but no volume in " cite$ * warning$ }
+        'skip$
+      if$
+      swap$
+      "(" swap$ * ")" *
+    }
+  if$
+}
+%    \end{macrocode}
+%
 % |format.vol.num.pages| returns the journal pinpointing in the form
-% `volume(number), eid\slash pages'. It writes a warning to the log if |number|
-% is given instead of |volume|: if a journal does not organize itself into
-% volumes, treat every issue as its own volume! Since the Harvard (Bath) style
+% `volume(number), eid\slash pages'. Since the Harvard (Bath) style
 % places publication state information in the volume position, the |pubstate|
-% field from \textsf{biblatex} is emulated here.
+% field from \textsf{biblatex} is emulated here. The |eventyear| if present
+% is used instead of month, in order to support parliamentary debates.
 %
 %    \begin{macrocode}
 FUNCTION {format.vol.num.pages}
@@ -5885,24 +6105,20 @@
   if$
   duplicate$ empty$
     { pop$
-      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$
+      format.vol.num *
+      eventyear field.or.null duplicate$ empty$
+        { pop$
+          month "month" bibinfo.check duplicate$ empty$
+            'pop$
+            { swap$ duplicate$ empty$
+                'pop$
+                { ", " * swap$ * }
+              if$
+            }
           if$
-          swap$
-          "(" swap$ * ")" *
         }
-      if$ *
-      month "month" bibinfo.check duplicate$ empty$
-        'pop$
         { swap$ duplicate$ empty$
-            'pop$
+           'pop$
             { ", " * swap$ * }
           if$
         }
@@ -5940,6 +6156,7 @@
     }
   if$
 }
+
 %    \end{macrocode}
 %
 % |format.journal.series.vol.pages| returns the journal title and pinpointing
@@ -6022,6 +6239,85 @@
 }
 %    \end{macrocode}
 %
+% If |institution| is given (not `Commission'), |format.inst.journal.series.vol.pages|
+% adds the |institution|, |number| and regular journal information to the stack.
+% otherwise, it calls |format.journal.series.vol.pages| instead.
+%
+%    \begin{macrocode}
+FUNCTION {format.inst.journal.series.vol.pages}
+{ institution duplicate$ empty$
+    { pop$ format.journal.series.vol.pages }
+    { duplicate$ "Commission" =
+        { pop$ format.journal.series.vol.pages }
+        { number duplicate$ empty$
+            { pop$ casenumber duplicate$ empty$
+                'skip$
+                { "casenumber" bibinfo.check
+                  ", " swap$ * *
+                }
+              if$
+            }
+            { "number" bibinfo.check
+              ", " swap$ * *
+            }
+          if$
+          output new.sentence
+          journal "t" change.case$
+          "journal" bibinfo.check
+          emphasize output
+%    \end{macrocode}
+% \iffalse
+%<*bst2>
+% \fi\bstIIonly
+%
+% In |bathx.bst|, we conditionally include the |bbl.online| string:
+%
+%    \begin{macrocode}
+          is.online
+            { continue.clause
+              bbl.online output
+              #1 'online.shown :=
+            }
+            'skip$
+          if$
+%    \end{macrocode}
+% \iffalse
+%</bst2>
+% \fi\addtocounter{mismatch}{7}\bstboth
+%    \begin{macrocode}
+          volume field.or.null
+          duplicate$ empty$ 'skip$
+            { "volume" bibinfo.check
+            }
+          if$
+          eventyear field.or.null duplicate$ empty$
+            { pop$
+              month "month" bibinfo.check duplicate$ empty$
+                'pop$
+                { swap$ duplicate$ empty$
+                    'pop$
+                    { ", " * swap$ * }
+                  if$
+                }
+              if$
+            }
+            { swap$ duplicate$ empty$
+              'pop$
+                { ", " * swap$ * }
+              if$
+            }
+          if$
+          eid empty$
+            { format.journal.pages }
+            { format.journal.eid }
+          if$
+        }
+      if$
+    }
+  if$
+}
+%    \end{macrocode}
+%
 % \subsubsection{Access and URLs}
 %
 % |format.eprint| returns a string |\eprint[archive]{eprint}|.
@@ -6209,11 +6505,15 @@
       print.title.addenda
     }
   if$
+  new.block
+  format.edition output
+  edition empty$
+    { mid.sentence 'output.state := }
+    'new.block
+  if$
   format.bvolume output
   format.number.series output
   new.block
-  format.edition output
-  new.block
   format.note output
   crossref missing$
     { keywords field.or.null "uksi" =
@@ -6298,36 +6598,40 @@
 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$
-    }
+  { format.title "title" output.check
+    print.labeltitle.addenda
+    format.date "year" output.check
+    year empty$ 'skip$ { date.block } if$
+    print.title.addenda
+  }
+  { format.authors output.nonnull
+    format.date "year" output.check
+    date.block
+    format.title "title" output.check
+    print.title.addenda
+  }
   if$
-  format.date "year" output.check
-  date.block
-  format.btitle "title" output.check
-  print.title.addenda
   new.block
-  format.edition output
-  new.block
-  format.note output
-  new.block
   crossref missing$
-    { format.publisher.address output
+    { format.in.ed.booktitle "booktitle" output.check
+      new.block
+      format.edition output
+      edition empty$
+        { mid.sentence 'output.state := }
+        'new.block
+      if$
       format.bvolume output
-      format.chapter.pages "chapter and pages" output.check
+      format.number.series output
       new.block
-      format.number.series output
-      new.sentence
+      format.note output
+      new.block
+      format.publisher.address output
+      format.chapter.pages output
     }
-    { format.chapter.pages "chapter and pages" output.check
+    { format.note output
       new.block
-      format.book.crossref output.nonnull
+      format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
     }
   if$
   new.block
@@ -6373,21 +6677,26 @@
       if$
       new.block
       format.edition output
-      new.block
       type$ "inreference" =
       author empty$
       and
-        { format.btitle "title" output.check
+        { new.block
+          format.btitle "title" output.check
           print.title.addenda
           new.block
         }
-        'skip$
+        { edition empty$
+          { mid.sentence 'output.state := }
+            'new.block
+          if$  
+        }
       if$
+      format.bvolume output
+      format.number.series output
+      new.block
       format.note output
       new.block
       format.publisher.address output
-      format.bvolume output
-      format.number.series output
       format.chapter.pages output
     }
     { format.note output
@@ -6417,6 +6726,8 @@
   new.block
   crossref missing$
     { format.in.ed.booktitle "booktitle" output.check
+      format.bvolume output
+      format.number.series output
       eventyear output
       venue output
       format.note output
@@ -6427,8 +6738,6 @@
           format.publisher.address output
         }
       if$
-      format.bvolume output
-      format.number.series output
       format.pages output
     }
     { format.note output
@@ -6454,15 +6763,11 @@
     { format.btitle "title" output.check
       continue.clause
       format.case.number output
-      number empty$
-      casenumber empty$
-      and
-        'new.sentence
-        'continue.clause
-      if$
+      continue.clause
       print.labeltitle.addenda
+      continue.clause
       format.jur.date "year" output.check
-      year empty$ 'skip$ { eu.case.check } if$
+      year empty$ 'skip$ { case.check } if$
       print.title.addenda
     }
     { format.authors output
@@ -6475,15 +6780,15 @@
       print.title.addenda
     }
   if$
-  eu.case.check
+  case.check
   format.note output
   note empty$
-    'eu.case.check
+    'case.check
     'new.block
   if$
   crossref missing$
     { continue.clause
-      format.journal.series.vol.pages output
+      format.inst.journal.series.vol.pages output
     }
     { format.article.crossref output.nonnull
       format.pages output
@@ -6603,6 +6908,22 @@
 }
 %    \end{macrocode}
 %
+% \subsubsection{Parliamentary debate}
+%
+% It would be more efficient to use a straight alias here, but we anticipate
+% using this driver for other templates in future. When that happens, the two
+% sides of the test will be different.
+%
+%    \begin{macrocode}
+FUNCTION {legal}
+{ entrysubtype field.or.null 
+ "parliamentary" =
+    'article
+    'article
+  if$
+}
+%    \end{macrocode}
+%
 % \subsubsection{Manual}
 %
 %    \begin{macrocode}
@@ -6628,7 +6949,7 @@
   new.block
   format.manual.number output
   new.block
-  format.note output
+  format.note format.journal.pages output
   new.block
   format.library output
   organization address new.block.checkb
@@ -6777,6 +7098,8 @@
   if$
   format.bvolume output
   format.number.series output
+  eventyear output
+  venue output
   format.note output
   new.sentence
   publisher empty$



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