summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-10-15 20:19:58 +0000
committerKarl Berry <karl@freefriends.org>2022-10-15 20:19:58 +0000
commit7614b6d9779116f7f3efad43609e9e3fd20d79da (patch)
treef7212c45a17f5c4b94997594a81b7674fbe2a112
parentebe59a3d758c0d9f851743e256ead7c4db07d3bc (diff)
bib2gls (15oct22)
git-svn-id: svn://tug.org/texlive/trunk@64710 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/simpdftex/simpdftex34
-rw-r--r--Master/texmf-dist/doc/man/man1/bib2gls.138
-rw-r--r--Master/texmf-dist/doc/man/man1/bib2gls.man1.pdfbin38355 -> 38869 bytes
-rw-r--r--Master/texmf-dist/doc/man/man1/convertgls2bib.14
-rw-r--r--Master/texmf-dist/doc/man/man1/convertgls2bib.man1.pdfbin28664 -> 27489 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/CHANGES77
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/DEPENDS.txt2
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/README.md13
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/bib2gls-begin.pdfbin726657 -> 726769 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/bib2gls.pdfbin4985737 -> 5116129 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/examples/sample-authors.pdfbin51554 -> 51567 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/examples/sample-bacteria.pdfbin54223 -> 54233 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/examples/sample-chemical.pdfbin54005 -> 54014 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/examples/sample-citations.pdfbin49744 -> 49757 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/examples/sample-constants.pdfbin97787 -> 97800 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/examples/sample-hierarchical.pdfbin52507 -> 52517 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/examples/sample-markuplanguages.pdfbin61070 -> 61083 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/examples/sample-maths.pdfbin121290 -> 121233 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/examples/sample-media.pdfbin166498 -> 166497 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/examples/sample-msymbols.pdfbin109213 -> 109224 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/examples/sample-multi1.pdfbin255317 -> 255321 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/examples/sample-multi2.pdfbin330725 -> 330718 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/examples/sample-nested.pdfbin52519 -> 52529 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/examples/sample-people.pdfbin50318 -> 50332 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/examples/sample-textsymbols.pdfbin73043 -> 73055 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/examples/sample-textsymbols2.pdfbin70258 -> 70266 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/examples/sample-units1.pdfbin57346 -> 57356 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/examples/sample-units2.pdfbin59077 -> 59088 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/examples/sample-units3.pdfbin44644 -> 44656 bytes
-rw-r--r--Master/texmf-dist/doc/support/bib2gls/examples/sample-usergroups.pdfbin23851 -> 23840 bytes
-rwxr-xr-xMaster/texmf-dist/scripts/bib2gls/bib2gls.jarbin311605 -> 351599 bytes
-rwxr-xr-xMaster/texmf-dist/scripts/bib2gls/convertgls2bib.jarbin40028 -> 40686 bytes
-rw-r--r--Master/texmf-dist/scripts/bib2gls/resources/bib2gls-en.xml32
-rwxr-xr-xMaster/texmf-dist/scripts/bib2gls/texparserlib.jarbin947415 -> 1534189 bytes
-rw-r--r--Master/texmf-dist/source/support/bib2gls/src/bib2gls-begin.tex2
-rw-r--r--Master/texmf-dist/source/support/bib2gls/src/bib2gls-src.zipbin227518 -> 264591 bytes
-rw-r--r--Master/texmf-dist/source/support/bib2gls/src/bib2gls-terms.bib6
-rw-r--r--Master/texmf-dist/source/support/bib2gls/src/bib2gls.bib665
-rw-r--r--Master/texmf-dist/source/support/bib2gls/src/bib2gls.pod36
-rw-r--r--Master/texmf-dist/source/support/bib2gls/src/bib2gls.tex1226
-rw-r--r--Master/texmf-dist/source/support/bib2gls/src/gls2bib-src.zipbin32972 -> 33144 bytes
-rw-r--r--Master/texmf-dist/source/support/bib2gls/src/texparser-src.zipbin854065 -> 1322528 bytes
-rw-r--r--Master/tlpkg/tlpsrc/bib2gls.tlpsrc2
43 files changed, 2014 insertions, 123 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/simpdftex/simpdftex b/Build/source/texk/texlive/linked_scripts/simpdftex/simpdftex
index beff5ee57c3..413cf11fcdd 100755
--- a/Build/source/texk/texlive/linked_scripts/simpdftex/simpdftex
+++ b/Build/source/texk/texlive/linked_scripts/simpdftex/simpdftex
@@ -6,8 +6,9 @@
# Modified by Joachim Kock, May 2003
# Modified by Gerben Wierda, April 2007
# Modified by Bruno Voisin and Herbert Schulz, September 2018
+# Typos corrected by Karl Berry, October 2022.
-# COPYRIGHT Gerben Wierda 2001--2018
+# COPYRIGHT Gerben Wierda 2001--2022
# This file is free software. You are free to use this file in any way you like
# However, if you change it you should note in this file that you did and who
# you are, you also need to change the version string if you do. That way
@@ -87,7 +88,7 @@
# Version 2.8: Checked into CVS.
# Added handling of outdir for TeX
# Version 2.9: Added auto-outdir flag
-# Version 2.10: Changed --outdir behaviour to mimick TEXMFOUTPUT,
+# Version 2.10: Changed --outdir behaviour to mimic TEXMFOUTPUT,
# removed --auto-outdir
# Version 2.11: Fixed typo
# Version 2.12: RCS changes, from now on, the version number is the RCS number
@@ -101,7 +102,7 @@
# display a blank page until the new version is ready.
# 2003/05/21 Joachim's modification used /bin/cp. Gerben made it truly
# atomic by using /bin/cp in combination with /bin/mv
-# 2003/11/23 Added supportfor passing flasg to tex at the request of
+# 2003/11/23 Added support for passing flags to tex at the request of
# Dick Koch.
# 2004/09/05 Bugfix: make it work better with directories with whitespace
# in their name
@@ -122,18 +123,19 @@
# options to be added to the distiller application;
# e.g. "-dCompatibilityLevel=1.5 -dNOSAFER".
# Removed uses of echo -n.
-# 2018/09/24 Added -dCompatibilityLevel=15 into the distillerprog definition
-# and removed quotes around execution of ${distillerprog} so it can
-# contain options.
-
+# 2018/09/24 Added -dCompatibilityLevel=15 into the distillerprog definition
+# and removed quotes around execution of ${distillerprog}
+# so it can contain options.
+# 2022/10/12 Fix typos; no functional changes.
+#
# FEATURE: it seems -u +foo.map -u -foo.map does not work. So --extradvipsopts
# cannot be used to remove a map from the standard list
-# BUG: Handling of file name extensions is not completely equialent to TeX
+# BUG: Handling of file name extensions is not completely equivalent to TeX
# i.e. foo.bar.bla gets you foo.bar.pdf not foo.bar.bla.pdf
# Hint: Give all extensions explicitly on the command line
-version='20180924'
+version='20221012'
calledas=`basename "$0"`
if [ "${calledas}" = "simpdftex" ]
then
@@ -232,7 +234,7 @@ Arguments:
Display this message and exit
--no-echo-version
Do not echo location and version of this script. Does not exit
- so can be used tochange info to the output of a real run
+ so can be used to change info to the output of a real run
--debug
Add some debug output
--extendedname
@@ -298,7 +300,7 @@ Arguments:
--distiller prog
Use a distiller different from ps2pdf which is the default.
Argument must be an executable or executable script that
- gets called iwth two arguments: input file (PS) and output
+ gets called with two arguments: input file (PS) and output
file (PDF). E.g.:
--distiller=/usr/local/alternate/bin/ps2pdf
--distiller=pstill
@@ -329,7 +331,7 @@ Arguments:
overrides other flags that set dvipdfmopts.
--outdir dir
Write files here *if* our current directory is unwritable. This
- mimicks the TEXMFOUTPUT environment variable of TeX, but
+ mimics the TEXMFOUTPUT environment variable of TeX, but
differently. The current dir becomes the value of --outdir and
the directory where the old current dir is added to TEXINPUTS.
This is more robust for reading and locating files.
@@ -648,15 +650,15 @@ main()
if [ "${startwithdvi}" = "yes" ]; then
if [ "${keeppsfile}" = "yes" ]; then
- /bin/echo "### Succesfully generated ${savedpdffile} and ${savedpsfile}"
+ /bin/echo "### Successfully generated ${savedpdffile} and ${savedpsfile}"
else
- /bin/echo "### Succesfully generated ${savedpdffile}"
+ /bin/echo "### Successfully generated ${savedpdffile}"
fi
else
if [ "${keeppsfile}" = "yes" ]; then
- /bin/echo "### Succesfully generated ${dvifile}, ${savedpdffile} and ${savedpsfile}"
+ /bin/echo "### Successfully generated ${dvifile}, ${savedpdffile} and ${savedpsfile}"
else
- /bin/echo "### Succesfully generated ${dvifile} and ${savedpdffile}"
+ /bin/echo "### Successfully generated ${dvifile} and ${savedpdffile}"
fi
fi
diff --git a/Master/texmf-dist/doc/man/man1/bib2gls.1 b/Master/texmf-dist/doc/man/man1/bib2gls.1
index 71c14c4da10..448bd6550ff 100644
--- a/Master/texmf-dist/doc/man/man1/bib2gls.1
+++ b/Master/texmf-dist/doc/man/man1/bib2gls.1
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42)
+.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -133,7 +133,7 @@
.\" ========================================================================
.\"
.IX Title "BIB2GLS 1"
-.TH BIB2GLS 1 "2021-11-06" "perl v5.32.1" "bib2gls"
+.TH BIB2GLS 1 "2022-10-09" "perl v5.34.1" "bib2gls"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -311,13 +311,20 @@ commands to protect against case-changing commands like \f(CW\*(C`\eGls\*(C'\fR.
The default is to do this for all fields. To do this for only a
subset of fields, set \fIfields\fR to a comma-separated list of fields
(e.g. \fBname,short,long\fR). The keyword \fBall\fR indicates all fields.
+.Sp
+If \fImfirstuc\fR v2.08+, \fIglossaries\fR v4.50+ and \fIglossaries-extra\fR v1.49+
+are detected, the default will be \fB\-\-no\-mfirstuc\-protection\fR
+as there should no longer be any need for this protection.
.IP "\fB\-\-no\-mfirstuc\-protection\fR" 4
.IX Item "--no-mfirstuc-protection"
Switch off the auto-insertion of an empty group for all fields.
.IP "\fB\-\-mfirstuc\-math\-protection\fR" 4
.IX Item "--mfirstuc-math-protection"
Switch on the auto-insertion of an empty group for math-shift (\f(CW\*(C`$\*(C'\fR).
-This option will be overridden by \fB\-\-no\-mfirstuc\-protection\fR.
+.Sp
+If \fImfirstuc\fR v2.08+, \fIglossaries\fR v4.50+ and \fIglossaries-extra\fR v1.49+
+are detected, the default will be \fB\-\-no\-mfirstuc\-math\-protection\fR
+as there should no longer be any need for this protection.
.IP "\fB\-\-no\-mfirstuc\-math\-protection\fR" 4
.IX Item "--no-mfirstuc-math-protection"
Switch off the auto-insertion of an empty group for math-shift (\f(CW\*(C`$\*(C'\fR).
@@ -347,6 +354,23 @@ Add \fBgroup\fR field to entries.
.IP "\fB\-\-no\-group\fR" 4
.IX Item "--no-group"
Don't add \fBgroup\fR field to entries (default).
+.IP "\fB\-\-record\-count\-rule\fR \fIrule\fR or \fB\-r\fR \fIrule\fR" 4
+.IX Item "--record-count-rule rule or -r rule"
+Sets the rule used by \fB\-\-record\-count\fR and \fB\-\-record\-count\-unit\fR.
+This option automatically implements \fB\-\-record\-count\fR.
+.Sp
+The \fIrule\fR may be: \f(CW\*(C`all\*(C'\fR or \f(CW\*(C`a\*(C'\fR (count all records),
+\&\f(CW\*(C`non\-ignored\*(C'\fR or \f(CW\*(C`n\*(C'\fR (count all non-ignored records),
+\&\f(CW\*(C`f/\*(C'\fR\fIregex\fR\f(CW\*(C`/\*(C'\fR (only count records where the format
+matches the regular expression \fIregex\fR),
+\&\f(CW\*(C`c/\*(C'\fR\fIregex\fR\f(CW\*(C`/\*(C'\fR (only count records where the counter name
+matches the regular expression \fIregex\fR),
+or \f(CW\*(C`f/\*(C'\fR\fIregex1\fR\f(CW\*(C`/c/\*(C'\fR\fIregex2\fR\f(CW\*(C`/\*(C'\fR\fIop\fR (only count records where the format
+matches the regular expression \fIregex1\fR and/or the counter name
+matches the regular expression \fIregex2\fR). The \fIop\fR part is
+optional. If present it may be one of: \f(CW\*(C`and\*(C'\fR (format \s-1AND\s0 counter
+must match), \f(CW\*(C`or\*(C'\fR (format \s-1OR\s0 counter must match). If \fIop\fR is
+omitted, \s-1AND\s0 is assumed.
.IP "\fB\-\-record\-count\fR or \fB\-c\fR" 4
.IX Item "--record-count or -c"
Add record count fields to entries.
@@ -397,6 +421,14 @@ Don't write \f(CW\*(C`\eprovideignoredglossary*\*(C'\fR to the \fI.glstex\fR fil
provide unknown glossaries except in documented situations
(\fBmaster\fR, \fBsecondary\fR and \fBtrigger-type\fR resource options).
This setting is the default.
+.IP "\fB\-\-replace\-quotes\fR" 4
+.IX Item "--replace-quotes"
+Replace single and double quote characters (\f(CW\*(C`\*(Aq\*(C'\fR and \f(CW\*(C`"\*(C'\fR) with
+\&\f(CW\*(C`\ebibglsaposchar\*(C'\fR and \f(CW\*(C`\ebibglsdoublequotechar\*(C'\fR in field values
+and group information written to the \fI.glstex\fR file.
+.IP "\fB\-\-no\-replace\-quotes\fR" 4
+.IX Item "--no-replace-quotes"
+Don't replace quote characters (default).
.SH "REQUIRES"
.IX Header "REQUIRES"
Java 7 or later and a TeX distribution.
diff --git a/Master/texmf-dist/doc/man/man1/bib2gls.man1.pdf b/Master/texmf-dist/doc/man/man1/bib2gls.man1.pdf
index f014d79769a..305a84c57f7 100644
--- a/Master/texmf-dist/doc/man/man1/bib2gls.man1.pdf
+++ b/Master/texmf-dist/doc/man/man1/bib2gls.man1.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/man/man1/convertgls2bib.1 b/Master/texmf-dist/doc/man/man1/convertgls2bib.1
index 72eb20f3cb5..36295b9a093 100644
--- a/Master/texmf-dist/doc/man/man1/convertgls2bib.1
+++ b/Master/texmf-dist/doc/man/man1/convertgls2bib.1
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42)
+.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43)
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -133,7 +133,7 @@
.\" ========================================================================
.\"
.IX Title "CONVERTGLS2BIB 1"
-.TH CONVERTGLS2BIB 1 "2020-02-11" "perl v5.32.1" "convertgls2bib"
+.TH CONVERTGLS2BIB 1 "2020-02-11" "perl v5.34.1" "convertgls2bib"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
diff --git a/Master/texmf-dist/doc/man/man1/convertgls2bib.man1.pdf b/Master/texmf-dist/doc/man/man1/convertgls2bib.man1.pdf
index d59449d4d7a..dd22dd91543 100644
--- a/Master/texmf-dist/doc/man/man1/convertgls2bib.man1.pdf
+++ b/Master/texmf-dist/doc/man/man1/convertgls2bib.man1.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/CHANGES b/Master/texmf-dist/doc/support/bib2gls/CHANGES
index dc10b362cfc..a00bda19669 100644
--- a/Master/texmf-dist/doc/support/bib2gls/CHANGES
+++ b/Master/texmf-dist/doc/support/bib2gls/CHANGES
@@ -1,3 +1,80 @@
+v3.0 (2022-10-14):
+
+ * support for \glsxtr@select@entry and \glsxtr@select@entry@nameref
+ (new to glossaries-extra-bib2gls v1.49)
+
+ * support for bibglsaux and \glsxtrsetbibglsaux
+ (new to glossaries-extra.sty v1.49)
+
+ * if mfirstuc v2.08+, glossaries v4.50+ and glossaries-extra
+ v1.49+ detected, default mfirstuc protection settings will
+ switch to --no-mfirstuc-protection --no-mfirstuc-math-protection
+
+ * bug fix: case changing options aren't recognising commands
+ identified with \glsxtrnewgls
+
+ * added support for \glsxtridentifyglsfamily (glossaries-extra
+ v1.49+)
+
+ * new switch --record-count-rule (or -r) which may be used to
+ determine whether or not certain types of records (such as
+ ignored records) should be included in the record count.
+
+ * new switch --replace-quotes
+
+ * issue #15: loc-prefix and type leads to undefined \bibglslocprefix with multiple glossaries
+ https://github.com/nlct/bib2gls/issues/15
+
+ This has led to new resource options:
+
+ - loc-prefix-def
+ - loc-suffix-def
+
+ * added support for sub-groups (requires glossaries-extra v1.49+):
+
+ - group-level
+
+ * new merge small groups option:
+
+ - merge-small-groups
+
+ * new option to save root label:
+
+ - save-root-ancestor
+
+ * new option to split primary locations into counter groups:
+
+ - primary-loc-counters (synonym: principal-loc-counters)
+
+ * new options to skip break-at via pattern matching:
+
+ - break-at-match
+ - break-at-not-match
+ - break-at-match-op
+ - dual-break-at-match
+ - dual-break-at-not-match
+ - dual-break-at-match-op
+ - secondary-break-at-match
+ - secondary-break-at-not-match
+ - secondary-break-at-match-op
+
+ * new options to prune "see" and "seealso" fields:
+
+ - prune-xr
+ - prune-see-op
+ - prune-see-match
+ - prune-seealso-op
+ - prune-seealso-match
+ - prune-iterations
+
+ * new save-locations values:
+
+ - save-locations=see
+ - save-locations=see not also
+ - save-locations=alias only
+
+ * bug fix: nameref records not merging for wrglossary counter
+
v2.9 (2021-11-22):
* Support for \multiglossaryentry (new to glossaries-extra v1.48)
diff --git a/Master/texmf-dist/doc/support/bib2gls/DEPENDS.txt b/Master/texmf-dist/doc/support/bib2gls/DEPENDS.txt
new file mode 100644
index 00000000000..5e3406487b1
--- /dev/null
+++ b/Master/texmf-dist/doc/support/bib2gls/DEPENDS.txt
@@ -0,0 +1,2 @@
+glossaries-extra
+java
diff --git a/Master/texmf-dist/doc/support/bib2gls/README.md b/Master/texmf-dist/doc/support/bib2gls/README.md
index 0d1f8b13f97..fa1a56af1f9 100644
--- a/Master/texmf-dist/doc/support/bib2gls/README.md
+++ b/Master/texmf-dist/doc/support/bib2gls/README.md
@@ -9,7 +9,7 @@ Application Home Page: https://www.dickimaw-books.com/software/bib2gls
# Licence
-Copyright (C) 2017-2021 Nicola L. C. Talbot (www.dickimaw-books.com)
+Copyright (C) 2017-2022 Nicola L. C. Talbot (dickimaw-books.com)
License GPLv3+: GNU GPL version 3 or later
http://gnu.org/licenses/gpl.html
@@ -131,9 +131,14 @@ appropriate.)
TUGboat articles:
- - [Glossaries with bib2gls](http://tug.org/TUGboat/tb40-1/tb124talbot-bib2gls.pdf), issue [40:1, 2019](http://tug.org/TUGboat/Contents/contents40-1.html).
- - [bib2gls: selection, cross-references and locations](http://tug.org/TUGboat/tb41-3/tb129talbot-bib2gls-more.pdf), issue [41:3, 2020](http://tug.org/TUGboat/Contents/contents41-3.html).
- - bib2gls: sorting, issue [42:2, 2021](http://tug.org/TUGboat/Contents/contents42-2.html).
+ - Glossaries with bib2gls, issue [40:1, 2019](http://tug.org/TUGboat/Contents/contents40-1.html).
+ [(PDF)](http://tug.org/TUGboat/tb40-1/tb124talbot-bib2gls.pdf)
+ - bib2gls: selection, cross-references and locations, issue [41:3, 2020](http://tug.org/TUGboat/Contents/contents41-3.html).
+ [(PDF)](http://tug.org/TUGboat/tb41-3/tb129talbot-bib2gls-more.pdf)
+ - bib2gls: sorting, issue [42:2, 2021](http://tug.org/TUGboat/Contents/contents42-2.html). [(PDF)](https://tug.org/TUGboat/tb42-2/tb131talbot-sorting.pdf)
+ - bib2gls: standalone entries and repeated lists (a little book of
+ poisons), issue [43:1, 2022](https://tug.org/TUGboat/Contents/contents43-1.html).
+ [(PDF)](https://tug.org/TUGboat/tb43-1/tb133talbot-bib2gls-reorder.pdf)
# Installation
diff --git a/Master/texmf-dist/doc/support/bib2gls/bib2gls-begin.pdf b/Master/texmf-dist/doc/support/bib2gls/bib2gls-begin.pdf
index 4530c0ab114..4e3e53dcdc4 100644
--- a/Master/texmf-dist/doc/support/bib2gls/bib2gls-begin.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/bib2gls-begin.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/bib2gls.pdf b/Master/texmf-dist/doc/support/bib2gls/bib2gls.pdf
index 960690a83f7..77ed0979875 100644
--- a/Master/texmf-dist/doc/support/bib2gls/bib2gls.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/bib2gls.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/examples/sample-authors.pdf b/Master/texmf-dist/doc/support/bib2gls/examples/sample-authors.pdf
index 6e94e887796..9a4103cbf48 100644
--- a/Master/texmf-dist/doc/support/bib2gls/examples/sample-authors.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/examples/sample-authors.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/examples/sample-bacteria.pdf b/Master/texmf-dist/doc/support/bib2gls/examples/sample-bacteria.pdf
index a6111d93fcc..291ebb781e8 100644
--- a/Master/texmf-dist/doc/support/bib2gls/examples/sample-bacteria.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/examples/sample-bacteria.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/examples/sample-chemical.pdf b/Master/texmf-dist/doc/support/bib2gls/examples/sample-chemical.pdf
index 62435a4122b..a2f40c87e03 100644
--- a/Master/texmf-dist/doc/support/bib2gls/examples/sample-chemical.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/examples/sample-chemical.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/examples/sample-citations.pdf b/Master/texmf-dist/doc/support/bib2gls/examples/sample-citations.pdf
index 97d8c21fea0..5bc3bf66ee0 100644
--- a/Master/texmf-dist/doc/support/bib2gls/examples/sample-citations.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/examples/sample-citations.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/examples/sample-constants.pdf b/Master/texmf-dist/doc/support/bib2gls/examples/sample-constants.pdf
index ed1c86af426..52152df16b3 100644
--- a/Master/texmf-dist/doc/support/bib2gls/examples/sample-constants.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/examples/sample-constants.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/examples/sample-hierarchical.pdf b/Master/texmf-dist/doc/support/bib2gls/examples/sample-hierarchical.pdf
index 70066a4711f..eec25021db6 100644
--- a/Master/texmf-dist/doc/support/bib2gls/examples/sample-hierarchical.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/examples/sample-hierarchical.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/examples/sample-markuplanguages.pdf b/Master/texmf-dist/doc/support/bib2gls/examples/sample-markuplanguages.pdf
index dbb85e0a38f..49b5ea397f5 100644
--- a/Master/texmf-dist/doc/support/bib2gls/examples/sample-markuplanguages.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/examples/sample-markuplanguages.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/examples/sample-maths.pdf b/Master/texmf-dist/doc/support/bib2gls/examples/sample-maths.pdf
index 7b1acca9661..7489b36c4ce 100644
--- a/Master/texmf-dist/doc/support/bib2gls/examples/sample-maths.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/examples/sample-maths.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/examples/sample-media.pdf b/Master/texmf-dist/doc/support/bib2gls/examples/sample-media.pdf
index d717cc23205..78387164979 100644
--- a/Master/texmf-dist/doc/support/bib2gls/examples/sample-media.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/examples/sample-media.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/examples/sample-msymbols.pdf b/Master/texmf-dist/doc/support/bib2gls/examples/sample-msymbols.pdf
index 3f81f8ade5c..5b83de642e3 100644
--- a/Master/texmf-dist/doc/support/bib2gls/examples/sample-msymbols.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/examples/sample-msymbols.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/examples/sample-multi1.pdf b/Master/texmf-dist/doc/support/bib2gls/examples/sample-multi1.pdf
index fb856e32ed1..feb6e36e189 100644
--- a/Master/texmf-dist/doc/support/bib2gls/examples/sample-multi1.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/examples/sample-multi1.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/examples/sample-multi2.pdf b/Master/texmf-dist/doc/support/bib2gls/examples/sample-multi2.pdf
index ab3e061d8a5..65a6867d42b 100644
--- a/Master/texmf-dist/doc/support/bib2gls/examples/sample-multi2.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/examples/sample-multi2.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/examples/sample-nested.pdf b/Master/texmf-dist/doc/support/bib2gls/examples/sample-nested.pdf
index a2ed986e441..da752466462 100644
--- a/Master/texmf-dist/doc/support/bib2gls/examples/sample-nested.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/examples/sample-nested.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/examples/sample-people.pdf b/Master/texmf-dist/doc/support/bib2gls/examples/sample-people.pdf
index 1d4d6593ac1..bc03fd1e1c9 100644
--- a/Master/texmf-dist/doc/support/bib2gls/examples/sample-people.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/examples/sample-people.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/examples/sample-textsymbols.pdf b/Master/texmf-dist/doc/support/bib2gls/examples/sample-textsymbols.pdf
index 77503e53204..ce6b25d4259 100644
--- a/Master/texmf-dist/doc/support/bib2gls/examples/sample-textsymbols.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/examples/sample-textsymbols.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/examples/sample-textsymbols2.pdf b/Master/texmf-dist/doc/support/bib2gls/examples/sample-textsymbols2.pdf
index aa6adc72f54..4f6fd3116bb 100644
--- a/Master/texmf-dist/doc/support/bib2gls/examples/sample-textsymbols2.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/examples/sample-textsymbols2.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/examples/sample-units1.pdf b/Master/texmf-dist/doc/support/bib2gls/examples/sample-units1.pdf
index d72f037be3c..fdf5d608785 100644
--- a/Master/texmf-dist/doc/support/bib2gls/examples/sample-units1.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/examples/sample-units1.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/examples/sample-units2.pdf b/Master/texmf-dist/doc/support/bib2gls/examples/sample-units2.pdf
index 3839db7130f..e9641f49184 100644
--- a/Master/texmf-dist/doc/support/bib2gls/examples/sample-units2.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/examples/sample-units2.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/examples/sample-units3.pdf b/Master/texmf-dist/doc/support/bib2gls/examples/sample-units3.pdf
index f117b81eb30..897e09a989a 100644
--- a/Master/texmf-dist/doc/support/bib2gls/examples/sample-units3.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/examples/sample-units3.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/bib2gls/examples/sample-usergroups.pdf b/Master/texmf-dist/doc/support/bib2gls/examples/sample-usergroups.pdf
index 2955f76401e..74cbc7cbe50 100644
--- a/Master/texmf-dist/doc/support/bib2gls/examples/sample-usergroups.pdf
+++ b/Master/texmf-dist/doc/support/bib2gls/examples/sample-usergroups.pdf
Binary files differ
diff --git a/Master/texmf-dist/scripts/bib2gls/bib2gls.jar b/Master/texmf-dist/scripts/bib2gls/bib2gls.jar
index 9d8120f94a7..41ae415692c 100755
--- a/Master/texmf-dist/scripts/bib2gls/bib2gls.jar
+++ b/Master/texmf-dist/scripts/bib2gls/bib2gls.jar
Binary files differ
diff --git a/Master/texmf-dist/scripts/bib2gls/convertgls2bib.jar b/Master/texmf-dist/scripts/bib2gls/convertgls2bib.jar
index 79700d52030..212642d859e 100755
--- a/Master/texmf-dist/scripts/bib2gls/convertgls2bib.jar
+++ b/Master/texmf-dist/scripts/bib2gls/convertgls2bib.jar
Binary files differ
diff --git a/Master/texmf-dist/scripts/bib2gls/resources/bib2gls-en.xml b/Master/texmf-dist/scripts/bib2gls/resources/bib2gls-en.xml
index fd204ffdfa6..29947b6bb65 100644
--- a/Master/texmf-dist/scripts/bib2gls/resources/bib2gls-en.xml
+++ b/Master/texmf-dist/scripts/bib2gls/resources/bib2gls-en.xml
@@ -48,6 +48,7 @@ file is in or in a location that can be found by kpsewhich.</entry>
<entry key="syntax.custom.packages">{0} &lt;list&gt; Instruct the interpreter to parse the listed packages.</entry>
<entry key="syntax.list.known.packages">{0} List the packages known to the interpreter and exit.</entry>
<entry key="syntax.support.unicode.script">{0} Text superscripts or subscripts will use Unicode superscript or subscript characters if possible.</entry>
+<entry key="syntax.replace.quotes">{0} Replace single and double-quotes.</entry>
<entry key="syntax.force.cross.resource.refs">{1}, {0} Force cross-resource referencing mode on.</entry>
<entry key="syntax.cite.as.record">{0} Treat \citation as an ignored record.</entry>
@@ -57,6 +58,7 @@ file is in or in a location that can be found by kpsewhich.</entry>
<entry key="syntax.merge.nameref.on">{0} &lt;rule&gt; Rule for merging locations with record=nameref. &lt;rule&gt; may be one of: ''hcounter'', ''href'', ''title'' or ''location''.</entry>
<entry key="syntax.format.map">{1}, {0} &lt;key&gt;:&lt;value&gt;[,&lt;key&gt;:&lt;value&gt;]* Set location format mappings.</entry>
+<entry key="syntax.record.count.rule">{1} &lt;rule&gt;, {0} &lt;rule&gt; Sets record count rule.</entry>
<entry key="syntax.record.count">{1}, {0} Add record count fields to entries.</entry>
<entry key="syntax.record.count.unit">{1}, {0} Add unit record count fields to entries.</entry>
@@ -79,6 +81,7 @@ file is in or in a location that can be found by kpsewhich.</entry>
<entry key="syntax.expand.fields">{0} Allow field expansion to occur when LaTeX inputs the glstex file.</entry>
<entry key="syntax.provide.glossaries">{0} Define any unknown glossaries with \provideignoredglossary*.</entry>
+<!-- These are messages used by the TeX Parser Library -->
<entry key="message.reading">Reading {0}</entry>
<entry key="message.writing">Writing {0}</entry>
<entry key="message.no.read">No read access for {0}</entry>
@@ -87,7 +90,12 @@ file is in or in a location that can be found by kpsewhich.</entry>
<entry key="message.processing">Processing {0}</entry>
<entry key="message.copying">Copying {0} -&gt; {1}</entry>
<entry key="message.moving">Moving {0} -&gt; {1}</entry>
+<entry key="message.charset">Encoding: {0}</entry>
+
+<!-- bib2gls messages -->
+<entry key="message.repruning">Pruning iteration {0}/{1}</entry>
<entry key="message.crossref.found">Entry {0}: found cross-reference ({1}): {2}</entry>
+<entry key="message.crossref.pruned">Entry {0}: pruned cross-reference ({1}): {2}</entry>
<entry key="message.compoundcrossref.found">Entry {0}: found compound cross-reference ({1}): {2}</entry>
<entry key="message.crossref.by">Entry {0} cross-referenced by {1}</entry>
<entry key="message.compoundcrossref.by">Compound entry {0} cross-referenced by {1}</entry>
@@ -190,22 +198,30 @@ into explicit range {1}</entry>
<entry key="message.calc.text.width">Calculating width of name field for entry ''{0}''</entry>
<entry key="message.calc.text.width.result">Calculated width of ''{0}'': {1,number}</entry>
<entry key="message.parsing.code">Parsing code block:</entry>
+<entry key="message.parsing.args">Parsing command line arguments</entry>
+<entry key="message.nomfirstuc.protect">No sentence case protection required now</entry>
+<entry key="message.default.arg">Default setting {0} now applied, use {1} to revert</entry>
<entry key="message.unknown.tex.charset">Unable to detect character encoding for TeX file.
Defaulting to: {0}.
(Use {1} if this is incorrect.)</entry>
<entry key="message.tex.charset">TeX character encoding: {0}</entry>
-<entry key="message.charset">Encoding: {0}</entry>
<entry key="message.detected.charset">Detected encoding: {0}</entry>
<entry key="message.default.charset">Default encoding: {0}</entry>
<entry key="message.null">not set</entry>
<entry key="message.detected.fontenc">Detected font encoding: {0}</entry>
<entry key="message.missing.id">id missing</entry>
<entry key="message.default.locale">Default document locale: {0} {1}</entry>
+<entry key="message.detected.sty">Detected package {0} {1}</entry>
<entry key="message.adding.record">Adding record {0} to entry {1}''s record list.</entry>
+<entry key="message.adding.primary.record">Adding primary record {0} to entry {1}''s record list.</entry>
<entry key="message.adding.supplemental.record">Adding supplemental record {0} to entry {1}''s record list.</entry>
<entry key="message.adding.counter.record">Adding record {0} to entry {1}''s {2} record list.</entry>
+<entry key="message.adding.counter.primary.record">Adding primary record {0} to entry {1}''s {2} record list.</entry>
<entry key="message.copying.record">Copying record {0} from entry {1} to entry {2}.</entry>
+<entry key="message.copying.primary.record">Copying primary record {0} from entry {1} to entry {2}.</entry>
<entry key="message.ignored.record">Ignoring record {0}.</entry>
+<entry key="message.empty.location.ignored">Converting empty location to ignored record
+ (label: ''{0}'', counter: ''{1}'', encap: ''{2}'')</entry>
<entry key="message.clearing.records">Clearing entry {0}''s record list.</entry>
<entry key="message.normalizing">Normalising {0} to {1}.</entry>
<entry key="message.norm.distinct">Normalized {0} distinct from {1}.</entry>
@@ -254,8 +270,14 @@ Defaulting to: {0}.
<entry key="grouptitle.case.ij">IJ</entry>
<entry key="warning.title">Warning: {0}</entry>
+
+<!-- These are warning strings from the TeX Parser Library -->
<entry key="warning.substituting">Substituting {0} with {1}</entry>
<entry key="warning.removing">Removing {0}</entry>
+<entry key="warning.unsupported.image.type">Unsupported image type {0}</entry>
+<entry key="warning.unsupported.generic">Not supported: {0}</entry>
+
+<!-- bib2gls warnings -->
<entry key="warning.cant.parse.file">Can''t parse {0}
{1}</entry>
<entry key="warning.ignoring.unknown.entry.type">Ignoring unknown entry type: {0}</entry>
@@ -283,7 +305,7 @@ Consider using \glsps'{'{3}'}' or \glspt'{'{3}'}' instead of {2}'{'{3}'}'</entry
Consider using a dual entry or add ''{2}'' to one of the cross-referencing fields instead.
(With a dual entry type, you don''t need to link a primary to its dual
with \glsadd. They are automatically dependent on each other.)</entry>
-<entry key="warning.dir.no.write">Directory not writable: {0}
+<entry key="warning.dir.no.write">Directory not writeable: {0}
Using TEXMFOUTPUT instead: {1}</entry>
<entry key="warning.conflicting.range.format">Entry location conflict for formats: {0} and {1}
Replacing {1} with {2}</entry>
@@ -338,6 +360,10 @@ Aliased entries must be in the same resource set as their target entries with op
<entry key="warning.unknown_entry_in_current_resource">Unknown entry ''{0}'' in current resource set: {1}</entry>
<entry key="warning.unknown_compound_label">Unknown compound entry ''{0}''.</entry>
<entry key="warning.unknown_compound_label.in_entry">Unknown compound entry ''{0}'' referenced in entry ''{1}''.</entry>
+<entry key="warning.max-prune-iteration-cap">Maximum value of ''{0}'' exceeded. Capping at {1}.</entry>
+<entry key="warning.exclusions.unknown.token">Unknown token in exclusion list: {0}</entry>
+<entry key="warning.blockers.unknown.token">Unknown token in blocker list: {0}</entry>
+<entry key="warning.mappings.cant.parse">Can''t parse mapping list: {0}</entry>
<entry key="error.title">Error: {0}</entry>
<entry key="error.alias.map.forbidden">The 'alias' field can't be mapped.</entry>
@@ -360,6 +386,7 @@ Have you indexed your entries using commands like \gls?</entry>
<entry key="error.dir.not.found">Directory not found: {0}</entry>
<entry key="error.not.dir">Not a directory: {0}</entry>
<entry key="error.cant.open.log">Can''t open log file: {0}</entry>
+<entry key="error.invalid.record.count.rule">Invalid record count rule: {0}</entry>
<entry key="error.invalid.id">Invalid or missing id
{0}</entry>
<entry key="error.invalid.sort.value">Invalid sort method ''{0}'' given in option: {1}</entry>
@@ -556,6 +583,7 @@ converted to @dualabbreviationentry.)</entry>
<entry key="latex.error.undefined_counter">No counter ''{0}'' defined</entry>
<entry key="latex.error.multi_begin_doc">Only one \begin'{document}' permitted</entry>
<entry key="latex.error.no_begin_doc">No \begin'{document}' found</entry>
+<entry key="latex.error.missing_begin_doc">Missing \begin'{'document'}' (unexpected content ''{0}'')</entry>
<entry key="latex.error.multi_cls">Only one \documentclass permitted</entry>
<entry key="latex.error.missing_key">Missing ''{0}'' key</entry>
<entry key="latex.error.extra_end">Extra \end'{'{0}'}' found</entry>
diff --git a/Master/texmf-dist/scripts/bib2gls/texparserlib.jar b/Master/texmf-dist/scripts/bib2gls/texparserlib.jar
index 31334d20064..d3f5bb0fe6f 100755
--- a/Master/texmf-dist/scripts/bib2gls/texparserlib.jar
+++ b/Master/texmf-dist/scripts/bib2gls/texparserlib.jar
Binary files differ
diff --git a/Master/texmf-dist/source/support/bib2gls/src/bib2gls-begin.tex b/Master/texmf-dist/source/support/bib2gls/src/bib2gls-begin.tex
index e9327b04ea6..95993aae363 100644
--- a/Master/texmf-dist/source/support/bib2gls/src/bib2gls-begin.tex
+++ b/Master/texmf-dist/source/support/bib2gls/src/bib2gls-begin.tex
@@ -427,7 +427,7 @@
\newcommand{\addr}[1]{\\\href{https://www.#1/}{\nolinkurl{#1}}}
\title{\styfmt{glossaries-extra} and \bibgls: An Introductory Guide}
\author{Nicola Talbot\addr{dickimaw-books.com}}
-\date{\DTMusedate{moddate}}
+\input{version}
\makeatletter
\begingroup
diff --git a/Master/texmf-dist/source/support/bib2gls/src/bib2gls-src.zip b/Master/texmf-dist/source/support/bib2gls/src/bib2gls-src.zip
index 2e5ad894222..fc984a1dfe6 100644
--- a/Master/texmf-dist/source/support/bib2gls/src/bib2gls-src.zip
+++ b/Master/texmf-dist/source/support/bib2gls/src/bib2gls-src.zip
Binary files differ
diff --git a/Master/texmf-dist/source/support/bib2gls/src/bib2gls-terms.bib b/Master/texmf-dist/source/support/bib2gls/src/bib2gls-terms.bib
index 12ced551f1b..10cb3b3eece 100644
--- a/Master/texmf-dist/source/support/bib2gls/src/bib2gls-terms.bib
+++ b/Master/texmf-dist/source/support/bib2gls/src/bib2gls-terms.bib
@@ -435,7 +435,7 @@ Files, Text Files and File Encodings} for further information about
}
@entry{compoundentry,
- name={compound \MFUskippunc(combined or multi) entry},
+ name={compound (combined or multi) entry},
text={compound entry},
plural={compound entries},
description={A compound entry corresponds to the \ics{multiglossaryentry}
@@ -448,14 +448,14 @@ Files, Text Files and File Encodings} for further information about
}
@entry{compmainlabel,
- name = {main label or element \MFUskippunc(compound entry)},
+ name = {main label or element (compound entry)},
text = {main label},
description = {The main element in the set that defines a
\gls{compoundentry}.}
}
@entry{compotherlabel,
- name = {other label or element \MFUskippunc(compound entry)},
+ name = {other label or element (compound entry)},
text = {other label},
description = {The non-\glslink{compmainlabel}{main} elements in the
set that defines a \gls{compoundentry}.}
diff --git a/Master/texmf-dist/source/support/bib2gls/src/bib2gls.bib b/Master/texmf-dist/source/support/bib2gls/src/bib2gls.bib
index 86778cc5ed1..b55acf3f203 100644
--- a/Master/texmf-dist/source/support/bib2gls/src/bib2gls.bib
+++ b/Master/texmf-dist/source/support/bib2gls/src/bib2gls.bib
@@ -959,6 +959,43 @@
category={command}
}
+@bibglscommand{bibglssettotalrecordcount,
+ name={\csfmt{bib\-gls\-set\-total\-record\-count}},
+ user1={\margm{entry-label}\margm{value}},
+ description={sets the total record count for the given entry},
+ topics={assigncommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglssetrecordcount,
+ name={\csfmt{bib\-gls\-set\-record\-count}},
+ user1={\margm{entry-label}\margm{counter}\margm{value}},
+ description={sets the \meta{counter} record count for the given entry},
+ topics={assigncommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglssetlocationrecordcount,
+ name={\csfmt{bib\-gls\-set\-location\-record\-count}},
+ user1={\margm{entry-label}\margm{counter}\margm{location}\margm{value}},
+ description={sets the location record count for the given entry},
+ topics={assigncommands},
+ note={\bibgls},
+ category={command}
+}
+
+@glscommand{glsxtrdetoklocation,
+ name={\csfmt{gls\-xtr\-de\-tok\-location}},
+ user1={\margm{location}},
+ description={may be used to detokenize problematic locations, but
+just does its argument by default},
+ note={\styfmt{glossaries-extra} v1.21+},
+ topics={assigncommands},
+ category={command}
+}
+
@bibglscommand{bibglslocationgroup,
name={\csfmt{bib\-gls\-location\-group}},
user1={\margm{n}\margm{counter}\margm{list}},
@@ -977,6 +1014,24 @@
category={command}
}
+@bibglscommand{bibglsprimarylocationgroup,
+ name={\csfmt{bib\-gls\-primary\-location\-group}},
+ user1={\margm{n}\margm{counter}\margm{list}},
+ description={primary location group encapsulator},
+ topics={glossarystylecommands,loclistcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglsprimarylocationgroupsep,
+ name={\csfmt{bib\-gls\-primary\-location\-group\-sep}},
+ user1={},
+ description={primary location group separator},
+ topics={glossarystylecommands,loclistcommands,separatorcommands},
+ note={\bibgls},
+ category={command}
+}
+
@bibglscommand{bibglssupplemental,
name={\csfmt{bib\-gls\-supple\-mental}},
user1={\margm{n}\margm{list}},
@@ -1032,15 +1087,6 @@ given label},
category={command}
}
-@bibglscommand{bibglssetlettergrouptitle,
- name={\csfmt{bib\-gls\-set\-letter\-group\-title}},
- user1={\marg{\margm{title}\margm{letter}\margm{id}\margm{type}}},
- description={sets the letter group title},
- topics={glossarystylecommands,assigncommands,groupcommands},
- note={\bibgls},
- category={command}
-}
-
@mainglscommand{glsxtrsetgrouptitle,
name={\csfmt{gls\-xtr\-set\-group\-title}},
user1={\margm{group label}\margm{group title}},
@@ -1059,6 +1105,36 @@ given label},
category={command}
}
+@bibglscommand{bibglsgrouplevel,
+ name={\csfmt{bib\-gls\-group\-level}},
+ user1={\margm{label}{n}},
+ description={expands to the group label for hierarchical level \meta{n}
+ where \meta{label} is the label that would normally be applied to
+ level~0},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglshiersubgrouptitle,
+ name={\csfmt{bib\-gls\-hier\-sub\-group\-title}},
+ user1={\marg{level}\marg{parent}\marg{title}},
+ description={formats the title for a hierarchical group where the
+ normal non-hierarchical title would be \meta{title}},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglssetlettergrouptitle,
+ name={\csfmt{bib\-gls\-set\-letter\-group\-title}},
+ user1={\marg{\margm{title}\margm{letter}\margm{id}\margm{type}}},
+ description={sets the letter group title},
+ topics={glossarystylecommands,assigncommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
@bibglscommand{bibglslettergroup,
name={\csfmt{bib\-gls\-letter\-group}},
user1={\margm{title}\margm{letter}\margm{id}\margm{type}},
@@ -1077,6 +1153,33 @@ given label},
category={command}
}
+@bibglscommand{bibglssetlettergrouptitlehier,
+ name={\csfmt{bib\-gls\-set\-letter\-group\-title\-hier}},
+ user1={\marg{\margm{title}\margm{letter}\margm{id}\margm{type}\margm{parent}\margm{level}}},
+ description={sets the hierarchical letter group title},
+ topics={glossarystylecommands,assigncommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglslettergrouphier,
+ name={\csfmt{bib\-gls\-letter\-group\-hier}},
+ user1={\margm{title}\margm{letter}\margm{id}\margm{type}\margm{parent}\margm{level}},
+ description={expands to the hierarchical letter group label},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglslettergrouptitlehier,
+ name={\csfmt{bib\-gls\-letter\-group\-title\-hier}},
+ user1={\margm{title}\margm{letter}\margm{id}\margm{type}\margm{parent}\margm{level}},
+ description={expands to the hierarchical letter group title},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
@bibglscommand{bibglssetothergrouptitle,
name={\csfmt{bib\-gls\-set\-other\-group\-title}},
user1={\marg{\margm{character}\margm{id}\margm{type}}},
@@ -1104,6 +1207,33 @@ given label},
category={command}
}
+@bibglscommand{bibglssetothergrouptitlehier,
+ name={\csfmt{bib\-gls\-set\-other\-group\-title\-hier}},
+ user1={\marg{\margm{character}\margm{id}\margm{type}\margm{parent}\margm{level}}},
+ description={sets the hierarchical non-letter group title},
+ topics={glossarystylecommands,assigncommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglsothergrouphier,
+ name={\csfmt{bib\-gls\-other\-group\-hier}},
+ user1={\margm{character}\margm{id}\margm{type}\margm{parent}\margm{level}},
+ description={expands to the hierarchical non-letter group label},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglsothergrouptitlehier,
+ name={\csfmt{bib\-gls\-other\-group\-title\-hier}},
+ user1={\margm{character}\margm{id}\margm{type}\margm{parent}\margm{level}},
+ description={expands to the hierarchical non-letter group title},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
@bibglscommand{bibglssetemptygrouptitle,
name={\csfmt{bib\-gls\-set\-empty\-group\-title}},
user1={\marg{\margm{type}}},
@@ -1131,11 +1261,38 @@ given label},
category={command}
}
+@bibglscommand{bibglssetemptygrouptitlehier,
+ name={\csfmt{bib\-gls\-set\-empty\-group\-title\-hier}},
+ user1={\marg{\margm{type}\margm{parent}\margm{level}}},
+ description={sets the hierarchical empty group title},
+ topics={glossarystylecommands,assigncommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglsemptygrouphier,
+ name={\csfmt{bib\-gls\-empty\-group\-hier}},
+ user1={\margm{type}\margm{parent}\margm{level}},
+ description={expands to the hierarchical empty group label},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglsemptygrouptitlehier,
+ name={\csfmt{bib\-gls\-empty\-group\-title\-hier}},
+ user1={\margm{type}\margm{parent}\margm{level}},
+ description={expands to the hierarchical empty group title},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
@bibglscommand{bibglssetunicodegrouptitle,
name={\csfmt{bib\-gls\-set\-unicode\-group\-title}},
user1={\marg{\margm{label}\margm{character}\margm{id}\margm{type}}},
description={sets the Unicode script, category or character code
-title},
+group title},
topics={glossarystylecommands,assigncommands,groupcommands},
note={\bibgls},
category={command}
@@ -1144,8 +1301,8 @@ title},
@bibglscommand{bibglsunicodegroup,
name={\csfmt{bib\-gls\-unicode\-group}},
user1={\margm{label}\margm{character}\margm{id}\margm{type}},
- description={expands to the Unicode script or category label or
-character code},
+ description={expands to the Unicode script or category or
+character code group label},
note={\bibgls},
topics={glossarystylecommands,groupcommands},
category={command}
@@ -1154,8 +1311,38 @@ character code},
@bibglscommand{bibglsunicodegrouptitle,
name={\csfmt{bib\-gls\-unicode\-group\-title}},
user1={\margm{label}\margm{character}\margm{id}\margm{type}},
- description={expands to the Unicode script or category label or
-character code},
+ description={expands to the Unicode script or category or
+character code group label},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglssetunicodegrouptitlehier,
+ name={\csfmt{bib\-gls\-set\-unicode\-group\-title\-hier}},
+ user1={\marg{\margm{label}\margm{character}\margm{id}\margm{type}\margm{parent}\margm{level}}},
+ description={sets the Unicode script, category or character code
+ hierarchical group title},
+ topics={glossarystylecommands,assigncommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglsunicodegrouphier,
+ name={\csfmt{bib\-gls\-unicode\-group\-hier}},
+ user1={\margm{label}\margm{character}\margm{id}\margm{type}\margm{parent}\margm{level}},
+ description={expands to the Unicode script or category or
+character code hierarchical group label},
+ note={\bibgls},
+ topics={glossarystylecommands,groupcommands},
+ category={command}
+}
+
+@bibglscommand{bibglsunicodegrouptitlehier,
+ name={\csfmt{bib\-gls\-unicode\-group\-title\-hier}},
+ user1={\margm{label}\margm{character}\margm{id}\margm{type}\margm{parent}\margm{level}},
+ description={expands to the Unicode script or category or
+character code hierarchical group label},
topics={glossarystylecommands,groupcommands},
note={\bibgls},
category={command}
@@ -1188,6 +1375,106 @@ character code},
category={command}
}
+@bibglscommand{bibglssetnumbergrouptitlehier,
+ name={\csfmt{bib\-gls\-set\-number\-group\-title\-hier}},
+ user1={\marg{\margm{value}\margm{id}\margm{type}\margm{parent}\margm{level}}},
+ description={sets the hierarchical number group title},
+ topics={glossarystylecommands,assigncommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglsnumbergrouphier,
+ name={\csfmt{bib\-gls\-number\-group\-hier}},
+ user1={\margm{value}\margm{id}\margm{type}\margm{parent}\margm{level}},
+ description={expands to the hierarchical number group label},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglsnumbergrouptitlehier,
+ name={\csfmt{bib\-gls\-number\-group\-title\-hier}},
+ user1={\margm{value}\margm{id}\margm{type}\margm{parent}\margm{level}},
+ description={expands to the hierarchical number group title},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglssetmergedgrouptitle,
+ name={\csfmt{bib\-gls\-set\-merged\-group\-title}},
+ user1={\marg{\margm{id}\margm{type}\margm{n}\margm{g$_1$}\marg{\meta{g$_2$}\ldots\marg{g$_{n-1}$}}\margm{g$_n$}}},
+ description={sets the merged group title},
+ topics={glossarystylecommands,assigncommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglsmergedgroup,
+ name={\csfmt{bib\-gls\-merged\-group}},
+ user1={\margm{id}\margm{type}\margm{n}\margm{g$_1$}\marg{\meta{g$_2$}\ldots\marg{g$_{n-1}$}}\margm{g$_n$}},
+ description={expands to the merged group label},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglsmergedgrouptitle,
+ name={\csfmt{bib\-gls\-merged\-group\-title}},
+ user1={\margm{id}\margm{type}\margm{n}\margm{g$_1$}\marg{\meta{g$_2$}\ldots\marg{g$_{n-1}$}}\margm{g$_n$}},
+ description={expands to the merged group title},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglsmergedgroupfmt,
+ name={\csfmt{bib\-gls\-merged\-group\-fmt}},
+ user1={\margm{n}\margm{g$_1$}\marg{\meta{g$_2$}\ldots\marg{g$_{n-1}$}}\margm{g$_n$}},
+ description={used by \gls{bibglsmergedgrouptitle} and
+ \gls{bibglsmergedgrouphierfmt} to format the title},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglsmergedgrouphierfmt,
+ name={\csfmt{bib\-gls\-merged\-group\-hier\-fmt}},
+ user1={\margm{n}\margm{g$_1$}\marg{\meta{g$_2$}\ldots\marg{g$_{n-1}$}}\margm{g$_n$}},
+ description={used by \gls{bibglsmergedgrouptitlehier} to format the title},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglssetmergedgrouptitlehier,
+ name={\csfmt{bib\-gls\-set\-merged\-group\-title\-hier}},
+ user1={\marg{\margm{id}\margm{type}\margm{n}\margm{g$_1$}\marg{\meta{g$_2$}\ldots\marg{g$_{n-1}$}}\margm{g$_n$}\margm{parent}\margm{level}}},
+ description={sets the merged hierarchicalgroup title},
+ topics={glossarystylecommands,assigncommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglsmergedgrouphier,
+ name={\csfmt{bib\-gls\-merged\-group\-hier}},
+ user1={\margm{id}\margm{type}\margm{n}\margm{g$_1$}\marg{\meta{g$_2$}\ldots\marg{g$_{n-1}$}}\margm{g$_n$}\margm{parent}\margm{level}},
+ description={expands to the merged hierarchical group label},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglsmergedgrouptitlehier,
+ name={\csfmt{bib\-gls\-merged\-group\-title\-hier}},
+ user1={\margm{id}\margm{type}\margm{n}\margm{g$_1$}\marg{\meta{g$_2$}\ldots\marg{g$_{n-1}$}}\margm{g$_n$}\margm{parent}\margm{level}},
+ description={expands to the merged hierarchical group title},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
@bibglscommand{bibglssetdatetimegrouptitle,
name={\csfmt{bib\-gls\-set\-date\-time\-group\-title}},
user1={\marg{\margm{YYYY}\margm{MM}\margm{DD}\margm{hh}\margm{mm}\margm{ss}\margm{zone}\margm{title}\margm{group\dhyphen id}\margm{type}}},
@@ -1215,6 +1502,53 @@ character code},
category={command}
}
+@bibglscommand{bibglssetdatetimegrouptitlehier,
+ name={\csfmt{bib\-gls\-set\-date\-time\-group\-title\-hier}},
+ user1={\marg{\margm{YYYY}\margm{MM}\margm{DD}\margm{hh}\margm{mm}\margm{ss}\margm{zone}\margm{title}\margm{group\dhyphen id}\margm{type}\margm{parent}\margm{level}}},
+ description={sets the hierarchical date-time group title},
+ topics={glossarystylecommands,assigncommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglsdatetimegrouphier,
+ name={\csfmt{bib\-gls\-date\-time\-group\-hier}},
+ user1={\margm{YYYY}\margm{MM}\margm{DD}\margm{hh}\margm{mm}\margm{ss}\margm{zone}\margm{title}\margm{group\dhyphen id}\margm{type}\margm{parent}\margm{level}},
+ description={expands to the hierarchical date-time group label},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglsdatetimegrouptitlehier,
+ name={\csfmt{bib\-gls\-date\-time\-group\-title\-hier}},
+ user1={\margm{YYYY}\margm{MM}\margm{DD}\margm{hh}\margm{mm}\margm{ss}\margm{zone}\margm{title}\margm{group\dhyphen id}\margm{type}\margm{parent}\margm{level}},
+ description={expands to the hierarchical date-time group title},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglsdatetimegrouphierfinalargs,
+ name={\csfmt{bib\-gls\-date\-time\-group\-hier\-final\-args}},
+ user1={\margm{type}\margm{parent}\margm{level}},
+ description={used as a supporting command for
+\gls{bibglsdatetimegrouphier} to pick up the final arguments},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglsdatetimegrouptitlehierfinalargs,
+ name={\csfmt{bib\-gls\-date\-time\-group\-title\-hier\-final\-args}},
+ user1={\marg{date}\margm{type}\margm{parent}\margm{level}},
+ description={used as a supporting command for
+\gls{bibglsdatetimegrouptitlehier} to pick up the final arguments},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
@bibglscommand{bibglssetdategrouptitle,
name={\csfmt{bib\-gls\-set\-date\-group\-title}},
user1={\marg{\margm{YYYY}\margm{MM}\margm{DD}\margm{G}\margm{title}\margm{group\dhyphen id}\margm{type}}},
@@ -1242,6 +1576,33 @@ character code},
category={command}
}
+@bibglscommand{bibglssetdategrouptitlehier,
+ name={\csfmt{bib\-gls\-set\-date\-group\-title\-hier}},
+ user1={\marg{\margm{YYYY}\margm{MM}\margm{DD}\margm{G}\margm{title}\margm{group\dhyphen id}\margm{type}\margm{parent}\margm{level}}},
+ description={sets the hierarchical date (no time) group title},
+ topics={glossarystylecommands,assigncommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglsdategrouphier,
+ name={\csfmt{bib\-gls\-date\-group\-hier}},
+ user1={\margm{YYYY}\margm{MM}\margm{DD}\margm{G}\margm{title}\margm{group\dhyphen id}\margm{type}\margm{parent}\margm{level}},
+ description={expands to the hierarchical date group label},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglsdategrouptitlehier,
+ name={\csfmt{bib\-gls\-date\-group\-title\-hier}},
+ user1={\margm{YYYY}\margm{MM}\margm{DD}\margm{G}\margm{title}\margm{group\dhyphen id}\margm{type}\margm{parent}\margm{level}},
+ description={expands to the hierarchical date group title},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
@bibglscommand{bibglssettimegrouptitle,
name={\csfmt{bib\-gls\-set\-time\-group\-title}},
user1={\marg{\margm{hh}\margm{mm}\margm{ss}\margm{zone}\margm{title}\margm{group\dhyphen id}\margm{type}}},
@@ -1269,6 +1630,33 @@ character code},
category={command}
}
+@bibglscommand{bibglssettimegrouptitlehier,
+ name={\csfmt{bib\-gls\-set\-time\-group\-title\-hier}},
+ user1={\marg{\margm{hh}\margm{mm}\margm{ss}\margm{zone}\margm{title}\margm{group\dhyphen id}\margm{type}\margm{parent}\margm{level}}},
+ description={sets the hierarchical time (no date) group title},
+ topics={glossarystylecommands,assigncommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglstimegrouphier,
+ name={\csfmt{bib\-gls\-time\-group\-hier}},
+ user1={\margm{hh}\margm{mm}\margm{ss}\margm{zone}\margm{title}\margm{group\dhyphen id}\margm{type}\margm{parent}\margm{level}},
+ description={expands to the hierarchical time group label},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
+@bibglscommand{bibglstimegrouptitlehier,
+ name={\csfmt{bib\-gls\-time\-group\-title\-hier}},
+ user1={\margm{hh}\margm{mm}\margm{ss}\margm{zone}\margm{title}\margm{group\dhyphen id}\margm{type}\margm{parent}\margm{level}},
+ description={expands to the hierarchical time group title},
+ topics={glossarystylecommands,groupcommands},
+ note={\bibgls},
+ category={command}
+}
+
@bibglscommand{bibglshypergroup,
name={\csfmt{bib\-gls\-hyper\-group}},
user1={\margm{type}\margm{group\dhyphen id}},
@@ -1431,7 +1819,25 @@ name},
@bibglscommand{bibglshashchar,
name={\csfmt{bib\-gls\-hash\-char}},
user1={},
- description={expands to a literal hash character},
+ description={expands to a literal hash character \idx{hashchar}},
+ topics={charcommands},
+ note={\bibgls\texparserdefnote},
+ category={command}
+}
+
+@bibglscommand{bibglsaposchar,
+ name={\csfmt{bib\-gls\-apos\-char}},
+ user1={},
+ description={expands to a single-quote (\idx{aposchar}) character},
+ topics={charcommands},
+ note={\bibgls\texparserdefnote},
+ category={command}
+}
+
+@bibglscommand{bibglsdoublequotechar,
+ name={\csfmt{bib\-gls\-double\-quote\-char}},
+ user1={},
+ description={expands to a double-quote (\idx{doublequotechar}) character},
topics={charcommands},
note={\bibgls\texparserdefnote},
category={command}
@@ -2621,6 +3027,21 @@ field\dhyphen locale}},
parent={resourceoptions}
}
+@resourceoption{opt.group-level,
+ name={\csoptfmt{group\dhyphen level}},
+ user1={\meta{value}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
+@resourceoption{opt.merge-small-groups,
+ name={\csoptfmt{merge\dhyphen small\dhyphen groups}},
+ user1={\meta{n}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
+
@resourceoption{opt.group-formation,
name={\csoptfmt{group\dhyphen formation}},
user1={\meta{value}},
@@ -2656,6 +3077,13 @@ field\dhyphen locale}},
parent={resourceoptions}
}
+@resourceoption{opt.save-root-ancestor,
+ name={\csoptfmt{save\dhyphen root\dhyphen ancestor}},
+ user1={\meta{boolean}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
@resourceoption{opt.save-original-entrytype,
name={\csoptfmt{save\dhyphen original\dhyphen entrytype}},
user1={\meta{value}},
@@ -2686,7 +3114,7 @@ field\dhyphen locale}},
@resourceoption{opt.save-locations,
name={\csoptfmt{save\dhyphen locations}},
- user1={\meta{boolean}},
+ user1={\meta{value}},
category={resourceoption},
parent={resourceoptions}
}
@@ -2726,6 +3154,20 @@ field\dhyphen locale}},
parent={resourceoptions}
}
+@resourceoption{opt.primary-loc-counters,
+ name={\csoptfmt{primary\dhyphen loc\dhyphen counters}},
+ user1={\meta{value}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
+@resourceoption{opt.principal-loc-counters,
+ name={\csoptfmt{principal\dhyphen loc\dhyphen counters}},
+ user1={\meta{value}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
@resourceoption{opt.min-loc-range,
name={\csoptfmt{min\dhyphen loc\dhyphen range}},
user1={\meta{value}},
@@ -2782,6 +3224,48 @@ field\dhyphen locale}},
parent={resourceoptions}
}
+@resourceoption{opt.prune-xr,
+ name={\csoptfmt{prune\dhyphen xr}},
+ user1={\meta{boolean}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
+@resourceoption{opt.prune-see-op,
+ name={\csoptfmt{prune\dhyphen see\dhyphen op}},
+ user1={\meta{value}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
+@resourceoption{opt.prune-seealso-op,
+ name={\csoptfmt{prune\dhyphen see\dhyphen op}},
+ user1={\meta{value}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
+@resourceoption{opt.prune-see-match,
+ name={\csoptfmt{prune\dhyphen see\dhyphen match}},
+ user1={\meta{\keyvallist}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
+@resourceoption{opt.prune-seealso-match,
+ name={\csoptfmt{prune\dhyphen seealso\dhyphen match}},
+ user1={\meta{\keyvallist}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
+@resourceoption{opt.prune-iterations,
+ name={\csoptfmt{prune\dhyphen iterations}},
+ user1={\meta{number}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
@resourceoption{opt.alias-loc,
name={\csoptfmt{alias\dhyphen loc}},
user1={\meta{value}},
@@ -2796,6 +3280,13 @@ field\dhyphen locale}},
parent={resourceoptions}
}
+@resourceoption{opt.loc-prefix-def,
+ name={\csoptfmt{loc\dhyphen prefix\dhyphen def}},
+ user1={\meta{value}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
@resourceoption{opt.loc-suffix,
name={\csoptfmt{loc\dhyphen suffix}},
user1={\meta{value}},
@@ -2803,6 +3294,13 @@ field\dhyphen locale}},
parent={resourceoptions}
}
+@resourceoption{opt.loc-suffix-def,
+ name={\csoptfmt{loc\dhyphen suffix\dhyphen def}},
+ user1={\meta{value}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
@resourceoption{opt.loc-counters,
name={\csoptfmt{loc\dhyphen counters}},
user1={\meta{list}},
@@ -2985,6 +3483,69 @@ field\dhyphen locale}},
parent={resourceoptions}
}
+@resourceoption{opt.break-at-match,
+ name={\csoptfmt{break\dhyphen at\dhyphen match}},
+ user1={\meta{\keyvallist}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
+@resourceoption{opt.break-at-not-match,
+ name={\csoptfmt{break\dhyphen at\dhyphen not\dhyphen match}},
+ user1={\meta{\keyvallist}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
+@resourceoption{opt.break-at-match-op,
+ name={\csoptfmt{break\dhyphen at\dhyphen match\dhyphen op}},
+ user1={\meta{value}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
+@resourceoption{opt.dual-break-at-match,
+ name={\csoptfmt{dual\dhyphen break\dhyphen at\dhyphen match}},
+ user1={\meta{\keyvallist}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
+@resourceoption{opt.dual-break-at-not-match,
+ name={\csoptfmt{dual\dhyphen break\dhyphen at\dhyphen not\dhyphen match}},
+ user1={\meta{\keyvallist}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
+@resourceoption{opt.dual-break-at-match-op,
+ name={\csoptfmt{dual\dhyphen break\dhyphen at\dhyphen match\dhyphen op}},
+ user1={\meta{value}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
+@resourceoption{opt.secondary-break-at-match,
+ name={\csoptfmt{secondary\dhyphen break\dhyphen at\dhyphen match}},
+ user1={\meta{\keyvallist}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
+@resourceoption{opt.secondary-break-at-not-match,
+ name={\csoptfmt{secondary\dhyphen break\dhyphen at\dhyphen not\dhyphen match}},
+ user1={\meta{\keyvallist}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
+@resourceoption{opt.secondary-break-at-match-op,
+ name={\csoptfmt{secondary\dhyphen break\dhyphen at\dhyphen match\dhyphen op}},
+ user1={\meta{value}},
+ category={resourceoption},
+ parent={resourceoptions}
+}
+
@resourceoption{opt.identical-sort-action,
name={\csoptfmt{identical\dhyphen sort\dhyphen action}},
user1={\meta{value}},
@@ -8603,6 +9164,14 @@ field.},
parent={internalfields}
}
+@field{field.rootancestor,
+ name={\fieldfmt{rootancestor}},
+ description={Stores the label of this entry's root ancestor.},
+ note={internal field set by \appfmt{bib2gls}},
+ category={internalfield},
+ parent={internalfields}
+}
+
@field{field.definitionindex,
name={\fieldfmt{definitionindex}},
description={Stores the definition index.},
@@ -8840,6 +9409,14 @@ primary formats, if enabled.},
parent={internalfields}
}
+@field{field.indexed,
+ name={\fieldfmt{indexed}},
+ description={The value is incremented everytime the entry is indexed.},
+ note={internal field set by \styfmt{glossaries-extra} v1.49+},
+ category={baseinternalfield},
+ parent={internalfields}
+}
+
@field{field.desc,
name={\fieldfmt{desc}},
description={Corresponds to \field{description} key.},
@@ -8909,6 +9486,14 @@ primary formats, if enabled.},
parent={fields}
}
+@field{field.prenumberlist,
+ name={\fieldfmt{prenumberlist}},
+ description={set by the \field{nonumberlist} entry key with \cs{makenoidxglossaries}},
+ note={internal field set by \styfmt{glossaries}},
+ category={baseinternalfield},
+ parent={internalfields}
+}
+
@field{field.prevcount,
name={\fieldfmt{prevcount}},
description={Used with entry counting to store the total
@@ -9517,6 +10102,20 @@ primary formats, if enabled.},
parent={commandlineoptions}
}
+@switch{switch.replace-quotes,
+ name={\longargfmt{replace\dhyphen quotes}},
+ user1={},
+ category={switch},
+ parent={commandlineoptions}
+}
+
+@switch{switch.no-replace-quotes,
+ name={\longargfmt{no\dhyphen replace\dhyphen quotes}},
+ user1={},
+ category={switch},
+ parent={commandlineoptions}
+}
+
@switch{switch.packages,
name={\longargfmt{packages}},
symbol={\shortargfmt{p}},
@@ -9653,6 +10252,14 @@ primary formats, if enabled.},
parent={commandlineoptions}
}
+@switch{switch.record-count-rule,
+ name={\longargfmt{record\dhyphen count\dhyphen rule}},
+ symbol={\shortargfmt{r}},
+ user1={\marg{rule}},
+ category={switch},
+ parent={commandlineoptions}
+}
+
@switch{switch.record-count,
name={\longargfmt{record\dhyphen count}},
symbol={\shortargfmt{c}},
@@ -12982,7 +13589,7 @@ letter to \idx{uppercase}},
@glsaddoption{glsadd.format,
name={\csoptfmt{format}},
user1={\margm{encap}},
- description={sets the \gls{encap} for the record to
+ description={sets the \idx{encap} for the record to
\meta{encap}, optionally with the start or end range markers},
category={commandoption},
note={\styfmt{glossaries}},
@@ -14148,6 +14755,14 @@ defined},
category={command}
}
+@glscommand{glshashchar,
+ name={\csfmt{glshashchar}},
+ description={expands to a literal hash character \idx{hashchar}},
+ topics={charcommands},
+ note={\styfmt{glossaries-extra-bib2gls}\texparserdefnote\ v1.49+},
+ category={command}
+}
+
@glscommand{GlsXtrBibTeXEntryAliases,
name={\csfmt{Gls\-Xtr\-Bib\-TeX\-Entry\-Aliases}},
user1={},
@@ -14818,7 +15433,7 @@ abbreviation by the \catattr{markwords} attribute},
name={\csoptfmt{format}},
user1={\margm{encap}},
category={commandoption},
- description={sets the \gls{encap} for the record to
+ description={sets the \idx{encap} for the record to
\meta{encap}, optionally with the start or end range markers},
note={\styfmt{glossaries}},
parent={glslink}
@@ -16629,7 +17244,7 @@ name} and the displayed \meta{text}},
@glscommand{glsxtrglossentryother,
name={\csfmt{gls\-xtr\-gloss\-entry\-other}},
user1={\margm{header}\margm{label}\margm{field}},
- description={like \gls{glsxtrglossentry} but uses the value given
+ description={like \cs{glsxtrglossentry} but uses the value given
in the supplied internal \meta{field} where \meta{header} is the
code
to use in the header (leave empty for default)},
@@ -16949,8 +17564,8 @@ to use in the header (leave empty for default)},
@glscommand{GlsXtrStandaloneGlossaryType,
name={\csfmt{Gls\-Xtr\-Stand\-alone\-Glossary\-Type}},
- description={expands to the label for \gls{currentglossary}
- within \gls{glsxtrglossentry} and \gls{glsxtrglossentryother}},
+ description={expands to the label for \ics{currentglossary}
+ within \ics{glsxtrglossentry} and \ics{glsxtrglossentryother}},
topics={hooks,glossrefs,standalonestyles},
note={\styfmt{glossaries-extra} v1.31+},
category={command}
@@ -16959,8 +17574,8 @@ to use in the header (leave empty for default)},
@glscommand{GlsXtrStandaloneSubEntryItem,
name={\csfmt{Gls\-Xtr\-Stand\-alone\-Sub\-Entry\-Item}},
user1 = {\margm{label}},
- description={used within \gls{glsxtrglossentry} and
-\gls{glsxtrglossentryother} to display sub-item labels},
+ description={used within \ics{glsxtrglossentry} and
+\ics{glsxtrglossentryother} to display sub-item labels},
topics={hooks,glossarystylecommands},
note={\styfmt{glossaries-extra} v1.31+},
category={command}
@@ -16969,7 +17584,7 @@ to use in the header (leave empty for default)},
@glscommand{GlsXtrStandaloneEntryName,
name={\csfmt{Gls\-Xtr\-Stand\-alone\-Entry\-Name}},
user1 = {\margm{label}},
- description={used within \gls{glsxtrglossentry} to
+ description={used within \ics{glsxtrglossentry} to
display the name (with a hypertarget, if supported)},
topics={hooks,glossarystylecommands,fieldrefcommands,linkcommands},
note={\styfmt{glossaries-extra} v1.37+},
@@ -16979,7 +17594,7 @@ to use in the header (leave empty for default)},
@glscommand{GlsXtrStandaloneEntryOther,
name={\csfmt{Gls\-Xtr\-Stand\-alone\-Entry\-Other}},
user1 = {\margm{label}\margm{field}},
- description={used within \gls{glsxtrglossentryother} to
+ description={used within \ics{glsxtrglossentryother} to
display the given field value (with a hypertarget, if supported)},
topics={hooks,glossarystylecommands,fieldrefcommands,linkcommands},
note={\styfmt{glossaries-extra} v1.37+},
diff --git a/Master/texmf-dist/source/support/bib2gls/src/bib2gls.pod b/Master/texmf-dist/source/support/bib2gls/src/bib2gls.pod
index e56c3e55de7..e9f821d9074 100644
--- a/Master/texmf-dist/source/support/bib2gls/src/bib2gls.pod
+++ b/Master/texmf-dist/source/support/bib2gls/src/bib2gls.pod
@@ -212,6 +212,10 @@ The default is to do this for all fields. To do this for only a
subset of fields, set I<fields> to a comma-separated list of fields
(e.g. B<name,short,long>). The keyword B<all> indicates all fields.
+If F<mfirstuc> v2.08+, F<glossaries> v4.50+ and F<glossaries-extra> v1.49+
+are detected, the default will be B<--no-mfirstuc-protection>
+as there should no longer be any need for this protection.
+
=item B<--no-mfirstuc-protection>
Switch off the auto-insertion of an empty group for all fields.
@@ -219,7 +223,10 @@ Switch off the auto-insertion of an empty group for all fields.
=item B<--mfirstuc-math-protection>
Switch on the auto-insertion of an empty group for math-shift (C<$>).
-This option will be overridden by B<--no-mfirstuc-protection>.
+
+If F<mfirstuc> v2.08+, F<glossaries> v4.50+ and F<glossaries-extra> v1.49+
+are detected, the default will be B<--no-mfirstuc-math-protection>
+as there should no longer be any need for this protection.
=item B<--no-mfirstuc-math-protection>
@@ -258,6 +265,24 @@ Add B<group> field to entries.
Don't add B<group> field to entries (default).
+=item B<--record-count-rule> I<rule> or B<-r> I<rule>
+
+Sets the rule used by B<--record-count> and B<--record-count-unit>.
+This option automatically implements B<--record-count>.
+
+The I<rule> may be: C<all> or C<a> (count all records),
+C<non-ignored> or C<n> (count all non-ignored records),
+C<f/>I<regex>C</> (only count records where the format
+matches the regular expression I<regex>),
+C<c/>I<regex>C</> (only count records where the counter name
+matches the regular expression I<regex>),
+or C<f/>I<regex1>C</c/>I<regex2>C</>I<op> (only count records where the format
+matches the regular expression I<regex1> and/or the counter name
+matches the regular expression I<regex2>). The I<op> part is
+optional. If present it may be one of: C<and> (format AND counter
+must match), C<or> (format OR counter must match). If I<op> is
+omitted, AND is assumed.
+
=item B<--record-count> or B<-c>
Add record count fields to entries.
@@ -320,6 +345,15 @@ provide unknown glossaries except in documented situations
(B<master>, B<secondary> and B<trigger-type> resource options).
This setting is the default.
+=item B<--replace-quotes>
+
+Replace single and double quote characters (C<'> and C<">) with
+C<\bibglsaposchar> and C<\bibglsdoublequotechar> in field values
+and group information written to the F<.glstex> file.
+
+=item B<--no-replace-quotes>
+
+Don't replace quote characters (default).
=back
diff --git a/Master/texmf-dist/source/support/bib2gls/src/bib2gls.tex b/Master/texmf-dist/source/support/bib2gls/src/bib2gls.tex
index 52f02cce2a3..0bee0fd3146 100644
--- a/Master/texmf-dist/source/support/bib2gls/src/bib2gls.tex
+++ b/Master/texmf-dist/source/support/bib2gls/src/bib2gls.tex
@@ -155,6 +155,7 @@
see=omit,seealso=omit,alias=omit,
field-aliases={topics=adoptparents,annote=user2},
replicate-fields={name=nametitle,progeny=unsortedprogeny},
+ word-boundaries={white space,cs space,dash},
field-case-change={nametitle=title},
interpret-fields={nametitle},
no-case-change-cs={fieldfmt,abbrstylefmt,glostylefmt},
@@ -179,6 +180,7 @@
},
dual-prefix={},
dual-type={main},
+ ext-prefixes={},
combine-dual-locations={primary},
selection={recorded and deps and see not also},
symbol-sort-fallback={name},
@@ -188,7 +190,9 @@
]
\newglossary*{terms}{Glossary}
-\GlsXtrLoadResources[src=bib2gls-terms,type=terms,save-locations=false,category=term]
+\GlsXtrLoadResources[src=bib2gls-terms,
+ name-case-change=title,replicate-fields={name=text},
+ type=terms,save-locations=false,category=term]
\newcommand{\igls}[2][]{%
\glsxtrifhasfield{useri}{#2}{\glsadd{\glscurrentfieldvalue}}{}%
@@ -241,6 +245,7 @@ documents}}
% ignore locations outside of main matter
\GlsXtrSetDefaultNumberFormat{glsignore}
+\GlsXtrSetPlusModifier{format=glsnumberformat}
\GlsXtrSetAltModifier{!}{format=glsignore}
\newcommand{\frontmatter}{%
@@ -493,7 +498,9 @@ documents}}
{key=value list}%
}
-\newcommand{\cssection}[2][\subsection]{%
+\newcommand{\cssectioncmd}{\subsection}
+
+\newcommand{\cssection}[2][\cssectioncmd]{%
#1{\texorpdfstring{\glsxtrglossentry{#2}}{\string\\#2}}%
}
@@ -1284,7 +1291,7 @@ and \bibgls: An Introductory Guide} (\filefmt{bib2gls-begin.pdf})}}
\filefmt{.bib} files to \filefmt{glossaries-extra.sty} resource
files}
\author{Nicola Talbot\addr{dickimaw-books.com}}
-\date{\DTMusedate{moddate}}
+\input{version}
\makeatletter
\renewcommand{\fps@figure}{htbp}
@@ -1414,8 +1421,6 @@ selection, cross-references and locations}, issue 41:3, 2020.
\listoffigures
\printunsrtglossary*[type=terms,style=altlist,groups=false]
{%
- \MFUhyphentrue
- \glssetcategoryattribute{term}{glossname}{title}%
\renewcommand{\glslistitem}[1]{%
\item[\glsentryitem{#1}%
\glstarget{#1}{\glossentryname{#1}}]%
@@ -3698,6 +3703,12 @@ number of records found for the entry;
number of records found for the entry for the given counter.
\end{itemize}
These fields can then be used with the \gls{rgls}-like commands.
+
+This option is governed by the \longarg{record-count-rule}, which
+can be used to exclude certain types of records from the count. The
+default rule is \optfmt{all}, which includes all
+\idxpl{ignoredrecord}.
+
The default behaviour of
\nosecdef{rgls}
is to check the \field{recordcount} field against the \catattr{recordcount}
@@ -3739,6 +3750,14 @@ For example:
See the \sty{glossaries-extra} user manual~\cite{glossaries-extra}
for further details.
+\begin{important}
+Take care not to confuse the \field{recordcount} field with the \field{indexed}
+field. The \field{indexed} field keeps a running total of the number of times an
+entry has been recorded \emph{so far}, and is updated every time the entry is
+indexed during the current \LaTeX\ run. The \field{recordcount} field stores the total number of records
+obtained by \bibgls\ from the \ext{aux} file.
+\end{important}
+
\argsection{no-record-count}
Switch off record counting. (Default.)
@@ -3748,7 +3767,8 @@ Switch off record counting. (Default.)
Automatically implements \longarg{record-count} and additionally
sets the \field{recordcount.counter.location} fields.
These fields can then be used with the \gls{rgls}-like
-commands.
+commands. This option is governed by \longarg{record-count-rule},
+to determine which records should be counted.
\argsection{no-record-count-unit}
@@ -3756,6 +3776,44 @@ Switches off unit record counting. (Default.)
Note that you need \longarg{no-record-count} to completely
switch off record counting.
+\argsection{record-count-rule}
+
+Automatically implements \longarg{record-count} and sets the rule
+that determines which records should contribute to the count.
+The \meta{rule} may be one of:
+\begin{itemize}
+\item \code{all} or \code{a}: these keywords indicate that all
+records should be included in the count (default).
+\item \code{non-ignored} or \code{n}: these keywords indicate that
+\idxpl{ignoredrecord} should be excluded in the count.
+\item \code{c/\meta{regex}/}: only records where the associated
+counter name matches the regular expression \meta{regex} should be
+included in the count.
+\item \code{f/\meta{regex}/}: only records where the associated
+format matches the regular expression \meta{regex} should be
+included in the count.
+\item \code{f/\meta{format-regex}/c/\meta{counter-regex}/\meta{op}}:
+this combines the format and counter name match. The trailing
+\meta{op} is optional. If present, it should be one of the keywords:
+\code{and} (boolean AND) or \code{or} (boolean OR). If omitted,
+\code{and} is assumed.
+\end{itemize}
+
+For example:
+\begin{verbatim}
+bib2gls --record-count-rule 'f/.*(bf|it)/c/(sub)?section/or' myDoc
+\end{verbatim}
+This will only count records where the format matches the regular
+expression \code{.*(bf|it)} (for example, \code{hyperbf} or
+\code{hyperit}) or the counter name matches \code{section} or
+\code{subsection} (but not \code{subsubsection}, since the
+expressions are anchored).
+
+This syntax doesn't permit the use of the sequence \code{/c/}
+appearing in the regular expressions, but both the format and
+counter name are either control sequence names or are a substring of
+a control sequence name, so they should typically just be
+alphabetical strings.
\argsection{retain-formats}
It's possible that you may not want to lose certain \gls{location}
@@ -3845,6 +3903,15 @@ before the entries are defined (that is, before using
\argsection{mfirstuc-protection}
+If you have \isty{mfirstuc} v2.08+, \isty{glossaries} v4.50+
+and \isty{glossaries-extra} v1.49+ then this setting shouldn't be
+required any more as there's now better sentence-case handling.
+If these versions are detected in the \ext{log} file then the
+default will switch to \longarg{no-mfirstuc-protection}
+otherwise the default is \longarg{mfirstuc-protection}. If this causes any
+problems, use \longarg{mfirstuc-protection} to re-enable this
+setting. The information below relates to older versions.
+
Commands like \ics{Gls} use \ics{makefirstuc} provided by the
\isty{mfirstuc} package. This command has limitations and one of the
things that can break it is the use of a referencing command
@@ -3887,7 +3954,15 @@ above.
\argsection{mfirstuc-math-protection}
-This works in the same way as \longarg{mfirstuc-protection} but
+If you have \isty{mfirstuc} v2.08+, \isty{glossaries} v4.50+ and
+\isty{glossaries-extra} v1.49+ then this setting shouldn't be
+required any more as there's now better sentence-case handling. If
+these versions are detected in the \ext{log} file then the default
+will switch to \longarg{no-mfirstuc-math-protection}. If this causes
+any problems, use \longarg{mfirstuc-math-protection} to re-enable
+this setting. The information below relates to older versions.
+
+This setting works in the same way as \longarg{mfirstuc-protection} but
guards against fields starting with inline maths
(\idx{mshiftchar}\ldots\idx{mshiftchar}). For example, if the
\field{name} field starts with
@@ -4042,6 +4117,19 @@ default since it's a useful way of detecting misspelt glossary
labels. It's harder to detect the problem if a misspelt label has
caused an entry to be added to a hidden glossary.
+\argsection{replace-quotes}
+
+Single and double-quote characters (\idx{aposchar} and
+\idx{doublequotechar}) will be written as \cs{bibglsaposchar} and
+\cs{bibglsdoublequotechar} in field values and group information
+written to the \ext{glstex} file.
+
+\argsection{no-replace-quotes}
+
+Single and double-quote characters (\idx{aposchar} and
+\idx{doublequotechar}) will be written as those actual characters
+(default).
+
\chapter{\iext{bib} Format}
\label{sec:bib}
\setsecdepth{1}
@@ -8068,6 +8156,14 @@ The advantage with \field{siblinglist} over accessing the
\glsdisp{parententry}{parent's} \field{childlist} is that the entry
itself is excluded from the list.
+\optsection{save-root-ancestor}
+
+This is a boolean option. The default setting is
+\csopt[false]{save-root-ancestor}. If true, the entry's top-most
+\gls{ancestor} will be saved in the entry's \field{rootancestor} internal
+field. If the entry doesn't have a \parent\ (that it, the entry itself
+is the root) then the \field{rootancestor} field won't be set.
+
\optsection{flatten}
This is a boolean option. The default value is \csopt[false]{flatten}.
@@ -8544,12 +8640,104 @@ be assigned to the new \gls{parententry} with this option. The
\item \code{same as base}: the \gls{parententry}['s] \field{category} is
set to the base name of the \ext{bib} file that provided the
\gls{childentry}['s] definition;
- \item \code{no value}: don't set the \field{category} field;
+ \item \code{no value} or \code{false}: don't set the \field{category} field;
\item \meta{label}: the \gls{parententry}['s] \field{category} field is set to
\meta{label} (which shouldn't contain any special characters).
\end{itemize}
The default setting is \csopt[no value]{missing-parent-category}.
+\optsection{group-level}
+
+If letter group formation is enabled (see \csopt{group},
+\csopt{group-formation} and \longarg{group}) then the default
+behaviour is to only assign the group label for \glspl{top-levelentry}.
+This option allows the group label to be assigned to \glspl{sub-entry}.
+The value may be one of the following:
+\begin{itemize}
+\item \meta{n}: only assign the group for level~\meta{n} entries;
+\item \code{>}\meta{n}: only assign the group for entries with a
+level greater than \meta{n};
+\item \code{>=}\meta{n}: only assign the group for entries with a
+level greater than or equal to \meta{n};
+\item \code{<}\meta{n}: only assign the group for entries with a
+level less than \meta{n};
+\item \code{<=}\meta{n}: only assign the group for entries with a
+level less than or equal to \meta{n};
+\item \code{all}: equivalent to \csopt[>=0]{group-level}.
+\end{itemize}
+The default setting is \csopt[0]{group-level}.
+If no value is provided, \csopt[all]{group-level} is assumed. The
+hierarchical levels start at 0 (\gls{top-levelentry}). For any value
+other than \csopt[0]{group-level}, the parent entry label will be
+included in the group label.
+
+The hierarchical group titles are formatted according to
+\gls{bibglshiersubgrouptitle}. If the group title would
+usually be set with the command \csfmt{bibglsset\ldots group}
+for \glspl{top-levelentry} then the hierarchical group title would
+be set with the analogous \csfmt{bibglsset\ldots group} command.
+For example, letter groups are normally set with
+\gls{bibglssetlettergrouptitle} but hierarchical letter groups are set
+with \gls{bibglssetlettergrouptitlehier}.
+
+If the \longarg{no-group} setting is on then this option has no effect.
+
+\begin{important}
+Any value other than the default \csopt[0]{group-level} requires
+\sty{glossaries-extra} v1.49+.
+\end{important}
+
+\optsection{merge-small-groups}
+
+Merges consecutive groups that have less than \meta{n} entries. The
+default is \csopt[0]{merge-small-groups}, which switches off this
+action. If \meta{n} is omitted, \csopt[1]{merge-small-groups} is
+assumed.
+
+This setting only has an effect if group formation is enabled.
+If hierarchical sub-groups are enabled (\csopt{group-level}) then
+merging is only performed on consecutive small groups within the
+same hierarchical level. Any \glspl{childentry} that aren't in their
+own sub-group are included in the higher level group count.
+
+For example, suppose you have a large number of entries in most of
+the letter groups:
+\begin{codeenv}
+\atentry{index}\marg{aardvark}
+\atentry{index}\marg{ant}
+\atentry{index}\marg{alligator}
+\atentry{index}\marg{ape}
+\comment{etc}
+\end{codeenv}
+but you only have one entry in each of the \qt{X}, \qt{Y} and \qt{Z}
+groups:
+\begin{codeenv}
+\atentry{index}\marg{xylem}
+\atentry{index}\marg{yak}
+\atentry{index}\marg{zebra}
+\end{codeenv}
+then you may prefer to merge these entries into a single group:
+\begin{codeenv}
+\gls{GlsXtrLoadResources}\oarg{merge-small-groups}
+\end{codeenv}
+The title of this merged group is obtained from
+\gls{bibglsmergedgrouptitle} (or \gls{bibglsmergedgrouptitle} if
+hierarchical groups have been enabled with \csopt{group-level}).
+For the above example, the merged letter group would have the title
+\qt{X, Y, Z}. If there are more than three groups then the middle
+group titles are replace with an ellipsis. For example, if there is
+also only one entry in the \qt{W} letter group, then the merged
+title would be \qt{W,\ldots, Z}.
+
+The small groups must be consecutive (there is no group between
+them) and on the same hierarchical level in order to be merged.
+In the above example, if the yak entry isn't selected so that there
+is no \qt{Y} letter group, then the \qt{X} and \qt{Z} groups can be
+merged (with the merged title \qt{X, Z}). If, on the other hand,
+extra entries occur in the \qt{Y} letter group, so that it is larger
+than the value of \csopt{merge-small-groups}, then \qt{X} and
+\qt{Z} can no longer be merged.
+
\section{Master Documents}
\label{sec:master}
@@ -8672,7 +8860,8 @@ This option will disable most of the options that relate to
parsing and processing data contained in \iext{bib} files
(since this option doesn't actually read any \ext{bib} files).
It also can't be used with \csopt[copy]{action} or \csopt[define
-or copy]{action}.
+or copy]{action}. A value of \code{false} will switch off this
+setting (the default).
The use of \optfmt{master} isn't always suitable. In particular
if any of the terms cross-reference each other, such as through
@@ -9018,6 +9207,14 @@ start with \idprefix{dual} or \idprefix{tertiary} or \idprefix{extn} (where
\meta{n} is an integer). Use \csopt{dual-prefix} to change the dual label
prefixes and \csopt{ext-prefixes} to change the external label prefixes.
+If you set \csopt{label-prefix} and you define commands with
+\gls{glsxtrnewglslike}, then any of those commands found in entry
+fields won't have the \csopt{label-prefix} inserted if the prefix provided with
+the command starts with the prefix given in \csopt{label-prefix}.
+(This doesn't apply to other prefix options, such as
+\csopt{dual-prefix}, so take care if you have a mixture of prefix
+options and prefixes identified with \gls{glsxtrnewglslike}.)
+
As from version 1.8, the \primary\ label prefix is identified
in the \ext{glstex} file with:
\begin{codeenv}
@@ -9494,7 +9691,8 @@ O \cs{gls}\marg{gato} sentou-se no \cs{gls}\marg{tapete}.
The \csopt{group} option will set the \field{group} field to \meta{label}
unless \meta{label} is \optfmt{auto}. If \csopt[auto]{group} then if
the \longarg{group} switch is used the value of the \field{group}
-field is set automatically during the sorting (see also \csopt{group-formation}
+field is set automatically during the sorting (see also
+\csopt{group-formation}, \csopt{group-level}
and \sectionref{sec:logicaldivisions}). If the \longarg{no-group}
setting is on then \csopt[auto]{group} does nothing.
@@ -9523,6 +9721,7 @@ The selected entries may all have their \field{category} field
changed before writing their definitions to the \ext{glstex} file.
The \meta{value} may be:
\begin{itemize}
+\item \optfmt{false}: switch off this setting (default);
\item \optfmt{same as entry}: set the
\field{category} to the \ext{bib} entry type used to define it
(\idx!{lowercase} and without the initial \code{@}) after any aliasing,
@@ -9614,19 +9813,21 @@ the \csopt[animals]{category} option.
The \meta{value} may be one of:
\begin{itemize}
- \item \optfmt{same as entry} set the \field{type} field
+ \item \optfmt{false}: switches off this setting (default);
+
+ \item \optfmt{same as entry}: set the \field{type} field
to the entry type (\idx!{lowercase} and without the initial \code{@});
- \item \optfmt{same as original entry} set the \field{type}
+ \item \optfmt{same as original entry}: set the \field{type}
to the original entry type (\idx!{lowercase} and without
the initial \code{@}) before it was aliased (behaves like
\optfmt{same as entry} if the entry type wasn't aliased);
- \optfmt{same as base} set the \field{type} field
+ \optfmt{same as base}: set the \field{type} field
to the base name of the corresponding \ext{bib} file
(without the extension);
- \item \optfmt{same as category} set the \field{type} field
+ \item \optfmt{same as category}: set the \field{type} field
to the same value as the \field{category} field
(\field{type} unchanged if \field{category} not set);
@@ -9639,7 +9840,7 @@ pick up the \field{type} field from their \igls{progenitor} entry
(if it was explicitly set in the \ext{bib} file),
which may be inappropriate.
- \item\meta{label} sets the \field{type} field to the glossary
+ \item\meta{label}: sets the \field{type} field to the glossary
identified by \meta{label}.
\end{itemize}
When used with \csopt{entry-type-aliases}, the option \csopt[same as
@@ -9696,7 +9897,8 @@ This will override the \csopt{type}, \csopt{dual-type},
\csopt{secondary}.
The provided value \meta{type} must be a glossary label (not one of
-the keywords allowed by \csopt{type}).
+the keywords allowed by \csopt{type}) or \code{false} to switch
+off this setting.
You can define the glossary before loading the resource, but
it's not required as \bibgls\ will write
\code{\ics{provideignoredglossary*}\margm{type}} to the \ext{glstex} file
@@ -9940,6 +10142,7 @@ The value must be the name of a counter. Since \bibgls\ doesn't know
which counters are defined within the document, there's no check to
determine if the value is valid (except for ensuring that
\meta{value} is non-empty).
+A value of \code{false} will switch off this setting (the default).
Note that this will require an extra \LaTeX\ and \bibgls\ call since
the counter can't be used for the indexing until the entry has been
@@ -10616,6 +10819,211 @@ referenced label was found in the current \igls{resourceset} or if it had
to be fetched from another \igls{resourceset}. So if the resulting
order isn't what you expect, check the transcript file for messages.
+\optsection[\subsubsection]{prune-xr}
+
+If true, this is a shortcut for:
+\begin{codeenv}
+\csopt[entrytype=\marg{index(plural)?},see=\marg{},seealso=\marg{},alias=\marg{}]{prune-see-match},
+\csopt[entrytype=\marg{index(plural)?},see=\marg{},seealso=\marg{},alias=\marg{}]{prune-seealso-match},
+\end{codeenv}
+
+This will remove any labels in an entry's \field{see} or
+\field{seealso} field where the referenced label doesn't have any
+records and hasn't been selected as another form of dependency and
+whose entry type is either \atentry{index} or \atentry{indexplural}
+and doesn't have the \field{see}, \field{seealso} or \field{alias}
+fields set.
+
+Both \csopt{prune-see-match} and \csopt{prune-seealso-match} can be
+switched off at the same time with \csopt[false]{prune-xr}.
+
+\optsection[\subsubsection]{prune-see-match}
+
+The value has the same syntax as \csopt{match}. Omitting the value
+switches off the setting. This option is not cumulative.
+
+If a value is supplied, this setting will attempt to prune unnecessary
+labels from \field{see} fields. Note that pruning may fail if there
+are cross-reference trails.
+
+A label will be stripped from a \field{see} field if the label
+references an entry that has no records, isn't dependent on another
+entry, hasn't previously been selected, and matches the given
+criteria. If more that one pattern match is supplied,
+\csopt{prune-see-op} determines whether to apply a logical AND or a
+logical OR.
+
+For example, suppose the file \filefmt{entries.bib} contains the
+following:
+\begin{codeenv}
+\atentry{index}\marg{pumpkin}
+\atentry{index}\marg{cucumber}
+\atentry{index}\marg{melon}
+\atentry{index}\marg{cucurbit,\field{see}=\marg{gourd}}
+\atentry{index}\marg{gourd,\field{see}=\marg{pumpkin,cucumber,melon}}
+\atentry{index}\marg{courgette}
+\atentry{index}\marg{marrow,\field{seealso}=\marg{courgette}}
+\atentry{index}\marg{broccoli}
+\atentry{index}\marg{cauliflower,\field{seealso}=\marg{broccoli}}
+\end{codeenv}
+Suppose the document contains:
+\begin{codeenv}
+\gls{GlsXtrLoadResources}\oarg{\csopt[entries]{src}}
+\cmd{begin}\marg{document}
+\cs{gls}\marg{cucurbit}, \cs{gls}\marg{pumpkin}, \cs{gls}\marg{melon}, \cs{gls}\marg{broccoli},
+\cs{gls}\marg{marrow}, \cs{gls}\marg{cauliflower}.
+\cs{printunsrtglossary}\oarg{title=Index}
+\cmd{end}\marg{document}
+\end{codeenv}
+This uses the default \csopt[recorded and deps]{selection} setting,
+which selects recorded entries (cucurbit, pumpkin, melon, broccoli,
+marrow and cauliflower) and their dependencies. In this case, the
+dependencies are: courgette (because it's listed in the marrow's
+\field{seealso} field), gourd (because it's listed in the cucurbit's
+\field{see} field), and cucumber (because it's listed in the
+gourd's \field{see} field).
+The resulting list is:
+\begin{quote}
+\setlength{\parindent}{0pt}%
+\setlength{\parskip}{0pt plus 0.3pt}%
+\glstreeitem broccoli 1\par
+\glstreeitem cauliflower 1, \emph{see also} broccoli\par
+\glstreeitem courgette\par
+\glstreeitem cucumber\par
+\glstreeitem cucurbit 1, \emph{see} gourd\par
+\glstreeitem gourd \emph{see} pumpkin, cucumber \& melon\par
+\glstreeitem marrow 1, \emph{see also} courgette\par
+\glstreeitem melon 1\par
+\glstreeitem pumpkin 1\par
+\end{quote}
+
+This means that courgette and cucumber appear in the glossary
+without a \igls{locationlist}. If this was an actual glossary with
+descriptions, this may not be a problem, but it looks strange for an
+index since the cross-reference essentially leads the reader to a dead end.
+
+Switching to \csopt[recorded no deps]{selection} will remove
+courgette, gourd and cucumber but the \field{see} and
+\field{seealso} fields will be lost. Since gourd references both
+pumpkin and melon (which are used in the document), it might be
+useful to keep the gourd entry. The aim of pruning is to remove the
+unwanted cucumber entry from the gourd's \field{see} list but retain
+pumpkin and melon.
+
+An appropriate filter is needed to switch on pruning. (This is in
+addition to the criteria that the pruned entry has no records, isn't
+dependent on another entry, and hasn't previously been selected.)
+This type of pruning is usually only necessary for indexes so a
+useful filter may be simply on the entry type (either
+\atentry{index} or \atentry{indexplural}):
+\begin{codeenv}
+\gls{GlsXtrLoadResources}\oarg{\csopt[entries]{src},
+ \csopt[entrytype=\marg{index(plural)?}]{prune-see-match}}
+\end{codeenv}
+Another possibility is to filter on an empty \field{description}:
+\begin{codeenv}
+\gls{GlsXtrLoadResources}\oarg{\csopt[entries]{src},\csopt[description=\marg{}]{prune-see-match}}
+\end{codeenv}
+
+The result is that the cauliflower and marrow entries keep their
+\field{seealso} lists (since this option only applies to \field{see}
+lists) and the courgette entry has been added (because it's
+in the marrow entry's \field{seealso} list). The gourd entry is
+removed from the cucurbit's \field{see} list (because it matches the
+criteria) and is not selected (because it's no longer a dependency).
+
+In this case, I'd like to include the gourd entry because it has the
+\field{see} field set. This means adjusting the criteria so that
+only entries without the \field{see} field can be pruned:
+\begin{codeenv}
+\gls{GlsXtrLoadResources}\oarg{\csopt[entries]{src},
+ \csopt[entrytype=\marg{index(plural)?},see=\marg{}]{prune-see-match}}
+\end{codeenv}
+This means that gourd is now selected (and retained in the
+cucurbit's \field{see} field) but cucumber is removed from the
+gourd's \field{see} field.
+
+A similar method can be applied for the \field{seealso} fields using
+\csopt{prune-seealso-match}. There's no applicable setting for the
+\field{alias} field (since it's expected that the alias be present
+due to the nature of the way the \field{alias} field works).
+
+For convenience, the \csopt{prune-xr} option is provided as a
+shortcut. If the resource command in the above example is modified
+to:
+\begin{codeenv}
+\gls{GlsXtrLoadResources}\oarg{\csopt[entries]{src},\csopt{prune-xr}}
+\end{codeenv}
+then the resulting list will be:
+\begin{quote}
+\setlength{\parindent}{0pt}%
+\setlength{\parskip}{0pt plus 0.3pt}%
+\glstreeitem broccoli 1\par
+\glstreeitem cauliflower 1, \emph{see also} broccoli\par
+\glstreeitem cucurbit 1, \emph{see} gourd\par
+\glstreeitem gourd \emph{see} pumpkin \& melon\par
+\glstreeitem marrow 1\par
+\glstreeitem melon 1\par
+\glstreeitem pumpkin 1\par
+\end{quote}
+
+Note that if the pumpkin and melon references are removed from the
+document, then gourd will still be selected but will have no
+cross-reference. This is because the cucurbit entry is checked for
+pruning while the gourd entry still has a non-empty \field{see}
+field so it's not removed from the cucurbit entry.
+
+There are two ways around this problem: either switch the
+definitions of cucurbit and gourd around in the \ext{bib} file
+or use \csopt{prune-iterations} to reprune (in this case,
+\csopt[2]{prune-iterations} is sufficient).
+
+\begin{important}
+This setting is only compatible with the \qt{recorded and dep}
+selection criteria: \csopt[recorded and
+deps]{selection}, \csopt[recorded and deps and see]{selection}
+and \csopt[recorded and deps and see not also]{selection}.
+\end{important}
+
+\optsection[\subsubsection]{prune-see-op}
+
+If the value of \csopt{prune-see-match} contains more than one
+\meta{key}=\meta{pattern} element, the \csopt{prune-see-op}
+determines whether to apply a logical AND or a logical OR.
+The \meta{value} may be either \optfmt{and} or \optfmt{or}.
+The default is \csopt[and]{prune-see-op}.
+
+\optsection[\subsubsection]{prune-seealso-match}
+
+As \csopt{prune-see-match} but for \field{seealso} fields. If more
+that one pattern match is supplied, \csopt{prune-seealso-op}
+determines whether to apply a logical AND or a logical OR.
+
+\begin{important}
+This setting is only compatible with the \qt{recorded and dep}
+selection criteria: \csopt[recorded and
+deps]{selection}, \csopt[recorded and deps and see]{selection}
+and \csopt[recorded and deps and see not also]{selection}.
+\end{important}
+
+\optsection[\subsubsection]{prune-seealso-op}
+
+If the value of \csopt{prune-seealso-match} contains more than one
+\meta{key}=\meta{pattern} element, the \csopt{prune-seealso-op}
+determines whether to apply a logical AND or a logical OR.
+The \meta{value} may be either \optfmt{and} or \optfmt{or}.
+The default is \csopt[and]{prune-seealso-op}.
+
+\optsection[\subsubsection]{prune-iterations}
+
+If you have cross-reference trails, you may need to reprune. The
+value of this options indicates the number of pruning iterations.
+The default is 1. The higher the number, the longer \bibgls\ will
+take to complete. The value can't be less that 1.
+
+The maximum number of iterations is capped at 20. A cross-reference
+trail that long is excessive for an index.
+
\optsection[\subsubsection]{bibtex-contributor-fields}
This option indicates that the listed fields all use \BibTeX's name
@@ -11179,11 +11587,6 @@ the original value is encapsulated by a command or \bibgls\ will
perform the actual \idx{case-change} according to its own algorithm.
The results can vary according to the field content.
-Only a subset of known fields have a resource option that can be
-used to apply a \idx{case-change}. For example, \csopt{name-case-change}
-can be used to change the case of the \field{name} field, but
-there's no equivalent option for the \field{text} field.
-
Each of the case-changing resource options may take one of the
following values:
\begin{itemize}
@@ -11274,6 +11677,14 @@ example:
\end{codeenv}
\end{itemize}
+
+\begin{important}
+Major changes have been introduced to \sty{mfirstuc} v2.08. Some of
+the information below refers to older versions and is not
+applicable with \sty{mfirstuc} v2.08+. See the \sty{mfirstuc} manual
+for further details.
+\end{important}
+
The \optfmt{firstuc-cs} and \optfmt{firstuc} options are essentially
a \idx{sentencecase} change, but there's no check for
sentence-breaks within the value, so even if the value contains
@@ -11919,6 +12330,11 @@ the option \csopt[false]{save-locations} is used). The
\field{location} field contains the code to typeset the formatted
\igls{locationlist}.
+Note that the cross-referencing information provided with the
+\field{see}, \field{seealso} and \field{alias} fields is put in the
+location list. If you only want the cross-reference and not any of
+the locations, use \csopt[see]{save-locations} (or similar).
+
The \field{loclist} field has the syntax of an \isty{etoolbox}
internal list and includes every \gls{location} (except for the
\glsdisp{discardedrecord}{discarded duplicates} and
@@ -12149,6 +12565,28 @@ For more information on adjusting the formatting see the
\optsection{save-locations}
+This was originally a boolean setting, but as from v3.0 there are
+additional values.
+\begin{itemize}
+\item \optfmt{false}: don't save anything in the \field{location}
+field;
+
+\item \optfmt{true}: save cross-references and all non-ignored
+locations in the \field{location} field;
+
+\item \optfmt{see}: only save cross-references (\field{see},
+\field{seealso} and \field{alias}) in the \field{location} field;
+
+\item \optfmt{see not also}: only save the \field{see} and
+\field{alias} cross-references (not \field{seealso}) in the
+\field{location} field;
+
+\item \optfmt{alias only}: only save the \field{alias}
+cross-references (not \field{see} or \field{seealso}) in the
+\field{location} field.
+
+\end{itemize}
+
By default, the \glspl{location} will be processed and stored in the
\field{location} and \field{loclist} fields. However, if you don't
want the \glspl{locationlist} (for example, you are using the
@@ -12164,7 +12602,8 @@ The boolean \field{nonumberlist} key that may be used in
\gls{newglossaryentry} can also be used in a \ext{bib} file, but in
this case it can't have an empty value. The value must be either
\code{true} or \code{false}. If \code{true} then \bibgls\ won't
-save the \field{location} or \field{loclist} fields.
+save the \field{location} or \field{loclist} fields, regardless of
+the \csopt{save-locations} resource option.
The \field{nonumberlist} key provided by the base \sty{glossaries}
package doesn't represent a real field. The value isn't saved but,
@@ -12227,7 +12666,9 @@ want to lose a partial \gls{location} match (for example, if the
\end{itemize}
The \glspl{principallocation} are copied to the \field{primarylocations}
-field and encapsulated with \gls!{bibglsprimary}.
+field and are either encapsulated with \gls!{bibglsprimary} or can
+be split into groups, according to \csopt{principal-loc-counters}.
+
If you use \csopt[remove]{save-principal-locations}, the
\field{location} field will end up empty if the \glspl{location} for the
associated entry were all identified as principal. If you use
@@ -12496,6 +12937,142 @@ This is more useful if you want to simply omit the
definitions), which makes it easier to merge the \glspl{location} into
ranges in the index.
+\optsection{primary-loc-counters}
+
+A synonym for \csopt{principal-loc-counters}.
+
+\optsection{principal-loc-counters}
+
+This option determines whether the \glspl{principallocation} should
+be split into groups according to the location counter. The value
+may be one or:
+\begin{itemize}
+\item \optfmt{combine}: don't split into groups (default);
+\item \optfmt{match}: match the \csopt{loc-counters} setting;
+\item \optfmt{split}: split into groups regardless of the
+\csopt{loc-counters} setting.
+\end{itemize}
+
+With \csopt[combine]{principal-loc-counters} or with
+\csopt[match]{principal-loc-counters} and the default \csopt[as
+use]{loc-counters} settings, no groups will be formed and the
+\glspl{principallocation} will be encapsulated with
+\gls{bibglsprimary}. Otherwise, the locations will be split into
+groups according to the counter and each group will be encapsulated
+with \gls{bibglsprimarylocationgroup} and separated with
+\gls{bibglsprimarylocationgroupsep}.
+
+For example, suppose the file \filefmt{topics.bib} contains the
+following entry:
+\begin{codeenv}
+\atentry{entry}\marg{zebra,
+ \field{name}=\marg{zebra},
+ \field{description}=\marg{striped African horse}
+}
+\end{codeenv}
+The document sets up a \gls{principallocation} format identified by
+the custom command \csfmt{primaryfmt}:
+\begin{codeenv}
+\cs{newcommand}\marg{\cmd{primaryfmt}}[1]\marg{\cs{hyperbf}\marg{\idx{param}1}}
+\end{codeenv}
+The \ics{GlsXtrAutoAddOnFormat} command is used to automatically
+record an entry with the \counter{chapter} counter (using
+\ics{glsadd}) every time the entry is
+recorded with the \gls{principallocation} format:
+\begin{codeenv}
+\cs{GlsXtrAutoAddOnFormat}\marg{primaryfmt}\marg{\glsopt{counter}=\counter{chapter},\glsopt{format}=primaryfmt}
+\end{codeenv}
+This means that, for example,
+\begin{codeenv}
+\cs{gls}\oarg{\glsopt{format}=primaryfmt}\margm{zebra}
+\end{codeenv}
+will also first do:
+\begin{codeenv}
+\cs{glsadd}\oarg{\glsopt{counter}=\counter{chapter},\glsopt{format}=primaryfmt}\margm{zebra}
+\end{codeenv}
+
+If \idx{resourceset} is loaded with:
+\begin{codeenv}
+\gls{GlsXtrLoadResources}\oarg{\csopt[topics]{src},
+ \csopt[primaryfmt]{primary-location-formats},
+ \csopt[retain]{save-primary-locations}
+}
+\end{codeenv}
+then both the \field{location} field and the
+\field{primarylocations} field will include both the \counter{page}
+and \counter{chapter} records mixed together. The
+\field{primarylocations} field will have the locations encapsulated
+with \gls{bibglsprimary}.
+
+With
+\begin{codeenv}
+\gls{GlsXtrLoadResources}\oarg{\csopt[topics]{src},
+ \csopt[primaryfmt]{primary-location-formats},
+ \csopt[retain]{save-primary-locations},
+ \csopt[split]{primary-loc-counters}
+}
+\end{codeenv}
+the \field{primarylocations} field will have the locations split into
+two groups, each encapsulated with \gls{bibglsprimarylocationgroup}.
+The \field{location} field will have the \counter{chapter} and
+\counter{page} locations intermingled.
+
+With
+\begin{codeenv}
+\gls{GlsXtrLoadResources}\oarg{\csopt[topics]{src},
+ \csopt[primaryfmt]{primary-location-formats},
+ \csopt[retain]{save-primary-locations},
+ \csopt[split]{primary-loc-counters},
+ \csopt[page]{loc-counters}
+}
+\end{codeenv}
+The \field{primarylocations} field will be the same as before, but
+the \field{location} field will only have the \counter{page}
+locations.
+
+Whereas with
+\begin{codeenv}
+\gls{GlsXtrLoadResources}\oarg{\csopt[topics]{src},
+ \csopt[primaryfmt]{primary-location-formats},
+ \csopt[retain]{save-primary-locations},
+ \csopt[match]{primary-loc-counters},
+ \csopt[page]{loc-counters}
+}
+\end{codeenv}
+Both the \field{primarylocations} field and the \field{location}
+field will only have the \counter{page} locations.
+
+The order of the groups depends on whether \optfmt{split} or
+\optfmt{match} is used. With \csopt[match]{primary-loc-counters} the
+counter group order will match \csopt{loc-counters}. Whereas with
+\csopt[split]{primary-loc-counters} the counter group order will be determined by
+the order of records.
+
+So in the case of the above document where the \counter{chapter}
+record is automatically added before the \counter{page} record
+(where the \glsopt{format} is \code{primaryfmt}) then with:
+\begin{codeenv}
+\gls{GlsXtrLoadResources}\oarg{\csopt[topics]{src},
+ \csopt[primaryfmt]{primary-location-formats},
+ \csopt[retain]{save-primary-locations},
+ \csopt[match]{primary-loc-counters},
+ \csopt[page,chapter]{loc-counters}
+}
+\end{codeenv}
+then both the \field{location} field and the
+\field{primarylocations} field will have the \counter{page} group
+first, followed by the \counter{chapter} group. Whereas with:
+\begin{codeenv}
+\gls{GlsXtrLoadResources}\oarg{\csopt[topics]{src},
+ \csopt[primaryfmt]{primary-location-formats},
+ \csopt[retain]{save-primary-locations},
+ \csopt[skip]{primary-loc-counters},
+ \csopt[page,chapter]{loc-counters}
+}
+\end{codeenv}
+then the \field{primarylocations} field will have the
+\counter{chapter} group first, followed by the \counter{page} group.
+
\optsection{min-loc-range}
By default, three or more consecutive \glspl{location} \meta{loc-1},
@@ -12866,8 +13443,7 @@ start of the \glspl{locationlist} (default).
\item \optfmt{\margm{prefix-1},\margm{prefix-2},\ldots,\margm{prefix-n}}:
insert \code{\gls{bibglslocprefix}\margm{n}} (where \meta{n} is the number of
\glspl{location} in the list) at the start of each \gls{locationlist} and the
-definition of \gls{bibglslocprefix} will be appended to the glossary
-preamble providing an \ics{ifcase} condition:
+definition of \gls{bibglslocprefix} will have an \ics{ifcase} condition:
\begin{codeenv}
\cmd{providecommand}\marg{\gls{bibglslocprefix}}[1]\marg{\comment{}
\ics{ifcase}\idx{param}1
@@ -12896,17 +13472,14 @@ the document's language hooks or in the glossary preamble.
\end{itemize}
-If \meta{value} is omitted, \optfmt{true} is assumed. Take care not
-to mix different values of \csopt{loc-prefix} for entries for the
-same \csopt{type} setting. It's okay to mix \csopt[false]{loc-prefix} with
-another value, but don't mix non-\optfmt{false} values.
-See the description of \gls!{bibglslocprefix} for
-further details.
+If \meta{value} is omitted, \optfmt{true} is assumed. The definition
+will be placed in the \ext{glstex} file according to
+\csopt{loc-prefix-def}.
For example:
\begin{codeenv}
-\gls{GlsXtrLoadResources}\oarg{\csopt[main]{type},\csopt[entries1]{src},\csopt[false]{loc-prefix}}
-\gls{GlsXtrLoadResources}\oarg{\csopt[main]{type},\csopt[entries2]{src},\csopt{loc-prefix}}
+\gls{GlsXtrLoadResources}\oarg{\csopt[main]{type},\csopt[individual]{loc-prefix-def},\csopt[entries1]{src},\csopt[false]{loc-prefix}}
+\gls{GlsXtrLoadResources}\oarg{\csopt[main]{type},\csopt[individual]{loc-prefix-def},\csopt[entries2]{src},\csopt{loc-prefix}}
\gls{GlsXtrLoadResources}\oarg{\csopt[symbols]{type},\csopt[entries3]{src},\csopt[p.,pp.]{loc-prefix}}
\end{codeenv}
This works since the conflicting \csopt[p.,pp.]{loc-prefix} and
@@ -12932,6 +13505,32 @@ then \csopt[true]{loc-prefix} takes precedence over
fetched from both \filefmt{entries2.bib} and \filefmt{entries3.bib}
have the location prefixes obtained from the language resource file.
+Note that if you identify some glossaries but not others (for
+example, you have dual entries in separate glossaries but only
+use \csopt{type} and not \csopt{dual-type}), then you will need to
+use \csopt[global]{loc-prefix-def} or \csopt[local]{loc-prefix-def}.
+
+\optsection{loc-prefix-def}
+
+This determines how the location prefix identified by
+\csopt{loc-prefix} is written to the \ext{glstex} file. The value
+may be one of:
+\begin{itemize}
+\item\optfmt{global} the definition is globally defined using
+\cs{providecommand};
+\item\optfmt{local} the definition is locally defined using
+\cs{providecommand} in the general glossary preamble
+(\cs{glossarypreamble});
+\item\optfmt{individual} the definition is locally defined using
+\cs{providecommand} in the glossary preamble of each type that has
+been identified in the current \gls{resourceset}, using options like
+\csopt{type} and \csopt{dual-type}
+(\ics{apptoglossarypreamble}).
+\end{itemize}
+The default is \csopt[individual]{loc-prefix-def}. Note that this
+can lead to an undefined control sequence error if locations appear
+in a glossary that hasn't been detected by the \gls{resourceset}.
+
\optsection{loc-suffix}
This is similar to \csopt{loc-prefix} but there are some subtle
@@ -12957,8 +13556,33 @@ an equivalent to \gls{bibglspostlocprefix}.
If \meta{value} omitted, \csopt[\ics{at}\idx{periodchar}]{loc-suffix}
is assumed. The default is \csopt[false]{loc-suffix}.
-As with \csopt{loc-prefix}, take care not to mix different values
-of \csopt{loc-suffix} for entries in the same glossary type.
+The way the definition is written to the \ext{glstex} file is determined
+by \csopt{loc-suffix-def}.
+Note that if you identify some glossaries but not others (for
+example, you have dual entries in separate glossaries but only
+use \csopt{type} and not \csopt{dual-type}), then you will need to
+use \csopt[global]{loc-suffix-def} or \csopt[local]{loc-suffix-def}.
+
+\optsection{loc-suffix-def}
+
+This determines how the location suffix identified by
+\csopt{loc-suffix} is written to the \ext{glstex} file. The value
+may be one of:
+\begin{itemize}
+\item\optfmt{global} the definition is globally defined using
+\cs{providecommand};
+\item\optfmt{local} the definition is locally defined using
+\cs{providecommand} in the general glossary preamble
+(\cs{glossarypreamble});
+\item\optfmt{individual} the definition is locally defined using
+\cs{providecommand} in the glossary preamble of each type that has
+been identified in the current \gls{resourceset}, using options like
+\csopt{type} and \csopt{dual-type}
+(\ics{apptoglossarypreamble}).
+\end{itemize}
+The default is \csopt[individual]{loc-suffix-def}. Note that this
+can lead to an undefined control sequence error if locations appear
+in a glossary that hasn't been detected by the \gls{resourceset}.
\optsection{loc-counters}
@@ -13067,6 +13691,12 @@ This option is intended for use with the \sty{hyperref} package to
allow \glspl{location} to link back to the particular part of the page where
the term was referenced rather than to the top of the page.
+\begin{important}
+Take care not to confuse this with the \field{indexed} special internal field
+introduced in \sty{glossaries-extra} v1.49+. This is incremented on a per-entry basis
+and does not have an associated counter.
+\end{important}
+
The \styopt{indexcounter} package option also automatically
implements the option \styopt[wrglossary]{counter}, which means that
each instance of \code{\ics{gls}\margm{id}} writes the label
@@ -13501,6 +14131,8 @@ identifier (as per \csopt{category}) or the category label. For example:
\cmd{end}\marg{document}
\end{codeenv}
+A value of \code{false} will switch off this setting (the default).
+
\section{Sorting}
\label{sec:sortingopts}
@@ -15373,6 +16005,9 @@ document). Alternatively, use the \longarg{debug} switch to show
the break points in the transcript. (This will also show the
collation rule.)
+If you want to selectively apply break points only to certain
+entries, use \csopt{break-at-match} or \csopt{break-at-not-match}.
+
\optsection{break-marker}
This option automatically implements the dual and secondary settings
@@ -15389,6 +16024,49 @@ inter-word punctuation. For example, with
\code{sealion}. If \meta{marker} is omitted,
\csopt[\empty]{break-marker} is assumed.
+\optsection{break-at-match}
+
+This option automatically implements
+\csopt[\meta{option}]{dual-break-at-match} and
+\csopt[\meta{option}]{secondary-break-at-match}.
+
+If you have \csopt{break-at} set to create break points (for
+example, with \csopt[word]{break-at}) then you can specify which
+entries should have break points with this option. The value has the same
+syntax as \csopt{match}. If an entry matches the criteria, then
+break points are added, otherwise no break points are added.
+For example, to only have break points for entries defined with \atentry{index}
+or \atentry{indexplural}:
+\begin{codeenv}
+\csopt[entrytype=index(plural)?]{break-at-match}
+\end{codeenv}
+This option has no effect with \csopt[none]{break-at}.
+
+\optsection{break-at-match-op}
+This option automatically implements
+\csopt[\meta{option}]{dual-break-at-match-op} and
+\csopt[\meta{option}]{secondary-break-at-match-op}.
+
+If the value of \csopt{break-at-match} contains more than one
+\meta{key}=\meta{pattern} element, the \csopt{break-at-match-op}
+determines whether to apply a logical AND or a logical OR.
+The \meta{value} may be either \optfmt{and} or \optfmt{or}.
+The default is \csopt[and]{break-at-match-op}.
+
+\optsection{break-at-not-match}
+
+This option automatically implements
+\csopt[\meta{option}]{dual-break-at-not-match} and
+\csopt[\meta{option}]{secondary-break-at-not-match}.
+
+ For example, to prevent entries defined with
+\atentry{symbol} from having break points:
+\begin{codeenv}
+\csopt[entrytype=symbol]{break-at-not-match}
+\end{codeenv}
+Like \csopt{break-at-match} but negates the match.
+This option has no effect with \csopt[none]{break-at}.
+
\optsection{sort-number-pad}
This option automatically implements the dual and secondary settings
@@ -16214,6 +16892,7 @@ fragmented, so care is needed if you use this option.
See also \sectionref{sec:logicaldivisions}.
\end{important}
+
\section{Secondary Glossary}
\label{sec:secondaryopts}
@@ -16425,6 +17104,18 @@ As \csopt{break-at} but for \glsdisp{secondaryglossary}{secondary} entries.
As \csopt{break-marker} but for \glsdisp{secondaryglossary}{secondary} entries.
+\optsection[\subsubsection]{secondary-break-at-match}
+
+As \csopt{break-at-match} but for \glsdisp{secondaryglossary}{secondary} entries.
+
+\optsection[\subsubsection]{secondary-break-at-match-op}
+
+As \csopt{break-at-match-op} but for \glsdisp{secondaryglossary}{secondary} entries.
+
+\optsection[\subsubsection]{secondary-break-at-not-match}
+
+As \csopt{break-at-not-match} but for \glsdisp{secondaryglossary}{secondary} entries.
+
\optsection{secondary-sort-number-pad}
As \csopt{sort-number-pad} but for \glsdisp{secondaryglossary}{secondary} entries.
@@ -16632,6 +17323,8 @@ will override any value of \field{type} provided in the \ext{bib}
file (or created through a mapping). The \meta{value} is required and
should be one of:
\begin{itemize}
+\item \optfmt{false}: switches off this setting (default);
+
\item \optfmt{same as entry}: sets the \field{type} to the entry
type (\idx!{lowercase} and without
the initial \code{@}). For example, if the entry was defined with
@@ -16696,6 +17389,7 @@ will override any value of \field{category} provided in the \ext{bib}
file (or created through a mapping). The \meta{value} may be empty or
one of:
\begin{itemize}
+\item \optfmt{false}: switch off this setting (default);
\item \optfmt{same as entry}: sets the \field{category} to the entry
type (\idx{lowercase} and without
the initial \code{@}). For example, if the entry was defined with
@@ -16733,7 +17427,7 @@ set with \csopt{dual-type}). If the entry doesn't have the
As \csopt{counter} but for the \glspl{dualentry}. In this case
\meta{value} may be the name of the counter or
\optfmt{same as primary} which uses the counter for the
-\gls{primaryentry}.
+\gls{primaryentry} or \optfmt{false} to switch off this setting.
\optsection[\subsubsection]{dual-short-case-change}
@@ -16755,6 +17449,7 @@ an extra field called \meta{value} that is set to the mirror entry.
If \meta{value} is omitted \csopt[dual]{dual-field} is assumed. If
you use a different value, you will need to redefine
\gls{GlsXtrDualField} (either locally or globally).
+A value of \code{false} will switch off this setting (the default).
For example, if the \ext{bib} file contains:
\begin{codeenv}
@@ -16890,6 +17585,18 @@ As \csopt{break-at} but for \glspl{dualentry}.
As \csopt{break-marker} but for \glspl{dualentry}.
+\optsection[\subsubsection]{dual-break-at-match}
+
+As \csopt{break-at-match} but for \glspl{dualentry}.
+
+\optsection[\subsubsection]{dual-break-at-match-op}
+
+As \csopt{break-at-match-op} but for \glspl{dualentry}.
+
+\optsection[\subsubsection]{dual-break-at-not-match}
+
+As \csopt{break-at-not-match} but for \glspl{dualentry}.
+
\optsection[\subsubsection]{dual-sort-number-pad}
As \csopt{sort-number-pad} but for \glspl{dualentry}.
@@ -18412,16 +19119,12 @@ Or you can redefine it afterwards:
\formatdef{bibglslocprefix}
If the \csopt{loc-prefix} option is on, this command will be
-provided. If the glossary type has been provided by \csopt{type}
-(and \csopt{dual-type} if there are any \glspl{dualentry}) then the
-definition of \gls{bibglslocprefix} will be appended to the glossary
-preamble for the given type (or types if there are \glspl{dualentry}).
-For example, if the document has:
+provided. The location of the definition is determined by the
+\csopt{loc-prefix-def} option. For example, if the document has:
\begin{codeenv}
-\gls{GlsXtrLoadResources}\oarg{\csopt[main]{type},\csopt[p.,pp.]{loc-prefix},\csopt[entries]{src}}
+\gls{GlsXtrLoadResources}\oarg{\csopt[main]{type},\csopt[individual]{loc-prefix-def},\csopt[p.,pp.]{loc-prefix},\csopt[entries]{src}}
\end{codeenv}
-and there are no \glspl{dualentry}, then the following will be added to
-the \ext{glstex} file:
+then the following will be added to the \ext{glstex} file:
\begin{codeenv}
\cs{apptoglossarypreamble}\oarg{main}\marg{\comment{}
\cs{providecommand}\marg{\gls{bibglslocprefix}}[1]\marg{\comment{}
@@ -18432,7 +19135,8 @@ the \ext{glstex} file:
}\comment{}
}
\end{codeenv}
-However, if the \csopt{type} key is missing, then the following will
+However, if the \csopt{type} key is missing or if the option
+\csopt[local]{loc-prefix-def} is used, then the following will
be added instead:
\begin{codeenv}
\cs{appto}\cs{glossarypreamble}\marg{\comment{}
@@ -18444,6 +19148,8 @@ be added instead:
}\comment{}
}
\end{codeenv}
+If \csopt[global]{loc-prefix-def} is used then the definition is
+global (outside of the glossary preamble).
\cssection{bibglspagename}
@@ -18467,12 +19173,10 @@ using the value of \idx{tag.pages} from the \langxml. For example with \file{bib
\formatdef{bibglslocsuffix}
If the \csopt{loc-suffix} option is on, this command will be
-provided. If the glossary type has been provided by \csopt{type}
-(and \csopt{dual-type} if there are any \glspl{dualentry}) then the
-definition of \gls{bibglslocsuffix} will be appended to the glossary
-preamble for the given type (or types if there are \glspl{dualentry}).
+provided. The location of the definition depends on the
+\csopt{loc-suffix-def} option.
-This commands definition depends on the value provided by
+This command's definition depends on the value provided by
\csopt{loc-suffix}. For example, with
\csopt[\ics{at}{\idx{periodchar}}]{loc-suffix}
the command is defined as:
@@ -18492,16 +19196,6 @@ it includes the 0 case, which in this instance means that there were
no \glspl{location} but there was a cross-reference. This command isn't
added when the \gls{locationlist} is empty.
-\cssection{bibglsprimary}
-
-\formatdef{bibglsprimary}
-When the \csopt{save-principal-locations} option is used, the
-\glspl{principallocation} are stored in the \field{primarylocations} field
-encapsulated with this command. The first argument is the number of
-\glspl{location} in the list. The second argument is the list of \glspl{location}
-formatted in the usual way. The default definition is to ignore the
-first argument and simply do the second.
-
\cssection{bibglslocationgroup}
\formatdef{bibglslocationgroup}
@@ -18578,6 +19272,34 @@ or redefined after the resources are loaded:
\cs{glsrenewcommand}*\marg{\gls{bibglslocationgroupsep}}\marg{; }
\end{codeenv}
+\cssection{bibglsprimary}
+
+\formatdef{bibglsprimary}
+When the \csopt{save-principal-locations} option is used, the
+\glspl{principallocation} are stored in the \field{primarylocations} field
+encapsulated with this command, unless the locations are split into
+groups according to the location counter.
+
+The first argument is the number of \glspl{location} in the list.
+The second argument is the list of \glspl{location} formatted in the
+usual way. The default definition is to ignore the first argument
+and simply do the second.
+
+If the locations are split into groups, then \gls{bibglsprimarylocationgroup}
+is used for each group instead (separated with
+\gls{bibglsprimarylocationgroupsep}).
+
+\cssection{bibglsprimarylocationgroup}
+
+\formatdef{bibglsprimarylocationgroup}
+As \gls{bibglslocationgroup} but for primary group
+locations.
+
+\cssection{bibglsprimarylocationgroupsep}
+
+\formatdef{bibglsprimarylocationgroupsep}
+As \gls{bibglslocationgroupsep} but for primary group locations.
+
\cssection{bibglssupplemental}
\formatdef{bibglssupplemental}
@@ -18820,6 +19542,25 @@ done after the \idx{resourceset}:
\marg{Foreign Words}\comment{title}
\end{codeenv}
+\cssection{bibglshypergroup}
+
+\formatdef{bibglshypergroup}
+
+If the \iext{log} file indicates that \isty{hyperref} has been loaded
+and the \longarg{group} switch is used, then this command will be
+used to create the navigation information for glossary styles such
+as \glostyle{indexhypergroup}.
+
+\subsection{Top-Level Groups Only}
+\label{sec:toplevelgroups}
+\renewcommand{\cssectioncmd}{\subsubsection}
+
+The default \csopt{group-level} setting will only create groups for
+the \glspl{top-levelentry}. Any \glspl{sub-entry} are considered to
+be part of the \gls{top-levelentry}['s] group. If hierarchical
+groups are enabled, the commands defined in \sectionref{sec:hiergroups}
+are provided.
+
\cssection{bibglssetlettergrouptitle}
For each \idx{lettergroup} that's detected, \bibgls\ will write the line:
@@ -19252,15 +19993,318 @@ then adjust the definition of \gls{bibglsunicodegroup} until the
grouping is correct, and then change the definition of
\gls{bibglsunicodegrouptitle} so that the title is correct.
-\cssection{bibglshypergroup}
+\cssection{bibglssetmergedgrouptitle}
-\formatdef{bibglshypergroup}
+Used when groups are merged by \csopt{merge-small-groups}. This command
+sets the label and title.
+\formatdef{bibglssetmergedgrouptitle}
+(Note the inner group, as with the other similar
+\csfmt{bibglsset\ldots grouptitle} commands.)
-If the \iext{log} file indicates that \isty{hyperref} has been loaded
-and the \longarg{group} switch is used, then this command will be
-used to create the navigation information for glossary styles such
-as \glostyle{indexhypergroup}.
+\cssection{bibglsmergedgroup}
+
+\formatdef{bibglsmergedgroup}
+This expands to the label for merged groups.
+
+\cssection{bibglsmergedgrouptitle}
+
+\formatdef{bibglsmergedgrouptitle}
+This expands to the group title for merged groups.
+
+\cssection{bibglsmergedgroupfmt}
+
+\formatdef{bibglsmergedgroupfmt}
+Used by \gls{bibglsmergedgrouptitle} and
+\gls{bibglsmergedgrouphierfmt} to format merged group titles. The
+first argument \meta{n} is the total number of groups that have been
+merged, the second argument, \meta{g$_1$} is the first group title,
+\marg{\meta{g$_2$}\ldots\meta{g$_n$}} are the middle group titles
+(empty if $\meta{n}=2$), and \meta{g$_n$} is the last group title.
+
+The default definition is:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglsmergedgroupfmt}}[4]\marg{\idx{param}2,
+\cs{ifcase}\idx{param}1\cmd{or}\cmd{or}\cmd{or} \idx{param}3,
+\cmd{else}\ldots, \cmd{fi} \idx{param}4}
+\end{codeenv}
+
+
+\subsection{Hierarchical Groups}
+\label{sec:hiergroups}
+
+Hierarchical letter groups are set with analogous commands that have
+\code{hier} appended to the command name. There are also two extra
+arguments, \meta{parent} (the \gls{parententry}['s] label) and
+\meta{level} (the hierarchical level).
+
+\cssection{bibglsgrouplevel}
+
+\formatdef{bibglsgrouplevel}
+This command is used when \csopt{group-level} is used to apply group
+formations for different hierarchical levels. The \meta{label}
+argument is the label that would normally be applied to level~0.
+The \meta{n} argument is the hierarchical level (0 for
+\glspl{top-levelentry}). By default, this command simply expands to
+\meta{label}.
+
+\cssection{bibglshiersubgrouptitle}
+
+Hierarchical group titles are formatted using:
+\formatdef{bibglshiersubgrouptitle}
+This is defined as:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglshiersubgrouptitle}}[3]\marg{\cs{ifnum}\idx{param}1>0 \cs{Glsxtrhiername}\marg{\idx{param}2} / \cmd{fi} \idx{param}3}
+\end{codeenv}
+The first argument \meta{level} is the hierarchical level, the
+second argument is the \gls{parententry} label (empty for
+$\meta{level}=0$), and the third argument \meta{title} is the
+normal title that would apply to the group with the default
+\csopt[0]{group-level} setting. Note that this uses
+\cs{Glsxtrhiername}\margm{parent} if $\meta{level}>0$.
+If this isn't required then redefine \gls{bibglshiersubgrouptitle}
+to simply expand to \meta{title} (\code{\idx{param}3}).
+
+\cssection{bibglssetlettergrouptitlehier}
+\formatdef{bibglssetlettergrouptitlehier}
+As \gls{bibglssetlettergrouptitle} but used for hierarchical groups.
+
+\cssection{bibglslettergrouphier}
+\formatdef{bibglslettergrouphier}
+As \gls{bibglslettergroup} but used for hierarchical groups. It
+expands to the hierarchical letter group label.
+This is defined as:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglslettergrouphier}}[6]\marg{\idx{param}4\idx{param}5\idx{param}3}
+\end{codeenv}
+
+\cssection{bibglslettergrouptitlehier}
+\formatdef{bibglslettergrouptitlehier}
+As \gls{bibglslettergrouptitle} but used for hierarchical groups. It
+expands to the hierarchical letter group title. This is defined as:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglslettergrouptitlehier}}[6]\marg{\cs{protect}\gls{bibglshiersubgrouptitle}\marg{\idx{param}6}\marg{\idx{param}5}\marg{\cs{unexpanded}\marg{\idx{param}1}}}
+\end{codeenv}
+
+\cssection{bibglssetothergrouptitlehier}
+\formatdef{bibglssetothergrouptitlehier}
+As \gls{bibglssetothergrouptitle} but used for hierarchical groups.
+\cssection{bibglsothergrouphier}
+\formatdef{bibglsothergrouphier}
+As \gls{bibglsothergroup} but used for hierarchical groups. It
+expands to the hierarchical other group label.
+This is defined as:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglsothergrouphier}}[5]\marg{\idx{param}3\idx{param}4glssymbols}
+\end{codeenv}
+
+\cssection{bibglsothergrouptitlehier}
+\formatdef{bibglsothergrouptitlehier}
+As \gls{bibglsothergrouptitle} but used for hierarchical groups. It
+expands to the hierarchical other group title. This is defined as:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglsothergrouptitlehier}}[5]\marg{\cs{protect}\gls{bibglshiersubgrouptitle}\marg{\idx{param}5}\marg{\idx{param}4}\marg{\cs{protect}\cs{glssymbolsgroupname}}}
+\end{codeenv}
+
+\cssection{bibglssetemptygrouptitlehier}
+\formatdef{bibglssetemptygrouptitlehier}
+As \gls{bibglssetemptygrouptitle} but used for hierarchical groups.
+
+\cssection{bibglsemptygrouphier}
+\formatdef{bibglsemptygrouphier}
+As \gls{bibglsemptygroup} but used for hierarchical groups. It
+expands to the hierarchical empty group label.
+This is defined as:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglsemptygrouphier}}[3]\marg{\idx{param}1\idx{param}2glssymbols}
+\end{codeenv}
+
+\cssection{bibglsemptygrouptitlehier}
+\formatdef{bibglsemptygrouptitlehier}
+As \gls{bibglsemptygrouptitle} but used for hierarchical groups. It
+expands to the hierarchical empty group title. This is defined as:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglsemptygrouptitlehier}}[3]\marg{\cs{protect}\gls{bibglshiersubgrouptitle}\marg{\idx{param}3}\marg{\idx{param}2}\marg{\cs{protect}\cs{glssymbolsgroupname}}}
+\end{codeenv}
+
+\cssection{bibglssetnumbergrouptitlehier}
+\formatdef{bibglssetnumbergrouptitlehier}
+As \gls{bibglssetnumbergrouptitle} but used for hierarchical groups.
+
+\cssection{bibglsnumbergrouphier}
+\formatdef{bibglsnumbergrouphier}
+As \gls{bibglsnumbergroup} but used for hierarchical groups. It
+expands to the hierarchical number group label.
+This is defined as:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglsnumbergrouphier}}[5]\marg{\idx{param}3\idx{param}4glsnumbers}
+\end{codeenv}
+
+\cssection{bibglsnumbergrouptitlehier}
+\formatdef{bibglsnumbergrouptitlehier}
+As \gls{bibglsnumbergrouptitle} but used for hierarchical groups. It
+expands to the hierarchical number group title. This is defined as:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglsnumbergrouptitlehier}}[5]\marg{\cs{protect}\gls{bibglshiersubgrouptitle}\marg{\idx{param}5}\marg{\idx{param}4}\marg{\cs{protect}\cs{glsnumbersgroupname}}}
+\end{codeenv}
+
+\cssection{bibglssetdatetimegrouptitlehier}
+\formatdef{bibglssetdatetimegrouptitlehier}
+As \gls{bibglssetdatetimegrouptitle} but used for hierarchical groups.
+
+\cssection{bibglsdatetimegrouphier}
+\formatdef{bibglsdatetimegrouphier}
+As \gls{bibglsdatetimegroup} but used for hierarchical groups. It
+expands to the hierarchical \idx{datetimegroup} label.
+Since this has more than 9 arguments, it is defined in two parts:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglsdatetimegrouphier}}[9]\marg{\idx{param}1\idx{param}2\idx{param}3\gls{bibglsdatetimegrouphierfinalargs}}
+\end{codeenv}
+The final arguments are obtained with \gls{bibglsdatetimegrouphierfinalargs}.
+
+\cssection{bibglsdatetimegrouphierfinalargs}
+\formatdef{bibglsdatetimegrouphierfinalargs}
+This picks up the final three arguments for \gls{bibglsdatetimegrouphier}:
+\begin{codeenv}
+\cs{providecommand}*\marg{\gls{bibglsdatetimegrouphierfinalargs}}[3]\marg{\idx{param}1\idx{param}2}
+\end{codeenv}
+
+\cssection{bibglsdatetimegrouptitlehier}
+\formatdef{bibglsdatetimegrouptitlehier}
+As \gls{bibglsdatetimegrouptitle} but used for hierarchical groups. It
+expands to the hierarchical \idx{datetimegroup} title.
+Since this has more than 9 arguments, it is defined in two parts:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglsdatetimegrouptitlehier}}[9]\marg{\gls{bibglsdatetimegrouptitlehierfinalargs}\marg{\idx{param}1-\idx{param}2-\idx{param}3}}
+\end{codeenv}
+The final arguments are obtained with \gls{bibglsdatetimegrouptitlehierfinalargs}.
+
+\cssection{bibglsdatetimegrouptitlehierfinalargs}
+\formatdef{bibglsdatetimegrouptitlehierfinalargs}
+This picks up the final three arguments for \gls{bibglsdatetimegrouptitlehier}:
+\begin{codeenv}
+\cs{providecommand}*\marg{\gls{bibglsdatetimegrouptitlehierfinalargs}}[4]\marg{\cs{protect}\gls{bibglshiersubgrouptitle}\marg{\idx{param}4}\marg{\idx{param}3}\marg{\idx{param}1}}
+\end{codeenv}
+In this case, the first argument is set by
+\gls{bibglsdatetimegrouptitlehier} to the date
+(\code{\meta{YYYY}-\meta{MM}-\meta{DD}}). The remaining arguments
+are the \meta{type}, \meta{parent} and \meta{level} information.
+
+\cssection{bibglssetdategrouptitlehier}
+\formatdef{bibglssetdategrouptitlehier}
+As \gls{bibglssetdategrouptitle} but used for hierarchical groups.
+
+\cssection{bibglsdategrouphier}
+\formatdef{bibglsdategrouphier}
+As \gls{bibglsdategroup} but used for hierarchical groups. It
+expands to the hierarchical date group label.
+This is defined as:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglsdategrouphier}}[9]\marg{\idx{param}1\idx{param}2\idx{param}4\idx{param}7\idx{param}8}
+\end{codeenv}
+
+\cssection{bibglsdategrouptitlehier}
+\formatdef{bibglsdategrouptitlehier}
+As \gls{bibglsdategrouptitle} but used for hierarchical groups. It
+expands to the hierarchical date group title. This is defined as:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglsdategrouptitlehier}}[9]\marg{\cs{protect}\gls{bibglshiersubgrouptitle}\marg{\idx{param}9}\marg{\idx{param}8}\marg{\idx{param}1-\idx{param}2}}
+\end{codeenv}
+
+\cssection{bibglssettimegrouptitlehier}
+\formatdef{bibglssettimegrouptitlehier}
+As \gls{bibglssettimegrouptitle} but used for hierarchical groups.
+
+\cssection{bibglstimegrouphier}
+\formatdef{bibglstimegrouphier}
+As \gls{bibglstimegroup} but used for hierarchical groups. It
+expands to the hierarchical time group label. This is defined as:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglstimegrouphier}}[9]\marg{\idx{param}1\idx{param}2\idx{param}7\idx{param}8}
+\end{codeenv}
+
+\cssection{bibglstimegrouptitlehier}
+\formatdef{bibglstimegrouptitlehier}
+As \gls{bibglstimegrouptitle} but used for hierarchical groups. It
+expands to the hierarchical time group title. This is defined as:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglstimegrouptitlehier}}[9]\marg{\cs{protect}\gls{bibglshiersubgrouptitle}\marg{\idx{param}9}\marg{\idx{param}8}{\idx{param}1}}
+\end{codeenv}
+
+\cssection{bibglssetunicodegrouptitlehier}
+\formatdef{bibglssetunicodegrouptitlehier}
+As \gls{bibglssetunicodegrouptitle} but used for hierarchical groups.
+
+\cssection{bibglsunicodegrouphier}
+\formatdef{bibglsunicodegrouphier}
+As \gls{bibglsunicodegroup} but used for hierarchical groups. This
+expands to the hierarchical group label:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglsunicodegrouphier}}[6]\marg{\idx{param}4\idx{param}5\idx{param}3}
+\end{codeenv}
+
+\cssection{bibglsunicodegrouptitlehier}
+\formatdef{bibglsunicodegrouptitlehier}
+As \gls{bibglsunicodegrouptitle} but used for hierarchical groups. This
+expands to the hierarchical group title:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglsunicodegrouptitlehier}}[6]\marg{\cs{protect}\gls{bibglshiersubgrouptitle}\marg{\idx{param}6}\marg{\idx{param}5}\marg{\cs{unexpanded}\marg{\idx{param}1}}}
+\end{codeenv}
+
+\cssection{bibglssetmergedgrouptitlehier}
+\formatdef{bibglssetmergedgrouptitlehier}
+As \gls{bibglssetmergedgrouptitle} but used for hierarchical groups.
+
+\cssection{bibglsmergedgrouphier}
+\formatdef{bibglsmergedgrouphier}
+As \gls{bibglsmergedgroup} but used for hierarchical groups. This
+expands to the hierarchical group label:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglsmergedgrouphier}}[8]\marg{merged.\idx{param}1}
+\end{codeenv}
+
+\cssection{bibglsmergedgrouptitlehier}
+\formatdef{bibglsmergedgrouptitlehier}
+As \gls{bibglsmergedgrouptitle} but used for hierarchical groups. This
+expands to the hierarchical group title:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglsmergedgrouptitlehier}}[8]\marg{\comment{}
+ \cs{unexpanded}\marg{\cs{ifnum}\idx{param}8=0\gls{bibglsmergedgroupfmt}\marg{\idx{param}3}\marg{\idx{param}4}\marg{\idx{param}5}\marg{\idx{param}6}\cmd{else}\gls{bibglsmergedgrouphierfmt}\marg{\idx{param}3}\marg{\idx{param}4}\marg{\idx{param}5}\marg{\idx{param}6}\cmd{fi}}\comment{}
+}
+\end{codeenv}
+This uses \gls{bibglsmergedgroupfmt} ($\meta{level}=0$) or
+\gls{bibglsmergedgrouphierfmt} ($\meta{level}>0$) to format the title.
+
+\cssection{bibglsmergedgrouphierfmt}
+
+\formatdef{bibglsmergedgrouphierfmt}
+Used by \gls{bibglsmergedgrouphierfmt} to format merged hierarchical group titles.
+The first argument \meta{n} is the total number of groups that have been
+merged, the second argument, \meta{g$_1$} is the first group title,
+\marg{\meta{g$_2$}\ldots\meta{g$_n$}} are the middle group titles
+(empty if $\meta{n}=2$), and \meta{g$_n$} is the last group title.
+
+The default definition depends on whether or not \bibgls\ has
+detected \sty{hyperref} in the document's \ext{log} file. If it has,
+then the definition is:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglsmergedgrouphierfmt}}[4]\marg{\idx{param}2,
+\ics{texorpdfstring}\marg{\marg{\cs{def}\gls{bibglshiersubgrouptitle}\idx{param}\idx{param}1\idx{param}\idx{param}2\idx{param}\idx{param}3{\idx{param}\idx{param}3}\cs{ifcase}\idx{param}1\cmd{or}\cmd{or}\cmd{or}
+\idx{param}3, \cmd{else}\cmd{ldots}, \cmd{fi}
+\idx{param}4}}\marg{\cs{ifcase}\idx{param}1\cmd{or}\cmd{or}\cmd{or}
+\idx{param}3, \cmd{else}\cmd{ldots}, \cmd{fi} \idx{param}4}}
+\end{codeenv}
+Otherwise the definition is:
+\begin{codeenv}
+\cs{providecommand}\marg{\gls{bibglsmergedgrouphierfmt}}[4]\marg{\idx{param}2,
+\marg{\cs{def}\gls{bibglshiersubgrouptitle}\idx{param}\idx{param}1\idx{param}\idx{param}2\idx{param}\idx{param}3{\idx{param}\idx{param}3}\cs{ifcase}\idx{param}1\cmd{or}\cmd{or}\cmd{or}
+\idx{param}3, \cmd{else}\cmd{ldots}, \cmd{fi}
+\idx{param}4}}
+\end{codeenv}
+This locally redefines \gls{bibglshiersubgrouptitle} to just do its
+final argument to allow for a more compact title.
+
+\renewcommand{\cssectioncmd}{\subsection}
\section{Flattened Entries}
\label{sec:flattendefs}
@@ -19369,6 +20413,44 @@ field using:
\section{Other}
+\cssection{bibglssettotalrecordcount}
+
+\formatdef{bibglssettotalrecordcount}
+This command is provided if \longarg{record-count} is used. It's
+used to set the \field{recordcount} field to the total number of
+records for the given entry. This is defined as:
+\begin{codeenv}
+\cmd{providecommand}*\marg{\gls{bibglssettotalrecordcount}}[2]\marg{\comment{}
+ \cs{GlsXtrSetField}\marg{\idx{param}1}\marg{\field{recordcount}}\marg{\idx{param}2}\comment{}
+}
+\end{codeenv}
+
+\cssection{bibglssetrecordcount}
+
+\formatdef{bibglssetrecordcount}
+This command is provided if \longarg{record-count} is used. It's
+used to set the \field{recordcount.counter} field to the total number of
+records associated with the given counter for the given entry. This
+is defined as:
+\begin{codeenv}
+\cmd{providecommand}*\marg{\gls{bibglssetrecordcount}}[3]\marg{\comment{}
+ \cs{GlsXtrSetField}\marg{\idx{param}1}\marg{recordcount.\idx{param}2}\marg{\idx{param}3}\comment{}
+}
+\end{codeenv}
+
+\cssection{bibglssetlocationrecordcount}
+
+\formatdef{bibglssetlocationrecordcount}
+This command is provided if \longarg{record-count-unit} is used.
+It's used to set the \field{recordcount.counter.location} field to
+the total number of records associated with the given location for
+the given entry. This is defined as:
+\begin{codeenv}
+\cmd{providecommand}*\marg{\gls{bibglssetlocationrecordcount}}[4]\marg{\comment{}
+ \cs{GlsXtrSetField}\marg{\idx{param}1}\marg{recordcount.\idx{param}2.\ics{glsxtrdetoklocation}\idx{param}3}\marg{\idx{param}4}\comment{}
+}
+\end{codeenv}
+
\cssection{bibglshyperlink}
\formatdef{bibglshyperlink}
@@ -19610,6 +20692,18 @@ Expands to a literal ampersand character (\,\idx{ampchar}\,).
\formatdef{bibglscircumchar}
Expands to a literal circumflex character (\,\idx{circumchar}\,).
+\cssection{bibglsaposchar}
+
+\formatdef{bibglsaposchar}
+Expands to a literal apostrophe character (\,\idx{aposchar}\,).
+This command is only provided if \longarg{replace-quotes} is used.
+
+\cssection{bibglsdoublequotechar}
+
+\formatdef{bibglsdoublequotechar}
+Expands to a literal double-quote character (\,\idx{doublequotechar}\,).
+This command is only provided if \longarg{replace-quotes} is used.
+
\cssection{bibglsuppercase}
\formatdef{bibglsuppercase}
diff --git a/Master/texmf-dist/source/support/bib2gls/src/gls2bib-src.zip b/Master/texmf-dist/source/support/bib2gls/src/gls2bib-src.zip
index 401624ef2e3..a1921797d92 100644
--- a/Master/texmf-dist/source/support/bib2gls/src/gls2bib-src.zip
+++ b/Master/texmf-dist/source/support/bib2gls/src/gls2bib-src.zip
Binary files differ
diff --git a/Master/texmf-dist/source/support/bib2gls/src/texparser-src.zip b/Master/texmf-dist/source/support/bib2gls/src/texparser-src.zip
index 33f10f701c3..b2d2349cfeb 100644
--- a/Master/texmf-dist/source/support/bib2gls/src/texparser-src.zip
+++ b/Master/texmf-dist/source/support/bib2gls/src/texparser-src.zip
Binary files differ
diff --git a/Master/tlpkg/tlpsrc/bib2gls.tlpsrc b/Master/tlpkg/tlpsrc/bib2gls.tlpsrc
index 9dd2942673b..7007f2cf120 100644
--- a/Master/tlpkg/tlpsrc/bib2gls.tlpsrc
+++ b/Master/tlpkg/tlpsrc/bib2gls.tlpsrc
@@ -1,3 +1,5 @@
+depend glossaries-extra
+#
binpattern f bin/${ARCH}/${PKGNAME}
binpattern f bin/${ARCH}/convertgls2bib
docpattern +f texmf-dist/doc/man/man1/convertgls2bib.*