From 5d714d9476cbb90b125ff14a9d764ad90bb7c2ed Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Fri, 24 Sep 2021 03:01:47 +0000 Subject: CTAN sync 202109240301 --- macros/latex/contrib/glossaries-extra/CHANGES | 67 + macros/latex/contrib/glossaries-extra/README | 4 +- .../glossaries-extra/glossaries-extra-code.pdf | Bin 1374458 -> 1387050 bytes .../glossaries-extra/glossaries-extra-manual.html | 18956 ++++++++++--------- .../glossaries-extra/glossaries-extra-manual.pdf | Bin 801550 -> 818478 bytes .../glossaries-extra/glossaries-extra-manual.tex | 179 +- .../contrib/glossaries-extra/glossaries-extra.dtx | 906 +- .../contrib/glossaries-extra/glossaries-extra.ins | 8 +- .../samples/sample-abbr-styles.pdf | Bin 537732 -> 556798 bytes .../glossaries-extra/samples/sample-abbrv.pdf | Bin 44753 -> 47272 bytes .../glossaries-extra/samples/sample-accsupp.pdf | Bin 82844 -> 83788 bytes .../samples/sample-acronym-desc.pdf | Bin 50363 -> 53686 bytes .../glossaries-extra/samples/sample-acronym.pdf | Bin 36739 -> 39250 bytes .../glossaries-extra/samples/sample-alias.pdf | Bin 43869 -> 46970 bytes .../samples/sample-altmodifier.pdf | Bin 35301 -> 37816 bytes .../samples/sample-alttree-marginpar.pdf | Bin 90995 -> 94539 bytes .../samples/sample-alttree-sym.pdf | Bin 69534 -> 74492 bytes .../glossaries-extra/samples/sample-alttree.pdf | Bin 54920 -> 58146 bytes .../samples/sample-autoindex-hyp.pdf | Bin 141398 -> 147083 bytes .../glossaries-extra/samples/sample-autoindex.pdf | Bin 160937 -> 171657 bytes .../glossaries-extra/samples/sample-crossref.pdf | Bin 41287 -> 44640 bytes .../glossaries-extra/samples/sample-crossref2.pdf | Bin 41613 -> 44943 bytes .../glossaries-extra/samples/sample-docdef.pdf | Bin 45256 -> 48587 bytes .../glossaries-extra/samples/sample-entrycount.pdf | Bin 54617 -> 58670 bytes .../glossaries-extra/samples/sample-external.pdf | Bin 34181 -> 36694 bytes .../glossaries-extra/samples/sample-fmt.pdf | Bin 75259 -> 89113 bytes .../glossaries-extra/samples/sample-footnote.pdf | Bin 63227 -> 68245 bytes .../glossaries-extra/samples/sample-header.pdf | Bin 125913 -> 135383 bytes .../glossaries-extra/samples/sample-indexhook.pdf | Bin 42721 -> 46049 bytes .../samples/sample-initialisms.pdf | Bin 81588 -> 87251 bytes .../glossaries-extra/samples/sample-linkcount.pdf | Bin 38230 -> 40776 bytes .../samples/sample-mixed-abbrv-styles.pdf | Bin 57823 -> 62798 bytes .../glossaries-extra/samples/sample-mixedsort.pdf | Bin 45155 -> 48427 bytes .../glossaries-extra/samples/sample-mixture.pdf | Bin 159361 -> 169231 bytes .../glossaries-extra/samples/sample-name-font.pdf | Bin 224741 -> 214732 bytes .../glossaries-extra/samples/sample-nested.pdf | Bin 67732 -> 72406 bytes .../samples/sample-noidx-restricteddocdefs.pdf | Bin 47583 -> 50840 bytes .../glossaries-extra/samples/sample-onelink.pdf | Bin 44513 -> 25876 bytes .../samples/sample-onthefly-utf8.pdf | Bin 106065 -> 111705 bytes .../samples/sample-onthefly-xetex.pdf | Bin 19644 -> 19673 bytes .../glossaries-extra/samples/sample-onthefly.pdf | Bin 43482 -> 46377 bytes .../glossaries-extra/samples/sample-pages.pdf | Bin 38802 -> 41301 bytes .../glossaries-extra/samples/sample-postdot.pdf | Bin 37059 -> 39567 bytes .../glossaries-extra/samples/sample-postlink.pdf | Bin 67884 -> 73859 bytes .../glossaries-extra/samples/sample-prefix.pdf | Bin 33119 -> 35615 bytes .../samples/sample-record-nameref.pdf | Bin 71307 -> 76228 bytes .../glossaries-extra/samples/sample-record.pdf | Bin 50225 -> 53526 bytes .../samples/sample-restricteddocdefs.pdf | Bin 47895 -> 51149 bytes .../glossaries-extra/samples/sample-suppl-hyp.pdf | Bin 34937 -> 37492 bytes .../samples/sample-suppl-main-hyp.pdf | Bin 46396 -> 49676 bytes .../glossaries-extra/samples/sample-suppl-main.pdf | Bin 31607 -> 34110 bytes .../glossaries-extra/samples/sample-suppl.pdf | Bin 13423 -> 14259 bytes .../glossaries-extra/samples/sample-trans.pdf | Bin 49449 -> 53230 bytes .../glossaries-extra/samples/sample-undef.pdf | Bin 33226 -> 35740 bytes .../samples/sample-unitentrycount.pdf | Bin 61049 -> 64568 bytes .../contrib/glossaries-extra/samples/sample.pdf | Bin 45741 -> 48278 bytes 56 files changed, 10940 insertions(+), 9180 deletions(-) (limited to 'macros/latex/contrib/glossaries-extra') diff --git a/macros/latex/contrib/glossaries-extra/CHANGES b/macros/latex/contrib/glossaries-extra/CHANGES index ea884160d6..ca2536846a 100644 --- a/macros/latex/contrib/glossaries-extra/CHANGES +++ b/macros/latex/contrib/glossaries-extra/CHANGES @@ -1,3 +1,70 @@ +1.46 (2021-09-20): + + * Test bib files added to provide bib2gls support for the + corresponding test files added to glossaries v4.47: + + example-glossaries-childmultipar.bib + example-glossaries-longchild.bib + + * glossaries-extra.sty: + + - Package option record=alsoindex is has been changed to record=hybrid + (alsoindex is now a deprecated synonym). + + This name change is to avoid ambiguity. The "alsoindex" refers to not + only adding records to the aux file (for bib2gls) but also indexing + using the more conventional makeindex/xindy route. This hybrid approach + is provided for the rare instances where an existing xindy + rule or module is too complicated to convert to a bib2gls rule but the + entries need to be fetched from a bib file. There's + no benefit in using this option with makeindex. + + - Altered the warning text if \printglossary (or + \printglossaries) is omitted with record=hybrid (since the + default text with \makeglossaries provided by glossaries.sty + assumes no bib2gls). + + - Bug fix #175: https://www.dickimaw-books.com/bugtracker.php?key=175 + (Spurious space with hyperoutside being false in math mode) + + This is actually a bug in \@glsxtrsetaliasnoindex which + introduced unwanted scoping in v1.21 when \ifglshasfield (which + doesn't add grouping) was replaced with the unstarred version of + \glsxtrifhasfield (which does). This was causing + \glsxtrsetaliasnoindex to be scoped so it no longer had any + effect but it also introduced {} which only makes a noticeable + visual difference under very specific circumstances, such as + the one in the bug report. + + - replaced some instances of \edef with \protected@edef when + defining control sequences that store labels or lists of + labels. Similarly for \xdef and \eappto. (Aiming towards support + for UTF-8 characters in labels with PDFLaTeX, but may not be fully + implemented so not yet documented.) + + Note that letter group formations using TeX + (\printnoidxglossary or \printunsrtglossary without bib2gls) still + don't work if the sort value starts with a UTF-8 character with + PDFLaTeX. (This is also a limitation of makeindex regardless of + the TeX engine.) + + * glossaries-extra-stylemods.sty: + + - Bug fix #181: https://www.dickimaw-books.com/bugtracker.php?key=181 + (stylemods alttree introduces a space at the start of descriptions) + + New commands have now been added to replace the use of + \glstreepredesc and \glstreechildpredesc (which were causing + the problem): \glsalttreepredesc and \glsalttreechildpredesc + + * glossary-topic.sty: + + - Bug fix #176: https://www.dickimaw-books.com/bugtracker.php?key=176 + (Last displayed topic subitem has invalid indentation) + + - Bug fix #182: https://www.dickimaw-books.com/bugtracker.php?key=182 + (topic style doesn't retain hangindent for multi-paragraph descriptions) + 1.45 (2020-04-01): * glossaries-extra-stylemods.sty: diff --git a/macros/latex/contrib/glossaries-extra/README b/macros/latex/contrib/glossaries-extra/README index 8c1893e335..f61f7ca805 100644 --- a/macros/latex/contrib/glossaries-extra/README +++ b/macros/latex/contrib/glossaries-extra/README @@ -1,4 +1,4 @@ -LaTeX Package : glossaries-extra v1.45 (2020-04-01) +LaTeX Package : glossaries-extra v1.46 (2021-09-20) Author : Nicola Talbot https://www.dickimaw-books.com/contact @@ -9,7 +9,7 @@ This material is subject to the LaTeX Project Public License. See http://www.ctan.org/license/lppl1.3 for the details of that license. -Copyright 2015-2020 Nicola Talbot +Copyright 2015-2021 Nicola Talbot DESCRIPTION diff --git a/macros/latex/contrib/glossaries-extra/glossaries-extra-code.pdf b/macros/latex/contrib/glossaries-extra/glossaries-extra-code.pdf index a7bac16a1d..350f8ec1b9 100644 Binary files a/macros/latex/contrib/glossaries-extra/glossaries-extra-code.pdf and b/macros/latex/contrib/glossaries-extra/glossaries-extra-code.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.html b/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.html index a01186aa3d..8f52130edf 100644 --- a/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.html +++ b/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.html @@ -6,8 +6,8 @@ > - - + + @@ -34,6 +34,10 @@ .cmtt-10{font-family: monospace,monospace;} .cmtt-10{font-family: monospace,monospace;} .cmtt-10{font-family: monospace,monospace;} +.cmssbx-10{ font-family: sans-serif; font-weight: bold;} +.cmssbx-10{ font-family: sans-serif; font-weight: bold;} +.cmssbx-10{ font-family: sans-serif; font-weight: bold;} +.cmssbx-10{ font-family: sans-serif; font-weight: bold;} .cmr-9{font-size:90%;} .cmss-8{font-size:80%; font-family: sans-serif;} .cmss-8{ font-family: sans-serif;} @@ -45,10 +49,6 @@ .cmtt-9{font-family: monospace,monospace;} .cmtt-9{font-family: monospace,monospace;} .cmti-10{ font-style: italic;} -.cmssbx-10{ font-family: sans-serif; font-weight: bold;} -.cmssbx-10{ font-family: sans-serif; font-weight: bold;} -.cmssbx-10{ font-family: sans-serif; font-weight: bold;} -.cmssbx-10{ font-family: sans-serif; font-weight: bold;} .cmitt-10{font-family: monospace,monospace; font-style: italic;} .cmmi-9{font-size:90%;font-style: italic;} .cmssi-10{ font-family: sans-serif; font-style: oblique;} @@ -66,15 +66,19 @@ p.indent{text-indent:0;} p + p{margin-top:1em;} p + div, p + pre {margin-top:1em;} div + p, pre + p {margin-top:1em;} +a { overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; hyphens: auto; } @media print {div.crosslinks {visibility:hidden;}} a img { border-top: 0; border-left: 0; border-right: 0; } center { margin-top:1em; margin-bottom:1em; } td center { margin-top:0em; margin-bottom:0em; } .Canvas { position:relative; } img.math{vertical-align:middle;} +div.par-math-display, div.math-display{text-align:center;} li p.indent { text-indent: 0em } li p:first-child{ margin-top:0em; } +li p:first-child{ margin-bottom; } li p:last-child, li div:last-child { margin-bottom:0.5em; } +li p:first-child{ margin-bottom:0; } li p~ul:last-child, li p~ol:last-child{ margin-bottom:0.5em; } .enumerate1 {list-style-type:decimal;} .enumerate2 {list-style-type:lower-alpha;} @@ -88,7 +92,7 @@ div.obeylines-v p { margin-top:0; margin-bottom:0; } td.displaylines {text-align:center; white-space:nowrap;} .centerline {text-align:center;} .rightline {text-align:right;} -div.verbatim {font-family: monospace,monospace; white-space: nowrap; text-align:left; clear:both; } +pre.verbatim {font-family: monospace,monospace; text-align:left; clear:both; } .fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } div.fbox {display:table} div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } @@ -159,19 +163,18 @@ p.bibitem { text-indent: -2em; margin-left: 2em; margin-top:0.6em; margin-bottom p.bibitem-p { text-indent: 0em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } .paragraphHead, .likeparagraphHead { margin-top:2em; font-weight: bold;} .subparagraphHead, .likesubparagraphHead { font-weight: bold;} -.quote {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; margin-right:1em; text-align:justify;} .verse{white-space:nowrap; margin-left:2em} div.maketitle {text-align:center;} h2.titleHead{text-align:center;} div.maketitle{ margin-bottom: 2em; } div.author, div.date {text-align:center;} div.thanks{text-align:left; margin-left:10%; font-size:85%; font-style:italic; } -.quotation {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; } h1.partHead{text-align: center} -.abstract p {margin-left:5%; margin-right:5%;} +div.abstract p {margin-left:5%; margin-right:5%;} div.abstract {width:100%;} +.abstracttitle{text-align:center;margin-bottom:1em;} .alltt P { margin-bottom : 0em; margin-top : 0em; } -.alltt { margin-bottom : 1em; margin-top : 1em; } +.alltt { margin-bottom : 1em; margin-top : 1em; font-family:monospace,monospace; } .equation td{text-align:center; } .equation-star td{text-align:center; } table.equation-star { width:100%; } @@ -219,12 +222,12 @@ a span.HoLogo-TeX span.HoLogo-e{text-decoration:none;} >

glossaries-extra.sty v1.45: an extension to the +class="cmr-17">glossaries-extra.sty v1.46: an extension to the glossaries package

http://www.dickimaw-books.com/

2020-04-01

+class="cmr-12">2021-09-20

@@ -252,11 +255,10 @@ class="abstract"

-
-

-

Abstract

+

+Abstract +

The glossaries-extra package is an extension to the glossaries package, providing @@ -278,12 +280,20 @@ class="cmtt-10">.bib files for use with id="dx1-2">bib2gls. +

The glossaries-extra package uses a different set of defaults to the base +glossaries package. See the Introduction for more details. +

-

Since

Since glossaries-extra internally loads the glossaries package, you also need to have How do I update my TeX distribution? or Updating TeX on Linux.)
-

-

Additional resources:

+

+

Additional resources:

+class="cmss-10">glossaries
package.

@@ -479,15 +495,15 @@ href="#glossary">Glossary -

1.

1. Introduction

-

The

The glossaries package is a flexible package, but it’s also a heavy-weight package that uses a lot of resources. As package developer, I’m caught between those users who complain about the drawbacks of a heavy-weight package with a large user manual and those users who want more features (which necessarily adds to the package weight and manual size). -

The

The glossaries-extra package is an attempt to provide a compromise for this conflict. Version 4.22 of the glossaries package is the last version to incorporate new @@ -503,10 +519,10 @@ of package loading time and allocation of resources, but those users who do want extra features available will have more of a chance of getting their feature requests accepted.

-

Top

1.1 Package Defaults

-

I’m not happy with some of the default settings assumed by the

I’m not happy with some of the default settings assumed by the glossaries package, and, judging from code I’ve seen, other users also seem unhappy with them, as certain package options are often used in questions posted on various sites. I can’t @@ -516,9 +532,10 @@ but since glossaries-extra is a separate package, I have decided to implement some of these commonly-used options by default. You can switch them back if they’re not appropriate. -

The new defaults are:

+

The new defaults are:

- - - -

The examples below illustrate the difference in explicit package options between +

The examples below illustrate the difference in explicit package options between glossaries and glossaries-extra. There may be other differences resulting from modifications to commands provided by glossaries (see §2 Modifications to Existing -Commands and Styles). -

+class="tcrm-1000">§??sec:modifications +Modifications to Existing Commands and Styles). +

    -
  1. +
  2. +

    Basic defaults: -

    +

    +
          \documentclass{article}
    -      
    \usepackage{glossaries-extra} -
    -

    This is like: + \usepackage{glossaries-extra} + +

    This is like:

    -
    +
          \documentclass{article}
    -      
    \usepackage[toc,nopostdot]{glossaries} -  
    \usepackage{glossaries-extra} -
    -

    + \usepackage[toc,nopostdot]{glossaries} + \usepackage{glossaries-extra} + +

  3. -
  4. +
  5. +

    Language defaults: -

    +

    +
          \documentclass[british]{article}
    -      
    \usepackage{babel} -  
    \usepackage{glossaries-extra} -
    -

    This is like: + \usepackage{babel} + \usepackage{glossaries-extra} + +

    This is like:

    -
    +
          \documentclass[british]{article}
    -      
    \usepackage{babel} -  
    \usepackage[toc,nopostdot,translate=babel]{glossaries} -  
    \usepackage{glossaries-extra} -
    -

    + \usepackage{babel} + \usepackage[toc,nopostdot,translate=babel]{glossaries} + \usepackage{glossaries-extra} + +

  6. -
  7. +
  8. +

    Combined with memoir -

    +

    +
          \documentclass{memoir}
    -      
    \usepackage{glossaries-extra} -
    -

    This is like: + \usepackage{glossaries-extra} + +

    This is like:

    -
    +
          \documentclass{memoir}
    -      
    \usepackage[toc,nopostdot,noredefwarn]{glossaries} -  
    \usepackage{glossaries-extra} -
    -

    +

    However

    -
    +
          \documentclass{memoir}
    -      
    \usepackage{glossaries} -  
    \usepackage{glossaries-extra} -
    -

    This is like: + \usepackage{glossaries} + \usepackage{glossaries-extra} + +

    This is like:

    -
    +
          \documentclass{memoir}
    -      
    \usepackage[toc,nopostdot]{glossaries} -  
    \usepackage{glossaries-extra} -
    -

    Since by the time +

    Since by the time glossaries-extra has been loaded, glossaries has already redefined memoir’s glossary-related commands.

-

Another noticeable change is that by default ’s glossary-related commands. +

+
  • +

    Abbreviations are defined with \newabbreviation: + + + +

    +
    +     \usepackage{glossaries-extra}
    +     \newabbreviation{svm}{SVM}{support vector machine}
    +     \begin{document}
    +     First use: \gls{svm}. Explicit full form: \glsxtrfull{svm}.
    +     \end{document}
    +
    +

    This is the closest to: + + + +

    +
    +     \usepackage{glossaries}
    +     \newacronym{svm}{SVM}{support vector machine}
    +     \begin{document}
    +     First use: \gls{svm}. Explicit full form: \acrfull{svm}.
    +     \end{document}
    +
    +

    If you want to continue using \newacronym then you will need to change the + style for the acronym category: + + + +

    +
    +     \usepackage{glossaries-extra}
    +     \setabbreviationstyle[acronym]{long-short}
    +     \newacronym{svm}{SVM}{support vector machine}
    +     \begin{document}
    +     First use: \gls{svm}. Explicit full form: \glsxtrfull{svm}.
    +     \end{document}
    +
    +

  • +

    Another noticeable change is that by default \printglossary will now display information text in the document if the external glossary file doesn’t exist. This is explanatory text to help new users who can’t work out what to do next to complete the document build. Once the document is set up correctly and the external files have been generated, this text will disappear. -

    This change is mostly likely to be noticed by users with one or more +

    This change is mostly likely to be noticed by users with one or more redundant empty glossaries who ignore transcript messages, explicitly use makeindex/xindy on just the non-empty glossary (or glossaries) and use the iterative \printglossaries command instead of command instead of \printglossary. For example, consider the + id="dx1-3032">. For example, consider the following:

    -
    +
     \documentclass{article}
    - 
    \usepackage[acronym]{glossaries} - 
    \makeglossaries - 
    \newacronym{laser}{laser}{light amplification by stimulated - 
    emission of radiation} - 
    \begin{document} - 
    \gls{laser} - 
    \printglossaries - 
    \end{document} -
    -

    The above document will only display the list of acronyms at the place where +\usepackage[acronym]{glossaries} +\makeglossaries +\newacronym{laser}{laser}{light amplification by stimulated +emission of radiation} +\begin{document} +\gls{laser} +\printglossaries +\end{document} + +

    The above document will only display the list of acronyms at the place where \printglossaries occurs. However it will also attempt to input the occurs. However it will also attempt to input the .gls file associated with the main glossary. -

    If you use

    If you use makeglossaries, you’ll get the warning message:

    -
    +
     Warning: File 'test.glo' is empty.
    - 
    Have you used any entries defined in glossary 'main'? - 
    Remember to use package option 'nomain' if you - 
    don't want to use the main glossary. -
    -

    (where the original file is called +

    (where the original file is called test.tex) but if you simply call makeindex directly to generate the -

    +
     No file test.gls.
    -
    -

    This doesn’t occur with +

    This doesn’t occur with makeglossaries as it will create the .gls file containing the single command \null. -

    If you simply change from

    If you simply change from glossaries to glossaries-extra in this document, you’ll find a change in the resulting PDF if you don’t use makeglossaries and you only generate the .acr file with makeindex. -

    The transcript file will still contain the message about the missing

    The transcript file will still contain the message about the missing .gls, but now you’ll also see information in the actual PDF document. The simplest remedy is to follow the advice inserted into the document at that point, which is to add the nomain package option: + id="dx1-3039"> package option:

    -
    +
     \documentclass{article}
    - 
    \usepackage[nomain,acronym,postdot]{glossaries-extra} - 
    \makeglossaries - 
    \setabbreviationstyle[acronym]{long-short} - 
    \newacronym{laser}{laser}{light amplification by stimulated - 
    emission of radiation} - 
    \begin{document} - 
    \gls{laser} - 
    \printglossaries - 
    \end{document} -
    -

    (Note the need to set the acronym style using \setabbreviationstyle before - +

    (Note the need to set the acronym style using \setabbreviationstyle +before \newacronym. See §4 Abbreviations for further details.) -

    +class="tcrm-1000">§??sec:abbreviations Abbreviations for further +details.) +

    -

    Top

    1.2 New or Modified Package Options

    -

    If you haven’t already loaded

    If you haven’t already loaded glossaries, you can use any of the package options provided by glossaries when you load \setupglossariesglossaries package options may be used in that command. -

    This section only lists options that are either unrecognised by the

    This section only lists options that are either unrecognised by the glossaries package or are a modified version of options of the same name provided by glossaries. See the glossaries user manual for details about the unmodified options.
    -

    -

    The new and modified options provided by

    +

    The new and modified options provided by glossaries-extra are described below:

    +

    debug

    The

    +

    The glossaries package has a debug option that allows the values false, @@ -865,7 +956,7 @@ class="cmss-10">glossaries v4.32, so if you want to use this option with class="cmss-10">glossaries-extra you must make sure that your version of glossaries supports it. -

    The

    The glossaries-extra package extends this option to provide the additional values debug=all. -

    The

    The debug=showwrglossdebug=true and uses -



    \glsxtrwrglossmark

    -

    +

    to show a mark just before the write operation performed by the indexing commands. If you use record=alsoindex=hybrid there will be a mark for the write operation to the .aux file for makeindex or id="dx1-4012">xindy. -

    The

    The debug=alldebug=showwrgloss.

    +

    postdot

    (New to version 1.12.) This option is just a shortcut for

    +

    (New to version 1.12.) This option is just a shortcut for nopostdot=false. -

    +

    +

    postpunc

    (New to version 1.21.) This option sets the post-description punctuation to - the given value. For example:

    +

    (New to version 1.21.) This option sets the post-description punctuation to the + given value. For example: postpunc=; does -

    +

    +
          \renewcommand{\glspostdescription}{;}
    -
    -

    The value may also be one of the following keywords: + +

    The value may also be one of the following keywords:

    +

    comma:

    :

    +

    postpunc=comma=comma +

    +
              \renewcommand{\glspostdescription}{,}
    -
    -

    + +

    +

    dot:

    :

    +

    postpunc=dot=dot +

    +
              \renewcommand{\glspostdescription}{.\spacefactor\sfcode`\. }
    -
    -

    + +

    +

    none:

    :

    +

    postpunc=none=none +

    +
              \renewcommand{\glspostdescription}{}
    -

    -

    -

    The default definition is + +

    +

    The default definition is

    -
    +
          \newcommand*{\glspostdescription}{%
    -      
      \ifglsnopostdot\else.\spacefactor\sfcode`\. \fi -  
    } -
    -

    where the conditional is determined by the +

    where the conditional is determined by the nopostdot package option. @@ -1024,7 +1129,7 @@ class="cmss-10">postdot will restore the original definition of \glspostdescription. -

    The

    The glossaries-extra-stylemods package adjusts the predefined styles that had a hard-coded \hfil:

    -
    +
          \usepackage[postpunc=comma,stylemods]{glossaries-extra}
    -      
    \renewcommand{\glsxtrprelocation}{\hfil} -
    -

    Be careful with doing this as it will look odd if the +

    Be careful with doing this as it will look odd if the number list is missing. (With loc-prefix which will only apply if the entry has a number list.)

    +

    prefix

    Load the

    +

    Load the glossaries-prefix package (if not already loaded). -

    +

    +

    accsupp

    Load the

    +

    Load the glossaries-accsupp package (if not already loaded). -

    The

    The glossaries-accsupp package is still experimental and so accessibility features are liable to change.
    -

    -

    If you want to define styles that can interface with the accessibility support +

    +

    If you want to define styles that can interface with the accessibility support provided by glossaries-accsupp use the \glsaccesstext just does \glsentrytext) but if it has been loaded, then the \glsaccessxxx⟩ commands will add the - accessibility information. (See xxx⟩ commands will add the accessibility + information. (See §12.2 §??sec:accsupp Accessibility Support for further details.) -

    Note that the

    Note that the accsupp option can only be used as a package option (and can’t @@ -1122,23 +1232,29 @@ class="cmss-10">glossaries-accsuppglossaries-extra if it’s required.

    +

    stylemods

    This is a ⟨

    + + + +

    This is a ⟨key⟩=⟨value⟩ option used to load the glossaries-extra-stylemods - package. The value may be a comma-separated list of options to pass to that - package. (Remember to group ⟨value⟩ if it contains any commas.) The value may - be omitted if no options need to be passed. See package. + The value may be a comma-separated list of options to pass to that package. + (Remember to group ⟨value⟩ if it contains any commas.) The value may be + omitted if no options need to be passed. See §2.10.1 Glossary Style - Modifications for further details. There are two special keyword values: +class="tcrm-1000">§??sec:glosstylemods Glossary + Style Modifications for further details. There are two special keyword values: stylemodsstylemods=all, which loads all the predefined styles. -

    +

    +

    undefaction

    This is a ⟨

    +

    This is a ⟨key⟩=⟨value⟩ option, which has two allowed values: warn and - - - - error. This indicates what to do if an undefined glossary entry is referenced. The - default behaviour is warn and error. This + indicates what to do if an undefined glossary entry is referenced. The default + behaviour is undefaction=error, which produces an error message (the - default for glossaries). You can switch this to a warning message (and ?? - appearing in the text) with , which produces an error message (the default + for glossaries). You can switch this to a warning message (and ?? appearing in + the text) with undefaction=warn. -

    Undefined entries can’t be picked up by any commands that iterate +

    Undefined entries can’t be picked up by any commands that iterate over a glossary list. This includes \forglsentries and \glsaddall.
    -

    -

    Note that

    +

    Note that \ifglsused will display ?? in the document text with - will display ?? in the document text with undefaction=warn if the entry hasn’t been defined, as the underlying boolean - variable doesn’t exist and so is neither true nor false. (There will also - be a warning in the transcript.) See + if the entry hasn’t been defined, as the underlying boolean variable + doesn’t exist and so is neither true nor false. (There will also be a + warning in the transcript.) See §2.6 §??sec:glsunset First Use Flag for further details.

    +

    indexcrossrefs

    This is a boolean option. If

    +

    This is a boolean option. If true, this will automatically index any cross-referenced entries that haven’t been marked as used at the end of the document. Note that this necessarily adds to the overall document build time, @@ -1228,7 +1346,7 @@ class="cmss-10">indexcrossrefs to false. -

    Note that

    Note that bib2gls can automatically find dependent entries when it @@ -1243,23 +1361,28 @@ class="cmss-10">indexcrossrefs=false.

    + + + +

    autoseeindex

    (New to v1.16.) This is a boolean option. If true (default), this makes - the

    +

    (New to v1.16.) This is a boolean option. If true (default), this makes the see and + and seealso keys automatically index the cross-reference when an entry - is defined. If false, the value of those keys will still be stored in their + id="dx1-4068"> keys automatically index the cross-reference when an entry is + defined. If false, the value of those keys will still be stored in their corresponding fields (and can be accessed using commands like \glsxtrusesee and \glsxtruseseealso) but cross-reference won’t be automatically indexed. -

    Note that the

    Note that the record=onlyautoseeindex=false. -

    For example, if an entry is defined as +

    For example, if an entry is defined as

    -
    +
          \newglossaryentry{foo}{name={foo},description={},see={bar,baz}}
    -
    -

    then with +

    then with autoseeindex=true, this is equivalent to

    -
    +
          \newglossaryentry{foo}{name={foo},description={}}
    -      
    \glssee{foo}{bar,baz} -  
    \glossariesextrasetup{indexcrossrefs=true} -  
    \GlsXtrSetField{foo}{see}{bar,baz} -
    -

    but with +

    but with autoseeindex=false, this is equivalent to

    -
    +
          \newglossaryentry{foo}{name={foo},description={}}
    -      
    \GlsXtrSetField{foo}{see}{bar,baz} -
    -

    Note that +

    Note that indexcrossrefs isn’t automatically implemented by the presence of the @@ -1308,9 +1431,9 @@ class="cmss-10">seeautoseeindex is false. -

    It’s therefore possible to remove the cross-references from the location lists and +

    It’s therefore possible to remove the cross-references from the location lists and set their position within the glossary style. -

    Another method of preventing the automatic indexing is to define the entries +

    Another method of preventing the automatic indexing is to define the entries before the external indexing files have been opened with \makeglossaries. Since the appropriate file isn’t open, the information can’t be written to it. @@ -1319,33 +1442,50 @@ class="cmss-10">seenoindex=ignore (provided by glossaries) to prevent an error occurring.

    +

    record

    (New to v1.08.) This is a ⟨

    +

    (New to v1.08.) This is a ⟨key⟩=⟨value⟩ option provided for the benefit of - value⟩ option provided for the benefit of bib2gls (see bib2gls + (see §9 §??sec:bib2gls bib2gls: Managing Reference Databases). -

    The option may only be set in the preamble and can’t be used after +class="cmtt-10">bib2gls: Managing Reference Databases). If you want to + use bib2gls, the recommended setting is record=nameref if you have hyperlinks + and record=only if you don’t have hyperlinks. +

    The option may only be set in the preamble and can’t be used after \GlsXtrLoadResources. If the value is missing record=only is assumed. + id="dx1-4079"> is assumed. Permitted values:

    +

    off

    This is the default setting. The indexing is performed as normal using +class="cmssbx-10">off

    +

    This is the default setting. The indexing is performed as normal using either \makeglossaries or \makenoidxglossaries. This setting @@ -1353,94 +1493,118 @@ class="cmtt-10">\makenoidxglossaries. This setting href="#styopt.undefaction">undefaction=error. -

    + id="dx1-4080">. +

    +

    only

    The indexing is performed by bib2gls (see only

    +

    The indexing (recording) is performed by bib2gls (see §9 §??sec:bib2gls + bib2gls: - Managing Reference Databases). Neither \makeglossaries nor - \makenoidxglossaries is permitted. This setting implements - bib2gls: Managing Reference Databases). + Neither \makeglossaries nor \makenoidxglossaries is permitted. + This setting implements undefaction=warn and automatically loads the supplementary - and automatically loads + the supplementary glossaries-extra-bib2gls package. (There should be no need to explicitly - load package. (There should be + no need to explicitly load glossaries-extra-bib2gls.) -

    The glossaries should be displayed using .) + + + +

    The glossaries should be displayed using \printunsrtglossary (or \printunsrtglossaries). -

    The document build process is (assuming the file is called

    The document build process is (assuming the file is called myDoc.tex):

    -
    +
              pdflatex myDoc
    -          
    bib2gls myDoc -  
    pdflatex myDoc -
    -

    -

    Note that +

    If you want letter groups you will need the --group or -g switch when + invoking bib2gls: + + + +

    +
    +         pdflatex myDoc
    +         bib2gls -g myDoc
    +         pdflatex myDoc
    +
    +

    +

    Note that record=only will prevent the will prevent the see from automatically + id="dx1-4087"> from automatically implementing \glssee. (bib2gls deals with the see field.) You + id="dx1-4089"> field.) You may explicitly use \glssee in the document, but bib2gls will ignore the cross-reference if the see field was already set for that + id="dx1-4091"> field was already set for that entry. -

    The

    The record=only option will automatically set the option will automatically set the glossaries package’s sort=none option if available. (That option value was only introduced to + id="dx1-4093"> option if available. (That option value was only introduced to glossaries v4.30.)

    +

    nameref

    (New to v1.37 and requires nameref

    +

    (New to v1.37 and requires bib2gls v1.8+.) This option is like record=only but additionally records the current label information given by + id="dx1-4095"> but additionally records the current label information given by \@currentlabel and \@currentHref, and provides a more reliable way of @@ -1449,7 +1613,7 @@ class="cmtt-10">\theH⟨counter⟩ for the given location. This option requires hyperref otherwise it will fall back on the usual location records. + id="dx1-4096"> otherwise it will fall back on the usual location records. Remember that \@currentHref is always globally updated whenever \@currentlabel isn’t. This can cause some indexcounter option increments the associated counter every time an entry + id="dx1-4097"> option increments the associated counter every time an entry is indexed, which affects this option. See §9.3.2 Nameref Record for further - details. -

    This option is best used with §??sec:recordnameref Nameref + Record for further details. +

    This option is best used with counter=chapter or or counter=section if you + id="dx1-4099"> if you want the title included in the location list. If the indexing counter is the default page, only the location number is shown. Similarly for + id="dx1-4100">, only the location number is shown. Similarly for counter=equation (or (or equations=true). + id="dx1-4102">). +

    +

    + alsoindex

    +

    Deprecated synonym of hybrid.

    +

    alsoindex

    This is a hybrid setting that uses bib2gls to fetch entry information - from hybrid

    +

    This is a hybrid setting that uses bib2gls to fetch entry information from + + + + .bib files, but uses makeindex or xindy to create the glossary files (which + are input with \printglossary). Note that this requires a slower and + more complicated build process (see below). +

    This hybrid approach is provided for the rare instances where an existing + xindy to create the glossary - files. This option should be used with \makeglossaries but not - with its optional argument. This option should not be used with +class="cmtt-10">xindy rule or module is too complicated to convert to a bib2gls rule but + the entries need to be fetched from a bib file. There’s no benefit in using + this option with makeindex. +

    Since it’s redundant to make bib2gls also sort, use sort=none in \makenoidxglossaries. You may need to change the transcript file used - by bib2gls to avoid a clash with the transcript file used by makeindex - or xindy. (This can be done with \GlsXtrLoadResources for a faster build.
    +

    +

    This option must be used with \makeglossaries but not with its optional + argument. This option should not be used with \makenoidxglossaries. + You may need to change the transcript file used by bib2gls to avoid a + clash with the transcript file used by makeindex or xindy. (This can be + done with bib2gls’s --log-file or -t - option.) -

    The glossaries should be displayed using -t option.) +

    Each glossary should be displayed using \printglossary (or \printglossaries). This option is expected to be used with bib2gls’s - \printglossaries for all of them). This option is expected to be used + with bib2gls’s sort=none setting and so glossaries-extra-bib2gls is not automatically - - - - loaded. -

    The document build process is (assuming the file is called is not + automatically loaded. +

    The document build process is (assuming the file is called myDoc.tex):

    -
    +
              pdflatex myDoc
    -          
    bib2gls myDoc -  
    pdflatex myDoc -  
    makeglossaries myDoc -  
    pdflatex myDoc -
    -

    -

    With the recording on ( +

    Note that, in this case, it’s redundant to call bib2gls with the --group + or -g switch as makeindex/xindy will insert the group heading + information into the corresponding glossary file. (If you want + bib2gls to form the letter groups then this hybrid method is + inappropriate.)

    +

    With the recording on (record=only or , record=alsoindex), any of the commands - that would typically index the entry (such as =nameref or record=hybrid), any of + the commands that would typically index the entry (such as \gls, \glstext or \glsadd) - will add a \glstext or + \glsadd) will add a \glsxtr@record entry to the .aux file. bib2gls can then - read these lines to find out which entries have been used. (Remember - that commands like \glsentryname don’t index, so any use of these - commands won’t add a corresponding \glsxtr@record entry to the - .aux file.) See bib2gls can then + read these lines to find out which entries have been used. (Remember that + commands like \glsentryname don’t index, so any use of these commands + won’t add a corresponding \glsxtr@record entry to the .aux file.) See + §9 §??sec:bib2gls bib2gls: Managing Reference Databases for further details. +

    The hybrid method additionally performs the standard indexing action that’s + required for makeindex or xindy to work.

    +

    equations

    (New to v1.37.) This option will cause the default location counter to + id="dx1-4129">

    +

    (New to v1.37.) This option will cause the default location counter to automatically switch to equation when inside a numbered equation + id="dx1-4130"> when inside a numbered equation environment, such as equation or or align. The counter can be explicitly overridden + id="dx1-4133">. The counter can be explicitly overridden with counter in the optional arguments of commands like in the optional arguments of commands like \glslink or \gls as usual. -

    +

    +

    floats

    (New to v1.37.) This option will cause the default location counter to + id="dx1-4136">

    +

    (New to v1.37.) This option will cause the default location counter to automatically switch to the corresponding counter when inside a floating environment, such as figure or or table. The counter can be explicitly overridden + id="dx1-4139">. The counter can be explicitly overridden with counter in the optional arguments of commands like in the optional arguments of commands like \glslink or \gls as usual. Remember that within floats it’s the \caption command that - actually uses \refstepcounter, so indexing before the caption will - result in the wrong reference. The commands for use in captions and - sections, such as \caption command that actually + uses \refstepcounter, so indexing before the caption will result in the wrong + + + + reference. The commands for use in captions and sections, such as + \glsfmttext and \glsfmtshort, don’t index. (See §5 +class="tcrm-1000">§??sec:headtitle Entries in Sectioning Titles, Headers, Captions and Contents). You may want to consider using \glsadd after the caption (not before). For -

    +

    +
          \begin{figure}[htbp]
    -      
      \centering -  
      \includegraphics{example-image} -  
      \caption{Sample \glsfmttext{foobar} figure} -  
      \glsadd{foobar} -  
    \end{figure} -
    -

    +   \centering +   \includegraphics{example-image} +   \caption{Sample \glsfmttext{foobar} figure} +   \glsadd{foobar} + \end{figure} + +

    +

    indexcounter

    (New to v1.29.) This option (which doesn’t take a value) is primarily + id="dx1-4142">

    +

    (New to v1.29.) This option (which doesn’t take a value) is primarily intended for use with bib2gls (v1.4+) and hyperref. It can be used + id="dx1-4144">. It can be used with makeindex or xindy but it will interfere with the number list collation, so you won’t have ranges and you’ll have duplicate page numbers present (but each page number will link to the relevant part of the page @@ -1674,53 +1912,53 @@ href="#glo:numberlist">number list href="#styopt.counter">counter=wrglossary. -

    This option works by incrementing . +

    This option works by incrementing wrglossary and adding and adding \label. This can + id="dx1-4150">. This can cause a problem if the indexing occurs in an equation environment as environment as amsmath + id="dx1-4153"> forbids multiple occurrences of \label (resulting in the “Multiple \label’s” error). It’s best to change the counter to page or or equation when in maths mode + id="dx1-4155"> when in maths mode with this option. For example:

    -
    +
          \renewcommand{\glslinkpresetkeys}{%
    -      
     \ifmmode \setkeys{glslink}{counter=equation}\fi} -  
    \renewcommand{\glsaddpresetkeys}{% -  
     \ifmmode \setkeys{glossadd}{counter=equation}\fi} -
    -

    -

    -

    By default (with +

    +

    +

    By default (with hyperref), the page numbers in ), the page numbers in number lists link back to the top of the relevant page (provided the format uses \glshypernumber). The indexcounter option is designed to link back to the place within the page where + id="dx1-4158"> option is designed to link back to the place within the page where the indexing occurred. It does this by creating a new counter (called wrglossary) + id="dx1-4159">) that’s incremented with \refstepcounter every time an entry is indexed (but not via cross-referencing commands, such as \label is placed class="cmtt-10">\pageref. The location, as seen by the indexing application, is the value of the wrglossary counter but this value is substituted with the page + id="dx1-4160"> counter but this value is substituted with the page reference when number list is typeset. Since the counter is used by all + id="dx1-4161">number list is typeset. Since the counter is used by all entries and is incremented every time any indexing occurs, neither makeindex nor xindy can correctly collate the lists. For example, if the first term to be referenced is indexed three times on page 5 without any intervening terms then the actual locations obtained from wrglossary + id="dx1-4164"> will be 1, 2 and 3, which xindy and makeindex will try to form into the range 1–3, but they should actually all simply appear as page 5, whereas it can actually end up with 5–5. Conversely, a range may not be formed where it would naturally occur if just the page counter was + id="dx1-4167"> counter was used. -

    Since

    Since bib2gls is designed specifically to work with glossaries-extra, bib2gls (v1.4+) will check for wrglossary locations. If the default + id="dx1-4170"> locations. If the default --merge-wrglossary-records is on, then any records for the same page for a given entry will be merged. In the above example with three references on page 5, only a single record for page 5 for that entry will be added to the number list and it will link back to the first instance on + id="dx1-4171">number list and it will link back to the first instance on that page. Whereas if you use the --no-merge-wrglossary-records switch, the number list will contain three instance of page 5, with + id="dx1-4172">number list will contain three instance of page 5, with each linking to the corresponding place on that page. In both cases, consecutive pages can form ranges, but it may look strange in the second case. -

    See the

    See the bib2gls documentation for the save-index-counter resource option for more details. @@ -1789,38 +2027,42 @@ class="cmtt-10">save-index-counter resource option

    +

    docdef

    This option governs the use of \newglossaryentry. It was originally a - boolean option, but as from version 1.06, it can now take one of the following - values (if the value is omitted, true is assumed): + id="dx1-4174">

    +

    This option governs the use of \newglossaryentry. It was originally a boolean + option, but as from version 1.06, it can now take one of the following values (if + the value is omitted, true is assumed):

      -
    • +

      \newglossaryentry is not permitted in the is not permitted in the document environment + id="dx1-4177"> environment (default). -

    • -
    • +
    • +

      \newglossaryentry behaves as it does in the base glossaries package. That is, where its use is permitted in the document environment, it + id="dx1-4180"> environment, it uses the .glsdefs temporary file to store the entry definitions so that on the next LaTeX run the entries are defined at the beginning of the document environment. This allows the entry information + id="dx1-4182"> environment. This allows the entry information to be referenced in the glossary, even if the glossary occurs before \newglossaryentry. (For example, when the glossary is displayed @@ -1828,31 +2070,32 @@ class="cmtt-10">\newglossaryentry. (For example, when the glossary is dis next LaTeX run has drawbacks that are detailed in the glossaries user manual. -

      Remember that if

      Remember that if \newglossaryentry wouldn’t be allowed in the document environment with the base environment with the base glossaries package, then it still won’t be allowed with docdefs=true. If your glossaries occur at the + id="dx1-4186">. If your glossaries occur at the end of the document, consider using docdef=restricted instead. + id="dx1-4187"> instead.

    • -
    • (new to version 1.06) +

      (new to version 1.06) \newglossaryentry is permitted in the + id="dx1-4189"> is permitted in the document environment without using the environment without using the .glsdefs file. This means that all entries must be defined before the glossary is displayed, but it avoids the complications associated with saving the entry details @@ -1861,15 +2104,15 @@ class="cmtt-10">.glsdefs file. This means class="cmti-10">key⟩=⟨value⟩ mechanism (that is, the comma and equal sign) and any makeindex or xindy character that occurs in the sort key or label. If any of those characters + id="dx1-4194"> key or label. If any of those characters are made active in the document, then it can cause problems with the entry definition. This option will allow \newglossaryentry to @@ -1877,52 +2120,77 @@ class="cmtt-10">\newglossaryentry to class="cmtt-10">\makenoidxglossaries, but note that \longnewglossaryentry remains a preamble-only command. -

      With this option, if an entry appears in the glossary before it has been +

      With this option, if an entry appears in the glossary before it has been defined, an error will occur (or a warning if the undefaction=warn + id="dx1-4195"> option is used.) If you edit your document and either remove an entry + + + or change its label, you may need to delete the document’s temporary files (such as the .aux and .gls files).

    • -
    • (new to version 1.34) This option behaves like +

      (new to version 1.34) This option behaves like docdef=restricted but + id="dx1-4197"> but creates the .glsdefs file for atom’s autocomplete support. This file isn’t input by glossaries-extra and so associated problems with the - - - use of this file are avoided, but it allows the autocomplete support to find the labels in the file. As with docdef=restricted, entries may + id="dx1-4198">, entries may be defined in the preamble or anywhere in the document, but they may only be referenced after they have been defined. Entries must be defined before the associated glossary is displayed. +

      If you need a list of all entry labels for the use of an editor or helper + script you may also want to consider the package options writeglslabels + and writeglslabelnames provided by the base glossaries package. Note + that with these options and docdef=atom, only the entry labels visible + to LaTeX can be saved. So if you are using bib2gls you will only + get the labels of the entries that are selected by bib2gls. +

    -

    The

    The glossaries package allows \newglossaryentry within the document + id="dx1-4205"> environment (when used with makeindex or xindy) but the user manual warns against this usage. By default the prohibits this, only allowing definitions within the preamble. If you are really determined to define entries in the document environment, despite all the associated drawbacks, you + id="dx1-4209"> environment, despite all the associated drawbacks, you can restore this with docdef=true. Note that this doesn’t change the + id="dx1-4211">. Note that this doesn’t change the prohibitions that the glossaries package has in certain circumstances (for example, when using “option 1”). See the glossaries user manual for href="#styopt.docdef">docdef=restricted. Only use . Only use docdef=true if document definitions + id="dx1-4213"> if document definitions are necessary and one or more of the glossaries occurs in the front matter. -

    This option affects commands that internally use

    This option affects commands that internally use \newglossaryentry, such as \newabbreviation, but not the “on-the-fly” commands described in \newabbreviation, but not the “on-the-fly” commands described in + §11 - §??sec:onthefly On-the-Fly Document Definitions.

    +

    nomissingglstext

    This is a boolean option. If true, this will suppress the - warning written to the transcript and the warning text that will appear - in the document if the external glossary files haven’t been generated - due to an incomplete document build. However, it’s probably simpler - just to fix whatever has caused the failure to build the external file or - files. -
    + id="dx1-4214">

    +

    This is a boolean option. If true, this will suppress the warning written to the + transcript and the warning text that will appear in the document if the + external glossary files haven’t been generated due to an incomplete document + build. However, it’s probably simpler just to fix whatever has caused the failure + to build the external file or files. + + + +

    +

    abbreviations

    This option has no value and can’t be cancelled. If used, it will - automatically create a new glossary with the label abbreviations and - redefines

    +

    This option has no value and can’t be cancelled. If used, it will automatically + create a new glossary with the label abbreviations and redefines + \glsxtrabbrvtype to this label. (The file extensions are glg-abr, + id="dx1-4216">, gls-abr and and glo-abr.) In addition, this option defines a shortcut + id="dx1-4218">.) In addition, this option defines a shortcut command -



    \printabbreviations[options]

    -

    +

    which is equivalent to

    \printglossary[type=\glsxtrabbrvtype,options] - - -
    If glossaries-extra-bib2gls is also loaded then this option will additionally + id="dx1-4220"> is also loaded then this option will additionally provide: -



    \printunsrtabbreviations[options]

    -

    +

    which uses \printunsrtglossary. -

    The title of the new glossary is given by -


    . +

    The title of the new glossary is given by +


    \abbreviationsname

    -

    - If this command is already defined, it’s left unchanged. Otherwise it’s defined - to “Abbreviations” if

    + If this command is already defined, it’s left unchanged. Otherwise it’s defined to + “Abbreviations” if babel hasn’t been loaded or \acronymname if - hasn’t been loaded or \acronymname if babel has been loaded. However, if you’re using has + been loaded. However, if you’re using babel it’s likely you - will need to change this. (See it’s likely you will need + to change this. (See §14 §??sec:lang Multi-Lingual Support for further details.) -

    If you don’t use the

    If you don’t use the abbreviations package option, the package option, the \abbreviationsname command won’t be defined (unless it’s defined by an included language file).
    -

    -

    If the

    +

    If the abbreviations option is used and the option is used and the acronym option provided by the + id="dx1-4229"> option provided by the glossaries package hasn’t been used, then \acronymtype will be set to + id="dx1-4230"> will be set to \glsxtrabbrvtype so that acronyms defined with so that acronyms defined with \newacronym can be added + id="dx1-4232"> can be added to the list of abbreviations. If you want acronyms in the main glossary and other abbreviations in the main:

    -
    +
          \renewcommand*{\acronymtype}{main}
    -
    -

    -

    Note that there are no analogous options to the +

    +

    Note that there are no analogous options to the glossaries package’s acronymlists + id="dx1-4233"> option (or associated commands) as the abbreviation mechanism is handled differently with glossaries-extra.

    +

    symbols

    This is passed to

    +

    This is passed to glossaries but will additionally define -



    \glsxtrnewsymbol[options]{label}{symbol}

    -

    +

    which is equivalent to

    }
    Note that the sort key is set to the ⟨ key is set to the ⟨label⟩ not the ⟨symbol⟩ as the symbol will likely contain commands. -

    If

    If glossaries-extra-bib2gls is also loaded then this option will additionally + id="dx1-4237"> is also loaded then this option will additionally provide: -



    \printunsrtsymbols[options]

    -

    +

    which uses \printunsrtglossary. + id="dx1-4239">.

    +

    numbers

    This is passed to

    +

    This is passed to glossaries but will additionally define -



    \glsxtrnewnumber[options]{number}

    -

    +

    which is equivalent to

    + + +
    \newglossaryentry{label},type=numbers,category=number,options} - - -
    -

    If

    If glossaries-extra-bib2gls is also loaded then this option will additionally + id="dx1-4242"> is also loaded then this option will additionally provide: -



    \printunsrtnumbers[options]

    -

    +

    which uses \printunsrtglossary. + id="dx1-4244">.

    +

    acronyms (or acronym)

    This is passed to )

    +

    This is passed to glossaries but if glossaries-extra-bib2gls is - also loaded then this option will additionally provide: -


    is also loaded then this + option will additionally provide: +


    \printunsrtacronyms[options]

    -

    +

    which uses \printunsrtglossary. -

    This option defines a new glossary with the label . +

    This option defines a new glossary with the label acronym not acronyms. You may find it easier to reference it with the command \acronymtype. + id="dx1-4250">.
    -

    +

    +

    index

    This is passed to

    +

    This is passed to glossaries but if glossaries-extra-bib2gls is also loaded then this + id="dx1-4252"> is also loaded then this option will additionally provide: -



    \printunsrtindex[options]

    -

    +

    which uses \printunsrtglossary. + id="dx1-4254">.

    +

    shortcuts

    Unlike the glossaries package option of the same name, this option isn’t - boolean but has multiple values: + id="dx1-4255">

    +

    Unlike the glossaries package option of the same name, this option isn’t boolean + but has multiple values:

    + + +
      -
    • +

      shortcuts=acronyms (or (or shortcuts=acro): set the shortcuts provided + id="dx1-4257">): set the shortcuts provided by the glossaries package for acronyms (such as \ac). Note that the @@ -2273,13 +2560,14 @@ class="cmss-10">glossaries-extra href="#styopt.shortcuts">shortcuts=ac. -

    • -
    • . +

    • +
    • +

      shortcuts=ac: set the shortcuts provided by the : set the shortcuts provided by the glossaries package for acronyms (such as \ac) but uses the \ac is defined as \cgls rather than \gls. - - - -

    • -
    • +
    • +

      shortcuts=abbreviations (or (or shortcuts=abbr): - set the abbreviation shortcuts provided by glossaries-extra. (See ): set the abbreviation + shortcuts provided by glossaries-extra. (See §4.3 +class="tcrm-1000">§??sec:abbrshortcuts Shortcut Commands.) These settings don’t switch on the acronym shortcuts provided by the glossaries package. -

    • -
    • +
    • +

      shortcuts=other: set the “other” shortcut commands, but not the shortcut + id="dx1-4262">: set the “other” shortcut commands, but not the shortcut commands for abbreviations or the acronym shortcuts provided by glossaries. The “other” shortcuts are: +class="cmss-10">glossaries. The “other” shortcuts are:

        -
      • +

        \newentry equivalent to equivalent to \newglossaryentry -

      • -
      • +

      • +
      • +

        \newsym equivalent to equivalent to \glsxtrnewsymbol (see the (see the symbols + id="dx1-4267"> option). -

      • -
      • +
      • +

        \newnum equivalent to equivalent to \glsxtrnewnumber (see the (see the numbers - option).

      + id="dx1-4270"> + option).

    -
  • +

    shortcuts=all (or (or shortcuts=true): implements ): implements shortcuts=ac, + id="dx1-4273">, shortcuts=abbreviations and and shortcuts=other. -

  • -
  • . +

  • +
  • +

    shortcuts=none (or (or shortcuts=false): don’t define any of the shortcut - commands (default).

  • -

    Note that multiple invocations of the ): don’t define any of the shortcut + commands (default).

    + + + +

    Note that multiple invocations of the shortcuts option option within the same option list will override each other.

    -

    After the

    After the glossaries-extra package has been loaded, you can set available options using -



    \glossariesextrasetup{options}

    -

    +

    The abbreviations and and docdef options may only be used in the preamble. Additionally, + id="dx1-4281"> options may only be used in the preamble. Additionally, docdef can’t be used after can’t be used after \makenoidxglossaries. + id="dx1-4283">.

    -

    -

    +

    Top

    2. Modifications to Existing Commands and Styles

    -

    Top

    2.1 Defining Entries

    -

    The

    The glossaries package provides \nopostdesc which may be used in the descriptionglossaries-extra package provides another command -



    \glsxtrnopostpunc

    -

    +

    which has a similar function but only suppresses the post-description punctuation. It doesn’t suppress the use of \glsxtrpostdescription which allows the use of @@ -2446,19 +2742,20 @@ class="cmtt-10">\glsxtrpostdescription not before.) The post-description hook can counter-act the effect of \glsxtrnopostpunc using -



    \glsxtrrestorepostpunc

    -

    +

    These commands have no effect outside of the glossary (except with standalone entries that use \glsxtractivatenopost and \glspostdescription, see \glspostdescription, see +§10.4 -§??sec:glossentry Standalone Entry Items). -

    The commands used by

    The commands used by glossaries to automatically produce an error if an entry is undefined (such as \glsdoifexistsundefaction option into account. -

    The

    The \newglossaryentry command has three new keys:

      -
    • +

      category, which sets the category label for the given entry. By default this is general. See §6 Categories for further information about categories. -

    • -
    • §??sec:categories Categories for further information about + categories. +

    • +
    • +

      alias, which allows an entry to be alias to another entry. See §10.5 Entry - Aliases for further details. -

    • -
    • §??sec:alias + Entry Aliases for further details. +

    • +
    • +

      seealso, which performs much like see, but allows for separate “see” and - “see also” treatment. See §2.3 Cross-References (“see” and “see also”) for - further details.

    -

    This apply to all entry defining commands (such as §??sec:see Cross-References (“see” and “see + also”) for further details.

    + + + +

    This apply to all entry defining commands (such as \newabbreviation). -

    The test file

    The test file example-glossaries-xr.tex contains dummy entries with a mixture of seeexample-glossaries-*.tex file for testing bib2gls. - - - -

    The

    The \longnewglossaryentry command now has a starred version (as from v1.12) that doesn’t automatically insert

    -
    +
     \leavevmode\unskip\nopostdesc
    -
    -

    at the end of the description field. -


    +

    at the end of the description field. +


    \longnewglossaryentry*{labeloptions}{description}

    -

    +

    The descriptionplural key is left unset unless explicitly set in ⟨options⟩. -

    The unstarred version no longer hard-codes the above code (which removes +

    The unstarred version no longer hard-codes the above code (which removes trailing space and suppresses the post-description hook) but instead uses: -



    \glsxtrpostlongdescription

    -

    +

    This can be redefined to allow the post-description hook to work but retain the \unskip part if required. For example: @@ -2556,12 +2860,12 @@ class="cmtt-10">\unskip part if required. For example:

    -
    +
     \renewcommand*{\glsxtrpostlongdescription}{\leavevmode\unskip}
    -
    -

    This will discarded unwanted trailing space at the end of the description but won’t + +

    This will discarded unwanted trailing space at the end of the description but won’t suppress the post-description hook. -

    The unstarred version also alters the base

    The unstarred version also alters the base glossaries package’s treatment of the 2.1 -

    Note that this modified unstarred version doesn’t append

    Note that this modified unstarred version doesn’t append \glsxtrpostlongdescription to the description’s plural form. -

    The

    The \newterm command (defined through the index. The \newacronym command is modified -to use the new abbreviation interface provided by command is modified to use +the new abbreviation interface provided by glossaries-extra. (See §4 +class="tcrm-1000">§??sec:abbreviations Abbreviations.) -

    The

    The \makeglossaries command now has an optional argument. -



    \makeglossaries[list]

    -

    +

    If ⟨list⟩ is empty, \makeglossaries behaves as per its original definition in the @@ -2615,36 +2920,36 @@ class="cmtt-10">\makeglossaries behaves as per its original definition in class="cmss-10">glossaries package, otherwise ⟨list⟩ can be a comma-separated list of glossaries that need processing with an external indexing application. -

    This command is not permitted with the

    This command is not permitted with the record=only package option. Without -the optional argument, it’s permitted with record=alsoindex. With the optional -argument, it’s only permitted with the default =hybrid. With the optional argument, +it’s only permitted with the default record=off. -

    It should then be possible to use

    It should then be possible to use \printglossary for those glossaries listed in ⟨list⟩ and \printnoidxglossary for the other glossaries. (See the accompanying file sample-mixedsort.tex for an example.) -

    If you use the optional argument ⟨

    If you use the optional argument ⟨list⟩, you can’t define entries in the document (even with the docdef option).
    -

    -

    You will need at least version 2.20 of

    +

    You will need at least version 2.20 of makeglossaries or at least version 1.3 of @@ -2662,25 +2967,25 @@ href="#styopt.automake">automake option. -

    +

    -

    Top

    2.2 Entry Indexing

    -

    As from version 1.31, there is a new command like

    As from version 1.31, there is a new command like \glsadd where the mandatory argument is a comma-separated list of labels: -



    \glsaddeach[options]{list}

    -

    +

    This simply iterates over ⟨list⟩ and does \glsadd[]{label} for each entry in the list. -

    As from version 1.37, you can make commands like

    As from version 1.37, you can make commands like \gls or \glslink automatically use } in the optional argument of the corresponding \gls, \glslink etc). -



    \GlsXtrAutoAddOnFormat[label}{glsadd options}

    -

    +

    The optional argument ⟨label⟩ defaults to \glslabel and indicates the label to use in @@ -2726,61 +3031,63 @@ class="cmtt-10">format={⟨format} prepended to the list. -

    For example, with: +

    For example, with:

    -
    +
     \GlsXtrAutoAddOnFormat{hyperbf}{counter=chapter}
    -
    -

    then +

    then \gls[format=hyperbf]{sample} will be equivalent to

    -
    +
     \glsadd[format=hyperbf,counter=chapter]{sample}\gls[format=hyperbf]{sample}
    -
    -

    Note that the explicit range markers will prevent a match unless you include + +

    Note that the explicit range markers will prevent a match unless you include them in ⟨format list⟩ (in which case, be sure to add both the start and end formats). -

    Here’s another example: +

    Here’s another example:

    -
    +
     \GlsXtrAutoAddOnFormat[dual.\glslabel]{hyperbf}{}
    -
    -

    In this case +

    In this case \gls[format=hyperbf]{sample} will now be equivalent to:

    -
    +
     \glsadd[format=hyperbf]{dual.sample}\gls[format=hyperbf]{sample}
    -
    -

    -

    +

    +

    \GlsXtrAutoAddOnFormat is not applied to \glsadd as it could cause an infinite loop.
    -

    -

    The

    +

    The glossaries-extra package provides extra keys for commands like \gls and \glstext:

    +

    noindex

    This is a boolean key. If true, this suppresses the indexing. (That is, - it prevents

    +

    This is a boolean key. If true, this suppresses the indexing. (That is, it + prevents \gls or whatever from adding a line to the external glossary file.) This is more useful than the first use might not be the most pertinent use. (If you want to apply indexonlyfirst to selected entries, rather than all of them, you - can use the to selected entries, rather than all of them, + you can use the indexonlyfirst attribute, see §6 Categories for further details.) - Note that the §??sec:categories Categories + for further details.) Note that the noindex key isn’t available for \glsadd (and + (and \glsaddall) - since the whole purpose of that command is to index an entry. -

    + id="dx1-7010">) since the whole purpose of that command is to index + an entry. +

    +

    wrgloss

    (New to v1.14.) This is may only take the values

    +

    (New to v1.14.) This is may only take the values before or after. By - default, commands that both index and display link text (such as \gls, - \glstext and \glslink), perform the indexing before the link text as the - indexing creates a whatsit that can cause problems if it occurs after the - link text. However, it may be that in some cases (such as long phrases) you - may actually want the indexing performed after the link text. In this case - you can use wrgloss=after for specific instances. Note that this option - doesn’t have an effect if the indexing has been suppressed through other - settings (such as after. By default, + commands that both index and display link text (such as \gls, \glstext + and \glslink), perform the indexing before the link text as the indexing + creates a whatsit that can cause problems if it occurs after the link text. + However, it may be that in some cases (such as long phrases) you may + actually want the indexing performed after the link text. In this case you + can use wrgloss=after for specific instances. Note that this option doesn’t + have an effect if the indexing has been suppressed through other settings + (such as noindex). -

    The default value is set up using -


    The default value is set up using +


    \glsxtrinitwrgloss

    -

    +

    which is defined as:

    -
    +
          \newcommand*{\glsxtrinitwrgloss}{%
    -      
     \glsifattribute{\glslabel}{wrgloss}{after}% -  
     {% -  
       \glsxtrinitwrglossbeforefalse -  
     }% -  
     {% -  
       \glsxtrinitwrglossbeforetrue -  
     }% -  
    } -
    -

    This sets the conditional -


    +

    This sets the conditional +


    \ifglsxtrinitwrgloss

    -

    +

    which is used to determine where to perform the indexing. -

    This means you can set the

    This means you can set the wrgloss attribute to \GlsXtrSetDefaultGlsOpts\glsxtrinitwrgloss.)

    +

    hyperoutside

    (New to v1.21.) This is a boolean key. The default is

    +

    (New to v1.21.) This is a boolean key. The default is hyperoutside=true, which puts the hyperlink outside \glstextformat, so that commands like \gls - will effectively do

    +

    textformat

    This key must have a control sequence name as its value. The - command formed from this name must exist and must take one argument. - (Use relax for default behaviour.) If set, this overrides the

    +

    This key must have a control sequence name as its value. The command formed + from this name must exist and must take one argument. (Use relax for + default behaviour.) If set, this overrides the textformat - attribute and attribute and + \glstextformat. See the soul example in §2.6 §??sec:glsunset First Use Flag. -

    +

    +

    prefix

    Locally redefines

    +

    Locally redefines \glolinkprefix to the given value. It should match the prefix for the desired glossary. -

    +

    +

    thevalue

    Explicitly set the location to this value (see below). -
    + id="dx1-7027">

    +

    Explicitly set the location to this value (see below). +

    +

    theHvalue

    Set the corresponding hyperlink location (see below). + id="dx1-7028">

    +

    Set the corresponding hyperlink location (see below). +

    -

    You can set the default options used by

    You can set the default options used by \glslink, \gls etc with: -



    \GlsXtrSetDefaultGlsOpts{options}

    -

    +

    For example, if you mostly don’t want to index entries then you can do:

    -
    +
     \GlsXtrSetDefaultGlsOpts{noindex}
    -
    -

    and then use, for example, +

    and then use, for example, \gls[noindex=false]{sample} when you actually want the location added to the \glslink and \gls. -

    Note that if you don’t want

    Note that if you don’t want any indexing, just omit \makeglossaries and wrgloss\glsxtrinitwrgloss instead. -

    \GlsXtrSetDefaultGlsOpts doesn’t affect \glsadd.
    -

    -

    If you want to change the default value of

    +

    If you want to change the default value of format, you can instead use: -



    \GlsXtrSetDefaultNumberFormat{format}

    -

    +

    This has the advantage of also working for \glsadd. For example, if you want all locations in the back matter to appear in italic (unless explicitly @@ -3055,12 +3381,12 @@ overridden):

    -
    +
     \backmatter
    - 
    \GlsXtrSetDefaultNumberFormat{hyperit} -
    -

    -

    Commands like +

    +

    Commands like \gls have star (*) and plus (hyper=false and hyper=true. The glossaries-extra package provides a way to add a third modifier, if required, using -



    \GlsXtrSetAltModifier{char}{options}

    -

    +

    where ⟨char⟩ is the character used as the modifier and ⟨options⟩ is the default set of options (which may be overridden). Note that ⟨char⟩ must be a single character (not a UTF-8 character, unless you are using XƎLATEX or LuaLATEX). -

    When choosing the character ⟨

    When choosing the character ⟨char⟩ take care of any changes in category code.
    -

    -

    Example: +

    +

    Example:

    -
    +
     \GlsXtrSetAltModifier{!}{noindex}
    -
    -

    This means that +

    This means that \gls!{sample} will be equivalent to \gls[noindex]{sample}. It’s not possible to mix modifiers. For example, if you want to do @@ -3104,51 +3430,51 @@ not possible to mix modifiers. For example, if you want to do

    -
    +
     \gls[noindex,hyper=false]{sample}
    -
    -

    you can use +

    you can use \gls*[noindex]{sample} or \gls![hyper=false]{sample} but you can’t combine the * and ! modifiers. -

    There is a new hook that’s used each time indexing information is written to the +

    There is a new hook that’s used each time indexing information is written to the external glossary files: -



    \glsxtrdowrglossaryhook{label}

    -

    +

    where ⟨label⟩ is the entry’s label. This does nothing by default but may be redefined. (See, for example, the accompanying sample file sample-indexhook.tex, which uses this hook to determine which entries haven’t been indexed.) -

    There’s also a new hook (from v1.26) that’s used immediately before the options +

    There’s also a new hook (from v1.26) that’s used immediately before the options are set by the \gls-like and \glstext-like commands: -



    \glslinkpresetkeys

    -

    +

    (The base package provides \glslinkpostsetkeys that’s used immediately after the options are set.) -

    As from version 1.30 there are also similar hooks for

    As from version 1.30 there are also similar hooks for \glsadd: -



    \glsaddpresetkeys

    -

    +

    and -



    \glsaddpostsetkeys

    -

    +

    For example, to default to using the equation counter in maths mode: @@ -3156,13 +3482,13 @@ class="cmss-10">equation -

    -

    In this case, the counter can be overridden with an explicit use of +

    In this case, the counter can be overridden with an explicit use of counter in the optional argument of equations package option.) -

    Alternatively, to enforce this (overriding the option argument): +

    Alternatively, to enforce this (overriding the option argument):

    -
    +
     \renewcommand{\glslinkpostsetkeys}{%
    - 
     \ifmmode \setkeys{glslink}{counter=equation}\fi} - 
    \renewcommand{\glsaddpostsetkeys}{% - 
     \ifmmode \setkeys{glossadd}{counter=equation}\fi} -
    -

    -

    As from version 1.14, there are two new keys for +

    +

    As from version 1.14, there are two new keys for \glsadd: thevalue and thevalue keys is intended primarily for adding locations in supplementary material that can’t be obtained from a counter. -

    The principle key

    The principle key thevalue is for the location value. The other key theHvalueprefix⟩⟨location⟩. In general, there’s little need for this key as the prefix is typically associated with a counter that can be used to form hypertargets. -

    If you use

    If you use thevalue, you must make sure that you use an indexing application that will accept the given value.
    -

    -

    For example,

    +

    For example, makeindex will only accept locations in the form [⟨num⟩⟨ -

    +
     \glsadd[thevalue={Supplementary Material}]{sample}
    -
    -

    This location value will be accepted by +

    This location value will be accepted by bib2gls, since it will allow any location and @@ -3256,24 +3582,24 @@ class="cmss-10">format key to prevent a hyperlink if one can’t naturally be formed from the prefix, counter and location value. -

    For example, suppose the file

    For example, suppose the file suppl.tex contains:

    -
    +
     \documentclass{article}
    - 
    \usepackage{glossaries-extra} - 
    \newglossaryentry{sample}{name={sample},description={an example}} - 
    \renewcommand{\thepage}{S.\arabic{page}} - 
    \begin{document} - 
    First page. - 
    \newpage - 
    \gls{sample}. - 
    \end{document} -
    -

    This has an entry on page S.2. Suppose another document wants to include this +\usepackage{glossaries-extra} +\newglossaryentry{sample}{name={sample},description={an example}} +\renewcommand{\thepage}{S.\arabic{page}} +\begin{document} +First page. +\newpage +\gls{sample}. +\end{document} + +

    This has an entry on page S.2. Suppose another document wants to include this location in the glossary. Then this can be done by setting thevalue to -

    +
     \documentclass{article}
    - 
    \usepackage{glossaries-extra} - 
    \makeglossaries - 
    \newglossaryentry{sample}{name={sample},description={an example}} - 
    \begin{document} - 
    Some \gls{sample} text. - 
    \printglossaries - 
    \glsadd[thevalue={S.2}]{sample} - 
    \end{document} -
    -

    This location value will be accepted by +

    This location value will be accepted by makeindex as it’s in the form ⟨num⟩⟨sep⟩⟨num⟩. -

    If you want hyperlinks, things are more complicated. First you need to set the +

    If you want hyperlinks, things are more complicated. First you need to set the externallocationexternallocation -

    -

    Next you need to add +

    Next you need to add glsxtrsupphypernumber as the format:

    -
    +
     \glsadd[thevalue={S.2},format=glsxtrsupphypernumber]{sample}
    -
    -

    Both documents will need to use the +

    Both documents will need to use the hyperref package. Remember that the counter used for the location also needs to match. If sample-suppl-main-hyp.tex for an example that uses hyperref. -

    The hyperlink for the supplementary location may or

    The hyperlink for the supplementary location may or may not take you to the relevant place in the external PDF file depending on your PDF viewer. Some may not support external links, and some may take you to the first page or last visited page.
    -

    -

    For example, if both

    +

    For example, if both sample-suppl-hyp.pdf and sample-suppl-main-hyp.pdf are in the same directory, then viewing sample-suppl-main-hyp.pdf in Evince will take you to the correct location in the linked document (when you click on the S.2 external link), but Okular will take you to the top of the first page of the linked document. -

    This method can only be used where there is one external source for the +

    This method can only be used where there is one external source for the designated category (identified by the externallocation.aux files of the designated external documents without the need to explicitly use \glsadd. -

    +

    -

    Top

    2.3 Cross-References (“see” and “see also”)

    -

    The value of the

    The value of the see key is now saved as a field. This isn’t the case with glossaries, -where the key is now saved as a field. This isn’t the case with +glossaries, where the see value is simply used to directly write a line to the corresponding -glossary file and is then discarded. This is why the value is simply used to directly write a line to the +corresponding glossary file and is then discarded. This is why the see key can’t be used -before key +can’t be used before \makeglossaries (since the file hasn’t been opened yet). It’s also the -reason why the see key doesn’t have any effect when used in entries that -are defined in the document environment. Since the value isn’t saved, it’s -not available when the .glsdefs file is created at the end of the document -and so isn’t available at the start of the document environment on the next -run. -

    This modification allows (since the file hasn’t been opened +yet). +

    This modification allows glossaries-extra to provide -



    \glsxtraddallcrossrefs

    - - - -

    +

    which is used at the end of the document to automatically add any unused cross-references unless the package option indexcrossrefs was set to false. -

    As a by-product of this enhancement, the was set to false. + + + +

    Note that even though the see key will now work for entries -defined in the key will now work for entries defined in the +document environment, but it’s still best to define entries in the -preamble, and the environment, it’s still best to define entries in the preamble, and +the see key still can’t perform any indexing before the file has been -opened by key still can’t perform any indexing before the file has been opened +by \makeglossaries. Note that glossaries v4.24 introduced the seenoindex + id="dx1-8011"> package option, which can be used to suppress the error when the see key + id="dx1-8012"> key is used before \makeglossaries, so seenoindex=ignore will allow the will allow the see + id="dx1-8014"> value to be stored even though it may not be possible to index it at that point. -

    As from version 1.06, you can display the cross-referenced information for a given +

    As from version 1.06, you can display the cross-referenced information for a given entry using -



    \glsxtrusesee{label}

    -

    +

    This internally uses -



    \glsxtruseseeformat{tag}{xr list}

    -

    +

    where ⟨tag⟩ and ⟨xr list⟩ are obtained from the value of the entry’s see field (if + id="dx1-8017"> field (if non-empty). By default, this just does \glsseeformat[tagxr list}{}, which is how the cross-reference is displayed in the number list. Note that \glsxtrusesee does nothing if the see field hasn’t been set for the entry given by + id="dx1-8019"> field hasn’t been set for the entry given by ⟨label⟩. -

    As with the base

    As with the base glossaries package, package, \glsseeformat is defined to do \emph{tagxr list}. The third argument is always ignored and is present for makeindex, which always requires a final argument to encapsulate the associated + id="dx1-8021">, which always requires a final argument to encapsulate the associated location. The command -



    \glsseelist{xr list}

    -

    +

    used to iterate over the list of cross-reference labels is also unchanged from the base glossaries package, with each item in the list formatted according + id="dx1-8023"> package, with each item in the list formatted according to: -



    \glsseeitem{label}

    -

    +

    This is defined by the glossaries package to:

    + id="dx1-8025"> package to:

    \glshyperlink[\glsseeitemformat{}
    So the actual formatting for each cross-referenced entry is performed by \glsseeitemformat, which is redefined by , which is redefined by glossaries-extra, as described in , as described in +§2 -Modifications to Existing Commands and Styles. This now displays the value of the -§??sec:modifications Modifications to Existing Commands and Styles. This now +displays the value of the text field for abbreviations and the value of the field for abbreviations and the value of the name field otherwise. There’s no -indication of the entry hierarchy, which could confuse the reader. Therefore, as from - - - - field +otherwise. There’s no indication of the entry hierarchy, which could confuse +the reader. Therefore, as from glossaries-extra v1.37, there are some new commands that include the hierarchical -information. You may prefer to redefine \glsseeitemformat to use one of this if you -have sub-entries. For example: + id="dx1-8030"> v1.37, there are some new +commands that include the hierarchical information. You may prefer to +redefine \glsseeitemformat to use one of this if you have sub-entries. For +example: -
    +
     \renewcommand*{\glsseeitemformat}[1]{\glsxtrhiername{#1}}
    -
    -

    -

    The +

    +

    The glossaries package provides -



    \glsseeitemformat{label}

    -

    +

    to format items in a cross-reference list (identified with the see key or key or \glssee). This was originally defined to use \glsentryname{} since it makes more sense for the cross-reference to match the way the term appears in the glossary. Unfortunately this caused a problem when the name field was sanitized, which used to be the default + id="dx1-8033"> field was sanitized, which used to be the default setting, so glossaries v3.0 changed the default definition of this command to use \glsentrytext instead. Since the name and and text field are quite often + id="dx1-8035"> field are quite often the same, this change usually doesn’t have a noticeable effect. However, now that the name field is no longer sanitized (following the redesign of + id="dx1-8036"> field is no longer sanitized (following the redesign of glossaries v4.0) it makes more sense to restore this command to its original behaviour, but to take account of abbreviations -

    +
     \renewcommand*{\glsseeitemformat}[1]{%
    - 
     \ifglshasshort{\glslabel}{\glsfmttext{#1}}{\glsfmtname{#1}}% - 
    } -
    -

    (Note that as from +

    (Note that as from glossaries-extra version 1.42, this now uses \glsfmttext and \glsfmtname instead of just referencing the text and and name fields. This helps to ensure + id="dx1-8038"> fields. This helps to ensure that any formatting is correctly applied.) -

    If you want to restore the

    If you want to restore the glossaries v3.0+ definition just do:

    -
    +
     \renewcommand*{\glsseeitemformat}[1]{\glsentrytext{#1}}
    -
    -

    -

    The +

    +

    The glossaries-extra package provides package provides \glsxtrhiername and its case-changing + id="dx1-8040"> and its case-changing variants that may be used within the definition of \glsseeitemformat if required. These display the hierarchy for sub-entries rather than just the name, which may be more helpful in cross-references. -



    \glsxtrhiername{label}

    -

    +

    performs a recursive action:

      -
    1. If the entry given by ⟨ +

      If the entry given by ⟨label⟩ has a parent, then \glsxtrhiername{parent @@ -3650,84 +3963,85 @@ class="cmti-10">parent class="cmti-10">label⟩} is done followed by \glsxtrhiernamesep then: -

    2. -
    3. If the entry given by ⟨
    4. +
    5. +

      If the entry given by ⟨label⟩ is an abbreviation (that is, it has the short field + id="dx1-8046"> field set) then the short form is displayed (using \glsfmtshort) otherwise the name is displayed (using \glsfmtname).

    -

    The first step above is skipped if the entry doesn’t have a parent. Each level is separated +class="cmtt-10">\glsfmtname).

    +

    The first step above is skipped if the entry doesn’t have a parent. Each level is separated by: -



    \glsxtrhiernamesep

    -

    +

    which defaults to “ ”. This can be redefined as appropriate. -

    There are some case-changing variants: -


    There are some case-changing variants: +


    \Glsxtrhiername{label}

    -

    +

    The top-level has the first letter changed to upper case (either \Glsfmtshort or \Glsfmtname). There’s no case-change for sub-entries. -



    \GlsXtrhiername{label}

    -

    +

    All levels have the first letter changed to upper case (either \Glsfmtshort or \Glsfmtname). -



    \GLSxtrhiername{label}

    -

    +

    The top-level is converted to upper case (either \GLSfmtshort or \GLSfmtname). There’s no case-change for sub-entries. -



    \GLSXTRhiername{label}

    -

    +

    All levels are converted to upper case (either \GLSfmtshort or \GLSfmtname). - - - -

    Suppose you want to suppress the number list using

    Suppose you want to suppress the number list using nonumberlist. This + id="dx1-8053">. This will automatically prevent the cross-references from being displayed. The seeautonumberlist package option will automatically enable the number list for entries + id="dx1-8054"> package option will automatically enable the number list for entries that have the see key set, but this will also show the rest of the number + id="dx1-8056"> key set, but this will also show the rest of the number list. -

    Another approach in this situation is to use the post description hook +

    Another approach in this situation is to use the post description hook with \glsxtrusesee to append the cross-reference after the description. For example: @@ -3735,22 +4049,22 @@ example:

    -
    +
     \renewcommand*{\glsxtrpostdescgeneral}{%
    - 
     \ifglshasfield{see}{\glscurrententrylabel} - 
     {, \glsxtrusesee{\glscurrententrylabel}}% - 
     {}% - 
    } -
    -

    Now the cross-references can appear even though the +

    Now the cross-references can appear even though the number list has been suppressed. -

    As from v1.16, there’s a separate

    As from v1.16, there’s a separate seealso key. Unlike key. Unlike see, this doesn’t have an + id="dx1-8060">, this doesn’t have an optional part for the textual tag. The syntax seealso={xr-labelsxr-labels} but the information is stored in a separate field. If you need a different tag, use the see key + id="dx1-8061"> key instead (or redefine \seealsoname or \glsxtruseseealsoformat, described below). -

    You can display the formatted list of cross-references stored in the

    You can display the formatted list of cross-references stored in the seealso key + id="dx1-8062"> key using: -



    \glsxtruseseealso{label}

    -

    +

    This works in much the same way as \glsxtrusesee but it internally uses -



    \glsxtruseseealsoformat{xr list}

    -

    +

    For example:

    -
    +
     \renewcommand*{\glsxtrpostdescgeneral}{%
    - 
     \ifglshasfield{see}{\glscurrententrylabel} - 
     {, \glsxtrusesee{\glscurrententrylabel}}% - 
     {}% - 
     \ifglshasfield{seealso}{\glscurrententrylabel} - 
     { (\glsxtruseseealso{\glscurrententrylabel})}% - 
     {}% - 
    } -
    -

    -

    The +

    +

    The alias key only contains a single label not a list, but if you want to ensure + id="dx1-8065"> key only contains a single label not a list, but if you want to ensure consistent formatting with \glsxtrusesee and \glsxtruseseealso you can use (from v1.42): -



    \glsxtrusealias{label}

    -

    -

    The actual unformatted comma-separated list ⟨

    +

    The actual unformatted comma-separated list ⟨xr-list⟩ stored in the seealso field + id="dx1-8067"> field can be accessed with: -



    \glsxtrseealsolabels{label}

    -

    +

    This will just expand to the ⟨xr-labels⟩ provided in the value of the seealso key. There’s + id="dx1-8069"> key. There’s no corresponding command to access the see field. If you really need to access it, you + id="dx1-8070"> field. If you really need to access it, you can use commands like \glsxtrfielduse, but remember that it may start with [tag], so it can’t be automatically treated as a simple comma-separated list. -

    As mentioned above, the base

    As mentioned above, the base glossaries package provides \glsseelist, which + id="dx1-8071">, which requires a comma-separated list of labels as the argument. The argument isn’t fully expanded, so it’s not suitable to use, for example, \glsxtrseealsolabels{label} as the argument. For convenience, glossaries-extra provides -



    \glsxtrseelist{xr list}

    -

    +

    which fully expands its argument and passes it to \glsseelist. -

    The

    The seealso key implements the automatic indexing using -


    key implements the automatic indexing using +


    \glsxtrindexseealso{label}{xr list}

    -

    +

    which just does

    }
    unless the xindy option is used with option is used with glossaries v4.30+, in which case a distinct + id="dx1-8076"> v4.30+, in which case a distinct seealso cross-reference class is used instead. -

    The command that produces this “see also” text is -


    The command that produces this “see also” text is +


    \seealsoname

    -

    +

    If \alsoname (provided by language packages) is defined then (provided by language packages) is defined then \seealsoname will simply be defined to \alsoname otherwise it will be defined to see also. -

    The language-sensitive

    The language-sensitive \alsoname is used by general indexing packages, such as makeidx, so if you redefine , so if you redefine \alsoname the change will apply to normal indexes as well as glossaries. If you only want to change the text produced by the seealso key + id="dx1-8080"> key without affecting general indexing (with \index) then redefine \seealsoname instead. -

    +

    -

    Top

    2.4 Entry Display Style Modifications

    -

    Recall from the

    Recall from the glossaries package that commands such as \gls display text at that point in the document (optionally with a hyperlink to the relevant @@ -3930,7 +4244,7 @@ whether or not it actually has a hyperlink. The actual text and the way it’s displayed depends on the command used (such as \gls) and the entry format. -

    The default entry format (

    The default entry format (\glsentryfmt) used in the link-text by commands like @@ -3953,35 +4267,39 @@ class="cmss-10">glossaries-extra to test for regular entries, which are determined as follows:

      -
    • If an entry is assigned to a category that has the +

      If an entry is assigned to a category that has the regular attribute set (see attribute set + (see §6 - Categories), the entry is considered a regular entry, even if it has a value - for the §??sec:categories Categories), the entry is considered a regular entry, + even if it has a value for the short key. In this case \glsentryfmt uses \glsentryfmt + uses \glsgenentryfmt - (provided by (provided by glossaries), which uses the first (or (or + firstplural) value on first - use and the first use and the text (or plural) value on subsequent use. -

    • -
    • An entry that doesn’t have a value for the ) value on subsequent + use. +

    • +
    • +

      An entry that doesn’t have a value for the short key is assumed to be a regular entry, even if the regular\glsentryfmt uses \glsgenentryfmt. -

    • -
    • If an entry does has a value for the short key and hasn’t been marked as - a regular entry through the regular attribute, it’s not considered a regular - entry. In this case \glsentryfmt uses
    • +
    • +

      If an entry does has a value for the short key and hasn’t been marked + as a regular entry through the regular attribute, it’s not considered + a regular entry. In this case \glsentryfmt uses \glsxtrgenabbrvfmt (defined by - glossaries-extra) which is governed by the abbreviation style (see + (defined by glossaries-extra) which is governed by the abbreviation style + (see §4.2 - §??sec:abbrstyle Abbreviation Styles). +

    -

    This means that entries with a short form can be treated as regular entries rather +

    This means that entries with a short form can be treated as regular entries rather than abbreviations if it’s more appropriate for the desired style. -

    As from version 1.04,

    As from version 1.04, \glsentryfmt now puts \glsgenentry in the argument of the new command -



    \glsxtrregularfont{text}

    -

    +

    This just does its argument ⟨text⟩ by default. This means that if you want regular entries in a different font but don’t want that font to apply to abbreviations, then @@ -4041,60 +4362,60 @@ overridden by the textformat attribute. -

    For example: +

    For example:

    -
    +
     \renewcommand*{\glsxtrregularfont}[1]{\textsf{#1}}
    -
    -

    You can access the label through +

    You can access the label through \glslabel. For example, you can query the category:

    -
    +
     \renewcommand*{\glsxtrregularfont}[1]{%
    - 
     \glsifcategory{\glslabel}{general}{\textsf{#1}}{#1}} -
    -

    or query the category attribute, for example, provide a custom attribute called + \glsifcategory{\glslabel}{general}{\textsf{#1}}{#1}} + +

    or query the category attribute, for example, provide a custom attribute called font:

    -
    +
     \glssetcategoryattribute{general}{font}{sf}
    - 
    \renewcommand*{\glsxtrregularfont}[1]{% - 
     \glsifattribute{\glslabel}{font}{sf}{\textsf{#1}}{#1}} -
    -

    As from version 1.21, it’s simpler to just do, for example: +\renewcommand*{\glsxtrregularfont}[1]{% + \glsifattribute{\glslabel}{font}{sf}{\textsf{#1}}{#1}} + +

    As from version 1.21, it’s simpler to just do, for example:

    -
    +
     \glssetcategoryattribute{general}{textformat}{textsf}
    -
    -

    without redefining +

    without redefining \glsxtrregularfont. -

    As from version 1.30, there is also a command for abbreviations that encapsulates +

    As from version 1.30, there is also a command for abbreviations that encapsulates \glsxtrgenabbrvfmt: -



    \glsxtrabbreviationfont{text}

    -

    +

    This also just does its argument by default. Font changes made by abbreviation styles are within ⟨text⟩. -

    The

    The \glspostlinkhook provided by the glossaries package to insert information after the link-text produced by commands like \gls and \glstext is redefined to -



    \glsxtrpostlinkhook

    -

    +

    This command will discard a following full stop (period) if the discardperiod attribute is set to “true” for the current entry’s category. It will also do -



    \glsxtrpostlink

    -

    +

    if a full stop hasn’t be discarded and -



    \glsxtrpostlinkendsentence

    -

    +

    if a full stop has been discarded. -

    It may be that you want to check some other setting (rather than a category +

    It may be that you want to check some other setting (rather than a category attribute) to determine whether or not to discard a following full stop. In which case you can redefine: -



    \glsxtrifcustomdiscardperiod{true}{false}

    -

    +

    You can access the field’s label using \glslabel. This command should do ⟨true⟩ if the @@ -4143,12 +4464,12 @@ definition is simply:

    -
    +
     \newcommand*{\glsxtrifcustomdiscardperiod}[2]{#2}
    -
    -

    which means that no additional checks are performed. (Only the recognised category + +

    which means that no additional checks are performed. (Only the recognised category attributes will be checked.) -

    Avoid the use of

    Avoid the use of \gls-like and \glstext-like commands within the post-link hook as they will cause interference. Consider using commands like @@ -4157,11 +4478,12 @@ class="cmtt-10">\glsentrytext, \glsaccesstext or \glsxtrp (§2.8 §??sec:nested Nested Links) instead.
    -

    -

    By default

    +

    By default \glsxtrpostlink just does \glsxtrpostlinkcategorygeneral category, \glsxtrpostlinkgeneral if it has been defined.) -

    You can define the post-link hook command using

    You can define the post-link hook command using \newcommand, for example:

    -
    +
     \newcommand*{\glsxtrpostlinkgeneral}{%
    - 
     \glsxtrpostlinkAddDescOnFirstUse - 
    } -
    -

    or, as from v1.31, you can use -


    +

    or, as from v1.31, you can use +


    \glsdefpostlink{category}{definition}

    -

    +

    This is simply a shortcut for:

    definition}
    Note that it doesn’t check if the command has already been defined. -

    The sentence-ending hook is slightly more complicated. If the command +

    The sentence-ending hook is slightly more complicated. If the command \glsxtrpostlinkcategory

    There are some convenient commands you might want to use when customizing +

    There are some convenient commands you might want to use when customizing the post-link-text category hooks: -



    \glsxtrpostlinkAddDescOnFirstUse

    -

    +

    This will add the description in parentheses on first use. -

    For example, suppose you want to append the description in parentheses on

    For example, suppose you want to append the description in parentheses on first use for entries in the symbolsymbol -

    -

    -


    +

    +


    \glsxtrpostlinkAddSymbolOnFirstUse

    -

    +

    This will append the symbol (if defined) in parentheses on first use. (Does nothing if the symbol hasn’t been set.) -



    \glsxtrpostlinkAddSymbolDescOnFirstUse

    -

    +

    (New to v1.31.) On first use, this will append \space(⟨description⟩) if the symbol is defined otherwise it just appends \space(⟨description⟩). -

    If you want to provide your own custom format be aware that you can’t use +

    If you want to provide your own custom format be aware that you can’t use \ifglsused within the post-link-text hook as by this point the first use flag will have been unset. Instead you can use -



    \glsxtrifwasfirstuse{true}{false}

    -

    +

    This will do ⟨true⟩ if the last used entry was the first use for that entry, otherwise it @@ -4295,7 +4617,7 @@ locally set by commands like \gls, so don’t rely on it outside of the post-link-text hook. -

    Note that commands like

    Note that commands like \glsfirst and \glsxtrfull\glsxtrfull so that it fakes non-first use otherwise the inline full format would include the footnote, which is inappropriate.
    -

    -

    For example, if you want to place the description in a footnote after the

    +

    For example, if you want to place the description in a footnote after the link-text on first use for the general -

    -

    -

    The +

    +

    The short-postfootnote abbreviation style uses the post-link-text hook to place the footnote after trailing punctuation characters. -

    +

    -

    Top

    2.5 Entry Counting Modifications

    -

    If you are using

    If you are using bib2gls you may find it more convenient to use the record -count commands described in bib2gls you may find it more convenient to use the record count +commands described in §9 §??sec:bib2gls bib2gls: Managing Reference Databases instead. -

    The

    The \glsenableentrycount command is modified to allow for the entrycount attribute. This means that you not only need to enable entry counting with \glsenableentrycount, but you also need to set the appropriate attribute (see \glsenableentrycount, but you also need to set the appropriate attribute (see +§6 -§??sec:categories Categories). -

    For example, instead of just doing: +

    For example, instead of just doing:

    -
    +
     \glsenableentrycount
    -
    -

    you now need to do: + +

    you now need to do:

    -
    +
     \glsenableentrycount
    - 
    \glssetcategoryattribute{abbreviation}{entrycount}{1} -
    -

    This will enable the entry counting for entries in the +

    This will enable the entry counting for entries in the abbreviation category, but any entries assigned to other categories will be unchanged. -

    Further information about entry counting, including the new per-unit feature, is +

    Further information about entry counting, including the new per-unit feature, is described in §7.1 §??sec:entrycount Entry Counting (First Use Flag). -

    +

    -

    Top

    2.6 First Use Flag

    -

    The

    The glossaries package provides -



    \ifglsused{true}{false}

    -

    +

    to determine whether or not an entry has been used. This requires the entry to have been defined. If the entry is undefined, then the underlying boolean variable doesn’t exist and so is neither true nor false. This command will produce an error with the @@ -4432,7 +4757,7 @@ class="cmti-10">true⟩ nor ⟨false⟩ will be performed if ⟨label⟩ doesn’t exist. -

    The

    The record option automatically implements bib2gls. In this case, you may prefer to use: -



    \GlsXtrIfUnusedOrUndefined{labeltrue}{false}

    -

    +

    (new to v1.34) which does ⟨true⟩ if the entry given by ⟨label⟩ is undefined or if the entry is marked as unused. Remember that neither \ifglsused nor \GlsXtrIfUnusedOrUndefined should be used in the post-link hook as the -\GlsXtrIfUnusedOrUndefined should be used in the post-link hook as the first use flag will have already been unset before the hook is performed. -(Instead, first use +flag will have already been unset before the hook is performed. (Instead, +\glsxtrifwasfirstuse should be used, see §2.4 Entry Display Style -Modifications.) -

    There are two new commands provided with version 1.31+: -


    §??sec:entryfmtmods Entry Display +Style Modifications.) +

    There are two new commands provided with version 1.31+: +


    \glslocalreseteach{list}

    -

    +

    and -



    \glslocalunseteach{list}

    -

    +

    These behave like \glslocalreset and \glslocalunset but the argument is a @@ -4493,7 +4819,7 @@ comma-separated list of labels. -

    The internal command used by

    The internal command used by \glsunset is modified first to allow for the changing in entry counting, described above, but also to allow for buffering pending unsets when commands like -

    +
     \ul{Some text about \gls{html}.}
    -
    -

    This causes the confusing error: + +

    This causes the confusing error:

    -
    +
     Glossary entry `{html}' has not been defined.
    -
    -

    The simplest workaround is to put +

    The simplest workaround is to put \gls{html} inside the argument of \mbox. For example: @@ -4525,27 +4851,27 @@ example:

    -
    +
     \ul{Some text about \mbox{\gls{html}}.}
    -
    -

    This can work provided it’s not the first use of this entry. It if is, then unsetting the + +

    This can work provided it’s not the first use of this entry. It if is, then unsetting the first use flag causes a problem and results in the error:

    -
    +
     ! Package soul Error: Reconstruction failed.
    -
    -

    The +

    The glossaries-extra package provides a way of temporarily switching off \glsunset so that it just makes a note of the entry’s label but doesn’t actually perform the change: -



    \GlsXtrStartUnsetBuffering

    -

    +

    The unstarred version doesn’t check for duplicates, so the internal list may end up with multiple occurrences of the same label. The starred version only adds a label to the internal list if it’s not already in it. Note that this @@ -4553,12 +4879,12 @@ buffering only applies to the global \glsunset and does not affect the local \glslocalunset. -

    Later you can restore

    Later you can restore \glsunset and unset all buffered labels using: -



    \GlsXtrStopUnsetBuffering

    -

    +

    The starred form \GlsXtrStopUnsetBuffering* uses \glslocalunset instead. For @@ -4567,84 +4893,84 @@ example:

    -
    +
     \documentclass{article}
    - 
    \usepackage[T1]{fontenc} - 
    \usepackage{soul} - 
    \usepackage{glossaries-extra} - 
    \newabbreviation{html}{HTML}{hypertext markup language} - 
    \begin{document} - 
    \GlsXtrStartUnsetBuffering - 
    \ul{Some text about \mbox{\gls{html}}.} - 
    \GlsXtrStopUnsetBuffering - 
    Next use: \gls{html}. - 
    \end{document} -
    -

    Before you stop the unset buffering, you can iterate over the current buffer +\usepackage[T1]{fontenc} +\usepackage{soul} +\usepackage{glossaries-extra} +\newabbreviation{html}{HTML}{hypertext markup language} +\begin{document} +\GlsXtrStartUnsetBuffering +\ul{Some text about \mbox{\gls{html}}.} +\GlsXtrStopUnsetBuffering +Next use: \gls{html}. +\end{document} + +

    Before you stop the unset buffering, you can iterate over the current buffer using -



    \GlsXtrForUnsetBufferedList{cs}

    -

    +

    where ⟨cs⟩ is a control sequence that takes a single argument (which is the entry label). This is best used with the starred version \GlsXtrStartUnsetBuffering* to avoid duplicates. -

    You can discard the buffer and restore

    You can discard the buffer and restore \glsunset to its normal behaviour with (new to v1.42): -



    \GlsXtrDiscardUnsetBuffering

    -

    -

    Note that since the change in the first use flag now doesn’t occur until +

    +

    Note that since the change in the first use flag now doesn’t occur until \GlsXtrStopUnsetBuffering, multiple references of the same term within the buffering zone will always be treated as first use (if the term wasn’t used before the buffering started).
    -

    -

    There can still be a problem here as content within

    +

    There can still be a problem here as content within \mbox can’t break across a line so you may end up with an overfull line or excessive white space within the paragraph. -

    An alternative is to use

    An alternative is to use \protect:

    -
    +
     \GlsXtrStartUnsetBuffering
    - 
    \ul{Some text about \protect\gls{html}.} - 
    \GlsXtrStopUnsetBuffering -
    -

    but the formatting (underlining in this example) won’t be applied. Another +\ul{Some text about \protect\gls{html}.} +\GlsXtrStopUnsetBuffering + +

    but the formatting (underlining in this example) won’t be applied. Another possibility is:

    -
    +
     \usepackage[T1]{fontenc}
    - 
    \usepackage{soul} - 
    \usepackage{glossaries-extra} - 
    \newabbreviation{html}{HTML}{hypertext markup language} - 
    \newrobustcmd{\gul}[1]{% - 
      {% - 
       \def\glsxtrabbreviationfont##1{\GlsXtrExpandedFmt{\ul}{##1}}% - 
       \def\glsxtrregularfont##1{\GlsXtrExpandedFmt{\ul}{##1}}% - 
       #1% - 
      }% - 
    } - 
    \begin{document} - 
    \ul{Some text about }\gls[textformat=gul]{html}. - 
    Next use: \gls{html}. - 
    \end{document} -
    -

    This moves +

    This moves \gls outside of \ul and uses textformattextformat\gul, which locally changes the regular font and the default abbreviation font to use \ul. It then uses -



    \GlsXtrExpandedFmt{cs}{text}

    -

    +

    which (protected) fully expands ⟨text⟩ before applying ⟨cs⟩, which must be a control @@ -4678,12 +5004,12 @@ something that \ul can’t deal with. For example, if an abbreviation style is used that contains complex formatting or if the field value contains problematic content. -

    +

    -

    Top

    2.7 Plurals

    -

    Some languages, such as English, have a general rule that plurals are formed from +

    Some languages, such as English, have a general rule that plurals are formed from the singular with a suffix appended. This isn’t an absolute rule. There are plenty of exceptions (for example, geese, children, churches, elves, fairies, sheep). The

    To make life easier for languages where the majority of plurals can simply be +

    To make life easier for languages where the majority of plurals can simply be formed by appending a suffix to the singular, the glossaries package lets the plural supplied as well, and you only need to use it for the exceptions. -

    For languages that don’t have this general rule, the

    For languages that don’t have this general rule, the plural field will always need to be supplied, where needed. -

    There are other plural fields, such as

    There are other plural fields, such as firstplural, longpluralshortplural

    If these fields are omitted, the

    If these fields are omitted, the glossaries package follows these rules:

      -
    • If +

      If firstplural is missing, then \glspluralsuffix is appended to the text field) with \glspluralsuffix appended. -

    • -
    • If the
    • +
    • +

      If the longplural field is missing, then \glspluralsuffix is appended to @@ -4773,8 +5101,9 @@ class="cmss-10">long field, if the long field has been supplied. -

    • -
    • If the
    • +
    • +

      If the shortplural field is missing then, with the base \acrpluralsuffix is appended to the short field. +

    -

    This

    This last case is changed with glossaries-extra. With this extension package, the \abbrvpluralsuffix is redefined. In most cases its redefined to use -



    \glsxtrabbrvpluralsuffix

    -

    +

    which defaults to just \glspluralsuffix. Some of the abbreviation styles have their + + + own command for the plural suffix, such as \glsxtrscsuffix, so if you want to completely strip all the plural suffixes used for abbreviations then you need to @@ -4819,10 +5152,7 @@ class="cmtt-10">\abbrvpluralsuffix, which changes with the style. Redefining \acrpluralsuffix will have no affect, since it’s not used by the new abbreviation mechanism. - - - -

    If you require a mixture (for example, in a multilingual document), there are two +

    If you require a mixture (for example, in a multilingual document), there are two attributes that affect the short plural suffix formation. The first is aposplural -

    -

    That is, an apostrophe followed by +

    That is, an apostrophe followed by \abbrvpluralsuffix is appended. The second attribute is shortpluralshort. -

    +

    -

    Top

    2.8 Nested Links

    -

    Complications arise when you use

    Complications arise when you use \gls in the value of the name

    Things can go wrong if we try the following with the

    Things can go wrong if we try the following with the glossaries package:

    -
    +
     \newacronym{ssi}{SSI}{Server Side Includes}
    - 
    \newacronym{html}{HTML}{Hypertext Markup Language} - 
    \newacronym{shtml}{S\gls{html}}{\gls{ssi} enabled \gls{html}} -
    -

    -

    The main problems are: +\newacronym{html}{HTML}{Hypertext Markup Language} +\newacronym{shtml}{S\gls{html}}{\gls{ssi} enabled \gls{html}} + +

    +

    The main problems are:

      -
    1. +

      The first letter upper casing commands, such as \Gls, won’t work for the @@ -4892,28 +5223,30 @@ href="#glo:firstuse">first use if the long form is displayed before the shor -

      +

      +
            \gls{\uppercase ssi} enabled \gls{html}
      -
      -

      which just doesn’t work. Grouping the +

      which just doesn’t work. Grouping the \gls{ssi} doesn’t work either as this will effectively try to do

      -
      +
            \uppercase{\gls{ssi}} enabled \gls{html}
      -
      -

      This will upper case the label +

      This will upper case the label ssi so the entry won’t be recognised. This problem will also occur if you use the all capitals version, such as \GLS.

    2. -
    3. +

      The long and abbreviated forms accessed through \glsentrylong and @@ -4921,16 +5254,18 @@ class="cmtt-10">\glsentrylong\glsentryshort are no longer expandable and so can’t be used be used in contexts that require this, such as PDF bookmarks. -

    4. -
    5. +
    6. +

      The nested commands may end up in the sort key, which will confuse the indexing. -

    7. -
    8. +
    9. +

      The shtml entry produces inconsistent results depending on whether the ssi @@ -4943,18 +5278,19 @@ class="cmtt-10">shtml. For example: -

      +

      +
            This section discusses \gls{ssi}, \gls{html} and \gls{shtml}.
      -
      -

      This produces: -

      -

      This section discusses server side includes (SSI), hypertext - markup language (HTML) and SSI enabled HTML (SHTML).

      -

      So the +

      This produces: +

      +

      This section discusses server side includes (SSI), hypertext + markup language (HTML) and SSI enabled HTML (SHTML).

      +

      So the first use of the shtml entry produces “SSI enabled HTML (SHTML)”. -

      Now let’s suppose the

      Now let’s suppose the html entry is used before the shtml but the ssi entry is @@ -4964,41 +5300,41 @@ class="cmtt-10">shtml entry, for example:

      -
      +
            The sample files are either \gls{html} or \gls{shtml}, but let's
      -      
      first discuss \gls{ssi}. -
      -

      This produces: -

      -

      The sample files are either hypertext markup language (HTML) + first discuss \gls{ssi}. + +

      This produces: +

      +

      The sample files are either hypertext markup language (HTML) or server side includes (SSI) enabled HTML (SHTML), but let’s - first discuss SSI.

      -

      So the +

      So the first use of the shtml entry now produces “server side includes (SSI) enabled HTML (SHTML)”, which looks a bit strange. -

      Now let’s suppose the

      Now let’s suppose the shtml entry is used before (or without) the other two entries:

      -
      +
            This article is an introduction to \gls{shtml}.
      -
      -

      This produces: -

      -

      This article is an introduction to server side includes (SSI) - enabled hypertext markup language (HTML) (SHTML).

      -

      So the +

      This produces: +

      +

      This article is an introduction to server side includes (SSI) + enabled hypertext markup language (HTML) (SHTML).

      +

      So the first use of the shtml entry now produces “server side includes (SSI) enabled hypertext markup language (HTML) (SHTML)”, which is even more strange. -

      This is all aggravated by setting the style using the

      This is all aggravated by setting the style using the glossaries package’s \setacronymstyle. For example: @@ -5006,10 +5342,10 @@ class="cmtt-10">\setacronymstyle. For example:

      -
      +
            \setacronymstyle{long-short}
      -
      -

      as this references the label through the use of +

      as this references the label through the use of \glslabel when displaying the long and short forms, but this value changes with each use of \gls, so @@ -5021,7 +5357,7 @@ class="cmtt-10">\glslabel has been changed to html by \gls{html}. -

      Another oddity occurs if you reset the

      Another oddity occurs if you reset the html entry between uses of the shtml entry. For example: @@ -5029,13 +5365,13 @@ class="cmtt-10">shtml

      -
      +
            \gls{shtml} ... \glsreset{html}\gls{shtml}
      -
      -

      The next use of +

      The next use of shtml produces “Shypertext markup language (HTML)”, which is downright weird. -

      Even without this, the short form has nested formatting commands, which +

      Even without this, the short form has nested formatting commands, which amount to \acronymfont{S\acronymfont{HTML}}. This may not be a problem for some styles, but if you use one of the “sm” styles (that use \textsmaller), this will produce an odd result.

    10. -
    11. +

      Each time the shtml entry is used, the html entry will also be indexed and @@ -5055,9 +5392,10 @@ class="cmtt-10">ssi and html entries. This kind of duplication in the location list isn’t usually particularly helpful to the reader. -

    12. -
    13. +
    14. +

      If hyperref is in use, you’ll get nested hyperlinks and there’s no consistent way @@ -5067,8 +5405,9 @@ class="cmss-10">hyperref

    -

    For these reasons it’s better to use the simple expandable commands +

    For these reasons it’s better to use the simple expandable commands like \glsentrytext or -

    +
     \newacronym
    - 
     [description={\acrshort{ssi} enabled \acrshort{html}}] - 
     {shtml}{SHTML}{SSI enabled HTML} -
    -

    with +

    with glossaries or:

    -
    +
     \newabbreviation
    - 
     [description={\glsxtrshort{ssi} enabled \glsxtrshort{html}}] - 
     {shtml}{SHTML}{SSI enabled HTML} -
    -

    with +

    with glossaries-extra. This fixes all the above listed problems (as long as you don’t use \glsdescfirst use issue, but it doesn’t fix any of the other problems listed above. -

    If it’s simply that you want to use the abbreviation font, you can use +

    If it’s simply that you want to use the abbreviation font, you can use \glsabbrvfont:

    -
    +
     \setabbreviationstyle{long-short-sc}
    - 
    \newabbreviation{ssi}{ssi}{server-side includes} - 
    \newabbreviation{html}{html}{hypertext markup language} - 
    \newabbreviation{shtml}{shtml}{\glsabbrvfont{ssi} enabled - 
    \glsabbrvfont{html}} -
    -

    This will pick up the font style setting of the outer entry (shtml, in the above case). +\newabbreviation{ssi}{ssi}{server-side includes} +\newabbreviation{html}{html}{hypertext markup language} +\newabbreviation{shtml}{shtml}{\glsabbrvfont{ssi} enabled +\glsabbrvfont{html}} + +

    This will pick up the font style setting of the outer entry (shtml, in the above case). This isn’t a problem in the above example as all the abbreviations use the same style. -

    However if you’re really determined to use

    However if you’re really determined to use \gls in a field that may be included within some -

    -

    is treated as + +

    is treated as

    -
    +
     {\glstext[hyper=false,noindex]{ssi}} enabled
    - 
    {\glstext[hyper=false,noindex]{html}} -
    -

    This overcomes problems  +

    This overcomes problems 4, 5 and 6 listed above, but still doesn’t fix problems long-noshort-desc). -

    Additionally, any instance of the long form commands, such as

    Additionally, any instance of the long form commands, such as \glsxtrlong or shtml entry had instead been defined as: -

    +
     \newacronym{shtml}{SHTML}{\acrshort{ssi} enabled \acrshort{html}}
    -
    -

    then (using the +

    then (using the long-short style) the first use will be like

    -
    +
     {\acronymfont{\glsentryshort{ssi}}} enabled
    - 
    {\acronymfont{\glsentryshort{html}}} (SHTML) -
    -

    whereas if the entry is defined as: +{\acronymfont{\glsentryshort{html}}} (SHTML) + +

    whereas if the entry is defined as:

    -
    +
     \newabbreviation{shtml}{SHTML}{\glsxtrshort{ssi} enabled
    - 
    \glsxtrshort{html}} -
    -

    then the +

    then the first use will be like:

    -
    +
     {\glsabbrvfont{\glsentryshort{ssi}}} enabled
    - 
    {\glsabbrvfont{\glsentryshort{html}}} (SHTML) -
    -

    Note that the first optional argument of +

    Note that the first optional argument of \acrshort or \glsxtrshort is ignored in this context. (The final optional argument will be inserted, if present.) The @@ -5256,15 +5595,15 @@ class="cmtt-10">\glsxtrshort. Note that \acrshort doesn’t set the abbreviation style. -

    Alternatively you can use: -


    Alternatively you can use: +


    \glsxtrp{field}{label}

    -

    +

    where ⟨field⟩ is the field label and corresponds to a command in the form \gls\glstext) or in the form \glsxtrfield⟩ (e.g. \glsxtrshort). -

    There’s a shortcut command for the most common fields: -


    There’s a shortcut command for the most common fields: +


    \glsps{label}

    -

    +

    which is equivalent to \glsxtrp{short}{label}, and -



    \glspt{label}

    -

    +

    which is equivalent to \glsxtrp{text}{label}. -

    The

    The \glsxtrp command behaves much like the \glsfmtfield⟩ commands described in §5 Entries in Sectioning Titles, Headers, Captions and Contents but the post-link -hook is also suppressed and extra grouping is added. It automatically sets -§??sec:headtitle Entries in Sectioning Titles, Headers, Captions and Contents but +the post-link hook is also suppressed and extra grouping is added. It automatically +sets hyper to false and noindex to true. If you want to change this, you can use -



    \glsxtrsetpopts{options}

    -

    +

    For example:

    -
    +
     \glsxtrsetpopts{hyper=false}
    -
    -

    will just switch off the hyperlinks but not the indexing. Be careful using + +

    will just switch off the hyperlinks but not the indexing. Be careful using this command or you can end up back to the original problem of nested links. -

    The hyper link is re-enabled within glossaries. This is done through the +

    The hyper link is re-enabled within glossaries. This is done through the command: -



    \glossxtrsetpopts

    -

    +

    which by default just does

    -
    +
     \glsxtrsetpopts{noindex}
    -
    -

    You can redefine this if you want to adjust the setting when +

    You can redefine this if you want to adjust the setting when \glsxtrp is used in the glossary. For example:

    -
    +
     \renewcommand{\glossxtrsetpopts}{\glsxtrsetpopts{noindex=false}}
    -
    -

    -

    For example, + +

    +

    For example,

    -
    +
     \glsxtrp{short}{ssi}
    -
    -

    is equivalent to + +

    is equivalent to

    -
    +
     {\let\glspostlinkhook\relax
    - 
     \glsxtrshort[hyper=false,noindex]{ssi}[]% - 
    } -
    -

    in the main body of the document or + \glsxtrshort[hyper=false,noindex]{ssi}[]% +} + +

    in the main body of the document or

    -
    +
     {\let\glspostlinkhook\relax
    - 
     \glsxtrshort[noindex]{ssi}[]% - 
    } -
    -

    inside the glossary. (Note the post-link hook is locally disabled.) -

    If +

    inside the glossary. (Note the post-link hook is locally disabled.) +

    If \glsxtrp{short}{ssi} occurs in a sectioning mark, it’s equivalent to

    -
    +
     {\glsxtrheadshort{ssi}}
    -
    -

    (which recognises the +

    (which recognises the headuc attribute.) -

    If

    If hyperref has been loaded, then the bookmark will use \glsentryfield⟩ (\glsentryshort{ssi} in the above example). -

    There are similar commands -


    There are similar commands +


    \Glsxtrp{field}{label}

    -

    +

    for first letter upper case and -



    \GLSxtrp{field}{label}

    -

    +

    for all upper case. -

    If you use any of the case-changing commands, such as

    If you use any of the case-changing commands, such as \Gls or \Glstext\gls\glstext, in the definition of entries for any of the fields that may be used by those case-changing commands.
    -

    -

    You can, with care, protect against issue 

    +

    You can, with care, protect against issue 1 by inserting an empty group at the start if the long form starts with a command that breaks the first letter uppercasing commands like \Gls, but you still won’t be able to use the all caps commands, such as \GLS. -

    If you

    If you really need nested commands, the safest method is

    -
    +
     \newabbreviation{shtml}{shtml}{{}\glsxtrp{short}{ssi} enabled
    - 
    \glsxtrp{short}{html}} -
    -

    but be aware that it may have some unexpected results occasionally. -

    Example document: +\glsxtrp{short}{html}} + +

    but be aware that it may have some unexpected results occasionally. +

    Example document:

    -
    +
     \documentclass{report}
    - 
    \usepackage[utf8]{inputenc} - 
    \usepackage[T1]{fontenc} - 
    \usepackage{slantsc} - 
    \usepackage[colorlinks]{hyperref} - 
    \usepackage[nopostdot=false]{glossaries-extra} - 
    \makeglossaries - 
    \setabbreviationstyle{long-short-sc} - 
    \newabbreviation{ssi}{ssi}{server-side includes} - 
    \newabbreviation{html}{html}{hypertext markup language} - 
    \newabbreviation{shtml}{shtml}{{}\glsps{ssi} enabled {}\glsps{html}} - 
    \pagestyle{headings} - 
    \glssetcategoryattribute{abbreviation}{headuc}{true} - 
    \glssetcategoryattribute{abbreviation}{glossdesc}{title} - 
    \begin{document} - 
    \tableofcontents - 
    \chapter{\glsfmtfull{shtml}} - 
    First use: \gls{shtml}, \gls{ssi} and \gls{html}. - 
    Next use: \gls{shtml}, \gls{ssi} and \gls{html}. - 
    \newpage - 
    Next page. - 
    \printglossaries - 
    \end{document} -
    -

    -

    -

    -

    +

    +

    +

    +

    Top

    2.9 Acronym Style Modifications

    -

    The

    The glossaries-extra package provides a new way of dealing with abbreviations and @@ -5502,21 +5842,22 @@ class="cmtt-10">\newacronym to use \newabbreviation (see §4 Abbreviations). The -simplest way to update a document that uses \newacronym from glossaries to +class="tcrm-1000">§??sec:abbreviations +Abbreviations). The simplest way to update a document that uses \newacronym from glossaries to glossaries-extra is do just add

    -
    +
     \setabbreviationstyle[acronym]{long-short}
    -
    -

    before you define any entries. If you have used commands like +

    before you define any entries. If you have used commands like \acrshort, \acrlong\glsxtrshort\acrshort etc. -

    For example, the following document using just

    For example, the following document using just glossaries

    -
    +
     \documentclass{article}
    - 
    \usepackage[acronym,nopostdot,toc]{glossaries} - 
    \makeglossaries - 
    \setacronymstyle{long-short} - 
    \newacronym{html}{HTML}{hypertext markup language} - 
    \begin{document} - 
    \gls{html} - 
    \printglossaries - 
    \end{document} -
    -

    can be easily adapted to use +

    can be easily adapted to use glossaries-extra:

    -
    +
     \documentclass{article}
    - 
    \usepackage[acronym]{glossaries-extra} - 
    \makeglossaries - 
    \setabbreviationstyle[acronym]{long-short} - 
    \newacronym{html}{HTML}{hypertext markup language} - 
    \begin{document} - 
    \gls{html} - 
    \printglossaries - 
    \end{document} -
    -

    Table  +

    Table 2.1 lists the nearest equivalent glossaries-extra abbreviation styles for the predefined acronym styles provided by glossaries, but note that the new styles use different formatting commands. See §4.4 Predefined Abbreviation Styles for further -details. +class="tcrm-1000">§??sec:predefabbrvstyles Predefined +Abbreviation Styles for further details.

    -


    @@ -5618,39 +5960,39 @@ class="cmtt-10">]{⟨new-style-name}

    Old Style Name

    New Style Name

    long-sc-short

    long-short-sc

    long-sm-short

    long-short-sm

    long-sp-short

    long-short
    #1}}

    short-long

    short-long

    sc-short-long

    short-sc-long

    sm-short-long

    short-sm-long

    long-short-desc

    long-short-desc

    long-sc-short-desc

    long-short-sc-desc

    long-sm-short-desc

    long-short-sm-desc

    long-sp-short-desc

    long-short-desc
    #1}}

    short-long-desc

    short-long-desc

    sc-short-long-desc

    short-sc-long-desc

    sm-short-long-desc

    short-sm-long-desc

    dua

    long-noshort

    dua-desc

    long-noshort-desc

    footnote

    short-footnote

    footnote-sc

    short-sc-footnote

    footnote-sm

    short-sm-footnote

    footnote-desc

    short-footnote-desc

    footnote-sc-desc

    short-sc-footnote-desc

    footnote-sm-desc

    short-sm-footnote-desc

    @@ -5843,7 +6185,7 @@ class="cmss-10">short-sm-footnote-desc
    -

    The reason for introducing the new style of abbreviation commands provided by +

    The reason for introducing the new style of abbreviation commands provided by glossaries-extra is because the original acronym commands provided by glossaries are @@ -5852,13 +6194,13 @@ class="cmss-10">glossaries-extra. However, if you really want to restore the generic acronym function provided by glossaries you can use -



    \RestoreAcronyms

    -

    +

    (before any use of \newacronym). -

    \RestoreAcronyms should not be used in combination with the newer glossaries-extra abbreviations. Don’t combine old and new style entries with the same @@ -5868,7 +6210,7 @@ class="cmss-10">typeglossaries acronym mechanism doesn’t work well with the newer glossaries-extra commands. -

    If you use

    -

    -

    In general, there’s rarely any need for \RestoreAcronyms. If you have a -document that uses

    +

    In general, there’s rarely any need for \RestoreAcronyms. If you have a document +that uses \newacronymstyle, then it’s best to either stick with just -glossaries for that document or define an equivalent abbreviation style with -, then it’s best to either stick with just glossaries for that +document or define an equivalent abbreviation style with \newabbreviationstyle. (See . +(See §4.5 §??sec:newabbrvstyle Defining New Abbreviation Styles for further details.) -



    \glsacspace{label}

    -

    +

    The space command \glsacspace used by the long-sp-short acronym style provided by glossaries is modified so that it uses -



    \glsacspacemax

    -

    +

    instead of the hard-coded 3em. This is a command not a length and so can be changed using \renewcommand. -

    Any of the new abbreviation styles that use

    Any of the new abbreviation styles that use \glsxtrfullsep (such as \glsacspace with

    -
    +
     \renewcommand*{\glsxtrfullsep}[1]{\glsacspace{#1}}
    -
    -

    -

    The +

    +

    The first use acronym font command -



    \firstacronymfont{text}

    -

    +

    is redefined to use the first use abbreviation font command \glsfirstabbrvfont. This will be reset if you use \RestoreAcronyms. -

    The subsequent use acronym font command -


    The subsequent use acronym font command +


    \acronymfont{text}

    -

    +

    is redefined to use the subsequent use abbreviation font command \glsabbrvfont. This will be reset if you use \RestoreAcronyms.

    -

    Top

    2.10 Glossaries

    -

    The

    The \newignoredglossary{targeturl attribute to create a link to an external URL. (See attribute to create a link to an external URL. (See +§6 -Categories for further details.) As from v1.12 both the starred and unstarred version -check that the glossary doesn’t already exist. (The glossaries package omits this -check.) -

    You can now provide an ignored glossary with: -


    §??sec:categories Categories for further details.) As from v1.12 both the starred and +unstarred version check that the glossary doesn’t already exist. (The glossaries +package omits this check.) +

    You can now provide an ignored glossary with: +


    \provideignoredglossary{type}

    -

    +

    which will only define the glossary if it doesn’t already exist. This also has a starred version that doesn’t automatically switch off hyperlinks. -

    The individual glossary displaying commands

    The individual glossary displaying commands \printglossary, \printnoidxglossary\printunsrtglossary have extra keys:

      -
    • +

      target. This is a boolean key which can be used to switch off the automatic hypertarget for each entry. Unlike \glsdisablehyper this doesn’t switch -

    • -
    • +
    • +

      targetnameprefix={}. Another way of avoiding duplicate target names class="cmtt-10">\glolinkprefix this doesn’t affect any hyperlinks (such as those created with \gls). -

    • -
    • +
    • +

      prefix={prefix key in commands like \gls. -

    • -
    • +
    • +

      label={} and also defines class="cmtt-10">\@currentlabelname to the glossary’s TOC title (to provide text for \nameref). You can also set the label before the glossary using: -



      \glsxtrsetglossarylabel{label}

      -

      +

      but take care of duplicate labels if it’s not scoped.

    • -
    • +

      groups. This is a boolean key (new to v1.44) designed for use with variations). It has no effect with \printglossary and \printnoidxglossary. -

      If true (default), group formation (group header and group skip) will be +

      If true (default), group formation (group header and group skip) will be attempted if the group key has been defined and set. Note that some styles @@ -6074,7 +6423,8 @@ class="cmss-10">group

    • -
    • +

      leveloffset. This key (new to v1.44) is designed for use with \printunsrtglossary @@ -6084,7 +6434,7 @@ class="cmtt-10">… variations). It has no effect with \printglossary and \printnoidxglossary. -

      The value may either be a simple integer ⟨

      The value may either be a simple integer ⟨n⟩ to indicate assignment or in the form ++n⟩ to indicate an increment. This will locally as class="cmmi-10">N more than it would normally be (where N is the level offset). For example, a top-level entry (that is, an entry without a + + + parent) would normally have a hierarchical level of 0. With a level offset of 1, it would be treated by the glossary style as though it was actually a level 1 entry. (Remember that some styles don’t support hierarchical glossaries.) -

      Note that the group formation (if supported) will still occur between entries +

      Note that the group formation (if supported) will still occur between entries that don’t have a parent, regardless of the level offset. This can cause odd - results.

    - - - -

    + results but can be switched off with groups. See Gallery: Inner or Nested + Glossaries for an example.

    +

    -

    Top

    2.10.1 Glossary Style Modifications

    -

    The

    The glossaries-extra-stylemods package (more conveniently loaded through the glossaries package. These modifications are described in more detail in §2.10.1 §??sec:stylemods The glossaries-extra-stylemods Package. -

    The

    The glossaries package tries to determine the group title from its label by first checking if \glsxtr@grouptitle@label⟩ which shouldn’t clash with another package. You can set the group title using -



    \glsxtrsetgrouptitle{label}{title}

    -

    +

    For example:

    -
    +
     \glsxtrsetgrouptitle{A}{A (a)}
    -
    -

    This uses a global assignment. If you need to scope the change you can + +

    This uses a global assignment. If you need to scope the change you can use -



    \glsxtrlocalsetgrouptitle{label}{title}

    -

    -

    +

    +

    Style Hooks
    -

    The commands

    The commands \glossentryname and \glossentrydescglossdesc and glossdescfont attributes -(see attributes (see +§6 §??sec:categories Categories). This means you can make simple font or case-changing modifications to the name and description without defining a new glossary style. -

    (New to version 1.42.) The command

    (New to version 1.42.) The command \glossentrysymbol is modified to take into account the TeX code⟩ part is robust and deals with the actual typesetting of the symbol. The ⟨PDF⟩ part is simply: -



    \glsentrypdfsymbol{label}

    -

    +

    which is defined to just do \glsentrysymbol{labelsymbol\glsentrypdfsymbol to use a more appropriate field. (If you do redefine this command, remember that it needs to fully expand.) -

    For example, if you are using

    For example, if you are using glossaries-accsupp, you could use the symbolaccess -

    -

    Alternatively, if you are using +

    Alternatively, if you are using bib2gls you can use the TeX parser library to @@ -6270,11 +6626,11 @@ options:

    -
    +
       replicate-fields={symbol=user1},
    - 
      interpret-fields={user1} -
    -

    This stores the interpreted value of the symbol in the +

    This stores the interpreted value of the symbol in the user1 field, so you can then do: @@ -6282,24 +6638,24 @@ do:

    -
    +
     \renewcommand{\glsentrypdfsymbol}[1]{\glsentryuseri{#1}}
    -
    -

    (You may need XƎLATEX or LuaLATEX with this method.) This allows + +

    (You may need XƎLATEX or LuaLATEX with this method.) This allows \glossentrysymbol to be used in a section heading with standalone definitions. -

    If you want to adapt a style to use another field instead of

    If you want to adapt a style to use another field instead of name, you can use -



    \glossentrynameother{label}{field}

    -

    +

    This behaves just like \glossentryname (that is, it obeys description). See the key to field mappings table in the glossaries user manual. -

    There is a hook after

    There is a hook after \glossentryname and \Glossentryname: -



    \glsxtrpostnamehook{label}

    -

    +

    By default this checks the indexname attribute. If the attribute exists for the category to which the label belongs, then the name is automatically indexed using -



    \glsxtrdoautoindexname{}{indexname}

    -

    +

    See §8 §??sec:autoindex Auto-Indexing for further details. -

    As from version 1.04, the post-name hook

    As from version 1.04, the post-name hook \glsxtrpostnamehook will also use \glsxtrpostname -

    +
     \newcommand*{\glsxtrpostnamesymbol}{\space
    - 
     (\glsentrysymbol{\glscurrententrylabel})} -
    -

    For convenience, as from v1.31, you can use -


    +

    For convenience, as from v1.31, you can use +


    \glsdefpostname{category}{definition}

    -

    +

    This is simply a shortcut for:

    definition}
    Note that it doesn’t check if the command has already been defined. -

    As from version 1.25, the post-name hook also does -


    As from version 1.25, the post-name hook also does +


    \glsextrapostnamehook{label}

    -

    +

    (before \glsxtrpostnamecategory⟩) to allow for additional non-category related code. This does nothing by default. -

    The post-description code used within the glossary is modified so that it also +

    The post-description code used within the glossary is modified so that it also does -



    \glsxtrpostdescription

    -

    +

    This occurs before the original \glspostdescription, so if the nopostdot=false option is used, it will be inserted before the terminating full stop. -

    This new command will do

    This new command will do \glsxtrpostdesccategory⟩ if it exists, where ⟨\glsxtrpostdescacronym for entries with the category set class="cmss-10">acronym. For convenience, as from v1.31, you can use -



    \glsdefpostdesc{category}{definition}

    -

    +

    This is simply a shortcut for:

    definition}
    Note that it doesn’t check if the command has already been defined. -

    Since both

    Since both \glossentry and \subglossentry set -



    \glscurrententrylabel

    -

    +

    to the label for the current entry, you can use this within the definition of these post-description hooks if you need to reference the label. -

    For example, suppose you want to insert the plural form in brackets after the +

    For example, suppose you want to insert the plural form in brackets after the description in the glossary, but only for entries in the general category, then you could @@ -6472,14 +6829,14 @@ do:

    -
    +
     \renewcommand{\glsxtrpostdescgeneral}{\space
    - 
     (plural: \glsentryplural{\glscurrententrylabel})} -
    -

    This means you don’t have to define a custom glossary style, which you may find + (plural: \glsentryplural{\glscurrententrylabel})} + +

    This means you don’t have to define a custom glossary style, which you may find more complicated. (It also allows more flexibility if you decide to change the underlying glossary style.) -

    This feature can’t be used for glossary styles that ignore

    This feature can’t be used for glossary styles that ignore \glspostdescription or if you redefine \glspostdescription without including nopostdot option to suppress the terminating full stop.) See §2.10.1 §??sec:stylemods The glossaries-extra-stylemods Package to patch the predefined styles provided by glossaries that are missing \glspostdescription.
    -

    -

    +

    +

    Number List
    -

    The

    The number list is now placed inside the argument of -



    \GlsXtrFormatLocationList{number list}

    -

    +

    This is internally used by \glossaryentrynumbers. The \glossaryentrynumbers so that it doesn’t display th id="dx1-18004">number list, but it still saves the number list in case it’s required. -

    If you want to suppress the

    If you want to suppress the number list always use the nonumberlist option instead of redefining \glossaryentrynumbers to do nothing.
    -

    -

    For example, to change the font for the entire

    +

    For example, to change the font for the entire number list redefine \GlsXtrFormatLocationList as appropriate. Don’t modify \glossaryentrynumbers. -

    Sometimes users like to insert “page” or “pages” in front of the

    Sometimes users like to insert “page” or “pages” in front of the number list. This is quite fiddly to do with the base glossaries package, but glossaries-extra provides a way of doing this. First you need to enable this option and specify the text to display using: -



    \GlsXtrEnablePreLocationTag{page}{pages}

    -

    +

    where ⟨page⟩ is the text to display if the number list only contains a single location and @@ -6559,28 +6917,28 @@ class="cmti-10">pages⟩ is the text to display otherwise. For examp

    -
    +
     \GlsXtrEnablePreLocationTag{Page: }{Pages: }
    -
    -

    An extra run is required when using this command. -

    Use +

    An extra run is required when using this command. +

    Use glsignore not @gobble as the format if you want to suppress the page number (and only index the entry once).
    -

    -

    See the accompanying sample file

    +

    See the accompanying sample file sample-pages.tex. -

    Note that

    Note that bib2gls can be instructed to insert a prefix at the start of non-empty location lists, which can be used as an alternative to \GlsXtrEnablePreLocationTag. -

    Location lists displayed with \printnoidxglossary internally use -



    \glsnoidxdisplayloc{prefixformat}{location}

    -

    +

    This command is provided by glossaries, but is modified by glossaries-extra to check @@ -6600,42 +6958,42 @@ class="cmtt-10">( and ) which are discarded to obtain the actual control sequence name that forms the location formatting command. -

    If the range identifiers aren’t present, this just uses -


    If the range identifiers aren’t present, this just uses +


    \glsxtrdisplaysingleloc{format}{location}

    -

    +

    otherwise it uses -



    \glsxtrdisplaystartloc{format}{location}

    -

    +

    for the start of a range (where the identifier has been stripped from ⟨format⟩) or -



    \glsxtrdisplayendloc{format}{location}

    -

    +

    for the end of a range (where the identifier has been stripped from ⟨format⟩). -

    By default the start range command saves the format in -


    By default the start range command saves the format in +


    \glsxtrlocrangefmt

    -

    +

    and does
    \glsxtrdisplaysingleloc{}
    (If the format is empty, it will be replaced with glsnumberformat.) -

    The end command checks that the format matches the start of the range, +

    The end command checks that the format matches the start of the range, does -



    \glsxtrdisplayendlochook{format}{location}

    -

    +

    (which does nothing by default), followed by
    \glsxtrdisplaysingleloc{}
    and then sets \glsxtrlocrangefmt to empty. -

    This means that the list +

    This means that the list

    -
    +
     \glsnoidxdisplayloc{}{page}{(textbf}{1},
    - 
    \glsnoidxdisplayloc{}{page}{textbf}{1}, - 
    \glsnoidxdisplayloc{}{page}{)textbf}{1}. -
    -

    doesn’t display any differently from +\glsnoidxdisplayloc{}{page}{textbf}{1}, +\glsnoidxdisplayloc{}{page}{)textbf}{1}. + +

    doesn’t display any differently from

    -
    +
     \glsnoidxdisplayloc{}{page}{textbf}{1},
    - 
    \glsnoidxdisplayloc{}{page}{textbf}{1}, - 
    \glsnoidxdisplayloc{}{page}{textbf}{1}. -
    -

    but it does make it easier to define your own custom list handler that can +\glsnoidxdisplayloc{}{page}{textbf}{1}, +\glsnoidxdisplayloc{}{page}{textbf}{1}. + +

    but it does make it easier to define your own custom list handler that can accommodate the ranges. -

    +

    The glossaries-extra-stylemods Package
    -

    As from v1.02,

    As from v1.02, glossaries-extra now includes the package glossaries-extra-stylemods that @@ -6708,12 +7066,12 @@ class="cmss-10">glossaries-extra. For example:

    -
    +
     \usepackage{glossaries-extra}
    - 
    \usepackage{glossary-longragged} - 
    \usepackage{glossaries-extra-stylemods} -
    -

    Alternatively you can load +

    Alternatively you can load glossary-name.sty at the same time by passing ⟨glossaries-extra-stylemods -

    -

    Another option is to use the +

    Another option is to use the stylemods key when you load long3col -

    -

    Or the value of +

    Or the value of stylemods may be a comma-separated list of the style package @@ -6755,19 +7113,19 @@ identifiers. For example:

    -
    +
     \usepackage[style=mcoltree,stylemods=mcols]{glossaries-extra}
    -
    -

    Remember to group the value if it contains any commas: + +

    Remember to group the value if it contains any commas:

    -
    +
     \usepackage[stylemods={mcols,longbooktabs}]{glossaries-extra}
    -
    -

    -

    Note that the +

    +

    Note that the inline style is dealt with slightly differently. The original definition provided by the nopostdot option, but the post-description category hook can still be used. -

    The

    The tabular-like styles, such as \printglossary, \printnoidxglossary or \printunsrtglossary, you must also reset the glossary style. -

    As from version 1.21, the hard-coded

    As from version 1.21, the hard-coded \space before the number list in many of the predefined styles is replaced with -



    \glsxtrprelocation

    -

    +

    This just defaults to \space but may be redefined as required. For example:

    -
    +
     \renewcommand{\glsxtrprelocation}{\dotfill}
    -
    -

    -

    The +

    +

    The list styles use -



    \glslistprelocation

    -

    +

    (which defaults to \glsxtrprelocation) for top-level items and -



    \glslistchildprelocation

    -

    +

    (which defaults to \glslistprelocation) for child items. -

    As from v1.31, the description (including the post-description hook) is governed +

    As from v1.31, the description (including the post-description hook) is governed by: -



    \glslistdesc{label}

    -

    +

    for the list and altlist styles (but not the listdotted variations). -

    For just the

    For just the list style and its letter group variations (not the altlistlistdottednumber list for child entries is followed by -



    \glslistchildpostlocation

    -

    +

    which defaults to a full stop. -

    The default value of

    The default value of \glslistdottedwidth is changed so that it’s set at the start of the document (if it hasn’t been changed in the preamble). This should take into account situations where \hsize isn’t set until the start of the document. -

    The separator between groups (if not

    The separator between groups (if not nogroupskip) is now given by: -



    \glslistgroupskip

    -

    +

    This defaults to \indexspace with penalties to deter page breaks. This command isn’t used if nogroupskip is set. -

    The

    The glossary-tree package introduced new commands in v4.22, \glstreegroupheaderfmt\glstreenamefmt has been defined, as from v1.31 glossaries-extra-stylemods defines: -



    \glstreedefaultnamefmt{text}

    -

    +

    which simply does \textbf{text\glstreegroupheaderfmt and \glstreenavigationfmt all in terms of \glstreedefaultnamefmt. -

    This means that if you want to change all three to use a particular style you only +

    This means that if you want to change all three to use a particular style you only need to redefine \glstreedefaultnamefmt, but if you only want to redefine \glstreenamefmt without affecting the other two commands, then you now can. -

    The separator between groups without headers is given by: -


    The separator between groups without headers is given by: +


    \glstreegroupskip

    -

    +

    This defaults to just \indexspace without penalties. This command isn’t @@ -6967,24 +7325,24 @@ class="cmss-10">nogroupskip\glstreeheadergroupskip in v1.42 as they are inappropriate when there’s no header.) -

    The separator between groups with headers is now given by (as from +

    The separator between groups with headers is now given by (as from v1.42): -



    \glstreegroupheaderskip

    -

    +

    This defaults to \glstreegroupskip with penalties to deter page breaks after the group heading. -

    The styles that display the group titles now use: -


    The styles that display the group titles now use: +


    \glstreePreHeader{label}{title}

    -

    +

    where ⟨label⟩ is the group label and ⟨title⟩ is the group title. This does nothing by @@ -6996,345 +7354,378 @@ then:

    -
    +
     \renewcommand{\glstreePreHeader}[2]{%
    - 
     \pdfbookmark[1]{#2}{\currentglossary.#1}% - 
    } -
    -

    will insert section-level bookmarks. The use of +

    will insert section-level bookmarks. The use of \currentglossary helps to provide unique bookmark labels in the event of multiple glossaries. -

    The

    The glossary-tree package provides the commands +


    \glstreepredesc

    +

    +and +


    \glstreechildpredesc

    +

    +(which both default to a space) and uses them in the tree-like styles, but not for the +alttree style. The glossaries-extra-stylemods package modifies the alttree style so that it +has equivalent hooks: +


    \glsalttreepredesc

    +

    +and +


    \glsalttreechildpredesc

    +

    +These do nothing by default. +

    The index-like and -like and tree-like styles insert the pre--like styles insert the pre-number list space with -



    \glstreeprelocation

    -

    +

    (which defaults to \glsxtrprelocation) for top-level items and -



    \glstreechildprelocation

    -

    +

    (which defaults to \glstreeprelocation) for child items. -

    As from version 1.31, the

    As from version 1.31, the glossaries-extra-stylemods package also provides: -



    \glstreenonamedesc{label}

    -

    +

    which is used by the treenoname styles to display the pre-description separator, the + id="dx1-19060"> styles to display the pre-description separator, the description and the post-description hook. Similarly for the symbol: -



    \glstreenonamesymbol{label}

    -

    +

    The above are just used for top-level entries. Child entries don’t have the name or symbol displayed for the treenoname styles, so there’s only a command for the child + id="dx1-19062"> styles, so there’s only a command for the child description: -



    \glstreenonamechilddesc{label}

    -

    -

    For the

    + + + +

    For the tree styles (but not the styles (but not the treenoname or or alttree styles), the description is + id="dx1-19066"> styles), the description is displayed using: -



    \glstreedesc{label}

    -

    +

    and the symbol with: -



    \glstreesymbol{label}

    -

    +

    Again the above two commands are just for top-level entries. The child entries use: -



    \glstreechilddesc{label}

    -

    +

    for the description and -



    \glstreechildsymbol{label}

    -

    +

    for the symbol. As from version 1.41, there are now wrapper commands for \glstreedesc and \glstreechilddesc that check for the description - - - and symbol to determine what separator to use before the page list. These are: -



    \glstreeDescLoc{label}{location}

    -

    +

    for top-level entries and -



    \glstreeChildDescLoc{label}{location}

    -

    +

    for sub-entries. -

    If either the symbol or description is present these will use

    If either the symbol or description is present these will use \glstreeprelocation or \glstreechildprelocation, respectively. Otherwise, both will use (from v1.42): -



    \glstreeNoDescSymbolPreLocation

    -

    +

    The default is a space. This means that you could have, say, a comma followed by a space for terms that are simply an alias, but just have a space for terms that have a description that ends with a full stop (or that just have a symbol without a description) where the comma would be inappropriate. -

    Note that version 1.42 has corrected an error that was introduced to v1.41 that +

    Note that version 1.42 has corrected an error that was introduced to v1.41 that caused the name to run into the location list if there was no symbol and no description. -

    As from version 1.05, the

    As from version 1.05, the glossaries-extra-stylemods package provides some additional commands for use with the alttree style to make it easier to modify. These + id="dx1-19074"> style to make it easier to modify. These commands are only defined if the glossary-tree package has already been loaded, + id="dx1-19075"> package has already been loaded, which is typically the case unless the notree option has been used when loading + id="dx1-19076"> option has been used when loading glossaries. -



    \gglssetwidest[level]{name}

    -

    +

    (New to version 1.21.) This is like \glssetwidest (provided by glossary-tree) but + id="dx1-19078">) but performs a global assignment. -



    \eglssetwidest[level]{name}

    -

    + + + +

    This is like \glssetwidest but performs a protected expansion on ⟨name⟩. This has a localised effect. For a global setting, use -



    \xglssetwidest[level]{name}

    -

    +

    The following only set the value if ⟨name⟩ is wider than the current value (new to version 1.23). Local update: -



    \glsupdatewidest[level]{name}

    -

    +

    Global update: -



    \gglsupdatewidest[level]{name}

    -

    +

    Locale update (expands ⟨name⟩): -



    \eglsupdatewidest[level]{name}

    -

    +

    Global update (expands ⟨name⟩): - - - -



    \xglsupdatewidest[level]{name}

    -

    -

    The widest entry value can later be retrieved using -


    +

    The widest entry value can later be retrieved using +


    \glsgetwidestname

    -

    +

    for the top-level entries and -



    \glsgetwidestsubname{level}

    -

    +

    for sub-entries, where ⟨level⟩ is the level number. -

    Note that if you are using

    Note that if you are using bib2gls, you can use the resource option set-widest which will try to determine the widest name of all the selected entries. This isn’t guaranteed to work as it may depend on fonts or commands that bib2gls can’t replicate, but it should be suitable for names that just consist of text, and can be more efficient than iterating over all the defined entries using TeX. -

    The command

    The command \glsfindwidesttoplevelname provided by glossary-tree has a + id="dx1-19089"> has a CamelCase synonym: -



    \glsFindWidestTopLevelName[glossary list]

    -

    +

    Similar commands are also provided: -



    \glsFindWidestUsedTopLevelName[glossary list]

    -

    +

    This has an additional check that the entry has been used. Naturally this is only useful if the glossaries that use the alttree style occur at the end of the document. + id="dx1-19092"> style occur at the end of the document. This command should be placed just before the start of the glossary. (Alternatively, place it at the end of the document and save the value in the auxiliary file for the next run.) -



    \glsFindWidestUsedAnyName[glossary list]

    -

    + + + +

    This is like the previous command but if doesn’t check the parent key. This is useful if + id="dx1-19094"> key. This is useful if all levels should have the same width for the name. -



    \glsFindWidestAnyName[glossary list]

    -

    +

    This is like the previous command but doesn’t check if the entry has been used. -



    \glsFindWidestUsedLevelTwo[glossary list]

    -

    +

    This is like \glsFindWidestUsedTopLevelName but also sets the first two sub-levels as well. Any entry that has a great-grandparent is ignored. -



    \glsFindWidestLevelTwo[glossary list]

    -

    +

    This is like the previous command but doesn’t check if the entry has been used. -



    \glsFindWidestUsedAnyNameSymbol[glossary list]{register}

    - - - -

    +

    This is like \glsFindWidestUsedAnyName but also measures the symbol. The length of the widest symbol is stored in ⟨register⟩. -



    \glsFindWidestAnyNameSymbol[glossary list]{register}

    -

    +

    This is like the previous command but it doesn’t check if the entry has been used. -



    \glsFindWidestUsedAnyNameSymbolLocation[glossary list]{register}{location register}

    -

    +

    This is like \glsFindWidestUsedAnyNameSymbol but also measures the number list. This requires \glsentrynumberlist (see the (see the glossaries user manual). The length of the widest symbol is stored in ⟨symbol register⟩ and the length of the widest number + id="dx1-19103">number list is stored in ⟨location register⟩. -



    \glsFindWidestAnyNameSymbolLocation[glossary list]{register}{location register}

    -

    +

    This is like the previous command but it doesn’t check if the entry has been used. -



    \glsFindWidestUsedAnyNameLocation[glossary list]{register}

    -

    +

    This is like \glsFindWidestUsedAnyNameSymbolLocation but doesn’t measure the symbol. The length of the widest number list is stored in ⟨number list is stored in ⟨register⟩. -



    \glsFindWidestAnyNameLocation[glossary list]{register}

    -

    +

    This is like the previous command but doesn’t check if the entry has been used. -

    The layout of the symbol, description and number list is governed by -


    The layout of the symbol, description and number list is governed by + + + +


    \glsxtralttreeSymbolDescLocation{label}{number list}

    -

    +

    for top-level entries and -



    \glsxtralttreeSubSymbolDescLocation{label}{number list}

    -

    +

    for sub-entries. -

    There is now a user level command that performs the initialisation for the

    There is now a user level command that performs the initialisation for the alttree + id="dx1-19111"> style: -



    \glsxtralttreeInit

    -

    -

    The paragraph indent for subsequent paragraphs in multi-paragraph descriptions +

    +

    The paragraph indent for subsequent paragraphs in multi-paragraph descriptions is provided by the length -



    \glsxtrAltTreeIndent

    -

    - - - -

    For additional commands that are available with the

    +

    For additional commands that are available with the alttree style, + id="dx1-19114"> style, see the documented code (glossaries-extra-code.pdf). See also the accompanying sample files sample-alttree-marginpar.tex.

    -

    -

    +

    Top

    3. New Glossary Styles

    -

    The

    The glossaries-extra package comes with some new styles. The associated style package needs to be loaded. This can be done with \usepackage but it’s simpler to @@ -7460,11 +7851,11 @@ href="#styopt.stylemods">stylemods option.

    -

    Top

    3.1 glossary-bookindex package

    -

    As from v1.21,

    As from v1.21, glossaries-extra has a new supplementary package glossary-bookindex @@ -7480,12 +7871,12 @@ style:

    -
    +
     \usepackage{glossaries-extra}
    - 
    \usepackage{glossary-bookindex} - 
    \setglossarystyle{bookindex} -
    -

    or use both the +

    or use both the stylemods and style -

    -

    The +

    The bookindex style only supports a maximum hierarchical level of 2 (top-level, level 1 and level 2). It’s primarily designed for use with record package option.) -

    The number of columns is given by -


    The number of columns is given by +


    \glsxtrbookindexcols

    -

    +

    which defaults to 2. -

    This style uses the

    This style uses the multicols environment. If the command -



    \glsxtrbookindexcolspread

    -

    +

    isn’t empty then it’s supplied as the optional argument following \begin{multicols} multicolsmulticols* by redefining -



    \glsxtrbookindexmulticolsenv

    -

    +

    For example

    -
    +
     \renewcommand{\glsxtrbookindexmulticolsenv}{multicols*}
    -
    -

    -

    Each top-level entry is displayed using -


    +

    +

    Each top-level entry is displayed using +


    \glsxtrbookindexname{label}

    -

    +

    where the entry is identified by ⟨label⟩. This just does \glossentryname{ -

    +
     \renewcommand*{\glsxtrbookindexname}[1]{%
    - 
     \glossentryname{#1}% - 
     \ifglshassymbol{#1}{\space (\glossentrysymbol{#1})}{}% - 
    } -
    -

    or if you want the description (if set): + \glossentryname{#1}% + \ifglshassymbol{#1}{\space (\glossentrysymbol{#1})}{}% +} + +

    or if you want the description (if set):

    -
    +
     \renewcommand*{\glsxtrbookindexname}[1]{%
    - 
     \glossentryname{#1}% - 
     \ifglshasdesc{#1}{\space \glossentrydesc{#1}\glspostdescription}{}% - 
    } -
    -

    (which picks up the post-description hook). -

    Alternatively you can use the +

    (which picks up the post-description hook). +

    Alternatively you can use the \glsxtrpostnamecategory⟩ hook to append information after the name according to the entry’s category. -

    Sub-entries are displayed using -


    Sub-entries are displayed using +


    \glsxtrbookindexsubname{label}

    -

    +

    which just defaults to \glsxtrbookindexname{label}. -

    The separator used before the location list for top-level entries is given +

    The separator used before the location list for top-level entries is given by -



    \glsxtrbookindexprelocation{label}

    -

    +

    where ⟨label⟩ is the entry’s label. This checks if the location field has been set. If it @@ -7621,10 +8012,10 @@ has, it does

    -
    +
     ,\glsxtrprelocation
    -
    -

    otherwise it just does +

    otherwise it just does \glsxtrprelocation (which defaults to \space). If you’re not using bib2gls, the location field won’t be set. -

    The separator used before the location list for sub-entries is given by -


    The separator used before the location list for sub-entries is given by +


    \glsxtrbookindexsubprelocation{label}

    -

    +

    which defaults to \glsxtrbookindexprelocation{label}. -

    The actual location list is encapsulated with: -


    The actual location list is encapsulated with: +


    \glsxtrbookindexlocation{label}{location list}

    -

    +

    for top-level entries and -



    \glsxtrbookindexsublocation{label}{location list}

    -

    +

    for sub-entries. These both just do ⟨location list⟩ by default. -

    The separator used between a top-level parent and child entry is given +

    The separator used between a top-level parent and child entry is given by -



    \glsxtrbookindexparentchildsep

    -

    +

    This defaults to \nopagebreak. -

    The separator used between a sub-level parent and child entry is given +

    The separator used between a sub-level parent and child entry is given by -



    \glsxtrbookindexparentsubchildsep

    -

    +

    This defaults to \glsxtrbookindexparentchildsep. -

    The separator between top-level entries is given by -


    The separator between top-level entries is given by +


    \glsxtrbookindexbetween{label1}{label2}

    -

    +

    This comes after the entry given by ⟨label1⟩, if the entry has no children, or after the last descendent otherwise, so it always comes immediately before the entry given by ⟨label2⟩ unless the entry occurs at the start of a group. This does nothing by default. -

    The separator between two level 1 entries is given by -


    The separator between two level 1 entries is given by +


    \glsxtrbookindexsubbetween{label1}{label2}

    -

    -

    The separator between two level 2 entries is given by -


    +

    The separator between two level 2 entries is given by +


    \glsxtrbookindexsubsubbetween{label1}{label2}

    -

    +

    At the end of each letter group, the following hooks are done in order: -



    \glsxtrbookindexsubsubatendgroup{sub-sub-label}

    -

    -


    +


    \glsxtrbookindexsubatendgroup{sub-label}

    -

    -


    +


    \glsxtrbookindexatendgroup{label}

    -

    +

    where ⟨sub-sub-label⟩ is the label of the last level 2 entry, ⟨sub-label⟩ is the label of the last level 1 entry and ⟨label⟩ is the label of the last level 0 entry. -

    For example, the resource option

    For example, the resource option seealso=omit instructs -

    -

    This uses +

    This uses \glstreesubitem and \glstreesubsubitem to indent the cross-reference according to the next level down, so the cross-reference for a top-level entry is aligned @@ -7787,7 +8178,7 @@ indented a bit further (but it won’t be aligned with any deeper level as t class="cmss-10">bookindex style only supports a maximum of two sub-levels). -

    The

    The bookindex style uses group headings. (If you use bib2gls remember to invoke it with the --group or -g switch.) The heading will use -



    \glsxtrbookindexbookmark{group title}{name}

    -

    +

    If \pdfbookmark has been defined, this will use that command to bookmark the group title. If \pdfbookmark hasn’t been defined, this command does nothin. -

    The group heading is formatted according to -


    The group heading is formatted according to +


    \glsxtrbookindexformatheader{group title}

    -

    +

    which is defined as

    -
    +
     \newcommand*{\glsxtrbookindexformatheader}[1]{%
    - 
      \par{\centering\glstreegroupheaderfmt{#1}\par}% - 
    } -
    -

    where +

    where \glstreegroupheaderfmt is provided by the glossary-tree package, which is automatically loaded. Note that the entry names aren’t encapsulated with \glstreenamefmt. -

    The

    The glossary-bookindex package provides some supplementary commands that aren’t used by default, but may be used when adjusting the style. These commands @@ -7847,43 +8238,43 @@ should only be used within one of the \print…glossary commands. (That is, they should only be used in glossary styles.) -



    \glsxtrbookindexmarkentry{label}

    -

    +

    This writes information to the .aux file that can be read on the next run to obtain the first and last entry on each page of the glossary. -

    You can display the first entry associated with the current page using: -


    You can display the first entry associated with the current page using: +


    \glsxtrbookindexfirstmark

    -

    +

    and the last entry associated with the current page using: -



    \glsxtrbookindexlastmark

    -

    +

    These do nothing if there are no entries marked on the current page (or if the document build isn’t up to date). -

    The entry is formatted using: -


    The entry is formatted using: +


    \glsxtrbookindexfirstmarkfmt{label}

    -

    +

    for the first instance and -



    \glsxtrbookindexlastmarkfmt{label}

    -

    +

    for the last. -

    These commands are designed for use in page headers or footers where the page +

    These commands are designed for use in page headers or footers where the page number is stable. For example, \glsxtrbookindexname can be redefined to mark the current entry: @@ -7891,13 +8282,13 @@ current entry:

    -
    +
     \renewcommand{\glsxtrbookindexname}[1]{%
    - 
      \glsxtrbookindexmarkentry{#1}% - 
      \glossentryname{#1}% - 
    } -
    -

    If you only want to mark the top-level entries, remember to redefine +  \glsxtrbookindexmarkentry{#1}% +  \glossentryname{#1}% +} + +

    If you only want to mark the top-level entries, remember to redefine \glsxtrbookindexsubname as it defaults to \glsxtrbookindexname: @@ -7905,13 +8296,13 @@ class="cmtt-10">\glsxtrbookindexname:

    -
    +
     \renewcommand{\glsxtrbookindexsubname}[1]{%
    - 
      \glossentryname{#1}% - 
    } -
    -

    -

    Then if you’re using +

    +

    Then if you’re using fancyhdr you can set the page style to show the first and last entry for the current page with: @@ -7919,21 +8310,21 @@ entry for the current page with:

    -
    +
       \pagestyle{fancy}%
    - 
      \lhead{\thepage}% - 
      \lfoot{\glsxtrbookindexfirstmark}% - 
      \cfoot{}% - 
      \rfoot{\glsxtrbookindexlastmark}% -
    -

    -

    -

    -

    +

    +

    +

    +

    Top

    3.2 glossary-longextra package

    -

    As from version 1.37, the

    As from version 1.37, the glossaries-extra package comes with the supplementary package glossary-longextratabular instead. In order to do this you must use -



    \GlsLongExtraUseTabulartrue

    -

    +

    before the style is set. For example:

    -
    +
     \GlsLongExtraUseTabulartrue
    - 
    \setglossarystyle{long-name-desc} -
    -

    or +\setglossarystyle{long-name-desc} + +

    or

    -
    +
     \GlsLongExtraUseTabulartrue
    - 
    \printunsrtglossary[style={long-name-desc}] -
    -

    If you use this setting, you can change the default vertical alignment with: -


    +

    If you use this setting, you can change the default vertical alignment with: +


    \glslongextraTabularVAlign

    -

    +

    The default definition is c. -

    The column titles are formatted according to: -


    The column titles are formatted according to: +


    \glslongextraHeaderFmt{text}

    -

    +

    which simply does \textbf{text} by default. -

    The name column has the title given by

    The name column has the title given by \entryname and the column alignment is given by: -



    \glslongextraNameAlign

    -

    +

    which expands to l (left) by default. -

    The symbol column (where applicable) has the title given by

    The symbol column (where applicable) has the title given by \symbolname and the column alignment is given by: -



    \glslongextraSymbolAlign

    -

    +

    which expands to c (centred) by default. -

    The location list column (where applicable) has the title given by

    The location list column (where applicable) has the title given by \pagelistname and the column alignment is given by: -



    \glslongextraLocationAlign

    -

    +

    which expands to

    -
    +
     >{\raggedright}p{\glspagelistwidth}
    -
    -

    by default. (Ragged-right paragraph, +

    by default. (Ragged-right paragraph, \glspagelistwidth is defined in glossary-long, which is automatically loaded.) -

    The description column has the title given by

    The description column has the title given by \descriptionname and the column alignment is given by: -



    \glslongextraDescAlign

    -

    +

    which expands to

    -
    +
     >{\raggedright}p{\glsdescwidth}
    -
    -

    by default. (Ragged-right paragraph, +

    by default. (Ragged-right paragraph, \glsdescwidth is defined in glossary-long, which is automatically loaded.) -

    Unlike the long styles provided by the base

    Unlike the long styles provided by the base glossaries package, these new styles try to determine the value of \glsdescwidth at the start of the glossary according to the number of columns provided by the style. The calculations are performed by the following commands: -



    \glslongextraSetDescWidth

    -

    +

    This is used by the styles that have a name and description column. The value of \glsdescwidth is computed as:

    -
    - \glsdescwidth = \linewidth- 4\tabcolsep- W -
    -

    -where W is a guess at the width of the name column. This is first set to the width of -the name column header:

    +
    +\glsdescwidth = \linewidth- 4\tabcolsep- W
+
    +

    where W is a guess at the width of the name column. This is first set to the width +of the name column header:

    \settowidth{}
    If any names in that column are larger than this, then you need to specify the widest name using: -



    \glslongextraSetWidest{widest name}

    -

    +

    or -



    \glslongextraUpdateWidest{text}

    - - - -

    +

    These work like the analogous commands \glssetwidest and \glsupdatewidest @@ -8120,6 +8501,9 @@ class="cmss-10">alttreealttree top-level name if set, otherwise it’s empty, + + + so you can use bib2gls’s set-widest option. If you have the entry counter enabled, you will need to include this with the name for the extra material to be taken into account. -

    The name isn’t shown for child entries by default, but if you change this and you +

    The name isn’t shown for child entries by default, but if you change this and you want to use set-widest option (for bib2gls v1.8+) then you need to redefine: -



    \glslongextraUpdateWidestChild{level}{text}

    -

    +

    This does nothing by default, but if you are including the child names then you need to redefine this command:

    -
    +
     \renewcommand{\glslongextraUpdateWidestChild}[2]{%
    - 
     \glslongextraUpdateWidest{#2}% - 
    } -
    -

    -

    If you prefer to set an explicit width for the description column then you need to + \glslongextraUpdateWidest{#2}% +} + +

    +

    If you prefer to set an explicit width for the description column then you need to redefine \glslongextraSetDescWidth. For example:

    -
    +
     \renewcommand{\glslongextraSetDescWidth}{%
    - 
      \setlength{\glsdescwidth}{0.6\linewidth}% - 
    } -
    -

    -

    The styles that have a name, symbol and description, +

    +

    The styles that have a name, symbol and description, \glsdescwidth is set with: -



    \glslongextraSymSetDescWidth

    -

    +

    This first uses \glslongextraSetDescWidth and then subtracts 2\tabcolsep and @@ -8187,30 +8571,30 @@ you can redefine this command. For example:

    -
    +
     \renewcommand{\glslongextraSymSetDescWidth}{%
    - 
      \glslongextraSetDescWidth - 
      \addtolength{\glsdescwidth}{-3cm}% - 
    } -
    -

    or +  \glslongextraSetDescWidth +  \addtolength{\glsdescwidth}{-3cm}% +} + +

    or

    -
    +
     \renewcommand{\glslongextraSymSetDescWidth}{%
    - 
      \setlength{\glsdescwidth}{.5\linewidth}% - 
    } -
    -

    -

    For the styles that have a name, description and location column, +

    +

    For the styles that have a name, description and location column, \glsdescwidth is set using: -



    \glslongextraLocSetDescWidth

    -

    +

    This uses \glslongextraSetDescWidth and then subtracts 2\tabcolsep and @@ -8220,13 +8604,13 @@ class="cmtt-10">\glsdescwidth. You can redefine this command to set both \glsdescwidth and \glspagelistwidth if appropriate. -

    For the styles that have a name, description, symbol and location column, +

    For the styles that have a name, description, symbol and location column, \glsdescwidth is set using: -



    \glslongextraSymLocSetDescWidth

    -

    +

    This uses \glslongextraSymSetDescWidth and then subtracts 2\tabcolsep and @@ -8234,13 +8618,13 @@ class="cmtt-10">\tabcolsep and class="cmtt-10">\glspagelistwidth from \glsdescwidth. Again, you can redefine this command to explicitly set both lengths. -

    In all cases, the top-level name is formatted according to: -


    In all cases, the top-level name is formatted according to: +


    \glslongextraNameFmt{label}

    -

    +

    This does

    }
    which includes the entry counter (if enabled), the target and the post-name link. -

    The top-level description is formatted according to: -


    The top-level description is formatted according to: +


    \glslongextraDescFmt{label}

    -

    +

    This does \glossentrydesc{label} followed by the post-description hook. -

    The styles that have a symbol column format the symbol using: -


    The styles that have a symbol column format the symbol using: +


    \glslongextraSymbolFmt{label}

    -

    +

    This just does \glossentrysymbol{label}. -

    The styles that have a location list column format the list using: -


    The styles that have a location list column format the list using: +


    \glslongextraLocationFmt{label}{locations}

    -

    +

    This just does ⟨locations⟩ and ignores the label. -

    The child entries have their name formatted according to: -


    The child entries have their name formatted according to: +


    \glslongextraSubNameFmt{level}{label}

    -

    +

    where ⟨level⟩ is the hierarchical level. This defaults to:

    @@ -8317,34 +8701,34 @@ class="cmsy-10">}
    This includes the sub-entry counter (if enabled) and the target but doesn’t show the name. The child description is formatted according to: -



    \glslongextraSubDescFmt{level}{label}

    -

    +

    which defaults to just \glslongextraDescFmt{label} -

    The child symbol is formatted (where appropriate) according to: -


    The child symbol is formatted (where appropriate) according to: +


    \glslongextraSubSymbolFmt{level}{label}

    -

    +

    This just does \glslongextraSymbolFmt{label} by default. -

    The styles that have a location list column format the list for child entries +

    The styles that have a location list column format the list for child entries using: -



    \glslongextraSubLocationFmtlevellabel}{locations}

    -

    +

    This just does ⟨locations⟩ and ignores the level and label. -

    The letter group headings are formatted according to: -


    The letter group headings are formatted according to: +


    \glslongextraGroupHeading{n}{label}

    -

    +

    which does nothing by default. The first argument ⟨n⟩ is the number of columns in the table. The second argument ⟨label⟩ is the group label (not the title, although they may happen to be the same). -

    This can be redefined to show the group heading. For example: +

    This can be redefined to show the group heading. For example:

    -
    +
     \renewcommand*{\glslongextraGroupHeading}[2]{%
    - 
      \glsxtrgetgrouptitle{#2}{\thisgrptitle}% - 
      \glslongextraHeaderFmt{\thisgrptitle}% - 
      \tabularnewline - 
      \noalign{\vskip\normalbaselineskip}% - 
    } -
    -

    This ignores the first argument and just puts the group title in the first column +  \glsxtrgetgrouptitle{#2}{\thisgrptitle}% +  \glslongextraHeaderFmt{\thisgrptitle}% +  \tabularnewline +  \noalign{\vskip\normalbaselineskip}% +} + +

    This ignores the first argument and just puts the group title in the first column formatted according to \glslongextraHeaderFmt (to match the column header). -

    Remember that you can also adjust the styles through category attributes. The +

    Remember that you can also adjust the styles through category attributes. The name column’s title is given by \entryname, the description column’s title is given by \descriptionname and (where present) the symbol column \symbolname, as for the other long styles that have headers.

    -

    +

    +

    long-name-desc This is like the longragged-booktabs style but doesn’t show the - location list (regardless of the style but doesn’t show + the location list (regardless of the nonumberlist option). The name is shown in - the first column and the description in the second. -

    The symbol is not displayed. The header row is produced with: -


    option). The name is shown + in the first column and the description in the second. +

    The symbol is not displayed. The header row is produced with: +


    \glslongextraNameDescHeader

    -

    +

    This essentially uses the same code as for longragged-booktabs but makes it @@ -8420,20 +8806,20 @@ class="cmss-10">longragged-booktabs -

    -

    where: -


    +

    where: +


    \glslongextraNameDescTabularHeader

    -

    +

    sets up the header and -



    \glslongextraNameDescTabularFooter

    -

    +

    sets up the footer. If you have setup the tabulartabular environment (and \glslongextraNameDescHeader isn’t used). -

    For example, to simply remove the header and footer (for the default

    For example, to simply remove the header and footer (for the default longtable @@ -8453,81 +8839,90 @@ class="cmss-10">longtable -

    -

    Or to change the name alignment to centred: + +

    Or to change the name alignment to centred:

    -
    +
          \renewcommand{\glslongextraNameAlign}{c}
    -
    -

    + +

    -

    +

    +

    long-name-desc-loc This is like the long-name-desc style but has a third column for - the location list. The style but has a third column + for the location list. The longtable header is given by: -



    \glslongextraNameDescLocationHeader

    -

    +

    which similarly defined in terms of the commands used for the tabular version: -



    \glslongextraNameDescLocationTabularHeader

    -

    +

    and -



    \glslongextraNameDescLocationTabularFooter

    -

    +

    -

    +

    +

    long-desc-name This is like the long-name-desc style but swaps the columns. Note - that if the entry counter is displayed it will appear at the start of the + id="dx1-22067"> style but swaps the columns. + Note that if the entry counter is displayed it will appear at the start of the second column by default. The longtable header is formatted according to: -



    \glslongextraDescNameHeader

    -

    +

    which similarly defined in terms of the commands used for the tabular version: -



    \glslongextraDescNameTabularHeader

    -

    +

    and -



    \glslongextraDescNameTabularFooter

    -

    +

    + + +

    -

    +

    +

    long-loc-desc-name This has three columns containing the location list, description and name. The longtable header is formatted according to: - - - -



    \glslongextraLocationDescNameHeader

    -

    +

    which similarly defined in terms of the commands used for the tabular version: -



    \glslongextraLocationDescNameTabularHeader

    -

    +

    and -



    \glslongextraLocationDescNameTabularFooter

    -

    +

    -

    +

    +

    long-name-desc-sym This is has three columns, with the name in the first, the description in the second and the symbol in the third. -

    The

    The longtable header row is produced with: -



    \glslongextraNameDescSymHeader

    -

    +

    which similarly defined in terms of the commands used for the tabular version: -



    \glslongextraNameDescSymTabularHeader

    -

    +

    and -



    \glslongextraNameDescSymTabularFooter

    -

    +

    -

    +

    +

    long-name-desc-sym-loc This is has four columns, with the name in the first, the description in the second, the symbol in the third and the location list in the fourth. -

    The

    The longtable header row is produced with: -



    \glslongextraNameDescSymLocationHeader

    -

    +

    which similarly defined in terms of the commands used for the tabular version: -



    \glslongextraNameDescSymLocationTabularHeader

    -

    +

    and -



    \glslongextraNameDescSymLocationTabularFooter

    -

    - - - +

    -

    +

    +

    long-name-sym-desc This is like the long-name-desc-sym but the second and third - column are swapped. The but the second and + third column are swapped. The longtable header row is given by: -



    \glslongextraNameSymDescHeader

    -

    +

    which similarly defined in terms of the commands used for the tabular version: -



    \glslongextraNameSymDescTabularHeader

    -

    +

    and -



    \glslongextraNameSymDescTabularFooter

    -

    +

    -

    +

    +

    long-name-sym-desc-loc This is like the long-name-desc-sym-loc but the second and - third column are swapped. The but the + second and third column are swapped. The longtable header row is given by: -


    header row is given + by: +


    \glslongextraNameSymDescLocationHeader

    -

    +

    which similarly defined in terms of the commands used for the tabular version: -



    \glslongextraNameSymDescLocationTabularHeader

    -

    + + + +

    and -



    \glslongextraNameSymDescLocationTabularFooter

    -

    +

    -

    +

    +

    long-sym-desc-name This has the symbol in the first column, the description in the - second and the name in the third. The This has the symbol in the first column, the description in + the second and the name in the third. The longtable header row is given by: -



    \glslongextraSymDescNameHeader

    -

    +

    which similarly defined in terms of the commands used for the tabular version: -



    \glslongextraSymDescNameTabularHeader

    -

    +

    and -



    \glslongextraSymDescNameTabularFooter

    -

    - - - +

    -

    +

    +

    long-loc-sym-desc-name This has the location list in the first column, symbol in the - second column, the description in the third and the name in the fourth. The + id="dx1-22125"> This has the location list in the first column, symbol in + the second column, the description in the third and the name in the fourth. The longtable header row is given by: -



    \glslongextraLocationSymDescNameHeader

    -

    +

    which similarly defined in terms of the commands used for the tabular version: -



    \glslongextraLocationSymDescNameTabularHeader

    -

    +

    and -



    \glslongextraLocationSymDescNameTabularFooter

    -

    +

    + + +

    -

    +

    +

    long-desc-sym-name This has the description in the first column, the symbol in the - second and the name in the third. The This has the description in the first column, the symbol in + the second and the name in the third. The longtable header row is given by: -



    \glslongextraDescSymNameHeader

    -

    +

    which similarly defined in terms of the commands used for the tabular version: -



    \glslongextraDescSymNameTabularHeader

    -

    +

    and -



    \glslongextraDescSymNameTabularFooter

    -

    +

    -

    +

    +

    long-loc-desc-sym-name This has the location list in the first column, the description - in the second column, the symbol in the third and the name in the fourth. The - This has the location list in the first column, the + description in the second column, the symbol in the third and the name in the + fourth. The longtable header row is given by: -



    \glslongextraLocationDescSymNameHeader

    -

    +

    which similarly defined in terms of the commands used for the tabular version: -



    \glslongextraLocationDescSymNameTabularHeader

    -

    +

    and - - - -



    \glslongextraLocationDescSymNameTabularFooter

    -

    +

    -

    + + + +

    -

    Top

    3.3 glossary-topic package

    -

    As from version 1.40, the

    As from version 1.40, the glossaries-extra package comes with the supplementary package glossary-topictree style.

    +

    topic

    This style is similar to the

    +

    This style is similar to the tree style but the indentation doesn’t start until the second sub-item level. The top-level entries have the name displayed @@ -8832,48 +9246,50 @@ class="cmss-10">treenogroupskip setting. -

    +

    +

    topicmcols

    This style is like the

    +

    This style is like the topic style but the sub-entries are placed inside a - style but the sub-entries are placed inside a multicols environment. The environment name is supplied in the value of the + id="dx1-23012"> + environment. The environment name is supplied in the value of the command: -



    \glstopicColsEnv

    -

    +

    You can change this to the starred form. For example:

    -
    +
          \renewcommand{\glstopicColsEnv}{multicols*}
    -
    -

    The number of columns is given by the command: -


    +

    The number of columns is given by the command: +


    \glstopicCols

    -

    +

    The default value is 2.

    -

    Both styles use the following commands. -


    Both styles use the following commands. +


    \glstopicParIndent

    -

    +

    This command is a length that’s used for the paragraph indentation in any multi-paragraph description for top-level entries, but not for the first paragraph (at the start of the description) which isn’t indented. -



    \glstopicSubIndent

    -

    +

    This command is a length that’s used to calculate the hanging indentation for sub-entries. The level 1 sub-entries don’t indent the name. Level n sub-entries have @@ -8883,20 +9299,32 @@ class="cmsy-10">- 1)×\glstopicSubIndent. The hanging indent depends on whether or not a widest name has been set for the level. -


    As from v1.46, there is also a length for additional indentation used +in the second paragraph onwards for child entries with multi-paragraph +descriptions: +


    \glstopicSubItemParIndent

    +

    +This is initialised to \parindent when glossary-topic is loaded. +


    \glstopicInit

    -

    +

    Hook used at the start of the glossary. Does nothing by default. -

    Although the styles don’t support letter groups by default, if you have many +

    Although the styles don’t support letter groups by default, if you have many topics (top-level entries) and you feel that it would help the reader to divide them up into headed letter groups, you can redefine: -



    \glstopicGroupHeading{group label}

    -

    +

    This does nothing by default. If you want to redefine it, you can fetch the title corresponding to the group label with \glsxtrgetgrouptitle. For @@ -8905,120 +9333,120 @@ example:

    -
    +
     \renewcommand*{\glstopicGroupHeading}[1]{%
    - 
      \glsxtrgetgrouptitle{#1}{\thisgrptitle}% - 
      \section*{\thisgrptitle}% - 
    } -
    -

    Remember that if you use +

    Remember that if you use bib2gls, you will need the --group (or -g) switch to support this. -



    \glstopicItem{label}{location list}

    -

    +

    Used to format the name, symbol, description and location list for the top-level entries. This starts with a paragraph break followed by: -



    \glstopicPreSkip

    -

    +

    which defaults to \medskip. There is then a hook: -



    \glstopicMarker{label}

    -

    +

    which does nothing by default, but may be redefined. For example, to add a line to the table of contents. The name and symbol are set in the form of a title using: -



    \glstopicTitle{label}

    -

    +

    This uses \Glossentryname which converts the first letter to upper case. If there’s a symbol, this is added in parentheses. Both name and symbol (if present) are encapsulated by -



    \glstopicTitleFont{text}

    -

    +

    This uses a bold, large font by default. -

    If the entry has the description key set (tested with

    If the entry has the description key set (tested with \ifglshasdesc) then a paragraph break is inserted followed by: -



    \glstopicMidSkip

    -

    +

    which defaults to \smallskip. This is followed by the description which is formatted according to: -



    \glstopicDesc{label}

    -

    +

    This just does \Glossentrydesc{label} followed by the post-description hook. -

    A paragraph break followed by: -


    A paragraph break followed by: +


    \glstopicPostSkip

    -

    +

    comes next regardless of whether or not the description was displayed. This defaults to \smallskip. This is then followed by: -



    \glstopicLoc{label}{location list}

    -

    +

    which may be used to display the location list, but does nothing by default. -

    The sub-entries first set up the paragraph and hanging indentations using: -


    The sub-entries first set up the paragraph and hanging indentations using: +


    \glstopicAssignSubIndent{level}

    -

    +

    This uses: -



    \glstopicAssignWidest{level}

    -

    +

    to determine if a widest name has been set for the given level. -

    The sub-entry has its information displayed using: -


    The sub-entry has its information displayed using: +


    \glstopicSubItem{level}{label}{location}

    -

    +

    This encapsulates the name with: -



    \glstopicSubNameFont{text}

    -

    +

    By default this just uses \textbf. This is followed by: -



    \glstopicSubItemSep

    -

    +

    which defaults to \quad. The name and separator are passed in the ⟨text⟩ argument of: -



    \glstopicSubItemBox{level}{text}

    -

    +

    If a widest name was set for the given level, this will put ⟨text⟩ inside a box of that width otherwise it just does ⟨text⟩. -

    This is followed by the symbol in parentheses if set. Then, if the description is set, +

    This is followed by the symbol in parentheses if set. Then, if the description is set, the description and post-description hook are displayed followed by: -



    \glstopicSubPreLocSep

    -

    +

    (This command isn’t used if the description isn’t set.) -

    Finally the location list is displayed using: -


    Finally the location list is displayed using: +


    \glstopicSubLoc{label}{location}

    -

    +

    which just does ⟨location⟩ by default.

    -

    -

    +

    Top

    4. Abbreviations

    -

    The new abbreviation system provided by

    The new abbreviation system provided by glossaries-extra is more flexible than the acronym handling provided by the base glossaries package. The @@ -9096,7 +9524,7 @@ class="cmtt-10">\gls (and its variants) displays the desired output. See the file sample-abbr-styles.pdf for samples of all provided abbreviation styles. -

    Don’t use

    -

    -

    This lack of flexibility in

    +

    This lack of flexibility in \glsfirst can be demonstrated with the following document:

    -
    +
     \documentclass{article}
    - 
    \usepackage{glossaries-extra} - 
    \setabbreviationstyle{footnote} - 
    \newabbreviation{ex}{EX}{Example} - 
    \begin{document} - 
    Compare \gls{ex}['s] with \glsfirst{ex}['s]. - 
    \end{document} -
    -

    The +

    The first use \gls has the footnote marker after the inserted material “EX’spostfootnote\footnote is in the post-link hook. -

    There are some instances where

    There are some instances where \glstext can be useful. It’s used internally by \glsfmttext\glsfmttext. -

    Abbreviations include acronyms (words formed from initial letters, such as +

    Abbreviations include acronyms (words formed from initial letters, such as “laser”), initialisms (initial letters of a phrase, such as “html”, that aren’t pronounced as words) and contractions (where parts of words are omitted, often replaced by an apostrophe, such as “don’t”). The “acronym” code provided by the @@ -9175,10 +9603,10 @@ to be described for readers unfamiliar with the term). They are therefore more like a regular term, which may or may not require a description in the glossary. -

    The

    The glossaries-extra package corrects this misnomer, and provides better abbreviation handling, with -



    \newabbreviation[optionsshort}{long}

    -

    -

    This sets the

    +

    This sets the category key to abbreviation by default, but that value may be -overridden in ⟨options⟩. The category may have attributes that modify the way -abbreviations are defined. For example, the abbreviation by default, but that value may +be overridden in ⟨options⟩. The category may have attributes that modify +the way abbreviations are defined. For example, the insertdots attribute will automatically -insert full stops (periods) into ⟨ attribute +will automatically insert full stops (periods) into ⟨short⟩ or the noshortplural attribute will set the default -value of the +attribute will set the default value of the shortplural key to just ⟨short⟩ (without appending the plural suffix). See short⟩ (without +appending the plural suffix). See §6 -Categories for further details. -

    See §??sec:categories Categories for further +details. +

    See §2.8 §??sec:nested Nested Links regarding the pitfalls of using commands like \gls or - + + + +or \glsxtrshort within ⟨short⟩ or ⟨long⟩. - - - -

    Make sure that you set the category attributes before defining new abbreviations +

    Make sure that you set the category attributes before defining new abbreviations or they may not be correctly applied.
    -

    -

    The

    +

    The \newacronym command provided by the glossaries package is redefined by @@ -9242,9 +9673,10 @@ class="cmss-10">categoryacronym (see also §2.9 §??sec:acronymmods Acronym Style Modifications) so -



    \newacronym[optionsshort}{long}

    -

    +

    is now equivalent @@ -9278,7 +9710,7 @@ class="cmtt-10">{⟨long}
    -

    The

    The \newabbreviation command is superficially similar to the glossaries package’s abbreviationglossaries package, although they may produce similar results.) -

    The way the abbreviations are displayed by commands like

    The way the abbreviations are displayed by commands like \gls varies according to the abbreviation style. The styles are set according to the entry’s category so, unlike the base glossaries package, you can have different abbreviation styles within the same glossary. -

    There are two types of full forms. The display full form, which is used on +

    There are two types of full forms. The display full form, which is used on first use by commands like short-footnote, the display and inline full forms are different. -

    These formatting commands aren’t stored in the

    These formatting commands aren’t stored in the short, shortplural\glsxtrlong and the case-changing variants don’t use \glsfirstlongfont. -

    You can apply the formatting command used for the short form to some arbitrary +

    You can apply the formatting command used for the short form to some arbitrary text using -



    \glsuseabbrvfont{text}{category}

    - - - -

    +

    where ⟨category⟩ is the category label that identifies the abbreviation style. Similarly for the formatting command use by the long form: -



    \glsuselongfont{text}{category}

    -

    -

    You can’t use the acronym commands provided by the base package with the new +

    +

    You can’t use the acronym commands provided by the base package with the new abbreviations provided by the glossaries-extra package. The style commands that replace \setacronymstyle, \acrshort etc are described in §4.2 Abbreviation Styles. -The §??sec:abbrstyle +Abbreviation Styles. The acronymlists package option and associated commands aren’t supported. The - package option and associated commands +aren’t supported. The \forallacronyms command, which iterates over all acronym lists, should be replaced -with: -


    command, which iterates over all acronym +lists, should be replaced with: +


    \forallabbreviationlists{cs}{body}

    -

    +

    -

    Top

    4.1 Tagging Initials

    -

    If you would like to tag the initial letters in the long form such that those letters are +

    If you would like to tag the initial letters in the long form such that those letters are underlined in the glossary but not in the main part of the document, you can use -



    \GlsXtrEnableInitialTagging{categories}{cs}

    -

    +

    before you define your abbreviations. -

    This command (robustly) defines ⟨

    This command (robustly) defines ⟨cs⟩ (a control sequence) to accept a single argument, which is the letter (or letters) that needs to be tagged. The normal behaviour of this command within the document is to simply do its argument, but in @@ -9418,19 +9851,19 @@ href="#catattr.tagging">tagging attribute set to “true”. For those cases it will use -



    \glsxtrtagfont{text}

    -

    +

    This command defaults to \underline{text} but may be redefined as required. -

    The control sequence ⟨

    The control sequence ⟨cs⟩ can’t already be defined when used with the unstarred version of \GlsXtrEnableInitialTagging for safety reasons. The starred @@ -9439,19 +9872,24 @@ class="cmti-10">cs⟩. As with redefining any commands, ensure that you don’t redefine something important. In fact, just forget the existence of the starred version and let’s pretend I didn’t mention it. -

    The first argument of \GlsXtrEnableInitialTagging is a comma-separated list -of category names. The

    The first argument of \GlsXtrEnableInitialTagging is a comma-separated +list of category names. The tagging attribute will automatically be set for those -categories. You can later set this attribute for other categories (see attribute will automatically be set for +those categories. You can later set this attribute for other categories (see +§6 Categories) but -this must be done before the glossary is displayed. -

    The accompanying sample file §??sec:categories Categories) but this must be done before the glossary is +displayed. +

    The accompanying sample file sample-mixtures.tex uses initial tagging for both + + + the acronym and abbreviation -

    -

    This defines the command +

    This defines the command \itag which can be used in the definitions. For example:

    -
    +
     \newacronym
    - 
     [description={a system for detecting the location and - 
     speed of ships, aircraft, etc, through the use of radio - 
     waves}% description of this term - 
     ] - 
     {radar}% identifying label - 
     {radar}% short form (i.e. the word) - 
     {\itag{ra}dio \itag{d}etection \itag{a}nd \itag{r}anging} - 
    \newabbreviation{xml}{XML} - 
     {e\itag{x}tensible \itag{m}arkup \itag{l}anguage} -
    -

    The underlining of the tagged letters only occurs in the glossary and then only for + [description={a system for detecting the location and + speed of ships, aircraft, etc, through the use of radio + waves}% description of this term + ] + {radar}% identifying label + {radar}% short form (i.e. the word) + {\itag{ra}dio \itag{d}etection \itag{a}nd \itag{r}anging} +\newabbreviation{xml}{XML} + {e\itag{x}tensible \itag{m}arkup \itag{l}anguage} + +

    The underlining of the tagged letters only occurs in the glossary and then only for entries with the tagging attribute set. -

    +

    -

    Top

    4.2 Abbreviation Styles

    -

    The abbreviation style must be set before abbreviations are defined using: -


    The abbreviation style must be set before abbreviations are defined using: +


    \setabbreviationstyle[category]{style-name}

    -

    +

    where ⟨style-name⟩ is the name of the style and ⟨category⟩ is the category label @@ -9523,11 +9961,11 @@ class="cmss-10">regular attribute to true. -

    If you want to apply different styles to groups of abbreviations, assign a +

    If you want to apply different styles to groups of abbreviations, assign a different category to each group and set the style for the given category.
    -

    -

    Note that

    +

    Note that \setacronymstyle is disabled by glossaries-extra. Use

    @@ -9545,10 +9983,11 @@ class="cmtt-10">\RestoreAcronyms (see §2.9 Acronym Style Modifications). However the original acronym interface is -incompatible with all the commands described here. -

    Abbreviations can be used with the standard §??sec:acronymmods Acronym Style Modifications). However the original acronym +interface is incompatible with all the commands described here. +

    Abbreviations can be used with the standard glossaries commands, such as \gls, @@ -9558,7 +9997,7 @@ class="cmtt-10">\acrshort\acronymfont). The short form can be produced with: -



    \glsxtrshort[optionslabel}[insert]

    -

    +

    (Use this instead of \acrshort.) -

    The long form can be produced with -


    The long form can be produced with +


    \glsxtrlong[optionslabel}[insert]

    -

    +

    (Use this instead of \acrlong.) -

    The

    The inline full form can be produced with -



    \glsxtrfull[optionslabel}[insert]

    -

    +

    (This this instead of \acrfull.) -

    In general, it’s best not to use commands like

    In general, it’s best not to use commands like \glsfirst for abbreviations, especially if you use the ⟨insert⟩ optional argument. Use either \gls (possibly with a reset) or \glsxtrfull.
    -

    -

    As mentioned earlier, the inline full form may not necessarily match the format +

    +

    As mentioned earlier, the inline full form may not necessarily match the format used on first use with short-nolongfirst use, but the full form will display the long form followed by the short form in parentheses. -

    If you want to use an abbreviation in a chapter or section title, use the +

    If you want to use an abbreviation in a chapter or section title, use the commands described in §5 Entries in Sectioning Titles, Headers, Captions and -Contents instead.
    -

    -

    The arguments ⟨§??sec:headtitle Entries in Sectioning Titles, Headers, +Captions and Contents instead.

    +

    +

    The arguments ⟨options⟩, ⟨label⟩ and ⟨insert⟩ are the same as for commands such as \glstext. There are also analogous case-changing commands: -

    First letter upper case short form: -


    First letter upper case short form: +


    \Glsxtrshort[optionslabel}[insert]

    -

    -

    First letter upper case long form: -


    +

    First letter upper case long form: +


    \Glsxtrlong[optionslabel}[insert]

    -

    -

    First letter upper case inline full form: -


    +

    First letter upper case inline full form: +


    \Glsxtrfull[optionslabel}[insert]

    -

    -

    All upper case short form: +

    +

    All upper case short form: -



    \GLSxtrshort[optionslabel}[insert]

    -

    -

    All upper case long form: -


    +

    All upper case long form: +


    \GLSxtrlong[optionslabel}[insert]

    -

    -

    All upper case inline full form: -


    +

    All upper case inline full form: +


    \GLSxtrfull[optionslabel}[insert]

    -

    -

    Plural forms are also available. -

    Short form plurals: -


    +

    Plural forms are also available. +

    Short form plurals: +


    \glsxtrshortpl[optionslabel}[insert]

    -

    -


    +


    \Glsxtrshortpl[optionslabel}[insert]

    -

    -


    +


    \GLSxtrshortpl[optionslabel}[insert]

    -

    -

    Long form plurals: -


    +

    Long form plurals: +


    \glsxtrlongpl[optionslabel}[insert]

    -

    -


    +


    \Glsxtrlongpl[optionslabel}[insert]

    -

    -


    +


    \GLSxtrlongpl[optionslabel}[insert]

    -

    -

    Full form plurals: -


    +

    Full form plurals: +


    \glsxtrfullpl[optionslabel}[insert]

    -

    -


    +


    \Glsxtrfullpl[optionslabel}[insert]

    -

    -


    +


    \GLSxtrfullpl[optionslabel}[insert]

    -

    -

    Be careful about using

    +

    Be careful about using \glsentryfull, \Glsentryfull, \glsentryfullpl and @@ -9811,13 +10251,13 @@ class="cmtt-10">\glsentryshort etc.
    -

    -

    +

    +

    -

    Top

    4.3 Shortcut Commands

    -

    The abbreviation shortcut commands can be enabled using the

    The abbreviation shortcut commands can be enabled using the shortcuts=abbreviationsshortcuts=ac. (You can use both settings at the same time.) The provided shortcut commands listed in table 4.1. +href="#tab:abbrshortcuts">table ??tab:abbrshortcuts.

    -


    @@ -9848,7 +10289,7 @@ href="#tab:abbrshortcuts">table 4.1. >Table 4.1: Abbreviation Shortcut Commands
    \newabbreviation
    -

    Top

    4.4 Predefined Abbreviation Styles

    -

    There are two types of abbreviation styles: those that treat the abbreviation as a +

    There are two types of abbreviation styles: those that treat the abbreviation as a regular entry (so that \gls uses \gls uses \glsxtrgenabbrvfmt). -

    The regular entry abbreviation styles set the

    The regular entry abbreviation styles set the regular attribute to “true” for the @@ -10195,7 +10636,7 @@ class="cmss-10">long\glsxtrshort. -

    The other abbreviation styles don’t modify the

    The other abbreviation styles don’t modify the regular attribute. The \glsxtrfullformat that are defined by the style). -

    In both cases, the

    In both cases, the first use of \gls may not match the text produced by \glsfirst (and likewise for the plural and case-changing versions). -

    The sample file

    The sample file sample-abbr-styles.tex demonstrates all predefined styles described here. -

    For the “sc” styles that use

    For the “sc” styles that use \textsc, be careful about your choice of fonts as some only have limited support. For example, you may not be able to combine bold @@ -10234,8 +10675,8 @@ class="cmss-10">fontenc package with the T1 option or something similar.
    -

    -

    Many of the styles have helper commands in the form

    +

    Many of the styles have helper commands in the form \glsxtr...name and \glsxtr...sort that are expanded within the \theregister⟩. It’s essential that these expand when the abbreviation is defined so don’t hide them behind no-expandable content if you redefine these helper commands. -

    The parenthetical styles, such as

    The parenthetical styles, such as long-short, use -



    \glsxtrparen{text}

    -

    +

    to set the parenthetical material. This just puts parentheses around the text: (⟨text⟩). -

    The basic abbreviation styles, such as

    The basic abbreviation styles, such as long-short and short-long use -



    \glsabbrvdefaultfont{text}

    -

    +

    for the short form. This just does ⟨text⟩ by default. (That is, no font change is applied.) On first use, -



    \glsfirstabbrvdefaultfont{text}

    -

    +

    is used instead. By default, this just does \glsabbrvdefaultfont. The long form is formatted according to -



    \glslongdefaultfont{text}

    -

    +

    which again just does ⟨text⟩ (no font change). On first use, -



    \glsfirstlongdefaultfont{text}

    -

    +

    is used instead. This just does \glslongdefaultfont. The plural suffix used for the short form is given by -



    \glsxtrabbrvpluralsuffix

    -

    +

    which defaults to \glspluralsuffix. -

    The small-cap styles, such as

    The small-cap styles, such as long-short-sc and short-sc-long, use -



    \glsabbrvscfont{text}

    -

    +

    which uses \textsc.4.1 On first use -



    \glsfirstabbrvscfont{text}

    -

    +

    is used instead. This uses \glsabbrvscfont by default. So redefine, \glsabbrvscfont to change first and subsequent uses or \glsfirstabbrvscfont to change just the first use. -

    The long form for the small-cap styles uses

    The long form for the small-cap styles uses \glslongdefaultfont or \glsfirstlongdefaultfont, as with the basic style. The suffix is given by -



    \glsxtrscsuffix

    -

    +

    This is defined as

    -
    +
     \newcommand*{\glsxtrscsuffix}{\glstextup{\glsxtrabbrvpluralsuffix}}
    -
    -

    The +

    The \glstextup command is provided by glossaries and is used to switch off the -small caps font for the suffix. If you override the default short plural using the -glossaries and is used to switch off +the small caps font for the suffix. If you override the default short plural +using the shortplural key when you define the abbreviation you will need to make the -appropriate adjustment if necessary. (Remember that the default plural suffix -behaviour can be modified through the use of the key when you define the abbreviation you will need to +make the appropriate adjustment if necessary. (Remember that the default +plural suffix behaviour can be modified through the use of the aposplural and +and noshortplural -attributes. See attributes. See §6 Categories for further details.) -

    The small styles, such as §??sec:categories Categories for further +details.) +

    The small styles, such as long-short-sm and short-sm-long, use -



    \glsabbrvsmfont{text}

    -

    +

    which uses \textsmaller. (This requires the relsizes package, which isn’t loaded by glossaries-extra, so must be loaded explicitly.) On first use -



    \glsfirstabbrvsmfont{text}

    -

    +

    is used instead. This uses \glsabbrvsmfont by default. -

    The long form for the smaller styles uses

    The long form for the smaller styles uses \glslongdefaultfont or \glsfirstlongdefaultfont, as with the basic style. The suffix is given by -



    \glsxtrsmsuffix

    -

    +

    which defaults to just \glsxtrabbrvpluralsuffix. -

    The “short-em” (emphasize short) styles, such as

    The “short-em” (emphasize short) styles, such as long-short-em or short-em-long, use -



    \glsabbrvemfont{text}

    -

    +

    On first use -



    \glsfirstabbrvemfont{text}

    -

    +

    is used instead. This uses \glsabbrvemfont by default. The suffix is given by -



    \glsxtremsuffix

    -

    +

    which defaults to just \glsxtrabbrvpluralsuffix. The long form is as for the basic style unless the style is a “long-em” style. -

    The “long-em” (emphasize long) styles, such as

    The “long-em” (emphasize long) styles, such as long-em-short-em or short-em-long-em, use -



    \glsfirstlongemfont{long-form}

    -

    +

    instead of \glsfirstlongdefaultfont{long-form} and -



    \glslongemfont{long-form}

    - - - -

    +

    instead of \glslongdefaultfont{long-form}. The first form \glsfirstlongemfont is initialised to use \glslongemfont. -

    The user styles have similar commands: -


    The user styles have similar commands: +


    \glsabbrvuserfont{text}

    -

    +

    for the short form, -



    \glsfirstabbrvuserfont{text}

    -

    +

    for the first use short form, -



    \glslonguserfont{text}

    -

    +

    for the long form, -



    \glsfirstlonguserfont{text}

    -

    +

    for the first use long form, and -



    \glsxtrusersuffix

    -

    +

    for the short plural suffix. -

    Similarly for the hyphen styles: -


    Similarly for the hyphen styles: +


    \glsabbrvhyphenfont{text}

    -

    +

    for the short form, -



    \glsfirstabbrvhyphenfont{text}

    -

    +

    for the first use short form, -



    \glslonghyphenfont{text}

    -

    +

    for the long form, -



    \glsfirstlonghyphenfont{text}

    -

    +

    for the first use long form, and -



    \glsxtrhyphensuffix

    -

    +

    for the short plural suffix. -

    Similarly for the “only” styles, such as

    Similarly for the “only” styles, such as long-only-short-only: -



    \glsabbrvonlyfont{text}

    -

    +

    for the short form, -



    \glsfirstabbrvonlyfont{text}

    -

    +

    for the first use short form, -



    \glslongonlyfont{text}

    -

    +

    for the long form, -



    \glsfirstlongonlyfont{text}

    - - - -

    +

    for the first use long form, and -



    \glsxtronlysuffix

    -

    +

    for the short plural suffix. -

    Note that by default inserted material (provided in the final optional argument of +

    Note that by default inserted material (provided in the final optional argument of commands like \gls), is placed outside the font command in the predefined styles. To move it inside, use: -



    \glsxtrinsertinsidetrue

    -

    +

    This applies to all the predefined styles. For example:

    -
    +
     \setabbreviationstyle{long-short}
    - 
    \renewcommand*{\glsfirstlongdefaultfont}[1]{\emph{#1}} - 
    \glsxtrinsertinsidetrue -
    -

    This will make the long form and the inserted text emphasized, whereas the default +\renewcommand*{\glsfirstlongdefaultfont}[1]{\emph{#1}} +\glsxtrinsertinsidetrue + +

    This will make the long form and the inserted text emphasized, whereas the default (without \glsxtrinsertinsidetrue) would place the inserted text outside of the emphasized font. -

    Note that for some styles, such as the

    Note that for some styles, such as the short-long, the inserted text would be placed inside the font command for the short form (rather than the long form in the above example). -

    Remember that

    Remember that \textsc renders lowercase letters as small capitals. Uppercase letters are rendered as normal uppercase letters, so if you specify the short form in @@ -10636,49 +11079,50 @@ convert its argument to lowercase. For example:

    -
    +
     \renewcommand*{\glsabbrvscfont}[1]{\textsc{\MakeLowercase{#1}}}
    -
    -

    -

    If you want to easily switch between the “sc” and “sm” styles, you may find it + +

    +

    If you want to easily switch between the “sc” and “sm” styles, you may find it easier to redefine this command to convert case:

    -
    +
     \renewcommand*{\glsabbrvscfont}[1]{\textsc{\MakeTextLowercase{#1}}}
    - 
    \renewcommand*{\glsabbrvsmfont}[1]{\textsmaller{\MakeTextUppercase{#1}}} -
    -

    -

    Some of the styles use -


    +

    +

    Some of the styles use +


    \glsxtrfullsep{label}

    -

    +

    as a separator between the long and short forms. This is defined as a space by default, but may be changed as required. For example:

    -
    +
     \renewcommand*{\glsxtrfullsep}[1]{~}
    -
    -

    or + +

    or

    -
    +
     \renewcommand*{\glsxtrfullsep}[1]{\glsacspace{#1}}
    -
    -

    -

    The new naming scheme for abbreviation styles is as follows:

    + +

    +

    The new naming scheme for abbreviation styles is as follows:

      -
    • +

      field1⟩[-modifier1⟩]field2⟩[-modifier2⟩][-user] -

      This is for the parenthetical styles. The

      This is for the parenthetical styles. The -modifier⟩ parts may be omitted. These styles display ⟨field1⟩ or ⟨field2⟩ starts with “no” then that element is omitted from the display style (no parenthetical part) but is included in the inline style. -

      If the

      If the -modifier⟩ part is present, then the field has a font changing command applied to it. The special modifier -only indicates that field is only present according to whether or not the entry has been used. -

      If

      If post is present then ⟨field2⟩ is placed after the link-text using the post-link hook. -

      If the

      If the -user part is present, then the user1 value, if provided, is inserted into the parenthetical material . (The field used for the inserted material may be changed.) -

      Examples:

      +

      Examples:

        -
      • +

        long-noshort-sc: ⟨field1⟩ is the long form, the short form is set in smallcaps but omitted in the display style. -

      • -
      • +
      • +

        long-em-short-em: both the long form and the short form are emphasized. The short form is in parentheses. -

      • -
      • +
      • +

        long-short-em: the short form is emphasized but not the long form. The short form is in parentheses. -

      • -
      • +
      • +

        long-short-user: if the short⟩, ⟨user1⟩) otherwise it just produces ⟨long⟩ (⟨short⟩). -

      • -
      • +
      • +

        long-hyphen-postshort-hyphen: the short form and the inserted @@ -10763,15 +11215,13 @@ class="cmtt-10">\glsfirstlonghyphenfont \glsabbrvhyphenfont (or \glsfirstabbrvhyphenfont on first - use).

      - - - + use).

    -
  • +

    style-noreg -

    Some styles set the

    Some styles set the regular attribute. In some cases, there’s a version of the @@ -10787,7 +11237,7 @@ href="#abbrstyle.long-em-noshort-em-noreg">long-em-noshort-em-noreg style is a minor variation that style that doesn’t set the attribute. -

    There are a few “noshort” styles, such as

    There are a few “noshort” styles, such as long-hyphen-noshort-noreg, that have @@ -10798,14 +11248,15 @@ class="cmss-10">regular set, but the naming scheme is maintained for consistency with the other “noshort” styles.

  • -
  • +

    field1⟩[-modifier1⟩]-[post]footnote -

    The display style uses ⟨

    The display style uses ⟨field1⟩ followed by a footnote with the other field in it. If post is present then the footnote is placed after the link-text using the post-link hook. The inline style does ⟨field1⟩ followed by the other field in parentheses. -

    If

    If -modifier1⟩ is present, ⟨field1⟩ has a font-changing command applied to it. -

    Examples:

    +

    Examples:

    -

    Take care with the footnote styles. Remember that there are some situations + id="dx1-28100">link-text.

  • +

    Take care with the footnote styles. Remember that there are some situations where \footnote doesn’t work.
    -

    + + + +

    -
  • +

    style-desc -

    Like ⟨

    Like ⟨style⟩ but the description key must be provided when defining abbreviations with this style. -

    Examples:

    +

    Examples:

    - - - + description.

  • -

    Not all combinations that fit the above syntax are provided. Pre-version 1.04 +

    Not all combinations that fit the above syntax are provided. Pre-version 1.04 styles that didn’t fit this naming scheme are either provided with a synonym (where the former name wasn’t ambiguous) or provided with a deprecated synonym (where the former name was confusing). The deprecated style names generate a warning using: -



    \GlsXtrWarnDeprecatedAbbrStyle{old-name}{new-name}

    -

    +

    where ⟨old-name⟩ is the deprecated name and ⟨new-name⟩ is the preferred name. You can suppress these warnings by redefining this command to do nothing. -

    +

    -

    Top

    4.4.1 Predefined Abbreviation Styles that Set the Regular Attribute

    -

    The following abbreviation styles set the

    The following abbreviation styles set the regular attribute to “true” for all categories that have abbreviations defined with any of these styles.

    +

    short-nolong

    This only displays the short form on

    +

    This only displays the short form on first use. The name is set to the - short form through the command -


    is set to the short form + through the command +


    \glsxtrshortnolongname

    -

    + + + +

    (Similarly for the other shortmodifier\newacronym) for it to take effect. Make sure to \protect any formatting commands (or anything else that shouldn’t be expanded). -

    The

    The description is set to the long form. The inline full form displays ⟨short⟩ @@ -10933,155 +11394,176 @@ class="cmti-10">long⟩). The long form on its own can be displayed class="cmtt-10">\glsxtrlong.

    +

    short

    A synonym for

    +

    A synonym for short-nolong. -

    +

    +

    nolong-short

    Like

    +

    Like short-nolong but the inline full form displays ⟨long⟩ (⟨short⟩). -

    +

    +

    short-sc-nolong

    Like

    +

    Like short-nolong but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvscfont (which defaults to (which + defaults to \textsc). -

    +

    +

    short-sc

    A synonym for

    +

    A synonym for short-sc-nolong - - - -

    +

    +

    nolong-short-sc

    Like

    +

    Like short-sc-nolong but the inline full form displays ⟨long⟩ (⟨short⟩). - The name is still obtained from \glsxtrshortnolongname (similarly for the - other styles in the form short⟩). The name is + still obtained from \glsxtrshortnolongname (similarly for the other + styles in the form nolongmodifier-shortmodifier⟩ unless indicated otherwise). -

    +

    +

    short-sm-nolong

    Like

    +

    Like short-nolong but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvsmfont (which defaults to (which + defaults to \textsmaller). -

    + + + +

    +

    short-sm

    A synonym for

    +

    A synonym for short-sm-nolong. -

    +

    +

    nolong-short-sm

    Like

    +

    Like short-sm-nolong but the inline full form displays ⟨long⟩ - (⟨long⟩ (⟨short⟩). -

    +

    +

    short-em-nolong

    Like

    +

    Like short-nolong but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvemfont. -

    +

    +

    short-em

    A synonym for

    +

    A synonym for short-em-nolong -

    +

    +

    nolong-short-em

    Like

    +

    Like short-em-nolong but the inline full form displays ⟨long⟩ - (⟨long⟩ (⟨short⟩). -

    +

    +

    short-nolong-desc

    Like the

    +

    Like the short-nolong style, but the name is set to the full form - obtained by expanding -


    is set to the full form obtained by + expanding +


    \glsxtrshortdescname

    -

    +

    (Similarly for the other shortmodifier\protect fragile and formatting commands and only redefin before \newabbreviation (or \newacronym). -

    The

    The description must be supplied by the user. You may prefer to use the description key. (See the sample file sample-acronym-desc.tex.) + + +

    +

    short-desc

    A synonym for

    +

    A synonym for short-nolong-desc. -

    +

    +

    short-sc-nolong-desc

    Like

    +

    Like short-nolong but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvscfont (which defaults to (which + defaults to \textsc). - - - -

    +

    +

    short-sc-desc

    A synonym for

    +

    A synonym for short-sc-nolong-desc. -

    +

    +

    short-sm-nolong-desc

    Like

    +

    Like short-nolong-desc but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvsmfont (which defaults to + (which defaults to \textsmaller). -

    +

    +

    short-sm-desc

    A synonym for

    +

    A synonym for short-sm-nolong-desc. -

    +

    +

    short-em-nolong-desc

    Like

    +

    Like short-nolong-desc but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvemfont. -

    +

    +

    short-em-desc

    A synonym for

    +

    A synonym for short-em-nolong-desc. -

    +

    +

    long-noshort-desc

    This style only displays the long form, regardless of first or - subsequent use of commands

    +

    This style only displays the long form, regardless of first or subsequent use of + commands \gls. The short form may be accessed - through commands like . The short form may be accessed through commands like + \glsxtrshort. The inline full form displays ⟨long⟩ - (⟨long⟩ (⟨short⟩). -

    The

    The sort key are set to the long form. The name key is also set to the long form, but this is done by expanding -



    \glsxtrlongnoshortdescname

    -

    +

    (Similarly for the other longmodifier-desc styles, unless indicated otherwise.) This command should only be redefined before abbreviations are defined, and any fragile or formatting commands within it need protecting. -

    The

    The description must be provided by the user. The predefined glossary styles won’t display the short form. You can use the post-description hook to @@ -11229,93 +11728,104 @@ class="cmss-10">descriptionlong⟩ (⟨short⟩).

    +

    long-desc

    A synonym for

    +

    A synonym for long-noshort-desc. -

    +

    +

    long-noshort-sc-desc

    Like the

    +

    Like the long-noshort-desc style but the short form (accessed - through commands like style but the short form (accessed through commands + like \glsxtrshort) use \glsabbrvscfont. (This style was - originally called . (This style was originally called + long-desc-sc. Renamed in version 1.04, but original name - retained as a deprecated synonym for backward-compatibility.) -

    + id="dx1-29070">. Renamed in version 1.04, but original name retained as a + deprecated synonym for backward-compatibility.) +

    +

    long-noshort-sm-desc

    Like

    +

    Like long-noshort-desc but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvsmfont. (This style was originally called . + (This style was originally called long-desc-sm. Renamed in - version 1.04, but original name retained as a deprecated synonym for - backward-compatibility.) - - - -

    + id="dx1-29074">. Renamed in version 1.04, but + original name retained as a deprecated synonym for backward-compatibility.) +

    +

    long-noshort-em-desc

    Like

    +

    Like long-noshort-desc but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvemfont. The long form isn’t emphasized. (This style was originally - called . + The long form isn’t emphasized. (This style was originally called long-desc-em. Renamed in version 1.04, but original name retained as a - deprecated synonym for backward-compatibility.) -

    + id="dx1-29078">. + Renamed in version 1.04, but original name retained as a deprecated synonym + for backward-compatibility.) +

    +

    long-em-noshort-em-desc

    New to version 1.04, like

    + + + +

    New to version 1.04, like long-noshort-desc but - redefines \glsabbrvfont to use \glsabbrvemfont. The long form uses + id="dx1-29080"> but redefines \glsabbrvfont to use \glsabbrvemfont. The long form uses \glsfirstlongemfont and and + \glslongemfont. -

    +

    +

    long-noshort

    This style doesn’t really make sense if you don’t use the short form + id="dx1-29084">

    +

    This style doesn’t really make sense if you don’t use the short form anywhere in the document, but is provided for completeness. This is like the sortname key is also set to the short form, but this is done by expanding -



    \glsxtrlongnoshortname

    -

    +

    (Similarly for other longmodifier-noshortmodifier⟩ styles, unless indicated otherwise.) This command should only be redefined before abbreviations are defined, and fragile or formatting commands should be protected. -

    The

    The description is set to the long form.

    +

    long

    A synonym for

    +

    A synonym for long-noshort -

    +

    +

    long-noshort-sc

    Like the

    +

    Like the long-noshort style but the short form (accessed through - commands like style but the short form (accessed through commands like + \glsxtrshort) use \glsabbrvscfont. (This style was originally - called . (This style was originally called long-sc. Renamed in version 1.04, but original name retained as a - deprecated synonym for backward-compatibility.) -

    + id="dx1-29096">. + Renamed in version 1.04, but original name retained as a deprecated synonym + for backward-compatibility.) +

    +

    long-noshort-sm

    Like

    +

    Like long-noshort but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvsmfont. (This style was originally called . (This + style was originally called long-sm. Renamed in - version 1.04, but original name retained as a deprecated synonym for - backward-compatibility.) -

    + id="dx1-29100">. Renamed in version 1.04, but original name + retained as a deprecated synonym for backward-compatibility.) +

    +

    long-noshort-em

    This style is like

    + + + +

    This style is like long-noshort but redefines \glsabbrvemfontlong-em. Renamed in version 1.04, but original name retained as a deprecated synonym for backward-compatibility.) -

    +

    +

    long-em-noshort-em

    New to version 1.04, this style is like

    +

    New to version 1.04, this style is like long-noshort but redefines - - - - \glsabbrvfont to use but redefines \glsabbrvfont + to use \glsabbrvemfont, \glsfirstlongfont to use - \glsfirstlongemfont and \glsfirstlongfont to use \glsfirstlongemfont + and \glslongfont to use \glslongemfont. The short - form isn’t used by commands like \glslongemfont. The short form isn’t used by + commands like \gls, but can be obtained using - , but can be obtained using \glsxtrshort. The related style . The related + style long-em-noshort-em-noreg doesn’t set the - doesn’t set the regular attribute. +

    -

    +

    -

    Top

    4.4.2 Predefined Abbreviation Styles that Don’t Set the Regular Attribute

    -

    The following abbreviation styles will set the

    The following abbreviation styles will set the regular attribute to “false” if it has previously been set. If it hasn’t already been set, it’s left unset. Other attributes may also be set, depending on the style.

    +

    long-short

    On

    +

    On first use, this style uses the format ⟨long⟩ (⟨short⟩). The inline and - display full forms are the same. The short⟩). The inline and display full + forms are the same. The sort key is set to the short form. The name - is also set to the short form through -


    is also set + to the short form through +


    \glsxtrlongshortname

    -

    +

    (Similarly for other longmodifiermodifier⟩ styles, unless indicated class="cmtt-10">\the\glslongtok and the short form can be referenced with \the\glsshorttok. -

    The

    The description is set to the long form. The long and short forms are separated by \glsxtrfullsep. If you want to insert material within the href="#abbrstyle.long-short-user">long-short-user style. + + +

    +

    long-short-sc

    Like

    +

    Like long-short but redefines \glsabbrvfont to use \glsabbrvscfont. -

    +

    +

    long-short-sm

    Like

    +

    Like long-short but redefines \glsabbrvfont to use \glsabbrvsmfont. -

    +

    +

    long-short-em

    Like

    +

    Like long-short but redefines \glsabbrvfont to use \glsabbrvemfont. -

    +

    +

    long-em-short-em

    New to version 1.04, this style is like

    +

    New to version 1.04, this style is like long-short-em but redefines @@ -11538,25 +12070,24 @@ class="cmss-10">long-short-em\glsfirstlongfont to use \glsfirstlongemfont. - - - -

    +

    +

    long-only-short-only

    New to version 1.17, this style only shows the long form on first - use and only shows the short form on subsequent use. The inline full form - \glsxtrfull shows the long form followed by the short form in parentheses. - The

    +

    New to version 1.17, this style only shows the long form on first use and only + shows the short form on subsequent use. The inline full form \glsxtrfull + shows the long form followed by the short form in parentheses. The name field is obtained from -


    field + is obtained from +


    \glsxtronlyname

    -

    +

    Any redefinition of this command must come before the abbreviations are defined as it expands on definition. Make sure you protect any commands that shouldn’t be expanded. The long form can be referenced @@ -11565,22 +12096,26 @@ class="cmtt-10">\the\glslongtok and the short form can be referenced with \the\glsshorttok.

    +

    long-only-short-only-desc

    New to version 1.17, this style is like

    +

    New to version 1.17, this style is like long-only-short-only - but the user must supply the description. The but the user must + supply the description. The name field is obtained - from -


    field is obtained from +


    \glsxtronlydescname

    -

    + + + +

    Any redefinition of this command must come before the abbreviations are defined as it expands on definition. Make sure you protect any commands that shouldn’t be expanded. The long form can be referenced @@ -11589,33 +12124,37 @@ class="cmtt-10">\the\glslongtok and the short form can be referenced with \the\glsshorttok.

    +

    long-em-noshort-em-noreg

    New to version 1.17, this style is like

    +

    New to version 1.17, this style is like long-em-noshort-em - but doesn’t set the but doesn’t set the + regular attribute. -

    +

    +

    long-short-user

    This style was introduced in version 1.04. It’s like the

    +

    This style was introduced in version 1.04. It’s like the long-short style - but additional information can be inserted into the parenthetical material. This + id="dx1-30032"> style but + additional information can be inserted into the parenthetical material. This checks the value of the field given by -



    \glsxtruserfield

    -

    +

    (which defaults to useri) using \ifglshasfieldlong⟩ (⟨short⟩, ⟨field-value⟩). The format is governed by -



    \glsxtruserparen{text}{label}

    -

    +

    where ⟨text⟩ is the short form (for the long-short-usershort-long-user style). This command first inserts a space using - - - \glsxtrfullsep and then the parenthetical content (using \glsxtrparen\glsxtrparendescription is set to -



    \glsuserdescription{long}{label}

    -

    +

    The default definition ignores the ⟨label⟩ and encapsulates ⟨long⟩ with \glslonguserfont. -

    The

    The name is obtained by expanding \glsxtrlongshortname (see above). The @@ -11694,40 +12230,40 @@ class="cmtt-10">} href="#abbrstyle.short-long-user">short-long-user style. -

    For example: +

    For example:

    -
    +
          \setabbreviationstyle[acronym]{long-short-user}
    -      
    \newacronym{tug}{TUG}{\TeX\ User Group} -  
    \newacronym -  
     [user1={German Speaking \TeX\ User Group}] -  
     {dante}{DANTE}{Deutschsprachige Anwendervereinigung \TeX\ e.V} -
    -

    On first use, +

    On first use, \gls{tug} will appear as: -

    -

    TeX User Group (TUG)

    -

    whereas

    +

    TeX User Group (TUG)

    +

    whereas \gls{dante} will appear as: -

    -

    Deutschsprachige Anwendervereinigung TeX e.V (DANTE, - German Speaking TeX User Group)

    -

    The short form is formatted according to -


    +

    Deutschsprachige Anwendervereinigung TeX e.V (DANTE, + German Speaking TeX User Group)

    +

    The short form is formatted according to +


    \glsabbrvuserfont{text}

    -

    +

    and the plural suffix is given by -



    \glsxtrusersuffix

    -

    -

    These may be redefined as appropriate. For example, if you want a smallcaps +

    +

    These may be redefined as appropriate. For example, if you want a smallcaps style, you can just set these commands to those used by the long-short-sclong-short-sc -

    -

    + \renewcommand{\glsxtrusersuffix}{\glsxtrscsuffix} + +

    +

    long-noshort-noreg

    This style is like

    +

    This style is like long-noshort but it doesn’t set the regular - attribute. -

    + id="dx1-30050"> attribute. +

    +

    long-noshort-desc-noreg

    This style is like

    +

    This style is like long-noshort-desc but it doesn’t set the - but it doesn’t set the regular attribute. -

    +

    +

    long-short-desc

    On

    +

    On first use, this style uses the format ⟨long⟩ (⟨short⟩). The - inline and display full forms are the same. The short⟩). The inline and display full + forms are the same. The name is set to the full - form. The is set to the full form. The sort key is set to ⟨long⟩ (⟨short⟩). Before version 1.04, this was - incorrectly set to the short form. If you want to revert back to this you can - redefine -


    long⟩ + (⟨short⟩). Before version 1.04, this was incorrectly set to the short form. If you + want to revert back to this you can redefine +


    \glsxtrlongshortdescsort

    -

    +

    For example:

    -
    +
          \renewcommand*{\glsxtrlongshortdescsort}{\the\glsshorttok}
    -
    -

    The +

    The description must be supplied by the user. The long and short forms are separated by \glsxtrfullsep. The name field is obtained from -



    \glsxtrlongshortdescname

    -

    +

    (Similarly for other longmodifier\the\glslongtok and the short form can be referenced with \the\glsshorttok.

    +

    long-short-sc-desc

    Like

    +

    Like long-short-desc but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvscfont. -

    +

    +

    long-short-sm-desc

    Like

    +

    Like long-short-desc but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvsmfont. -

    +

    +

    long-short-em-desc

    Like

    +

    Like long-short-desc but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvemfont. -

    +

    +

    long-em-short-em-desc

    New to version 1.04, this style is like

    +

    New to version 1.04, this style is like long-short-em-desc but - redefines but redefines + \glsfirstlongfont to use \glsfirstlongemfont. -

    +

    +

    long-em-noshort-em-desc-noreg

    New to version 1.17, this style is like -

    +

    New to version 1.17, this style is like long-em-noshort-em-desc but doesn’t set the but doesn’t set + the regular attribute. -

    + + + +

    +

    long-short-user-desc

    New to version 1.04, this style is like a cross between the -

    +

    New to version 1.04, this style is like a cross between the long-short-desc style and the style + and the long-short-user style. The display and - inline forms are as for style. The display and inline forms are as for + long-short-user and the name key is obtained - from -


    key is obtained from +


    \glsxtrlongshortuserdescname

    - - - -

    +

    Again, this should only be redefined before \newabbreviation (or \newacronym), and fragile and formatting commands need protecting. -

    The

    The description key must be supplied in the optional argument of long-short-desc style.

    +

    short-nolong-noreg

    This is like

    +

    This is like short-nolong but doesn’t set the regular attribute. -

    +

    +

    nolong-short-noreg

    This is like

    +

    This is like nolong-short but doesn’t set the regular attribute. -

    +

    +

    short-long

    On

    +

    On first use, this style uses the format ⟨short⟩ (⟨short-long-user style. -

    The

    The name field is obtained from -



    \glsxtrshortlongname

    -

    +

    (Similarly for other shortmodifiermodifier⟩ styles, unless indicated class="cmtt-10">\the\glslongtok and the short form can be referenced with \the\glsshorttok. + + +

    +

    short-sc-long

    Like

    +

    Like short-long but redefines \glsabbrvfont to use \glsabbrvscfont. -

    +

    +

    short-sm-long

    Like

    +

    Like short-long but redefines \glsabbrvfont to use \glsabbrvsmfont. -

    +

    +

    short-em-long

    Like

    +

    Like short-long but redefines \glsabbrvfont to use \glsabbrvemfont. -

    +

    +

    short-em-long-em

    New to version 1.04, this style is like

    +

    New to version 1.04, this style is like short-em-long but redefines @@ -12052,30 +12616,29 @@ class="cmss-10">short-em-long\glsfirstlongfont to use \glsfirstlongemfont. -

    +

    +

    short-long-user

    New to version 1.04. This style is like the

    +

    New to version 1.04. This style is like the long-short-user style but - with the long and short forms switched. The parenthetical material is governed - by the same command style but with the long + and short forms switched. The parenthetical material is governed by the same + command \glsxtruserparen, but the first argument supplied to it - - - - is the long form instead of the short form. The , but the first argument supplied to it is the + long form instead of the short form. The name field is obtained by expanding -



    \glsxtrshortlongname

    -

    +

    Again, this should only be redefined before \newabbreviation (or }{label}.

    +

    short-nolong-desc-noreg

    This style is like

    +

    This style is like short-nolong-desc but it doesn’t set the - but it doesn’t set the regular attribute. -

    +

    +

    short-long-desc

    On

    + + + +

    On first use, this style uses the format ⟨short⟩ (⟨long⟩). The - inline and display full forms are the same. The long⟩). The inline and display full + forms are the same. The name is set to the full - form. The is set to the full form. The description must be supplied by the user. The short and long - forms are separated by must + be supplied by the user. The short and long forms are separated by + \glsxtrfullsep. The name field is obtained - from -


    field is obtained from +


    \glsxtrshortlongdescname

    -

    +

    (Similarly for other shortmodifier\the\glslongtok and the short form can be referenced with \the\glsshorttok.

    +

    short-sc-long-desc

    Like

    +

    Like short-long-desc but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvscfont. -

    +

    +

    short-sm-long-desc

    Like

    +

    Like short-long-desc but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvsmfont. -

    +

    +

    short-em-long-desc

    Like

    +

    Like short-long-desc but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvemfont. -

    +

    +

    short-em-long-em-desc

    New to version 1.04, this style is like

    +

    New to version 1.04, this style is like short-em-long-desc but - redefines but redefines + \glsfirstlongfont to use \glsfirstlongemfont. -

    +

    +

    short-long-user-desc

    New to version 1.04, this style is like a cross between the -

    +

    New to version 1.04, this style is like a cross between the short-long-desc style and the style + and the short-long-user style. The display and - inline forms are as for style. The display and inline forms are as for + short-long-user, but the name key is obtained - from - - - -


    key is obtained from +


    \glsxtrshortlonguserdescname

    -

    +

    Again, this should only be redefined before \newabbreviation (or \newacronym), and fragile and formatting commands need protecting. -

    The

    The description key must be supplied in the optional argument of \newabbreviation (or \newacronym).

    +

    short-footnote

    On

    +

    On first use, this style displays the short form with the long form as - a footnote. This style automatically sets the first use, this style displays the short form with the long form as a footnote. + This style automatically sets the nohyperfirst attribute to “true” for - the supplied category, so the attribute to “true” for the + supplied category, so the first use won’t be hyperlinked (but the footnote marker may be, if the hyperref package is used). -

    The inline full form uses the ⟨

    The inline full form uses the ⟨short⟩ (⟨long⟩) style. The namedescriptionname key is obtained by expanding: -



    \glsxtrfootnotename

    -

    +

    (Similarly for other shortmodifierfootnote styles, unless class="cmtt-10">\newabbreviation (or \newacronym), and fragile or formatting commands should be protected from expansion. -

    As from version 1.05, all the footnote styles use: -


    As from version 1.05, all the footnote styles use: +


    \glsfirstlongfootnotefont{text}

    -

    +

    to format the long form on first use or for the full form and -



    \glslongfootnotefont{text}

    -

    +

    to format the long form elsewhere (for example, when used with \glsxtrlong). -

    As from version 1.07, all the footnote styles use: -


    As from version 1.07, all the footnote styles use: +


    \glsxtrabbrvfootnote{label}{long}

    -

    +

    By default, this just does \footnote} (the first argument is ignored). For

    -
    +
          \renewcommand{\glsxtrabbrvfootnote}[2]{%
    -      
      \footnote{\glshyperlink[#2]{#1}}% -  
    } -
    -

    or to include the short form with a hyperlink: +   \footnote{\glshyperlink[#2]{#1}}% + } + +

    or to include the short form with a hyperlink:

    -
    +
          \renewcommand{\glsxtrabbrvfootnote}[2]{%
    -      
      \footnote{\glshyperlink[\glsfmtshort{#1}]{#1}: #2}% -  
    } -
    -

    Note that I haven’t used commands like +

    Note that I haven’t used commands like \glsxtrshort to avoid interference (see §2.4 §??sec:entryfmtmods Entry Display Style Modifications and §2.8 §??sec:nested + Nested Links).

    +

    footnote

    A synonym for

    +

    A synonym for short-footnote. -

    +

    +

    short-sc-footnote

    Like

    +

    Like short-footnote but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvscfont. (This style was originally called . + (This style was originally called footnote-sc. Renamed in - version 1.04, but original name retained as a deprecated synonym for - backward-compatibility.) -

    + id="dx1-30165">. Renamed in version 1.04, but + original name retained as a deprecated synonym for backward-compatibility.) +

    +

    short-sc-footnote

    Like

    +

    Like short-footnote but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvsmfont. (This style was originally called . + (This style was originally called footnote-sm. Renamed in - version 1.04, but original name retained as a deprecated synonym for - backward-compatibility.) -

    + id="dx1-30169">. Renamed in version 1.04, but + original name retained as a deprecated synonym for backward-compatibility.) +

    +

    short-em-footnote

    Like

    +

    Like short-footnote but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvemfont. (This style was originally called . + (This style was originally called footnote-em. Renamed in - version 1.04, but original name retained as a deprecated synonym for - backward-compatibility.) -

    + id="dx1-30173">. Renamed in version 1.04, but + original name retained as a deprecated synonym for backward-compatibility.) +

    +

    short-footnote-desc

    (New to v1.42.) This is similar to

    +

    (New to v1.42.) This is similar to short-footnote, but the - , but the description must be supplied by the user. The must be + supplied by the user. The name field is obtained - from: -


    field is obtained from: + + + +


    \glsxtrfootnotedescname

    -

    +

    which defaults to ⟨short⟩ followed by ⟨long⟩ in parentheses, and the sort field is obtained from: -



    \glsxtrfootnotedescsort

    -

    +

    which defaults to just the short form. (Similarly for other shortmodifier-[post]footnote-desc styles, unless indicated otherwise.) - - - -

    Any redefinition of these commands must come before the abbreviations +

    Any redefinition of these commands must come before the abbreviations are defined as it expands on definition. Make sure you protect any commands that shouldn’t be expanded. The long form can be referenced with \the\glslongtok and the short form can be referenced with \the\glsshorttok.

    +

    footnote-desc

    A synonym for

    +

    A synonym for short-footnote-desc. -

    +

    +

    short-sc-footnote-desc

    Like

    +

    Like short-footnote-desc but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvscfont. -

    +

    +

    short-sm-footnote-desc

    Like

    +

    Like short-footnote-desc but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvsmfont. -

    +

    +

    short-em-footnote-desc

    Like

    +

    Like short-footnote-desc but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvemfont. -

    +

    +

    short-postfootnote

    This is similar to the

    +

    This is similar to the short-footnote style but doesn’t modify the - category attribute. Instead it changes style but doesn’t modify the category + attribute. Instead it changes \glsxtrpostlinkcategory to insert the @@ -12507,7 +13099,10 @@ href="#glo:firstuse">first use. This will also defer the footnote \glsxtrifnextpunc. -

    The inline full form uses the ⟨

    The inline full form uses the ⟨short⟩ (⟨long⟩) style. The name\glsxtrfull (and its variants) so that it fakes non-first use. (Otherwise the footnote would appear after the inline form.)

    +

    postfootnote

    A synonym for

    +

    A synonym for short-postfootnote. -

    +

    +

    short-sc-postfootnote

    Like

    +

    Like short-postfootnote but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvscfont. (This style was originally called . + (This style was originally called postfootnote-sc. Renamed in - version 1.04, but original name retained as a deprecated synonym for - backward-compatibility.) -

    + id="dx1-30206">. Renamed in version 1.04, but + original name retained as a deprecated synonym for backward-compatibility.) +

    +

    short-sm-postfootnote

    Like

    +

    Like short-postfootnote but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvsmfont. (This style was originally called . + (This style was originally called postfootnote-sm. Renamed - in version 1.04, but original name retained as a deprecated synonym for - backward-compatibility.) - - - -

    + id="dx1-30210">. Renamed in version 1.04, but + original name retained as a deprecated synonym for backward-compatibility.) +

    +

    short-em-postfootnote

    Like

    +

    Like short-postfootnote but redefines \glsabbrvfont to use - \glsabbrvfont to use \glsabbrvemfont. (This style was originally called . + (This style was originally called postfootnote-em. Renamed - in version 1.04, but original name retained as a deprecated synonym for - backward-compatibility.) -

    + id="dx1-30214">. Renamed in version 1.04, but + original name retained as a deprecated synonym for backward-compatibility.) +

    +

    short-postfootnote-desc

    (New to v1.42.) This is similar to

    +

    (New to v1.42.) This is similar to short-postfootnote, but - the , but the description must be supplied by the user. The must be + supplied by the user. The name and sort are set as for - are set as for short-footnote-desc. -

    +

    +

    postfootnote-desc

    A synonym for

    +

    A synonym for short-postfootnote-desc. -

    + + + +

    +

    short-sc-postfootnote-desc

    Like

    +

    Like short-postfootnote-desc but redefines \glsabbrvfont - to use \glsabbrvfont to use + \glsabbrvscfont. -

    +

    +

    short-sm-postfootnote-desc

    Like

    +

    Like short-postfootnote-desc but redefines \glsabbrvfont - to use \glsabbrvfont to use + \glsabbrvsmfont. -

    +

    +

    short-em-postfootnote-desc

    Like

    +

    Like short-postfootnote-desc but redefines \glsabbrvfont - to use \glsabbrvfont to use + \glsabbrvemfont. -

    +

    +

    short-postlong-user

    This style was introduced in version 1.12. It’s like the -

    +

    This style was introduced in version 1.12. It’s like the short-long-user style but defers the parenthetical material to after the link-text. - This means that you don’t have such a long hyperlink (which can cause - problems for the DVI LaTeX format) and it also means that the user supplied - material can include a hyperlink to another location. The style but + defers the parenthetical material to after the link-text. This means that you + don’t have such a long hyperlink (which can cause problems for the DVI + LaTeX format) and it also means that the user supplied material can + include a hyperlink to another location. The name key is obtained - from key is obtained from + \glsxtrshortlongname. -

    +

    +

    short-postlong-user-desc

    This style was introduced in version 1.12. It’s like the - above

    +

    This style was introduced in version 1.12. It’s like the above short-postlong-user style but the + style but the description must be specified. The name - is obtained from is obtained from + \glsxtrshortlonguserdescname. -

    +

    +

    long-postshort-user

    This style was introduced in version 1.12. It’s like the - above

    +

    This style was introduced in version 1.12. It’s like the above short-postlong-user style but the long form is shown first and - the short form is in the parenthetical material (as for + style but the long form is shown first and the short form is in the parenthetical + material (as for long-short-user) - style. -

    + id="dx1-30241">) style. + + + +

    +

    long-postshort-user-desc

    This style was introduced in version 1.12. It’s like the - above

    +

    This style was introduced in version 1.12. It’s like the above long-postshort-user style but the + style but the description must be specified. The name - is obtained from is obtained from + \glsxtrlongshortuserdescname. - - - -

    +

    +

    long-hyphen-short-hyphen

    This style (new to v1.17) is designed to work - with the

    +

    This style (new to v1.17) is designed to work with the markwords category attribute. The full form is formatted - using -


    category + attribute. The full form is formatted using +


    \glsxtrlonghyphenshort{label}{short}{insert}

    -

    +

    where ⟨insert⟩ is the inserted material provided in the final optional argument of commands like name key is obtained from \glsxtrlongshortname. -

    Unlike the other ⟨

    Unlike the other ⟨long⟩ (⟨short⟩) type of styles, such as long-short, this style also repeats the insertion in the parenthetical part, so that the first use form is: -

    -

    +

    \glsfirstlonghyphenfont{long}insert⟩ class="cmtt-10">\glsfirstabbrvhyphenfont{⟨short}insert⟩)

    -

    The space before the parenthetical material is actually given by +class="cmti-10">insert⟩)

    +

    The space before the parenthetical material is actually given by \glsxtrfullsep{labelinsert⟩ may be moved into the formatting commands according to the conditional \ifglsxtrinsertinside. -

    For example, if

    For example, if ip is defined using:

    -
    +
          \glssetcategoryattribute{english}{markwords}{true}
    -      
    \setabbreviationstyle[english]{long-hyphen-short-hyphen} -  
    \newabbreviation[category=english]{ip}{IP}{Internet Protocol} -
    -

    then + \setabbreviationstyle[english]{long-hyphen-short-hyphen} + \newabbreviation[category=english]{ip}{IP}{Internet Protocol} + +

    then

    -
    +
          \gls{ip}[-Adressen]
    -
    -

    will do -

    -

    Internet-Protocol-Adressen (IP-Adressen)

    -

    on first use, whereas + +

    will do +

    +

    Internet-Protocol-Adressen (IP-Adressen)

    +

    on first use, whereas

    -
    +
          \gls{ip}[ Address]
    -
    -

    will do -

    -

    Internet Protocol Address (IP Address)

    -

    on first use. -

    Note that the hyphenation isn’t applied when using commands like + +

    will do +

    +

    Internet Protocol Address (IP Address)

    +

    on first use. +

    Note that the hyphenation isn’t applied when using commands like \glsxtrlong. This means that

    -
    +
          \glsxtrlong{ip}[-Adressen]
    -
    -

    will do -

    -

    Internet Protocol-Adressen

    + +

    will do +

    +

    Internet Protocol-Adressen

    -

    -

    If the

    +

    If the markwords attribute hadn’t been set, then the first use of @@ -12842,14 +13459,14 @@ class="cmss-10">markwords -

    -

    would do -

    -

    Internet Protocol-Adressen (IP-Adressen)

    -

    instead. -

    If the inserted material ⟨ +

    would do +

    +

    Internet Protocol-Adressen (IP-Adressen)

    +

    instead. +

    -

    -

    If you want the short version in small-caps, you can just redefine +

    +

    If you want the short version in small-caps, you can just redefine \glsabbrvhyphenfont and \glsxtrhyphensuffix to use the small-caps @@ -12867,23 +13484,25 @@ class="cmtt-10">\glsxtrhyphensuffix to use the small-caps

    -
    +
          \renewcommand{\glsabbrvhyphenfont}{\glsabbrvscfont}
    -      
    \renewcommand{\glsxtrhyphensuffix}{\glsxtrscsuffix} -
    -

    Similarly for other font-changing variations. + \renewcommand{\glsxtrhyphensuffix}{\glsxtrscsuffix} + +

    Similarly for other font-changing variations.

    +

    long-hyphen-noshort-desc-noreg

    New to version 1.17, this style is like -

    +

    New to version 1.17, this style is like long-hyphen-short-hyphen-desc except that the parenthetical part is omitted and - the long form is displayed on subsequent use. The short form can be accessed - with + except that the parenthetical part is omitted and the long form is + displayed on subsequent use. The short form can be accessed with + \glsxtrshort but just uses the default abbreviation font. There’s no regular version of this style as the regular form doesn’t have the flexibility to deal with the hyphen switch. The name is obtained from \glsxtrlongnoshortdescname. -

    +

    +

    long-hyphen-noshort-noreg

    New to version 1.17, this style is like -

    +

    New to version 1.17, this style is like long-hyphen-noshort-desc-noreg but the name is set to the short form and the - description is set to the long form. -

    + id="dx1-30259"> but the + name is set to the short form and the description is set to the long + form. +

    +

    long-hyphen-short-hyphen-desc

    -

    New to version 1.17. This is similar to

    +

    New to version 1.17. This is similar to long-hyphen-short-hyphen but the user @@ -12917,12 +13540,14 @@ class="cmss-10">name is obtained from \glsxtrlongshortdescname.

    +

    long-hyphen-postshort-hyphen

    -

    New to version 1.17. This is similar to

    +

    New to version 1.17. This is similar to long-hyphen-short-hyphen but the @@ -12946,15 +13571,18 @@ class="cmtt-10">{⟨label}insert⟩ + + +
    where -



    \glsxtrposthyphenshort{label}insert

    -

    +

    is in the post-link hook. This uses the format:
    insert⟩ (short}isnert⟩)
    - - - -

    The singular short form is always used here, even with

    The singular short form is always used here, even with \glspl. (Unlike long-hyphen-long-hyphen.)
    -

    -

    The part in the link-text on first use: -


    +

    The part in the link-text on first use: +


    \glsxtrlonghyphen{longlabel}{insert}

    -

    +

    checks if ⟨insert⟩ starts with a hyphen. If it does, then \glsxtrwordsep is locally @@ -12996,15 +13621,15 @@ class="cmti-10">insert⟩ for this style without causing nested hyperlinks, but only for commands like \gls. -

    Don’t use

    Don’t use \gls in the ⟨insert⟩ part for commands like \glsxtrfull, \glsxtrshort or \glsxtrlong.
    -

    -

    The inline full display format used by commands like

    +

    The inline full display format used by commands like \glsxtrfull behaves differently to the first use of \gls with this style. It’s better @@ -13016,12 +13641,14 @@ class="cmti-10">label⟩} if you want to ensure the full format.

    +

    long-hyphen-postshort-hyphen-desc

    -

    New to version 1.17. This is similar to

    +

    New to version 1.17. This is similar to long-hyphen-postshort-hyphen @@ -13031,18 +13658,23 @@ class="cmss-10">name\glsxtrlongshortdescname.

    +

    short-hyphen-long-hyphen

    This style (new to v1.17) is like

    + + + +

    This style (new to v1.17) is like long-hyphen-short-hyphen, - except that the short form is displayed first followed by the long form in - parentheses. The full form is formatted using -


    , except that the short + form is displayed first followed by the long form in parentheses. The full form is + formatted using +


    \glsxtrshorthyphenlong{label}{long}{insert}

    -

    +

    which behaves in an analogous way to \glsxtrlonghyphenshort. The namename\glsxtrshortlongname.

    +

    short-hyphen-long-hyphen-desc

    -

    New to version 1.17. This is similar to

    +

    New to version 1.17. This is similar to short-hyphen-long-hyphen but the user @@ -13073,26 +13707,24 @@ class="cmss-10">short-hyphen-long-hyphenname is obtained from \glsxtrshortlongdescname. - - -

    +

    short-hyphen-postlong-hyphen

    This style (new to v1.17) is like -

    +

    This style (new to v1.17) is like long-hyphen-postshort-hyphen, but the short form is displayed first followed by - the long form in parentheses. On first use, , but the short + form is displayed first followed by the long form in parentheses. On first use, + \gls{label}[insert] will do - +class="cmtt-10">] will do
    \glsxtrshorthyphen{short}insert
    where -



    \glsxtrposthyphenlong{label}insert

    -

    +

    is in the post-link hook. These commands behave in an analogous manner to those used with name is obtained from \glsxtrshortlongname. -

    Don’t use

    Don’t use \gls in the ⟨insert⟩ part for commands like \glsxtrfull, \glsxtrshort or \glsxtrlong.
    -

    -

    The inline full display format used by commands like

    +

    The inline full display format used by commands like \glsxtrfull behaves differently to the first use of \gls with this style. It’s better @@ -13144,12 +13776,17 @@ class="cmti-10">label⟩} if you want to ensure the full format.

    +

    short-hyphen-postlong-hyphen-desc

    -

    New to version 1.17. This is similar to

    +

    New to version 1.17. This is similar to short-hyphen-postlong-hyphen @@ -13160,13 +13797,13 @@ class="cmss-10">name\glsxtrshortlongdescname.

    -

    +

    -

    Top

    4.5 Defining New Abbreviation Styles

    -

    New abbreviation styles may be defined using: -


    New abbreviation styles may be defined using: +


    \newabbreviationstyle{namesetup}{fmts}

    -

    -

    where ⟨

    +

    where ⟨name⟩ is the name of the new style (as used in the mandatory argument of \setabbreviationstyleglossaries package’s \newacronymstyle command. - - - -

    You can’t use styles defined by

    You can’t use styles defined by \newacronymstyle with glossaries-extra unless you have reverted glossaries package can’t be used with abbreviations defined with \newabbreviation.
    -

    -

    The ⟨

    +

    The ⟨setup⟩ argument deals with the way the entry is defined and may set attributes for the given abbreviation category. This argument should redefine -



    \CustomAbbreviationFields

    -

    +

    to set the entry fields including the name (defaults to the short form if omitted), @@ -13228,12 +13862,12 @@ class="cmss-10">pluraldescription. -

    \CustomAbbreviationFields is expanded by \newabbreviation so take care to protect commands that shouldn’t be expanded.
    -

    -

    For example, the

    +

    For example, the long-short style has the following in ⟨setup⟩:

    -
    +
       \renewcommand*{\CustomAbbreviationFields}{%
    - 
        name={\protect\glsabbrvfont{\the\glsshorttok}}, - 
        sort={\the\glsshorttok}, - 
        first={\protect\glsfirstlongfont{\the\glslongtok}% - 
         \protect\glsxtrfullsep{\the\glslabeltok}% - 
         \glsxtrparen{\protect\glsfirstabbrvfont{\the\glsshorttok}}},% - 
        firstplural={\protect\glsfirstlongfont{\the\glslongpltok}% - 
         \protect\glsxtrfullsep{\the\glslabeltok}% - 
         \glsxtrparen{\protect\glsfirstabbrvfont{\the\glsshortpltok}}},% - 
        plural={\protect\glsabbrvfont{\the\glsshortpltok}},% - 
        description={\the\glslongtok}}% -
    -

    Note that the +

    Note that the first and firstplural are set even though they’re not used by \gls. -

    The basic styles, such as

    The basic styles, such as long-short, use commands like fmts⟩ argument even if they’re not used within \CustomAbbreviationFields. -

    The ⟨

    The ⟨setup⟩ argument may also redefine -



    \GlsXtrPostNewAbbreviation

    -

    +

    which can be used to assign attributes. (This will automatically be initialised to do nothing.) -

    For example, the

    For example, the short-footnote includes the following in ⟨setup⟩:

    -
    +
       \renewcommand*{\GlsXtrPostNewAbbreviation}{%
    - 
        \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}% - 
        \glshasattribute{\the\glslabeltok}{regular}% - 
        {% - 
          \glssetattribute{\the\glslabeltok}{regular}{false}% - 
        }% - 
        {}% - 
      }% -
    -

    This sets the +

    This sets the nohyperfirst attribute to “true”. It also unsets the nohyperfirst attribute doesn’t get unset by other styles, so take care not to switch styles for the same category. -

    You can access the short, long, short plural and long plural values through the +

    You can access the short, long, short plural and long plural values through the following token registers. -

    Short value (defined by

    Short value (defined by glossaries): -



    \glsshorttok

    -

    -

    Short plural value (defined by

    +

    Short plural value (defined by glossaries-extra): -



    \glsshortpltok

    -

    +

    (This may be the default value or, if provided, the value provided by the user through the shortplural key in the optional argument of \newabbreviation.) -

    Long value (defined by

    Long value (defined by glossaries): -



    \glslongtok

    -

    -

    Long plural value (defined by

    +

    Long plural value (defined by glossaries-extra): -



    \glslongpltok

    -

    +

    (This may be the default value or, if provided, the value provided by the user through the longplural key in the optional argument of \newabbreviation.) -

    The short or long values may be modified by attributes (such as

    The short or long values may be modified by attributes (such as markwords). The @@ -13365,15 +13999,15 @@ above registers reflect the modification. If you want to access the original (unmodified) short or long form (as provided in the final two arguments of \newabbreviation), then use the commands: -



    \glsxtrorgshort

    -

    +

    for the short form and -



    \glsxtrorglong

    -

    +

    for the long form. (These may be useful for the sort key to avoid any formatting that @@ -13381,36 +14015,36 @@ class="cmss-10">sort

    There are two other registers available that are defined by

    There are two other registers available that are defined by glossaries: -



    \glslabeltok

    -

    +

    which contains the entry’s label and -



    \glskeylisttok

    -

    +

    which contains the values provided in the optional argument of \newabbreviation. -

    Remember put

    Remember put \the in front of the register command as in the examples above. The category label can be access through the command (not a register): -



    \glscategorylabel

    -

    +

    This may be used inside the definition of \GlsXtrPostNewAbbreviation. -

    If you want to base a style on an existing style, you can use -


    If you want to base a style on an existing style, you can use +


    \GlsXtrUseAbbrStyleSetup{name}

    -

    +

    where ⟨name⟩ is the name of the existing style. For example, the -

    -

    within ⟨ +

    within ⟨setup⟩. -

    The ⟨

    The ⟨fmts⟩ argument deals with the way the entry is displayed in the document. This argument should redefine the following commands. -

    The default suffix for the plural short form (if not overridden by the

    The default suffix for the plural short form (if not overridden by the shortplural key): -



    \abbrvpluralsuffix

    -

    +

    (Note that this isn’t used for the plural long form, which just uses the regular \glspluralsuffix.) -

    The font used for the short form on

    The font used for the short form on first use or in the full forms: -



    \glsfirstabbrvfont{text}

    -

    -

    The font used for the short form on subsequent use or through commands like +

    +

    The font used for the short form on subsequent use or through commands like \glsxtrshort: -



    \glsabbrvfont{text}

    -

    -

    The font used for the long form on

    +

    The font used for the long form on first use or in the full forms: -



    \glsfirstlongfont{text}

    -

    -

    The font used for the long form in commands like

    +

    The font used for the long form in commands like \glsxtrlong use: -



    \glslongfont{text}

    -

    -

    Display full form singular no case-change (used by

    +

    Display full form singular no case-change (used by \gls on first use for @@ -13483,15 +14117,15 @@ abbreviations without the regular attribute set): -



    \glsxtrfullformat{label}{insert}

    -

    -

    Display full form singular first letter converted to upper case (used by

    +

    Display full form singular first letter converted to upper case (used by \Gls on \Glsregular attribute set): -



    \Glsxtrfullformat{label}{insert}

    -

    -

    Display full form plural no case-change (used by

    +

    Display full form plural no case-change (used by \glspl on first use for @@ -13515,7 +14149,7 @@ abbreviations without the regular attribute set): -



    \glsxtrfullplformat{label}

    -

    -

    Display full form plural first letter converted to upper case (used by

    +

    Display full form plural first letter converted to upper case (used by \Glspl on first use for abbreviations without the regular attribute set): -



    \Glsxtrfullplformat{label}{insert}

    -

    -

    In addition ⟨

    +

    In addition ⟨fmts⟩ may also redefine the following commands that govern the inline full formats. If the style doesn’t redefine them, they will default to the same as the display full forms. -

    Inline singular no case-change (used by

    Inline singular no case-change (used by \glsentryfull, \glsxtrfull\glsxtrfull\GLSxtrfull): -



    \glsxtrinlinefullformat{label}{insert}

    -

    -

    Inline singular first letter converted to upper case (used by

    +

    Inline singular first letter converted to upper case (used by \Glsentryfull and \Glsxtrfull): -



    \Glsxtrinlinefullformat{label}{insert}

    -

    -

    Inline plural no case-change (used by

    +

    Inline plural no case-change (used by \glsentryfullpl, \glsxtrfullpl\glsxtrfullpl\GLSxtrfullpl): -



    \glsxtrinlinefullplformat{label}{insert}

    -

    -

    Inline plural first letter converted to upper case (used by

    +

    Inline plural first letter converted to upper case (used by \Glsentryfullpl and \Glsxtrfullpl): -



    \Glsxtrinlinefullplformat{label}{insert}

    -

    -

    (New to version 1.17.) You can also modify the way the subsequent use is +

    +

    (New to version 1.17.) You can also modify the way the subsequent use is formatted by redefining the following four commands, but these won’t be used for abbreviations with the regular attribute set. If the style doesn’t redefine these commands, the default values are used. -

    Singular with no case-change: -


    Singular with no case-change: +


    \glsxtrsubsequentfmt{label}{insert}

    -

    -

    Singular with first letter upper case: -


    +

    Singular with first letter upper case: +


    \Glsxtrsubsequentfmt{label}{insert}

    -

    -

    Plural with no case-change: -


    +

    Plural with no case-change: +


    \glsxtrsubsequentplfmt{label}{insert}

    -

    +

    -

    Plural with first letter upper case: -


    Plural with first letter upper case: +


    \Glsxtrsubsequentplfmt{label}{insert}

    -

    -

    If you want to provide support for

    +

    If you want to provide support for glossaries-accsupp use the following \glsaccessxxx⟩ commands (§12.2 Accessibility Support) within the definitions of -§??sec:accsupp Accessibility Support) within the +definitions of \glsxtrfullformat etc instead of the analogous \glsentryxxx⟩ commands. (If you -don’t use xxx⟩ +commands. (If you don’t use glossaries-accsupp, they will just do the corresponding , they will just do the corresponding +\glsentryxxx⟩ -command.) -

    For example, the xxx⟩ command.) +

    For example, the short-long style has the following in ⟨fmts⟩:

    -
    +
       \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
    - 
      \renewcommand*{\glsabbrvfont}[1]{\glsabbrvdefaultfont{##1}}% - 
      \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}% - 
      \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}% - 
      \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}% - 
      \renewcommand*{\glsxtrfullformat}[2]{% - 
        \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}% - 
        \ifglsxtrinsertinside\else##2\fi - 
        \glsxtrfullsep{##1}% - 
        \glsxtrparen{\glsfirstlongfont{\glsaccesslong{##1}}}% - 
      }% - 
      \renewcommand*{\glsxtrfullplformat}[2]{% - 
        \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}% - 
        \ifglsxtrinsertinside\else##2\fi - 
        \glsxtrfullsep{##1}% - 
        \glsxtrparen{\glsfirstlongfont{\glsaccesslongpl{##1}}}% - 
      }% - 
      \renewcommand*{\Glsxtrfullformat}[2]{% - 
        \glsfirstabbrvfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}% - 
        \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}% - 
        \glsxtrparen{\glsfirstlongfont{\glsaccesslong{##1}}}% - 
      }% - 
      \renewcommand*{\Glsxtrfullplformat}[2]{% - 
        \glsfirstabbrvfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}% - 
         \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}% - 
        \glsxtrparen{\glsfirstlongfont{\glsaccesslongpl{##1}}}% - 
      }% -
    -

    Since the inline full commands aren’t redefined, they default to the same as the +  \renewcommand*{\glsabbrvfont}[1]{\glsabbrvdefaultfont{##1}}% +  \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}% +  \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}% +  \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}% +  \renewcommand*{\glsxtrfullformat}[2]{% +    \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}% +    \ifglsxtrinsertinside\else##2\fi +    \glsxtrfullsep{##1}% +    \glsxtrparen{\glsfirstlongfont{\glsaccesslong{##1}}}% +  }% +  \renewcommand*{\glsxtrfullplformat}[2]{% +    \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}% +    \ifglsxtrinsertinside\else##2\fi +    \glsxtrfullsep{##1}% +    \glsxtrparen{\glsfirstlongfont{\glsaccesslongpl{##1}}}% +  }% +  \renewcommand*{\Glsxtrfullformat}[2]{% +    \glsfirstabbrvfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}% +    \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}% +    \glsxtrparen{\glsfirstlongfont{\glsaccesslong{##1}}}% +  }% +  \renewcommand*{\Glsxtrfullplformat}[2]{% +    \glsfirstabbrvfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}% +     \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}% +    \glsxtrparen{\glsfirstlongfont{\glsaccesslongpl{##1}}}% +  }% + +

    Since the inline full commands aren’t redefined, they default to the same as the display versions. -

    If you want to base a style on an existing style, you can use -


    If you want to base a style on an existing style, you can use +


    \GlsXtrUseAbbrStyleFmts{name}

    -

    +

    within ⟨fmts⟩, where ⟨name⟩ is the name of the existing style. For example, the @@ -13731,11 +14366,11 @@ class="cmti-10">fmts⟩:

    -
    +
       \GlsXtrUseAbbrStyleFmts{long-short}%
    -
    -

    -

    Here’s an example of an abbreviation style that’s based on +

    +

    Here’s an example of an abbreviation style that’s based on long-short that displays @@ -13745,18 +14380,18 @@ class="cmtt-10">\textsf:

    -
    +
     \newabbreviationstyle
    - 
    {custom-sf}% label - 
    {% setup - 
      \GlsXtrUseAbbrStyleSetup{short-long}% - 
    }% - 
    {% fmts - 
      \GlsXtrUseAbbrStyleFmts{short-long}% - 
      \renewcommand*{\glsabbrvfont}[1]{\textsf{##1}}% - 
    } -
    -

    Note that this wouldn’t work if it was instead based on one of the modified versions +{custom-sf}% label +{% setup +  \GlsXtrUseAbbrStyleSetup{short-long}% +}% +{% fmts +  \GlsXtrUseAbbrStyleFmts{short-long}% +  \renewcommand*{\glsabbrvfont}[1]{\textsf{##1}}% +} + +

    Note that this wouldn’t work if it was instead based on one of the modified versions such as short-sc-longshort-long\glsabbrvfont etc which makes them easier to adapt than the modified styles. -

    For further details, see the “Abbreviations” section in the documented code +

    For further details, see the “Abbreviations” section in the documented code (glossaries-extra-code.pdf).

    -

    -

    +

    Top

    5. Entries in Sectioning Titles, Headers, Captions and Contents

    -

    The

    The glossaries user manual cautions against using commands like \gls in chapter or section titles. The principle problems are:

      -
    • if you have a table of contents, the +

      if you have a table of contents, the first use flag will be unset in the contents rather than later in the document; -

    • -
    • if you have the location lists displayed in the glossary, unwanted locations +

    • +
    • +

      if you have the location lists displayed in the glossary, unwanted locations will be added to it corresponding to the table of contents (if present) and every page that contains the entry in the page header (if the page style in use adds the chapter or section title to the header); -

    • -
    • if the page style in use adds the chapter or section title to the header and +

    • +
    • +

      if the page style in use adds the chapter or section title to the header and attempts to convert it to upper case, the entry label (in the argument of \gls etc) will be converted to upper case and the entry won’t be recognised; -

    • -
    • if you use
    • +
    • +

      if you use hyperref, commands like \gls can’t be expanded to a simple @@ -13809,18 +14448,19 @@ class="cmtt-10">\gls can’t be expanded to a simple from hyperref); -

    • -
    • if you use
    • +
    • +

      if you use hyperref, you will end up with nested hyperlinks in the table of - contents.

    -

    Similar problems can also occur with captions (except for the page header and bookmark + contents.

    +

    Similar problems can also occur with captions (except for the page header and bookmark issues).

    -

    Top

    5.1 Simplistic Approach

    -

    To get around all these problems, the

    To get around all these problems, the glossaries user manual recommends using the expandable non-hyperlink commands, such as \glsentrytext\glstext or \glsxtrshort. This means + + + that if, for example, you are using one of the abbreviation styles that uses \textsc -

    -

    Or, if you are using +

    Or, if you are using hyperref:

    -
    +
     \chapter{A Chapter about
    - 
    \texorpdfstring{\glsabbrvfont{\glsentryshort{html}}}{\glsentryshort{html}}} -
    -

    -

    Since this is a bit cumbersome, you might want to define a new command to do +\texorpdfstring{\glsabbrvfont{\glsentryshort{html}}}{\glsentryshort{html}}} + +

    +

    Since this is a bit cumbersome, you might want to define a new command to do this for you. However, if you have mixed styles this won’t work as commands like \gls and \MakeUppercase. -

    The

    The glossaries-extra package tries to resolve this by modifying \markright and @@ -13886,16 +14529,16 @@ class="cmtt-10">\markboth and \@starttoc. If you don’t like this change, you can restore their former definitions using -



    \glsxtrRevertMarks

    -

    +

    If you only want to restore \@starttoc you can use: -



    \glsxtrRevertTocMarks

    -

    +

    If you restore the header or table of contents commands, you’ll have to use the glossaries manual’s recommendations of either simply using -

    +
     \chapter[A Chapter about \glsentryshort{html}]{A Chapter about \gls{html}}
    -
    -

    Alternatively, you need to find a way to insert +

    Alternatively, you need to find a way to insert \glsxtrmarkhook and \@glsxtrinmark at the start of the header or table of contents either scoped or afterwards cancelled with \@glsxtrnotinmark and \glsxtrrestoremarkhook. -

    If you don’t revert the mark commands back with

    If you don’t revert the mark commands back with \glsxtrRevertMarks, you can use the commands described below in the argument of sectioning commands. You can still use them even if the mark commands have been reverted, but only where they don’t conflict with the page style. -

    +

    -

    Top

    5.2 New Commands Designed for Chapter/Section Headings

    -

    The commands listed below are designed for use in chapter or section headings. +

    The commands listed below are designed for use in chapter or section headings. There are still limitations, but they provide a better solution. They all use \texorpdfstring\texorpdfstring will be needed as appropriate in that field. (Take care if the field has its value expanded before being assigned.) -

    These commands essentially behave as though you have used

    These commands essentially behave as though you have used \glsxtrshort, \glstext etc with the options headuc attribute to “true” for the appropriate category. -

    If you use one of the

    If you use one of the \textsc styles, be aware that the default fonts don’t provide bold small-caps or italic small-caps. This means that if the chapter @@ -13973,9 +14616,9 @@ class="cmtt-10">\glsabbrvfont. You may want to consider using the slantsc package in this case.
    -

    -

    Display the short form: -


    +

    Display the short form: +


    \glsfmtshort{label}

    -

    -

    Display the plural short form: -


    +

    Display the plural short form: +


    \glsfmtshortpl{label}

    -

    -

    First letter upper case singular short form: -


    +

    First letter upper case singular short form: +


    \Glsfmtshort{label}

    -

    +

    (No case-change applied to PDF bookmarks.) -

    First letter upper case plural short form: -


    First letter upper case plural short form: +


    \Glsfmtshortpl{label}

    -

    +

    (No case-change applied to PDF bookmarks.) -

    All caps singular short form: -


    All caps singular short form: +


    \GLSfmtshort{label}

    -

    +

    (No case-change applied to PDF bookmarks.) -

    All caps plural short form: -


    All caps plural short form: +


    \Glsfmtshortpl{label}

    -

    +

    (No case-change applied to PDF bookmarks.) -

    Display the long form: -


    Display the long form: +


    \glsfmtlong{label}

    -

    -

    Display the plural long form: -


    +

    Display the plural long form: +


    \glsfmtlongpl{label}

    -

    -

    First letter upper case singular long form: -


    +

    First letter upper case singular long form: +


    \Glsfmtlong{label}

    -

    +

    (No case-change applied to PDF bookmarks.) -

    First letter upper case plural long form: -


    First letter upper case plural long form: +


    \Glsfmtlongpl{label}

    -

    +

    (No case-change applied to PDF bookmarks.) -

    All caps singular long form: -


    All caps singular long form: +


    \GLSfmtlong{label}

    -

    +

    (No case-change applied to PDF bookmarks.) -

    All caps plural long form: -


    All caps plural long form: +


    \GLSfmtlongpl{label}

    -

    +

    (No case-change applied to PDF bookmarks.) -

    There are similar commands for the full form, but note that these use the

    There are similar commands for the full form, but note that these use the inline full form, which may be different from the full form used by \gls. The PDF version has to be a simple fully expandable command, so one of two commands that are unrelated to the style is used instead: -



    \glspdffmtfull{label}

    -

    +

    for the singular form or: -



    \glspdffmtfullpl{label}

    -

    +

    for the full form. These simply do the long form followed by the short form in parentheses. -

    Display the full form: -


    Display the full form: +


    \glsfmtfull{label}

    -

    -

    Display the plural full form: -


    +

    Display the plural full form: +


    \glsfmtfullpl{label}

    -

    -

    First letter upper case singular full form: -


    +

    First letter upper case singular full form: +


    \Glsfmtfull{label}

    -

    +

    (No case-change applied to PDF bookmarks.) -

    First letter upper case plural full form: -


    First letter upper case plural full form: +


    \Glsfmtfullpl{label}

    -

    +

    (No case-change applied to PDF bookmarks.) -

    All caps singular full form: -


    All caps singular full form: +


    \GLSfmtfull{label}

    -

    +

    (No case-change applied to PDF bookmarks.) -

    All caps plural full form: -


    All caps plural full form: +


    \GLSfmtfullpl{label}

    -

    +

    (No case-change applied to PDF bookmarks.) -

    There are also equivalent commands for the value of the

    There are also equivalent commands for the value of the text field: -



    \glsfmttext{label}

    -

    -

    First letter converted to upper case: -


    +

    First letter converted to upper case: +


    \Glsfmttext{label}

    -

    +

    (No case-change applied to PDF bookmarks.) -

    All caps: -


    All caps: +


    \GLSfmttext{label}

    -

    +

    (No case-change applied to PDF bookmarks.) -

    The plural equivalents: -


    The plural equivalents: +


    \glsfmtplural{label}

    -

    +

    First letter upper case: -



    \Glsfmtplural{label}

    -

    +

    and all caps: -



    \GLSfmtplural{label}

    -

    -

    Likewise for the value of the

    +

    Likewise for the value of the name field: -



    \glsfmtname{label}

    -

    -

    First letter converted to upper case: -


    +

    First letter converted to upper case: +


    \Glsfmtname{label}

    -

    +

    (No case-change applied to PDF bookmarks.) -

    All caps: -


    All caps: +


    \GLSfmtname{label}

    -

    +

    (No case-change applied to PDF bookmarks.) -

    Similarly for the value of the

    Similarly for the value of the first field: -



    \glsfmtfirst{label}

    -

    -

    First letter converted to upper case: -


    +

    First letter converted to upper case: +


    \Glsfmtfirst{label}

    -

    +

    (No case-change applied to PDF bookmarks.) -

    All caps: -


    All caps: +


    \GLSfmtfirst{label}

    -

    +

    (No case-change applied to PDF bookmarks.) -

    The plural equivalents: -


    The plural equivalents: +


    \glsfmtfirstpl{label}

    -

    +

    First letter upper case: -



    \Glsfmtfirstpl{label}

    -

    +

    and all caps: -



    \GLSfmtfirstpl{label}

    -

    +

    @@ -14266,11 +14909,11 @@ class="cmtt-10">}


    -

    -

    +

    Top

    6. Categories

    -

    Each entry defined by

    Each entry defined by \newglossaryentry (or commands that internally use it such as babel shorthands on that make some characters active.) -

    The use of categories can give you more control over the way entries are displayed +

    The use of categories can give you more control over the way entries are displayed in the text or glossary. Note that an entry’s category is independent of the glossary type. Be careful not to confuse category with type. -

    The default category assumed by

    The default category assumed by \newglossaryentry is labelled general. @@ -14304,7 +14947,7 @@ class="cmtt-10">\newacronym have the category set to acronym by default. -

    Additionally, if you have enabled

    Additionally, if you have enabled \newterm with the numbersnumber. -

    You can obtain the category label for a given entry using -


    You can obtain the category label for a given entry using +


    \glscategory{label}

    -

    +

    This is equivalent to commands like \glsentryname and so may be used in an expandable context. No error is generated if the entry doesn’t exist. -

    You can test the category for a given entry using -


    You can test the category for a given entry using +


    \glsifcategory{entry-label}{false part}

    -

    +

    This is equivalent to

    }
    so any restrictions that apply to \ifglsfieldeq also apply to \glsifcategory. -

    Each category may have a set of attributes. For example, the

    Each category may have a set of attributes. For example, the general and acronym\glsentryfmt to determine whether to use \glsgenentryfmt or \glsxtrgenabbrvfmt. -

    Other attributes recognised by

    Other attributes recognised by glossaries-extra are:

    +

    + + + nohyperfirst

    When using commands like

    +

    When using commands like \gls this will automatically suppress the - - - - hyperlink on this will automatically suppress the hyperlink + on first use for entries with a category that has this attribute set to “true”. (This settings can be overridden by explicitly setting the nohyperfirst attribute then just redefine -



    \glsxtrchecknohyperfirst{label}

    -

    +

    to do nothing.

    +

    nohyper

    When using commands like

    +

    When using commands like \gls this will automatically suppress the - hyperlink for entries with a category that has this attribute set to “true”. (This - settings can be overridden by explicitly setting the this will automatically suppress the hyperlink + for entries with a category that has this attribute set to “true”. (This settings + can be overridden by explicitly setting the hyper key on or off in the - optional argument of commands like key on or off in the optional + argument of commands like \gls.) -

    +

    +

    indexonlyfirst

    This is similar to the

    +

    This is similar to the indexonlyfirst package option but only for entries - that have a category with this attribute set to “true”. -

    + id="dx1-35038"> package option but only for entries that have + a category with this attribute set to “true”. +

    +

    wrgloss

    When using commands like

    +

    When using commands like \gls, if this attribute is set to “after”, it will automatically implement wrgloss=after. (New to v1.14.) -

    +

    +

    discardperiod

    If set to “true”, the post-

    +

    If set to “true”, the post-link-text hook will discard a full stop - (period) that follows link-text hook will discard a full stop (period) that + follows non-plural commands like \gls or \glstext. (Provided - for entries such as abbreviations that end with a full stop.) This attribute is - only applicable to entries defined using \glstext. (Provided for entries such + as abbreviations that end with a full stop.) This attribute is only applicable to + entries defined using \newabbreviation (or \newacronym if - it’s using \newacronym if it’s using + \newabbreviation.) This attribute doesn’t apply to the accessibility fields. -

    Note that this can cause a problem if you access a field that doesn’t end with a + + + +

    Note that this can cause a problem if you access a field that doesn’t end with a full stop. For example:

    -
    +
          \newabbreviation
    -      
     [user1={German Speaking \TeX\ User Group}] -  
     {dante}{DANTE e.V.}{Deutschsprachige Anwendervereinigung \TeX\ -  
    e.V.} -
    -

    Here the +

    Here the short and longuser1 -

    -

    This will bring the punctuation character inside the +

    This will bring the punctuation character inside the link-text and it won’t be discarded.

    +

    pluraldiscardperiod

    If this attribute is set to “true”

    +

    If this attribute is set to “true” and the discardperiod attribute is - set to “true”, this will behave as above for the plural commands like \glspl or - \glsplural. This attribute is only applicable to entries defined using + id="dx1-35049"> attribute is set to “true”, + this will behave as above for the plural commands like \glspl or \glsplural. + This attribute is only applicable to entries defined using \newabbreviation (or \newabbreviation (or \newacronym if it’s using \newabbreviation.) -

    +

    +

    retainfirstuseperiod

    If this attribute is set to “true” then the full stop won’t be - discarded for

    +

    If this attribute is set to “true” then the full stop won’t be discarded + for first use instances, even if \newacronym if it’s using \newabbreviation.) This attribute doesn’t apply to the accessibility fields. -

    +

    +

    markwords

    If this attribute is set to “true” any entry defined using

    +

    If this attribute is set to “true” any entry defined using \newabbreviation - will automatically have spaces in the long form replaced with -


    will + automatically have spaces in the long form replaced with +


    \glsxtrwordsep

    -

    +

    and each word is encapsulated with -



    \glsxtrword{word}

    -

    +

    For example:

    -
    +
          \glssetcategoryattribute{abbreviation}{markwords}{true}
    -      
    \newabbreviation{ip}{IP}{Internet Protocol} -
    -

    is essentially the same as + \newabbreviation{ip}{IP}{Internet Protocol} + +

    is essentially the same as

    -
    +
          \newabbreviation{ip}{IP}
    -      
    {\glsxtrword{Internet}\glsxtrwordsep\glsxtrword{Protocol}} -
    -

    The “hyphen” styles, such as +

    The “hyphen” styles, such as long-hyphen-short-hyphen, take advantage of this @@ -14630,68 +15292,72 @@ class="cmtt-10">\glsxtrlong. You can provide your own

    -
    +
          \newcommand{\hyplong}[2][]{%
    -      
     {\def\glsxtrwordsep{-}\glsxtrlong[#1]{#2}}} -
    -

    -

    This setting will also adjust the long plural. This attribute is only applicable to +  {\def\glsxtrwordsep{-}\glsxtrlong[#1]{#2}}} + +

    +

    This setting will also adjust the long plural. This attribute is only applicable to entries defined using \newabbreviation (or \newacronym if it’s using \newabbreviation.) -

    This setting may result in the

    This setting may result in the \glsxtrword and \glsxtrwordsep markup ending up in the sort field, depending on the style in use.
    -

    +

    +

    markshortwords

    This is similar to

    +

    This is similar to markwords but applies to the short form. (Only - useful for abbreviations that contain spaces.) This attribute is only applicable - to entries defined using but applies to the short form. (Only useful for + abbreviations that contain spaces.) This attribute is only applicable to + entries defined using \newabbreviation (or \newacronym if it’s using \newabbreviation.) -

    This setting will only adjust the short plural if the

    This setting will only adjust the short plural if the shortplural key isn’t used. This setting will take precedence over insertdots. -

    This setting may result in the

    This setting may result in the \glsxtrword and \glsxtrwordsep markup ending up in the sort field, depending on the style in use.
    -

    +

    +

    insertdots

    If this attribute is set to “true” any entry defined using

    +

    If this attribute is set to “true” any entry defined using \newabbreviation - will automatically have full stops (periods) inserted after each letter. The entry - will be defined with those dots present as though they had been present in the - ⟨short⟩ argument of \newabbreviation (rather than inserting them every time - the entry is used). The short plural form defaults to the new dotted version of - the original ⟨ will + automatically have full stops (periods) inserted after each letter. The entry will + be defined with those dots present as though they had been present in the ⟨short⟩ + argument of \newabbreviation (rather than inserting them every time the + entry is used). The short plural form defaults to the new dotted version of the + original ⟨short⟩ form with the plural suffix appended. This setting is \newabbreviation (or \newacronym if it’s using \newabbreviation.) -

    If you explicitly override the short plural using the

    If you explicitly override the short plural using the shortplural key, you must explicitly insert the dots yourself (since there’s no way for the code to determine if the plural has a suffix that shouldn’t be followed by a dot).
    -

    - - - -

    This attribute is best used with the

    +

    This attribute is best used with the discardperiod attribute set to “true”.

    +

    aposplural

    If this attribute is set to “true”,

    +

    If this attribute is set to “true”, \newabbreviation will insert an apostrophe (’) before the plural suffix for the \newacronym if it’s using \newabbreviation.) Check with your supervisor, publisher or editor if you want to use this attribute as this usage is controversial. -

    +

    +

    noshortplural

    If this attribute is set to “true”,

    +

    If this attribute is set to “true”, \newabbreviation won’t append the plural suffix for the short plural form. This means the \newabbreviation (or \newacronym if it’s using \newabbreviation.) -

    +

    +

    headuc

    If this attribute is set to “true”, commands like

    +

    If this attribute is set to “true”, commands like \glsfmtshort will use the upper case version in the page headers. -

    +

    +

    tagging

    If this attribute is set to “true”, the tagging command defined by + id="dx1-35082">

    +

    If this attribute is set to “true”, the tagging command defined by \GlsXtrEnableInitialTagging will be activated to use \glsxtrtagfont in the glossary (see §4.1 §??sec:tagging Tagging Initials). -

    +

    + + + +

    entrycount

    Unlike the above attributes, this attribute isn’t boolean but instead must - be an integer value and is used in combination with

    +

    Unlike the above attributes, this attribute isn’t boolean but instead must be an + integer value and is used in combination with \glsenableentrycount - (see (see + §2.5 Entry Counting Modifications). Leave blank or undefined for - categories that shouldn’t have this facility enabled. The value of this attribute - is used by §??sec:entrycountmods Entry Counting Modifications). Leave blank or + undefined for categories that shouldn’t have this facility enabled. The value of + this attribute is used by \glsxtrifcounttrigger to determine how commands such as to determine how commands + such as \cgls - should behave. -

    With should behave. +

    With glossaries, commands like \cgls use \cglsformat only if the previous @@ -14826,53 +15507,60 @@ class="cmss-10">entrycount

    +

    linkcount

    This attribute is set to

    +

    This attribute is set to true by \GlsXtrEnableLinkCounting (see (see + §7.2 - §??sec:linkcount Link Counting). -

    +

    +

    linkcountmaster

    This attribute is set to the name of the master counter by - - - + id="dx1-35092">

    +

    This attribute is set to the name of the master counter by \GlsXtrEnableLinkCounting if the optional argument is provided (see if the optional argument is provided (see + §7.2 - §??sec:linkcount Link Counting). -

    +

    +

    glossdesc

    The

    +

    The \glossentrydesc command (used in the predefined glossary styles) is modified by glossaries-extra to check for this attribute. The attribute may have - one of the following values: + one of the following values:

      -
    • +

      firstuc: the first letter of the description will be converted to upper case (using \Glsentrydesc). -

    • -
    • +
    • +

      title: the description will be used in the argument of the title casing command \capitalisewords\capitalisewordsmfirstuc). If you want to use a different command you can redefine: -



      \glsxtrfieldtitlecasecs{phrase cs}

      -

      + + + +

      For example:

      -
      +
                \newcommand*{\glsxtrfieldtitlecasecs}[1]{\xcapitalisefmtwords*{#1}}
      -
      -

      (Note that the argument to +

      (Note that the argument to \glsxtrfieldtitlecasecs will be a control sequence whose replacement text is the entry’s description, which is why \xcapitalisefmtwords is needed instead of \capitalisefmtwords.)

    -

    Any other values of this attribute are ignored. Remember that there are design +

    Any other values of this attribute are ignored. Remember that there are design limitations for both the first letter uppercasing and the title casing commands. See the mfirstuc user manual for further details.

    +

    glossdescfont

    (New to version 1.04) In addition to the above, the modified -

    +

    (New to version 1.04) In addition to the above, the modified \glossentrydesc command also checks this attribute. If set, it should be the - name of a control sequence (without the leading backslash) that takes one - argument. This control sequence will be applied to the description text. For - example: + id="dx1-35102"> + command also checks this attribute. If set, it should be the name of a control + sequence (without the leading backslash) that takes one argument. This control + sequence will be applied to the description text. For example: -

    +

    +
          \glssetcategoryattribute{general}{glossdescfont}{emph}
    -
    -

    + +

    +

    glossname

    As

    +

    As glossdesc but applies to \glossentryname. Additionally, if this - attribute is set to “uc” the name is converted to all capitals. -

    + id="dx1-35105">. Additionally, if this attribute is + set to “uc” the name is converted to all capitals. +

    +

    indexname

    If set, the

    +

    If set, the \glsxtrpostnamehook hook used at the end of \glossentryname @@ -14951,86 +15648,98 @@ class="cmtt-10">\glossentryname\index. See §8 Auto-Indexing for further - details. -

    +class="tcrm-1000">§??sec:autoindex Auto-Indexing for + further details. +

    +

    glossnamefont

    (New to version 1.04) In addition to the above, the modified -

    +

    (New to version 1.04) In addition to the above, the modified \glossentryname command also checks this attribute. If set, it should be the - name of a control sequence (without the leading backslash) that takes one - argument. This control sequence will be applied to the name text. For - example: + id="dx1-35110"> + command also checks this attribute. If set, it should be the name of a control + sequence (without the leading backslash) that takes one argument. This control + sequence will be applied to the name text. For example: -

    +

    +
          \glssetcategoryattribute{general}{glossnamefont}{emph}
    -
    -

    Note that this overrides +

    Note that this overrides \glsnamefont which will only be used if this attribute hasn’t been set. -

    Remember that glossary styles may additionally apply a font change, +

    Remember that glossary styles may additionally apply a font change, such as the list styles which put the name in the optional argument of \item.

    +

    glosssymbolfont

    (New to version 1.42.) This is similar to

    +

    (New to version 1.42.) This is similar to glossnamefont and - and glossdescfont but is used by but is + used by \glossentrysymbol. -

    +

    +

    textformat

    (New to version 1.21.) Commands like

    +

    (New to version 1.21.) Commands like \gls and \glstext have the link - text encapsulated in the argument of \glstextformat by default. If this - attribute is set, the control sequence given by the attribute value will be used - instead. As with the above, the attribute value should be the name (without - the leading backslash) of a command that takes a single argument (the link - text). Remember that the abbreviation styles may apply an additional font +class="cmtt-10">\glstext have the link text + encapsulated in the argument of \glstextformat by default. If this attribute is + set, the control sequence given by the attribute value will be used instead. As + with the above, the attribute value should be the name (without the leading + backslash) of a command that takes a single argument (the link text). + Remember that the abbreviation styles may apply an additional font change. -

    +

    +

    hyperoutside

    (New to v1.21.) The attribute value may be

    +

    (New to v1.21.) The attribute value may be false, true or unset. If - unset, true or unset. If unset, + true is assumed. This indicates the default setting of the hyperoutside - key, described in key, + described in §2.2 §??sec:wrglossary Entry Indexing. -

    +

    +

    dualindex

    If set, whenever a glossary entry has information written to the external + id="dx1-35118">

    +

    If set, whenever a glossary entry has information written to the external glossary file through commands like \gls and \glsadd\index. See §8 Auto-Indexing for - further details. -

    +class="tcrm-1000">§??sec:autoindex + Auto-Indexing for further details. + + + +

    +

    targeturl

    If set, the hyperlink generated by commands like \gls will be set to the - URL provided by this attributes value. For example: + id="dx1-35122">

    +

    If set, the hyperlink generated by commands like \gls will be set to the URL + provided by this attributes value. For example: -

    +

    +
          \glssetcategoryattribute{general}{targeturl}{master-doc.pdf}
    -
    -

    (See also the accompanying sample file +

    (See also the accompanying sample file sample-external.tex.) If the URL contains awkward characters (such as % or \glspercentchar and \glstildechar that expand to literal characters. -

    If you want to a named anchor within the target URL (notionally adding +

    If you want to a named anchor within the target URL (notionally adding #name⟩ to the URL), then you also need to set \glslabel within ⟨name⟩ which is set by commands like \gls to the entry’s label. -

    All the predefined glossary styles start each entry listing with

    All the predefined glossary styles start each entry listing with \glstarget which sets the anchor to \glolinkprefix\glslabel, so if you want @@ -15094,13 +15810,13 @@ class="cmss-10">targeturl -

    -

    (If the target document changed +

    (If the target document changed \glolinkprefix then you will need to adjust the above as appropriate.) -

    If the anchor is in the form ⟨

    If the anchor is in the form ⟨name1.name2⟩ then use targetcategory for the ⟨name1⟩ part. -

    For example: +

    For example:

    -
    +
          \glssetcategoryattribute{general}{targeturl}{master-doc.pdf}
    -      
    \glssetcategoryattribute{general}{targetcategory}{page} -  
    \glssetcategoryattribute{general}{targetname}{7} -
    -

    will cause all link text for +

    will cause all link text for general entries to link to master-doc.pdf#page.7 (page 7 of that PDF). -

    If you want a mixture in your document of entries that link to an internal +

    If you want a mixture in your document of entries that link to an internal glossary and entries that link to an external URL then you can use the starred form of \newignoredglossary\newignoredglossary -

    -

    + \glssetcategoryattribute{external}{targeturl}{master-doc.pdf} + \glssetcategoryattribute{general}{targetname}{\glolinkprefix\glslabel} + \newglossaryentry{sample}{name={sample},description={local example}} + \newglossaryentry{sample2}{name={sample2}, +   type=external, +   category=external, +   description={external example}} + +

    +

    externallocation

    The value should be the file name of the target document when - manually indexing an external location (see

    +

    The value should be the file name of the target document when manually + indexing an external location (see §2.2 Entry Indexing). In general, - it’s better to use §??sec:wrglossary Entry Indexing). In + general, it’s better to use bib2gls v1.7+ which can handle multiple external sources - and doesn’t require this attribute. +class="cmtt-10">bib2gls v1.7+ which can handle multiple external + sources and doesn’t require this attribute. +

    -

    If a term is defined using

    If a term is defined using \newabbreviation and accessibility support has been supplied via the accsuppshortaccess isn’t set its value will be obtained from: -



    \glsdefaultshortaccess{short}{long}

    -

    +

    This is defined by glossaries-accsupp to just do ⟨accessnoshortplural attributes below refer to the ⟨short⟩ form that’s passed to this command. -

    The following attributes are only applicable to entries defined using +

    The following attributes are only applicable to entries defined using \newabbreviation (or \newacronym if it’s using accsupp package option hasn’t been used.

    +

    accessinsertdots

    If this attribute is set to “true” and the

    +

    If this attribute is set to “true” and the glossaries-accsupp - package has been loaded (with the package has + been loaded (with the accsupp option), then this behaves - like option), then this behaves like insertdots but for the ⟨ + but for the ⟨short⟩ part used in the shortaccess field instead - of the field instead of the short field. This setting will be overridden by an explicit use of - the + + + + field. This setting will be overridden by an explicit use of the shortaccess key in the optional argument of \newabbreviation (or - + key in the optional argument of \newabbreviation (or \newacronym). -

    +

    +

    accessaposplural

    This boolean attribute overrides

    +

    This boolean attribute overrides aposplural for - - - - the for the shortpluralaccess key. Has no effect if there’s no accessibility support - or if the key. + Has no effect if there’s no accessibility support or if the shortaccess key hasn’t been set or if the key + hasn’t been set or if the shortpluralaccess key - is explicitly set. If the key is explicitly set. If the + aposplural is set and this attribute isn’t set and - the is set and this attribute isn’t set and the shortaccess key is set, then the key is set, + then the aposplural setting governs the default - setting governs the default shortpluralaccess setting. If you want setting. + If you want aposplural but don’t want it applied to - the accessibility support, set the but don’t want it applied to the accessibility + support, set the accessaposplural attribute to “false”. This - attribute is only applicable to entries defined using \newabbreviation (or - \newacronym if it’s using attribute to “false”. This attribute is only + applicable to entries defined using \newabbreviation (or \newacronym if + it’s using \newabbreviation.) -

    +

    +

    accessnoshortplural

    - This boolean attribute overrides

    This boolean attribute overrides noshortplural for the \newabbreviation (or \newacronym if it’s using \newabbreviation.) -

    +

    +

    nameshortaccess

    If this attribute is set to “true”, the

    +

    If this attribute is set to “true”, the access field (used for - the field (used for the name field’s accessibility support) automatically assigned if it’s not - provided. -

    + id="dx1-35165"> field’s + accessibility support) automatically assigned if it’s not provided. +

    +

    textshortaccess

    Like

    +

    Like nameshortaccess but applies to the textaccess field - automatically assigned if it’s not provided. -

    + id="dx1-35168"> field automatically + assigned if it’s not provided. +

    +

    firstshortaccess

    Like

    +

    Like nameshortaccess but applies to the firstaccess field - automatically assigned if it’s not provided. + id="dx1-35171"> field automatically + assigned if it’s not provided. +

    -

    An attribute can be set using: -


    An attribute can be set using: +


    \glssetcategoryattribute{category-label}{value}

    -

    +

    where ⟨category-label⟩ is the category label, ⟨attribute-label⟩ is the attribute label and ⟨value⟩ is the new value for the attribute. -

    There is a shortcut version to set the

    There is a shortcut version to set the regular attribute to “true”: -



    \glssetregularcategory{category-label}

    -

    -

    If you need to lookup the category label for a particular entry, you can use the +

    +

    If you need to lookup the category label for a particular entry, you can use the shortcut command: -



    \glssetattribute{entry-labelattribute-label}{value}

    -

    +

    This uses \glssetcategoryattribute with \glscategory to set the attribute. Note that this will affect all other entries that share this entry’s category. -

    You can fetch the value of an attribute for a particular category using: - - - -


    You can fetch the value of an attribute for a particular category using: +


    \glsgetcategoryattribute{category-label}{attribute-label}

    -

    +

    Again there is a shortcut if you need to lookup the category label for a given entry: -



    \glsgetattribute{entry-label}{attribute-label}

    -

    -

    You can test if an attribute has been assigned to a given category using: -


    +

    You can test if an attribute has been assigned to a given category using: +


    \glshascategoryattribute{category-labelcode}{false code}

    -

    +

    This uses etoolbox’s true code⟩ if the attribute has been set and isn’t blank and isn’t \relax. The shortcut if you need to lookup the category label from an entry is: -



    \glshasattribute{entry-labelfalse code}

    -

    -

    You can test the value of an attribute for a particular category using: -


    +

    You can test the value of an attribute for a particular category using: +


    \glsifcategoryattribute{category-labeltrue-part}{false-part}

    -

    +

    This tests if the attribute (given by ⟨attribute-label⟩) for the category (given by ⟨true-part⟩ is done. If the attribute isn’t set or is set but isn’t equal to ⟨value⟩, ⟨false part⟩ is done. -

    For example: +

    For example:

    -
    +
     \glsifcategoryattribute{general}{nohyper}{true}{NO HYPER}{HYPER}
    -
    -

    This does “NO HYPER” if the +

    This does “NO HYPER” if the general category has the nohyper attribute set to true otherwise if does “HYPER”. -

    With boolean-style attributes like

    With boolean-style attributes like nohyper, make sure you always test for true not false in case the attribute hasn’t been set. -

    Again there’s a shortcut if you need to lookup the category label from a particular +

    Again there’s a shortcut if you need to lookup the category label from a particular entry: -



    \glsifattribute{entry-label} class="cmtt-10">{⟨false-part}

    -

    -

    There’s also a shortcut to determine if a particular category has the

    +

    There’s also a shortcut to determine if a particular category has the regular attribute set to “true”: -



    \glsifregularcategory{category-label}{false-part}

    -

    +

    Alternatively, if you need to lookup the category for a particular entry: -



    \glsifregular{entry-labeltrue-part}{false-part}

    -

    +

    Note that if the regularregular attribute has been set to “false”: -



    \glsifnotregularcategory{category-label}{false-part}

    -

    +

    or for a particular entry: -



    \glsifnotregular{entry-labeltrue-part}{false-part}

    -

    +

    Again, if the regular attribute hasn’t been set, the above do ⟨false-part⟩, so these reverse commands aren’t logically opposite in the strict sense. -

    You can iterate through all entries with a given category using: -


    You can iterate through all entries with a given category using: +


    \glsforeachincategory[glossary-labels]{label-cs}{body}

    -

    +

    This iterates through all entries in the glossaries identified by the comma-separated list ⟨glossary-labels⟩ that have the category given by ⟨label-cs⟩ (which much be control sequences) to access the current glossary and entry label. If ⟨glossary-labels⟩ is omitted, all glossaries are assumed. -

    Similarly, you can iterate through all entries that have a category with a given +

    Similarly, you can iterate through all entries that have a category with a given attribute using: -



    \glsforeachwithattribute[glossary-labelslabel-cs}{body}

    -

    +

    This will do ⟨body⟩ for each entry that has a category with the attribute ⟨attribute-label⟩ set to ⟨attribute-value⟩. The remaining arguments are as the previous command. -

    You can change the category for a particular entry using the standard glossary +

    You can change the category for a particular entry using the standard glossary field changing commands, such as \glsfielddef. Alternatively, you can use -



    \glsxtrsetcategory{entry-labels}{category-label}

    -

    +

    This will change the category to ⟨category-label⟩ for each entry listed in the comma-separated list ⟨\glsfieldxdef so it will expand ⟨category-label⟩ and make the change global. -

    You can also change the category for all entries with a glossary or glossaries +

    You can also change the category for all entries with a glossary or glossaries using: -



    \glsxtrsetcategoryforall{glossary-labels}{category-label}

    -

    +

    where ⟨glossary-labels⟩ is a comma-separated list of glossary labels.

    -

    -

    +

    Top

    7. Counting References

    -

    There are three basic ways of counting entry references: +

    There are three basic ways of counting entry references:

      -
    1. Counting the total number of times +

      Counting the total number of times \glsunset is used (\glsreset resets the count and is best avoided). This is provided by the base glossaries has to be written to the .aux file so that it’s available on the next LaTeX run. -

      This method is extended by glossaries-extra and is described in

      This method is extended by glossaries-extra and is described in + §7.1 Entry - Counting (First Use Flag). +class="tcrm-1000">§??sec:entrycount Entry Counting (First Use Flag).

    2. -
    3. Counting the total number of records. This method is only available with +
    4. +

      Counting the total number of records. This method is only available with bib2gls and is intended for documents where the term differently if it’s only been recorded (indexed) a certain number of times. See §9.5 §??sec:recordcount Record Counting for further details. -

    5. -
    6. Counting the number of times the
    7. +
    8. +

      Counting the number of times the \gls-like or \glstext-like commands are used. (That is, those commands that internally use @@ -15718,40 +16453,48 @@ class="cmtt-10">\@gls@link.) Unlike the other two methods, this ju class="cmtt-10">\glslinkcheckfirsthyperhook, \glslinkpostsetkeys or \glslinkpresetkeys. See \glslinkpresetkeys. See §7.2 Link Counting for further details.

    -

    §??sec:linkcount Link Counting for further + details.

    +

    Top

    7.1 Entry Counting (First Use Flag)

    -

    As mentioned in

    As mentioned in §2.5 §??sec:entrycountmods Entry Counting Modifications, glossaries-extra modifies the -glossaries-extra +modifies the \glsenableentrycount command to allow for the entrycount attribute. This means -that you not only need to enable entry counting with +attribute. This means that you not only need to enable entry counting with +\glsenableentrycount, but -you also need to set the appropriate attribute (see , but you also need to set the appropriate attribute (see +§6 §??sec:categories Categories). -

    Remember that entry counting only counts the number of times an entry is used +

    Remember that entry counting only counts the number of times an entry is used by commands that change the first use flag. (That is, all those commands + + + that mark the entry as having been used.) There are many commands that don’t modify this flag and they won’t contribute to the entry use count.
    -

    -

    With

    +

    With glossaries-extra, you may use \cgls instead of entrycount attribute. (With glossaries, commands like \cgls -will generate a warning if \glsenableentrycount hasn’t been used.) The - - - -abbreviation shortcut will +generate a warning if \glsenableentrycount hasn’t been used.) The abbreviation +shortcut \ab uses \cgls (see §4.3 §??sec:abbrshortcuts Shortcut Commands). The acronym shortcut \acshortcuts=acro). -

    All upper case versions (not provided by

    All upper case versions (not provided by glossaries) are also available: -



    \cGLS[optionslabel}[insert]

    -

    +

    and -



    \cGLSpl[optionslabel}[insert]

    -

    +

    These are analogous to \cgls and \cglspl but they use -



    \cGLSformat{label}{insert}

    -

    +

    and -



    \cGLSplformat{label}{insert}

    -

    +

    which convert the analogous \cglsformat and \cglsplformat to upper case. -

    Just using

    Just using glossaries:

    -
    +
     \documentclass{article}
    - 
    \usepackage{glossaries} - 
    \makeglossaries - 
    \glsenableentrycount - 
    \newacronym{html}{HTML}{hypertext markup language} - 
    \newacronym{xml}{XML}{extensible markup language} - 
    \begin{document} - 
    Used once: \cgls{html}. - 
    Used twice: \cgls{xml} and \cgls{xml}. - 
    \printglossaries - 
    \end{document} -
    -

    -

    If you switch to +

    +

    If you switch to glossaries-extra you must set the entrycountentrycount -

    -

    -

    When activated with +

    +

    When activated with \glsenableentrycount, commands such as \cgls now use -



    \glsxtrifcounttrigger{labeltrigger code}{normal code}

    -

    +

    to determine if the entry trips the entry count trigger. The ⟨trigger code⟩ uses commands like trigger code⟩ but the usual \gls behaviour in ⟨normal code⟩). -

    The default definition is: +

    The default definition is:

    -
    +
     \newcommand*{\glsxtrifcounttrigger}[3]{%
    - 
     \glshasattribute{#1}{entrycount}% - 
     {% - 
       \ifnum\glsentryprevcount{#1}>\glsgetattribute{#1}{entrycount}\relax - 
        #3% - 
       \else - 
        #2% - 
       \fi - 
     }% - 
     {#3}% - 
    } -
    -

    This means that if an entry is assigned to a category that has the +

    This means that if an entry is assigned to a category that has the entrycount @@ -15948,17 +16689,17 @@ attribute then the ⟨trigger code⟩ will be used if the previous count value (the number of times the entry was used on the last run) is greater than the value of the attribute. -

    For example, to trigger normal use if the previous count value is greater than +

    For example, to trigger normal use if the previous count value is greater than four:

    -
    +
     \glssetcategoryattribute{abbreviation}{entrycount}{4}
    -
    -

    -

    There is a convenient command provided to enable entry counting, set the + +

    +

    There is a convenient command provided to enable entry counting, set the entrycount\gls, etc to use \cgls etc: -



    \GlsXtrEnableEntryCounting{categories}{value}

    -

    +

    The first argument ⟨categories⟩ is a comma-separated list of categories. For each category, the value⟩. In addition, this does:

    -
    +
     \renewcommand*{\gls}{\cgls}%
    - 
    \renewcommand*{\Gls}{\cGls}% - 
    \renewcommand*{\glspl}{\cglspl}% - 
    \renewcommand*{\Glspl}{\cGlspl}% - 
    \renewcommand*{\GLS}{\cGLS}% - 
    \renewcommand*{\GLSpl}{\cGLSpl}% -
    -

    This makes it easier to enable entry-counting on existing documents. -

    If you use +

    This makes it easier to enable entry-counting on existing documents. +

    If you use \GlsXtrEnableEntryCounting more than once, subsequent uses will just set the entrycount attribute for each listed category. -

    The above example document can then become: +

    The above example document can then become:

    -
    +
     \documentclass{article}
    - 
    \usepackage{glossaries-extra} - 
    \makeglossaries - 
    \GlsXtrEnableEntryCounting{abbreviation}{1} - 
    \newabbreviation{html}{HTML}{hypertext markup language} - 
    \newabbreviation{xml}{XML}{extensible markup language} - 
    \begin{document} - 
    Used once: \gls{html}. - 
    Used twice: \gls{xml} and \gls{xml}. - 
    \printglossaries - 
    \end{document} -
    -

    -

    The standard entry-counting function describe above counts the number of times +\usepackage{glossaries-extra} +\makeglossaries +\GlsXtrEnableEntryCounting{abbreviation}{1} +\newabbreviation{html}{HTML}{hypertext markup language} +\newabbreviation{xml}{XML}{extensible markup language} +\begin{document} +Used once: \gls{html}. +Used twice: \gls{xml} and \gls{xml}. +\printglossaries +\end{document} + +

    +

    The standard entry-counting function describe above counts the number of times an entry has been marked as used throughout the document. (The reset commands will reset the total back to zero.) If you prefer to count per sectional-unit, you can use -



    \GlsXtrEnableEntryUnitCounting{categories}{counter-name}

    -

    +

    where ⟨categories⟩ is a comma-separated list of categories to which this feature should be applied, ⟨value⟩ is the trigger value and ⟨counter-name⟩ is the name of the counter used by the sectional unit. -

    Due to the asynchronous nature of TeX’s output routine, discrepancies will occur +

    Due to the asynchronous nature of TeX’s output routine, discrepancies will occur in page spanning paragraphs if you use the page counter.
    -

    -

    Note that you can’t use both the document-wide counting and the per-unit +

    +

    Note that you can’t use both the document-wide counting and the per-unit counting in the same document. -

    The counter value is used as part of a label, which means that

    The counter value is used as part of a label, which means that \thecounter-name⟩ needs to be expandable. Since \theHcounter-name⟩ if it exists otherwise it will use \thecounter-name⟩. -

    The per-unit counting function uses two attributes:

    The per-unit counting function uses two attributes: entrycount (as before) and @@ -16074,69 +16815,69 @@ class="cmss-10">entrycountunitcount (the name of the counter). -

    Both the original document-wide counting mechanism and the per-unit counting +

    Both the original document-wide counting mechanism and the per-unit counting mechanism provide a command that can be used to access the current count value for this run: -



    \glsentrycurrcount{label}

    -

    +

    and the final value from the previous run: -



    \glsentryprevcount{label}

    -

    +

    In the case of the per-unit counting, this is the final value for the current unit. In both commands ⟨label⟩ is the entry’s label. -

    The per-unit counting mechanism additionally provides: -


    The per-unit counting mechanism additionally provides: +


    \glsentryprevtotalcount{label}

    -

    +

    which gives the sum of all the per-unit totals from the previous run for the entry given by ⟨label⟩, and -



    \glsentryprevmaxcount{label}

    -

    +

    which gives the maximum per-unit total from the previous run. -

    The above two commands are unavailable for the document-wide counting. -

    Example of per-unit counting, where the unit is the chapter: +

    The above two commands are unavailable for the document-wide counting. +

    Example of per-unit counting, where the unit is the chapter:

    -
    +
     \documentclass{report}
    - 
    \usepackage{glossaries-extra} - 
    \GlsXtrEnableEntryUnitCounting{abbreviation}{2}{chapter} - 
    \makeglossaries - 
    \newabbreviation{html}{HTML}{hypertext markup language} - 
    \newabbreviation{css}{CSS}{cascading style sheet} - 
    \newglossaryentry{sample}{name={sample},description={sample}} - 
    \begin{document} - 
    \chapter{Sample} - 
    Used once: \gls{html}. - 
    Used three times: \gls{css} and \gls{css} and \gls{css}. - 
    Used once: \gls{sample}. - 
    \chapter{Another Sample} - 
    Used once: \gls{css}. - 
    Used twice: \gls{html} and \gls{html}. - 
    \printglossaries - 
    \end{document} -
    -

    In this document, the +

    In this document, the css entry is used three times in the first chapter. This is more than the trigger value of 2, so \gls{css} is expanded on \gls{css} doesn’t get a line added to the glossary file. -

    The

    The html is used a total of three times, but the expansion and indexing suppression trigger is tripped in both chapters because the per-unit total (1 for the first chapter and 2 for the second chapter) is less than or equal to the trigger value. -

    The

    The sample entry has only been used once, but it doesn’t trip the indexing suppression because it’s in the general\GlsXtrEnableEntryUnitCounting. -

    The per-unit entry counting can be used for other purposes. In the following +

    The per-unit entry counting can be used for other purposes. In the following example document the trigger value is set to zero, which means the index suppression won’t be triggered, but the unit entry count is used to automatically suppress the hyperlink for commands like \gls by modifying the hook -



    \glslinkcheckfirsthyperhook

    -

    +

    which is used at the end of the macro the determines whether or not to suppress the hyperlink.

    -
    +
     \documentclass{article}
    - 
    \usepackage[colorlinks]{hyperref} - 
    \usepackage{glossaries-extra} - 
    \makeglossaries - 
    \GlsXtrEnableEntryUnitCounting{general}{0}{page} - 
    \newglossaryentry{sample}{name={sample},description={an example}} - 
    \renewcommand*{\glslinkcheckfirsthyperhook}{% - 
      \ifnum\glsentrycurrcount\glslabel>0 - 
       \setkeys{glslink}{hyper=false}% - 
      \fi - 
    } - 
    \begin{document} - 
    A \gls{sample} entry. - 
    Next use: \gls{sample}. - 
    \newpage - 
    Next page: \gls{sample}. - 
    Again: \gls{sample}. - 
    \printglossaries - 
    \end{document} -
    -

    This only produces a hyperlink for the first instance of +

    This only produces a hyperlink for the first instance of \gls{sample} on each page. -

    The earlier warning about using the

    The earlier warning about using the page counter still applies. If the first instance of \gls occurs at the top of the page within a paragraph that started on the previous page, then the count will continue from the previous page. -

    +

    -

    Top

    7.2 Link Counting

    -

    As from version 1.26, an alternative method of entry counting is to count the number +

    As from version 1.26, an alternative method of entry counting is to count the number @@ -16233,15 +16974,15 @@ class="cmtt-10">\hyperlink when displaying the link-text.) -

    To enable link counting use the preamble-only command: -


    To enable link counting use the preamble-only command: +


    \GlsXtrEnableLinkCounting[master counter]{categories}

    -

    +

    where ⟨categories⟩ is a list of category labels. The optional argument ⟨master @@ -16257,16 +16998,16 @@ href="#catattr.linkcountmaster">linkcountmaster attribute. -

    When enabled, commands like

    When enabled, commands like \gls and \glstext increment the associated counter using -



    \glsxtrinclinkcounter{counter name}

    -

    +

    This just does \stepcounter{counter name\refstepcounter instead, just redefine this command:

    -
    +
     \renewcommand*{\glsxtrinclinkcounter}[1]{\refstepcounter{#1}}
    -
    -

    -

    You can access the internal count register using -


    +

    +

    You can access the internal count register using +


    \GlsXtrLinkCounterValue{label}

    -

    +

    where ⟨label⟩ is the entry’s label. This will expand to 0 if the counter hasn’t been defined. -

    It’s also possible to access the display value (

    It’s also possible to access the display value (\thecounter⟩) using -



    \GlsXtrTheLinkCounter{counter}

    -

    +

    (This will expand to 0 if the counter hasn’t been defined.) -

    In order to conserve resources, the counter is only defined when it first +

    In order to conserve resources, the counter is only defined when it first needs to be incremented so terms that have been defined but haven’t been used in the document won’t have the associated count register allocated.
    -

    -

    You can test if the counter has been defined using: -


    +

    You can test if the counter has been defined using: +


    \GlsXtrIfLinkCounterDef{labeltrue}{false}

    -

    +

    where ⟨label⟩ is the entry’s label. -

    The counter name can be obtained using -


    The counter name can be obtained using +


    \GlsXtrLinkCounterName{label}

    -

    +

    This simply expands to the counter name associated with the entry given by ⟨label⟩ without any check for existence. For example, to change the display command @@ -16338,10 +17079,10 @@ class="cmss-10">etoolbox -

    -

    This is useful if you just want to change the display for specific entries but isn’t + +

    This is useful if you just want to change the display for specific entries but isn’t convenient if you want to change the display for all entries. Instead, it’s simpler to redefine \GlsXtrTheLinkCounter. For example: @@ -16349,16 +17090,16 @@ class="cmtt-10">\GlsXtrTheLinkCounter. For example:

    -
    +
     \renewcommand*{\GlsXtrTheLinkCounter}[1]{%
    - 
     \GlsXtrIfLinkCounterDef{#1}% - 
     {\Roman{\GlsXtrLinkCounterName{#1}}}% - 
     {0}% - 
    } -
    -

    In both cases, the redefinition should be implemented after +

    In both cases, the redefinition should be implemented after \GlsXtrEnableLinkCounting. -

    Here’s an example document that uses link counting to disable the hyperlink after +

    Here’s an example document that uses link counting to disable the hyperlink after the first reference. This redefines \glslinkpresetkeys (which is used by both \glstext).

    -
    +
     \documentclass{article}
    - 
    \usepackage[colorlinks]{hyperref} - 
    \usepackage{glossaries-extra} - 
    \makeglossaries - 
    \renewcommand*{\glslinkpresetkeys}{% - 
     \ifnum\GlsXtrLinkCounterValue{\glslabel}>1 - 
      \setkeys{glslink}{hyper=false}% - 
     \fi - 
    } - 
    \GlsXtrEnableLinkCounting{general} - 
    \newglossaryentry{sample1}{name={sample1},description={an example}} - 
    \newglossaryentry{sample2}{name={sample2},description={another example}} - 
    \newabbreviation{ex}{ex}{example} - 
    \begin{document} - 
    \section{Sample Section} - 
    \Gls{sample1}, \gls{sample2} and \gls{ex}. - 
    \Glstext{sample1} and \gls{ex} again. - 
    \section{Another Sample Section} - 
    \Gls{sample1}, \gls{sample2} and \gls{ex}. - 
    \printglossaries - 
    \end{document} -
    -

    The use of +

    The use of \glslinkpresetkeys means that the options can override this. For example @@ -16404,10 +17145,10 @@ example

    -
    +
     \gls[hyper=true]{sample1}
    -
    -

    will override the +

    will override the hyper=false setting in \glslinkpresetkeys. If \glslinkpostsetkeyshyper=false setting will override the setting provided in the optional argument. -

    The

    The abbreviation category doesn’t have the -

    -

    will always be false. This means that the abbreviation won’t have +

    will always be false. This means that the abbreviation won’t have hyper=false applied. If the test is changed to

    -
    +
     \ifnum\GlsXtrLinkCounterValue{\glslabel}=1
    - 
    \else - 
     \setkeys{glslink}{hyper=false}% - 
    \fi -
    -

    Then the abbreviation will always have +

    Then the abbreviation will always have hyper=false applied. -

    To reset the counter every section use the optional argument to set the master +

    To reset the counter every section use the optional argument to set the master counter:

    -
    +
     \GlsXtrEnableLinkCounting[section]{general}
    -
    -

    + +

    -

    -

    +

    Top

    8. Auto-Indexing

    -

    It’s possible that you may also want a normal index as well as the glossary, +

    It’s possible that you may also want a normal index as well as the glossary, and you may want entries to automatically be added to the index (as in this document). There are two attributes that govern this: indexnamedualindex. -

    The auto-indexing is designed for

    The auto-indexing is designed for makeindex syntax. If you’ve used the bib2gls and its dual entries as an alternative approach.
    -

    -

    The

    +

    The \glsxtrpostnamehook macro, used at the end of \glossentrynamename key. -

    The internal macro used by the

    The internal macro used by the glossaries package to write the information to the external glossary file is modified to check for the dualindex attribute. -

    In both cases, the indexing is done through -


    In both cases, the indexing is done through +


    \glsxtrdoautoindexname{label}{attribute-label}

    -

    +

    This uses the standard \index command with the sort value taken from the entry’s @@ -16549,35 +17290,35 @@ class="cmti-10">label⟩}. As from v1.16, there are user-level commands available to change the sort and actual value used by the automated index. -

    The actual value is given by -


    The actual value is given by +


    \glsxtrautoindexentry{label}

    -

    +

    where ⟨label⟩ is the entry’s label. The default definition is:

    -
    +
     \newcommand*{\glsxtrautoindexentry}[1]{\string\glsentryname{#1}}
    -
    -

    Note the use of +

    Note the use of \string to prevent \glsentryname from being expanded as it’s written to the index file. -

    The sort value is assigned using: -


    The sort value is assigned using: +


    \glsxtrautoindexassignsort{cs}{label}

    -

    +

    where ⟨label⟩ is the entry label and ⟨cs⟩ is the command which needs to be set to the @@ -16586,21 +17327,21 @@ sort value. The default definition is:

    -
    +
     \newcommand*{\glsxtrautoindexassignsort}[2]{%
    - 
      \glsletentryfield{#1}{#2}{sort}% - 
    } -
    -

    After this macro is called, ⟨ +

    After this macro is called, ⟨cs⟩ is then processed to escape any of makeindex’s special characters. Note that this escaping is only performed on the sort not on the actual value. The escaping of the sort value is performed by -



    \glsxtrautoindexesc

    -

    +

    You can redefine this to do nothing if you want to omit the escaping. You may want to consider providing another field to obtain the appropriate sort value if the one provided in the sort field isn’t suitable (because it may already have had special characters escaped or it may be a numeric value in the case of sort by use or definition). -

    The command used to perform the actual indexing is: -


    The command used to perform the actual indexing is: +


    \glsxtrautoindex{text}

    -

    +

    This just does \index{text} by default. -

    The entry’s

    The entry’s parent field isn’t referenced in this automated indexing.
    -

    -

    For example, to index the value of the

    +

    For example, to index the value of the first key, instead of the namename -

    -

    and if the sort value also needs to be set to the +

    and if the sort value also needs to be set to the long field, if present, otherwise the sort -

    -

    -

    If the value of the attribute given by ⟨ +

    +

    If the value of the attribute given by ⟨attribute-label⟩ is “true”, no encap will be added, otherwise the encap will be the attribute value. For example:

    -
    +
     \glssetcategoryattribute{general}{indexname}{textbf}
    -
    -

    will set the encap to +

    will set the encap to textbf which will display the relevant page number in bold whereas

    -
    +
     \glssetcategoryattribute{general}{dualindex}{true}
    -
    -

    won’t apply any formatting to the page number in the index. -

    The location used in the index will always be the page number not the counter + +

    won’t apply any formatting to the page number in the index. +

    The location used in the index will always be the page number not the counter used in the glossary. (Unless some other loaded package has modified the definition of \index to use some thing else.)
    -

    -

    By default the

    +

    By default the format key won’t be used with the format key to override the attribute value by using the preamble-only command: -



    \GlsXtrEnableIndexFormatOverride

    -

    +

    If you use this command and hyperref has been loaded, then the \glshypernumber to allow formats that use that command. -

    The

    The dualindex attribute will still be used on subsequent use even if the @@ -16721,8 +17462,8 @@ class="cmss-10">dualindexnoindex key.
    -

    -

    The

    +

    The \glsxtrdoautoindexname command will attempt to escape any of \makeindex\encapchar have been defined before glossaries-extra is loaded). -

    If this isn’t the case, you can use the following preamble-only commands to set +

    If this isn’t the case, you can use the following preamble-only commands to set the correct characters. -

    Be very careful of possible shifting category codes!
    -

    -


    Be very careful of possible shifting category codes!
    +

    +


    \GlsXtrSetActualChar{char}

    -

    +

    Set the actual character to ⟨char⟩. -



    \GlsXtrSetLevelChar{char}

    -

    +

    Set the level character to ⟨char⟩. -



    \GlsXtrSetEscChar{char}

    -

    +

    Set the escape (quote) character to ⟨char⟩. -



    \GlsXtrSetEncapChar{char}

    -

    +

    Set the encap character to ⟨char⟩.

    -

    -

    +

    Top

    9. bib2gls: Managing Reference Databases

    -

    There is a new command line application called

    There is a new command line application called bib2gls, which works in much @@ -16811,7 +17552,7 @@ class="cmtt-10">.glstex file which is loaded using \glsxtrresourcefile (or \GlsXtrLoadResources). -

    This means that you can use a reference managing system, such as JabRef, to +

    This means that you can use a reference managing system, such as JabRef, to maintain the database and it reduces the TeX overhead by only defining the entries that are actually required in the document. If you currently have a .tex file that @@ -16826,19 +17567,19 @@ class="cmtt-10">convertgls2bibbib2gls.) -

    There are some new commands and options added to

    There are some new commands and options added to glossaries-extra to help assist the integration of bib2gls into the document build process. -

    This chapter just provides a general overview of

    This chapter just provides a general overview of bib2gls. The full details and some sample documents are provided in the bib2gls manual. -

    An example of the contents of

    An example of the contents of .bib file that stores glossary entries that can be extracted with bib2gls:

    -
    +
     @entry{bird,
    - 
      name={bird}, - 
      description = {feathered animal}, - 
      see={[see also]{duck,goose}} - 
    } - 
    @entry{duck, - 
      name={duck}, - 
      description = {a waterbird with short legs} - 
    } - 
    @entry{goose, - 
      name="goose", - 
      plural="geese", - 
      description={a waterbird with a long neck} - 
    } -
    -

    -

    The follow provides some abbreviations: - - - -

    -
    +  name={bird}, +  description = {feathered animal}, +  see={[see also]{duck,goose}} +} +@entry{duck, +  name={duck}, +  description = {a waterbird with short legs} +} +@entry{goose, +  name="goose", +  plural="geese", +  description={a waterbird with a long neck} +} + +

    +

    The follow provides some abbreviations: + + + +

    +
     @string{ssi={server-side includes}}
    - 
    @string{html={hypertext markup language}} - 
    @abbreviation{shtml, - 
      short="shtml", - 
      long= ssi # " enabled " # html, - 
      description={a combination of \gls{html} and \gls{ssi}} - 
    } - 
    @abbreviation{html, - 
      short ="html", - 
      long  = html, - 
      description={a markup language for creating web pages} - 
    } - 
    @abbreviation{ssi, - 
      short="ssi", - 
      long = ssi, - 
      description={a simple interpreted server-side scripting language} - 
    } -
    -

    -

    Here are some symbols: - - - -

    -
    +@string{html={hypertext markup language}} +@abbreviation{shtml, +  short="shtml", +  long= ssi # " enabled " # html, +  description={a combination of \gls{html} and \gls{ssi}} +} +@abbreviation{html, +  short ="html", +  long  = html, +  description={a markup language for creating web pages} +} +@abbreviation{ssi, +  short="ssi", +  long = ssi, +  description={a simple interpreted server-side scripting language} +} + +

    +

    Here are some symbols: + + + +

    +
     preamble{"\providecommand{\mtx}[1]{\boldsymbol{#1}}"}
    - 
    @symbol{M, - 
      name={$\mtx{M}$}, - 
      text={\mtx{M}}, - 
      description={a matrix} - 
    } - 
    @symbol{v, - 
      name={$\vec{v}$}, - 
      text={\vec{v}}, - 
      description={a vector} - 
    } - 
    @symbol{S, - 
      name={$\mathcal{S}$}, - 
      text={\mathcal{S}}, - 
      description={a set} - 
    } -
    -

    -

    To ensure that +

    +

    To ensure that bib2gls can find out which entries have been used in the @@ -16925,25 +17666,25 @@ class="cmss-10">record -

    -

    If this option’s value is omitted (as above), the normal indexing will be switched off, + +

    If this option’s value is omitted (as above), the normal indexing will be switched off, since bib2gls can also sort the entries and collate the locations. -

    If you still want to use an indexing application (for example, you need a custom +

    If you still want to use an indexing application (for example, you need a custom xindy rule), then just use record=alsoindex=hybrid and continue to use \makeglossaries -and \makeglossaries and +\printglossary (or \printglossaries), but you also need to instruct bib2gls to omit sorting to save time and to prevent the < class="cmss-10">sort key from being set. -

    The

    The .glstex file created by bib2gls is loaded using: -



    \glsxtrresourcefile[options]{filename}

    -

    +

    (Don’t include the file extension in ⟨filename⟩.) There’s a shortcut version (recommended over the above) that sets ⟨filename⟩ to use \jobname: -



    \GlsXtrLoadResources[options]

    -

    +

    On the first use, this command is a shortcut for

    }
    where ⟨n⟩ is the current value of -



    \glsxtrresourcecount

    -

    +

    which is incremented at the end of \GlsXtrLoadResources. Any advisory notes regarding \glsxtrresourcefile also apply to \GlsXtrLoadResources. -

    The

    The \glsxtrresourcefile command writes the line

    9.2

    Since the

    Since the .glstex file won’t exist on the first LaTeX run, the record.glstex file the references should be resolved. This may cause a shift in the locations if the actual text produced once the entry is defined is significantly larger than the placeholder ?? (as this can alter the page breaking). -

    Note that as from v1.12,

    Note that as from v1.12, \glsxtrresourcefile temporarily switches the category code of @ to 11 (letter) while it reads the file to allow for any internal commands stored in the location field.

    -

    Top

    9.1 Selection

    -

    The default behaviour is for

    The default behaviour is for bib2gls to select all entries that have a record in the @@ -17077,20 +17818,20 @@ methods), so you can do, for example,

    -
    +
     \GlsXtrSetDefaultNumberFormat{glsignore}
    -
    -

    at the start of the front matter and + +

    at the start of the front matter and

    -
    +
     \GlsXtrSetDefaultNumberFormat{glsnumberformat}
    -
    -

    at the start of the main matter to prevent any records in the front matter from + +

    at the start of the main matter to prevent any records in the front matter from occurring in the location lists. -

    Note that commands like

    Note that commands like \glsaddall and \glsaddallunused don’t work with bib2gls.
    -

    -

    If you want to add all entries to the glossary, you need to tell

    +

    If you want to add all entries to the glossary, you need to tell bib2gls this in the options list. For example: @@ -17111,22 +17852,22 @@ options list. For example:

    -
    +
     \GlsXtrLoadResources[src={terms},selection={all}]
    -
    -

    This will add all entries, regardless of whether or not they have any records in the + +

    This will add all entries, regardless of whether or not they have any records in the .aux file. Those that don’t have any records will have an empty location list. See the bib2gls user manual for more details of this option. -

    +

    -

    Top

    9.2 Sorting and Displaying the Glossary

    -

    There are many sorting options provided by

    There are many sorting options provided by bib2gls. The default is to sort according to the system locale. If the document has a language setting, you can use @@ -17144,13 +17885,13 @@ example:

    -
    +
     \GlsXtrLoadResources[
    - 
      src=terms, % data in terms.bib - 
      sort=de-DE-1996 % sort according to this locale - 
    ] -
    -

    The locale-sensitive sort methods usually ignore most punctuation so for lists of +  src=terms, % data in terms.bib +  sort=de-DE-1996 % sort according to this locale +] + +

    The locale-sensitive sort methods usually ignore most punctuation so for lists of symbols you may find it more appropriate to use one of the letter-base sort methods that sort according to the Unicode value of each character. Alternatively you can provide a custom rule. See the bib2gls manual for full details of all the available sort methods. -

    Since the

    Since the .glstex file only defines those references required within the document (selected according to the selection option) and the definitions have been written in @@ -17170,9 +17911,10 @@ class="cmtt-10">\printunsrtglossary (or \printunsrtglossaries), described in §10.2 §??sec:printunsrt Display All Entries Without Sorting or Indexing. -

    Suppose the

    Suppose the .bib examples shown above have been stored in the files terms.bib, -

    +
     \documentclass{article}
    - 
    \usepackage[record]{glossaries-extra} - 
    \setabbreviationstyle{long-short-desc} - 
    \GlsXtrLoadResources[src={terms,abbrvs,symbols}] - 
    \begin{document} - 
    \gls{bird} - 
    \gls{shtml} - 
    \gls{M} - 
    \printunsrtglossaries - 
    \end{document} -
    -

    The document build process (assuming the document is called +

    The document build process (assuming the document is called mydoc) is:

    -
    +
     pdflatex mydoc
    - 
    bib2gls mydoc - 
    pdflatex mydoc -
    -

    This creates a single glossary containing the entries: +

    This creates a single glossary containing the entries: bird, duck, goose, shtml. These cross-referenced entries won’t have a location list when the glossary is first displayed, but depending on how they are referenced, they may pick up a location list on the next document build. -

    The entries can be separated into different glossaries with different sort +

    The entries can be separated into different glossaries with different sort methods:

    -
    +
     \documentclass{article}
    - 
    \usepackage[record,abbreviations,symbols]{glossaries-extra} - 
    \setabbreviationstyle{long-short-desc} - 
    \GlsXtrLoadResources[src={terms},sort={en-GB},type=main] - 
    \GlsXtrLoadResources - 
     [src={abbrvs},sort={letter-nocase},type=abbreviations] - 
    \GlsXtrLoadResources - 
     [src={symbols},sort={use},type={symbols}] - 
    \begin{document} - 
    \gls{bird} - 
    \gls{shtml} - 
    \gls{M} - 
    \printunsrtglossaries - 
    \end{document} -
    -

    -

    Or you can have multiple instance of +

    +

    Or you can have multiple instance of \GlsXtrLoadResources with the same type, which will produce a glossary with ordered sub-blocks. For example: @@ -17274,25 +18016,25 @@ class="cmtt-10">type, which will produce a glossary with ordered sub-bloc

    -
    +
     \documentclass{article}
    - 
    \usepackage[record,style=indexgroup]{glossaries-extra} - 
    \setabbreviationstyle{long-short-desc} - 
    \GlsXtrLoadResources - 
     [src={abbrvs},sort={letter-nocase},type=main, - 
      group={Abbreviations}] - 
    \GlsXtrLoadResources - 
     [src={symbols},sort={use},type=main, - 
      group={Symbols}] - 
    \GlsXtrLoadResources[src={terms},sort={en-GB},type=main] - 
    \begin{document} - 
    \gls{bird} - 
    \gls{shtml} - 
    \gls{M} - 
    \printunsrtglossaries - 
    \end{document} -
    -

    This will result in a glossary where the first group has the title “Abbreviations”, the +\usepackage[record,style=indexgroup]{glossaries-extra} +\setabbreviationstyle{long-short-desc} +\GlsXtrLoadResources + [src={abbrvs},sort={letter-nocase},type=main, +  group={Abbreviations}] +\GlsXtrLoadResources + [src={symbols},sort={use},type=main, +  group={Symbols}] +\GlsXtrLoadResources[src={terms},sort={en-GB},type=main] +\begin{document} +\gls{bird} +\gls{shtml} +\gls{M} +\printunsrtglossaries +\end{document} + +

    This will result in a glossary where the first group has the title “Abbreviations”, the second group has the title “Symbols” and then follow the usual letter groups. Note that for this example to work, you must run myDoc.tex:

    -
    +
     pdflatex myDoc
    - 
    bib2gls -g myDoc - 
    pdflatex myDoc -
    -

    The value of the +

    The value of the group field must always be a label. You can set the corresponding title with \glsxtrsetgrouptitle (see §2.10.1 Glossary Style Modifications). If no -title is set then the label is used as the group title. -

    You can provide your own custom sort rule. For example, if you are using +class="tcrm-1000">§??sec:glosstylemods Glossary Style +Modifications). If no title is set then the label is used as the group title. +

    You can provide your own custom sort rule. For example, if you are using XƎLATEX or LuaLATEX:

    }]
    -

    +

    -

    Top

    9.3 The glossaries-extra-bib2gls package

    -

    The package option

    The package option record=onlybib2gls. The package isn’t loaded by record=alsoindex as that option -is intended for sorting with =hybrid as that option is +intended for sorting with makeindex or xindy and it is expected that the sorting -will be switched off (with the resource option xindy and it is expected that the sorting will +be switched off (with the resource option sort=none). -

    If

    If glossaries-extra-bib2gls is loaded via the record package option then the -check for associated language resource files (see package option then the check for +associated language resource files (see §14 §??sec:lang Multi-Lingual Support) will also search for the existence of glossariesxtr-script⟩ is the four letter script identifier, such as Latn). -

    This package provides some shortcut commands that use

    This package provides some shortcut commands that use \printunsrtglossary if the relevant package option has defined the associated glossary: \printunsrtnumbers\printunsrtindex. -

    The

    The savenumberlist package option doesn’t have any effect with \glsdisplaynumberlistlocation field -



    \glsxtrprovidecommand{csdefault]{definition}

    -

    +

    This command is intended for use in @preamble. It’s simply defined to -

    +
     @preamble{"\glsxtrprovidecommand{\int}{integral}"}
    -
    -

    This will force +

    This will force bib2gls to treat .glstex file (as it is by default) then it won’t override the current definition (provided by the kernel or redefined by a package). -

    The helper commands in the resource files are defined using

    The helper commands in the resource files are defined using \providecommand. For many of them, if you want to provide an alternative definition then you need to define the command before the resource file is loaded. There are a few that may be @@ -17754,7 +18498,7 @@ class="cmtt-10">\renewcommand then you will get an error on the first LaTeX run when the .glstex file doesn’t exist. In this case, you may prefer to use: -



    \glsrenewcommand{csdefault]{definition}

    -

    +

    This behaves like \renewcommand but only generates a warning rather than an error if the command isn’t already defined so it won’t interrupt the document build. -



    \GlsXtrIndexCounterLink{text}{label}

    -

    +

    If the \hyperref command has been defined (that is, bib2gls manual for further details (at least version 1.4). -

    If you use the

    If you use the set-widest resource option, bib2gls v1.8+ will now use: -



    \glsxtrSetWidest{typelevel}{text}

    -

    +

    (if it has been defined) to set the widest name for the given glossary type and level. This allows for both the alttreealttreeglossary-longextra, which need to know the widest name. -

    If

    If bib2gls can’t determine the widest name (typically because the name field consists of commands that aren’t recognised by the interpreter) then bib2gls v1.8+ will now use: -



    \glsxtrSetWidestFallback{max depth}{list}

    -

    +

    (if defined). Currently the maximum hierarchical depth ⟨max depth⟩ may only be 0 or 2. This command requires commands provided by the alttree\glssetwidest. -

    +

    -

    Top

    9.3.1 Supplemental Locations

    -



    \glsxtrdisplaysupploc{prefix}{location}

    -

    +

    This is used by externallocation attribute. This command sets up the location counter and prefix (used in the formation of hyperlinks) and then uses -



    \glsxtrmultisupplocation{locationsrc}{format}

    -

    +

    to format the actual location (with an external hyperlink, if supported). -

    +

    -

    Top

    9.3.2 Nameref Record

    -

    Normally locations are recorded in the

    Normally locations are recorded in the .aux file in the form: -



    \glsxtr@record{label}{}{location}

    -

    +

    The record=namerefbib2gls v1.8, instead uses: -



    \glsxtr@record@nameref{label}{href}{hcounter}

    -

    +

    where ⟨title⟩ is obtained from \@currentlabelname and ⟨title⟩ and class="cmti-10">href ⟩ will be left empty and bib2gls will treat it as a regular record. -

    Be careful with this option as ⟨

    Be careful with this option as ⟨href ⟩ will globally change on every instance of \refstepcounter but ⟨title⟩ won’t necessarily change. It can therefore cause unexpected behaviour.
    -

    -

    The final argument ⟨

    +

    The final argument ⟨hcounter⟩ is obtained from \theHcounter⟩ which provides the @@ -18003,7 +18747,7 @@ class="cmti-10">counter⟩ (most notably the equation counter with chapters) so this can fail. -

    Since

    Since bib2gls is customized specifically for use with \refstepcounter. However, you may choose to switch to using the ⟨href ⟩ target, which will take you to the nearest target before the indexing took place. -

    With

    With bib2gls v1.8+, normal locations are displayed using: -



    \glsnoidxdisplayloc{prefix}{format}{location}

    -

    +

    This is provided by the base glossaries package and is simply defined to do: -



    \setentrycounter[prefix]{}{location}

    -

    +

    Earlier versions of bib2gls only used this in the \setentrycounter command sets up the prefix needed for \glshypernumber to reform the target name from the given location. -

    The locations identified by

    The locations identified by \glsxtr@record@nameref are written by bib2gls to the location list using: -



    \glsxtrdisplaylocnameref{prefixhcounter}{file}

    -

    +

    With normal internal locations, ⟨file⟩ will always be empty. With supplemental locations, ⟨file⟩ will be the external file reference. -

    The default definition is: +

    The default definition is:

    -
    +
     \newcommand*{\glsxtrdisplaylocnameref}[8]{%
    - 
      \ifstrequal{#2}{equation}% - 
      {\glsxtrnamereflink{#3}{(#4)}{#2.#7}{#8}}% - 
      {% - 
         \ifstrempty{#5}% - 
         {% - 
           \glsxtrnamereflink{#3}{#4}{#2.#7}{#8}% - 
         }% - 
         {% - 
           \ifstrequal{#2}{page}% - 
           {\glsxtrnamereflink{#3}{#4}{#2.#7}{#8}}% - 
           {\glsxtrnamereflink{#3}{#5}{#2.#7}{#8}}% - 
         }% - 
      }% - 
    } -
    -

    which uses: -


    +

    which uses: +


    \glsxtrnamereflink{formattarget}{file}

    -

    +

    This ignores the ⟨prefix⟩, ⟨counter⟩ and } arguments and instead creates a hyperlink with the target name obtained from ⟨target⟩ (and ⟨file⟩, if not empty). -

    Since pages and equations typically don’t have titles, the default definition of +

    Since pages and equations typically don’t have titles, the default definition of \glsxtrdisplaylocnameref checks the counter was used as the location. If it’s pageequation, then the text is the location in parentheses. Otherwise the text is obtained from ⟨title⟩. -

    If ⟨

    If ⟨file⟩ is empty an internal link is created with: -



    \glsxtrfmtinternalnameref{targetformat}{title}

    -

    +

    otherwise an external link is created with: -



    \glsxtrfmtexternalnameref{targettitle}{file}

    -

    +

    The ⟨file⟩ argument is set by bib2gls for supplemental locations. -

    Here’s alternative definition that uses the ⟨

    Here’s alternative definition that uses the ⟨prefix⟩ and ⟨counter⟩ to reform the target name (as -

    +
     \renewcommand*{\glsxtrdisplaylocnameref}[7]{%
    - 
     \glsxtrnamereflink{#3}{#5}{#6}{#7}% - 
    } -
    -

    which uses: -


    +

    which uses: +


    \glsxtrnameloclink{prefix} class="cmtt-10">{⟨file}

    -

    +

    This uses the same commands as \glsxtrnamereflink to produce the hyperlinks. -

    In both cases, the link is encapsulated with the text-block command whose +

    In both cases, the link is encapsulated with the text-block command whose name is given by ⟨format⟩, but \glshypernumber is first locally redefined to @@ -18240,7 +18984,7 @@ class="cmti-10">format⟩ is hyperbf then it will simply behave like textbf. -

    For compactness,

    For compactness, bib2gls merges normal records if the ⟨location class="cmti-10">location⟩, as regular records). In all cases, the ⟨counter⟩ must also match. -

    +

    -

    Top

    9.3.3 Helper Commands for Resource Options

    -



    \glshex

    -

    +

    This is just defined as \string\u, which is required when you need to indicate a Unicode character in the form \uhex⟩ in some of the resource options (as illustrated above). -



    \glscapturedgroup

    -

    +

    This is just defined as \string\$ and is used for the captured group reference in a replacement part of a regular expression substitution (requires at least -

    -

    This only removes a full stop that follows any of the characters a,…,z or + +

    This only removes a full stop that follows any of the characters a,…,z or A,…,Z. -

    If you use the

    If you use the save-child-count resource option, you can test if the childcount field is non-zero using: -



    \GlsXtrIfHasNonZeroChildCount{labeltrue}{false}

    -

    +

    This internally uses \GlsXtrIfFieldNonZero and will do ⟨false⟩ if the field isn’t set. @@ -18323,12 +19067,12 @@ class="cmti-10">false⟩ you can use \glscurrentfieldvalue to access the value. (It will be 0 in ⟨false⟩ if the field isn’t set.) -

    A convenient shortcut for use in the

    A convenient shortcut for use in the entry-type-aliases setting: -



    \GlsXtrBibTeXEntryAliases

    -

    +

    This provides aliases for BibTeX’s standard entry types to @bibtexentry entry type (requires at least bib2gls version 1.4). -

    You may also want to provide storage keys for BibTeX’s standard fields rather +

    You may also want to provide storage keys for BibTeX’s standard fields rather than having to alias them all. This can be done with: -



    \GlsXtrProvideBibTeXFields

    -

    +

    Note that BibTeX’s type field clashes with the glossariesbibtextype field can be accessed with \glsxtrbibtype. Each of these commands takes the entry label as the sole argument. -

    The

    The glossaries-extra-bib2gls package also provides definitions of the missing mathematical Greek commands: upgreek has been loaded, the missing upright Greek commands are also provided. -

    The remaining commands provide common rule blocks for use in the +

    The remaining commands provide common rule blocks for use in the sort-rule resource option. If you want a rule for a specific locale, you can provide similar commands in a file called -

    +
     \ProvidesGlossariesExtraLang{welsh}[2018/02/23 v1.0]
    - 
    \@ifpackageloaded{glossaries-extra-bib2gls} - 
    { - 
      \newcommand{\glsxtrWelshRules}{% - 
       \glsxtrLatinA - 
       \string<b,B - 
       \string<c,C - 
       \string<ch,CH - 
       \string<d,D - 
       \string<dd,DD - 
       \string<\glsxtrLatinE - 
       \string<f,F - 
       \string<ff,FF - 
       \string<g,G - 
       \string<ng,NG - 
       \string<\glsxtrLatinH - 
       \string<\glsxtrLatinI - 
       \string<j,J - 
       \string<\glsxtrLatinL - 
       \string<ll,LL - 
       \string<\glsxtrLatinM - 
       \string<\glsxtrLatinN - 
       \string<\glsxtrLatinO - 
       \string<\glsxtrLatinP - 
       \string<ph,PH - 
       \string<r,R - 
       \string<rh,RH - 
       \string<\glsxtrLatinS - 
       \string<\glsxtrLatinT - 
       \string<th,TH - 
       \string<u,U - 
       \string<w,W - 
       \string<y,Y - 
      } - 
    } - 
    {}% glossaries-extra-bib2gls.sty not loaded -
    -

    (The use of +

    (The use of \string is in case the < character has been made active.) You can provide more than one rule-block per local, to allow for loanwords or foreign words. @@ -18485,7 +19229,7 @@ For example, you could provide \glsxtrWelshIRules, \glsxtrWelshIIRules etc. -

    If the rules are for a particular script (independent of language or region) then +

    If the rules are for a particular script (independent of language or region) then they can be provided in a file given by glossariesxtr-scriptglossariesxtr-Cyrl.ldf could contain:

    -
    +
     \ProvidesGlossariesExtraLang{Cyrl}[2018/02/23 v1.0]
    - 
    \newcommand*{\glsxtrGeneralCyrillicIRules}{% - 
      % Cyrillic rules - 
    } - 
    \newcommand*{\glsxtrGeneralCyrillicIIRules}{% - 
      % an alternative set of Cyrillic rules - 
    } -
    -

    (Remember that the required document language scripts need to be tracked through +\newcommand*{\glsxtrGeneralCyrillicIRules}{% +  % Cyrillic rules +} +\newcommand*{\glsxtrGeneralCyrillicIIRules}{% +  % an alternative set of Cyrillic rules +} + +

    (Remember that the required document language scripts need to be tracked through the tracklang package, in order for these files to be automatically loaded. This @@ -18518,7 +19262,7 @@ class="cmss-10">glossariestracklang documentation for further details.) -

    Alternatively, if the rules are specific to a subject rather than a region or +

    Alternatively, if the rules are specific to a subject rather than a region or language, then you can provide a supplementary package. For example, if you have a package called, say, mapsymbols that provides map symbols, then the file @@ -18528,23 +19272,23 @@ class="cmtt-10">mapsymbols.sty might contain:

    -
    +
     \NeedsTeXFormat{LaTeX2e}
    - 
    \ProvidesPackage{mapsymbols} - 
     some package or font loading stuff here to provide - 
     the appropriate symbols - 
    \newcommand{\Stadium}{...} - 
    \newcommand{\Battlefield}{...} - 
    \newcommand{\Harbour}{...} - 
     etc - 
     Provide a rule block: - 
    \newcommand{\MapSymbolOrder}{% - 
     \glshex 2694 % crossed-swords 0x2694 - 
     \string< \glshex 2693 % anchor 0x2693 - 
     \string< \glshex 26BD % football 0x26BD - 
    } -
    -

    and the supplementary file +

    and the supplementary file mapsymbols.bib can provide the appropriate definitions for bib2gls:

    -
    +
     @preamble{"\glsxtrprovidecommand{\Harbour}{\char"2693}
    - 
    \glsxtrprovidecommand{\Battlefield}{\char"2694} - 
    \glsxtrprovidecommand{\Stadium}{\char"26BD}"} -
    -

    Now both the preamble and rule block can be used in the resource set: +\glsxtrprovidecommand{\Battlefield}{\char"2694} +\glsxtrprovidecommand{\Stadium}{\char"26BD}"} + +

    Now both the preamble and rule block can be used in the resource set:

    -
    +
     \usepackage{mapsymbols}% my custom package
    - 
    \usepackage[record]{glossaries-extra} - 
    \GlsXtrLoadResources[ - 
      src={mapsymbols,% <--- my custom mapsymbols.bib - 
       entries% data in entries.bib - 
      }, - 
      sort={custom}, - 
      sort-rule={\glsxtrcontrolrules % control codes - 
     ;\glsxtrspacerules % space characters - 
     ;\glsxtrnonprintablerules % non-printable characters - 
     ;\glsxtrcombiningdiacriticrules % combining diacritics - 
     ,\glsxtrhyphenrules % hyphens - 
     <\glsxtrgeneralpuncrules % general punctuation - 
     <\glsxtrdigitrules % 0, ..., 9 - 
     <\glsxtrfractionrules % fraction symbols - 
     <\MapSymbolOrder % <--- custom map symbols - 
     <\glsxtrMathItalicGreekIrules % math-greek symbols - 
     <\glsxtrGeneralLatinIrules % Latin letters - 
     } - 
    ] -
    -

    -

    The following commands are provided by +

    +

    The following commands are provided by glossaries-extra-bib2gls. They should be separated by the rule separator characters & (ampersand) or < (less than). See Java’s RuleBasedCollator documentation for details of the rule syntax. -

    For example, the following will place the mathematical Greek symbols (

    For example, the following will place the mathematical Greek symbols (\alpha, \Beta -

    -

    -


    +

    +


    \glsxtrcontrolrules

    -

    +

    These are control characters that are usually placed at the start of a rule in the ignored section. They typically won’t occur in any sort values, but if they do they should normally be ignored. -



    \glsxtrspacerules

    -

    +

    These are space characters. They typically come after the control characters with the two blocks separated by a ; (semi-colon). -



    \glsxtrnonprintablerules

    -

    +

    These are non-printable characters (BOM, tabs, line feed and carriage return). They typically come after the spaces separated by a ; (semi-colon). These characters @@ -18655,10 +19399,10 @@ href="#glo:bib2gls">bib2gls when it determines whether or not to use the interpreter, so a TAB or newline character may end up in the sort value if it wasn’t interpreted. -



    \glsxtrcombiningdiacriticrules

    -

    +

    These are combining diacritic marks which typically follow the space and non-printable blocks (separated by a semi-colon). This command is defined in terms of sub-block commands: @@ -18666,35 +19410,35 @@ of sub-block commands:

    -
    +
     \newcommand*{\glsxtrcombiningdiacriticrules}{%
    - 
     \glsxtrcombiningdiacriticIrules\string; - 
     \glsxtrcombiningdiacriticIIrules\string; - 
     \glsxtrcombiningdiacriticIIIrules\string; - 
     \glsxtrcombiningdiacriticIVrules - 
    } -
    -

    If you prefer, you can use the sub-blocks directly in your required ordered. -


    +

    If you prefer, you can use the sub-blocks directly in your required ordered. +


    \glsxtrcombiningdiacriticIrules

    -

    +

    This contains the combining diacritics: acute, grave, breve, circumflex, caron, ring, vertical line above, diaeresis (umlaut), double acute, tilde, dot above, combining macron. -



    \glsxtrcombiningdiacriticIIrules

    -

    +

    This contains the combining diacritics: short solidus overlay, cedilla, ogonek, dot below, low line, overline, hook above, double vertical line above, double grave accent, candrabindu, inverted breve, turned comma above, comma above, reversed comma above, comma above right, grave accent below, acute accent below. -



    \glsxtrcombiningdiacriticIIIrules

    -

    +

    This contains the combining diacritics: left tack below, right tack below, left angle above, horn, left half ring below, up tack below, down tack below, plus sign below, minus sign below, palatalized hook below, retroflex hook below, diaresis below, ring @@ -18706,29 +19450,29 @@ seagull below, x above, vertical tilde, double overline, Greek perispomeni, Gree dialytika tonos, Greek ypogegrammeni, double tilde, double inverted breve, Cyrillic titlo, Cyrillic palatalization, Cyrillic dasia pneumata, Cyrillic psili pneumata. -



    \glsxtrcombiningdiacriticIVrules

    -

    +

    This contains the combining diacritics: left harpoon above, right harpoon above, long vertical line overlay, short vertical line overlay, anticlockwise arrow above, clockwise arrow above, left arrow above, right arrow above, ring overlay, clockwise ring overlay, anticlockwise ring overlay, three dots above, four dots above, enclosing circle, enclosing square, enclosing diamond, enclosing circle backslash, left right arrow above. -



    \glsxtrhyphenrules

    -

    +

    This contains hyphens (including the minus sign 0x2212). This rule block typically comes after the diacritic rules separated by a comma. -



    \glsxtrgeneralpuncrules

    -

    +

    This contains punctuation characters. This rule block typically comes after the hyphen rules separated by a less than (<). As with the combining diacritics, this @@ -18738,18 +19482,18 @@ different order is required:

    -
    +
     \newcommand*{\glsxtrgeneralpuncrules}{%
    - 
      \glsxtrgeneralpuncIrules - 
      \string<\glsxtrcurrencyrules - 
      \string<\glsxtrgeneralpuncIIrules - 
    } -
    -

    -


    +

    +


    \glsxtrgeneralpuncIrules

    -

    +

    This is the first punctuation sub-block containing: underscore, macron, comma, semi-colon, colon, exclamation mark, inverted exclamation mark, question mark, inverted question mark, solidus, full stop, acute accent, grave accent, @@ -18758,26 +19502,26 @@ straight double quote, left guillemet, right guillemet, left parenthesis, right parenthesis, left square bracket, right square bracket, left curly bracket, right curly bracket, section sign, pilcrow sign, copyright sign, registered sign, at sign. -



    \glsxtrcurrencyrules

    -

    +

    This sub-block contains some currency symbols: currency sign, Thai currency symbol baht, cent sign, colon sign, cruzeiro sign, dollar sign, dong sign, euro sign, French franc sign, lira sign, mill sign, naira sign, peseta sign, pound sign, rupee sign, new sheqel sign, won sign, yen sign. -



    \glsxtrgeneralpuncIIrules

    -

    +

    This sub-block contains some other punctuation symbols: asterisk, backslash, ampersand, hash sign, percent sign, plus sign, plus-minus sign, division sign, multiplication sign, less-than sign, equals sign, greater-than sign, not sign, vertical bar (pipe), broken bar, degree sign, micron sign. -



    \glsxtrdigitrules

    -

    +

    This rule block contains the Basic Latin digits (0, …, 9) and the subscript and superscript digits (0 0 etc) made equivalent to the corresponding Basic Lat The digit block typically comes after the punctuation rules separated by a less than (<). -



    \glsxtrBasicDigitrules

    -

    +

    This rule block contains just the Basic Latin digits (0, …, 9). -



    \glsxtrSubScriptDigitrules

    -

    +

    This rule block contains just the subscript digits (0 … 9). -



    \glsxtrSuperScriptDigitrules

    -

    +

    This rule block contains just the superscript digits (0 … 9). -



    \glsxtrfractionrules

    -

    +

    This rule block contains vulgar fraction characters. The digit block typically comes after the digit rules separated by a less than (<). -

    There are a number of Latin rule blocks. Some of these included extended +

    There are a number of Latin rule blocks. Some of these included extended characters or ligatures (such as ß or œ) but they don’t include accented characters. If you require a Latin rule block that includes accented characters, digraphs, trigraphs or other extended characters, then it’s best to provide similar @@ -18823,10 +19567,10 @@ class="cmtt-10">glossariesxtr-⟨tag.ldf file for the particular language or region. -



    \glsxtrGeneralLatinIrules

    -

    +

    This is just the basic (non-extended) Latin alphabet with the superscript and subscript Latin letters (a a etc) treated as the equivalent basic Latin letter. don’t want the subscripts and superscripts included you can redefine \glsxtrLatinA etc to omit them.) -



    \glsxtrGeneralLatinIIrules

    -

    +

    This is like \glsxtrGeneralLatinIrules but it includes eth (Ð) between ‘D’ and ‘E’ and eszett (ß) treated as ‘ss’. -



    \glsxtrGeneralLatinIIIrules

    -

    +

    This is like \glsxtrGeneralLatinIrules but it includes eth (Ð) between ‘D’ and ‘E’ and eszett (ß) treated as ‘sz’. -



    \glsxtrGeneralLatinIVrules

    -

    +

    This is like \glsxtrGeneralLatinIrules but it includes eth (Ð) between ‘D’ and ‘E’, ae-ligature (æ) is treated as ‘ae’, oe-ligature (œ) is treated as ‘oe’, eszett (ß) treated as ‘ss’ and thorn (þ) is treated as ‘th’. -



    \glsxtrGeneralLatinVrules

    -

    +

    This is like \glsxtrGeneralLatinIrules but it includes eth (Ð) between ‘D’ and ‘E’, eszett (ß) treated as ‘ss’ and thorn (þ) treated as ‘th’. -



    \glsxtrGeneralLatinVIrules

    -

    +

    This is like \glsxtrGeneralLatinIrules but it includes eth (Ð) between ‘D’ and ‘E’, eszett (ß) treated as ‘sz’ and thorn (þ) treated as ‘th’. -



    \glsxtrGeneralLatinVIIrules

    -

    +

    This is like \glsxtrGeneralLatinIrules but it includes ae-ligature (æ) between ‘A’ and ‘B’, eth (Ð) between ‘D’ and ‘E’, insular G (Ᵹ) instead of ‘G’, oe-ligature between ‘O’ and ‘P’, long s (ſ) equivalent to ‘s’, thorn (þ) between ‘T’ and ‘U’ and wynn (Ƿ) instead of W. -



    \glsxtrGeneralLatinVIIIrules

    -

    +

    This is like \glsxtrGeneralLatinIrules but ae-ligature (æ) is treated as ‘ae’, oe-ligature (œ) is treated as ‘oe’, eszett (ß) treated as ‘ss’, thorn (þ) is treated as ‘th’, Ø is treated as ‘O’ and ‘Ł’ is treated as ‘L’. -



    \glsxtrLatinA

    -

    +

    A mini-rule that just covers ‘A’ but includes the sub- and superscript A. -



    \glsxtrLatinE

    -

    +

    A mini-rule that just covers ‘E’ but includes the subscript E. -



    \glsxtrLatinH

    -

    +

    A mini-rule that just covers ‘H’ but includes the subscript H. -



    \glsxtrLatinK

    -

    +

    A mini-rule that just covers ‘K’ but includes the subscript K. -



    \glsxtrLatinI

    -

    +

    A mini-rule that just covers ‘I’ but includes the superscript I. -



    \glsxtrLatinL

    -

    +

    A mini-rule that just covers ‘L’ but includes the subscript L. -



    \glsxtrLatinM

    -

    +

    A mini-rule that just covers ‘M’ but includes the subscript M. -



    \glsxtrLatinN

    -

    +

    A mini-rule that just covers ‘N’ but includes the sub- and superscript N. -



    \glsxtrLatinO

    -

    +

    A mini-rule that just covers ‘O’ but includes the sub- and superscript O. -



    \glsxtrLatinP

    -

    +

    A mini-rule that just covers ‘P’ but includes the subscript P. -



    \glsxtrLatinS

    -

    +

    A mini-rule that just covers ‘S’ but includes the subscript S. -



    \glsxtrLatinT

    -

    +

    A mini-rule that just covers ‘T’ but includes the subscript T. -



    \glsxtrLatinX

    -

    +

    A mini-rule that just covers ‘X’ but includes the subscript X. -



    \glsxtrLatinEszettSs

    -

    +

    A mini-rule that just covers eszett (ß) and makes long s (ſ) followed by short ‘s’ equivalent to ‘ß’. (This is used in the above blocks that treat ‘ß’ as ‘ss’.) -



    \glsxtrLatinEszettSz

    -

    +

    A mini-rule that just covers eszett (ß) and makes long s (ſ) followed by ‘z’ equivalent to ‘ß’. (This is used in the above blocks that treat ‘ß’ as ‘sz’.) -



    \glsxtrLatinEth

    -

    +

    A mini-rule for eth (Ð) so you don’t need to remember the Unicode values. -



    \glsxtrLatinThorn

    -

    +

    A mini-rule for thorn (þ) so you don’t need to remember the Unicode values. -



    \glsxtrLatinAELigature

    -

    +

    A mini-rule for ae-ligature (æ) so you don’t need to remember the Unicode values. -



    \glsxtrLatinOELigature

    -

    +

    A mini-rule for oe-ligature (œ) so you don’t need to remember the Unicode values. -



    \glsxtrLatinOslash

    -

    +

    A mini-rule for ‘Ø’ so you don’t need to remember the Unicode values. -



    \glsxtrLatinLslash

    -

    +

    A mini-rule for ‘Ł’ so you don’t need to remember the Unicode values. -



    \glsxtrLatinWynn

    -

    +

    A mini-rule for wynn (Ƿ) so you don’t need to remember the Unicode values. -



    \glsxtrLatinInsularG

    -

    +

    A mini-rule for insular G (Ᵹ) so you don’t need to remember the Unicode values. -



    \glsxtrLatinSchwa

    -

    +

    A mini-rule that just covers schwa (Ə) but includes the subscript schwa. (Not used in any of the provided Latin rule blocks described above.) -



    \glsxtrLatinAA

    -

    +

    A mini-rule for ‘Å’ so you don’t need to remember the Unicode values. (Not used in any of the provided Latin rule blocks described above.) -



    \glsxtrMathGreekIrules

    -

    +

    A rule block for mathematical Greek (\alpha,



    \glsxtrMathGreekIIrules

    -

    +

    As \glsxtrMathGreekIrules but doesn’t include digamma. -



    \glsxtrMathUpGreekIrules

    -

    +

    A rule block for upright Greek (\upalpha, etc, from the \digamma\Digamma) between epsilon and zeta. -



    \glsxtrMathUpGreekIIrules

    -

    +

    A rule block for upright Greek (\upalpha, etc, from the upgreek package) that doesn’t include digamma. -



    \glsxtrMathItalicGreekIrules

    -

    +

    A rule block for mathematical Greek (\alpha, bib2gls’s interpreter treats them as italic to help keep them close to the lower case versions. -



    \glsxtrMathItalicGreekIIrules

    -

    +

    A rule block for mathematical Greek (\alpha, \Alpha, etc) characters that doesn’t include digamma. -



    \glsxtrMathItalicUpperGreekIrules

    -

    +

    A rule block for upper case mathematical Greek (\Alpha, \Beta\Digamma) between epsilon and zeta. -



    \glsxtrMathItalicUpperGreekIIrules

    -

    +

    A rule block for upper case mathematical Greek (\Alpha, \Beta, etc) characters that doesn’t include digamma. -



    \glsxtrMathItalicLowerGreekIrules

    -

    +

    A rule block for lower case mathematical Greek (\alpha, \beta\digamma) between epsilon and zeta. -



    \glsxtrMathItalicLowerGreekIIrules

    -

    +

    A rule block for lower case mathematical Greek (\alpha, \beta, etc) characters that doesn’t include digamma. -

    Additionally, there are commands in the form

    Additionally, there are commands in the form \glsxtrUpAlpha, \glsxtrUpBeta etc and \upalpha etc and \Alpha, \alpha etc) as well as the following: -



    \glsxtrMathItalicPartial

    -

    +

    The partial derivative symbol (). -



    \glsxtrMathItalicNabla

    -

    +

    The nabla symbol (). -

    +

    -

    Top

    9.4 Supplementary Commands

    -

    These commands are provided by

    These commands are provided by glossaries-extra for use with bib2gls. -

    The information provided with

    The information provided with \GlsXtrLoadResources is written to the .aux file using

    @@ -19210,10 +19954,10 @@ class="cmti-10">information⟩ is the information to pass to bib2gls. The command in the second argument -



    \glsxtrresourceinit

    -

    +

    may be used to temporarily redefine commands before the information is written to the file. This does nothing by default, but may be redefined to allow the use of short commands for convenience. For example, with: @@ -19221,73 +19965,73 @@ commands for convenience. For example, with:

    -
    +
     \renewcommand{\glsxtrresourceinit}{\let\u\glshex}
    -
    -

    you can just use, for example, +

    you can just use, for example, \u E6 instead of \string\uE6 in the custom rule. This redefinition of \u is scoped so its original definition is restored after the write operation. -

    If you have multiple resource commands and you want a default set of options you +

    If you have multiple resource commands and you want a default set of options you can supply them in the definition of: -



    \GlsXtrDefaultResourceOptions

    -

    +

    For example:

    -
    +
     \renewcommand{\GlsXtrDefaultResourceOptions}{selection=all}
    -
    -

    This should be done before the resource commands. -

    It’s possible to specify label prefixes. For example, modifying the earlier + +

    This should be done before the resource commands. +

    It’s possible to specify label prefixes. For example, modifying the earlier example:

    -
    +
     \documentclass{article}
    - 
    \usepackage[record,style=indexgroup]{glossaries-extra} - 
    \setabbreviationstyle{long-short-desc} - 
    \GlsXtrLoadResources - 
     [src={abbrvs},sort={letter-nocase},type=main, - 
      label-prefix={abr.}, - 
      group={Abbreviations}] - 
    \GlsXtrLoadResources - 
     [src={symbols},sort={use},type=main, - 
      label-prefix={sym.}, - 
      group={Symbols}] - 
    \GlsXtrLoadResources[src={terms},sort={en-GB},type=main - 
      label-prefix={trm.}] - 
    \begin{document} - 
    \gls{trm.bird} - 
    \gls{abr.shtml} - 
    \gls{sym.M} - 
    \printunsrtglossaries - 
    \end{document} -
    -

    If you do something like this, you may find it more convenient to define custom +\usepackage[record,style=indexgroup]{glossaries-extra} +\setabbreviationstyle{long-short-desc} +\GlsXtrLoadResources + [src={abbrvs},sort={letter-nocase},type=main, +  label-prefix={abr.}, +  group={Abbreviations}] +\GlsXtrLoadResources + [src={symbols},sort={use},type=main, +  label-prefix={sym.}, +  group={Symbols}] +\GlsXtrLoadResources[src={terms},sort={en-GB},type=main +  label-prefix={trm.}] +\begin{document} +\gls{trm.bird} +\gls{abr.shtml} +\gls{sym.M} +\printunsrtglossaries +\end{document} + +

    If you do something like this, you may find it more convenient to define custom commands that set the prefix. For example:

    -
    +
     \newcommand*{\sym}[2][]{\gls[#1]{sym.#2}}
    -
    -

    The problem with this is that the custom command +

    The problem with this is that the custom command \sym doesn’t allow for modifiers (such as \gls* or \gls+). Instead you can use: -



    \glsxtrnewgls[default optionsprefix}{cs}

    -

    +

    which defines the command ⟨cs⟩ that behaves like

    @@ -19321,23 +20065,23 @@ class="cmtt-10">] -
    +
     \glsxtrnewgls{sym.}{\sym}
    -
    -

    or (to default to no hyperlinks) + +

    or (to default to no hyperlinks)

    -
    +
     \glsxtrnewgls[hyper=false]{sym.}{\sym}
    -
    -

    now you can use +

    now you can use \sym+{M} to behave like \gls+{sym.M}. -

    If you also want the plural and first letter upper case versions you can +

    If you also want the plural and first letter upper case versions you can use -



    \glsxtrnewglslike[default options\Gls-like cs}{\Glspl-like cs}

    -

    +

    For example:

    -
    +
     \glsxtrnewglslike[hyper=false]{idx.}{\idx}{\idxpl}{\Idx}{\Idxpl}
    -
    -

    For the all caps versions: -


    +

    For the all caps versions: +


    \glsxtrnewGLSlike[default options} class="cmtt-10">{⟨\GLSpl-like cs}

    -

    +

    For example:

    -
    +
     \glsxtrnewGLSlike[hyper=false]{idx.}{\IDX}{\IDXpl}
    -
    -

    -

    There’s an analogous command for +

    +

    There’s an analogous command for \rgls: -



    \glsxtrnewrgls[default optionsprefix}{cs}

    -

    +

    and for \rgls, \rglspl, \rGls and \rGlspl: -



    \glsxtrnewrglslike[default options\rGls-like cs}{\rGlspl-like cs}

    -

    +

    and for the all caps: -



    \glsxtrnewrGLSlike[default options} class="cmtt-10">{⟨\rGLSpl-like cs}

    -

    -

    If you provide your own custom command with just

    +

    If you provide your own custom command with just \newcommand that has syntax that starts with [}, then you can notify bib2gls using: -



    \glsxtridentifyglslike{prefix}{command}

    -

    +

    This writes information to the .aux file so that bib2gls can search for the given command when looking for dependencies. -

    Another possibility is to set up known label prefixes, with each one identified +

    Another possibility is to set up known label prefixes, with each one identified by: -



    \glsxtraddlabelprefix{prefix}

    -

    +

    These should be listed in order of precedence. Since no entries are defined on the first LaTeX run, the final prefix should be the fallback. You can prepend a prefix to the list using: -



    \glsxtrprependlabelprefix{prefix}

    -

    +

    which gives it the highest order of precedence. -

    The ⟨

    The ⟨prefix⟩ argument may be empty. You can clear the list with: -



    \glsxtrclearlabelprefixes

    -

    -

    You can test if a prefix is already in the list with: -


    +

    You can test if a prefix is already in the list with: +


    \glsxtrifinlabelprefixlist{prefixtrue}{false}

    -

    +

    In general it’s best to avoid adding multiple instances of the same prefix, so you can check with this command before adding a prefix to the list. However, it can be useful @@ -19504,9 +20248,9 @@ check with this command before adding a prefix to the list. However, it can be u to repeat a prefix at the end of the list so that it can be used as a fallback for entries that haven’t yet been defined. -

    With the list of possible prefixes set up (including an empty prefix if necessary), +

    With the list of possible prefixes set up (including an empty prefix if necessary), you can use: -



    \dgls[optionslabel}[insert]

    -

    +

    which behaves like

    prefix⟩ is the first prefix in the list such that class="cmti-10">prefix⟩⟨label⟩ matches a defined entry (or the last entry in the prefix list if none match). -

    There are also analogous commands for the plural and case-changing +

    There are also analogous commands for the plural and case-changing versions: -



    \dglspl[optionslabel}[insert]

    -

    +

    (uses \glspl), -



    \dGls[optionslabel}[insert]

    -

    +

    (uses \Gls), -



    \dGlspl[optionslabel}[insert]

    -

    +

    (uses \Glspl), -



    \dGLS[optionslabel}[insert]

    -

    +

    (uses \GLS), -



    \dGLSpl[optionslabel}[insert]

    -

    +

    (uses \GLSpl), -



    \dglslink[optionslabel}[insert]

    -

    +

    (uses \glslink), -



    \dglsdisp[optionslabel}[insert]

    -

    +

    (uses \glsdisp). -

    These commands are essentially provided for a mixture of single and dual entries. +

    These commands are essentially provided for a mixture of single and dual entries. Suppose the file entries.bib contains:

    -
    +
     @index{duck}
    - 
    @dualindexabbreviation{svm, - 
      short={SVM}, - 
      long={support vector machine} - 
    } - 
    @dualindexsymbol{pi, - 
      symbol={\ensuremath{\pi}}, - 
      description={ratio of a circle's circumference to its - 
        diameter} - 
    } -
    -

    and suppose the document code is: +@dualindexabbreviation{svm, +  short={SVM}, +  long={support vector machine} +} +@dualindexsymbol{pi, +  symbol={\ensuremath{\pi}}, +  description={ratio of a circle's circumference to its +    diameter} +} + +

    and suppose the document code is:

    -
    +
     \documentclass{article}
    - 
    \usepackage{hyperref} - 
    \usepackage[record,abbreviations,symbols]{glossaries-extra} - 
    \newcommand{\bibglsnewdualindexsymbolsecondary}[5]{% - 
     \longnewglossaryentry*{#1}{name={#3},category={symbol}, - 
       type={symbols},symbol={#4},#2}{#5}% - 
    } - 
    \GlsXtrLoadResources[src=entries] - 
    \begin{document} - 
    First use: \gls{duck}, \gls{svm}, \gls{pi}. - 
    Next use: \gls{duck}, \gls{svm}, \gls{pi}. - 
    \printunsrtglossaries - 
    \end{document} -
    -

    This uses the default empty primary prefix and +

    This uses the default empty primary prefix and dual. for the dual prefix, so \gls{svm} is referencing the primary entry, which is (essentially) an \gls{pi}, which references the primary @index entry rather than the symbol. -

    What’s really needed is: +

    What’s really needed is:

    -
    +
     \gls{duck}, \gls{dual.svm}, \gls{dual.pi}.
    -
    -

    or with + +

    or with

    -
    +
     \GlsXtrLoadResources[src=entries,
    - 
     label-prefix={idx.}, - 
     dual-prefix={} - 
    ] -
    -

    then only the entries without a dual need a prefix: + label-prefix={idx.}, + dual-prefix={} +] + +

    then only the entries without a dual need a prefix:

    -
    +
     \gls{idx.duck}, \gls{svm}, \gls{pi}.
    -
    -

    Using +

    Using \glsxtrnewglslike, as earlier, this can be simplified to:

    -
    +
     \idx{duck}, \gls{svm}, \gls{pi}.
    -
    -

    but this requires remembering which terms have duals. -

    An alternative is to use +

    but this requires remembering which terms have duals. +

    An alternative is to use \dgls instead:

    -
    +
     \documentclass{article}
    - 
    \usepackage{hyperref} - 
    \usepackage[record,abbreviations,symbols]{glossaries-extra} - 
    \newcommand{\bibglsnewdualindexsymbolsecondary}[5]{% - 
     \longnewglossaryentry*{#1}{name={#3},category={symbol}, - 
       type={symbols},symbol={#4},#2}{#5}% - 
    } - 
    \GlsXtrLoadResources[src=entries] - 
    \glsxtraddlabelprefix{dual.} - 
    \glsxtraddlabelprefix{} - 
    \begin{document} - 
    First use: \dgls{duck}, \dgls{svm}, \dgls{pi}. - 
    Next use: \dgls{duck}, \dgls{svm}, \dgls{pi}. - 
    \printunsrtglossaries - 
    \end{document} -
    -

    On the first LaTeX call (when the +

    On the first LaTeX call (when the .glstex file doesn’t exist), neither dual.svm nor dual.svm) entry to be selected. The location will be added to the primary entry’s location list, unless overridden by resource options, such as combine-dual-locations. -

    Once

    Once bib2gls has been run and the \dgls{svm} now behaves like \gls{dual.svm}, which follows the abbreviation style and hyperlinks to the list of abbreviations. -

    Similarly for the index-symbol combination

    Similarly for the index-symbol combination dual.pi and pi. In the case of \dgls{duck} always behaves like \gls{duck}. -

    If you haven’t used

    If you haven’t used combine-dual-locations an extra bib2gls+LaTeX run may be required to correct the location lists. -

    If you change the label prefixes, remember to update the corresponding +

    If you change the label prefixes, remember to update the corresponding \glsxtraddlabelprefix{prefix}. If no prefixes have been added to the list (or if the list is cleared), just an empty prefix is assumed. -

    As from version 1.8,

    As from version 1.8, bib2gls provides hooks that identify the label prefixes in the +

     \newcommand{\bibglsprimaryprefixlabel}[1]{\glsxtraddlabelprefix{#1}}
    - 
    \newcommand{\bibglsdualprefixlabel}[1]{\glsxtrprependlabelprefix{#1}} - 
    \GlsXtrLoadResources[src=entries] -
    -

    Remember that this will only have an effect once the +

    Remember that this will only have an effect once the .glstex file has been created. The prefix list will be empty on the first run (which is treated as a single empty prefix). If this isn’t a suitable fallback, it may be necessary to add one after all the @@ -19831,20 +20575,20 @@ resource commands:

    -
    +
     \newcommand{\bibglsprimaryprefixlabel}[1]{\glsxtraddlabelprefix{#1}}
    - 
    \newcommand{\bibglsdualprefixlabel}[1]{\glsxtrprependlabelprefix{#1}} - 
    \GlsXtrLoadResources[src=entries,label-prefix={idx.}] - 
    \glsxtraddlabelprefix{idx.} -
    -

    Although this rather defeats the purpose of using the hooks as you still have to keep +\newcommand{\bibglsdualprefixlabel}[1]{\glsxtrprependlabelprefix{#1}} +\GlsXtrLoadResources[src=entries,label-prefix={idx.}] +\glsxtraddlabelprefix{idx.} + +

    Although this rather defeats the purpose of using the hooks as you still have to keep track of the fallback prefix. -

    +

    -

    Top

    9.5 Record Counting

    -

    As from version 1.1 of

    As from version 1.1 of bib2gls, you can save the total record count for each entry by @@ -19860,38 +20604,44 @@ class="cmtt-10">.glstex file class="cmtt-10">bib2gls will additionally set the following internal fields for that entry:

      -
    • +

      recordcount: set to the total number of records found for the entry; -

    • -
    • +
    • +

      recordcount.counter⟩: set to the total number of records found for the - entry for the given counter.

    -

    If +

    If --record-count-unit is used then additionally:

      -
    • +

      recordcount.counter.location⟩: set to the total number of records - found for the entry for the given counter with the given location.

    -

    Only use the unit counting option if the locations don’t contain any special characters. If + found for the entry for the given counter with the given location.

    +

    Only use the unit counting option if the locations don’t contain any special characters. If you really need it with locations that may contain formatting commands, then you can try redefining: -



    \glsxtrdetoklocation{location}

    -

    +

    so that it detokenizes ⟨location⟩ but take care when using \GlsXtrLocationRecordCount with commands like \thepage as they can end up becoming detokenized too early. -

    Note that the record count includes locations that

    Note that the record count includes locations that bib2gls discards, such as ignored records, duplicates and partial duplicates. It doesn’t include cross-reference @@ -19899,9 +20649,6 @@ records. For example, if \gls{bird} is used twice on page 1, once on page 2 and fours times on page 3, and \gls[counter=section]{bird} is used once in - - - section 3, then the total record count (stored in the recordcount field) is 2 + 1 + 4 + 1 = 8, the total for the section counter (stored in the recordcount.section field) is 1. -

    With the unit counting on as well, the field

    With the unit counting on as well, the field recordcount.page.1 is set to 2, recordcount.page.2 is set to 1, recordcount.page.3 is set to 4 and recordcount.section.3 is set to 1. -

    You can access these fields using the following commands which will expand to +

    You can access these fields using the following commands which will expand to the field value if set or to 0 if unset: -



    \GlsXtrTotalRecordCount{label}

    -

    +

    This expands to the total record count for the entry given by ⟨label⟩.

    -
    +
     \GlsXtrTotalRecordCount{bird}
    -
    -

    expands to 8. -


    +

    expands to 8. +


    \GlsXtrRecordCount{label}{counter}

    -

    +

    This expands to the counter total for the entry given by ⟨label⟩ where ⟨counter⟩ is the @@ -19952,19 +20699,19 @@ counter name. For example:

    -
    +
     \GlsXtrRecordCount{bird}{page}
    -
    -

    expands to 7 and + +

    expands to 7 and

    -
    +
     \GlsXtrRecordCount{bird}{section}
    -
    -

    expands to 1. -


    +

    expands to 1. +


    \GlsXtrLocationRecordCount{labelcounter}{location}

    -

    +

    This expands to the total for the given location. For example

    -
    +
     \GlsXtrLocationRecordCount{bird}{page}{3}
    -
    -

    expands to 4. Be careful about using +

    expands to 4. Be careful about using \thepage in the ⟨location⟩ part. Remember that due to TeX’s asynchronous output routine, \thepage may not be correct. -

    There are commands analogous to the entry counting commands like

    There are commands analogous to the entry counting commands like \cgls and \cglsformat that are triggered by the record count. These are listed below. -



    \rglsmodifierlabel}[insert]

    -

    -


    +


    \rglsplmodifierlabel}[insert]

    -

    -


    +


    \rGlsmodifierlabel}[insert]

    -

    -


    +


    \rGlsplmodifierlabel}[insert]

    -

    -


    +


    \rGLSmodifierlabel}[insert]

    -

    -


    +


    \rGLSplmodifierlabel}[insert]

    -

    +

    These commands check the recordcount -

    -

    For convenience, you can use -


    +

    For convenience, you can use +


    \GlsXtrSetRecordCountAttribute{category list}{n}

    -

    +

    to set the recordcountn⟩ for all the categories listed in ⟨category list⟩. -

    The

    The \rgls-like commands use -



    \glsxtrifrecordtrigger{labeltrigger code}{normal}

    -

    +

    to determine whether the \rgls-like command should behave like its \gls counterpart (⟨normal⟩) or whether it should instead use ⟨trigger code⟩. -

    This command checks if the

    This command checks if the recordcount attribute is set. If not is just does ⟨normal⟩, otherwise it tests if -



    \glsxtrrecordtriggervalue{label}

    -

    +

    is greater than the value given in the recordcount -

    -

    The ⟨ +

    The ⟨trigger code⟩ part writes a record with the format set to trigger format⟩. Then it unsets the first use flag. Note that it doesn’t implement the post-link hook. This ensures that the record count is correct on the next run. -

    The ⟨

    The ⟨trigger format⟩ depends on the \rgls-like command used and will be one of the following: -



    \rglsformat{label}{insert}

    -

    -


    +


    \rglsplformat{label}{insert}

    -

    -


    +


    \rGlsformat{label}{insert}

    -

    -


    +


    \rGlsplformat{label}{insert}

    -

    -


    +


    \rGLSformat{label}{insert}

    -

    -


    +


    \rGLSplformat{label}{insert}

    -

    +

    These all behave much like their \cglsformat counterparts. If the entry’s regular attribute is set or if the entry doesn’t have a long form, the first or first plural is used, otherwise the long or long plural form is used. -

    You can use -


    You can use +


    \glsxtrenablerecordcount

    -

    +

    to redefine \gls, \glspl, \rGls, class="cmtt-10">\rGlspl, \rGLS, \rGLSpl, respectively, for convenience. -

    If you don’t want the entries that use ⟨

    If you don’t want the entries that use ⟨trigger code⟩ to appear in the glossary, you need to use the resource option trigger-type to assign them to another glossary. @@ -20242,24 +20989,24 @@ For example:

    -
    +
     \documentclass{article}
    - 
    \usepackage[record]{glossaries-extra} - 
    \newignoredglossary{ignored} - 
    \GlsXtrLoadResources[ - 
     src=example-glossaries-acronym, - 
     trigger-type=ignored, - 
     category=abbreviation - 
    ] - 
    \glsxtrenablerecordcount - 
    \GlsXtrSetRecordCountAttribute{abbreviation}{1} - 
    \begin{document} - 
    \gls{lid}.  \gls{stc}. \gls{lid}.  \gls{aeu}. - 
    \gls{upa}. \gls{aeu}. - 
    \printunsrtglossaries - 
    \end{document} -
    -

    In the above, +

    In the above, stc and upa both only have one record, so they are assigned to the main one.

    -

    -

    +

    Top

    10. Miscellaneous New Commands

    -

    The

    The glossaries package provides \glsrefentry entry to cross-reference entries @@ -20286,26 +21033,26 @@ class="cmss-10">subentrycounter options. The glossaries-extra package provides a supplementary command -



    \glsxtrpageref{label}

    -

    +

    that works in the same way except that it uses \pageref instead of \ref. -

    You can copy an entry to another glossary using -


    You can copy an entry to another glossary using +


    \glsxtrcopytoglossary{entry-label}{glossary-type}

    -

    +

    This appends ⟨entry-label⟩ to the end of the internal list for the glossary given by ⟨ -

    +
     \printunsrtglossary[target=false]
    -
    -

    -

    The +

    +

    The glossaries package allows you to set preamble code for a given glossary type using \setglossarypreamble. This overrides any previous setting. With glossaries-extra (as from v1.12) you can instead append to the preamble using -



    \apptoglossarypreamble[type]{code}

    -

    +

    or prepend using -



    \pretoglossarypreamble[type]{code}

    -

    +

    -

    Top

    10.1 Entry Fields

    -

    A field may now be used to store the name of a text-block command that takes a +

    A field may now be used to store the name of a text-block command that takes a single argument. The field is given by -



    \GlsXtrFmtField

    -

    +

    The default value is useri. Note that the value must be the control sequence name without the initial backslash. -

    For example: +

    For example:

    -
    +
     \newcommand*{\mtx}[1]{\boldsymbol{#1}}
    - 
    \newcommand*{\mtxinv}[1]{\mtx{#1}\sp{-1}} - 
    \newglossaryentry{matrix}{% - 
      name={matrix}, - 
      symbol={\ensuremath{\mtx{M}}}, - 
      plural={matrices}, - 
      user1={mtx}, - 
      description={rectangular array of values} - 
    } - 
    \newglossaryentry{identitymatrix}{% - 
      name={identity matrix}, - 
      symbol={\ensuremath{\mtx{I}}}, - 
      plural={identity matrices}, - 
      description={a diagonal matrix with all diagonal elements equal to - 
    1 and all other elements equal to 0} - 
    } - 
    \newglossaryentry{matrixinv}{% - 
      name={matrix inverse}, - 
      symbol={\ensuremath{\mtxinv{M}}}, - 
      user1={mtxinv}, - 
      description={a square \gls{matrix} such that - 
       $\mtx{M}\mtxinv{M}=\glssymbol{identitymatrix}$} - 
    } -
    -

    -

    There are two commands provided that allow you to apply the command to an +\newcommand*{\mtxinv}[1]{\mtx{#1}\sp{-1}} +\newglossaryentry{matrix}{% +  name={matrix}, +  symbol={\ensuremath{\mtx{M}}}, +  plural={matrices}, +  user1={mtx}, +  description={rectangular array of values} +} +\newglossaryentry{identitymatrix}{% +  name={identity matrix}, +  symbol={\ensuremath{\mtx{I}}}, +  plural={identity matrices}, +  description={a diagonal matrix with all diagonal elements equal to +1 and all other elements equal to 0} +} +\newglossaryentry{matrixinv}{% +  name={matrix inverse}, +  symbol={\ensuremath{\mtxinv{M}}}, +  user1={mtxinv}, +  description={a square \gls{matrix} such that +   $\mtx{M}\mtxinv{M}=\glssymbol{identitymatrix}$} +} + +

    +

    There are two commands provided that allow you to apply the command to an argument: -



    \glsxtrfmt[optionslabel}{text}

    -

    +

    This effectively does

    cs name⟩ is the control sequence name supplied in must be defined to take a single required argument. Although it effectively acts like \glslink it misses out the post-link hook. -

    The default ⟨

    The default ⟨default-options⟩ are given by -



    \GlsXtrFmtDefaultOptions

    -

    +

    This is defined as noindex but may be redefined as appropriate. Note that the replacement text of \GlsXtrFmtDefaultOptions is prepended to the optional argument of \glslink. -

    As from version 1.23, there’s also a starred version of this command that has a +

    As from version 1.23, there’s also a starred version of this command that has a final optional argument: -



    \glsxtrfmt*[optionstext}[insert]

    -

    +

    Both the starred and unstarred versions use: -



    \glsxtrfmtdisplay{cs nametext}{insert}

    -

    +

    within the link text. In the case of the unstarred version ⟨insert⟩ will be empty. It will also be empty if the final option argument is missing from the starred form. If the @@ -20494,33 +21241,33 @@ default definition is:

    -
    +
     \newcommand{\glsxtrfmtdisplay}[3]{\csuse{#1}{#2}#3}
    -
    -

    which puts ⟨ +

    which puts ⟨text⟩ inside the argument of the control sequence and ⟨insert⟩ outside it (but it will still be inside the link text). -

    Remember that nested links cause a problem so avoid using commands like

    Remember that nested links cause a problem so avoid using commands like \gls or \glsxtrfmt within ⟨text⟩.
    -

    -

    For example: +

    +

    For example:

    -
    +
     \[
    - 
      \glsxtrfmt{matrix}{A} - 
      \glsxtrfmt{matrixinv}{A} - 
      = - 
      \glssymbol{identitymatrix} - 
    \] -
    -

    If the default options are set to +

    If the default options are set to noindex then \glsxtrfmt won’t index, but will create a hyperlink (if -

    +
     \renewcommand{\GlsXtrFmtDefaultOptions}{hyper=false,noindex}
    -
    -

    -

    Note that +

    +

    Note that \glsxtrfmt won’t work with PDF bookmarks. Instead you can use -



    \glsxtrentryfmt{label}{text}

    -

    +

    If hyperref is used, this uses \texorpdfstring and will expand to -



    \glsxtrpdfentryfmt{label}{text}

    -

    +

    within the PDF bookmarks, but in the document it will do ⟨cs{text⟩ otherwise. The PDF bookmark version simply does ⟨text⟩. It may be redefined, but remember that it needs to expand fully. -

    The

    The glossaries package provides \glsaddstoragekey to add new keys. This command will cause an error if the key has already been defined. The glossaries-extra package provides a supplementary command that will only define the key if it doesn’t already exist: -



    \glsxtrprovidestoragekey{keydefault}{cs}

    -

    +

    If the key has already been defined, it will still provide the command given in the third argument ⟨cs⟩ (if it hasn’t already been defined). Unlike cs⟩ may be left empty if you’re happy to just use \glsfieldfetch to fetch the value of this new key. -

    You can test if a key has been provided with: -


    You can test if a key has been provided with: +


    \glsxtrifkeydefined{keytrue}{false}

    -

    +

    This tests if ⟨key⟩ is available for use in the ⟨key⟩= list in the second argument of @@ -20612,7 +21359,7 @@ class="cmtt-10">\newglossaryentry (or the optional argument of commands l class="cmtt-10">\newabbreviation). The corresponding field may not have been set for any of the entries if no default was provided. -

    There are now commands provided to set individual fields. Note that +

    There are now commands provided to set individual fields. Note that these only change the specified field, not any related values. For example, changing the value of the textparent field). Unexpected results may occur if they are subsequently changed. -



    \GlsXtrSetField{labelfield}{value}

    -

    +

    Sets the field given by ⟨field⟩ to ⟨value⟩ for the entry given by ⟨\newglossaryentry. If a field without a corresponding key is assigned a value, the key remains undefined. This command is robust. -

    \GlsXtrSetField uses -



    \glsxtrsetfieldifexists{labelfield}{code}

    -

    +

    where ⟨label⟩ is the entry label and ⟨code⟩ is the assignment code. -

    This command just uses

    This command just uses \glsdoifexists{=warn\glsxtrsetfieldifexists to simply do ⟨code⟩ if you want to skip the existence check. Alternatively you can instead use -



    \glsxtrdeffield{label{replacement text}

    -

    +

    This simply uses etoolbox’s \protected@csedef instead:10.1 -



    \glsxtredeffield{label{replacement text}

    -

    -


    +


    \gGlsXtrSetField{labelfield}{value}

    -

    +

    As \GlsXtrSetField but globally. -



    \eGlsXtrSetField{labelfield}{value}

    -

    +

    As \GlsXtrSetField but uses protected expansion. -



    \xGlsXtrSetField{labelfield}{value}

    -

    +

    As \gGlsXtrSetField but uses protected expansion. -



    \GlsXtrLetField{labelfield}{cs}

    -

    +

    Sets the field given by ⟨field⟩ to the replacement text of ⟨cs⟩ for the entry given by ⟨label⟩ (using \let). -



    \csGlsXtrLetField{labelfield}{cs name}

    -

    +

    As \GlsXtrLetField but the control sequence name is supplied instead. -



    \GlsXtrLetFieldToField{label-1}{field-2}

    -

    +

    Sets the field given by ⟨field-1⟩ for the entry given by ⟨label-1⟩ to the field given by @@ -20815,13 +21562,13 @@ class="cmtt-10">\GlsXtrSetField. -

    The

    The glossaries package provides \ifglshasfield to determine if a field has been set. The glossaries-extra package provides a simpler version: -



    \glsxtrifhasfield{fieldtrue}{false}

    -

    +

    (New to v1.19.) Note that in this case the ⟨field⟩ must be the internal field label (for @@ -20849,15 +21596,15 @@ class="cmti-10">true⟩ part is done otherwise it does ⟨false⟩. Within ⟨true⟩ you may use -



    \glscurrentfieldvalue

    -

    +

    to access the field value. This command includes grouping which scopes the ⟨true⟩ and ⟨false⟩ parts. The starred version -



    \glsxtrifhasfield*{fieldtrue}{false}

    -

    +

    omits the implicit grouping. -

    Be careful of keys that use

    Be careful of keys that use \relax as the default value (such as the symbol). Use \ifglshassymbol instead.
    -

    -

    There is also a version that simply uses

    +

    There is also a version that simply uses \ifcsundef. It doesn’t save the field value, but can be used if you only need to check if the field is defined without accessing it: -



    \GlsXtrIfFieldUndef{fieldtrue}{false}

    -

    -

    There’s a difference between an undefined field and an unset field. An undefined +

    +

    There’s a difference between an undefined field and an unset field. An undefined field hasn’t been assigned any value (no associated internal control sequence has been defined). If a defined field has been defined to empty, then it’s considered unset. \GlsXtrIfFieldUndef for fields that can only be defined through commands like \GlsXtrSetField.
    -

    -

    You can test if a field value equals a string using -


    +

    You can test if a field value equals a string using +


    \GlsXtrIfFieldEqStr{fieldtrue}{false}

    -

    +

    If the entry exists and has the given field set to the given text then this does ⟨true⟩ otherwise it does ⟨\ifdefstring. Version 1.39 introduced a starred form of t which uses the starred form of \glsxtrifhasfield. -

    As from version 1.31, there’s a similar command: -


    As from version 1.31, there’s a similar command: +


    \GlsXtrIfFieldEqXpStr{fieldtrue}{false}

    -

    +

    This is like \GlsXtrIfFieldEqStr but first (protected) fully expands ⟨text⟩ (but not the field value). If you want to compare the (protected) full expansion of both the field value and ⟨text⟩ use: -



    \GlsXtrIfXpFieldEqXpStr{field}{false}

    -

    +

    Again, version 1.39 introduced a starred form of these commands, which use the starred form of \glsxtrifhasfield. -

    As from v1.42, you can test if the field value is contained in a comma-separated +

    As from v1.42, you can test if the field value is contained in a comma-separated list with: -



    \GlsXtrIfFieldValueInCsvList{label}{false}

    -

    +

    The unstarred version uses the unstarred form of \glsxtrifhasfield (which adds grouping so ⟨list⟩. See the datatool documentation for further details. -

    This command is intended for fields that contain a label. For example, to test if +

    This command is intended for fields that contain a label. For example, to test if the category is one of a set of labels:

    -
    +
     \GlsXtrIfFieldValueInCsvList{examplelabel}{category}%
    - 
     {abbreviation,acronym}% set of labels - 
     {true part}{false part} -
    -

    -

    As from v1.31, if a field represents a numeric (integer) value, you can use the + {abbreviation,acronym}% set of labels + {true part}{false part} + +

    +

    As from v1.31, if a field represents a numeric (integer) value, you can use the following two numeric tests. If the field is set, it must expand to an integer. You may use \glscurrentfieldvalue within ⟨\glscurrentfieldvalue is set accordingly. As from version 1.39, these numeric tests have starred versions. The unstarred versions add implicit grouping. The starred versions don’t. -

    To test if the value is non-zero: -


    To test if the value is non-zero: +


    \GlsXtrIfFieldNonZero{fieldtrue}{false}

    -

    +

    Alternatively, you can test if the field expands to a specific number using: -



    \GlsXtrIfFieldEqNum{fieldtrue}{false}

    -

    +

    This does ⟨true⟩ if the field value equals ⟨n⟩ (using \ifnum for the comparison) otherwise it does ⟨false⟩. For a more general numeric comparison you can use: -



    \GlsXtrIfFieldCmpNum{field}{false}

    -

    +

    where ⟨comparison⟩ is one of =, < or >. -

    The

    The glossaries package provides \glsfieldfetch which can be used to fetch the value of the given field and store it in a control sequence. The glossaries-extra package provides another way of accessing the field value: -



    \glsxtrusefield{entry-label}{field-label}

    -

    +

    This works in the same way as commands like \glsentrytext but the field label is specified in the first argument. Note that the ⟨glossaries manual. No error occurs if the entry or field haven’t been defined. This command is not robust. -

    There is also a version that converts the first letter to uppercase (analogous to +

    There is also a version that converts the first letter to uppercase (analogous to \Glsentrytext): -



    \Glsxtrusefield{entry-label}{field-label}

    -

    +

    and, as from v1.37, a command that converts the entire value to upper case: -



    \GLSxtrusefield{entry-label}

    -

    -

    If you want to use a field to store a list that can be used as an

    +

    If you want to use a field to store a list that can be used as an etoolbox internal list, you can use the following command that adds an item to the field using @@ -21158,7 +21905,7 @@ list, you can use the following command that adds an item to the field using class="cmss-10">etoolbox’s \listcsadd: -



    \glsxtrfieldlistadd{labelfield}{item}

    -

    +

    where ⟨label⟩ is the entry’s label, ⟨field⟩ is the entry’s field and ⟨\listgadd, \listeadd and \listxadd: -



    \glsxtrfieldlistgadd{labelfield}{item}

    -

    -


    +


    \glsxtrfieldlisteadd{labelfield}{item}

    -

    -


    +


    \glsxtrfieldlistxadd{labelfield}{item}

    -

    +

    You can then iterate over the list using: -



    \glsxtrfielddolistloop{label}{field}

    -

    +

    or -



    \glsxtrfieldforlistloop{labelfield}{handler}

    -

    +

    that internally use \dolistcsloop and \forlistloop, respectively. You can use @@ -21236,18 +21983,18 @@ class="cmtt-10">\listbreaketoolbox manual for further details). -

    For fields that contain comma-separated lists use

    For fields that contain comma-separated lists use \glsxtrforcsvfield instead. -

    New to v1.42: -


    New to v1.42: +


    \glsxtrfieldformatlist{label}{field}

    -

    +

    Like datatool-base’s datatool-base command, this command has no starred version. Grouping is automatically applied. -

    For example, with

    For example, with bib2gls’s save-child-count resource option:

    -
    +
     \newcommand*{\listchildren}[1]{%
    - 
      \GlsXtrIfFieldNonZero{childcount}{#1}% - 
      {child count: \glscurrentfieldvalue; children: - 
       \let\DTLlistformatitem\glsfmtname - 
       \glsxtrfieldformatlist{#1}{childlist}% - 
      }% - 
      {no children}% - 
    } -
    -

    For fields that contain a comma-separated list use +

    For fields that contain a comma-separated list use \glsxtrfieldformatcsvlist instead. -

    There are also commands that use

    There are also commands that use \ifinlistcs: -



    \glsxtrfieldifinlist{labeltrue}{false}

    -

    +

    and \xifinlistcs -



    \glsxtrfieldxifinlist{labeltrue}{false}

    -

    -

    See the

    +

    See the etoolbox’s user manual for further details of these commands, in particular the limitations of \ifinlist. -

    If the field has a comma-separated list value instead, you can iterate over it +

    If the field has a comma-separated list value instead, you can iterate over it using: -



    \glsxtrforcsvfield{labelfield}{handler}

    -

    +

    where again ⟨handler⟩ is a control sequence that takes a single argument. Unlike the \@endfortrue. The \glsxtrforcsvfield command locally defines a user level command: -



    \glsxtrendfor

    -

    +

    which is just a synonym for \@endfortrue. -

    The loop is performed within the true part of

    The loop is performed within the true part of \glsxtrifhasfield so scoping is automatically applied. -

    New to v1.42: -


    New to v1.42: +


    \glsxtrfieldformatcsvlist{label}{field}

    -

    +

    Like \glsxtrfieldformatcsvlist but for fields that contain comma-separated lists. -

    As from version 1.32, if the field given by -


    As from version 1.32, if the field given by +


    \GlsXtrForeignTextField

    -

    +

    (which defaults to userii) contains a locale tag, then -



    \GlsXtrForeignText{entry label}{text}

    -

    +

    can be used to encapsulate ⟨text⟩ in \foreignlanguage{text⟩. For example:

    -
    +
     \documentclass{article}
    - 
    \usepackage[main=british,brazilian,ngerman]{babel} - 
    \usepackage{glossaries-extra} - 
    \setabbreviationstyle{long-short-user} - 
    \newabbreviation - 
     [user1={Associa\c{c}\~ao Brasileria de Normas T\'ecnicas}, - 
      user2= {pt-BR} - 
     ] - 
     {abnt}{ABNT}{Brazilian National Standards Organization} - 
    \newabbreviation - 
     [user1={Deutsches Institut f\"ur Normung e.V.}, - 
      user2={de-DE-1996}] - 
     {din}{DIN}{German Institute for Standardization} - 
    \renewcommand*{\glsxtruserparen}[2]{% - 
      \glsxtrfullsep{#2}% - 
      \glsxtrparen - 
      {#1% - 
       \ifglshasfield{\glsxtruserfield}{#2}% - 
       {, \emph{\GlsXtrForeignText{#2}{\glscurrentfieldvalue}}}% - 
       {}% - 
      }% - 
    } - 
    \begin{document} - 
    \gls{abnt}, \gls{din}. - 
    \end{document} -
    -

    -

    When using the +

    +

    When using the record option, in addition to recording the usual location, you can also record the current value of another counter at the same time using the preamble-only command: -



    \GlsXtrRecordCounter{counter name}

    -

    +

    For example:

    -
    +
     \usepackage[record]{glossaries-extra}
    - 
    \GlsXtrRecordCounter{section} -
    -

    Each time an entry is referenced with commands like +

    Each time an entry is referenced with commands like \gls or \glstext, the \gls{bird} is used in section 1.2 th -

    +
     \glsxtrfieldlistgadd{bird}{record.section}{1.2}
    -
    -

    Note that there’s no key corresponding to this new +

    Note that there’s no key corresponding to this new record.section field, but its value can be accessed with \glsxtrfielduse or the list can be iterated over with \glsxtrfielddolistloop etc. -

    +

    -

    Top

    10.2 Display All Entries Without Sorting or Indexing

    -



    \printunsrtglossary[options]

    -

    +

    This behaves like \printnoidxglossary but never sorts the entries and always lists all the defined entries for the given glossary (and doesn’t require @@ -21549,15 +22296,15 @@ the definition of \glsgroupskip to avoid the “Incomplete \iftrue” error that may otherwise occur. -

    There’s also a starred form -


    There’s also a starred form +


    \printunsrtglossary*[options]{code}

    -

    +

    which is equivalent to

    \endgroup class="cmtt-10">\glossarypreamble, the supplied ⟨code⟩ is done before the glossary header. -

    This means you now have the option to simply list all entries on the first +

    This means you now have the option to simply list all entries on the first LaTeX run without the need for a post-processor, however there will be no number list in this case, as that has to be set by a post-processor such as bib2gls (see bib2gls (see +§9 -§??sec:bib2gls bib2gls: Managing Reference Databases). -

    No attempt is made to gather hierarchical elements. If child entries aren’t defined +

    No attempt is made to gather hierarchical elements. If child entries aren’t defined immediately after their parent entry, they won’t be together in the glossary when using \printunsrtglossary.
    -

    +

    -

    There’s a difference in behaviour depending on whether or not the

    There’s a difference in behaviour depending on whether or not the group key is defined. If not defined (default), the group label will be formed from the first letter of the name field. The corresponding group title will be obtained as discussed -in field. The corresponding group title will be obtained as discussed in +§2.10.1 §??sec:glosstylemods Glossary Style Modifications. This can lead to an odd effect if you are using a style that separates letter groups when the ordering isn’t alphabetical. -

    If the

    If the group key is defined (which it is with the group field is non-empty, then the corresponding title is obtained as described earlier. -

    In either case, if the

    In either case, if the groups option is set to false then no group formation will be performed. -

    If you want to use a different field for the group label, you can redefine -


    If you want to use a different field for the group label, you can redefine +


    \glsxtrgroupfield

    -

    +

    to the relevant internal field label, but the group bib2gls for secondary entries, which have the group label stored in the secondarygroup internal field.) -

    If you have any entries with the

    If you have any entries with the see key set, you will need the glossariesrecord=only package option will automatically deal with this. -

    For example: +

    For example:

    -
    +
     \documentclass{article}
    - 
    \usepackage{glossaries-extra} - 
    \newglossaryentry{zebra}{name={zebra},description={stripy animal}} - 
    \newglossaryentry{ant}{name={ant},description={an insect}} - 
    \begin{document} - 
    \gls{ant} and \gls{zebra} - 
    \printunsrtglossaries - 
    \end{document} -
    -

    In the above, zebra will be listed before ant as it was defined first. -

    If you allow document definitions with the +

    In the above, zebra will be listed before ant as it was defined first. +

    If you allow document definitions with the docdefs option, the document will require a second LaTeX run if the entries are defined after \printunsrtglossary. -

    The optional argument is as for

    The optional argument is as for \printnoidxglossary (except for the sort key, which isn’t available). -

    All glossaries may be displayed in the order of their definition using: -


    All glossaries may be displayed in the order of their definition using: +


    \printunsrtglossaries

    -

    +

    which is analogous to \printnoidxglossaries. This just iterates over all defined glossaries (that aren’t on the ignored list) and does \printunsrtglossary[type=⟨type⟩]. -

    +

    -

    Top

    10.2.1 Hooks

    -

    To avoid complications caused by

    To avoid complications caused by tabular-like glossary styles,



    \printunsrtglossaryentryprocesshook{label}

    -

    +

    This hook should not display any content, but may be used to perform calculations. For example, to calculate widths. Within this hook you can use: -



    \printunsrtglossaryskipentry

    -

    +

    to skip the current entry. This will prevent the entry from being added to the internal command. -

    There’s another hook immediately before the internal command containing the +

    There’s another hook immediately before the internal command containing the glossary code is performed: -



    \printunsrtglossarypredoglossary

    -

    -

    The internal command uses -


    +

    The internal command uses +


    \printunsrtglossaryhandler{label}

    -

    +

    to display each item in the list, where ⟨label⟩ is the current label. -

    By default the handler just does -


    By default the handler just does +


    \glsxtrunsrtdo{label}

    -

    +

    which determines whether to use \glossentry or \subglossentry and checks the @@ -21774,24 +22523,24 @@ href="#glo:numberlist">number list. If you want to use a different field to used instead of location then redefine: -



    \GlsXtrLocationField

    -

    +

    to the internal name of the desired field. For example:

    -
    +
     \renewcommand{\GlsXtrLocationField}{primarylocation}
    -
    -

    -

    Note that if the given location field is undefined or unset, the handler will + +

    +

    Note that if the given location field is undefined or unset, the handler will fallback on the loclist field.
    -

    +

    You can instruct loclist field with the resource option --save-loclist=false to prevent it from being used as a fallback. -

    +

    -

    Top

    10.2.2 Filtering

    -

    You can redefine the handler used by

    You can redefine the handler used by \printunsrtglossary if required. For example, you may want to filter entries according to the category label. You can test if a label is contained in a comma-separated list of labels using: -



    \glsxtriflabelinlist{labeltrue}{false}

    -

    +

    The ⟨label⟩ and ⟨label list⟩ will be fully expanded. -

    If you redefine the handler to exclude entries, you may end up with an empty +

    If you redefine the handler to exclude entries, you may end up with an empty glossary. This could cause a problem for the list-based styles.
    -

    -

    For example, if the preamble includes: +

    +

    For example, if the preamble includes:

    -
    +
     \usepackage[record,style=index]{glossaries-extra}
    - 
    \GlsXtrRecordCounter{section} -
    -

    then you can print the glossary but first redefine the handler to only select entries +\GlsXtrRecordCounter{section} + +

    then you can print the glossary but first redefine the handler to only select entries that include the current section number in the record.section field:

    -
    +
     \renewcommand{\printunsrtglossaryhandler}[1]{%
    - 
      \glsxtrfieldxifinlist{#1}{record.section}{\thesection} - 
      {\glsxtrunsrtdo{#1}}% - 
      {}% - 
    } -
    -

    -

    Alternatively you can use the starred form of +

    +

    Alternatively you can use the starred form of \printunsrtglossary which will localise the change:

    -
    +
     \printunsrtglossary*{%
    - 
      \renewcommand{\printunsrtglossaryhandler}[1]{% - 
        \glsxtrfieldxifinlist{#1}{record.section}{\thesection} - 
        {\glsxtrunsrtdo{#1}}% - 
        {}% - 
      }% - 
    } -
    -

    -

    If you are using the +

    +

    If you are using the hyperref package and want to display the same glossary more than once, you can also add a temporary redefinition of -

    +
     \printunsrtglossary*{%
    - 
      \renewcommand{\printunsrtglossaryhandler}[1]{% - 
        \glsxtrfieldxifinlist{#1}{record.section}{\thesection} - 
        {\glsxtrunsrtdo{#1}}% - 
        {}% - 
      }% - 
      \ifcsundef{theHsection}% - 
      {% - 
        \renewcommand*{\glolinkprefix}{record.\csuse{thesection}.}% - 
      }% - 
      {% - 
        \renewcommand*{\glolinkprefix}{record.\csuse{theHsection}.}% - 
      }% - 
    } -
    -

    Note that this will cause a problem if your descriptions contain commands like +

    Note that this will cause a problem if your descriptions contain commands like \gls that need to link an entry that doesn’t appear in the summary. In this case, it’s a better approach to use: @@ -21902,97 +22651,97 @@ better approach to use:

    -
    +
     \printunsrtglossary*{%
    - 
      \renewcommand{\printunsrtglossaryhandler}[1]{% - 
        \glsxtrfieldxifinlist{#1}{record.section}{\thesection} - 
        {\glsxtrunsrtdo{#1}}% - 
        {}% - 
      }% - 
      \ifcsundef{theHsection}% - 
      {% - 
        \setkeys{printgloss}{targetnameprefix={record.\csuse{thesection}.}}% - 
      }% - 
      {% - 
        \setkeys{printgloss}{targetnameprefix={record.\csuse{theHsection}.}}% - 
      }% - 
    } -
    -

    -

    If it’s a short summary at the start of a section, you might also want to suppress +  \renewcommand{\printunsrtglossaryhandler}[1]{% +    \glsxtrfieldxifinlist{#1}{record.section}{\thesection} +    {\glsxtrunsrtdo{#1}}% +    {}% +  }% +  \ifcsundef{theHsection}% +  {% +    \setkeys{printgloss}{targetnameprefix={record.\csuse{thesection}.}}% +  }% +  {% +    \setkeys{printgloss}{targetnameprefix={record.\csuse{theHsection}.}}% +  }% +} + +

    +

    If it’s a short summary at the start of a section, you might also want to suppress the glossary header and add some vertical space afterwards:

    -
    +
     \printunsrtglossary*{%
    - 
      \renewcommand{\printunsrtglossaryhandler}[1]{% - 
        \glsxtrfieldxifinlist{#1}{record.section}{\thesection} - 
        {\glsxtrunsrtdo{#1}}% - 
        {}% - 
      }% - 
      \ifcsundef{theHsection}% - 
      {% - 
        \renewcommand*{\glolinkprefix}{record.\csuse{thesection}.}% - 
      }% - 
      {% - 
        \renewcommand*{\glolinkprefix}{record.\csuse{theHsection}.}% - 
      }% - 
      \renewcommand*{\glossarysection}[2][]{}% - 
      \appto\glossarypostamble{\glspar\medskip\glspar}% - 
    } -
    -

    -

    There’s a shortcut command that essentially does this: -


    +

    +

    There’s a shortcut command that essentially does this: +


    \printunsrtglossaryunit[options]{counter name}

    -

    +

    The above example can simply be replaced with:

    -
    +
     \printunsrtglossaryunit{section}
    -
    -

    -

    This shortcut command is actually defined to use +

    +

    This shortcut command is actually defined to use \printunsrtglossary* with -



    \printunsrtglossaryunitsetup{counter name}

    -

    +

    so if you want to just make some minor modifications you can do

    -
    +
     \printunsrtglossary*{\printunsrtglossaryunitsetup{section}%
    - 
      \renewcommand*{\glossarysection}[2][]{\subsection*{Summary}}% - 
    } -
    -

    which will start the list with a subsection header with the title “Summary” +  \renewcommand*{\glossarysection}[2][]{\subsection*{Summary}}% +} + +

    which will start the list with a subsection header with the title “Summary” (overriding the glossary’s title). -

    Note that this shortcut command is only available with the

    Note that this shortcut command is only available with the record (or record=alsoindex=hybrid) package option. -

    This temporary change in the hypertarget prefix means you need to explicitly use +

    This temporary change in the hypertarget prefix means you need to explicitly use \hyperlink to create a link to it as commands like \gls will try to link to the target @@ -22004,12 +22753,12 @@ the front or back matter) which can be the target for all glossary references an just use \printunsrtglossaryunit for a quick summary at the start of a section etc. -

    +

    -

    Top

    10.3 Partial Glossaries

    -

    It’s possible that you may require greater customisation over the way the glossary is +

    It’s possible that you may require greater customisation over the way the glossary is displayed that can’t be simply achieved with the hooks or glossary styles. This section describes a command and environment provided to assist with this, but note that they aren’t compatible with tabular-like glossary styles, such as glossary-list package). -

    To get a better understanding of how this works, it’s useful to consider how a +

    To get a better understanding of how this works, it’s useful to consider how a glossary with makeindex works. Here’s a simple example docume

    -
    +
     \documentclass{article}
    - 
    \usepackage{glossaries} - 
    \makeglossaries - 
    \newglossaryentry{cabbage}{name={cabbage}, - 
     description={vegetable with thick green or purple leaves}} - 
    \newglossaryentry{broccoli}{name={broccoli}, - 
     description={vegetable with heads of small green or purple flower buds}} - 
    \begin{document} - 
    \Gls{cabbage} and \gls{broccoli}. - 
    \printglossary - 
    \end{document} -
    -

    When the document is built, +

    When the document is built, makeindex creates a file that contains:

    @@ -22095,7 +22844,7 @@ class="cmtt-10">\end{theglossary}\glossarypostamble The \printglossary command defines the commands shown above after it’s detected the glossary type, the title and style. It then inputs the file. -

    The

    The \printunsrtglossary command performs the same preliminary setup but there’s no file to input. Instead it then does the section heading (\glossarysection) @@ -22105,7 +22854,7 @@ class="cmtt-10">\glossarypreamble) and constructs a control sequence that class="cmtt-10">\begin{theglossary} ⟨content\end{theglossary}. -

    The letter group markup (

    The letter group markup (\glsgroupheading and \glsgroupskip) is inserted whenever the group label changes between top-level entries. In this case, ⟨\glossentry or \subglossentry). -



    \begin{printunsrtglossarywrap}[options]
    content\end{printunsrtglossarywrap}

    -

    +

    The printunsrtglossarywrap\printunsrtglossary, but note that in this case the type key simply provides the glossary title and doesn’t identify the content. -

    This environment essentially does:

    +

    This environment essentially does:

    initialtheglossary\glossentry and \subglossentry. -

    Whilst it is possible to explicitly use the commands that create letter group +

    Whilst it is possible to explicitly use the commands that create letter group headings and the handler within ⟨content⟩, it would be quite laborious and prone to error to do so for anything other than a very short list. This can be illustrated with @@ -22203,24 +22952,24 @@ the following silly example:

    -
    +
     \begin{printunsrtglossarywrap}[style=indexgroup]%
    - 
    \glsgroupheading{W}% - 
    \gdef\glscurrententrylabel{cabbage}% - 
    \printunsrtglossaryhandler\glscurrententrylabel - 
    \glsgroupskip - 
    \glsgroupheading{Z}% - 
    \gdef\glscurrententrylabel{broccoli}% - 
    \printunsrtglossaryhandler\glscurrententrylabel - 
    \end{printunsrtglossarywrap} -
    -

    This trivial example will work with a tabular-like style, such as +

    This trivial example will work with a tabular-like style, such as long (although the group headings will be ignored). A more practical example that uses a loop within ⟨content⟩ won’t. -



    \printunsrtinnerglossary[pre-code}{post-code}

    -

    +

    This command is provided for use within printunsrtglossarywrapnumberedsection and label. -

    This will do:

    +

    This will do:

     \begingroup @@ -22287,25 +23036,25 @@ insert within the theglossary environment. -

    For example: +

    For example:

    -
    +
     \begin{printunsrtglossarywrap}[style=indexgroup]
    - 
    \printunsrtinnerglossary[type=main]{}{} - 
    \end{printunsrtglossarywrap} -
    -

    This produces a result very similar to that obtained with just: +\printunsrtinnerglossary[type=main]{}{} +\end{printunsrtglossarywrap} + +

    This produces a result very similar to that obtained with just:

    -
    +
     \printunsrtglossary[style=indexgroup,type=main]
    -
    -

    The first case is unsuitable for use with a tabular-style. It will also cause a + +

    The first case is unsuitable for use with a tabular-style. It will also cause a problem with a list style when used with bib2gls (where the inner content will be empty on the first LaTeX run which will cause a missing \item error). -

    This partial glossary command is more useful when you need to apply filtering +

    This partial glossary command is more useful when you need to apply filtering (which can be set up in the ⟨pre-code⟩ argument as in \printunsrtglossary*) or if @@ -22322,47 +23071,47 @@ you have multiple glossaries. For example:

    -
    +
     \begin{printunsrtglossarywrap}[style=list]
    - 
    \item[Animals] - 
    \printunsrtinnerglossary[type=animal]{}{} - 
    \item[Vegetables] - 
    \printunsrtinnerglossary[type=vegetable]{}{} - 
    \item[Minerals] - 
    \printunsrtinnerglossary[type=mineral]{}{} - 
    \end{printunsrtglossarywrap} -
    -

    In this case, the +

    In this case, the list style doesn’t cause a problem as there will be three instances of \item on the first LaTeX run. -

    Here’s another example: +

    Here’s another example:

    -
    +
     \begin{printunsrtglossarywrap}[style=indexgroup]
    - 
    \glsgroupheading{animal}% - 
    \printunsrtinnerglossary[type=animal]{}{} - 
    \glsgroupskip - 
    \glsgroupheading{vegetable}% - 
    \printunsrtinnerglossary[type=vegetable]{}{} - 
    \glsgroupskip - 
    \glsgroupheading{mineral}% - 
    \printunsrtinnerglossary[type=mineral]{}{} - 
    \end{printunsrtglossarywrap} -
    -

    Note that in both of the above cases, the inner glossaries have been arranged +\glsgroupheading{animal}% +\printunsrtinnerglossary[type=animal]{}{} +\glsgroupskip +\glsgroupheading{vegetable}% +\printunsrtinnerglossary[type=vegetable]{}{} +\glsgroupskip +\glsgroupheading{mineral}% +\printunsrtinnerglossary[type=mineral]{}{} +\end{printunsrtglossarywrap} + +

    Note that in both of the above cases, the inner glossaries have been arranged manually (animal, then vegetable and then mineral). -

    It’s also possible to use

    It’s also possible to use \printunsrtinnerglossary within the handler function used by \printunsrtglossary. The internal scoping within \printunsrtinnerglossary helps to reduce interference. -

    This is a rather more complicated example that requires

    This is a rather more complicated example that requires bib2gls. Suppose I have @@ -22372,37 +23121,37 @@ class="cmtt-10">topictitles.bib that contains:

    -
    +
     @indexplural{animal}
    - 
    @indexplural{mineral} - 
    @indexplural{vegetable} -
    -

    And also a file called +

    And also a file called topics.bib that contains entries like:

    -
    +
     @entry{zebra,
    - 
      name={zebra}, - 
      description={striped African horse}, - 
      category={animal} - 
    } - 
    @entry{broccoli, - 
      name={broccoli}, - 
      description={vegetable with heads of small green or purple flower buds}, - 
      category={vegetable} - 
    } - 
    @entry{quartz, - 
      name={quartz}, - 
      description={hard mineral consisting of silica}, - 
      category={mineral} - 
    } -
    -

    Note that the category labels in the second file match the entry labels in the first +  name={zebra}, +  description={striped African horse}, +  category={animal} +} +@entry{broccoli, +  name={broccoli}, +  description={vegetable with heads of small green or purple flower buds}, +  category={vegetable} +} +@entry{quartz, +  name={quartz}, +  description={hard mineral consisting of silica}, +  category={mineral} +} + +

    Note that the category labels in the second file match the entry labels in the first file. -

    The simplest way of creating a hierarchical glossary from this data is to input +

    The simplest way of creating a hierarchical glossary from this data is to input both files and copy the category field to the parent -

    -

    The glossary can then simply be displayed with: + replicate-fields={category=parent}] + +

    The glossary can then simply be displayed with:

    -
    +
     \printunsrtglossary[style=indexgroup]
    -
    -

    This will now be ordered: animal (followed by animal child entries), mineral + +

    This will now be ordered: animal (followed by animal child entries), mineral (followed by mineral child entries), vegetable (followed by vegetable child entries). -

    Suppose (for some strange reason) that I now need the ordering to be vegetable, +

    Suppose (for some strange reason) that I now need the ordering to be vegetable, mineral, animal (that is, reverse alphabetical) but the child entries still need to be in the normal alphabetical order. -

    It’s not possible to use different sort methods for different hierarchical levels with +

    It’s not possible to use different sort methods for different hierarchical levels with bib2gls, but it is possible to simulate it. -

    Instead of making the entries within

    Instead of making the entries within topics.bib children of the entries defined in topictitles.bib, I’m now going to create separate glossaries for each @@ -22444,30 +23193,30 @@ type:

    -
    +
     \newignoredglossary*{animal}
    - 
    \newignoredglossary*{mineral} - 
    \newignoredglossary*{vegetable} -
    -

    The entries in +

    The entries in topictitles.bib go in the default main glossary and are sorted in reverse:

    -
    +
     \GlsXtrLoadResources[src=topictitles,type=main,selection=all,
    - 
     sort=en-GB-reverse] -
    -

    Note that I’ve selected all entries in this example. It becomes more complicated with + sort=en-GB-reverse] + +

    Note that I’ve selected all entries in this example. It becomes more complicated with the default selection criteria. (See the sample-nested.tex example provided with bib2gls v2.3+.) -

    Now the entries in

    Now the entries in topics.bib are selected but the type field is set to the -

    +
     \GlsXtrLoadResources[src=topics,type={same as category},selection=all,
    - 
     sort=en-GB] -
    -

    The aim here is to use +

    The aim here is to use \printunsrtglossary to list all the entries in the main glossary (that is, all the topic titles) and use a handler that tests if there is a glossary that has the same label as the current entry label. If one exists, it’s then listed using @@ -22493,21 +23242,21 @@ appearance:

    -
    +
     \newcommand{\nestedhandler}[1]{%
    - 
      \glsxtrunsrtdo{#1}% - 
      \ifglossaryexists*{#1}% - 
      {% - 
        \printunsrtinnerglossary[type={#1},leveloffset=++1]{}{}% - 
      }% - 
      {}% - 
    } - 
    \printunsrtglossary*[type=main,style=index]{% - 
      \let\printunsrtglossaryhandler\nestedhandler - 
    } -
    -

    -

    I’ve used +

    +

    I’ve used \newignoredglossary* as I don’t need to specify a title for any of those glossaries nor do I need to use those glossaries with \printunsrtglossaries. With @@ -22524,12 +23273,12 @@ any unknown glossaries (with \provideignoredglossary) in the .glstex file. -

    +

    -

    Top

    10.4 Standalone Entry Items

    -

    It may be that you don’t want a list but would rather display entry details +

    It may be that you don’t want a list but would rather display entry details throughout the document. You can simply do \glsentryname followed by -

    +
     \newcommand{\displayterm}[1]{%
    - 
     \par\medskip\par\noindent - 
     Definition: \glsentryname{#1}.\par - 
     \glsentrydesc{#1} - 
     \par\medskip - 
    } -
    -

    define your entries + \par\medskip\par\noindent + Definition: \glsentryname{#1}.\par + \glsentrydesc{#1} + \par\medskip +} + +

    define your entries

    -
    +
     \newglossaryentry{function}{name={function},
    - 
      description={a relation or expression involving variables} - 
    } -
    -

    and then later in the text: +  description={a relation or expression involving variables} +} + +

    and then later in the text:

    -
    +
     \displayterm{function}
    -
    -

    -

    However, if may be that you want to use +

    +

    However, if may be that you want to use hyperref and have commands like \gls link back to the place where the term is described. Instead of using \glsentryname use -



    \glsxtrglossentry{label}

    -

    +

    where ⟨label⟩ is the entry’s label. -

    This is designed to behave much like the way the name is displayed in the +

    This is designed to behave much like the way the name is displayed in the glossary. It performs the following:

      -
    • Defines +

      Defines \glscurrententrylabel to the entry’s label. This is usually done at the start of the glossary style commands \glossentry and @@ -22600,8 +23350,9 @@ class="cmtt-10">\subglossentry and may be used by hooks, such as hooks. Here the definition is localised so that it’s only available for use in \glossentryname. -

    • -
    • Defines
    • +
    • +

      Defines \currentglossary to the entry’s glossary type. This is usually done at the start of commands like \printglossary and may be used by style hooks. @@ -22610,31 +23361,37 @@ class="cmtt-10">\printglossary and may be used by style hooks. class="cmtt-10">\glsentryitem and \glssubentryitem. The value is obtained by fully expanding: -



      \GlsXtrStandaloneGlossaryType

      -

      +

      which defaults to the value of the type field for the current entry.

    • -
    • Increments and display the entry counters if the +

      Increments and display the entry counters if the entrycounter or subentrycounter - package options are set. If the entry doesn’t have a parent, then this - does + package options are set. If the entry doesn’t have a parent, then this does +

        -
      • +

        \glsentryitem{label}

      -

      otherwise it does (as from v1.31)

      +class="cmtt-10">}

    +

    otherwise it does (as from v1.31)

    + + +
      -
    • +

      \GlsXtrStandaloneSubEntryItem } which defaults to \glssubentryitem{label} if the entry has - a parent but not a grandparent.

    - - - -

    This reflects the behaviour of the predefined hierarchical styles. A bug in + a parent but not a grandparent.

    +

    This reflects the behaviour of the predefined hierarchical styles. A bug in pre-version 1.31 used \glsentryitem for all child levels, which doesn’t match the hierarchical glossary styles. If you want to restore this behaviour, just @@ -22657,20 +23411,21 @@ class="cmtt-10">\glsentryitem for all child levels, which doesn’t m

    -
    +
          \renewcommand*{\GlsXtrStandaloneSubEntryItem}[1]{\glssubentryitem{#1}}
    -
    -

    + +

    -
  • Sets the hyper-target if supported (using +

    Sets the hyper-target if supported (using \glstarget) and displays the entry name using: -



    \GlsXtrStandaloneEntryName{label}

    -

    +

    which uses \glstarget{label\glsnamefont or picks up the style href="#catattr.glossnamefont">glossnamefont.

  • -

    If you have used

    If you have used \nopostdesc or \glsxtrnopostpunc in any of your description fields, you can use -



    \glsxtractivatenopost

    -

    +

    to make these commands behave as they normally do within a glossary. This needs to be placed before

    @@ -22709,10 +23464,10 @@ class="cmtt-10">}\glspostdescription class="cmtt-10">\glsnonextpages and \glsnextpages have no effect outside of the glossary and are not intended for use in a standalone context. -

    It’s also possible to select a different field (rather than using

    It’s also possible to select a different field (rather than using name): -



    \glsxtrglossentryother{headerlabel}{field}

    -

    +

    The ⟨field⟩ must be given using its internal field label which may not be the same as the key used to set the field. See the key to field mappings table in the header⟩ argument is the code to pass to the third class="cmtt-10">\glsxtrtitleorpdforheading. It may be left empty in which case the default is determined as follows:

      -
    • If +

      If \glsxtrheadfield⟩ is defined, then ⟨header⟩ is field⟩ class="cmtt-10">{⟨label}. -

    • -
    • Otherwise ⟨header⟩ is simply the field value.
    -

    The +

  • +

    Otherwise ⟨header⟩ is simply the field value.

  • +

    The \glsxtrglossentryother command internally uses -



    \GlsXtrStandaloneEntryOther{label}{field}

    -

    +

    instead of \GlsXtrStandaloneEntryName, which uses \glossentrynameother{} instead of \glossentryname{label}. -

    If you have loaded the

    If you have loaded the glossaries-accsupp package (through the }

    (for example, \glssymbolaccessdisplay). -

    This means that my custom command can be changed to: +

    This means that my custom command can be changed to:

    -
    +
     \newcommand{\displayterm}[1]{%
    - 
     \par\medskip\par\noindent - 
     Definition: \glsxtrglossentry{#1}.\par - 
     \glsentrydesc{#1} - 
     \par\medskip - 
    } -
    -

    If I want numbered definitions, then I can use the package options +

    If I want numbered definitions, then I can use the package options entrycounter or subentrycounter -

    -

    The counter label uses a dot after the number by default but this can be changed to + \par\medskip\par\noindent + Definition \glsxtrglossentry{#1}.\par + \glsentrydesc{#1} + \par\medskip +} + +

    The counter label uses a dot after the number by default but this can be changed to a colon:

    -
    +
     \renewcommand*{\glsentrycounterlabel}{\theglossaryentry:\space}
    -
    -

    It’s now possible to not only use +

    It’s now possible to not only use \gls to link back to the definition but also use \glsrefentry to reference the counter and \glsxtrpageref to reference the page number. -

    If I want the description to behave more like it does in a glossary in need to make +

    If I want the description to behave more like it does in a glossary in need to make the following modification:

    -
    +
     \newcommand{\displayterm}[1]{%
    - 
     \par\medskip\par\noindent - 
     Definition \glsxtrglossentry{#1}.\par - 
     \begingroup - 
      \glsxtractivatenopost - 
      \glossentrydesc{#1}\glspostdescription - 
     \endgroup - 
     \par\medskip - 
    } -
    -

    (Note the grouping to localise +

    (Note the grouping to localise \glsxtractivatenopost.) -

    You can also use

    You can also use \glsxtrglossentry within section headings. For example:

    -
    +
     \section{\glsxtrglossentry{function}}
    -
    -

    This will use +

    This will use \glsentryname in PDF bookmarks (if \texorpdfstring is defined) and will use \@glsxtrnotinmark and \glsxtrrestoremarkhook.) -

    +

    -

    Top

    10.5 Entry Aliases

    -

    An entry can be made an alias of another entry using the

    An entry can be made an alias of another entry using the alias key. The value should be the label of the other term. There’s no check for the other’s @@ -22895,17 +23652,18 @@ defining the other entry after the aliased entry. (For example, when used with id="dx1-56002">bib2gls.) -

    If an entry ⟨

    If an entry ⟨entry-1⟩ is made an alias of ⟨entry-2⟩ then:

      -
    • If the +

      If the see field wasn’t provided when ⟨entry-1⟩ was defined, the alias key will - automatically trigger

      + automatically trigger

      \glssee{}
    • -
    • If the +

      If the hyperref package has been loaded then \gls{targeturl attribute has been set for ⟨entry-1⟩’s category.) -

    • -
    • With
    • +
    • + + + +

      With record=off or record=alsoindex=hybrid, the noindex setting will automatically @@ -22955,23 +23718,22 @@ class="cmtt-10">\glssee) unless it’s been explicitly class="cmtt-10">\glsadd or if the indexing has been explicitly set using noindex=false. - - - -

      Note that with

      Note that with record=only, the location list for aliased entries is controlled + id="dx1-56012">location list for aliased entries is controlled with bib2gls’s settings.

    -

    The index suppression trigger is performed by -


    bib2gls’s settings.

    +

    The index suppression trigger is performed by +


    \glsxtrsetaliasnoindex

    -

    +

    This is performed after the default options provided by \GlsXtrSetDefaultGlsOpts @@ -22982,45 +23744,45 @@ class="cmss-10">=only, \glsxtrsetaliasnoindex will default to do nothing. -

    Within the definition of

    Within the definition of \glsxtrsetaliasnoindex you can use -



    \glsxtrindexaliased

    -

    +

    to index ⟨entry-2⟩. -

    The index suppression command can be redefined to index the main term instead. +

    The index suppression command can be redefined to index the main term instead. For example:

    -
    +
     \renewcommand{\glsxtrsetaliasnoindex}{%
    - 
     \glsxtrindexaliased - 
     \setkeys{glslink}{noindex}% - 
    } -
    -

    -

    The value of the +

    +

    The value of the alias field can be accessed using -



    \glsxtralias{label}

    -

    +

    -

    -

    +

    Top

    11. On-the-Fly Document Definitions

    -

    The commands described here may superficially look like ⟨

    The commands described here may superficially look like ⟨word\index{word\index then just use \index.
    -

    -

    The

    +

    The glossaries package advises against defining entries in the document environment. As mentioned in §1.2 New or Modified Package Options above, this -ability is disabled by default with glossaries-extra but can be enabled using the -§??sec:pkgopts New or Modified Package Options +above, this ability is disabled by default with glossaries-extra but can be enabled using +the docdefs package options. -

    Although this can be problematic, the

    Although this can be problematic, the glossaries-extra package provides a way of defining and using entries within the documentdocdefsThere are limitations with this approach, so take care with it. This function is disabled by default, but can be enabled using the preamble-only command: -



    \GlsXtrEnableOnTheFly

    -

    +

    When used, this defines the commands described below. -

    The commands

    The commands \glsxtr, \glsxtrpl, \Glsxtr and \printglossary\gls or there may be unexpected results.
    -

    -


    +


    \glsxtr[gls-optionsdfn-options]{label}

    -

    +

    If an entry with the label ⟨label⟩ has already been defined, this just does \gls @@ -23119,7 +23882,7 @@ class="cmitt-10">dfn-options⟩}

    -

    The ⟨

    The ⟨label⟩ must contain any non-expandable commands, such as formatting commands or problematic characters. If the term requires any of these, they must be omitted from the ⟨name key must be provided in the optional argument ⟨dfn-options⟩.
    -

    +

    -

    The second optional argument ⟨

    The second optional argument ⟨dfn-options⟩ should be empty if the entry has already been defined, since it’s too late for them. If it’s not empty, a warning will be generated with -



    \GlsXtrWarning{dfn-options}{label}

    -

    -

    For example, this warning will be generated on the second instance of

    +

    For example, this warning will be generated on the second instance of \glsxtr below:

    -
    +
     \glsxtr[][plural=geese]{goose}
    - 
     ... later - 
    \glsxtr[][plural=geese]{goose} -
    -

    -

    If you are considering doing something like: + ... later +\glsxtr[][plural=geese]{goose} + +

    +

    If you are considering doing something like:

    -
    +
     \newcommand*{\goose}{\glsxtr[][plural=geese]{goose}}
    - 
    \renewcommand*{\GlsXtrWarning}[2]{} - 
     ... later - 
    \goose\ some more text here -
    -

    then don’t bother. It’s simpler and less problematic to just define the entries in the +\renewcommand*{\GlsXtrWarning}[2]{} + ... later +\goose\ some more text here + +

    then don’t bother. It’s simpler and less problematic to just define the entries in the preamble with \newglossaryentry and then use \gls in the document. -

    There are plural and case-changing alternatives to

    There are plural and case-changing alternatives to \glsxtr: -



    \glsxtrpl[gls-optionsdfn-options]{label}

    -

    +

    This is like \glsxtr but uses \glspl instead of \gls. -



    \Glsxtr[gls-optionsdfn-options]{label}

    -

    +

    This is like \glsxtr but uses \Gls instead of \gls. -



    \Glsxtrpl[gls-optionsdfn-options]{label}

    -

    +

    This is like \glsxtr but uses \Glspl instead of \gls. -

    If you use UTF-8 and don’t want the inconvenient of needing to use an +

    If you use UTF-8 and don’t want the inconvenient of needing to use an ASCII-only label, then it’s better to use XƎLATEX or LuaLATEX instead of LaTeX (or pdfLATEX). If you really desperately want to use UTF-8 entry labels without switching to XƎLATEX or LuaLATEX then there is a starred version of @@ -23225,20 +23988,20 @@ without switching to X\GlsXtrEnableOnTheFly that allows you to use UTF-8 characters in ⟨label⟩, but it’s experimental and may not work in some cases. -

    If you use the starred version of

    If you use the starred version of \GlsXtrEnableOnTheFly don’t use any commands in the ⟨label⟩, even if they expand to just text.
    -

    +

    -

    -

    +

    Top

    12. Supplemental Packages

    -

    The

    The glossaries bundle provides additional support packages glossaries-prefix (for @@ -23247,10 +24010,10 @@ class="cmss-10">glossaries-accsupp (for accessibility support). These packages aren’t automatically loaded.

    -

    Top

    12.1 Prefixes or Determiners

    -

    If prefixing is required, you can simply load

    If prefixing is required, you can simply load glossaries-prefix after glossaries-extra. For @@ -23259,33 +24022,33 @@ example:

    -
    +
     \documentclass{article}
    - 
    \usepackage{glossaries-extra} - 
    \usepackage{glossaries-prefix} - 
    \makeglossaries - 
    \newabbreviation - 
     [prefix={an\space}, - 
     prefixfirst={a~}] - 
     {svm}{SVM}{support vector machine} - 
    \begin{document} - 
    First use: \pgls{svm}. - 
    Next use: \pgls{svm}. - 
    \printglossaries - 
    \end{document} -
    -

    -

    -

    -

    +

    +

    +

    +

    Top

    12.2 Accessibility Support

    -

    The

    The glossaries-accsupp package is still experimental and so accessibility features are liable to change.
    -

    -

    The

    +

    The glossaries-accsupp package needs to be loaded before glossaries-extra or through @@ -23297,10 +24060,10 @@ class="cmss-10">accsupp -

    -

    If you don’t load +

    If you don’t load glossaries-accsupp or you load glossaries-accsupp\newabbreviationglossaries-accsupp is loaded too late. -

    The following

    The following \glsaccessxxx⟩ commands add accessibility information wrapped around the corresponding \glsentryxxx⟩ commands. There is no check for existence of the entry nor do any of these commands add formatting, hyperlinks or indexing information. -



    \glsaccessname{label}

    -

    +

    This displays the value of the name field for the entry identified by ⟨label⟩. -

    If the

    If the glossaries-accsupp package isn’t loaded, this is simply defined as:

    -
    +
     \newcommand*{\glsaccessname}[1]{\glsentryname{#1}}
    -
    -

    otherwise it’s defined as: + +

    otherwise it’s defined as:

    -
    +
     \newcommand*{\glsaccessname}[1]{%
    - 
      \glsnameaccessdisplay - 
      {% - 
        \glsentryname{#1}% - 
      }% - 
      {#1}% - 
    } -
    -

    ( +

    (\glsnameaccessdisplay is defined by the glossaries-accsupp package.) The first letter upper case version is: -



    \Glsaccessname{label}

    -

    +

    Without the glossaries-accsupp package this is just defined as: @@ -23379,113 +24142,113 @@ class="cmss-10">glossaries-accsupp -

    -

    With the +

    With the glossaries-accsupp package this is defined as:

    -
    +
     \newcommand*{\Glsaccessname}[1]{%
    - 
      \glsnameaccessdisplay - 
      {% - 
        \Glsentryname{#1}% - 
      }% - 
      {#1}% - 
    } -
    -

    -

    The following commands are all defined in an analogous manner. -


    +

    +

    The following commands are all defined in an analogous manner. +


    \glsaccesstext{label}

    -

    +

    This displays the value of the text field. -



    \Glsaccesstext{label}

    -

    +

    This displays the value of the text field with the first letter converted to upper case. -



    \glsaccessplural{label}

    -

    +

    This displays the value of the plural field. -



    \Glsaccessplural{label}

    -

    +

    This displays the value of the plural field with the first letter converted to upper case. -



    \glsaccessfirst{label}

    -

    +

    This displays the value of the first field. -



    \Glsaccessfirst{label}

    -

    +

    This displays the value of the first field with the first letter converted to upper case. -



    \glsaccessfirstplural{label}

    -

    +

    This displays the value of the firstplural field. -



    \Glsaccessfirstplural{label}

    -

    +

    This displays the value of the firstplural field with the first letter converted to upper case. -



    \glsaccesssymbol{label}

    -

    +

    This displays the value of the symbol field. -



    \Glsaccesssymbol{label}

    -

    +

    This displays the value of the symbol field with the first letter converted to upper case. -



    \glsaccesssymbolplural{label}

    -

    +

    This displays the value of the symbolplural field. -



    \Glsaccesssymbolplural{label}

    -

    +

    This displays the value of the symbolplural field with the first letter converted to upper case. -



    \glsaccessdesc{label}

    -

    +

    This displays the value of the description field. -



    \Glsaccessdesc{label}

    -

    +

    This displays the value of the description field with the first letter converted to upper case. -



    \glsaccessdescplural{label}

    -

    +

    This displays the value of the descriptionplural field. -



    \Glsaccessdescplural{label}

    -

    +

    This displays the value of the descriptionplural field with the first letter converted to upper case. -



    \glsaccessshort{label}

    -

    +

    This displays the value of the short field. -



    \Glsaccessshort{label}

    -

    +

    This displays the value of the short field with the first letter converted to upper case. -



    \glsaccessshortpl{label}

    -

    +

    This displays the value of the shortplural field. -



    \Glsaccessshortpl{label}

    -

    +

    This displays the value of the shortplural field with the first letter converted to upper case. -



    \glsaccesslong{label}

    -

    +

    This displays the value of the long field. -



    \Glsaccesslong{label}

    -

    +

    This displays the value of the long field with the first letter converted to upper case. -



    \glsaccesslongpl{label}

    -

    +

    This displays the value of the longplural field. -



    \Glsaccesslongpl{label}

    -

    +

    This displays the value of the longplural field with the first letter converted to upper @@ -23638,307 +24401,390 @@ case.

    -

    -

    +

    Top

    13. Sample Files

    -

    The following sample files are provided with this package: +

    The following sample files are provided with this package:

    +

    sample.tex

    Simple sample file that uses one of the dummy files provided by - the sample.tex

    +

    Simple sample file that uses one of the dummy files provided by the + glossaries package for testing. -

    +

    +

    sample-abbr-styles.tex

    Demonstrates all predefined abbreviation styles. -
    +class="cmbx-10">sample-abbr-styles.tex

    +

    Demonstrates all predefined abbreviation styles. +

    +

    sample-mixture.tex

    General entries, acronyms and initialisms all treated - differently. -
    +class="cmbx-10">sample-mixture.tex

    +

    General entries, acronyms and initialisms all treated differently. +

    +

    sample-name-font

    Categories and attributes are used to customize the way - different entries appear. -
    +class="cmbx-10">sample-name-font

    +

    Categories and attributes are used to customize the way different entries + appear. +

    +

    sample-abbrv.tex

    General abbreviations. -
    +class="cmbx-10">sample-abbrv.tex

    +

    General abbreviations. +

    +

    sample-acronym.tex

    Acronyms aren’t initialisms and don’t expand on sample-acronym.tex

    +

    Acronyms aren’t initialisms and don’t expand on first - use. -

    +href="#glo:firstuse">first use. +

    +

    sample-acronym-desc.tex

    Acronyms that have a separate long form and - description. -
    +class="cmbx-10">sample-acronym-desc.tex

    +

    Acronyms that have a separate long form and description. +

    +

    sample-crossref.tex

    Unused entries that have been cross-referenced - automatically are added at the end of the document. -
    +class="cmbx-10">sample-crossref.tex

    + + + +

    Unused entries that have been cross-referenced automatically are added + at the end of the document. +

    +

    sample-indexhook.tex

    Use the index hook to track which entries have been - indexed (and therefore find out which ones haven’t been indexed). -
    +class="cmbx-10">sample-indexhook.tex

    +

    Use the index hook to track which entries have been indexed (and therefore + find out which ones haven’t been indexed). +

    +

    sample-footnote.tex

    Footnote abbreviation style that moves the footnote - marker outside of the hyperlink generated by \gls and moves it after - certain punctuation characters for neatness. -
    +class="cmbx-10">sample-footnote.tex

    +

    Footnote abbreviation style that moves the footnote marker outside of + the hyperlink generated by \gls and moves it after certain punctuation + characters for neatness. +

    +

    sample-undef.tex

    Warn on undefined entries instead of generating an error. -
    +class="cmbx-10">sample-undef.tex

    +

    Warn on undefined entries instead of generating an error. +

    +

    sample-mixed-abbrv-styles.tex

    Different abbreviation styles for different - entries. - - - -
    +class="cmbx-10">sample-mixed-abbrv-styles.tex

    +

    Different abbreviation styles for different entries. +

    +

    sample-initialisms.tex

    Automatically insert dots into initialisms. -
    +class="cmbx-10">sample-initialisms.tex

    +

    Automatically insert dots into initialisms. +

    +

    sample-postdot.tex

    Another initialisms example. -
    +class="cmbx-10">sample-postdot.tex

    +

    Another initialisms example. +

    +

    sample-postlink.tex

    Automatically inserting text after the sample-postlink.tex

    +

    Automatically inserting text after the link-text - produced by commands like link-text produced by commands + like \gls (outside of hyperlink, if present). -

    +

    + + + +

    sample-header.tex

    Using entries in section/chapter headings. -
    +class="cmbx-10">sample-header.tex

    +

    Using entries in section/chapter headings. +

    +

    sample-autoindex.tex

    Using the sample-autoindex.tex

    +

    Using the dualindex and indexname attributes to - automatically add glossary entries to the index (in addition to the glossary - attributes to automatically add + glossary entries to the index (in addition to the glossary location list). -

    +

    +

    sample-autoindex-hyp.tex

    As previous but uses sample-autoindex-hyp.tex

    +

    As previous but uses hyperref. -

    +

    +

    sample-nested.tex

    Using sample-nested.tex

    +

    Using \gls within the value of the name key. -

    +

    +

    sample-entrycount.tex

    Enable entry-use counting (only index if used more - than n times, see sample-entrycount.tex

    +

    Enable entry-use counting (only index if used more than n times, see + §7.1 §??sec:entrycount Entry Counting (First Use Flag)). -

    +

    +

    sample-unitentrycount.tex

    Enable use of per-unit entry-use counting (sample-unitentrycount.tex

    +

    Enable use of per-unit entry-use counting (§7.1 - Entry Counting (First Use Flag)). -

    +class="tcrm-1000">§??sec:entrycount Entry + Counting (First Use Flag)). +

    +

    sample-onelink.tex

    Using the per-unit entry counting (sample-onelink.tex

    +

    Using the per-unit entry counting (§7.1 Entry Counting +class="tcrm-1000">§??sec:entrycount Entry Counting (First Use Flag)) to only have one hyperlink per entry per page. -

    +

    +

    sample-linkcount.tex

    Using link counting (sample-linkcount.tex

    +

    Using link counting (§7.2 Link Counting) to only have - one hyperlink per entry. -

    +class="tcrm-1000">§??sec:linkcount Link Counting) to only have one + hyperlink per entry. + + + +

    +

    sample-pages.tex

    Insert “page” or “pages” before the location list. -
    +class="cmbx-10">sample-pages.tex

    +

    Insert “page” or “pages” before the location list. +

    +

    sample-altmodifier.tex

    Set the default options for commands like \gls and - add an alternative modifier. -
    +class="cmbx-10">sample-altmodifier.tex

    +

    Set the default options for commands like \gls and add an alternative + modifier. +

    +

    sample-mixedsort.tex

    Uses the optional argument of \makeglossaries to - allow a mixture of sample-mixedsort.tex

    +

    Uses the optional argument of \makeglossaries to allow a mixture of + \printglossary and \printnoidxglossary. - - - -

    +

    +

    sample-external.tex

    Uses the sample-external.tex

    +

    Uses the targeturl attribute to allow for entries that - should link to an external URL rather than to an internal glossary. -

    + id="dx1-61009"> attribute to allow for entries that should link to an + external URL rather than to an internal glossary. +

    +

    sample-fmt.tex

    Provides text-block commands associated with entries in - order to use sample-fmt.tex

    +

    Provides text-block commands associated with entries in order to use + \glsxtrfmt. -

    +

    +

    sample-alias.tex

    Uses the sample-alias.tex

    +

    Uses the alias key. (See §10.5 §??sec:alias Entry Aliases.) -

    +

    +

    sample-alttree.tex

    Uses the sample-alttree.tex

    +

    Uses the glossaries-extra-stylemods package with the package with the alttree - style (see style (see + §2.10.1 §??sec:stylemods The glossaries-extra-stylemods Package). -

    +

    +

    sample-alttree-sym.tex

    Another sample-alttree-sym.tex

    + + + +

    Another alttree example that measures the symbol - widths. -

    + id="dx1-61013"> example that measures the symbol widths. +

    +

    sample-alttree-marginpar.tex

    Another sample-alttree-marginpar.tex

    +

    Another alttree example that puts the - example that puts the number list in the margin. -

    +

    +

    sample-onthefly.tex

    Using on-the-fly commands. Terms with accents must - have the sample-onthefly.tex

    +

    Using on-the-fly commands. Terms with accents must have the name key explicitly set. -

    + id="dx1-61016"> key + explicitly set. +

    +

    sample-onthefly-xetex.tex

    Using on-the-fly commands with XƎLATEX. - Terms with UTF-8 characters don’t need to have the sample-onthefly-xetex.tex

    +

    Using on-the-fly commands with XƎLATEX. Terms with UTF-8 characters + don’t need to have the name key explicitly - set. Terms that contain commands must have the key explicitly set. Terms that contain + commands must have the name key explicitly set - with the commands removed from the label. -

    + id="dx1-61018"> key explicitly set with the commands + removed from the label. +

    +

    sample-onthefly-utf8.tex

    Tries to emulate the previous sample file for use - with LaTeX through the starred version of sample-onthefly-utf8.tex

    +

    Tries to emulate the previous sample file for use with LaTeX through the + starred version of \GlsXtrEnableOnTheFly. - This is a bit iffy and may not always work. Terms that contain commands - must have the . This is a bit iffy and may + not always work. Terms that contain commands must have the name key explicitly set with the commands removed from - the label. -

    + id="dx1-61020"> key + explicitly set with the commands removed from the label. +

    +

    sample-accsupp.tex

    Integrate sample-accsupp.tex

    +

    Integrate glossaries-accsupp. -

    +

    +

    sample-prefix.tex

    Integrate sample-prefix.tex

    +

    Integrate glossaries-prefix. -

    +

    +

    sample-suppl-main.tex

    Uses sample-suppl-main.tex

    +

    Uses thevalue to reference a location in the - supplementary file to reference a location in the supplementary file + sample-suppl.tex. -

    +

    +

    sample-suppl-main-hyp.tex

    A more complicated version to the above that - uses the sample-suppl-main-hyp.tex

    +

    A more complicated version to the above that uses the hyperref package to reference a location in the supplementary file - package + to reference a location in the supplementary file sample-suppl-hyp.tex. +

    -

    -

    +

    Top

    14. Multi-Lingual Support

    -

    There’s only one command provided by

    There’s only one command provided by glossaries-extra that you’re likely to want to change in your document and that’s \abbreviationsname (§1.2 §??sec:pkgopts New or Modified Package Options) if you use the \acronymname (provided by glossaries). -

    You can redefine it in the usual way. For example: +

    You can redefine it in the usual way. For example:

    -
    +
     \renewcommand*{\abbreviationsname}{List of Abbreviations}
    -
    -

    Or using +

    Or using babel or polyglossiapolyglossia -

    -

    -

    Alternatively you can use the +

    +

    Alternatively you can use the title key when you print the list of abbreviations. For example: @@ -23984,21 +24830,21 @@ For example:

    -
    +
     \printabbreviations[title={List of Abbreviations}]
    -
    -

    or + +

    or

    -
    +
     \printglossary[type=abbreviations,title={List of Abbreviations}]
    -
    -

    -

    The other fixed text commands are the diagnostic messages, which shouldn’t + +

    +

    The other fixed text commands are the diagnostic messages, which shouldn’t appear in the final draft of your document. -

    The

    The glossaries-extra package has the facility to load language modules (whose filename is in the form glossariesxtr-Latn, associated with the given dialect. There’s no warning if the associated file isn’t found. The script file is loaded after the dialect file. -

    If you want to write your own language module, you just need to create a file +

    If you want to write your own language module, you just need to create a file called glossariesxtr-langtracklang package). For example, glossariesxtr-french.ldf. -

    The simplest code for this file is: +

    The simplest code for this file is:

    -
    +
     \ProvidesGlossariesExtraLang{french}[2015/12/09 v1.0]
    - 
    \newcommand*{\glossariesxtrcaptionsfrench}{% - 
     \def\abbreviationsname{Abr\'eviations}% - 
    } - 
    \glossariesxtrcaptionsfrench - 
    \ifcsdef{captions\CurrentTrackedDialect} - 
    {% - 
      \csappto{captions\CurrentTrackedDialect}% - 
      {% - 
        \glossariesxtrcaptionsfrench - 
      }% - 
    }% - 
    {% - 
      \ifcsdef{captions\CurrentTrackedLanguage} - 
      {% - 
        \csappto{captions\CurrentTrackedLanguage}% - 
        {% - 
          \glossariesxtrcaptionsfrench - 
        }% - 
      }% - 
      {}% - 
    } -
    -

    -

    You can adapt this for other languages by replacing all instances of the language +\newcommand*{\glossariesxtrcaptionsfrench}{% + \def\abbreviationsname{Abr\'eviations}% +} +\glossariesxtrcaptionsfrench +\ifcsdef{captions\CurrentTrackedDialect} +{% +  \csappto{captions\CurrentTrackedDialect}% +  {% +    \glossariesxtrcaptionsfrench +  }% +}% +{% +  \ifcsdef{captions\CurrentTrackedLanguage} +  {% +    \csappto{captions\CurrentTrackedLanguage}% +    {% +      \glossariesxtrcaptionsfrench +    }% +  }% +  {}% +} + +

    +

    You can adapt this for other languages by replacing all instances of the language identifier french and the translated text Abr\’eviations as appropriate. You can @@ -24071,62 +24917,63 @@ class="cmtt-10">.ldf file to provide rule blocks for a particular languag href="#glo:bib2gls">bib2gls’s custom sort rule. See §9.3 §??sec:bib2glssty The glossaries-extra-bib2gls package for further -details. -

    This glossaries-extra-bib2gls package +for further details. +

    This .ldf file then needs to be put somewhere on TeX’s path so that it can be found by glossaries-extra. You might also want to consider uploading it to CTAN so that it can be useful to others. (Please don’t send it to me. I already have more packages than I am able to maintain.) -

    If you additionally want to provide translations for the diagnostic messages used +

    If you additionally want to provide translations for the diagnostic messages used when a glossary is missing, you need to redefine the following commands: -



    \GlsXtrNoGlsWarningHead{label}{file}

    -

    +

    This produces the following text in English: -

    -

    This document is incomplete. The external file associated with the +

    +

    This document is incomplete. The external file associated with the glossary ‘⟨label⟩’ (which should be called ⟨file⟩) hasn’t been created.

    +class="cmitt-10">file⟩) hasn’t been created.

    -



    \GlsXtrNoGlsWarningEmptyStart

    -

    +

    This produces the following text in English: -

    -

    This has probably happened because there are no entries defined in - this glossary.

    -


    +

    This has probably happened because there are no entries defined in + this glossary.

    +


    \GlsXtrNoGlsWarningEmptyMain

    -

    +

    This produces the following text in English: -

    -

    If you don’t want this glossary, add

    +

    If you don’t want this glossary, add nomain to your package option list when you load glossaries-extra.sty. For example:

    -


    glossaries-extra.sty. For example:

    +


    \GlsXtrNoGlsWarningEmptyNotMain{label}

    -

    +

    This produces the following text in English: -

    -

    Did you forget to use

    +

    Did you forget to use type=label⟩ when you defined your entries? If you tried to load entries into this glossary with label] as the optional argument? If you did, check that the definitions in the file you loaded all had the type set to \glsdefaulttype.

    -


    \glsdefaulttype.

    +


    \GlsXtrNoGlsWarningCheckFile{file}

    -

    +

    This produces the following text in English: -

    -

    Check the contents of the file ⟨

    +

    Check the contents of the file ⟨file⟩. If it’s empty, that means you haven’t indexed any of your entries in this glossary (using commands like \gls or \glsadd) so this list can’t be generated. If the file isn’t - empty, the document build process hasn’t been completed.

    -


    +


    \GlsXtrNoGlsWarningMisMatch

    -

    +

    This produces the following text in English: -

    -

    You need +

    +

    You need to either replace \makenoidxglossaries with \makeglossaries or @@ -24169,44 +25016,44 @@ class="cmtt-10">\printglossaries) with \printnoidxglossary (or \printnoidxglossaries) and then - rebuild this document.

    + rebuild this document.

    -



    \GlsXtrNoGlsWarningNoOut{file}

    -

    +

    This produces the following text in English: -

    -

    The file ⟨

    +

    The file ⟨file⟩ doesn’t exist. This most likely means you haven’t used \makeglossaries or you have used \nofiles. If this is just a draft version of the document, you can suppress this message using the nomissingglstext package option.

    -


    nomissingglstext package option.

    +


    \GlsXtrNoGlsWarningTail

    -

    +

    This produces the following text in English: -

    -

    This message will be removed once the problem has been fixed.

    -


    +

    This message will be removed once the problem has been fixed.

    +


    \GlsXtrNoGlsWarningBuildInfo

    -

    +

    This is advice on how to generate the glossary files. -



    \GlsXtrNoGlsWarningAutoMake{label}

    -

    +

    This is the message produced when the automakeautomake

    See the documented code (

    See the documented code (glossaries-extra-code.pdf) for further details. @@ -24222,6 +25069,7 @@ details.

    @@ -24230,14 +25078,16 @@ details.

    Top

    Glossary

    + id="x1-630001">Glossary
    +

    bib2gls

    A command line Java application that selects entries from a .bib file - and converts them + id="dx1-63001">

    +

    A command line Java application that selects entries from a .bib file and + converts them to glossary definitions (like bibtex but also performs hierarchical sorting and collation, thus omitting the need for makeindex). Further details at: http://www.dickimaw-books.com/software/bib2gls/. -

    +

    +

    entry location

    The location of the entry in the document. This defaults to - the page number on which the entry appears. An entry may have multiple - locations. -
    + id="dx1-63004">

    +

    The location of the entry in the document. This defaults to the page + number on which the entry appears. An entry may have multiple locations. +

    +

    first use

    The first time a glossary entry is used (from the start of the document + id="dx1-63005">

    +

    The first time a glossary entry is used (from the start of the document or after a reset) with one of the following commands: \gls, \GLSpl or \glsdisp. -

    +

    +

    first use flag

    A conditional that determines whether or not the entry has been - used according to the rules of

    +

    A conditional that determines whether or not the entry has been used + according to the rules of first use. -

    +

    +

    first use text

    The text that is displayed on first use, which is governed by the -

    +

    The text that is displayed on first use, which is governed by the first and and + firstplural keys of keys of \newglossaryentry. (May be overridden by - . (May be overridden by \glsdisp.) -

    + + + +

    +

    link-text

    The text produced by commands such as

    +

    The text produced by commands such as \gls. It may or may not - have a hyperlink to the glossary. -

    + id="dx1-63022">. It may or may not have a + hyperlink to the glossary. +

    +

    location list

    A list of

    +

    A list of entry locations. See number list. -

    +

    +

    makeglossaries

    A custom designed Perl script interface provided with the - glossaries package to run xindy or makeindex according to the document - settings. - - - -
    + id="dx1-63026">

    +

    A custom designed Perl script interface provided with the glossaries + package to run xindy or makeindex according to the document settings. +

    +

    makeglossaries-lite

    A custom designed Lua script interface to

    +

    A custom designed Lua script interface to xindy and - xindy and makeindex provided with the glossaries package. This is a cut-down - alternative to the Perl makeglossaries script. If you have Perl installed, - use the Perl script instead. This script is distributed in the source code - on CTAN with the file name makeglossaries-lite.lua but TeX Live - on Unix-like systems creates a symbolic link called makeglossaries-lite - (without the .lua extension) to the actual makeglossaries-lite.lua - script, and TeX distributions on Windows convert the script to an - executable makeindex provided + with the glossaries package. This is a cut-down alternative to the Perl + makeglossaries script. If you have Perl installed, use the Perl script + instead. This script is distributed in the source code on CTAN with + the file name makeglossaries-lite.lua but TeX Live on Unix-like + systems creates a symbolic link called makeglossaries-lite (without + the .lua extension) to the actual makeglossaries-lite.lua script, + and TeX distributions on Windows convert the script to an executable + makeglossaries-lite.exe. -

    +

    +

    makeindex

    An indexing application. -
    + id="dx1-63033">

    +

    An indexing application. +

    +

    number list

    A list of entry locations (also called a location list). The number - list can be suppressed using the

    +

    A list of entry locations (also called a location list). The number list can + be suppressed using the nonumberlist package option. -

    +

    +

    xindy

    An flexible indexing application with multilingual support written in - Perl.
    + id="dx1-63037">

    + + + +

    An flexible indexing application with multilingual support written in Perl.

    @@ -24797,5015 +25669,5079 @@ class="cmss-10">short-long-user-desc  219
        short-nolong  220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233
    +href="glossaries-extra-manual.html#dx1-3016" >220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234
        short-nolong-desc  234, 235, 236, 237, 238
    +href="glossaries-extra-manual.html#dx1-29033" >235, 236, 237, 238, 239
        short-nolong-desc-noreg  239
    +href="glossaries-extra-manual.html#dx1-30118" >240
        short-nolong-noreg  240
    +href="glossaries-extra-manual.html#dx1-30086" >241
        short-postfootnote  241, 242, 243, 244, 245, 246, 247, 248
    +href="glossaries-extra-manual.html#dx1-9062" >242, 243, 244, 245, 246, 247, 248, 249
        short-postfootnote-desc  249, 250, 251, 252, 253
    +href="glossaries-extra-manual.html#dx1-30215" >250, 251, 252, 253, 254
        short-postlong-user  254, 255, 256
    +href="glossaries-extra-manual.html#dx1-30232" >255, 256, 257
        short-postlong-user-desc  257
    +href="glossaries-extra-manual.html#dx1-30235" >258
        short-sc  258
    +href="glossaries-extra-manual.html#dx1-29015" >259
        short-sc-desc  259
    +href="glossaries-extra-manual.html#dx1-29045" >260
        short-sc-footnote  260, 261, 262
    +href="glossaries-extra-manual.html#dx1-14048" >261, 262, 263
        short-sc-footnote-desc  263, 264
    +href="glossaries-extra-manual.html#dx1-14054" >264, 265
        short-sc-long  265, 266, 267, 268
    +href="glossaries-extra-manual.html#dx1-14024" >266, 267, 268, 269
        short-sc-long-desc  269, 270
    +href="glossaries-extra-manual.html#dx1-14038" >270, 271
        short-sc-nolong  271, 272, 273
    +href="glossaries-extra-manual.html#dx1-29012" >272, 273, 274
        short-sc-nolong-desc  274, 275
    +href="glossaries-extra-manual.html#dx1-29042" >275, 276
        short-sc-postfootnote  276, 277
    +href="glossaries-extra-manual.html#dx1-28099" >277, 278
        short-sc-postfootnote-desc  278
    +href="glossaries-extra-manual.html#dx1-30223" >279
        short-sm  279
    +href="glossaries-extra-manual.html#dx1-29022" >280
        short-sm-desc  280
    +href="glossaries-extra-manual.html#dx1-29050" >281
        short-sm-footnote  281
    +href="glossaries-extra-manual.html#dx1-14050" >282
        short-sm-footnote-desc  282, 283
    +href="glossaries-extra-manual.html#dx1-14056" >283, 284
        short-sm-long  284, 285, 286
    +href="glossaries-extra-manual.html#dx1-14026" >285, 286, 287
        short-sm-long-desc  287, 288
    +href="glossaries-extra-manual.html#dx1-14040" >288, 289
        short-sm-nolong  289, 290, 291
    +href="glossaries-extra-manual.html#dx1-29019" >290, 291, 292
        short-sm-nolong-desc  292, 293
    +href="glossaries-extra-manual.html#dx1-29047" >293, 294
        short-sm-postfootnote  294
    +href="glossaries-extra-manual.html#dx1-30207" >295
        short-sm-postfootnote-desc  295
    +href="glossaries-extra-manual.html#dx1-30226" >296
    \abbreviationsname  296
    +href="glossaries-extra-manual.html#dx1-4223" >297
    \abbrvpluralsuffix  297
    +class="cmti-10">298
    acronym styles (glossaries):
        dua  298
    +href="glossaries-extra-manual.html#dx1-14041" >299
        dua-desc  299
    +href="glossaries-extra-manual.html#dx1-14043" >300
        footnote  300
    +href="glossaries-extra-manual.html#dx1-14045" >301
        footnote-desc  301
    +href="glossaries-extra-manual.html#dx1-14051" >302
        footnote-sc  302
    +href="glossaries-extra-manual.html#dx1-14047" >303
        footnote-sc-desc  303
    +href="glossaries-extra-manual.html#dx1-14053" >304
        footnote-sm  304
    +href="glossaries-extra-manual.html#dx1-14049" >305
        footnote-sm-desc  305
    +href="glossaries-extra-manual.html#dx1-14055" >306
        long-sc-short  306
    +href="glossaries-extra-manual.html#dx1-14015" >307
        long-sc-short-desc  307
    +href="glossaries-extra-manual.html#dx1-14029" >308
        long-short-desc  308
    +href="glossaries-extra-manual.html#dx1-14027" >309
        long-sm-short  309
    +href="glossaries-extra-manual.html#dx1-14017" >310
        long-sm-short-desc  310
    +href="glossaries-extra-manual.html#dx1-14031" >311
        long-sp-short  311, 312
    +href="glossaries-extra-manual.html#dx1-14019" >312, 313
        long-sp-short-desc  313
    +href="glossaries-extra-manual.html#dx1-14033" >314
        sc-short-long  314
    +href="glossaries-extra-manual.html#dx1-14023" >315
        sc-short-long-desc  315
    +href="glossaries-extra-manual.html#dx1-14037" >316
        short-long  316
    +href="glossaries-extra-manual.html#dx1-14021" >317
        short-long-desc  317
    +href="glossaries-extra-manual.html#dx1-14035" >318
        sm-short-long  318
    +href="glossaries-extra-manual.html#dx1-14025" >319
        sm-short-long-desc  319
    +href="glossaries-extra-manual.html#dx1-14039" >320
    amsgen package  320
    +href="glossaries-extra-manual.html#dx1-10" >321
    amsmath package  321
    +href="glossaries-extra-manual.html#dx1-4153" >322
    \apptoglossarypreamble  322
    +class="cmti-10">323

    B babel package  323, 324, 325, 326, 327, 328, 329, 330, 331
    +href="glossaries-extra-manual.html#dx1-3010" >324, 325, 326, 327, 328, 329, 330, 331, 332
    bib2gls  332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 450
    +class="cmbx-10">459

    C categories:
        abbreviation  451, 452, 453, 454, 455
    +href="glossaries-extra-manual.html#dx1-10004" >460, 461, 462, 463, 464
        acronym  456, 457, 458, 459, 460
    +href="glossaries-extra-manual.html#dx1-3028" >465, 466, 467, 468, 469, 470
        general  461, 462, 463, 464, 465, 466, 467, 468
    +href="glossaries-extra-manual.html#dx1-9037" >471, 472, 473, 474, 475, 476, 477, 478
        glossnamefont  469
    +href="glossaries-extra-manual.html#dx1-17004" >479
        index  470, 471
    +href="glossaries-extra-manual.html#dx1-6030" >480, 481
        number  472
    +href="glossaries-extra-manual.html#dx1-35018" >482
        symbol  473, 474
    +href="glossaries-extra-manual.html#dx1-9045" >483, 484
    category attributes:
        accessaposplural  475, 476, 477, 478
    +href="glossaries-extra-manual.html#dx1-35138" >485, 486, 487, 488
        accessinsertdots  479, 480
    +href="glossaries-extra-manual.html#dx1-35137" >489, 490
        accessnoshortplural  481, 482
    +href="glossaries-extra-manual.html#dx1-35139" >491, 492
        aposplural  483, 484, 485, 486, 487, 488, 489, 490
    +href="glossaries-extra-manual.html#dx1-12036" >493, 494, 495, 496, 497, 498, 499, 500
        discardperiod  491, 492, 493, 494, 495
    +href="glossaries-extra-manual.html#dx1-9032" >501, 502, 503, 504, 505
        dualindex  496, 497, 498, 499, 500, 501, 502
    +href="glossaries-extra-manual.html#dx1-35118" >506, 507, 508, 509, 510, 511, 512
        entrycount  503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513
    +href="glossaries-extra-manual.html#dx1-10003" >513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523
        externallocation  514, 515, 516, 517
    +href="glossaries-extra-manual.html#dx1-7061" >524, 525, 526, 527
        firstshortaccess  518
    +href="glossaries-extra-manual.html#dx1-35169" >528
        glossdesc  519, 520, 521
    +href="glossaries-extra-manual.html#dx1-17005" >529, 530, 531
        glossdescfont  522, 523, 524
    +href="glossaries-extra-manual.html#dx1-17006" >532, 533, 534
        glossname  525, 526, 527
    +href="glossaries-extra-manual.html#dx1-17003" >535, 536, 537
        glossnamefont  528, 529, 530, 531
    +href="glossaries-extra-manual.html#dx1-17022" >538, 539, 540, 541
        glosssymbolfont  532, 533
    +href="glossaries-extra-manual.html#dx1-17008" >542, 543
        headuc  534, 535, 536, 537
    +href="glossaries-extra-manual.html#dx1-13059" >544, 545, 546, 547
        hyperoutside  538, 539
    +href="glossaries-extra-manual.html#dx1-7019" >548, 549
        indexname  540, 541, 542, 543, 544
    +href="glossaries-extra-manual.html#dx1-17027" >550, 551, 552, 553, 554
        indexonlyfirst  545, 546, 547
    +href="glossaries-extra-manual.html#dx1-7007" >555, 556, 557
        insertdots  548, 549, 550, 551
    +href="glossaries-extra-manual.html#dx1-24013" >558, 559, 560, 561
        linkcount  552, 553, 554
    +href="glossaries-extra-manual.html#dx1-35090" >562, 563, 564
        linkcountmaster  555, 556
    +href="glossaries-extra-manual.html#dx1-35092" >565, 566
        markshortwords  557, 558
    +href="glossaries-extra-manual.html#dx1-35061" >567, 568
        markwords  559, 560, 561, 562, 563, 564
    +href="glossaries-extra-manual.html#dx1-30247" >569, 570, 571, 572, 573, 574
        nameshortaccess  565
    +href="glossaries-extra-manual.html#dx1-35163" >575
        nohyper  566, 567, 568
    +href="glossaries-extra-manual.html#dx1-35034" >576, 577, 578
        nohyperfirst  569, 570, 571, 572, 573
    +href="glossaries-extra-manual.html#dx1-30148" >579, 580, 581, 582, 583
        noshortplural  574, 575, 576, 577, 578, 579
    +href="glossaries-extra-manual.html#dx1-12037" >584, 585, 586, 587, 588, 589
        pluraldiscardperiod  580, 581
    +href="glossaries-extra-manual.html#dx1-35048" >590, 591
        recordcount  582, 583, 584, 585
    +href="glossaries-extra-manual.html#dx1-48015" >592, 593, 594, 595
        regular  586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617
    +href="glossaries-extra-manual.html#dx1-9010" >596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627
        retainfirstuseperiod  618
    +href="glossaries-extra-manual.html#dx1-35050" >628
        tagging  619, 620, 621, 622
    +href="glossaries-extra-manual.html#dx1-25002" >629, 630, 631, 632
        targetcategory  623
    +href="glossaries-extra-manual.html#dx1-35127" >633
        targetname  624, 625
    +href="glossaries-extra-manual.html#dx1-35124" >634, 635
        targeturl  626, 627, 628, 629, 630
    +href="glossaries-extra-manual.html#dx1-15002" >636, 637, 638, 639, 640
        textformat  631, 632, 633, 634, 635
    +href="glossaries-extra-manual.html#dx1-7020" >641, 642, 643, 644, 645
        textshortaccess  636
    +href="glossaries-extra-manual.html#dx1-35166" >646
        unitcount  637
    +href="glossaries-extra-manual.html#dx1-37034" >647
        wrgloss  638, 639
    +href="glossaries-extra-manual.html#dx1-7015" >648, 649
    \cGLS  640
    +class="cmti-10">650
    \cGLSformat  641
    +class="cmti-10">651
    \cGLSpl  642
    +class="cmti-10">652
    \cGLSplformat  643
    +class="cmti-10">653
    convertgls2bib  644
    +href="glossaries-extra-manual.html#dx1-40003" >654
    \csGlsXtrLetField  645
    +class="cmti-10">655
    \CustomAbbreviationFields  646
    +class="cmti-10">656

    D datatool package  647
    +href="glossaries-extra-manual.html#dx1-50042" >657
    datatool-base package  648, 649, 650, 651
    +href="glossaries-extra-manual.html#dx1-9" >658, 659, 660, 661
    \dGLS  652
    +class="cmti-10">662
    \dGls  653
    +class="cmti-10">663
    \dgls  654
    +class="cmti-10">664
    \dglsdisp  655
    +class="cmti-10">665
    \dglslink  656
    +class="cmti-10">666
    \dGLSpl  657
    +class="cmti-10">667
    \dGlspl  658
    +class="cmti-10">668
    \dglspl  659
    +class="cmti-10">669

    E \eglssetwidest  660
    +href="glossaries-extra-manual.html#dx1-19079" >670
    \eglsupdatewidest  661
    +href="glossaries-extra-manual.html#dx1-19083" >671
    \eGlsXtrSetField  662
    +class="cmti-10">672
    entry location  663, 664, 665
    +class="cmbx-10">673, 674, 675
    entrycounter package  666
    +href="glossaries-extra-manual.html#dx1-55020" >676
    equation (counter)  667, 668, 669, 670, 671
    +href="glossaries-extra-manual.html#dx1-4130" >677, 678, 679, 680, 681
    etoolbox package  672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682
    +href="glossaries-extra-manual.html#dx1-5" >682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692

    F \false options
    +    groups  693
    +fancyhdr package  683
    +href="glossaries-extra-manual.html#dx1-21049" >694
    file types
        bib  695
    +    glg-abr  684
    +href="glossaries-extra-manual.html#dx1-4216" >696
        glo-abr  685
    +href="glossaries-extra-manual.html#dx1-4218" >697
        gls-abr  686
    +href="glossaries-extra-manual.html#dx1-4217" >698
    first use  687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 738, 739, 740
    +class="cmbx-10">751, 752, 753
    first use flag  741, 742, 743, 744, 745, 746, 754, 755, 756, 757, 758, 759, 747
    +class="cmbx-10">760
    first use text  748, 749
    +class="cmbx-10">761, 762
    fontenc package  750
    +href="glossaries-extra-manual.html#dx1-28024" >763
    \forallabbreviationlists  751
    +class="cmti-10">764

    G \gglssetwidest  752
    +href="glossaries-extra-manual.html#dx1-19077" >765
    \gglsupdatewidest  753
    +href="glossaries-extra-manual.html#dx1-19082" >766
    \gGlsXtrSetField  754
    +class="cmti-10">767
    glossaries package  755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773
    +href="glossaries-extra-manual.html#dx1-4201" >768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787
    glossaries-accsupp package  774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795
    +href="glossaries-extra-manual.html#dx1-4036" >788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809
    glossaries-extra package  796, 797, 798, 799, 800, 801, 802
    +href="glossaries-extra-manual.html#dx1-6020" >810, 811, 812, 813, 814, 815, 816
    glossaries-extra-bib2gls package  803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817
    +href="glossaries-extra-manual.html#dx1-4083" >817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831
    glossaries-extra-stylemods package  818, 819, 820, 821, 822, 823, 824, 825, 826
    +href="glossaries-extra-manual.html#dx1-4026" >832, 833, 834, 835, 836, 837, 838, 839, 840, 841
    glossaries-prefix package  827, 828, 829, 830
    +href="glossaries-extra-manual.html#dx1-4034" >842, 843, 844, 845
    \glossariesextrasetup  831
    +href="glossaries-extra-manual.html#dx1-4279" >846
    glossary styles:
        altlist  832, 833
    +href="glossaries-extra-manual.html#dx1-19023" >847, 848
        alttree  834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846
    +href="glossaries-extra-manual.html#dx1-19049" >849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863
    + + +     bookindex  847, 848, 849, 850
    +href="glossaries-extra-manual.html#dx1-21002" >864, 865, 866, 867
        index  851
    +href="glossaries-extra-manual.html#dx1-19054" >868
        inline  852, 853
    - - - +href="glossaries-extra-manual.html#dx1-19006" >869, 870
        list  854, 855, 856, 857
    +href="glossaries-extra-manual.html#dx1-19018" >871, 872, 873, 874
        listdotted  858, 859
    +href="glossaries-extra-manual.html#dx1-19024" >875, 876
        long  860, 861, 862
    +href="glossaries-extra-manual.html#dx1-19012" >877, 878, 879
        long-desc-name  863
    +href="glossaries-extra-manual.html#dx1-22066" >880
        long-desc-sym-name  864
    +href="glossaries-extra-manual.html#dx1-22133" >881
        long-loc-desc-name  865
    +href="glossaries-extra-manual.html#dx1-22075" >882
        long-loc-desc-sym-name  866
    +href="glossaries-extra-manual.html#dx1-22141" >883
        long-loc-sym-desc-name  867
    +href="glossaries-extra-manual.html#dx1-22125" >884
        long-name-desc  868, 869, 870
    +href="glossaries-extra-manual.html#dx1-22044" >885, 886, 887
        long-name-desc-loc  871
    +href="glossaries-extra-manual.html#dx1-22057" >888
        long-name-desc-sym  872, 873
    +href="glossaries-extra-manual.html#dx1-22083" >889, 890
        long-name-desc-sym-loc  874, 875
    +href="glossaries-extra-manual.html#dx1-22091" >891, 892
        long-name-sym-desc  876
    +href="glossaries-extra-manual.html#dx1-22099" >893
        long-name-sym-desc-loc  877
    +href="glossaries-extra-manual.html#dx1-22108" >894
        long-sym-desc-name  878
    +href="glossaries-extra-manual.html#dx1-22117" >895
        long3col  879
    +href="glossaries-extra-manual.html#dx1-19004" >896
        longragged-booktabs  880, 881
    +href="glossaries-extra-manual.html#dx1-22045" >897, 898
        mcolindexgroup  882
    +href="glossaries-extra-manual.html#dx1-21003" >899
        super  883
    +href="glossaries-extra-manual.html#dx1-54002" >900
        topic  884, 885
    +href="glossaries-extra-manual.html#dx1-23006" >901, 902
        topicmcols  886
    +href="glossaries-extra-manual.html#dx1-23009" >903
        tree  887, 888, 889, 890
    +href="glossaries-extra-manual.html#dx1-19048" >904, 905, 906, 907, 908
        treenoname  891, 892, 893
    +href="glossaries-extra-manual.html#dx1-19060" >909, 910, 911
    glossary-bookindex package  894, 895
    +href="glossaries-extra-manual.html#dx1-21001" >912, 913
    glossary-inline package  896
    +href="glossaries-extra-manual.html#dx1-19007" >914
    glossary-list package  897
    +href="glossaries-extra-manual.html#dx1-54003" >915
    glossary-long package  898, 899
    +href="glossaries-extra-manual.html#dx1-22018" >916, 917
    glossary-longextra package  900, 901
    +href="glossaries-extra-manual.html#dx1-22001" >918, 919
    glossary-topic package  902
    +href="glossaries-extra-manual.html#dx1-23001" >920, 921
    glossary-tree package  903, 904, 905, 906, 907, 908
    +href="glossaries-extra-manual.html#dx1-19034" >922, 923, 924, 925, 926, 927, 928
    \glossentrynameother  909
    +class="cmti-10">929
    \glossxtrsetpopts  910
    +class="cmti-10">930
    \glsabbrvdefaultfont  911, 931, 912
    +class="cmti-10">932
    \glsabbrvemfont  913
    +class="cmti-10">933
    \glsabbrvfont  914
    +class="cmti-10">934
    \glsabbrvhyphenfont  915
    +class="cmti-10">935
    \glsabbrvonlyfont  916
    +class="cmti-10">936
    \glsabbrvscfont  917
    +class="cmti-10">937
    \glsabbrvsmfont  918
    +class="cmti-10">938
    \glsabbrvuserfont  919, 939, 920
    +class="cmti-10">940
    \Glsaccessdesc  921
    +class="cmti-10">941
    \glsaccessdesc  922
    +class="cmti-10">942
    \Glsaccessdescplural  923
    +class="cmti-10">943
    + + + \glsaccessdescplural  924
    +class="cmti-10">944
    \Glsaccessfirst  925
    +class="cmti-10">945
    \glsaccessfirst  926
    - - - +class="cmti-10">946
    \Glsaccessfirstplural  927
    +class="cmti-10">947
    \glsaccessfirstplural  928
    +class="cmti-10">948
    \Glsaccesslong  929
    +class="cmti-10">949
    \glsaccesslong  930
    +class="cmti-10">950
    \Glsaccesslongpl  931
    +class="cmti-10">951
    \glsaccesslongpl  932
    +class="cmti-10">952
    \Glsaccessname  933
    +class="cmti-10">953
    \glsaccessname  934
    +class="cmti-10">954
    \Glsaccessplural  935
    +class="cmti-10">955
    \glsaccessplural  936
    +class="cmti-10">956
    \Glsaccessshort  937
    +class="cmti-10">957
    \glsaccessshort  938
    +class="cmti-10">958
    \Glsaccessshortpl  939
    +class="cmti-10">959
    \glsaccessshortpl  940
    +class="cmti-10">960
    \Glsaccesssymbol  941
    +class="cmti-10">961
    \glsaccesssymbol  942
    +class="cmti-10">962
    \Glsaccesssymbolplural  943
    +class="cmti-10">963
    \glsaccesssymbolplural  944
    +class="cmti-10">964
    \Glsaccesstext  945
    +class="cmti-10">965
    \glsaccesstext  946
    +class="cmti-10">966
    \glsacspace  947
    +class="cmti-10">967
    \glsacspacemax  948
    +class="cmti-10">968
    \glsadd options
        format  949
    +href="glossaries-extra-manual.html#dx1-7035" >969
        theHvalue  950, 951
    +href="glossaries-extra-manual.html#dx1-7047" >970, 971
        thevalue  952, 953, 954, 955, 956
    +href="glossaries-extra-manual.html#dx1-7046" >972, 973, 974, 975, 976
    \glsaddeach  957
    +class="cmti-10">977
    \glsaddpostsetkeys  958
    +class="cmti-10">978
    \glsaddpresetkeys  959
    +class="cmti-10">979
    +\glsalttreechildpredesc  980
    +\glsalttreepredesc  981
    \glscapturedgroup  960
    +class="cmti-10">982
    \glscategory  961
    +class="cmti-10">983
    \glscategorylabel  962
    +class="cmti-10">984
    \glscurrententrylabel  963
    +class="cmti-10">985
    \glscurrentfieldvalue  964
    +class="cmti-10">986
    \glsdefaultshortaccess  965
    +class="cmti-10">987
    \glsdefpostdesc  966
    +class="cmti-10">988
    \glsdefpostlink  967
    +class="cmti-10">989
    \glsdefpostname  968
    +class="cmti-10">990
    \glsentrycurrcount  969
    +class="cmti-10">991
    \glsentrypdfsymbol  970
    +class="cmti-10">992
    \glsentryprevcount  971
    +class="cmti-10">993
    + + + \glsentryprevmaxcount  972
    +class="cmti-10">994
    \glsentryprevtotalcount  973
    +class="cmti-10">995
    \glsextrapostnamehook  974
    +class="cmti-10">996
    \glsFindWidestAnyName  975
    +href="glossaries-extra-manual.html#dx1-19095" >997
    \glsFindWidestAnyNameLocation  976
    - - - +href="glossaries-extra-manual.html#dx1-19107" >998
    \glsFindWidestAnyNameSymbol  977
    +href="glossaries-extra-manual.html#dx1-19099" >999
    \glsFindWidestAnyNameSymbolLocation  978
    +href="glossaries-extra-manual.html#dx1-19104" >1000
    \glsFindWidestLevelTwo  979
    +href="glossaries-extra-manual.html#dx1-19097" >1001
    \glsFindWidestTopLevelName  980
    +href="glossaries-extra-manual.html#dx1-19090" >1002
    \glsFindWidestUsedAnyName  981
    +href="glossaries-extra-manual.html#dx1-19093" >1003
    \glsFindWidestUsedAnyNameLocation  982
    +href="glossaries-extra-manual.html#dx1-19105" >1004
    \glsFindWidestUsedAnyNameSymbol  983
    +href="glossaries-extra-manual.html#dx1-19098" >1005
    \glsFindWidestUsedAnyNameSymbolLocation  984
    +href="glossaries-extra-manual.html#dx1-19100" >1006
    \glsFindWidestUsedLevelTwo  985
    +href="glossaries-extra-manual.html#dx1-19096" >1007
    \glsFindWidestUsedTopLevelName  986
    +href="glossaries-extra-manual.html#dx1-19091" >1008
    \glsfirstabbrvdefaultfont  987
    +class="cmti-10">1009
    \glsfirstabbrvemfont  988
    +class="cmti-10">1010
    \glsfirstabbrvfont  989
    +class="cmti-10">1011
    \glsfirstabbrvhyphenfont  990
    +class="cmti-10">1012
    \glsfirstabbrvonlyfont  991
    +class="cmti-10">1013
    \glsfirstabbrvsmfont  992
    +class="cmti-10">1014
    \glsfirstabbrvuserfont  993
    +class="cmti-10">1015
    \glsfirstlongdefaultfont  994
    +class="cmti-10">1016
    \glsfirstlongemfont  995
    +class="cmti-10">1017
    \glsfirstlongfont  996
    +class="cmti-10">1018
    \glsfirstlongfootnotefont  997
    +class="cmti-10">1019
    \glsfirstlonghyphenfont  998
    +class="cmti-10">1020
    \glsfirstlongonlyfont  999
    +class="cmti-10">1021
    \glsfirstlonguserfont  1000
    +class="cmti-10">1022
    \GLSfmtfirst  1001
    +class="cmti-10">1023
    \Glsfmtfirst  1002
    +class="cmti-10">1024
    \glsfmtfirst  1003
    +class="cmti-10">1025
    \GLSfmtfirstpl  1004
    +class="cmti-10">1026
    \Glsfmtfirstpl  1005
    +class="cmti-10">1027
    \glsfmtfirstpl  1006
    +class="cmti-10">1028
    \GLSfmtfull  1007
    +class="cmti-10">1029
    \Glsfmtfull  1008
    +class="cmti-10">1030
    \glsfmtfull  1009
    +class="cmti-10">1031
    \GLSfmtfullpl  1010
    +class="cmti-10">1032
    \Glsfmtfullpl  1011
    +class="cmti-10">1033
    \glsfmtfullpl  1012
    +class="cmti-10">1034
    \GLSfmtlong  1013
    +class="cmti-10">1035
    \Glsfmtlong  1014
    +class="cmti-10">1036
    \glsfmtlong  1015
    +class="cmti-10">1037
    \GLSfmtlongpl  1016
    +class="cmti-10">1038
    \Glsfmtlongpl  1017
    +class="cmti-10">1039
    + + + \glsfmtlongpl  1018
    +class="cmti-10">1040
    \GLSfmtname  1019
    +class="cmti-10">1041
    \Glsfmtname  1020
    +class="cmti-10">1042
    \glsfmtname  1021
    +class="cmti-10">1043
    \GLSfmtplural  1022
    - - - +class="cmti-10">1044
    \Glsfmtplural  1023
    +class="cmti-10">1045
    \glsfmtplural  1024
    +class="cmti-10">1046
    \GLSfmtshort  1025
    +class="cmti-10">1047
    \Glsfmtshort  1026
    +class="cmti-10">1048
    \glsfmtshort  1027
    +class="cmti-10">1049
    \Glsfmtshortpl  1028, 1050, 1029
    +class="cmti-10">1051
    \glsfmtshortpl  1030
    +class="cmti-10">1052
    \GLSfmttext  1031
    +class="cmti-10">1053
    \Glsfmttext  1032
    +class="cmti-10">1054
    \glsfmttext  1033
    +class="cmti-10">1055
    \glsforeachwithattribute  1034
    +class="cmti-10">1056
    \glsgetattribute  1035
    +class="cmti-10">1057
    \glsgetcategoryattribute  1036
    +class="cmti-10">1058
    \glsgetwidestname  1037
    +href="glossaries-extra-manual.html#dx1-19085" >1059
    \glsgetwidestsubname  1038
    +href="glossaries-extra-manual.html#dx1-19086" >1060
    \glshasattribute  1039
    +class="cmti-10">1061
    \glshascategoryattribute  1040
    +class="cmti-10">1062
    \glshex  1041
    +class="cmti-10">1063
    \glsifattribute  1042
    +class="cmti-10">1064
    \glsifcategory  1043
    +class="cmti-10">1065
    \glsifcategoryattribute  1044
    +class="cmti-10">1066
    \glsifnotregular  1045
    +class="cmti-10">1067
    \glsifnotregularcategory  1046
    +class="cmti-10">1068
    \glsifregular  1047
    +class="cmti-10">1069
    \glsifregularcategory  1048
    +class="cmti-10">1070
    \glskeylisttok  1049
    +class="cmti-10">1071
    \glslabeltok  1050
    +class="cmti-10">1072
    \glslink options
        counter  1051, 1052
    +href="glossaries-extra-manual.html#dx1-4135" >1073, 1074
        format  1053, 1054, 1055, 1056
    +href="glossaries-extra-manual.html#dx1-7058" >1075, 1076, 1077, 1078
        hyper  1057, 1058, 1059
    +href="glossaries-extra-manual.html#dx1-13055" >1079, 1080, 1081
        hyper=false  1060
    +href="glossaries-extra-manual.html#dx1-34005" >1082
        hyperoutside  1061, 1062
    +href="glossaries-extra-manual.html#dx1-7018" >1083, 1084
        noindex  1063, 1064, 1065, 1066, 1067, 1068, 1069
    +href="glossaries-extra-manual.html#dx1-7003" >1085, 1086, 1087, 1088, 1089, 1090, 1091
        prefix  1070, 1071
    +href="glossaries-extra-manual.html#dx1-7025" >1092, 1093
        textformat  1072, 1073
    +href="glossaries-extra-manual.html#dx1-7022" >1094, 1095
        theHvalue  1074, 1075
    +href="glossaries-extra-manual.html#dx1-7028" >1096, 1097
        thevalue  1076, 1077
    +href="glossaries-extra-manual.html#dx1-7027" >1098, 1099
        wrgloss  1078, 1079, 1080, 1081
    +href="glossaries-extra-manual.html#dx1-7011" >1100, 1101, 1102, 1103
    \glslinkcheckfirsthyperhook  1082
    +class="cmti-10">1104
    \glslinkpresetkeys  1083
    +class="cmti-10">1105
    + + + \glslistchildpostlocation  1084
    +class="cmti-10">1106
    \glslistchildprelocation  1085
    +class="cmti-10">1107
    \glslistdesc  1086
    +class="cmti-10">1108
    \glslistgroupskip  1087
    +class="cmti-10">1109
    \glslistprelocation  1088
    - - - +class="cmti-10">1110
    \glslocalreseteach  1089
    +class="cmti-10">1111
    \glslocalunseteach  1090
    +class="cmti-10">1112
    \glslongdefaultfont  1091
    +class="cmti-10">1113
    \glslongemfont  1092
    +class="cmti-10">1114
    \glslongextraDescAlign  1093
    +class="cmti-10">1115
    \glslongextraDescFmt  1094
    +class="cmti-10">1116
    \glslongextraDescNameHeader  1095
    +class="cmti-10">1117
    \glslongextraDescNameTabularFooter  1096
    +class="cmti-10">1118
    \glslongextraDescNameTabularHeader  1097
    +class="cmti-10">1119
    \glslongextraDescSymNameHeader  1098
    +class="cmti-10">1120
    \glslongextraDescSymNameTabularFooter  1099
    +class="cmti-10">1121
    \glslongextraDescSymNameTabularHeader  1100
    +class="cmti-10">1122
    \glslongextraGroupHeading  1101
    +class="cmti-10">1123
    \glslongextraHeaderFmt  1102
    +class="cmti-10">1124
    \glslongextraLocationAlign  1103
    +class="cmti-10">1125
    \glslongextraLocationDescNameHeader  1104
    +class="cmti-10">1126
    \glslongextraLocationDescNameTabularFooter  1105
    +class="cmti-10">1127
    \glslongextraLocationDescNameTabularHeader  1106
    +class="cmti-10">1128
    \glslongextraLocationDescSymNameHeader  1107
    +class="cmti-10">1129
    \glslongextraLocationDescSymNameTabularFooter  1108
    +class="cmti-10">1130
    \glslongextraLocationDescSymNameTabularHeader  1109
    +class="cmti-10">1131
    \glslongextraLocationFmt  1110, 1132, 1111
    +class="cmti-10">1133
    \glslongextraLocationSymDescNameHeader  1112
    +class="cmti-10">1134
    \glslongextraLocationSymDescNameTabularFooter  1113
    +class="cmti-10">1135
    \glslongextraLocationSymDescNameTabularHeader  1114
    +class="cmti-10">1136
    \glslongextraLocSetDescWidth  1115
    +class="cmti-10">1137
    \glslongextraNameAlign  1116
    +class="cmti-10">1138
    \glslongextraNameDescHeader  1117
    +class="cmti-10">1139
    \glslongextraNameDescLocationHeader  1118
    +class="cmti-10">1140
    \glslongextraNameDescLocationTabularFooter  1119
    +class="cmti-10">1141
    \glslongextraNameDescLocationTabularHeader  1120
    +class="cmti-10">1142
    \glslongextraNameDescSymHeader  1121
    +class="cmti-10">1143
    \glslongextraNameDescSymLocationHeader  1122
    +class="cmti-10">1144
    \glslongextraNameDescSymLocationTabularFooter  1123
    +class="cmti-10">1145
    \glslongextraNameDescSymLocationTabularHeader  1124
    +class="cmti-10">1146
    \glslongextraNameDescSymTabularFooter  1125
    +class="cmti-10">1147
    \glslongextraNameDescSymTabularHeader  1126
    +class="cmti-10">1148
    \glslongextraNameDescTabularFooter  1127
    +class="cmti-10">1149
    \glslongextraNameDescTabularHeader  1128
    +class="cmti-10">1150
    \glslongextraNameFmt  1129
    +class="cmti-10">1151
    \glslongextraNameSymDescHeader  1130
    +class="cmti-10">1152
    + + + \glslongextraNameSymDescLocationHeader  1131
    +class="cmti-10">1153
    \glslongextraNameSymDescLocationTabularFooter  1132
    +class="cmti-10">1154
    \glslongextraNameSymDescLocationTabularHeader  1133
    +class="cmti-10">1155
    \glslongextraNameSymDescTabularFooter  1134
    +class="cmti-10">1156
    \glslongextraNameSymDescTabularHeader  1135
    - - - +class="cmti-10">1157
    \glslongextraSetDescWidth  1136
    +class="cmti-10">1158
    \glslongextraSetWidest  1137
    +class="cmti-10">1159
    \glslongextraSubDescFmt  1138
    +class="cmti-10">1160
    \glslongextraSubNameFmt  1139
    +class="cmti-10">1161
    \glslongextraSubSymbolFmt  1140
    +class="cmti-10">1162
    \glslongextraSymbolAlign  1141
    +class="cmti-10">1163
    \glslongextraSymbolFmt  1142
    +class="cmti-10">1164
    \glslongextraSymDescNameHeader  1143
    +class="cmti-10">1165
    \glslongextraSymDescNameTabularFooter  1144
    +class="cmti-10">1166
    \glslongextraSymDescNameTabularHeader  1145
    +class="cmti-10">1167
    \glslongextraSymLocSetDescWidth  1146
    +class="cmti-10">1168
    \glslongextraSymSetDescWidth  1147
    +class="cmti-10">1169
    \glslongextraTabularVAlign  1148
    +class="cmti-10">1170
    \glslongextraUpdateWidest  1149
    +class="cmti-10">1171
    \glslongextraUpdateWidestChild  1150
    +class="cmti-10">1172
    \GlsLongExtraUseTabulartrue  1151
    +class="cmti-10">1173
    \glslongfont  1152
    +class="cmti-10">1174
    \glslongfootnotefont  1153
    +class="cmti-10">1175
    \glslonghyphenfont  1154
    +class="cmti-10">1176
    \glslongonlyfont  1155
    +class="cmti-10">1177
    \glslongpltok  1156
    +class="cmti-10">1178
    \glslongtok  1157
    +class="cmti-10">1179
    \glslonguserfont  1158
    +class="cmti-10">1180
    \glsnoidxdisplayloc  1159
    +class="cmti-10">1181
    \glspdffmtfull  1160
    +class="cmti-10">1182
    \glspdffmtfullpl  1161
    +class="cmti-10">1183
    \glsps  1162
    +class="cmti-10">1184
    \glspt  1163
    +class="cmti-10">1185
    \glsrenewcommand  1164
    +class="cmti-10">1186
    \glsseeitemformat  1165
    +href="glossaries-extra-manual.html#dx1-8031" >1187
    \glssetattribute  1166
    +class="cmti-10">1188
    \glssetcategoryattribute  1167
    +class="cmti-10">1189
    \glssetregularcategory  1168
    +class="cmti-10">1190
    \glsshortpltok  1169
    +class="cmti-10">1191
    \glsshorttok  1170
    +class="cmti-10">1192
    \glstopicAssignSubIndent  1171
    +href="glossaries-extra-manual.html#dx1-23032" >1193
    \glstopicAssignWidest  1172
    +href="glossaries-extra-manual.html#dx1-23033" >1194
    \glstopicCols  1173
    +class="cmti-10">1195
    \glstopicColsEnv  1174
    +class="cmti-10">1196
    \glstopicDesc  1175
    +href="glossaries-extra-manual.html#dx1-23029" >1197
    \glstopicGroupHeading  1176
    -\glstopicInit  1177
    +href="glossaries-extra-manual.html#dx1-23021" >1198
    + + + \glstopicItem  \glstopicInit  1178
    +class="cmti-10">1199
    +\glstopicItem  1200
    \glstopicLoc  1179
    +href="glossaries-extra-manual.html#dx1-23031" >1201
    \glstopicMarker  1180
    +href="glossaries-extra-manual.html#dx1-23025" >1202
    \glstopicMidSkip  1181
    - - - +href="glossaries-extra-manual.html#dx1-23028" >1203
    \glstopicParIndent  1182
    +class="cmti-10">1204
    \glstopicPostSkip  1183
    +href="glossaries-extra-manual.html#dx1-23030" >1205
    \glstopicPreSkip  1184
    +href="glossaries-extra-manual.html#dx1-23024" >1206
    \glstopicSubIndent  1185
    +class="cmti-10">1207
    \glstopicSubItem  1186
    +href="glossaries-extra-manual.html#dx1-23034" >1208
    \glstopicSubItemBox  1187
    +href="glossaries-extra-manual.html#dx1-23037" >1209
    +\glstopicSubItemParIndent  1210
    \glstopicSubItemSep  1188
    +href="glossaries-extra-manual.html#dx1-23036" >1211
    \glstopicSubLoc  1189
    +href="glossaries-extra-manual.html#dx1-23039" >1212
    \glstopicSubNameFont  1190
    +href="glossaries-extra-manual.html#dx1-23035" >1213
    \glstopicSubPreLocSep  1191
    +href="glossaries-extra-manual.html#dx1-23038" >1214
    \glstopicTitle  1192
    +href="glossaries-extra-manual.html#dx1-23026" >1215
    \glstopicTitleFont  1193
    +href="glossaries-extra-manual.html#dx1-23027" >1216
    \glstreechilddesc  1194
    +href="glossaries-extra-manual.html#dx1-19069" >1217
    \glstreeChildDescLoc  1195
    +href="glossaries-extra-manual.html#dx1-19072" >1218
    +\glstreechildpredesc  1219
    \glstreechildprelocation  1196
    +href="glossaries-extra-manual.html#dx1-19058" >1220
    \glstreechildsymbol  1197
    +href="glossaries-extra-manual.html#dx1-19070" >1221
    \glstreedefaultnamefmt  1198
    +class="cmti-10">1222
    \glstreedesc  1199
    +href="glossaries-extra-manual.html#dx1-19067" >1223
    \glstreeDescLoc  1200
    +href="glossaries-extra-manual.html#dx1-19071" >1224
    \glstreegroupskip  1201
    +class="cmti-10">1225
    \glstreeheadergroupskip  1202
    +class="cmti-10">1226
    \glstreeNoDescSymbolPreLocation  1203
    +href="glossaries-extra-manual.html#dx1-19073" >1227
    \glstreenonamechilddesc  1204
    +href="glossaries-extra-manual.html#dx1-19063" >1228
    \glstreenonamedesc  1205
    +href="glossaries-extra-manual.html#dx1-19059" >1229
    \glstreenonamesymbol  1206
    +href="glossaries-extra-manual.html#dx1-19061" >1230
    +\glstreepredesc  1231
    \glstreePreHeader  1207
    +class="cmti-10">1232
    \glstreeprelocation  1208
    +href="glossaries-extra-manual.html#dx1-19057" >1233
    \glstreesymbol  1209
    +href="glossaries-extra-manual.html#dx1-19068" >1234
    \glsupdatewidest  1210
    +href="glossaries-extra-manual.html#dx1-19081" >1235
    \glsuseabbrvfont  1211
    +class="cmti-10">1236
    \glsuselongfont  1212
    +class="cmti-10">1237
    \glsuserdescription  1213
    +class="cmti-10">1238
    \Glsxtr  1214
    +class="cmti-10">1239
    \glsxtr  1215
    +class="cmti-10">1240
    \glsxtrabbreviationfont  1216
    +class="cmti-10">1241
    \glsxtrabbrvfootnote  1217
    +class="cmti-10">1242
    \glsxtrabbrvpluralsuffix  1218, 1243, 1219
    +class="cmti-10">1244
    \glsxtractivatenopost  1220
    +class="cmti-10">1245
    + + + \glsxtraddallcrossrefs  1221
    +href="glossaries-extra-manual.html#dx1-8005" >1246
    \glsxtraddlabelprefix  1222
    +class="cmti-10">1247
    \glsxtralias  1223
    +class="cmti-10">1248
    \glsxtrAltTreeIndent  1224
    +href="glossaries-extra-manual.html#dx1-19113" >1249
    \glsxtralttreeInit  1225
    +href="glossaries-extra-manual.html#dx1-19112" >1250
    \glsxtralttreeSubSymbolDescLocation  1226
    +href="glossaries-extra-manual.html#dx1-19110" >1251
    \glsxtralttreeSymbolDescLocation  1227
    +href="glossaries-extra-manual.html#dx1-19109" >1252
    \GlsXtrAutoAddOnFormat  1228
    - - - +class="cmti-10">1253
    \glsxtrautoindex  1229
    +class="cmti-10">1254
    \glsxtrautoindexassignsort  1230
    +class="cmti-10">1255
    \glsxtrautoindexentry  1231
    +class="cmti-10">1256
    \glsxtrautoindexesc  1232
    +class="cmti-10">1257
    \glsxtrBasicDigitrules  1233
    +class="cmti-10">1258
    \GlsXtrBibTeXEntryAliases  1234
    +class="cmti-10">1259
    \glsxtrbookindexatendgroup  1235
    +class="cmti-10">1260
    \glsxtrbookindexbetween  1236
    +class="cmti-10">1261
    \glsxtrbookindexbookmark  1237
    +class="cmti-10">1262
    \glsxtrbookindexcols  1238
    +class="cmti-10">1263
    \glsxtrbookindexcolspread  1239
    +class="cmti-10">1264
    \glsxtrbookindexfirstmark  1240
    +class="cmti-10">1265
    \glsxtrbookindexfirstmarkfmt  1241
    +class="cmti-10">1266
    \glsxtrbookindexformatheader  1242
    +class="cmti-10">1267
    \glsxtrbookindexlastmark  1243
    +class="cmti-10">1268
    \glsxtrbookindexlastmarkfmt  1244
    +class="cmti-10">1269
    \glsxtrbookindexlocation  1245
    +class="cmti-10">1270
    \glsxtrbookindexmarkentry  1246
    +class="cmti-10">1271
    \glsxtrbookindexmulticolsenv  1247
    +class="cmti-10">1272
    \glsxtrbookindexname  1248
    +class="cmti-10">1273
    \glsxtrbookindexparentchildsep  1249
    +class="cmti-10">1274
    \glsxtrbookindexparentsubchildsep  1250
    +class="cmti-10">1275
    \glsxtrbookindexprelocation  1251
    +class="cmti-10">1276
    \glsxtrbookindexsubatendgroup  1252
    +class="cmti-10">1277
    \glsxtrbookindexsubbetween  1253
    +class="cmti-10">1278
    \glsxtrbookindexsublocation  1254
    +class="cmti-10">1279
    \glsxtrbookindexsubname  1255
    +class="cmti-10">1280
    \glsxtrbookindexsubprelocation  1256
    +class="cmti-10">1281
    \glsxtrbookindexsubsubatendgroup  1257
    +class="cmti-10">1282
    \glsxtrbookindexsubsubbetween  1258
    +class="cmti-10">1283
    \glsxtrchecknohyperfirst  1259
    +class="cmti-10">1284
    \glsxtrclearlabelprefixes  1260
    +class="cmti-10">1285
    \glsxtrcombiningdiacriticIIIrules  1261
    +class="cmti-10">1286
    \glsxtrcombiningdiacriticIIrules  1262
    +class="cmti-10">1287
    \glsxtrcombiningdiacriticIrules  1263
    +class="cmti-10">1288
    \glsxtrcombiningdiacriticIVrules  1264
    +class="cmti-10">1289
    \glsxtrcombiningdiacriticrules  1265
    +class="cmti-10">1290
    \glsxtrcontrolrules  1266
    +class="cmti-10">1291
    + + + \glsxtrcopytoglossary  1267
    +class="cmti-10">1292
    \glsxtrcurrencyrules  1268
    +class="cmti-10">1293
    \GlsXtrDefaultResourceOptions  1269
    +class="cmti-10">1294
    \glsxtrdeffield  1270
    +class="cmti-10">1295
    \glsxtrdetoklocation  1271
    +class="cmti-10">1296
    \glsxtrdigitrules  1272
    +class="cmti-10">1297
    \GlsXtrDiscardUnsetBuffering  1273
    +class="cmti-10">1298
    \glsxtrdisplayendloc  1274
    - - - +class="cmti-10">1299
    \glsxtrdisplayendlochook  1275
    +class="cmti-10">1300
    \glsxtrdisplaylocnameref  1276
    +class="cmti-10">1301
    \glsxtrdisplaysingleloc  1277
    +class="cmti-10">1302
    \glsxtrdisplaystartloc  1278
    +class="cmti-10">1303
    \glsxtrdisplaysupploc  1279
    +class="cmti-10">1304
    \glsxtrdoautoindexname  1280
    +class="cmti-10">1305
    \glsxtrdowrglossaryhook  1281
    +class="cmti-10">1306
    \glsxtredeffield  1282
    +class="cmti-10">1307
    \glsxtremsuffix  1283
    +class="cmti-10">1308
    \GlsXtrEnableEntryCounting  1284
    +class="cmti-10">1309
    \GlsXtrEnableEntryUnitCounting  1285
    +class="cmti-10">1310
    \GlsXtrEnableIndexFormatOverride  1286
    +class="cmti-10">1311
    \GlsXtrEnableInitialTagging  1287
    +class="cmti-10">1312
    \GlsXtrEnableLinkCounting  1288
    +class="cmti-10">1313
    \GlsXtrEnableOnTheFly  1289
    +class="cmti-10">1314
    \GlsXtrEnablePreLocationTag  1290
    +class="cmti-10">1315
    \glsxtrenablerecordcount  1291
    +class="cmti-10">1316
    \glsxtrendfor  1292
    +class="cmti-10">1317
    \glsxtrentryfmt  1293
    +class="cmti-10">1318
    \GlsXtrExpandedFmt  1294
    +class="cmti-10">1319
    \glsxtrfielddolistloop  1295
    +class="cmti-10">1320
    \glsxtrfieldforlistloop  1296
    +class="cmti-10">1321
    \glsxtrfieldformatcsvlist  1297
    +class="cmti-10">1322
    \glsxtrfieldformatlist  1298
    +class="cmti-10">1323
    \glsxtrfieldifinlist  1299
    +class="cmti-10">1324
    \glsxtrfieldlistadd  1300
    +class="cmti-10">1325
    \glsxtrfieldlisteadd  1301
    +class="cmti-10">1326
    \glsxtrfieldlistgadd  1302
    +class="cmti-10">1327
    \glsxtrfieldlistxadd  1303
    +class="cmti-10">1328
    \glsxtrfieldtitlecasecs  1304
    +class="cmti-10">1329
    \glsxtrfieldxifinlist  1305
    +class="cmti-10">1330
    \glsxtrfmt  1306
    +class="cmti-10">1331
    \glsxtrfmt*  1307
    +class="cmti-10">1332
    \GlsXtrFmtDefaultOptions  1308
    +class="cmti-10">1333
    \glsxtrfmtdisplay  1309
    +class="cmti-10">1334
    \glsxtrfmtexternalnameref  1310
    +class="cmti-10">1335
    \GlsXtrFmtField  1311
    +class="cmti-10">1336
    \glsxtrfmtinternalnameref  1312
    +class="cmti-10">1337
    + + + \glsxtrfootnotedescname  1313
    +class="cmti-10">1338
    \glsxtrfootnotedescsort  1314
    +class="cmti-10">1339
    \glsxtrfootnotename  1315
    +class="cmti-10">1340
    \glsxtrforcsvfield  1316
    +class="cmti-10">1341
    \GlsXtrForeignText  1317
    +class="cmti-10">1342
    \GlsXtrForeignTextField  1318
    +class="cmti-10">1343
    \GlsXtrFormatLocationList  1319
    +class="cmti-10">1344
    \GlsXtrForUnsetBufferedList  1320
    - - - +class="cmti-10">1345
    \glsxtrfractionrules  1321
    +class="cmti-10">1346
    \GLSxtrfull  1322
    +class="cmti-10">1347
    \Glsxtrfull  1323
    +class="cmti-10">1348
    \glsxtrfull  1324
    +class="cmti-10">1349
    \Glsxtrfullformat  1325
    +class="cmti-10">1350
    \glsxtrfullformat  1326
    +class="cmti-10">1351
    \GLSxtrfullpl  1327
    +class="cmti-10">1352
    \Glsxtrfullpl  1328
    +class="cmti-10">1353
    \glsxtrfullpl  1329
    +class="cmti-10">1354
    \Glsxtrfullplformat  1330
    +class="cmti-10">1355
    \glsxtrfullplformat  1331
    +class="cmti-10">1356
    \glsxtrfullsep  1332
    +class="cmti-10">1357
    \glsxtrGeneralLatinIIIrules  1333
    +class="cmti-10">1358
    \glsxtrGeneralLatinIIrules  1334
    +class="cmti-10">1359
    \glsxtrGeneralLatinIrules  1335
    +class="cmti-10">1360
    \glsxtrGeneralLatinIVrules  1336
    +class="cmti-10">1361
    \glsxtrGeneralLatinVIIIrules  1337
    +class="cmti-10">1362
    \glsxtrGeneralLatinVIIrules  1338
    +class="cmti-10">1363
    \glsxtrGeneralLatinVIrules  1339
    +class="cmti-10">1364
    \glsxtrGeneralLatinVrules  1340
    +class="cmti-10">1365
    \glsxtrgeneralpuncIIrules  1341
    +class="cmti-10">1366
    \glsxtrgeneralpuncIrules  1342
    +class="cmti-10">1367
    \glsxtrgeneralpuncrules  1343
    +class="cmti-10">1368
    \glsxtrglossentry  1344
    +class="cmti-10">1369
    \glsxtrglossentryother  1345
    +class="cmti-10">1370
    \glsxtrgroupfield  1346
    +class="cmti-10">1371
    \GLSXTRhiername  1347
    +href="glossaries-extra-manual.html#dx1-8051" >1372
    \GLSxtrhiername  1348
    +href="glossaries-extra-manual.html#dx1-8050" >1373
    \GlsXtrhiername  1349
    +href="glossaries-extra-manual.html#dx1-8049" >1374
    \Glsxtrhiername  1350
    +href="glossaries-extra-manual.html#dx1-8048" >1375
    \glsxtrhiername  1351
    +href="glossaries-extra-manual.html#dx1-8041" >1376
    \glsxtrhiernamesep  1352
    +href="glossaries-extra-manual.html#dx1-8047" >1377
    \glsxtrhyphenrules  1353
    +class="cmti-10">1378
    \glsxtrhyphensuffix  1354
    +class="cmti-10">1379
    \glsxtridentifyglslike  1355
    +class="cmti-10">1380
    \glsxtrifcounttrigger  1356
    +class="cmti-10">1381
    \glsxtrifcustomdiscardperiod  1357
    +class="cmti-10">1382
    \GlsXtrIfFieldCmpNum  1358
    +class="cmti-10">1383
    + + + \GlsXtrIfFieldEqNum  1359
    +class="cmti-10">1384
    \GlsXtrIfFieldEqStr  1360
    +class="cmti-10">1385
    \GlsXtrIfFieldEqXpStr  1361
    +class="cmti-10">1386
    \GlsXtrIfFieldNonZero  1362
    +class="cmti-10">1387
    \GlsXtrIfFieldUndef  1363
    +class="cmti-10">1388
    \GlsXtrIfFieldValueInCsvList  1364
    +class="cmti-10">1389
    \glsxtrifhasfield  1365
    +class="cmti-10">1390
    \glsxtrifhasfield*  1366
    - - - +class="cmti-10">1391
    \GlsXtrIfHasNonZeroChildCount  1367
    +class="cmti-10">1392
    \glsxtrifinlabelprefixlist  1368
    +class="cmti-10">1393
    \glsxtrifkeydefined  1369
    +class="cmti-10">1394
    \glsxtriflabelinlist  1370
    +class="cmti-10">1395
    \GlsXtrIfLinkCounterDef  1371
    +class="cmti-10">1396
    \glsxtrifrecordtrigger  1372
    +class="cmti-10">1397
    \GlsXtrIfUnusedOrUndefined  1373
    +class="cmti-10">1398
    \glsxtrifwasfirstuse  1374
    +class="cmti-10">1399
    \GlsXtrIfXpFieldEqXpStr  1375
    +class="cmti-10">1400
    \glsxtrinclinkcounter  1376
    +class="cmti-10">1401
    \glsxtrindexaliased  1377
    +class="cmti-10">1402
    \GlsXtrIndexCounterLink  1378
    +class="cmti-10">1403
    \glsxtrindexseealso  1379
    +href="glossaries-extra-manual.html#dx1-8074" >1404
    \glsxtrinitwrgloss  1380
    +class="cmti-10">1405
    \Glsxtrinlinefullformat  1381
    +class="cmti-10">1406
    \glsxtrinlinefullformat  1382
    +class="cmti-10">1407
    \Glsxtrinlinefullplformat  1383
    +class="cmti-10">1408
    \glsxtrinlinefullplformat  1384
    +class="cmti-10">1409
    \glsxtrinsertinsidetrue  1385
    +class="cmti-10">1410
    \glsxtrLatinA  1386
    +class="cmti-10">1411
    \glsxtrLatinAA  1387
    +class="cmti-10">1412
    \glsxtrLatinAELigature  1388
    +class="cmti-10">1413
    \glsxtrLatinE  1389
    +class="cmti-10">1414
    \glsxtrLatinEszettSs  1390
    +class="cmti-10">1415
    \glsxtrLatinEszettSz  1391
    +class="cmti-10">1416
    \glsxtrLatinEth  1392
    +class="cmti-10">1417
    \glsxtrLatinH  1393
    +class="cmti-10">1418
    \glsxtrLatinI  1394
    +class="cmti-10">1419
    \glsxtrLatinInsularG  1395
    +class="cmti-10">1420
    \glsxtrLatinK  1396
    +class="cmti-10">1421
    \glsxtrLatinL  1397
    +class="cmti-10">1422
    \glsxtrLatinLslash  1398
    +class="cmti-10">1423
    \glsxtrLatinM  1399
    +class="cmti-10">1424
    \glsxtrLatinN  1400
    +class="cmti-10">1425
    \glsxtrLatinO  1401
    +class="cmti-10">1426
    \glsxtrLatinOELigature  1402
    +class="cmti-10">1427
    \glsxtrLatinOslash  1403
    +class="cmti-10">1428
    \glsxtrLatinP  1404
    +class="cmti-10">1429
    + + + \glsxtrLatinS  1405
    +class="cmti-10">1430
    \glsxtrLatinSchwa  1406
    +class="cmti-10">1431
    \glsxtrLatinT  1407
    +class="cmti-10">1432
    \glsxtrLatinThorn  1408
    +class="cmti-10">1433
    \glsxtrLatinWynn  1409
    +class="cmti-10">1434
    \glsxtrLatinX  1410
    +class="cmti-10">1435
    \GlsXtrLetField  1411
    +class="cmti-10">1436
    \GlsXtrLetFieldToField  1412
    - - - +class="cmti-10">1437
    \GlsXtrLinkCounterName  1413
    +class="cmti-10">1438
    \GlsXtrLinkCounterValue  1414
    +class="cmti-10">1439
    \GlsXtrLoadResources  1415
    +class="cmti-10">1440
    \glsxtrlocalsetgrouptitle  1416
    +class="cmti-10">1441
    \GlsXtrLocationField  1417
    +class="cmti-10">1442
    \GlsXtrLocationRecordCount  1418
    +class="cmti-10">1443
    \glsxtrlocrangefmt  1419
    +class="cmti-10">1444
    \Glsxtrlong  1420, 1445, 1421
    +class="cmti-10">1446
    \glsxtrlong  1422
    +class="cmti-10">1447
    \glsxtrlonghyphen  1423
    +class="cmti-10">1448
    \glsxtrlonghyphenshort  1424
    +class="cmti-10">1449
    \glsxtrlongnoshortdescname  1425
    +class="cmti-10">1450
    \glsxtrlongnoshortname  1426
    +class="cmti-10">1451
    \GLSxtrlongpl  1427
    +class="cmti-10">1452
    \Glsxtrlongpl  1428
    +class="cmti-10">1453
    \glsxtrlongpl  1429
    +class="cmti-10">1454
    \glsxtrlongshortdescname  1430
    +class="cmti-10">1455
    \glsxtrlongshortdescsort  1431
    +class="cmti-10">1456
    \glsxtrlongshortname  1432
    +class="cmti-10">1457
    \glsxtrlongshortuserdescname  1433
    +class="cmti-10">1458
    \glsxtrMathGreekIIrules  1434
    +class="cmti-10">1459
    \glsxtrMathGreekIrules  1435
    +class="cmti-10">1460
    \glsxtrMathItalicGreekIIrules  1436
    +class="cmti-10">1461
    \glsxtrMathItalicGreekIrules  1437
    +class="cmti-10">1462
    \glsxtrMathItalicLowerGreekIIrules  1438
    +class="cmti-10">1463
    \glsxtrMathItalicLowerGreekIrules  1439
    +class="cmti-10">1464
    \glsxtrMathItalicNabla  1440
    +class="cmti-10">1465
    \glsxtrMathItalicPartial  1441
    +class="cmti-10">1466
    \glsxtrMathItalicUpperGreekIIrules  1442
    +class="cmti-10">1467
    \glsxtrMathItalicUpperGreekIrules  1443
    +class="cmti-10">1468
    \glsxtrMathUpGreekIIrules  1444
    +class="cmti-10">1469
    \glsxtrMathUpGreekIrules  1445
    +class="cmti-10">1470
    \glsxtrmultisupplocation  1446
    +class="cmti-10">1471
    \glsxtrnameloclink  1447
    +class="cmti-10">1472
    \glsxtrnamereflink  1448
    +class="cmti-10">1473
    \glsxtrnewgls  1449
    +class="cmti-10">1474
    \glsxtrnewGLSlike  1450
    +class="cmti-10">1475
    \glsxtrnewglslike  1451
    +class="cmti-10">1476
    + + + \glsxtrnewnumber  1452
    +href="glossaries-extra-manual.html#dx1-4241" >1477
    \glsxtrnewrgls  1453
    +class="cmti-10">1478
    \glsxtrnewrGLSlike  1454
    +class="cmti-10">1479
    \glsxtrnewrglslike  1455
    +class="cmti-10">1480
    \glsxtrnewsymbol  1456
    +href="glossaries-extra-manual.html#dx1-4235" >1481
    \GlsXtrNoGlsWarningAutoMake  1457
    +class="cmti-10">1482
    \GlsXtrNoGlsWarningBuildInfo  1458
    +class="cmti-10">1483
    \GlsXtrNoGlsWarningCheckFile  1459
    - - - +class="cmti-10">1484
    \GlsXtrNoGlsWarningEmptyMain  1460
    +class="cmti-10">1485
    \GlsXtrNoGlsWarningEmptyNotMain  1461
    +class="cmti-10">1486
    \GlsXtrNoGlsWarningEmptyStart  1462
    +class="cmti-10">1487
    \GlsXtrNoGlsWarningHead  1463
    +class="cmti-10">1488
    \GlsXtrNoGlsWarningMisMatch  1464
    +class="cmti-10">1489
    \GlsXtrNoGlsWarningNoOut  1465
    +class="cmti-10">1490
    \GlsXtrNoGlsWarningTail  1466
    +class="cmti-10">1491
    \glsxtrnonprintablerules  1467
    +class="cmti-10">1492
    \glsxtrnopostpunc  1468
    +class="cmti-10">1493
    \glsxtronlydescname  1469
    +class="cmti-10">1494
    \glsxtronlyname  1470
    +class="cmti-10">1495
    \glsxtronlysuffix  1471
    +class="cmti-10">1496
    \glsxtrorglong  1472
    +class="cmti-10">1497
    \glsxtrorgshort  1473
    +class="cmti-10">1498
    \GLSxtrp  1474
    +class="cmti-10">1499
    \Glsxtrp  1475
    +class="cmti-10">1500
    \glsxtrp  1476
    +class="cmti-10">1501
    \glsxtrpageref  1477
    +class="cmti-10">1502
    \glsxtrparen  1478
    +class="cmti-10">1503
    \glsxtrpdfentryfmt  1479
    +class="cmti-10">1504
    \Glsxtrpl  1480
    +class="cmti-10">1505
    \glsxtrpl  1481
    +class="cmti-10">1506
    \glsxtrpostdescription  1482
    +class="cmti-10">1507
    \glsxtrposthyphenlong  1483
    +class="cmti-10">1508
    \glsxtrposthyphenshort  1484
    +class="cmti-10">1509
    \glsxtrpostlink  1485
    +class="cmti-10">1510
    \glsxtrpostlinkAddDescOnFirstUse  1486
    +class="cmti-10">1511
    \glsxtrpostlinkAddSymbolDescOnFirstUse  1487
    +class="cmti-10">1512
    \glsxtrpostlinkAddSymbolOnFirstUse  1488
    +class="cmti-10">1513
    \glsxtrpostlinkendsentence  1489
    +class="cmti-10">1514
    \glsxtrpostlinkhook  1490
    +class="cmti-10">1515
    \glsxtrpostlongdescription  1491
    +class="cmti-10">1516
    \glsxtrpostnamehook  1492
    +class="cmti-10">1517
    \GlsXtrPostNewAbbreviation  1493
    +class="cmti-10">1518
    \glsxtrprelocation  1494
    +class="cmti-10">1519
    \glsxtrprependlabelprefix  1495
    +class="cmti-10">1520
    \GlsXtrProvideBibTeXFields  1496
    +class="cmti-10">1521
    \glsxtrprovidecommand  1497
    +class="cmti-10">1522
    + + + \glsxtrprovidestoragekey  1498
    +class="cmti-10">1523
    \GlsXtrRecordCount  1499
    +class="cmti-10">1524
    \GlsXtrRecordCounter  1500
    +class="cmti-10">1525
    \glsxtrrecordtriggervalue  1501
    +class="cmti-10">1526
    \glsxtrregularfont  1502
    +class="cmti-10">1527
    \glsxtrresourcefile  1503
    +class="cmti-10">1528
    \glsxtrresourceinit  1504
    +class="cmti-10">1529
    \glsxtrrestorepostpunc  1505
    - - - +class="cmti-10">1530
    \glsxtrRevertMarks  1506
    +class="cmti-10">1531
    \glsxtrRevertTocMarks  1507
    +class="cmti-10">1532
    \glsxtrscsuffix  1508
    +class="cmti-10">1533
    \glsxtrseealsolabels  1509
    +href="glossaries-extra-manual.html#dx1-8068" >1534
    \glsxtrseelist  1510
    +href="glossaries-extra-manual.html#dx1-8072" >1535
    \GlsXtrSetActualChar  1511
    +class="cmti-10">1536
    \glsxtrsetaliasnoindex  1512
    +class="cmti-10">1537
    \GlsXtrSetAltModifier  1513
    +class="cmti-10">1538
    \glsxtrsetcategory  1514
    +class="cmti-10">1539
    \glsxtrsetcategoryforall  1515
    +class="cmti-10">1540
    \GlsXtrSetDefaultGlsOpts  1516
    +class="cmti-10">1541
    \GlsXtrSetEncapChar  1517
    +class="cmti-10">1542
    \GlsXtrSetEscChar  1518
    +class="cmti-10">1543
    \GlsXtrSetField  1519
    +class="cmti-10">1544
    \glsxtrsetfieldifexists  1520
    +class="cmti-10">1545
    \glsxtrsetglossarylabel  1521
    +class="cmti-10">1546
    \glsxtrsetgrouptitle  1522
    +class="cmti-10">1547
    \GlsXtrSetLevelChar  1523
    +class="cmti-10">1548
    \glsxtrsetpopts  1524
    +class="cmti-10">1549
    \GlsXtrSetRecordCountAttribute  1525
    +class="cmti-10">1550
    \glsxtrSetWidest  1526
    +class="cmti-10">1551
    \glsxtrSetWidestFallback  1527
    +class="cmti-10">1552
    \Glsxtrshort  1528, 1553, 1529
    +class="cmti-10">1554
    \glsxtrshort  1530
    +class="cmti-10">1555
    \glsxtrshortdescname  1531
    +class="cmti-10">1556
    \glsxtrshorthyphenlong  1532
    +class="cmti-10">1557
    \glsxtrshortlongdescname  1533
    +class="cmti-10">1558
    \glsxtrshortlongname  1534, 1559, 1535
    +class="cmti-10">1560
    \glsxtrshortlonguserdescname  1536
    +class="cmti-10">1561
    \glsxtrshortnolongname  1537
    +class="cmti-10">1562
    \GLSxtrshortpl  1538
    +class="cmti-10">1563
    \Glsxtrshortpl  1539
    +class="cmti-10">1564
    \glsxtrshortpl  1540
    +class="cmti-10">1565
    \glsxtrsmsuffix  1541
    +class="cmti-10">1566
    \glsxtrspacerules  1542
    +class="cmti-10">1567
    \GlsXtrStandaloneEntryName  1543
    +class="cmti-10">1568
    \GlsXtrStandaloneEntryOther  1544
    +class="cmti-10">1569
    \GlsXtrStandaloneGlossaryType  1545
    +class="cmti-10">1570
    + + + \GlsXtrStartUnsetBuffering  1546
    +class="cmti-10">1571
    \GlsXtrStopUnsetBuffering  1547
    +class="cmti-10">1572
    \glsxtrSubScriptDigitrules  1548
    +class="cmti-10">1573
    \Glsxtrsubsequentfmt  1549
    +class="cmti-10">1574
    \glsxtrsubsequentfmt  1550
    +class="cmti-10">1575
    \Glsxtrsubsequentplfmt  1551
    +class="cmti-10">1576
    \glsxtrsubsequentplfmt  1552
    +class="cmti-10">1577
    \glsxtrSuperScriptDigitrules  1553
    - - - +class="cmti-10">1578
    \glsxtrtagfont  1554
    +class="cmti-10">1579
    \GlsXtrTheLinkCounter  1555
    +class="cmti-10">1580
    \GlsXtrTotalRecordCount  1556
    +class="cmti-10">1581
    \glsxtrunsrtdo  1557
    +class="cmti-10">1582
    \GlsXtrUseAbbrStyleFmts  1558
    +class="cmti-10">1583
    \GlsXtrUseAbbrStyleSetup  1559
    +class="cmti-10">1584
    \glsxtrusealias  1560
    +href="glossaries-extra-manual.html#dx1-8066" >1585
    \GLSxtrusefield  1561
    +class="cmti-10">1586
    \Glsxtrusefield  1562
    +class="cmti-10">1587
    \glsxtrusefield  1563
    +class="cmti-10">1588
    \glsxtruserfield  1564
    +class="cmti-10">1589
    \glsxtruserparen  1565
    +class="cmti-10">1590
    \glsxtrusersuffix  1566, 1591, 1567
    +class="cmti-10">1592
    \glsxtrusesee  1568
    +href="glossaries-extra-manual.html#dx1-8015" >1593
    \glsxtruseseealso  1569
    +href="glossaries-extra-manual.html#dx1-8063" >1594
    \glsxtruseseeformat  1570, 1571
    +href="glossaries-extra-manual.html#dx1-8016" >1595, 1596
    \GlsXtrWarnDeprecatedAbbrStyle  1572
    +class="cmti-10">1597
    \GlsXtrWarning  1573
    +class="cmti-10">1598
    \glsxtrword  1574
    +class="cmti-10">1599
    \glsxtrwordsep  1575
    +class="cmti-10">1600
    \glsxtrwrglossmark  1576
    +class="cmti-10">1601

    H hyperref package  1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602
    +href="glossaries-extra-manual.html#dx1-4096" >1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627

    I inputenc package  1603
    +href="glossaries-extra-manual.html#dx1-42012" >1628

    L link-text  1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1623
    +class="cmbx-10">1648
    location list  1624, 1625, 1626, 1627, 1649, 1650, 1651, 1652, 1628
    +class="cmbx-10">1653
    \longnewglossaryentry  1629
    +class="cmti-10">1654

    M makeglossaries  1630, 1631, 1632, 1633, 1655, 1656, 1657, 1658, 1634
    +class="cmbx-10">1659
    + + + \makeglossaries  1635
    +class="cmti-10">1660
    makeglossaries-lite  1636, 1661, 1637
    +class="cmbx-10">1662
    makeglossaries-lite  1638, 1663, 1639
    +class="cmbx-10">1664
    makeidx package  1640
    +href="glossaries-extra-manual.html#dx1-8079" >1665
    makeindex  1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1662
    +class="cmbx-10">1690
    makeindex  1663, 1664, 1665, 1666, 1667
    - - - +href="glossaries-extra-manual.html#dx1-7053" >1691, 1692, 1693, 1694, 1695
    memoir class  1668
    +href="glossaries-extra-manual.html#dx1-3024" >1696, 1697
    mfirstuc package  1669, 1670, 1671
    +href="glossaries-extra-manual.html#dx1-4" >1698, 1699, 1700
    multicols package  1672
    +href="glossaries-extra-manual.html#dx1-23002" >1701

    N \newabbreviation  1673
    +class="cmti-10">1702
    \newabbreviationstyle  1674
    +class="cmti-10">1703
    \newacronym  1675
    +class="cmti-10">1704
    \newglossaryentry options
        access  1676
    +href="glossaries-extra-manual.html#dx1-35164" >1705
        alias  1677, 1678, 1679, 1680, 1681, 1682, 1683
    +href="glossaries-extra-manual.html#dx1-6008" >1706, 1707, 1708, 1709, 1710, 1711, 1712
        category  1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691
    +href="glossaries-extra-manual.html#dx1-6007" >1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720
        counter  1692
    +href="glossaries-extra-manual.html#dx1-7044" >1721
        description  1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718
    +href="glossaries-extra-manual.html#dx1-6002" >1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747
        descriptionplural  1719, 1720, 1721, 1722, 1723, 1724
    +href="glossaries-extra-manual.html#dx1-6016" >1748, 1749, 1750, 1751, 1752, 1753
        first  1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737
    +href="glossaries-extra-manual.html#dx1-9013" >1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766
        firstaccess  1738
    +href="glossaries-extra-manual.html#dx1-35171" >1767
        firstplural  1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748
    +href="glossaries-extra-manual.html#dx1-9014" >1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777
        group  1749, 1750, 1751, 1752, 1753, 1754
    +href="glossaries-extra-manual.html#dx1-15014" >1778, 1779, 1780, 1781, 1782, 1783
        location  1755, 1756, 1757, 1758, 1759
    +href="glossaries-extra-manual.html#dx1-21023" >1784, 1785, 1786, 1787, 1788
        loclist  1760, 1761, 1762, 1763
    +href="glossaries-extra-manual.html#dx1-45014" >1789, 1790, 1791, 1792
        long  1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772
    +href="glossaries-extra-manual.html#dx1-12026" >1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801
        longplural  1773, 1774, 1775, 1776, 1777, 1778
    +href="glossaries-extra-manual.html#dx1-12010" >1802, 1803, 1804, 1805, 1806, 1807
        name  1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835
    +href="glossaries-extra-manual.html#dx1-8029" >1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864
        nameshortaccess  1836, 1837
    +href="glossaries-extra-manual.html#dx1-35167" >1865, 1866
        parent  1838, 1839, 1840, 1841
    +href="glossaries-extra-manual.html#dx1-19094" >1867, 1868, 1869, 1870
        plural  1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854
    +href="glossaries-extra-manual.html#dx1-9017" >1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883
        prefix  1855
    +href="glossaries-extra-manual.html#dx1-15009" >1884
        see  1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882
    +href="glossaries-extra-manual.html#dx1-4057" >1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910
        seealso  1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893
    +href="glossaries-extra-manual.html#dx1-4058" >1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921
        short  1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909
    +href="glossaries-extra-manual.html#dx1-8046" >1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937
        shortaccess  1910, 1911, 1912, 1913, 1914
    +href="glossaries-extra-manual.html#dx1-35133" >1938, 1939, 1940, 1941, 1942
        shortplural  1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929
    +href="glossaries-extra-manual.html#dx1-12011" >1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957
        shortpluralaccess  1930, 1931, 1932, 1933
    +href="glossaries-extra-manual.html#dx1-35150" >1958, 1959, 1960, 1961
    + + +     sort  1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956
    +href="glossaries-extra-manual.html#dx1-4194" >1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984
        symbol  1957, 1958, 1959, 1960, 1961, 1962
    +href="glossaries-extra-manual.html#dx1-17013" >1985, 1986, 1987, 1988, 1989, 1990
        symbolaccess  1963
    +href="glossaries-extra-manual.html#dx1-17015" >1991
        symbolplural  1964, 1965
    +href="glossaries-extra-manual.html#dx1-60037" >1992, 1993
        text  1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980
    +href="glossaries-extra-manual.html#dx1-8028" >1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
        textaccess  1981
    +href="glossaries-extra-manual.html#dx1-35168" >2009
        type  1982, 1983, 1984, 1985, 1986
    - - - +href="glossaries-extra-manual.html#dx1-14058" >2010, 2011, 2012, 2013, 2014
        user1  1987, 1988, 1989, 1990
    +href="glossaries-extra-manual.html#dx1-17018" >2015, 2016, 2017, 2018
    number list  1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2024
    +class="cmbx-10">2052

    P package options:
        abbreviations  2025, 2026, 2027, 2028, 2029
    +href="glossaries-extra-manual.html#dx1-4215" >2053, 2054, 2055, 2056, 2057
        accsupp  2030, 2031, 2032, 2033, 2034, 2035, 2036
    +href="glossaries-extra-manual.html#dx1-4035" >2058, 2059, 2060, 2061, 2062, 2063, 2064
        acronym  2037, 2038
    +href="glossaries-extra-manual.html#dx1-4229" >2065, 2066
        acronymlists  2039, 2040
    +href="glossaries-extra-manual.html#dx1-4233" >2067, 2068
        acronyms  2041
    +href="glossaries-extra-manual.html#dx1-4245" >2069
        automake  2042, 2043
    +href="glossaries-extra-manual.html#dx1-6040" >2070, 2071
        autoseeindex  2044, 2045
    +href="glossaries-extra-manual.html#dx1-4066" >2072, 2073
            false  2046, 2047
    +href="glossaries-extra-manual.html#dx1-4059" >2074, 2075
        counter
            chapter  2048
    +href="glossaries-extra-manual.html#dx1-4098" >2076
            equation  2049
    +href="glossaries-extra-manual.html#dx1-4101" >2077
            section  2050
    +href="glossaries-extra-manual.html#dx1-4099" >2078
            wrglossary  2051
    +href="glossaries-extra-manual.html#dx1-4148" >2079
        debug  2052
    +href="glossaries-extra-manual.html#dx1-4002" >2080
            all  2053, 2054
    +href="glossaries-extra-manual.html#dx1-4005" >2081, 2082
            showtargets  2055, 2056
    +href="glossaries-extra-manual.html#dx1-4003" >2083, 2084
            showwrgloss  2057, 2058, 2059
    +href="glossaries-extra-manual.html#dx1-4004" >2085, 2086, 2087
            true  2060
    +href="glossaries-extra-manual.html#dx1-4007" >2088
        docdef  2061, 2062, 2063, 2064
    +href="glossaries-extra-manual.html#dx1-4174" >2089, 2090, 2091, 2092
    +        atom  2093
            restricted  2065, 2066, 2067, 2068
    +href="glossaries-extra-manual.html#dx1-4187" >2094, 2095, 2096, 2097
            true  2069, 2070
    +href="glossaries-extra-manual.html#dx1-4211" >2098, 2099
        docdefs  2071, 2072, 2073
    +href="glossaries-extra-manual.html#dx1-51023" >2100, 2101, 2102
            true  2074
    +href="glossaries-extra-manual.html#dx1-4186" >2103
        entrycounter  2075, 2076
    +href="glossaries-extra-manual.html#dx1-49002" >2104, 2105
        equations  2077, 2078
    +href="glossaries-extra-manual.html#dx1-4129" >2106, 2107
            true  2079
    +href="glossaries-extra-manual.html#dx1-4102" >2108
        floats  2080
    +href="glossaries-extra-manual.html#dx1-4136" >2109
        hyperfirst
            false  2081
    +href="glossaries-extra-manual.html#dx1-35030" >2110
        index  2082, 2083, 2084
    +href="glossaries-extra-manual.html#dx1-4251" >2111, 2112, 2113
    + + +     indexcounter  2085, 2086, 2087, 2088
    +href="glossaries-extra-manual.html#dx1-4097" >2114, 2115, 2116, 2117
        indexcrossrefs  2089, 2090, 2091, 2092
    +href="glossaries-extra-manual.html#dx1-4056" >2118, 2119, 2120, 2121
            false  2093
    +href="glossaries-extra-manual.html#dx1-4065" >2122
        indexonlyfirst  2094, 2095, 2096, 2097
    +href="glossaries-extra-manual.html#dx1-7004" >2123, 2124, 2125, 2126
        makeindex  2098
    +href="glossaries-extra-manual.html#dx1-45016" >2127
        nogroupskip  2099, 2100, 2101, 2102, 2103
    +href="glossaries-extra-manual.html#dx1-19014" >2128, 2129, 2130, 2131, 2132
        nomain  2104
    +href="glossaries-extra-manual.html#dx1-3039" >2133
        nomissingglstext  2105
    +href="glossaries-extra-manual.html#dx1-4214" >2134
        nonumberlist  2106, 2107, 2108, 2109, 2110
    - - - +href="glossaries-extra-manual.html#dx1-8053" >2135, 2136, 2137, 2138, 2139
        nopostdot  2111, 2112, 2113, 2114
    +href="glossaries-extra-manual.html#dx1-4022" >2140, 2141, 2142, 2143
            false  2115, 2116, 2117
    +href="glossaries-extra-manual.html#dx1-3004" >2144, 2145, 2146
            true  2118
    +href="glossaries-extra-manual.html#dx1-3003" >2147
        noredefwarn
            false  2119
    +href="glossaries-extra-manual.html#dx1-3009" >2148
            true  2120
    +href="glossaries-extra-manual.html#dx1-3006" >2149
        notree  2121
    +href="glossaries-extra-manual.html#dx1-19076" >2150
        numbers  2122, 2123, 2124
    +href="glossaries-extra-manual.html#dx1-4240" >2151, 2152, 2153
        postdot  2125, 2126, 2127
    +href="glossaries-extra-manual.html#dx1-3005" >2154, 2155, 2156
        postpunc  2128, 2129, 2130
    +href="glossaries-extra-manual.html#dx1-4018" >2157, 2158, 2159
            comma  2131
    +href="glossaries-extra-manual.html#dx1-4019" >2160
            dot  2132
    +href="glossaries-extra-manual.html#dx1-4020" >2161
            none  2133
    +href="glossaries-extra-manual.html#dx1-4021" >2162
        prefix  2134
    +href="glossaries-extra-manual.html#dx1-4033" >2163
        record  2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147
    +href="glossaries-extra-manual.html#dx1-4064" >2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176
            alsoindex  2148, 2149, 2150, 2151, 2152, 2153, 2154
    +class="cmss-10">hybrid  2177, 2178, 2179, 2180, 2181, 2182, 2183
            nameref  2155, 2156
    +href="glossaries-extra-manual.html#dx1-4077" >2184, 2185, 2186, 2187
            off  2157, 2158
    +href="glossaries-extra-manual.html#dx1-6035" >2188, 2189
            only  2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169
    +href="glossaries-extra-manual.html#dx1-4069" >2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201
        savenumberlist  2170
    +href="glossaries-extra-manual.html#dx1-43016" >2202
        section
            chapter  2171
    +href="glossaries-extra-manual.html#dx1-21040" >2203
        seeautonumberlist  2172
    +href="glossaries-extra-manual.html#dx1-8054" >2204
        seenoindex  2173
    +href="glossaries-extra-manual.html#dx1-8011" >2205
            ignore  2174, 2175
    +href="glossaries-extra-manual.html#dx1-8013" >2206, 2207
            warn  2176
    +href="glossaries-extra-manual.html#dx1-51021" >2208
        shortcuts  2177, 2178, 2179
    +href="glossaries-extra-manual.html#dx1-4255" >2209, 2210, 2211
            abbr  2180, 2181
    +href="glossaries-extra-manual.html#dx1-4261" >2212, 2213
            abbreviations  2182, 2183, 2184, 2185
    +href="glossaries-extra-manual.html#dx1-4260" >2214, 2215, 2216, 2217
            ac  2186, 2187, 2188, 2189, 2190, 2191, 2192
    +href="glossaries-extra-manual.html#dx1-4258" >2218, 2219, 2220, 2221, 2222, 2223, 2224
            acro  2193, 2194
    +href="glossaries-extra-manual.html#dx1-4257" >2225, 2226
            acronyms  2195, 2196
    +href="glossaries-extra-manual.html#dx1-4256" >2227, 2228
            all  2197, 2198
    +href="glossaries-extra-manual.html#dx1-4271" >2229, 2230
            false  2199
    +href="glossaries-extra-manual.html#dx1-4277" >2231
            none  2200
    +href="glossaries-extra-manual.html#dx1-4276" >2232
            other  2201, 2202
    +href="glossaries-extra-manual.html#dx1-4262" >2233, 2234
            true  2203
    +href="glossaries-extra-manual.html#dx1-4272" >2235
    + + +     sort
            none  2204, 2205
    +href="glossaries-extra-manual.html#dx1-4093" >2236, 2237
        stylemods  2206, 2207, 2208, 2209, 2210, 2211
    +href="glossaries-extra-manual.html#dx1-4045" >2238, 2239, 2240, 2241, 2242, 2243
            all  2212
    +href="glossaries-extra-manual.html#dx1-4048" >2244
            default  2213
    +href="glossaries-extra-manual.html#dx1-4047" >2245
        subentrycounter  2214, 2215
    +href="glossaries-extra-manual.html#dx1-49003" >2246, 2247
        symbols  2216, 2217, 2218
    +href="glossaries-extra-manual.html#dx1-4234" >2248, 2249, 2250
        toc
            false  2219
    - - - +href="glossaries-extra-manual.html#dx1-3002" >2251
            true  2220
    +href="glossaries-extra-manual.html#dx1-3001" >2252
        translate
            babel  2221
    +href="glossaries-extra-manual.html#dx1-3011" >2253
            true  2222
    +href="glossaries-extra-manual.html#dx1-3013" >2254
        undefaction  2223, 2224
    +href="glossaries-extra-manual.html#dx1-4049" >2255, 2256
            error  2225, 2226, 2227
    +href="glossaries-extra-manual.html#dx1-4050" >2257, 2258, 2259
            warn  2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236
    +href="glossaries-extra-manual.html#dx1-4051" >2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268
    +    writeglslabelnames  2269
    +    writeglslabels  2270
        xindy  2237, 2238
    +href="glossaries-extra-manual.html#dx1-8075" >2271, 2272
    page (counter)  2239, 2240, 2241, 2242, 2243, 2244
    +href="glossaries-extra-manual.html#dx1-4100" >2273, 2274, 2275, 2276, 2277, 2278
    polyglossia package  2245, 2246
    +href="glossaries-extra-manual.html#dx1-50083" >2279, 2280
    \pretoglossarypreamble  2247
    +class="cmti-10">2281
    \printabbreviations  2248
    +href="glossaries-extra-manual.html#dx1-4219" >2282
    \printglossary options
        label  2249, 2250
    +href="glossaries-extra-manual.html#dx1-15011" >2283, 2284
        nogroupskip  2251
    +href="glossaries-extra-manual.html#dx1-19015" >2285
        numberedsection  2252
    +href="glossaries-extra-manual.html#dx1-54038" >2286
        prefix  2253
    +href="glossaries-extra-manual.html#dx1-15008" >2287
        style  2254
    +href="glossaries-extra-manual.html#dx1-54037" >2288
        target  2255, 2256
    +href="glossaries-extra-manual.html#dx1-15006" >2289, 2290
        targetnameprefix  2257
    +href="glossaries-extra-manual.html#dx1-15007" >2291
        title  2258, 2259
    +href="glossaries-extra-manual.html#dx1-54035" >2292, 2293
        toctitle  2260
    +href="glossaries-extra-manual.html#dx1-54036" >2294
        type  2261
    +href="glossaries-extra-manual.html#dx1-54023" >2295
    \printnoidxglossary options
        sort  2262
    +href="glossaries-extra-manual.html#dx1-51024" >2296
    \printunsrtabbreviations  2263
    +href="glossaries-extra-manual.html#dx1-4221" >2297
    \printunsrtacronyms  2264
    +href="glossaries-extra-manual.html#dx1-4248" >2298
    \printunsrtglossaries  2265
    +class="cmti-10">2299
    \printunsrtglossary  2266
    +class="cmti-10">2300
    \printunsrtglossary options
        groups  2267, 2268
    +href="glossaries-extra-manual.html#dx1-15013" >2301, 2302
        leveloffset  2269
    +href="glossaries-extra-manual.html#dx1-15015" >2303
    \printunsrtglossary*  2270
    +class="cmti-10">2304
    \printunsrtglossaryentryprocesshook  2271
    +class="cmti-10">2305
    \printunsrtglossaryhandler  2272
    +class="cmti-10">2306
    + + + \printunsrtglossarypredoglossary  2273
    +class="cmti-10">2307
    \printunsrtglossaryskipentry  2274
    +class="cmti-10">2308
    \printunsrtglossaryunit  2275
    +class="cmti-10">2309
    \printunsrtglossaryunitsetup  2276
    +class="cmti-10">2310
    \printunsrtindex  2277
    +href="glossaries-extra-manual.html#dx1-4253" >2311
    \printunsrtnumbers  2278
    +href="glossaries-extra-manual.html#dx1-4243" >2312
    \printunsrtsymbols  2279
    +href="glossaries-extra-manual.html#dx1-4238" >2313
    \provideignoredglossary  2280
    +class="cmti-10">2314

    R relsizes package  2281
    - - - +href="glossaries-extra-manual.html#dx1-28052" >2315
    \RestoreAcronyms  2282
    +class="cmti-10">2316
    \rGLS  2283
    +class="cmti-10">2317
    \rGls  2284
    +class="cmti-10">2318
    \rgls  2285
    +class="cmti-10">2319
    \rGLSformat  2286
    +class="cmti-10">2320
    \rGlsformat  2287
    +class="cmti-10">2321
    \rglsformat  2288
    +class="cmti-10">2322
    \rGLSpl  2289
    +class="cmti-10">2323
    \rGlspl  2290
    +class="cmti-10">2324
    \rglspl  2291
    +class="cmti-10">2325
    \rGLSplformat  2292
    +class="cmti-10">2326
    \rGlsplformat  2293
    +class="cmti-10">2327
    \rglsplformat  2294
    +class="cmti-10">2328

    S \seealsoname  2295
    +href="glossaries-extra-manual.html#dx1-8077" >2329
    \setabbreviationstyle  2296
    +class="cmti-10">2330
    slantsc package  2297
    +href="glossaries-extra-manual.html#dx1-34009" >2331
    soul package  2298, 2299
    +href="glossaries-extra-manual.html#dx1-7024" >2332, 2333
    style package  2300
    +href="glossaries-extra-manual.html#dx1-21005" >2334
    subentrycounter package  2301
    +href="glossaries-extra-manual.html#dx1-55021" >2335

    T texindy  2302
    +href="glossaries-extra-manual.html#dx1-39007" >2336
    textcase package  2303
    +href="glossaries-extra-manual.html#dx1-7" >2337
    tracklang package  2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313
    +href="glossaries-extra-manual.html#dx1-3" >2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347
    translator package  2314
    +href="glossaries-extra-manual.html#dx1-3012" >2348

    U upgreek package  2315, 2316, 2317, 2318
    +href="glossaries-extra-manual.html#dx1-46029" >2349, 2350, 2351, 2352

    W + + + wrglossary (counter)  2319, 2320, 2321, 2322, 2323
    +href="glossaries-extra-manual.html#dx1-4149" >2353, 2354, 2355, 2356, 2357

    X xfor package  2324, 2325, 2326
    +href="glossaries-extra-manual.html#dx1-8" >2358, 2359, 2360
    \xglssetwidest  2327
    +href="glossaries-extra-manual.html#dx1-19080" >2361
    \xglsupdatewidest  2328
    +href="glossaries-extra-manual.html#dx1-19084" >2362
    \xGlsXtrSetField  2329
    +class="cmti-10">2363
    xindy  2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2346
    - - - +class="cmbx-10">2383
    xindy  2347
    +href="glossaries-extra-manual.html#dx1-7056" >2384
    xkeyval package  2348
    +href="glossaries-extra-manual.html#dx1-6" >2385

    1.14.21 was originally intended as the last release of glossaries to incorporate new features, but a few new minor features slipped in with some bug fixes in v4.21.

    -

    2.1The descriptionpluralfield and the short form was stored in the symbol field.

    -

    4.1For compatibility with earlier versions, \glsabbrvscfont \glsxtrscfont is now deprecated. Likewise for similar commands.

    -

    9.1Version 1.11 only allowed one use of \GlsXtrLoadResources per document.

    -

    9.2v1.08 assumed filename.glstex extension was enforced by version 1.11.

    -

    10.1Pre version 1.28 used \csedef#1={\protect\ttfamily#1}|main}} \DeleteShortVerb{\|} \MakeShortVerb{"} - \title{glossaries-extra.sty v1.45: + \title{glossaries-extra.sty v1.46: an extension to the glossaries package} \author{Nicola L.C. Talbot\\[10pt] Dickimaw Books\\ \url{http://www.dickimaw-books.com/}} - \date{2020-04-01} + \date{2021-09-20} \maketitle \begin{abstract} @@ -248,6 +248,9 @@ package. (The base \styfmt{glossaries} package provides additional files, but this one needs \styfmt{glossaries-extra}.) There are equivalent \texttt{.bib} files for use with \gls{bib2gls}. +\textbf{The \styfmt{glossaries-extra} package uses a different set +of defaults to the base \styfmt{glossaries} package.} See the +Introduction for more details. \end{abstract} \begin{important} @@ -351,6 +354,10 @@ option is switched on. To revert to using the \sty{translator} interface, use \pkgopt[true]{translate}. There is no change to the default if \sty{babel} hasn't been loaded. +\item The default style used by \ics{newacronym} is +\abbrstyle{short-nolong}. (That is, the long form is not shown on +\gls{firstuse}.) + \end{itemize} The examples below illustrate the difference in explicit @@ -360,7 +367,7 @@ resulting from modifications to commands provided by \styfmt{glossaries} (see \sectionref{sec:modifications}). \begin{enumerate} -\item +\item Basic defaults: \begin{verbatim} \documentclass{article} \usepackage{glossaries-extra} @@ -372,7 +379,7 @@ This is like: \usepackage{glossaries-extra} \end{verbatim} -\item +\item Language defaults: \begin{verbatim} \documentclass[british]{article} \usepackage{babel} @@ -386,7 +393,7 @@ This is like: \usepackage{glossaries-extra} \end{verbatim} -\item +\item Combined with \cls{memoir} \begin{verbatim} \documentclass{memoir} \usepackage{glossaries-extra} @@ -412,6 +419,33 @@ This is like: Since by the time \styfmt{glossaries-extra} has been loaded, \styfmt{glossaries} has already redefined \cls{memoir}'s glossary-related commands. + +\item Abbreviations are defined with \cs{newabbreviation}: +\begin{verbatim} +\usepackage{glossaries-extra} +\newabbreviation{svm}{SVM}{support vector machine} +\begin{document} +First use: \gls{svm}. Explicit full form: \glsxtrfull{svm}. +\end{document} +\end{verbatim} +This is the closest to: +\begin{verbatim} +\usepackage{glossaries} +\newacronym{svm}{SVM}{support vector machine} +\begin{document} +First use: \gls{svm}. Explicit full form: \acrfull{svm}. +\end{document} +\end{verbatim} +If you want to continue using \cs{newacronym} then you will need to +change the style for the \category{acronym} category: +\begin{verbatim} +\usepackage{glossaries-extra} +\setabbreviationstyle[acronym]{long-short} +\newacronym{svm}{SVM}{support vector machine} +\begin{document} +First use: \gls{svm}. Explicit full form: \glsxtrfull{svm}. +\end{document} +\end{verbatim} \end{enumerate} Another noticeable change is that by default \cs{printglossary} @@ -545,7 +579,7 @@ The \pkgopt[showwrgloss]{debug} option implements \end{definition} to show a mark \ensuremath{\cdot} just before the write operation performed by the indexing commands. If you use -\pkgopt[alsoindex]{record} there will be a mark for the +\pkgopt[hybrid]{record} there will be a mark for the write operation to the \texttt{.aux} file for \gls{bib2gls} and a mark for the write operation to the associated glossary file for \gls{makeindex} or \gls{xindy}. @@ -730,7 +764,9 @@ the package option \pkgoptfmt{seenoindex=ignore} (provided by \item[{\pkgoptdef{record}}]\label{opt:record}(New to v1.08.) This is a \meta{key}=\meta{value} option provided for the benefit of -\gls{bib2gls} (see \sectionref{sec:bib2gls}). +\gls{bib2gls} (see \sectionref{sec:bib2gls}). If you want to use +\gls{bib2gls}, the recommended setting is \pkgopt[nameref]{record} +if you have hyperlinks and \pkgopt[only]{record} if you don't have hyperlinks. The option may only be set in the preamble and can't be used after \cs{GlsXtrLoadResources}. If the value is missing @@ -740,7 +776,7 @@ The option may only be set in the preamble and can't be used after is performed as normal using either \cs{makeglossaries} or \cs{makenoidxglossaries}. This setting implements \pkgopt[error]{undefaction}. -\item[\pkgoptfmt{only}] The indexing is performed by +\item[\pkgoptfmt{only}] The indexing (recording) is performed by \gls{bib2gls} (see \sectionref{sec:bib2gls}). Neither \cs{makeglossaries} nor \cs{makenoidxglossaries} is permitted. This setting implements \pkgopt[warn]{undefaction} and automatically @@ -757,6 +793,13 @@ pdflatex myDoc bib2gls myDoc pdflatex myDoc \end{verbatim} +If you want letter groups you will need the \verb|--group| +or \verb|-g| switch when invoking \gls{bib2gls}: +\begin{verbatim} +pdflatex myDoc +bib2gls -g myDoc +pdflatex myDoc +\end{verbatim} Note that \pkgopt[only]{record} will prevent the \gloskey{see} from automatically implementing \cs{glssee}. (\gls{bib2gls} deals with the @@ -788,20 +831,35 @@ location list. If the indexing counter is the default \ctr{page}, only the location number is shown. Similarly for \pkgopt[equation]{counter} (or \pkgopt[true]{equations}). -\item[\pkgoptfmt{alsoindex}] This is a hybrid setting +\item[\pkgoptfmt{alsoindex}] Deprecated synonym of \pkgoptfmt{hybrid}. + +\item[\pkgoptfmt{hybrid}] This is a hybrid setting that uses \gls{bib2gls} to fetch entry information from \texttt{.bib} files, but uses \gls{makeindex} or \gls{xindy} -to create the glossary files. This option should be used -with \cs{makeglossaries} but not with its optional argument. -This option should not be used with \cs{makenoidxglossaries}. -You may need to change the transcript file used by \gls{bib2gls} -to avoid a clash with the transcript file used by -\gls{makeindex} or \gls{xindy}. (This can be done with +to create the glossary files (which are input with \ics{printglossary}). +Note that this requires a slower and more complicated build process +(see below). + +This hybrid approach is provided for the rare instances +where an existing \gls{xindy} rule or module is too complicated to convert to +a \gls{bib2gls} rule but the entries need to be fetched from a +\filetype{bib} file. There's no benefit in using this option with \gls{makeindex}. + +\begin{important} +Since it's redundant to make \gls{bib2gls} also sort, use \texttt{sort=none} in +\cs{GlsXtrLoadResources} for a faster build. +\end{important} + +This option must be used with \ics{makeglossaries} but not with +its optional argument. This option should not be used with +\cs{makenoidxglossaries}. You may need to change the transcript +file used by \gls{bib2gls} to avoid a clash with the transcript file +used by \gls{makeindex} or \gls{xindy}. (This can be done with \gls{bib2gls}['s] \verb|--log-file| or \verb|-t| option.) -The glossaries should be displayed using \cs{printglossary} -(or \cs{printglossaries}). This option is expected to be used with -\gls{bib2gls}'s \texttt{sort=none} setting and so +Each glossary should be displayed using \cs{printglossary} (or +\cs{printglossaries} for all of them). This option is expected to be +used with \gls{bib2gls}'s \texttt{sort=none} setting and so \sty{glossaries-extra-bib2gls} is not automatically loaded. The document build process is (assuming the file is called @@ -813,18 +871,26 @@ pdflatex myDoc makeglossaries myDoc pdflatex myDoc \end{verbatim} +Note that, in this case, it's redundant to call \gls{bib2gls} with the +\verb|--group| or \verb|-g| switch as \gls{makeindex}/\gls{xindy} +will insert the group heading information into the corresponding +glossary file. (If you want \gls{bib2gls} to form the letter groups +then this hybrid method is inappropriate.) \end{description} -With the recording on (\pkgopt[only]{record} or -\pkgopt[alsoindex]{record}), any of the commands that would typically -index the entry (such as \cs{gls}, \cs{glstext} or \cs{glsadd}) -will add a \cs{glsxtr@record} entry to the \texttt{.aux} file. -\gls{bib2gls} can then read these lines to find -out which entries have been used. (Remember that commands like +With the recording on (\pkgopt[only]{record}, +\pkgopt[nameref]{record} or \pkgopt[hybrid]{record}), any of the +commands that would typically index the entry (such as \cs{gls}, +\cs{glstext} or \cs{glsadd}) will add a \cs{glsxtr@record} entry to +the \texttt{.aux} file. \gls{bib2gls} can then read these lines to +find out which entries have been used. (Remember that commands like \cs{glsentryname} don't index, so any use of these commands won't add a corresponding \cs{glsxtr@record} entry to the \texttt{.aux} file.) See \sectionref{sec:bib2gls} for further details. +The hybrid method additionally performs the standard indexing action +that's required for \gls{makeindex} or \gls{xindy} to work. + \item[{\pkgoptdef{equations}}] (New to v1.37.) This option will cause the default location counter to automatically switch to \ctr{equation} when inside a numbered equation environment, such @@ -981,6 +1047,14 @@ entries may be defined in the preamble or anywhere in the document, but they may only be referenced after they have been defined. Entries must be defined before the associated glossary is displayed. +If you need a list of all entry labels for the use of an editor or +helper script you may also want to consider the package options +\pkgopt{writeglslabels} and \pkgopt{writeglslabelnames} provided by +the base \sty{glossaries} package. Note that with these options +and \pkgopt[atom]{docdef}, only the entry labels visible to \LaTeX\ can +be saved. So if you are using \gls{bib2gls} you will only get the +labels of the entries that are selected by \gls{bib2gls}. + \end{itemize} The \styfmt{glossaries} package allows @@ -1301,8 +1375,8 @@ otherwise \meta{list} can be a comma-separated list of glossaries that need processing with an external indexing application. This command is not permitted with the \pkgopt[only]{record} -package option. Without the optional argument, it's permitted -with \pkgopt[alsoindex]{record}. With the optional argument, +package option. Without the optional argument, it's required +with \pkgopt[hybrid]{record}. With the optional argument, it's only permitted with the default \pkgopt[off]{record}. It should then be possible to use \cs{printglossary} for those @@ -1739,12 +1813,7 @@ the \gloskey{see} value is simply used to directly write a line to the corresponding glossary file and is then discarded. This is why the \gloskey{see} key can't be used before \ics{makeglossaries} (since the file hasn't been opened -yet). It's also the reason why the \gloskey{see} key doesn't have -any effect when used in entries that are defined in the -\env{document} environment. Since the value isn't saved, -it's not available when the \texttt{.glsdefs} file is created at the -end of the document and so isn't available at the start of the -\env{document} environment on the next run. +yet). This modification allows \styfmt{glossaries-extra} to provide \begin{definition}[\DescribeMacro\glsxtraddallcrossrefs] @@ -1754,8 +1823,8 @@ which is used at the end of the document to automatically add any unused cross-references unless the package option \pkgopt{indexcrossrefs} was set to false. -As a by-product of this enhancement, the \gloskey{see} key will now -work for entries defined in the \env{document} environment, but it's still +Note that even though the \gloskey{see} key will now +work for entries defined in the \env{document} environment, it's still best to define entries in the preamble, and the \gloskey{see} key still can't perform any indexing before the file has been opened by \cs{makeglossaries}. Note that \styfmt{glossaries} v4.24 introduced @@ -3156,7 +3225,9 @@ support hierarchical glossaries.) Note that the group formation (if supported) will still occur between entries that don't have a parent, regardless of the level -offset. This can cause odd results. +offset. This can cause odd results but can be switched off with +\gloskey[false]{groups}. See \href{https://dickimaw-books.com/gallery/index.php?label=bib2gls-inner}{Gallery: Inner or Nested +Glossaries} for an example. \end{itemize} \subsection{Glossary Style Modifications} @@ -3648,6 +3719,27 @@ will insert section-level bookmarks. The use of \cs{currentglossary} helps to provide unique bookmark labels in the event of multiple glossaries. +The \sty{glossary-tree} package provides the commands +\begin{definition}[\DescribeMacro\glstreepredesc] +\cs{glstreepredesc} +\end{definition} +and +\begin{definition}[\DescribeMacro\glstreechildpredesc] +\cs{glstreechildpredesc} +\end{definition} +(which both default to a space) and uses them in the \glostyle{tree}-like +styles, but not for the \glostyle{alttree} style. The +\sty{glossaries-extra-stylemods} package modifies the +\glostyle{alttree} style so that it has equivalent hooks: +\begin{definition}[\DescribeMacro\glsalttreepredesc] +\cs{glsalttreepredesc} +\end{definition} +and +\begin{definition}[\DescribeMacro\glsalttreechildpredesc] +\cs{glsalttreechildpredesc} +\end{definition} +These do nothing by default. + The \glostyle{index}-like and \glostyle{tree}-like styles insert the pre-\gls{numberlist} space with \begin{definition}[\DescribeMacro\glstreeprelocation] @@ -4752,6 +4844,15 @@ the name. Level~$n$ sub-entries have the name indented by $(n-1)\times$\cs{glstopicSubIndent}. The hanging indent depends on whether or not a widest name has been set for the level. +As from v1.46, there is also a length for additional indentation +used in the second paragraph onwards for child entries with +multi-paragraph descriptions: +\begin{definition}[\DescribeMacro\glstopicSubItemParIndent] +\cs{glstopicSubItemParIndent} +\end{definition} +This is initialised to \ics{parindent} when \sty{glossary-topic} is +loaded. + \begin{definition}[\DescribeMacro\glstopicInit] \cs{glstopicInit} \end{definition} @@ -8860,7 +8961,7 @@ collate the locations. If you still want to use an indexing application (for example, you need a custom \gls{xindy} rule), then just use -\pkgopt[alsoindex]{record} and continue to use \cs{makeglossaries} +\pkgopt[hybrid]{record} and continue to use \cs{makeglossaries} and \cs{printglossary} (or \cs{printglossaries}), but you also need to instruct \gls{bib2gls} to omit sorting to save time and to prevent the \gloskey{sort} key from being set. @@ -9163,7 +9264,7 @@ The package option \pkgopt[only]{record} (or simply \pkgopt{record}) automatically loads the supplementary package \sty{glossaries-extra-bib2gls}, which provides some commands that are specific to \gls{bib2gls}. The package isn't -loaded by \pkgopt[alsoindex]{record} as that option is intended +loaded by \pkgopt[hybrid]{record} as that option is intended for sorting with \gls{makeindex} or \gls{xindy} and it is expected that the sorting will be switched off (with the resource option \texttt{sort=none}). @@ -11640,7 +11741,7 @@ which will start the list with a subsection header with the title \qt{Summary} (overriding the glossary's title). Note that this shortcut command is only available with the -\pkgopt{record} (or \pkgopt[alsoindex]{record}) package option. +\pkgopt{record} (or \pkgopt[hybrid]{record}) package option. This temporary change in the hypertarget prefix means you need to explicitly use \cs{hyperlink} to create a link to it @@ -12177,7 +12278,7 @@ was defined, the \gloskey{alias} key will automatically trigger \cs{gls}\marg{entry-1} will link to \meta{entry-2}'s target. (Unless the \catattr{targeturl} attribute has been set for \meta{entry-1}'s category.) -\item With \pkgopt[off]{record} or \pkgopt[alsoindex]{record}, the \gloskey[glslink]{noindex} setting will automatically be triggered +\item With \pkgopt[off]{record} or \pkgopt[hybrid]{record}, the \gloskey[glslink]{noindex} setting will automatically be triggered when referencing \meta{entry-1} with commands like \cs{gls} or \cs{glstext}. This prevents \meta{entry-1} from have a \gls{locationlist} (aside from the cross-reference added with diff --git a/macros/latex/contrib/glossaries-extra/glossaries-extra.dtx b/macros/latex/contrib/glossaries-extra/glossaries-extra.dtx index b9f90f6ca8..da86005507 100644 --- a/macros/latex/contrib/glossaries-extra/glossaries-extra.dtx +++ b/macros/latex/contrib/glossaries-extra/glossaries-extra.dtx @@ -1,12 +1,10 @@ %\iffalse % glossaries-extra.dtx generated using makedtx version 1.2 (c) Nicola Talbot % Command line args: -% -setambles ".*\.bib=>\nopreamble\nopostamble" -% -section "chapter" -% -doc "glossaries-extra-codedoc.tex" -% -author "Nicola Talbot" % -macrocode ".*\.tex" % -macrocode ".*\.bib" +% -setambles ".*\.bib=>\nopreamble\nopostamble" +% -section "chapter" % -src "glossaries-extra.sty\Z=>glossaries-extra.sty" % -src "glossaries-extra-bib2gls.sty\Z=>glossaries-extra-bib2gls.sty" % -src "glossaries-extra-stylemods.sty\Z=>glossaries-extra-stylemods.sty" @@ -15,11 +13,13 @@ % -src "glossary-topic.sty\Z=>glossary-topic.sty" % -src "(example-glossaries-.+\.tex)\Z=>\1" % -src "(example-glossaries-.+\.bib)\Z=>\1" +% -codetitle "Main Package Code (\\styfmt{glossaries-extra.sty})" +% -author "Nicola Talbot" +% -doc "glossaries-extra-codedoc.tex" % -comment ".*\.tex" % -comment ".*\.bib" -% -codetitle "Main Package Code (\\styfmt{glossaries-extra.sty})" % glossaries-extra -% Created on 2020/4/1 13:56 +% Created on 2021/9/22 14:44 %\fi %\iffalse %<*package> @@ -42,7 +42,7 @@ %\fi % \iffalse % Doc-Source file to use with LaTeX2e -% Copyright (C) 2020 Nicola Talbot, all rights reserved. +% Copyright (C) 2021 Nicola Talbot, all rights reserved. % \fi % \iffalse %<*driver> @@ -142,7 +142,7 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of \setcounter{IndexColumns}{2} -\CheckSum{27181} +\CheckSum{27294} \newcommand*{\ifirstuse}{\iterm{first use}} \newcommand*{\firstuse}{\gls{firstuse}} @@ -182,13 +182,13 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of \raggedright } -\title{glossaries-extra.sty v1.45: +\title{glossaries-extra.sty v1.46: documented code} \author{Nicola L.C. Talbot\\[10pt] Dickimaw Books\\ \url{http://www.dickimaw-books.com/}} -\date{2020-04-01} +\date{2021-09-20} \begin{document} \DocInput{glossaries-extra.dtx} @@ -233,7 +233,7 @@ Dickimaw Books\\ %\section{Package Initialisation and Options} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra}[2020/04/01 v1.45 (NLCT)] +\ProvidesPackage{glossaries-extra}[2021/09/20 v1.46 (NLCT)] % \end{macrocode} % Requires \sty{xkeyval} to define package options. % \begin{macrocode} @@ -355,10 +355,11 @@ Dickimaw Books\\ % %\begin{macro}{\@glsxtr@do@redef@forglsentries} %\changes{1.11}{2017-01-19}{new} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} \newcommand*{\@glsxtr@do@redef@forglsentries}{% \renewcommand*{\forglsentries}[3][\glsdefaulttype]{% - \edef\@@glo@list{\csname glolist@##1\endcsname}% + \protected@edef\@@glo@list{\csname glolist@##1\endcsname}% \ifdefstring{\@@glo@list}{,}% {% \GlossariesExtraWarning{No entries defined in glossary `##1'}% @@ -449,7 +450,10 @@ Dickimaw Books\\ \begingroup \ifKV@glslink@noindex \else - \edef\@gls@label{\glsdetoklabel{#1}}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@gls@label{\glsdetoklabel{#1}}% \let\glslabel\@gls@label \glswriteentry{#1}% {% @@ -515,8 +519,9 @@ Dickimaw Books\\ %Save the label in case it's needed. This needs to be outside the %existence check to allow the post-link hook to reference it. %\changes{1.42}{2020-02-03}{moved label definition outside of conditional} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} - \edef\@gls@label{\glsdetoklabel{#2}}% + \protected@edef\@gls@label{\glsdetoklabel{#2}}% \let\glslabel\@gls@label \ifglsentryexists{#2}{}% {% @@ -654,7 +659,7 @@ Dickimaw Books\\ %\begin{macro}{\@glsxtr@dorecord} %\changes{1.08}{2016-12-13}{new} %\changes{1.15}{2017-05-10}{corrected premature expansion of \cs{@glslocref}} -%If \pkgopt[alsoindex]{record} is used, then \cs{@glslocref} may +%If \pkgopt[alsoindex]{record} or \pkgopt[hybrid]{record} is used, then \cs{@glslocref} may %have been escaped, but this isn't appropriate here. %\changes{1.19}{2017-09-09}{Use \cs{@glsrecordlocref} instead of \cs{@glslocref}} % \begin{macrocode} @@ -808,16 +813,17 @@ Dickimaw Books\\ % \begin{macrocode} \newcommand*{\@glsxtr@noop@recordcounter}[1]{% \PackageError{glossaries-extra}{\string\GlsXtrRecordCounter\space - requires record=only or record=alsoindex package option}{}% + requires record=only or record=hybrid package option}{}% } % \end{macrocode} %\end{macro} % %\begin{macro}{\@glsxtr@op@recordcounter} %\changes{1.12}{2017-02-03}{new} +%\changes{1.46}{2021-09-20}{changed \cs{eappto} to \cs{protected@eappto}} % \begin{macrocode} \newcommand*{\@glsxtr@op@recordcounter}[1]{% - \eappto\@glsxtr@counterrecordhook{\noexpand\@glsxtr@docounterrecord{#1}}% + \protected@eappto\@glsxtr@counterrecordhook{\noexpand\@glsxtr@docounterrecord{#1}}% } % \end{macrocode} %\end{macro} @@ -927,6 +933,12 @@ Dickimaw Books\\ % %\begin{macro}{\@glsxtr@record@setting@alsoindex} %\changes{1.19}{2017-09-09}{new} +%As from v1.46, the \pkgopt[alsoindex]{record} is renamed to +%\pkgopt[hybrid]{record} with \pkgopt[alsoindex]{record} as a +%deprecated synonym to avoid confusion. The internal commands +%that include \texttt{alsoindex} in the name will remain unchanged +%to avoid breaking things, but this command will need to be +%redefined by \pkgopt[hybrid]{record}. % \begin{macrocode} \newcommand*{\@glsxtr@record@setting@alsoindex}{alsoindex} % \end{macrocode} @@ -970,6 +982,29 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % +%\begin{macro}{\@glsxtr@warn@hybrid@noprintgloss} +%\changes{1.46}{2021-09-20}{new} +%Used by hybrid method if \cs{printglossary} isn't used. +% \begin{macrocode} +\newcommand\@glsxtr@warn@hybrid@noprintgloss{% + \ifdefstring{\@glo@types}{,}% + {% + \GlossariesExtraWarningNoLine{No glossaries have been defined}% + }% + {% + \GlossariesExtraWarningNoLine{No \string\printglossary\space + or \string\printglossaries\space + found. ^^JYou have requested the hybrid setting + record=\@glsxtr@record@setting\space which requires a + combination of bib2gls (to fetch entries) and makeindex/xindy + (to sort and collate the entries). If you only want to use + bib2gls then change the option to record=only or record=nameref}% + }% +} +% \end{macrocode} +%\end{macro} +% +% %\begin{macro}{\@glsxtr@record@only@setup} %\changes{1.37}{2018-11-30}{new} %Initialisation code for record=only and record=nameref @@ -1016,10 +1051,13 @@ Dickimaw Books\\ %\begin{option}{record} %Now define the \pkgopt{record} package option. %\changes{1.08}{2016-12-13}{added \pkgopt{record} package option} +%\changes{1.46}{2021-09-20}{added hybrid} +% As from v1.46, \pkgopt[alsoindex]{record} is a deprecated synonym of +% \pkgopt[hybrid]{record} to avoid confusion. % \begin{macrocode} \define@choicekey{glossaries-extra.sty}{record} [\@glsxtr@record@setting\glsxtr@record@nr]% - {off,only,alsoindex,nameref}% + {off,only,alsoindex,nameref,hybrid}% [only]% {% \ifcase\glsxtr@record@nr\relax @@ -1046,9 +1084,14 @@ Dickimaw Books\\ % \end{macrocode} %Record and index. This option doesn't load %\sty{glossaries-extra-bib2gls} as the sorting is performed by -%\app{xindy} or \app{makeindex}. +%\app{xindy} or \app{makeindex}. Index in this sense refers to the +%indexing mechanism used with indexing applications such as +%makeindex and xindy, but this could be confused with recording +%locations so \qt{alsoindex} is now deprecated in favour of +%\qt{hybrid}, which is more obvious. % \begin{macrocode} \def\glsxtr@setup@record{% + \renewcommand*{\@glsxtr@record@setting@alsoindex}{alsoindex}% \renewcommand*{\@do@seeglossary}{\@glsxtr@dosee@alsoindex@glossary}% \let\@glsxtr@record\@@glsxtr@record \let\@@do@wrglossary\glsxtr@do@alsoindex@wrglossary @@ -1069,6 +1112,24 @@ Dickimaw Books\\ {\GlossariesExtraWarning{You have requested record=nameref but the document doesn't support hyperlinks}}% {}% + \or +% \end{macrocode} +% Hybrid record (use bib2gls to fetch definitions) and index (use +% makeindex/xindy to sort and collate). +% \begin{macrocode} + \def\glsxtr@setup@record{% + \renewcommand*{\@glsxtr@record@setting@alsoindex}{hybrid}% + \renewcommand*{\@do@seeglossary}{\@glsxtr@dosee@alsoindex@glossary}% + \let\@glsxtr@record\@@glsxtr@record + \let\@@do@wrglossary\glsxtr@do@alsoindex@wrglossary + \let\@gls@saveentrycounter\glsxtr@indexonly@saveentrycounter + \let\glsxtrundefaction\@glsxtr@warn@undefaction + \let\glsxtr@warnonexistsordo\@glsxtr@warn@onexistsordo + \glsxtr@addloclistfield + \let\@@glsxtr@recordcounter\@glsxtr@op@recordcounter + \def\printunsrtglossaryunit{\print@op@unsrtglossaryunit}% + \undef\glsxtrsetaliasnoindex + }% \fi } % \end{macrocode} @@ -2458,9 +2519,10 @@ Dickimaw Books\\ %label. %\changes{1.43}{2020-02-28}{changed \cs{def} to \cs{edef} to avoid %infinite recursion} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} {% - \edef\glslabel{#1}% + \protected@edef\glslabel{#1}% \glsdoifexistsordo{#1}% {% \ifglshasfield{\GlsXtrFmtField}{#1}% @@ -3446,10 +3508,13 @@ Dickimaw Books\\ {% \ifdefempty\@ignored@glossaries {% - \edef\@ignored@glossaries{#1}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@ignored@glossaries{#1}% }% {% - \eappto\@ignored@glossaries{,#1}% + \protected@eappto\@ignored@glossaries{,#1}% }% \csgdef{glolist@#1}{,}% \ifcsundef{gls@#1@entryfmt}% @@ -3462,7 +3527,10 @@ Dickimaw Books\\ \renewcommand*{\@gls@nohyperlist}{#1}% }% {% - \eappto\@gls@nohyperlist{,#1}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{eappto} to \cs{protected@eappto}} +% \begin{macrocode} + \protected@eappto\@gls@nohyperlist{,#1}% }% }% } @@ -3480,12 +3548,15 @@ Dickimaw Books\\ \glsxtrundefaction{Glossary type `#1' already exists}{}% }% {% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} \ifdefempty\@ignored@glossaries {% - \edef\@ignored@glossaries{#1}% + \protected@edef\@ignored@glossaries{#1}% }% {% - \eappto\@ignored@glossaries{,#1}% + \protected@eappto\@ignored@glossaries{,#1}% }% \csgdef{glolist@#1}{,}% \ifcsundef{gls@#1@entryfmt}% @@ -3546,12 +3617,15 @@ Dickimaw Books\\ \ifcsdef{glolist@#1} {}% {% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} \ifdefempty\@ignored@glossaries {% - \edef\@ignored@glossaries{#1}% + \protected@edef\@ignored@glossaries{#1}% }% {% - \eappto\@ignored@glossaries{,#1}% + \protected@eappto\@ignored@glossaries{,#1}% }% \csgdef{glolist@#1}{,}% \ifcsundef{gls@#1@entryfmt}% @@ -3564,7 +3638,10 @@ Dickimaw Books\\ \renewcommand*{\@gls@nohyperlist}{#1}% }% {% - \eappto\@gls@nohyperlist{,#1}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{eappto} to \cs{protected@eappto}} +% \begin{macrocode} + \protected@eappto\@gls@nohyperlist{,#1}% }% }% } @@ -3579,12 +3656,15 @@ Dickimaw Books\\ \ifcsdef{glolist@#1} {}% {% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} \ifdefempty\@ignored@glossaries {% - \edef\@ignored@glossaries{#1}% + \protected@edef\@ignored@glossaries{#1}% }% {% - \eappto\@ignored@glossaries{,#1}% + \protected@eappto\@ignored@glossaries{,#1}% }% \csgdef{glolist@#1}{,}% \ifcsundef{gls@#1@entryfmt}% @@ -3629,8 +3709,9 @@ Dickimaw Books\\ % Define \cs{glslabel} in case it's needed after this command (for % example in the post-link hook). %\changes{1.08}{2016-12-13}{now defines \cs{glslabel}} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} - \edef\glslabel{\glsdetoklabel{#1}}% + \protected@edef\glslabel{\glsdetoklabel{#1}}% \glsxtrundefaction{Glossary entry `\glslabel' has not been defined}{You need to define a glossary entry before you can reference it.}% @@ -3993,9 +4074,10 @@ Dickimaw Books\\ %Fully expands argument before passing to \cs{glsseelist}. %(The argument to \cs{glsseelist} must be a comma-separated list of %entry labels.) +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} \newrobustcmd{\glsxtrseelist}[1]{% - \edef\@glo@tmp{\noexpand\glsseelist{#1}}\@glo@tmp + \protected@edef\@glo@tmp{\noexpand\glsseelist{#1}}\@glo@tmp } % \end{macrocode} %\end{macro} @@ -4143,7 +4225,10 @@ Dickimaw Books\\ \ifdefvoid\@glo@seealso {}% {% - \edef\@do@glssee{\noexpand\glsxtrindexseealso +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@do@glssee{\noexpand\glsxtrindexseealso {\@glo@label}{\@glo@seealso}}% \@do@glssee }% @@ -4151,10 +4236,11 @@ Dickimaw Books\\ {% % \end{macrocode} %Add cross-reference if see key hasn't been used. +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} \ifdefvoid\@glo@see {% - \edef\@do@glssee{\noexpand\glssee{\@glo@label}{\@glo@alias}}% + \protected@edef\@do@glssee{\noexpand\glssee{\@glo@label}{\@glo@alias}}% \@do@glssee }% {}% @@ -4192,7 +4278,10 @@ Dickimaw Books\\ \ifcsvoid{glo@\@glo@label @seealso}% {}% {% - \edef\@do@glssee{\noexpand\glsxtrindexseealso +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@do@glssee{\noexpand\glsxtrindexseealso {\@glo@label}{\csuse{glo@\@glo@label @seealso}}}% \@do@glssee }% @@ -4203,7 +4292,10 @@ Dickimaw Books\\ % \begin{macrocode} \ifdefvoid\@glo@see {% - \edef\@do@glssee{\noexpand\glssee +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@do@glssee{\noexpand\glssee {\@glo@label}{\csuse{glo@\@glo@label @alias}}}% \@do@glssee }% @@ -4373,7 +4465,10 @@ Dickimaw Books\\ % \begin{macrocode} \renewcommand{\@do@seeglossary}[2]{% \@@glsxtrwrglossmark - \edef\@gls@label{\glsdetoklabel{##1}}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@gls@label{\glsdetoklabel{##1}}% \protected@write\@auxout{}{% \string\@gls@reference {\csname glo@\@gls@label @type\endcsname}% @@ -5363,12 +5458,15 @@ Dickimaw Books\\ % \begin{macrocode} \def\@gls@link[#1]#2#3{% \leavevmode - \edef\glslabel{\glsdetoklabel{#2}}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\glslabel{\glsdetoklabel{#2}}% \def\@gls@link@opts{#1}% \let\@gls@link@label\glslabel \let\@glsnumberformat\@glsxtr@defaultnumberformat - \edef\@gls@counter{\csname glo@\glslabel @counter\endcsname}% - \edef\glstype{\csname glo@\glslabel @type\endcsname}% + \protected@edef\@gls@counter{\csname glo@\glslabel @counter\endcsname}% + \protected@edef\glstype{\csname glo@\glslabel @type\endcsname}% \let\org@ifKV@glslink@hyper\ifKV@glslink@hyper % \end{macrocode} %Save current value of \cs{glolinkprefix}: @@ -5447,10 +5545,11 @@ Dickimaw Books\\ \ifx\@glsxtr@local@textformat\relax % \end{macrocode} % Check \catattr{textformat} attribute (new to v1.21). +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} \glshasattribute{\glslabel}{textformat}% {% - \edef\@glsxtr@attrval{\glsgetattribute{\glslabel}{textformat}}% + \protected@edef\@glsxtr@attrval{\glsgetattribute{\glslabel}{textformat}}% \ifcsdef{\@glsxtr@attrval}% {% \letcs{\@glsxtr@textformat}{\@glsxtr@attrval}% @@ -5548,7 +5647,10 @@ Dickimaw Books\\ \glsdoifexists{#2}% {% \let\@glsnumberformat\@glsxtr@defaultnumberformat - \edef\@gls@counter{\csname glo@\glsdetoklabel{#2}@counter\endcsname}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@gls@counter{\csname glo@\glsdetoklabel{#2}@counter\endcsname}% \def\@glsxtr@thevalue{}% \def\@glsxtr@theHvalue{\@glsxtr@thevalue}% % \end{macrocode} @@ -6785,8 +6887,9 @@ Dickimaw Books\\ {\let\glsxtrifwasfirstuse\@firstoftwo}% % \end{macrocode} % Store the category label for convenience. +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} - \edef\glscategorylabel{\glscategory{\glslabel}}% + \protected@edef\glscategorylabel{\glscategory{\glslabel}}% \ifglsused{\glslabel}% {% \glsifcategoryattribute{\glscategorylabel}{nohypernext}{true}% @@ -6870,9 +6973,11 @@ Dickimaw Books\\ %\changes{1.12}{2017-02-03}{new} %\changes{1.21}{2017-11-03}{changed to use \cs{glsxtrifhasfield} instead of %\cs{ifglshasfield}} +%\changes{1.46}{2021-09-18}{changed to use starred version of +%\cs{glsxtrifhasfield}} % \begin{macrocode} \newcommand*{\@glsxtrsetaliasnoindex}{% - \glsxtrifhasfield{alias}{\glslabel}% + \s@glsxtrifhasfield{alias}{\glslabel}% {% \let\glsxtrindexaliased\@glsxtrindexaliased \glsxtrsetaliasnoindex @@ -6891,7 +6996,10 @@ Dickimaw Books\\ \else \begingroup \let\@glsnumberformat\@glsxtr@defaultnumberformat - \edef\@gls@counter{\csname glo@\glsdetoklabel{\glslabel}@counter\endcsname}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@gls@counter{\csname glo@\glsdetoklabel{\glslabel}@counter\endcsname}% \glsxtr@saveentrycounter \@@do@wrglossary{\glsxtralias{\glslabel}}% \endgroup @@ -7108,7 +7216,10 @@ Dickimaw Books\\ \ifdef\glsnavhyperlink { \renewcommand*{\glsnavhyperlink}[3][\@glo@type]{% - \edef\gls@grplabel{#2}\protected@edef\@gls@grptitle{#3}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\gls@grplabel{#2}\protected@edef\@gls@grptitle{#3}% % \end{macrocode} %Scope: % \begin{macrocode} @@ -7220,7 +7331,10 @@ Dickimaw Books\\ \glsdoifexists{#2}% {% \def\@glo@label{#2}% - {\edef\glslabel{#2}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + {\protected@edef\glslabel{#2}% \@glslink{\glolinkprefix\glslabel}{#1}}% }% } @@ -8560,9 +8674,10 @@ Dickimaw Books\\ % %\begin{macro}{\@@newglossaryentry@defunitcounters} %\changes{0.5.4}{2015-12-15}{new} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} \newcommand*{\@@newglossaryentry@defunitcounters}{% - \edef\@glo@countunit{\csuse{@glsxtr@categoryattr@@\@glo@category @unitcount}}% + \protected@edef\@glo@countunit{\csuse{@glsxtr@categoryattr@@\@glo@category @unitcount}}% \ifdefvoid\@glo@countunit {}% {% @@ -8628,11 +8743,12 @@ Dickimaw Books\\ % %\begin{macro}{\@gls@increment@currunitcount} %\changes{0.5.4}{2015-12-15}{new} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} \newcommand*{\@gls@increment@currunitcount}[1]{% \glshasattribute{#1}{unitcount}% {% - \edef\@glsxtr@csname{\@glsxtr@currentunitcount{#1}}% + \protected@edef\@glsxtr@csname{\@glsxtr@currentunitcount{#1}}% \ifcsundef{\@glsxtr@csname}% {% \csgdef{\@glsxtr@csname}{1}% @@ -8654,11 +8770,12 @@ Dickimaw Books\\ % %\begin{macro}{\@gls@local@increment@currunitcount} %\changes{0.5.4}{2015-12-15}{new} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} \newcommand*{\@gls@local@increment@currunitcount}[1]{% \glshasattribute{#1}{unitcount}% {% - \edef\@glsxtr@csname{\@glsxtr@currentunitcount{#1}}% + \protected@edef\@glsxtr@csname{\@glsxtr@currentunitcount{#1}}% \ifcsundef{\@glsxtr@csname}% {% \csdef{\@glsxtr@csname}{1}% @@ -8770,7 +8887,10 @@ Dickimaw Books\\ \renewcommand*{\glsxtrpostreset}[1]{% \glshasattribute{##1}{unitcount}% {% - \edef\@glsxtr@csname{\@glsxtr@currentunitcount{##1}}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@glsxtr@csname{\@glsxtr@currentunitcount{##1}}% \ifcsundef{\@glsxtr@csname}% {}% {\csgdef{\@glsxtr@csname}{0}}% @@ -8782,7 +8902,10 @@ Dickimaw Books\\ \@glsxtr@entryunitcount@org@localreset{##1}% \glshasattribute{##1}{unitcount}% {% - \edef\@glsxtr@csname{\@glsxtr@currentunitcount{##1}}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@glsxtr@csname{\@glsxtr@currentunitcount{##1}}% \ifcsundef{\@glsxtr@csname}% {}% {\csdef{\@glsxtr@csname}{0}}% @@ -9067,17 +9190,21 @@ Dickimaw Books\\ % %\begin{macro}{\@glsxtr@addabbreviationlist} %\changes{1.42}{2020-02-03}{new} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} \newcommand*{\@glsxtr@addabbreviationlist}[1]{% - \edef\@glo@type{#1}% + \protected@edef\@glo@type{#1}% \ifdefempty\@glsxtr@abbrlists {\let\@glsxtr@abbrlists\@glo@type}% {% \ifdefequal\@glsxtr@abbrlists\@glo@type {}% {% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{eappto} to \cs{protected@eappto}} +% \begin{macrocode} \expandafter\DTLifinlist\expandafter{\@glo@type}{\@glsxtr@abbrlists}{}% - {\eappto\@glsxtr@abbrlists{,\@glo@type}}% + {\protected@eappto\@glsxtr@abbrlists{,\@glo@type}}% }% }% } @@ -9237,6 +9364,27 @@ Dickimaw Books\\ \let\@glsxtr@org@makeglossaries\makeglossaries % \end{macrocode} % +%\begin{macro}{\@makeglossaries@warn@noprintglossary} +%\changes{1.46}{2021-09-20}{new} +%This command was only introduced to \sty{glossaries} v4.47 so it +%may not be defined. +% \begin{macrocode} +\providecommand\@makeglossaries@warn@noprintglossary{% + \ifdefstring{\@glo@types}{,}% + {% + \GlossariesWarningNoLine{No glossaries have been defined}% + }% + {% + \GlossariesWarningNoLine{No \string\printglossary\space + or \string\printglossaries\space + found. ^^J(Remove \string\makeglossaries\space if you + don't want any glossaries.) ^^JThis document will not + have a glossary}% + }% +}% +% \begin{macrocode} +%\end{macro} +% %\begin{macro}{\@domakeglossaries} %\changes{1.42}{2020-02-03}{provided definition for \cs{@domakeglossaries}} % \sty{glossaries} v4.45 introduced \cs{@domakeglossaries} to @@ -9266,24 +9414,33 @@ Dickimaw Books\\ not permitted\MessageBreak with record=\@glsxtr@record@setting\space package option}% {You may only use \string\makeglossaries\space with - record=off or record=alsoindex options}% + record=off or record=hybrid options}% }% {% \ifblank{#1}% - {\@glsxtr@org@makeglossaries}% + {% + \@glsxtr@org@makeglossaries +% \end{macrocode} +%\changes{1.46}{2021-09-20}{adjust warning on missing glossary for \qt{alsoindex}} +% \begin{macrocode} + \ifx\@glsxtr@record@setting\@glsxtr@record@setting@alsoindex + \let\warn@noprintglossary\@glsxtr@warn@hybrid@noprintgloss + \fi + }% {% \ifx\@glsxtr@record@setting\@glsxtr@record@setting@alsoindex \PackageError{glossaries-extra}{\string\makeglossaries[#1]\space - not permitted\MessageBreak with record=alsoindex package option}% + not permitted\MessageBreak with record=\@glsxtr@record@setting\space package option}% {You may only use the hybrid \string\makeglossaries[...]\space with record=off option}% \else % \end{macrocode} %\cs{@gls@@automake@immediate} was introduced to \sty{glossaries} %v4.42 so it may not be defined. +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} \ifdef\@gls@@automake@immediate{\@gls@@automake@immediate}{}% - \edef\@glsxtr@reg@glosslist{#1}% + \protected@edef\@glsxtr@reg@glosslist{#1}% \ifundef{\glswrite}{\newwrite\glswrite}{}% \protected@write\@auxout{}{\string\providecommand \string\@glsorder[1]{}} @@ -9334,8 +9491,11 @@ Dickimaw Books\\ \renewcommand*{\@do@seeglossary}[2]{% \glsdoifexists{##1}% {% - \edef\@gls@label{\glsdetoklabel{##1}}% - \edef\@gls@type{\csname glo@\@gls@label @type\endcsname}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@gls@label{\glsdetoklabel{##1}}% + \protected@edef\@gls@type{\csname glo@\@gls@label @type\endcsname}% \expandafter\DTLifinlist\expandafter{\@gls@type}{\@glsxtr@reg@glosslist}% {\@glsxtr@org@doseeglossary{##1}{##2}}% {% @@ -9352,7 +9512,10 @@ Dickimaw Books\\ % \begin{macrocode} \let\@glsxtr@@do@@wrglossary\@@do@@wrglossary \def\@@do@@wrglossary{% - \edef\@gls@type{\csname glo@\@gls@label @type\endcsname}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@gls@type{\csname glo@\@gls@label @type\endcsname}% \expandafter\DTLifinlist\expandafter{\@gls@type}{\@glsxtr@reg@glosslist}% {\@glsxtr@@do@@wrglossary}% {\gls@noidxglossary}% @@ -9361,17 +9524,15 @@ Dickimaw Books\\ % Suppress warning about no \cs{makeglossaries} % \begin{macrocode} \let\warn@nomakeglossaries\relax - \def\warn@noprintglossary{% - \GlossariesWarningNoLine{No \string\printglossary\space - or \string\printglossaries\space - found.^^J(Remove \string\makeglossaries\space if you don't want - any glossaries.)^^JThis document will not have a glossary}% - }% + \let\warn@noprintglossary\@makeglossaries@warn@noprintglossary % \end{macrocode} % Only warn for glossaries not listed. % \begin{macrocode} \renewcommand{\@gls@noref@warn}[1]{% - \edef\@gls@type{##1}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@gls@type{##1}% \expandafter\DTLifinlist\expandafter{\@gls@type}{\@glsxtr@reg@glosslist}% {% \GlossariesExtraWarning{Can't use @@ -9548,6 +9709,7 @@ Dickimaw Books\\ % \end{macrocode} %\changes{1.22}{2017-11-08}{changed explicit \cs{let} for \cs{nopostdesc} %to \cs{glsxtractivatenopost}} +%\changes{1.46}{2021-09-20}{changed \cs{xdef} to \cs{protected@xdef}} % \begin{macrocode} \glsxtractivatenopost \gls@dotoctitle @@ -9555,11 +9717,11 @@ Dickimaw Books\\ \let\gls@org@glossaryentryfield\glossentry \let\gls@org@glossarysubentryfield\subglossentry \renewcommand{\glossentry}[1]{% - \xdef\glscurrententrylabel{\glsdetoklabel{##1}}% + \protected@xdef\glscurrententrylabel{\glsdetoklabel{##1}}% \gls@org@glossaryentryfield{##1}% }% \renewcommand{\subglossentry}[2]{% - \xdef\glscurrententrylabel{\glsdetoklabel{##2}}% + \protected@xdef\glscurrententrylabel{\glsdetoklabel{##2}}% \gls@org@glossarysubentryfield{##1}{##2}% }% \@gls@preglossaryhook @@ -9812,7 +9974,10 @@ Dickimaw Books\\ %\changes{1.09}{2016-12-16}{new} % \begin{macrocode} \newcommand\@glsxtr@mixed@assign@sortkey[1]{% - \edef\@glo@type{\@glo@type}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@glo@type{\@glo@type}% \expandafter\DTLifinlist\expandafter{\@glo@type}{\@glsxtr@reg@glosslist}% {% \@glo@no@assign@sortkey{#1}% @@ -10133,9 +10298,10 @@ Dickimaw Books\\ %\begin{macro}{\glsxtrdisplaystartloc} %\changes{1.12}{2017-02-03}{new} %Start of a location range. +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} \newcommand*{\glsxtrdisplaystartloc}[2]{% - \edef\glsxtrlocrangefmt{#1}% + \protected@edef\glsxtrlocrangefmt{#1}% \ifx\glsxtrlocrangefmt\empty \def\glsxtrlocrangefmt{glsnumberformat}% \fi @@ -10149,9 +10315,10 @@ Dickimaw Books\\ %\changes{1.12}{2017-02-03}{new} %\changes{1.14}{2017-04-18}{added check for empty format} %End of a location range. +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} \newcommand*{\glsxtrdisplayendloc}[2]{% - \edef\@glsxtr@tmp{#1}% + \protected@edef\@glsxtr@tmp{#1}% \ifdefempty{\@glsxtr@tmp}{\def\@glsxtr@tmp{glsnumberformat}}{}% \ifx\glsxtrlocrangefmt\@glsxtr@tmp \else @@ -10936,8 +11103,11 @@ Dickimaw Books\\ \glsdoifexists{#1}% {% \begingroup - \edef\glscurrententrylabel{\glsdetoklabel{#1}}% - \edef\currentglossary{\GlsXtrStandaloneGlossaryType}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\glscurrententrylabel{\glsdetoklabel{#1}}% + \protected@edef\currentglossary{\GlsXtrStandaloneGlossaryType}% \ifglshasparent{#1}% {\GlsXtrStandaloneSubEntryItem{#1}}% {\glsentryitem{#1}}% @@ -11026,8 +11196,11 @@ Dickimaw Books\\ \glsdoifexists{#1}% {% \begingroup - \edef\glscurrententrylabel{\glsdetoklabel{#1}}% - \edef\currentglossary{\GlsXtrStandaloneGlossaryType}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\glscurrententrylabel{\glsdetoklabel{#1}}% + \protected@edef\currentglossary{\GlsXtrStandaloneGlossaryType}% \ifglshasparent{#1}% {\GlsXtrStandaloneSubEntryItem{#1}}% {\glsentryitem{#1}}% @@ -11168,7 +11341,10 @@ Dickimaw Books\\ {\@glsxtr@groupheading}% }% \fi - \eappto\@glsxtr@doglossary{% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{eappto} to \cs{protected@eappto}} +% \begin{macrocode} + \protected@eappto\@glsxtr@doglossary{% \noexpand\@printunsrt@glossary@handler{\glscurrententrylabel}}% }% }% @@ -11253,12 +11429,15 @@ Dickimaw Books\\ \@glossarystyle \let\gls@org@glossaryentryfield\glossentry \let\gls@org@glossarysubentryfield\subglossentry +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{xdef} to \cs{protected@xdef}} +% \begin{macrocode} \renewcommand{\glossentry}[1]{% - \xdef\glscurrententrylabel{\glsdetoklabel{##1}}% + \protected@xdef\glscurrententrylabel{\glsdetoklabel{##1}}% \gls@org@glossaryentryfield{##1}% }% \renewcommand{\subglossentry}[2]{% - \xdef\glscurrententrylabel{\glsdetoklabel{##2}}% + \protected@xdef\glscurrententrylabel{\glsdetoklabel{##2}}% \gls@org@glossarysubentryfield{##1}{##2}% }% \@gls@preglossaryhook @@ -11330,7 +11509,10 @@ Dickimaw Books\\ {\@glsxtr@groupheading}% }% \fi - \eappto\@glsxtr@doglossary{% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{eappto} to \cs{protected@eappto}} +% \begin{macrocode} + \protected@eappto\@glsxtr@doglossary{% \noexpand\@printunsrt@glossary@handler{\glscurrententrylabel}}% }% }% @@ -11381,9 +11563,10 @@ can only be used within \string\printunsrtglossaryentryprocesshook}{}% % %\begin{macro}{\@printunsrt@glossary@handler} %\changes{1.16}{2017-06-15}{new} +%\changes{1.46}{2021-09-20}{changed \cs{xdef} to \cs{protected@xdef}} % \begin{macrocode} \newcommand{\@printunsrt@glossary@handler}[1]{% - \xdef\glscurrententrylabel{#1}% + \protected@xdef\glscurrententrylabel{#1}% \printunsrtglossaryhandler\glscurrententrylabel } % \end{macrocode} @@ -11531,7 +11714,7 @@ can only be used within \string\printunsrtglossaryentryprocesshook}{}% {% \ifdefempty{\@gls@currentlettergroup}{}% {\def\@glsxtr@groupheading{\glsgroupskip}}% - \eappto\@glsxtr@groupheading{% + \protected@eappto\@glsxtr@groupheading{% \noexpand\glsgroupheading{\expandonce\@glo@thislettergrp}% }% }% @@ -11904,15 +12087,16 @@ defined}{}% %\begin{macro}{\@glsxtr@rglstrigger@record} %\changes{1.21}{2017-11-03}{new} %Still need a record to ensure that \app{bib2gls} selects the entry. +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} \newcommand*{\@glsxtr@rglstrigger@record}[3]{% - \edef\glslabel{\glsdetoklabel{#2}}% + \protected@edef\glslabel{\glsdetoklabel{#2}}% \let\@gls@link@label\glslabel \def\@glsxtr@thevalue{}% \def\@glsxtr@theHvalue{\@glsxtr@thevalue}% \def\@glsnumberformat{glstriggerrecordformat}% - \edef\@gls@counter{\csname glo@\glslabel @counter\endcsname}% - \edef\glstype{\csname glo@\glslabel @type\endcsname}% + \protected@edef\@gls@counter{\csname glo@\glslabel @counter\endcsname}% + \protected@edef\glstype{\csname glo@\glslabel @type\endcsname}% \def\@glsxtr@thevalue{}% \def\@glsxtr@theHvalue{\@glsxtr@thevalue}% \glsxtrinitwrgloss @@ -12233,11 +12417,12 @@ defined}{}% {% % \end{macrocode} %Need to ensure values are fully expanded. +%\changes{1.46}{2021-09-20}{changed \cs{x} to \cs{@glo@tmp}} % \begin{macrocode} \begingroup - \edef\x{\endgroup\noexpand\@addtoreset{glsxtr@linkcount@\glslabel}% + \edef\@glo@tmp{\endgroup\noexpand\@addtoreset{glsxtr@linkcount@\glslabel}% {\glsgetattribute{\glslabel}{linkcountmaster}}}% - \x + \@glo@tmp }% {}% }% @@ -13091,11 +13276,14 @@ defined}{}% {}% \ifdefempty\@gls@longaccess {% - \edef\@gls@shortaccess{\glsdefaultshortaccess +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@gls@shortaccess{\glsdefaultshortaccess {\expandonce\@gls@actuallong}{\expandonce\@gls@actualshort}}% }% {% - \edef\@gls@shortaccess{\glsdefaultshortaccess + \protected@edef\@gls@shortaccess{\glsdefaultshortaccess {\expandonce\@gls@longaccess}{\expandonce\@gls@actualshort}}% }% \eappto\ExtraCustomAbbreviationFields{shortaccess={\@gls@shortaccess},}% @@ -13120,11 +13308,14 @@ defined}{}% }% \ifdefempty\@gls@longaccesspl {% - \edef\@gls@shortaccesspl{\glsdefaultshortaccess +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@gls@shortaccesspl{\glsdefaultshortaccess {\expandonce\@gls@actuallongpl}{\expandonce\@gls@actualshortpl}}% }% {% - \edef\@gls@shortaccesspl{\glsdefaultshortaccess + \protected@edef\@gls@shortaccesspl{\glsdefaultshortaccess {\expandonce\@gls@longaccesspl}{\expandonce\@gls@actualshort}}% }% \eappto\ExtraCustomAbbreviationFields{shortpluralaccess={\@gls@shortaccesspl},}% @@ -14095,10 +14286,11 @@ defined}{}% % As from version 1.04, allow the \catattr{glossdescfont} attribute % to determine the font applied. %\changes{1.04}{2016-05-02}{added glossdescfont attribute check} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} \glshasattribute{#1}{glossdescfont}% {% - \edef\@glsxtr@attrval{\glsgetattribute{#1}{glossdescfont}}% + \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glossdescfont}}% \ifcsdef{\@glsxtr@attrval}% {% \letcs{\@glsxtr@glossdescfont}{\@glsxtr@attrval}% @@ -14139,7 +14331,10 @@ defined}{}% \glssetabbrvfmt{\glscategory{#1}}% \glshasattribute{#1}{glossdescfont}% {% - \edef\@glsxtr@attrval{\glsgetattribute{#1}{glossdescfont}}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glossdescfont}}% \ifcsdef{\@glsxtr@attrval}% {% \letcs{\@glsxtr@glossdescfont}{\@glsxtr@attrval}% @@ -14187,10 +14382,11 @@ defined}{}% % As from version 1.04, allow the \catattr{glossnamefont} attribute % to determine the font applied. %\changes{1.04}{2016-05-02}{added glossnamefont attribute check} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} \glshasattribute{#1}{glossnamefont}% {% - \edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}% + \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}% \ifcsdef{\@glsxtr@attrval}% {% \letcs{\@glsxtr@glossnamefont}{\@glsxtr@attrval}% @@ -14258,7 +14454,10 @@ defined}{}% \glssetabbrvfmt{\glscategory{#1}}% \glshasattribute{#1}{glossnamefont}% {% - \edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}% \ifcsdef{\@glsxtr@attrval}% {% \letcs{\@glsxtr@glossnamefont}{\@glsxtr@attrval}% @@ -14329,7 +14528,10 @@ defined}{}% % \begin{macrocode} \glshasattribute{#1}{glossnamefont}% {% - \edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}% \ifcsdef{\@glsxtr@attrval}% {% \letcs{\@glsxtr@glossnamefont}{\@glsxtr@attrval}% @@ -14361,7 +14563,10 @@ defined}{}% \glssetabbrvfmt{\glscategory{#1}}% \glshasattribute{#1}{glossnamefont}% {% - \edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}% \ifcsdef{\@glsxtr@attrval}% {% \letcs{\@glsxtr@glossnamefont}{\@glsxtr@attrval}% @@ -14441,13 +14646,14 @@ defined}{}% %This is essentially the reverse of \cs{@gls@fetchfield}, since the %field supplied to \cs{glossentryname} has to be the internal label, %but the \cs{gls\meta{field}accessdisplay} commands use the key name. +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} - \edef\@gls@thisval{#1}% + \protected@edef\@gls@thisval{#1}% \@for\@gls@map:=\@gls@keymap\do{% - \edef\@this@key{\expandafter\@secondoftwo\@gls@map}% + \protected@edef\@this@key{\expandafter\@secondoftwo\@gls@map}% \ifdefequal{\@this@key}{\@gls@thisval}% {% - \edef\@gls@thisval{\expandafter\@firstoftwo\@gls@map}% + \protected@edef\@gls@thisval{\expandafter\@firstoftwo\@gls@map}% \@endfortrue }% {}% @@ -14480,11 +14686,12 @@ defined}{}% \glsxtr@setaccessdisplay{#2}% % \end{macrocode} %Set the abbreviation format: +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} \glssetabbrvfmt{\glscategory{#1}}% \glshasattribute{#1}{glossnamefont}% {% - \edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}% + \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}% \ifcsdef{\@glsxtr@attrval}% {% \letcs{\@glsxtr@glossnamefont}{\@glsxtr@attrval}% @@ -14604,9 +14811,12 @@ defined}{}% \let\@glsxtr@attrval\@glsnumberformat \fi \fi +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{eappto} to \cs{protected@eappto}} +% \begin{macrocode} \ifdefstring{\@glsxtr@attrval}{true}% {}% - {\eappto\@glo@name{\@glsxtr@autoindex@encap\@glsxtr@attrval}}% + {\protected@eappto\@glo@name{\@glsxtr@autoindex@encap\@glsxtr@attrval}}% \expandafter\glsxtrautoindex\expandafter{\@glo@name}% }% {}% @@ -14918,6 +15128,7 @@ defined}{}% %\changes{1.4.2}{??}{new} %There are no case-changing attributes as it's less usual for %symbols. +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} \newrobustcmd*{\@glossentrysymbol}[1]{% \glsdoifexistsorwarn{#1}% @@ -14926,7 +15137,7 @@ defined}{}% \glssetabbrvfmt{\glscategory{#1}}% \glshasattribute{#1}{glosssymbolfont}% {% - \edef\@glsxtr@attrval{\glsgetattribute{#1}{glosssymbolfont}}% + \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glosssymbolfont}}% \ifcsdef{\@glsxtr@attrval}% {% \letcs{\@glsxtr@glosssymbolfont}{\@glsxtr@attrval}% @@ -15509,9 +15720,10 @@ defined}{}% % % If there's a style for the given category, it needs to be applied % by \cs{newabbreviation}. +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} \define@key{glsxtrabbrv}{category}{% - \edef\glscategorylabel{#1}% + \protected@edef\glscategorylabel{#1}% } % \end{macrocode} % Save the short plural form. This may be needed before the entry is @@ -17028,9 +17240,10 @@ defined}{}% \@glsxtr@dostylewarn % \end{macrocode} % Set up the style for the given category. +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} \csdef{@glsabbrv@current@#1}{#2}% - \edef\glscategorylabel{#1}% + \protected@edef\glscategorylabel{#1}% \glsxtr@applyabbrvstyle{#2}% }% }% @@ -25645,7 +25858,7 @@ defined}{}% %automatically loaded by the record option. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra-bib2gls}[2020/04/01 v1.45 (NLCT)] +\ProvidesPackage{glossaries-extra-bib2gls}[2021/09/20 v1.46 (NLCT)] % \end{macrocode} %Provide convenient shortcut commands for predefined glossary types. %\begin{macro}{\printunsrtacronyms} @@ -26045,17 +26258,20 @@ defined}{}% \def\@glsxtr@bibgls@removespaces#1 #2\@nil{% \toks@=\expandafter{\the\toks@#1}% \ifx\\#2\\% - \edef\x{\the\toks@}% - \ifx\x\empty +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{x} to \cs{@glo@tmp}} +% \begin{macrocode} + \edef\@glo@tmp{\the\toks@}% + \ifx\@glo@tmp\empty \else - \protected@edef\x{\glsentrycounter\@glo@counterprefix\the\toks@}% + \protected@edef\@glo@tmp{\glsentrycounter\@glo@counterprefix\the\toks@}% \ifdefvoid\glsxtrsupplocationurl {% - \expandafter\glsxtrfmtinternalnameref\expandafter{\x}% + \expandafter\glsxtrfmtinternalnameref\expandafter{\@glo@tmp}% {\@glsnumberformat}{\glsxtr@locationhypertext}% }% {% - \expandafter\glsxtrfmtexternalnameref\expandafter{\x}% + \expandafter\glsxtrfmtexternalnameref\expandafter{\@glo@tmp}% {\@glsnumberformat}{\glsxtr@locationhypertext}{\glsxtrsupplocationurl}% }% \fi @@ -26363,14 +26579,18 @@ defined}{}% % \end{macrocode} %Initialise to the unprefixed label in the event that the list is %empty. +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} % \begin{macrocode} - \edef\@gls@thislabel{#1}% + \protected@edef\@gls@thislabel{#1}% \@for\@glsxtr@prefix:=\@glsxtr@labelprefixes\do {% - \edef\@gls@thislabel{\@glsxtr@prefix#1}% + \protected@edef\@gls@thislabel{\@glsxtr@prefix#1}% \ifglsentryexists{\@gls@thislabel}{\@endfortrue}{}% }% - \edef\x{\endgroup\noexpand\def\noexpand\@gls@thislabel{\@gls@thislabel}}\x +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{x} to \cs{@glo@tmp}} +% \begin{macrocode} + \edef\@glo@tmp{\endgroup\noexpand\def\noexpand\@gls@thislabel{\@gls@thislabel}}\@glo@tmp } % \end{macrocode} %\end{macro} @@ -28730,7 +28950,7 @@ defined}{}% % First identify package: % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra-stylemods}[2020/04/01 v1.45 (NLCT)] +\ProvidesPackage{glossaries-extra-stylemods}[2021/09/20 v1.46 (NLCT)] % \end{macrocode} % Provide package options to automatically load required predefined % styles. The simplest method is to just test for the existence of @@ -29622,6 +29842,22 @@ defined}{}% \ifdef{\@glsstyle@tree} {% % \end{macrocode} +% The original \glostyle{alttree} style doesn't use \cs{glstreepredesc} +% but since v1.42 the modified style (below) has switched to using +% \cs{glstreeDescLoc} so provide an alternative that can be used +% with \glostyle{alttree}. +%\begin{macro}{\glsxtrtreepredesc} +%\changes{1.46}{2021-09-20}{new} +% \begin{macrocode} +\newcommand{\glsxtrtreepredesc}{\glstreepredesc} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\glsxtrtreechildpredesc} +%\changes{1.46}{2021-09-20}{new} +% \begin{macrocode} +\newcommand{\glsxtrtreechildpredesc}{\glstreechildpredesc} +% \end{macrocode} +%\end{macro} %Provide a command for use with the \glostyle{tree} styles that displays %the pre-description separator, the %description and post-description hook. @@ -29629,7 +29865,7 @@ defined}{}% %\changes{1.31}{2018-05-09}{new} % \begin{macrocode} \newcommand{\glstreedesc}[1]{% - \glstreepredesc\glossentrydesc{#1}\glspostdescription + \glsxtrtreepredesc\glossentrydesc{#1}\glspostdescription } % \end{macrocode} %\end{macro} @@ -29674,7 +29910,7 @@ defined}{}% %\changes{1.31}{2018-05-09}{new} % \begin{macrocode} \newcommand{\glstreechilddesc}[1]{% - \glstreechildpredesc\glossentrydesc{#1}\glspostdescription + \glsxtrtreechildpredesc\glossentrydesc{#1}\glspostdescription }% % \end{macrocode} %\end{macro} @@ -29909,6 +30145,18 @@ defined}{}% % \end{macrocode} % Only redefine this style if it's already been defined. % +%\begin{macro}{\glsalttreepredesc} +%\changes{1.46}{2021-09-20}{new} +% \begin{macrocode} +\newcommand{\glsalttreepredesc}{} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\glsalttreechildpredesc} +%\changes{1.46}{2021-09-20}{new} +% \begin{macrocode} +\newcommand{\glsalttreechildpredesc}{\glsalttreepredesc} +% \end{macrocode} +%\end{macro} %\begin{macro}{\glsxtralttreeSymbolDescLocation} %\changes{1.05}{2016-06-10}{new} %\begin{definition} @@ -29920,6 +30168,12 @@ defined}{}% \newcommand{\glsxtralttreeSymbolDescLocation}[2]{% {% \let\par\glsxtrAltTreePar +% \end{macrocode} +%\changes{1.46}{2021-09-20}{switch to using \cs{glsalttreepredesc} and +%\cs{glsalttreechildpredesc}} +% \begin{macrocode} + \let\glsxtrtreepredesc\glsalttreepredesc + \let\glsxtrtreechildpredesc\glsalttreechildpredesc \ifglshassymbol{#1}{(\glossentrysymbol{#1})\space}{}% % \end{macrocode} %\changes{1.41}{2019-04-09}{added check for description} @@ -30225,10 +30479,13 @@ defined}{}% {% \ifglshasparent{\@glo@label}% {% - \edef\@glo@parent{\csuse{glo@\glsdetoklabel{\@glo@label}@parent}}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@glo@parent{\csuse{glo@\glsdetoklabel{\@glo@label}@parent}}% \ifglshasparent{\@glo@parent}% {% - \edef\@glo@parent{\csuse{glo@\glsdetoklabel{\@glo@parent}@parent}}% + \protected@edef\@glo@parent{\csuse{glo@\glsdetoklabel{\@glo@parent}@parent}}% \ifglshasparent{\@glo@parent}% {}% {% @@ -30280,10 +30537,13 @@ defined}{}% {% \ifglshasparent{\@glo@label}% {% - \edef\@glo@parent{\csuse{glo@\glsdetoklabel{\@glo@label}@parent}}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}} +% \begin{macrocode} + \protected@edef\@glo@parent{\csuse{glo@\glsdetoklabel{\@glo@label}@parent}}% \ifglshasparent{\@glo@parent}% {% - \edef\@glo@parent{\csuse{glo@\glsdetoklabel{\@glo@parent}@parent}}% + \protected@edef\@glo@parent{\csuse{glo@\glsdetoklabel{\@glo@parent}@parent}}% \ifglshasparent{\@glo@parent}% {}% {% @@ -31053,7 +31313,7 @@ defined}{}% %\section{Package Initialisation and Options} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossary-bookindex}[2020/04/01 v1.45 (NLCT)] +\ProvidesPackage{glossary-bookindex}[2021/09/20 v1.46 (NLCT)] % \end{macrocode} %Load required packages. % \begin{macrocode} @@ -31549,7 +31809,7 @@ defined}{}% %Provides additional long styles. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossary-longextra}[2020/04/01 v1.45 (NLCT)] +\ProvidesPackage{glossary-longextra}[2021/09/20 v1.46 (NLCT)] % \end{macrocode} %Load required packages. % \begin{macrocode} @@ -32978,7 +33238,7 @@ defined}{}% %topic. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossary-topic}[2020/04/01 v1.45 (NLCT)] +\ProvidesPackage{glossary-topic}[2021/09/20 v1.46 (NLCT)] % \end{macrocode} %Load required package. % \begin{macrocode} @@ -33021,8 +33281,18 @@ defined}{}% \renewcommand{\subglossentry}[3]{% \ifnum\glstopic@prevlevel=0\relax\glstopic@prechildren\fi \def\glstopic@prevlevel{##1}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{grouping added to scope \cs{everypar} (bug 182)} +%Grouping is added to scope the effect of \cs{everypar}. +% \begin{macrocode} + \begingroup \glstopicAssignSubIndent{##1}% \glstopicSubItem{##1}{##2}{##3}% +% \end{macrocode} +%\changes{1.46}{2021-09-20}{added \cs{par} (bug 176)} +% \begin{macrocode} + \par + \endgroup }% \renewcommand*{\glsgroupskip}{}% } @@ -33133,11 +33403,32 @@ defined}{}% \par \parindent\dimexpr#1\glstopicSubIndent-\glstopicSubIndent\relax \glstopicAssignWidest{#1}% - \hangindent\dimexpr\parindent+\glstopicwidest\relax + \glstopicsubitemhangindent=\dimexpr\parindent+\glstopicwidest\relax + \hangindent\glstopicsubitemhangindent\relax +% \end{macrocode} +%\changes{1.46}{2021-09-20}{bug 182 maintain hangindent for multiple paragraphs} +% \begin{macrocode} + \everypar{\hangindent\glstopicsubitemhangindent\relax + \parindent\dimexpr\glstopicSubItemParIndent+\glstopicsubitemhangindent\relax}% } % \end{macrocode} %\end{macro} % +%\begin{macro}{\glstopicsubitemhangindent} +%\changes{1.46}{2021-09-20}{new} +% \begin{macrocode} +\newlength\glstopicsubitemhangindent +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\glstopicSubItemParIndent} +%\changes{1.46}{2021-09-20}{new} +% \begin{macrocode} +\newlength\glstopicSubItemParIndent +\glstopicSubItemParIndent\parindent +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\glstopicwidest} %\changes{1.40}{2019-03-22}{new} % \begin{macrocode} @@ -34127,6 +34418,182 @@ risus ut urna} %\fi %\iffalse % \begin{macrocode} +%<*example-glossaries-childmultipar.bib> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +% Encoding: UTF-8 +@entry{hiersedmattis, + user1 = {example-image}, + name = {sed mattis}, + description = {Erat sit amet dolor sit amet, consectetuer adipiscing elit. Ut purus +elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur +dictum gravida mauris. Ut pellentesque augue sed urna. Vestibulum +diam eros, fringilla et, consectetuer eu, nonummy id, sapien. Nullam +at lectus. In sagittis ultrices mauris. Curabitur malesuada erat sit +amet massa. Fusce blandit. Aliquam erat volutpat.} +} + +@entry{hierloremi-ii, + parent = {hiersedmattis}, + name = {lorem 1--2}, + description = {Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, +vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur +dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer +id, vulputate a, magna. Donec vehicula augue eu neque. Pellentesque +habitant morbi tristique senectus et netus et malesuada fames ac +turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla +et lectus vestibulum urna fringilla ultrices. Phasellus eu tellus +sit amet tortor gravida placerat. Integer sapien est, iaculis in, +pretium quis, viverra ac, nunc. Praesent eget sem vel leo ultrices +bibendum. Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar +at, mollis ac, nulla. Curabitur auctor semper nulla. Donec varius +orci eget risus. Duis nibh mi, congue eu, accumsan eleifend, +sagittis quis, diam. Duis eget orci sit amet orci dignissim rutrum. + +Nam dui ligula, fringilla a, euismod sodales, sollicitudin vel, +wisi. Morbi auctor lorem non justo. Nam lacus libero, pretium at, +lobortis vitae, ultricies et, tellus. Donec aliquet, tortor sed +accumsan bibendum, erat ligula aliquet magna, vitae ornare odio +metus a mi. Morbi ac orci et nisl hendrerit mollis. Suspendisse ut +massa. Cras nec ante. Pellentesque a nulla. Cum sociis natoque +penatibus et magnis dis parturient montes, nascetur ridiculus mus. +Aliquam tincidunt urna. Nulla ullamcorper vestibulum turpis. +Pellentesque cursus luctus mauris.} +} + +@entry{hierloremiii-iv, + user1 = {example-image}, + parent = {hiersedmattis}, + name = {lorem 3--4}, + description = {Nulla malesuada porttitor diam. Donec felis erat, congue non, +volutpat at, tincidunt tristique, libero. Vivamus viverra fermentum +felis. Donec nonummy pellentesque ante. Phasellus adipiscing semper +elit. Proin fermentum massa ac quam. Sed diam turpis, molestie +vitae, placerat a, molestie nec, leo. Maecenas lacinia. Nam ipsum +ligula, eleifend at, accumsan nec, suscipit a, ipsum. Morbi blandit +ligula feugiat magna. Nunc eleifend consequat lorem. Sed lacinia +nulla vitae enim. Pellentesque tincidunt purus vel magna. Integer +non enim. Praesent euismod nunc eu purus. Donec bibendum quam in +tellus. Nullam cursus pulvinar lectus. Donec et mi. Nam vulputate +metus eu enim. Vestibulum pellentesque felis eu massa. + +Quisque ullamcorper placerat ipsum. Cras nibh. Morbi vel justo +vitae lacus tincidunt ultrices. Lorem ipsum dolor sit amet, +consectetuer adipiscing elit. In hac habitasse platea dictumst. +Integer tempus convallis augue. Etiam facilisis. Nunc elementum +fermentum wisi. Aenean placerat. Ut imperdiet, enim sed gravida +sollicitudin, felis odio placerat quam, ac pulvinar elit purus eget +enim. Nunc vitae tortor. Proin tempus nibh sit amet nisl. Vivamus +quis tortor vitae risus porta vehicula.} +} + +@entry{hierloremv-vi, + parent = {hiersedmattis}, + name = {lorem 5--6}, + description = {Fusce mauris. Vestibulum luctus nibh at lectus. Sed bibendum, nulla +a faucibus semper, leo velit ultricies tellus, ac venenatis arcu +wisi vel nisl. Vestibulum diam. Aliquam pellentesque, augue quis +sagittis posuere, turpis lacus congue quam, in hendrerit risus eros +eget felis. Maecenas eget erat in sapien mattis porttitor. +Vestibulum porttitor. Nulla facilisi. Sed a turpis eu lacus commodo +facilisis. Morbi fringilla, wisi in dignissim interdum, justo lectus +sagittis dui, et vehicula libero dui cursus dui. Mauris tempor +ligula sed lacus. Duis cursus enim ut augue. Cras ac magna. Cras +nulla. Nulla egestas. Curabitur a leo. Quisque egestas wisi eget +nunc. Nam feugiat lacus vel est. Curabitur consectetuer.% + + +Suspendisse vel felis. Ut lorem lorem, interdum eu, tincidunt sit +amet, laoreet vitae, arcu. Aenean faucibus pede eu ante. Praesent +enim elit, rutrum at, molestie non, nonummy vel, nisl. Ut lectus +eros, malesuada sit amet, fermentum eu, sodales cursus, magna. Donec +eu purus. Quisque vehicula, urna sed ultricies auctor, pede lorem +egestas dui, et convallis elit erat sed nulla. Donec luctus. +Curabitur et nunc. Aliquam dolor odio, commodo pretium, ultricies +non, pharetra in, velit. Integer arcu est, nonummy in, fermentum +faucibus, egestas vel, odio.} +} + +@entry{hiergravida, + name = {gravida}, + description = {Malesuada libero, nonummy eget, consectetuer id, vulputate a, magna. Donec +vehicula augue eu neque. Pellentesque habitant morbi tristique +senectus et netus et malesuada fames ac turpis egestas. Mauris ut +leo. + +Morbi ultrices rutrum lorem. Nam elementum ullamcorper +leo. Morbi dui. Aliquam sagittis. Nunc placerat. Pellentesque +tristique sodales est. Maecenas imperdiet lacinia velit. Cras non +urna. Morbi eros pede, suscipit ac, varius vel, egestas non, eros.} +} + +@entry{hierloremvii-viii, + user1 = {example-image-b}, + parent = {hiergravida}, + name = {lorem 7--8}, + description = {Sed commodo posuere pede. Mauris ut est. Ut quis purus. Sed ac odio. +Sed vehicula hendrerit sem. Duis non odio. Morbi ut dui. Sed +accumsan risus eget odio. In hac habitasse platea dictumst. +Pellentesque non elit. Fusce sed justo eu urna porta tincidunt. +Mauris felis odio, sollicitudin sed, volutpat a, ornare ac, erat. +Morbi quis dolor. Donec pellentesque, erat ac sagittis semper, nunc +dui lobortis purus, quis congue purus metus ultricies tellus. Proin +et quam. Class aptent taciti sociosqu ad litora torquent per conubia +nostra, per inceptos hymenaeos. Praesent sapien turpis, fermentum +vel, eleifend faucibus, vehicula eu, lacus. + +Pellentesque habitant morbi tristique senectus et netus et malesuada +fames ac turpis egestas. Donec odio elit, dictum in, hendrerit sit +amet, egestas sed, leo. Praesent feugiat sapien aliquet odio. +Integer vitae justo. Aliquam vestibulum fringilla lorem. Sed neque +lectus, consectetuer at, consectetuer sed, eleifend ac, lectus. +Nulla facilisi. Pellentesque eget lectus. Proin eu metus. Sed +porttitor. In hac habitasse platea dictumst. Suspendisse eu lectus. +Ut mi mi, lacinia sit amet, placerat et, mollis vitae, dui. Sed ante +tellus, tristique ut, iaculis eu, malesuada ac, dui. Mauris nibh +leo, facilisis non, adipiscing quis, ultrices a, dui.} +} + +@entry{hierloremix-x, + user1 = {example-image-c}, + parent = {hiergravida}, + name = {lorem 9--10}, + description = {Morbi luctus, wisi viverra faucibus pretium, nibh est placerat odio, +nec commodo wisi enim eget quam. Quisque libero justo, consectetuer +a, feugiat vitae, porttitor eu, libero. Suspendisse sed mauris +vitae elit sollicitudin malesuada. Maecenas ultricies eros sit amet +ante. Ut venenatis velit. Maecenas sed mi eget dui varius euismod. +Phasellus aliquet volutpat odio. Vestibulum ante ipsum primis in +faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque +sit amet pede ac sem eleifend consectetuer. Nullam elementum, urna +vel imperdiet sodales, elit ipsum pharetra ligula, ac pretium ante +justo a nulla. Curabitur tristique arcu eu metus. Vestibulum lectus. +Proin mauris. Proin eu nunc eu urna hendrerit faucibus. Aliquam +auctor, pede consequat laoreet varius, eros tellus scelerisque quam, +pellentesque hendrerit ipsum dolor sed augue. Nulla nec lacus. + +Suspendisse vitae elit. Aliquam arcu neque, ornare in, ullamcorper +quis, commodo eu, libero. Fusce sagittis erat at erat tristique +mollis. Maecenas sapien libero, molestie et, lobortis in, sodales +eget, dui. Morbi ultrices rutrum lorem. Nam elementum ullamcorper +leo. Morbi dui. Aliquam sagittis. Nunc placerat. Pellentesque +tristique sodales est. Maecenas imperdiet lacinia velit. Cras non +urna. Morbi eros pede, suscipit ac, varius vel, egestas non, eros. +Praesent malesuada, diam id pretium elementum, eros sem dictum +tortor, vel consectetuer odio sem sed wisi.} +} + +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} %<*example-glossaries-childnoname.bib> % \end{macrocode} %\fi @@ -34888,6 +35355,193 @@ bibendum quam in tellus.} %\fi %\iffalse % \begin{macrocode} +%<*example-glossaries-longchild.bib> +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +% Encoding: UTF-8 +@entry{longsedmattis, + name = {sed mattis}, + description = {erat sit amet dolor sit amet, consectetuer adipiscing elit. Ut purus +elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur +dictum gravida mauris.} +} + +@entry{longgravida, + parent = {longsedmattis}, + name = {gravida}, + description = {malesuada libero, nonummy eget, consectetuer id, vulputate a, magna. Donec +vehicula augue eu neque. Pellentesque habitant morbi tristique +senectus et netus et malesuada fames ac turpis egestas. Mauris ut +leo.} +} + +@entry{longelitaugue, + parent = {longsedmattis}, + name = {elit augue}, + description = {egestas diam metus rhoncus sem. Nulla et lectus vestibulum +urna fringilla ultrices. Phasellus eu tellus sit amet tortor gravida +placerat.} +} + +@entry{longtempus, + parent = {longsedmattis}, + name = {tempus}, + description = {scelerisque est, iaculis in, pretium quis, viverra ac, +nunc. Praesent eget sem vel leo ultrices bibendum. Aenean +faucibus.} +} + +@entry{longnunc, + name = {nunc}, + description = {nisl vitae nulla, malesuada eu, pulvinar at, mollis ac, nulla. +Curabitur auctor semper nulla. Donec varius orci eget risus. Duis +nibh mi, congue eu, accumsan eleifend, sagittis quis, diam. Duis +eget orci sit amet orci dignissim rutrum.} +} + +@entry{longlibero, + parent = {longnunc}, + name = {libero}, + description = {sed consequat ligula, fringilla a, euismod sodales, +sollicitudin vel, wisi. Morbi auctor lorem non justo.} +} + +@entry{longfeugiat, + parent = {longnunc}, + name = {feugiat}, + description = {massa libero, pretium at, lobortis vitae, ultricies et, +tellus. Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet magna, +vitae ornare odio metus a mi.} +} + +@entry{longporta, + parent = {longnunc}, + name = {porta}, + description = {eros in eleifend orci et nisl hendrerit mollis. Suspendisse ut massa. +Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatibus +et magnis dis parturient montes, nascetur ridiculus mus.} +} + +@entry{longvariuserat, + parent = {longnunc}, + name = {varius erat}, + description = {leo rutrum dui tincidunt urna. Nulla ullamcorper +vestibulum turpis. Pellentesque cursus luctus mauris.} +} + +@entry{longnonconvallis, + name = {non convallis}, + description = {lectus orci ut nibh porttitor diam. Donec felis erat, +congue non, volutpat at, tincidunt tristique, libero. Vivamus +viverra fermentum felis.} +} + +@entry{longsedlorem, + parent = {longnonconvallis}, + name = {sedlorem}, + description = {massa pellentesque ante. Phasellus +adipiscing semper elit. Proin fermentum massa ac quam. Sed diam +turpis, molestie vitae, placerat a, molestie nec, leo.} +} + +@entry{longnonummyquis, + parent = {longnonconvallis}, + name = {nonummy +quis}, + description = {egestas id nam ipsum ligula, eleifend at, accumsan nec, suscipit +a, ipsum. Morbi blandit ligula feugiat magna. Nunc eleifend consequat +lorem.} +} + +@entry{longcondimentum, + name = {condimentum}, + description = {at nisl nulla vitae enim. Pellentesque tincidunt purus +vel magna. Integer non enim. Praesent euismod nunc eu purus. Donec +bibendum quam in tellus.} +} + +@entry{longmaecenas, + parent = {longcondimentum}, + name = {maecenas}, + description = {at nibh fringilla a, euismod sodales, sollicitudin vel, +wisi. Morbi auctor lorem non justo. Nam lacus libero, pretium at, +lobortis vitae, ultricies et, tellus. Donec aliquet, tortor sed +accumsan bibendum, erat ligula aliquet magna, vitae ornare odio +metus a mi. Morbi ac orci et nisl hendrerit mollis. Suspendisse ut +massa. Cras nec ante. Pellentesque a nulla. Cum sociis natoque +penatibus et magnis dis parturient montes, nascetur ridiculus mus. +Aliquam tincidunt urna. Nulla ullamcorper vestibulum turpis. +Pellentesque cursus luctus mauris.} +} + +@entry{longaliquamet, + name = {aliquam et}, + description = {augue felis erat, congue non, +volutpat at, tincidunt tristique, libero. Vivamus viverra fermentum +felis. Donec nonummy pellentesque ante.} +} + +@entry{longatnunc, + parent = {longaliquamet}, + name = {at nunc}, + description = {pellentesque ullamcorper el justo +vitae lacus tincidunt ultrices. Lorem ipsum dolor sit amet, +consectetuer adipiscing elit.} +} + +@entry{longduisnisl, + parent = {longatnunc}, + name = {duisnisl}, + description = {laoreet suscipit ac venenatis arcu +wisi vel nisl. Vestibulum diam. Aliquam pellentesque, augue quis +sagittis posuere, turpis lacus congue quam, in hendrerit risus eros +eget felis. Maecenas eget erat in sapien mattis porttitor.} +} + +@entry{longduisnibh, + parent = {longatnunc}, + name = {duisnibh}, + description = {convallis ut justo lectus +sagittis dui, et vehicula libero dui cursus dui. Mauris tempor +ligula sed lacus. Duis cursus enim ut augue. Cras ac magna.} +} + +@entry{longrutrum, + name = {rutrum}, + description = {id, enim elit, rutrum at, molestie non, nonummy vel, nisl. Ut lectus +eros, malesuada sit amet, fermentum eu, sodales cursus, magna. Donec +eu purus. Quisque vehicula, urna sed ultricies auctor, pede lorem +egestas dui, et convallis elit erat sed nulla.} +} + +@entry{longphasellus, + parent = {longrutrum}, + name = {phasellus}, + description = {odio volutpat a, ornare ac, erat. +Morbi quis dolor. Donec pellentesque, erat ac sagittis semper, nunc +dui lobortis purus, quis congue purus metus ultricies tellus. Proin +et quam.} +} + +@entry{longnullanulla, + parent = {longrutrum}, + name = {nulla nulla}, + description = {elit, molestie non wisi viverra faucibus pretium, nibh est placerat odio, +nec commodo wisi enim eget quam. Quisque libero justo, consectetuer +a, feugiat vitae, porttitor eu, libero.} +} + +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} +% +% \end{macrocode} +%\fi +%\iffalse +% \begin{macrocode} %<*example-glossaries-multipar.bib> % \end{macrocode} %\fi diff --git a/macros/latex/contrib/glossaries-extra/glossaries-extra.ins b/macros/latex/contrib/glossaries-extra/glossaries-extra.ins index cc2f94010c..298b3991a9 100644 --- a/macros/latex/contrib/glossaries-extra/glossaries-extra.ins +++ b/macros/latex/contrib/glossaries-extra/glossaries-extra.ins @@ -1,10 +1,10 @@ -% glossaries-extra.ins generated using makedtx version 1.2 2020/4/1 13:56 +% glossaries-extra.ins generated using makedtx version 1.2 2021/9/22 14:44 \input docstrip \preamble glossaries-extra.dtx - Copyright 2020 Nicola Talbot + Copyright 2021 Nicola Talbot This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 @@ -18,7 +18,7 @@ The Current Maintainer of this work is Nicola Talbot. - This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib. + This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib. \endpreamble @@ -42,10 +42,12 @@ \file{example-glossaries-acronym.bib}{\nopreamble\nopostamble\from{glossaries-extra.dtx}{example-glossaries-acronym.bib}} \file{example-glossaries-acronyms-lang.bib}{\nopreamble\nopostamble\from{glossaries-extra.dtx}{example-glossaries-acronyms-lang.bib}} \file{example-glossaries-brief.bib}{\nopreamble\nopostamble\from{glossaries-extra.dtx}{example-glossaries-brief.bib}} +\file{example-glossaries-childmultipar.bib}{\nopreamble\nopostamble\from{glossaries-extra.dtx}{example-glossaries-childmultipar.bib}} \file{example-glossaries-childnoname.bib}{\nopreamble\nopostamble\from{glossaries-extra.dtx}{example-glossaries-childnoname.bib}} \file{example-glossaries-cite.bib}{\nopreamble\nopostamble\from{glossaries-extra.dtx}{example-glossaries-cite.bib}} \file{example-glossaries-images.bib}{\nopreamble\nopostamble\from{glossaries-extra.dtx}{example-glossaries-images.bib}} \file{example-glossaries-long.bib}{\nopreamble\nopostamble\from{glossaries-extra.dtx}{example-glossaries-long.bib}} +\file{example-glossaries-longchild.bib}{\nopreamble\nopostamble\from{glossaries-extra.dtx}{example-glossaries-longchild.bib}} \file{example-glossaries-multipar.bib}{\nopreamble\nopostamble\from{glossaries-extra.dtx}{example-glossaries-multipar.bib}} \file{example-glossaries-parent.bib}{\nopreamble\nopostamble\from{glossaries-extra.dtx}{example-glossaries-parent.bib}} \file{example-glossaries-symbolnames.bib}{\nopreamble\nopostamble\from{glossaries-extra.dtx}{example-glossaries-symbolnames.bib}} diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-abbr-styles.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-abbr-styles.pdf index f90e2bf9e0..b1299241f2 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-abbr-styles.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-abbr-styles.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-abbrv.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-abbrv.pdf index 3ba4c0d2c3..2400e7c85c 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-abbrv.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-abbrv.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-accsupp.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-accsupp.pdf index c070b1a1c1..198218b782 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-accsupp.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-accsupp.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-acronym-desc.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-acronym-desc.pdf index b1ca94ef98..37562e0818 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-acronym-desc.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-acronym-desc.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-acronym.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-acronym.pdf index e5d3aabee0..ff21c49fcb 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-acronym.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-acronym.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-alias.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-alias.pdf index 5f95e8c10d..257379eeb2 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-alias.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-alias.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-altmodifier.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-altmodifier.pdf index 4bf0cfc14b..2d3943e797 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-altmodifier.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-altmodifier.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-alttree-marginpar.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-alttree-marginpar.pdf index d87c56c028..b04fd8815e 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-alttree-marginpar.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-alttree-marginpar.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-alttree-sym.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-alttree-sym.pdf index 6b2326755e..5cd51b3fe3 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-alttree-sym.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-alttree-sym.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-alttree.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-alttree.pdf index 5ace7e5e2e..67ac0e9685 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-alttree.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-alttree.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-autoindex-hyp.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-autoindex-hyp.pdf index cf75773e80..d26fcb43ec 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-autoindex-hyp.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-autoindex-hyp.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-autoindex.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-autoindex.pdf index 44d3c2df33..3a355e13db 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-autoindex.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-autoindex.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-crossref.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-crossref.pdf index 6656a68b92..975fc7d22f 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-crossref.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-crossref.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-crossref2.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-crossref2.pdf index 0dc9e3931c..d3f6f7e928 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-crossref2.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-crossref2.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-docdef.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-docdef.pdf index 1b88b47f31..5dbe569182 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-docdef.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-docdef.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-entrycount.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-entrycount.pdf index f376f4b6e8..4cbd165528 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-entrycount.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-entrycount.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-external.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-external.pdf index cdcf6be76a..02c66a6935 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-external.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-external.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-fmt.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-fmt.pdf index 9d57d9290a..93864f595a 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-fmt.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-fmt.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-footnote.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-footnote.pdf index 4b0605157c..a858c01203 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-footnote.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-footnote.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-header.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-header.pdf index f48bb2ab24..5e45a1b41e 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-header.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-header.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-indexhook.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-indexhook.pdf index 78849f09e4..1d0ede157d 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-indexhook.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-indexhook.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-initialisms.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-initialisms.pdf index 3ccebde9f1..fce7ed81a7 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-initialisms.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-initialisms.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-linkcount.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-linkcount.pdf index d0bd830ca0..82cb9cd64a 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-linkcount.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-linkcount.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-mixed-abbrv-styles.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-mixed-abbrv-styles.pdf index ead60a83b4..7af132fb1c 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-mixed-abbrv-styles.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-mixed-abbrv-styles.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-mixedsort.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-mixedsort.pdf index 6aedfbfd3b..229d7922cd 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-mixedsort.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-mixedsort.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-mixture.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-mixture.pdf index 642c20dbf7..d5fa7b0a80 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-mixture.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-mixture.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-name-font.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-name-font.pdf index 32a0b98094..93e99f7519 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-name-font.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-name-font.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-nested.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-nested.pdf index 5da7a933d6..5e063f838a 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-nested.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-nested.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-noidx-restricteddocdefs.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-noidx-restricteddocdefs.pdf index 28bdb492a3..283df168fc 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-noidx-restricteddocdefs.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-noidx-restricteddocdefs.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-onelink.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-onelink.pdf index 3a408d73d1..a601bd8488 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-onelink.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-onelink.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-onthefly-utf8.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-onthefly-utf8.pdf index e381014d44..91f073b81b 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-onthefly-utf8.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-onthefly-utf8.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-onthefly-xetex.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-onthefly-xetex.pdf index 5c4220a185..286372c39d 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-onthefly-xetex.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-onthefly-xetex.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-onthefly.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-onthefly.pdf index eee065e89a..566b741cea 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-onthefly.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-onthefly.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-pages.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-pages.pdf index e86ecc0201..33ac172987 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-pages.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-pages.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-postdot.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-postdot.pdf index 8d4c7cdc2e..f93e89c9d1 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-postdot.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-postdot.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-postlink.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-postlink.pdf index a4c0b17bda..eca5f53942 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-postlink.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-postlink.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-prefix.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-prefix.pdf index 3eede737cf..800f944c73 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-prefix.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-prefix.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-record-nameref.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-record-nameref.pdf index e37e644536..a4733fb80f 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-record-nameref.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-record-nameref.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-record.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-record.pdf index d003fbd686..b3d2a6d6ec 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-record.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-record.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-restricteddocdefs.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-restricteddocdefs.pdf index 4b702408d2..f59d5c8939 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-restricteddocdefs.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-restricteddocdefs.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-suppl-hyp.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-suppl-hyp.pdf index 2b624456f4..929979828e 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-suppl-hyp.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-suppl-hyp.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-suppl-main-hyp.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-suppl-main-hyp.pdf index f4123f6561..b16334edb1 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-suppl-main-hyp.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-suppl-main-hyp.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-suppl-main.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-suppl-main.pdf index 63142c9f26..472db7f7e5 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-suppl-main.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-suppl-main.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-suppl.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-suppl.pdf index b3978b8883..e4f92a66ca 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-suppl.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-suppl.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-trans.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-trans.pdf index f2f7259725..d101c737ab 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-trans.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-trans.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-undef.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-undef.pdf index 82d972fd7d..6d3589f719 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-undef.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-undef.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample-unitentrycount.pdf b/macros/latex/contrib/glossaries-extra/samples/sample-unitentrycount.pdf index ad37602acd..c55c48ed61 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample-unitentrycount.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample-unitentrycount.pdf differ diff --git a/macros/latex/contrib/glossaries-extra/samples/sample.pdf b/macros/latex/contrib/glossaries-extra/samples/sample.pdf index 61564941cd..3d229abd18 100644 Binary files a/macros/latex/contrib/glossaries-extra/samples/sample.pdf and b/macros/latex/contrib/glossaries-extra/samples/sample.pdf differ -- cgit v1.2.3