From 0dd6631d97c3dfb673037310f137101006db1151 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 10 May 2018 21:38:06 +0000 Subject: glossaries-extra (10may18) git-svn-id: svn://tug.org/texlive/trunk@47666 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/doc/latex/glossaries-extra/CHANGES | 55 + .../texmf-dist/doc/latex/glossaries-extra/README | 4 +- .../glossaries-extra/glossaries-extra-code.pdf | Bin 1133914 -> 1154871 bytes .../glossaries-extra/glossaries-extra-manual.html | 10484 ++++++++++--------- .../glossaries-extra/glossaries-extra-manual.pdf | Bin 672239 -> 693131 bytes .../glossaries-extra/glossaries-extra-manual.tex | 356 +- .../latex/glossaries-extra/sample-abbr-styles.pdf | Bin 512962 -> 512962 bytes .../doc/latex/glossaries-extra/sample-abbrv.pdf | Bin 44761 -> 44761 bytes .../doc/latex/glossaries-extra/sample-accsupp.pdf | Bin 80757 -> 82623 bytes .../doc/latex/glossaries-extra/sample-accsupp.tex | 23 +- .../latex/glossaries-extra/sample-acronym-desc.pdf | Bin 50368 -> 50368 bytes .../doc/latex/glossaries-extra/sample-acronym.pdf | Bin 36745 -> 36745 bytes .../doc/latex/glossaries-extra/sample-alias.pdf | Bin 43875 -> 43875 bytes .../latex/glossaries-extra/sample-altmodifier.pdf | Bin 35308 -> 35308 bytes .../glossaries-extra/sample-alttree-marginpar.pdf | Bin 91061 -> 91061 bytes .../latex/glossaries-extra/sample-alttree-sym.pdf | Bin 69532 -> 69532 bytes .../doc/latex/glossaries-extra/sample-alttree.pdf | Bin 54866 -> 54866 bytes .../glossaries-extra/sample-autoindex-hyp.pdf | Bin 141972 -> 141888 bytes .../latex/glossaries-extra/sample-autoindex.pdf | Bin 161463 -> 161329 bytes .../doc/latex/glossaries-extra/sample-crossref.pdf | Bin 41294 -> 41294 bytes .../latex/glossaries-extra/sample-crossref2.pdf | Bin 41613 -> 41613 bytes .../doc/latex/glossaries-extra/sample-docdef.pdf | Bin 45257 -> 45257 bytes .../latex/glossaries-extra/sample-entrycount.pdf | Bin 54623 -> 54623 bytes .../doc/latex/glossaries-extra/sample-external.pdf | Bin 55786 -> 55786 bytes .../doc/latex/glossaries-extra/sample-fmt.pdf | Bin 97563 -> 97563 bytes .../doc/latex/glossaries-extra/sample-footnote.pdf | Bin 63232 -> 63232 bytes .../doc/latex/glossaries-extra/sample-header.pdf | Bin 125912 -> 125912 bytes .../latex/glossaries-extra/sample-indexhook.pdf | Bin 42722 -> 42722 bytes .../latex/glossaries-extra/sample-initialisms.pdf | Bin 81618 -> 81618 bytes .../latex/glossaries-extra/sample-linkcount.pdf | Bin 38234 -> 38234 bytes .../glossaries-extra/sample-mixed-abbrv-styles.pdf | Bin 57823 -> 57823 bytes .../latex/glossaries-extra/sample-mixedsort.pdf | Bin 45154 -> 45154 bytes .../doc/latex/glossaries-extra/sample-mixture.pdf | Bin 159906 -> 159771 bytes .../latex/glossaries-extra/sample-name-font.pdf | Bin 202094 -> 202094 bytes .../doc/latex/glossaries-extra/sample-nested.pdf | Bin 67736 -> 67736 bytes .../sample-noidx-restricteddocdefs.pdf | Bin 47582 -> 47582 bytes .../doc/latex/glossaries-extra/sample-onelink.pdf | Bin 44527 -> 44527 bytes .../glossaries-extra/sample-onthefly-utf8.pdf | Bin 106071 -> 106071 bytes .../glossaries-extra/sample-onthefly-xetex.pdf | Bin 19862 -> 19865 bytes .../doc/latex/glossaries-extra/sample-onthefly.pdf | Bin 43481 -> 43481 bytes .../doc/latex/glossaries-extra/sample-pages.pdf | Bin 38801 -> 38801 bytes .../doc/latex/glossaries-extra/sample-postdot.pdf | Bin 37059 -> 37059 bytes .../doc/latex/glossaries-extra/sample-postlink.pdf | Bin 67890 -> 67890 bytes .../doc/latex/glossaries-extra/sample-prefix.pdf | Bin 33119 -> 33119 bytes .../doc/latex/glossaries-extra/sample-record.pdf | Bin 48050 -> 48154 bytes .../glossaries-extra/sample-restricteddocdefs.pdf | Bin 47895 -> 47895 bytes .../latex/glossaries-extra/sample-suppl-hyp.pdf | Bin 34944 -> 34944 bytes .../glossaries-extra/sample-suppl-main-hyp.pdf | Bin 46402 -> 46402 bytes .../latex/glossaries-extra/sample-suppl-main.pdf | Bin 31607 -> 31607 bytes .../doc/latex/glossaries-extra/sample-suppl.pdf | Bin 13423 -> 13423 bytes .../doc/latex/glossaries-extra/sample-trans.pdf | Bin 49455 -> 49455 bytes .../doc/latex/glossaries-extra/sample-undef.pdf | Bin 33231 -> 33231 bytes .../glossaries-extra/sample-unitentrycount.pdf | Bin 61051 -> 61051 bytes .../doc/latex/glossaries-extra/sample.pdf | Bin 45747 -> 45747 bytes .../latex/glossaries-extra/glossaries-extra.dtx | 812 +- .../latex/glossaries-extra/glossaries-extra.ins | 2 +- .../glossaries-extra/glossaries-extra-bib2gls.sty | 6 +- .../glossaries-extra-stylemods.sty | 63 +- .../latex/glossaries-extra/glossaries-extra.sty | 306 +- .../latex/glossaries-extra/glossary-bookindex.sty | 2 +- 60 files changed, 7237 insertions(+), 4876 deletions(-) (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/CHANGES b/Master/texmf-dist/doc/latex/glossaries-extra/CHANGES index f5363739d21..d5dfeea2644 100644 --- a/Master/texmf-dist/doc/latex/glossaries-extra/CHANGES +++ b/Master/texmf-dist/doc/latex/glossaries-extra/CHANGES @@ -1,3 +1,58 @@ +1.31 (2018-05-09): + + * glossaries-extra.sty: + + - added \glsdefpostlink, \glsdefpostname, \glsdefpostdesc + + - added \glsxtrpostlinkAddSymbolDescOnFirstUse + + - added \glslocalreseteach and \glslocalunseteach + + - added \glsaddeach + + - added \GlsXtrIfFieldEqXpStr, \GlsXtrIfXpFieldEqXpStr + \GlsXtrIfFieldNonZero, \GlsXtrIfFieldEqNum and + \GlsXtrIfFieldCmpNum + + - added \GlsXtrForUnsetBufferedList + + - added starred version \GlsXtrStartUnsetBuffering* + + - added prefix key to the glslink and printgloss families + + - added support for accessibility attributes: + accessinsertdots, accessaposplural, accessnoshortplural, + nameshortaccess, firstshortaccess, textshortaccess + + - added \GlsXtrStandaloneGlossaryType and + \GlsXtrStandaloneSubEntryItem + + - added \glsxtrRevertTocMarks + + - added warning if \printglossary is used with record=only + + - bug fix: corrected targetnameprefix + + * glossaries-extra-bib2gls.sty: + + - added \glscapturedgroup + + - added \GlsXtrIfHasNonZeroChildCount + + * glossaries-extra-stylemods.sty: + + - added: + + \glstreedefaultnamefmt + \glstreenonamedesc + \glstreenonamesymbol + \glstreenonamechilddesc + \glstreedesc + \glstreesymbol + \glstreechilddesc + \glstreechildsymbol + \glslistdesc + 1.30 (2018-04-25): * glossaries-extra.sty: diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/README b/Master/texmf-dist/doc/latex/glossaries-extra/README index 5a13a8cd2bd..8b474da1ce4 100644 --- a/Master/texmf-dist/doc/latex/glossaries-extra/README +++ b/Master/texmf-dist/doc/latex/glossaries-extra/README @@ -1,6 +1,6 @@ -LaTeX Package : glossaries-extra v1.30 +LaTeX Package : glossaries-extra v1.31 -Last Modified : 2018-04-25 +Last Modified : 2018-05-09 Author : Nicola Talbot diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/glossaries-extra-code.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/glossaries-extra-code.pdf index b22ba4e7134..35a2dc19e86 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/glossaries-extra-code.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/glossaries-extra-code.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/glossaries-extra-manual.html b/Master/texmf-dist/doc/latex/glossaries-extra/glossaries-extra-manual.html index 0f146da6604..d696d1e2187 100644 --- a/Master/texmf-dist/doc/latex/glossaries-extra/glossaries-extra-manual.html +++ b/Master/texmf-dist/doc/latex/glossaries-extra/glossaries-extra-manual.html @@ -217,7 +217,7 @@ a span.HoLogo-TeX span.HoLogo-e{text-decoration:none;} >

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

@@ -241,7 +241,7 @@ href="http://www.dickimaw-books.com/" class="url" >http://www.dickimaw-books.com/

2018-04-25

+class="cmr-12">2018-05-09

@@ -327,6 +327,15 @@ href="http://mirrors.ctan.org/macros/latex/contrib/glossaries-extra/glossaries-e
  • The glossaries-extra gallery. +
  • +
  • glossaries-extra and bib2gls: An Introductory Guide. + (bib2gls-begin.pdf).
  • 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 @@ -476,10 +485,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 @@ -489,7 +498,7 @@ 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:

    -

    This is like: +

    This is like: @@ -590,7 +599,7 @@ Commands and Styles).  
    \usepackage[toc,nopostdot]{glossaries}  
    \usepackage{glossaries-extra}

    -

    +

  • @@ -602,7 +611,7 @@ Commands and Styles).  
    \usepackage{babel}  
    \usepackage{glossaries-extra}
  • -

    This is like: +

    This is like: @@ -613,7 +622,7 @@ Commands and Styles).  
    \usepackage[toc,nopostdot,translate=babel]{glossaries}  
    \usepackage{glossaries-extra} -

    +

  • @@ -624,7 +633,7 @@ Commands and Styles). \documentclass{memoir}  
    \usepackage{glossaries-extra} -

    This is like: +

    This is like: @@ -634,7 +643,7 @@ Commands and Styles).  
    \usepackage[toc,nopostdot,noredefwarn]{glossaries}  
    \usepackage{glossaries-extra} -

    However @@ -645,7 +654,7 @@ class="cmti-10">However  
    \usepackage{glossaries}  
    \usepackage{glossaries-extra} -

    This is like: +

    This is like: @@ -655,19 +664,19 @@ class="cmti-10">However  
    \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

    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 \printglossaries  
    \end{document} -

    The above document will only display the list of acronyms at the place where +

    The above document will only display the list of acronyms at the place where \printglossaries 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: @@ -718,7 +727,7 @@ Warning: File 'test.glo' is empty.  
    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 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 .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 @@ -776,19 +785,19 @@ class="cmss-10">nomain\printglossaries  
    \end{document} -

    (Note the need to set the acronym style using

    (Note the need to set the acronym style using \setabbreviationstyle before \newacronym. See §3 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: @@ -838,7 +847,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  \glsxtrwrglossmark

    -

    +

    to show a mark just before the write operation performed by the indexing commands. If you use makeindex or id="dx1-4013">xindy. -

    The

    The debug=allpostpunc=; does

    -

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

    The value may also be one of the following keywords:

    comma=comma \renewcommand{\glspostdescription}{,}
    -

    +

    dot=dot \renewcommand{\glspostdescription}{.\spacefactor\sfcode`\. }
    -

    +

    none=none \renewcommand{\glspostdescription}{} -

    -

    The default definition is +

    +

    The default definition is @@ -982,7 +991,7 @@ class="cmss-10">=none  \ifglsnopostdot\else.\spacefactor\sfcode`\. \fi  
    } -

    where the conditional is determined by the

    where the conditional is determined by the nopostdot package option. @@ -1000,7 +1009,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 accsuppLoad the glossaries-accsupp package (if not already loaded). -

    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 §11.2 Accessibility Support for further details.) -

    Note that the

    Note that the accsupp option can only be used as a package option (not @@ -1136,7 +1145,7 @@ href="#styopt.undefaction">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

    +

    indexcrossrefs to false. -

    Note that

    Note that bib2gls\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 @@ -1227,7 +1236,7 @@ class="cmss-10">=false \newglossaryentry{foo}{name={foo},description={},see={bar,baz}} -

    then with

    then with autoseeindex=true, this is equivalent to @@ -1239,7 +1248,7 @@ class="cmtt-10">autoseeindex=true, this is equivalent to  
    \glossariesextrasetup{indexcrossrefs=true}  
    \GlsXtrSetField{foo}{see}{bar,baz} -

    but with

    but with autoseeindex=false, this is equivalent to @@ -1249,7 +1258,7 @@ class="cmtt-10">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 @@ -1259,9 +1268,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. @@ -1285,7 +1294,7 @@ class="cmtt-10">bib2gls§9 bib2gls: Managing Reference Databases). -

    The option may only be set in the preamble and can’t be used after +

    The option may only be set in the preamble and can’t be used after \GlsXtrLoadResources. If the value is missing glossaries-extra-bib2glsglossaries-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): @@ -1345,8 +1354,8 @@ class="cmtt-10">myDoc.tex):  
    bib2gls myDoc  
    pdflatex myDoc -

    -

    Note that

    +

    Note that record=onlybib2glssee field was already set for that entry. -

    The

    The record=onlybib2gls--log-file or -t option.) -

    The glossaries should be displayed using

    The glossaries should be displayed using \printglossary (or \printglossaries). This option is expected to be used with sort=none setting and so glossaries-extra-bib2gls is not automatically loaded. -

    The document build process is (assuming the file is called

    The document build process is (assuming the file is called myDoc.tex): @@ -1443,8 +1452,8 @@ class="cmtt-10">myDoc.tex):  
    makeglossaries myDoc  
    pdflatex myDoc -

    -

    With the recording on (

    +

    With the recording on (record=onlycounter=wrglossary. -

    This option works by incrementing

    -

    -

    -

    By default (with

    +

    +

    By default (with hyperref), the page numbers in makeindex will try to form into class="cmss-10">page counter was used. -

    Since

    Since bib2gls--no-merge-wrglossary-records 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 \newglossaryentry. (For example, when the glossary is dis class="E">EX 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\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.aux and .gls files).

    -

    The

    The glossaries package allows \newglossaryentry within the document=true 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 abbreviations and redefines \glsxtrabbrvtype to this label. In addition, it defines a shortcut command -



    \printabbreviations  \printabbreviations[options]

    -

    +

    which is equivalent to

    options]
    The title of the new glossary is given by -



    \abbreviationsname  \abbreviationsname

    -

    +

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

    If you don’t use the

    If you don’t use the abbreviations 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 main:

    -

    -

    Note that there are no analogous options to the

    +

    Note that there are no analogous options to the glossaries package’s acronymlistssymbols

    This is passed to glossaries but will additionally define -



    \glsxtrnewsymbol  }{symbol}

    -

    +

    which is equivalent to

    numbers
    This is passed to glossaries but will additionally define -



    \glsxtrnewnumber  options]{number}

    -

    +

    which is equivalent to

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

    Note that multiple invocations of the

    Note that multiple invocations of the shortcuts 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  \glossariesextrasetup{options}

    -

    +

    The abbreviations\makenoidxglossaries -

    -

    +

    Top

    2. Modifications to Existing Commands and Styles

    -

    The

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



    \glsxtrnopostpunc  \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 @@ -2167,12 +2176,12 @@ class="cmtt-10">\glsxtrpostdescription not before.) The post-description hook can counter-act the effect of \glsxtrnopostpunc using -



    \glsxtrrestorepostpunc  \glsxtrrestorepostpunc

    -

    +

    These commands have no effect outside of the glossary (except with standalone entries that use \glsxtractivatenopost and §10.3 Standalone Entry Items). -

    The

    The glossaries package provides -



    \glsseeitemformat  \glsseeitemformat{label}

    -

    +

    to format items in a cross-reference list (identified with the see key or  \ifglshasshort{\glslabel}{\glsaccesstext{#1}}{\glsaccessname{#1}}%  
    }

    -

    If you want to restore the

    If you want to restore the glossaries v3.0+ definition just do: @@ -2238,8 +2247,8 @@ class="cmss-10">glossaries v3.0+ definition just do:

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

    -

    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 \newignoredglossary{Categories for furt check that the glossary doesn’t already exist. (The glossaries package omits this check.) -

    You can now provide an ignored glossary with: -


    You can now provide an ignored glossary with: +


    \provideignoredglossary  \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}. Another way of avoiding duplicate target names is to set a prefix used for the names. Unlike changing \glolinkprefix this doesn’t affect any hyperlinks (such as those created with \gls). -

    The \gls). + +

  • prefix={prefix}. If you do actually want to locally change \glolinkprefix, + you can use the prefix key instead. You need to use the matching prefix + key in commands like \gls.
  • +

    The \newglossaryentry command has three new keys:

    • category, which sets the category label for the given entry. By default this + id="dx1-5023">, which sets the category label for the given entry. By default this is general. See §5 Categories for further information about categories.
    • + + +
    • alias, which allows an entry to be alias to another entry. See , which allows an entry to be alias to another entry. See §10.4 Entry @@ -2327,35 +2354,32 @@ href="#sec:alias">Entry
    • seealso, which performs much like , which performs much like see, but allows for separate “see” and - - - + id="dx1-5026">, but allows for separate “see” and “see also” treatment. See §2.2 Cross-References (“see” and “see also”) for further details.
    -

    The test file

    The test file example-glossaries-xr.tex contains dummy entries with a mixture of see, , alias and and seealso keys for use with minimal working examples. There are also + id="dx1-5029"> keys for use with minimal working examples. There are also example-glossaries-*.bib files that correspond to each example-glossaries-*.tex file for testing bib2gls. -

    The . +

    The \longnewglossaryentry command now has a starred version (as from v1.12) that doesn’t automatically insert @@ -2365,11 +2389,11 @@ that doesn’t automatically insert

    \leavevmode\unskip\nopostdesc
    -

    at the end of the description field. -


    at the end of the description field. +


    \longnewglossaryentry  \longnewglossaryentry*{label}{} class="cmtt-10">{description}

    -

    +

    The descriptionplural key is left unset unless explicitly set in ⟨ 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  \glsxtrpostlongdescription

    -

    +

    This can be redefined to allow the post-description hook to work but retain the \unskip part if required. For example: @@ -2402,57 +2426,57 @@ 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 + id="dx1-5035"> package’s treatment of the descriptionplural key. Since a plural description doesn’t make much sense for + id="dx1-5036"> key. Since a plural description doesn’t make much sense for multi-paragraph descriptions, the default behaviour with glossaries-extra’s + id="dx1-5037">’s \longnewglossaryentry is to simply leave the plural description unset unless explicitly set using the descriptionplural key. The key. The glossaries.sty version of this command sets the description’s plural form to the same as the singular.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 command (defined through the index package option) is modified + id="dx1-5046"> package option) is modified so that the category defaults to index. The . The \newacronym command is modified + id="dx1-5048"> command is modified to use the new abbreviation interface provided by glossaries-extra. (See §3 Abbreviations.) -

    The

    The \makeglossaries command now has an optional argument. -



    \makeglossaries  \makeglossaries[list]

    -

    +

    If ⟨list⟩ is empty, \makeglossaries behaves as per its original definition in the @@ -2460,44 +2484,44 @@ 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 + id="dx1-5050"> package option. Without the optional argument, it’s permitted with record=alsoindex. With the optional + id="dx1-5051">. 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 option).

    +

    +

    You will need at least version 2.20 of makeglossaries or at least version 1.3 of the Lua alternative makeglossaries-lite (both distributed with (both distributed with glossaries v4.27) to allow for this use of \makeglossaries[list]. Alternatively, use the automake + id="dx1-5057"> option.

    -

    Top

    2.1 Entry Indexing

    -

    The

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


    \glsaddeach  \glsaddeach[options]{list}

    +

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

    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 \gls or whatever from adding a line to the external glossary file.) This is more useful than the indexonlyfirst package option provided + id="dx1-6003"> package option provided by glossaries, as 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 + id="dx1-6005"> to selected entries, rather than all of them, you can use the indexonlyfirst attribute, see attribute, see §5 Categories for further details.) Note that the noindex key isn’t available for key isn’t available for \glsadd (and (and \glsaddall) + id="dx1-6009">) since the whole purpose of that command is to index an entry.
    wrgloss
    (New to v1.14.) This is may only take the values before or after. By @@ -2573,14 +2618,14 @@ class="cmtt-10">wrgloss=after for specific instances. Note that this opti 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  \glsxtrinitwrgloss

    -

    +

    which is defined as: @@ -2597,31 +2642,31 @@ class="cmtt-10">\glsxtrinitwrgloss


     
     }%  
    }
    -

    This sets the conditional -


    This sets the conditional +


    \ifglsxtrinitwrglossbefore  \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 attribute to after to automatically use this as the default for entries with that category attribute. (Note that adding wrgloss to the default options in to the default options in \GlsXtrSetDefaultGlsOpts will override + id="dx1-6016"> will override \glsxtrinitwrgloss.)

    hyperoutside
    (New to v1.21.) This is a boolean key. The default is hyperoutside=true, which puts the hyperlink outside }
    You can use the hyperoutside category attribute to set the default for a + id="dx1-6018"> category attribute to set the default for a given category. This can be combined with the use of the textformat + id="dx1-6019"> attribute to counteract any interference caused by \hyperlink. For example: @@ -2676,7 +2721,7 @@ class="cmtt-10">\hyperlink
    . For
    \glssetcategoryattribute{mathrelation}{hyperoutside}{false}
    -

    will set

    will set hyperoutside=false for all entries that are assigned to the category mathrelation and @@ -2687,7 +2732,7 @@ class="cmtt-10">mathrelation and

    \glssetcategoryattribute{mathrelation}{textformat}{mathrel}
    -

    will use

    will use \mathrel instead of \glstextformat resulting in:

    @@ -2704,75 +2749,83 @@ class="cmsy-10">}
    for entries with the category key set to key set to mathrelation.
    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 textformat attribute and + id="dx1-6022"> attribute and \glstextformat. See the soul example in example in §2.5 Unsetting the First Use Flag. +
    +prefix
    Locally redefines \glolinkprefix to the given value. It should match the + prefix for the desired glossary.
    -

    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  \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  \glslinkpresetkeys

    -

    +

    (The base package provides \glslinkpostsetkeys that’s used immediately after the + id="dx1-6028"> 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  \glsaddpresetkeys

    -

    +

    and -



    \glsaddpostsetkeys  \glsaddpostsetkeys

    -

    +

    For example, to default to using the equation counter in maths mode: + id="dx1-6031"> counter in maths mode: @@ -2783,9 +2836,9 @@ class="cmss-10">equation\renewcommand{\glsaddpresetkeys}{%  
     \ifmmode \setkeys{glossadd}{counter=equation}\fi}

    -

    (This can be overridden with an explicit use of

    (This can be overridden with an explicit use of counter in the optional argument + id="dx1-6032"> in the optional argument of \gls or \glsadd.) Alternatively, to enforce this (overriding the option @@ -2800,43 +2853,43 @@ argument):  
    \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 and theHvalue. + id="dx1-6034">. These keys are designed for manually adding explicit locations rather than obtaining the value from the associated counter. As from version 1.19, these two keys are also available for commands like \gls and \glslink. The thevalue keys is intended + id="dx1-6035"> 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 is for the location value. The other key theHvalue can + id="dx1-6037"> can be used to extract a prefix value for the first argument of commands like \glsnoidxdisplayloc. It’s value must be in the format ⟨. It’s value must be in the format ⟨prefix⟩⟨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 + id="dx1-6039">, 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 [⟨ will only accept locations in the form [⟨num⟩⟨sep⟩]*⟨num⟩ @@ -2849,7 +2902,7 @@ instances of a number followed by the recognised separator character (set with \glsSetCompositor). This means that makeindex won’t accept, for + id="dx1-6041"> won’t accept, for example, @@ -2858,23 +2911,23 @@ example,

    \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 + id="dx1-6043">, since it will allow any location and will only try forming ranges if the location matches any of its numerical patterns. In the case of xindy, you’ll need to add a rule that can match the value. + id="dx1-6044">, you’ll need to add a rule that can match the value. If you’re using hyperref, you may need to use the , you may need to use the format key to prevent a + id="dx1-6046"> 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: @@ -2891,10 +2944,10 @@ class="cmtt-10">suppl.tex contains:  
    \gls{sample}.  
    \end{document}

    -

    This has an entry on page S.2. Suppose another document wants to include this +

    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 to S.2. For example: @@ -2912,17 +2965,17 @@ example:  
    \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 ⟨ 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 externallocation to the location of the PDF file. For example: + id="dx1-6049"> to the location of the PDF file. For example: @@ -2932,7 +2985,7 @@ class="cmss-10">externallocation\newglossaryentry{sample}{category=supplemental,  
     name={sample},description={an example}}

    -

    Next you need to add

    Next you need to add glsxtrsupphypernumber as the format: @@ -2941,30 +2994,30 @@ class="cmtt-10">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 + id="dx1-6050"> package. Remember that the counter used for the location also needs to match. If \theHcounter⟩ is defined in the other document and doesn’t match in the referencing document, then you need to use theHvalue to set the appropriate value. See the accompanying sample files + id="dx1-6051"> to set the appropriate value. See the accompanying sample files sample-suppl-hyp.tex and 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. -

    +

    -

    Top

    2.2 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, @@ -3004,20 +3057,20 @@ class="cmss-10">document environment on the next run. -

    This modification allows

    This modification allows glossaries-extra to provide -



    \glsxtraddallcrossrefs  \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

    As a by-product of this enhancement, the see key will now work for entries defined in the see 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  \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 hasn’t been set for the entry given by ⟨label⟩. -

    Suppose you want to suppress the

    Suppose you want to suppress the number list using nonumberlistsee 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: @@ -3122,11 +3175,11 @@ example:  
     {}%  
    }

    -

    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 see\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 using: -



    \glsxtruseseealso  \glsxtruseseealso{label}

    -

    +

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



    \glsxtruseseeformat  \glsxtruseseealsoformat{xr list}

    -

    +

    For example: @@ -3183,20 +3236,20 @@ For example:  
     {}%  
    }

    -

    -

    The actual unformatted comma-separated list ⟨

    +

    The actual unformatted comma-separated list ⟨xr-list⟩ stored in the seealso field can be accessed with: -



    \glsxtrseealsolabels  \glsxtrseealsolabels{label}

    -

    +

    This will just expand to the ⟨xr-labels⟩ provided in the value of the seealso[⟨tag], so it can’t be automatically treated as a simple comma-separated list. -

    The base

    The base glossaries package provides \glsseelist, which requires a @@ -3222,20 +3275,20 @@ class="cmti-10">label⟩} as the argument. For convenience, glossaries-extra provides -



    \glsxtrseelist  \glsxtrseelist{xr list}

    -

    +

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

    The

    The seealso key implements the automatic indexing using -



    \glsxtrindexseealso  label}{xr list}

    -

    +

    which just does

    glossaries v4.30+, in which case a distinct seealso cross-reference class is used instead. -

    +

    -

    Top

    2.3 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 @@ -3282,7 +3335,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 §3.2 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  \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 @@ -3393,7 +3446,7 @@ overridden by the textformat attribute. -

    For example: +

    For example: @@ -3401,7 +3454,7 @@ class="cmss-10">textformat \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: @@ -3412,7 +3465,7 @@ category: \renewcommand*{\glsxtrregularfont}[1]{%  
     \glsifcategory{\glslabel}{general}{\textsf{#1}}{#1}}

    -

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

    or query the category attribute, for example, provide a custom attribute called font: @@ -3424,7 +3477,7 @@ class="cmtt-10">font:  
    \renewcommand*{\glsxtrregularfont}[1]{%  
     \glsifattribute{\glslabel}{font}{sf}{\textsf{#1}}{#1}}

    -

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

    As from version 1.21, it’s simpler to just do, for example: @@ -3432,23 +3485,23 @@ class="cmtt-10">font:

    \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  \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  \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  \glsxtrpostlink

    -

    +

    if a full stop hasn’t be discarded and -



    \glsxtrpostlinkendsentence  \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  } class="cmtt-10">{⟨false}

    -

    +

    You can access the field’s label using \glslabel. This command should do ⟨true⟩ if the @@ -3510,9 +3563,9 @@ 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 @@ -3524,8 +3577,8 @@ href="#sec:nested">§2.7 Nested Links) instead.
    -

    -

    By default

    +

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

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

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

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

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


    \glsdefpostlink  \glsdefpostlink{category}{definition}

    +

    +This is simply a shortcut for:

    +
    +\csdefglsxtrpostlinkcategory{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 \glsxtrpostlinkcategory is defined the hook will do that and then insert a + id="dx1-8039"> is defined the hook will do that and then insert a full stop with the space factor adjusted to match the end of sentence. If \glsxtrpostlinkcategory hasn’t been defined, the space factor is adjusted to match + id="dx1-8040"> hasn’t been defined, the space factor is adjusted to match the end of sentence. This means that if you have, for example, an entry that ends with a full stop, a redundant following full stop will be discarded and the space factor adjusted (in case the entry is in uppercase) unless the entry is followed by additional material, in which case the following full stop is no longer redundant and needs to be reinserted. -

    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  \glsxtrpostlinkAddDescOnFirstUse

    -

    +

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

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

    For example, suppose you want to append the description in parentheses on first use for entries in the symbol category: + id="dx1-8045"> category:

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

    -


    +


    \glsxtrpostlinkAddSymbolOnFirstUse  \glsxtrpostlinkAddSymbolOnFirstUse

    -

    +

    This will append the symbol (if defined) in parentheses on first use. -

    If you want to provide your own custom format be aware that you can’t use + id="dx1-8047">first use. (Does nothing if +the symbol hasn’t been set.) +


    \glsxtrpostlinkAddSymbolDescOnFirstUse  \glsxtrpostlinkAddSymbolDescOnFirstUse +

    +

    +(New to v1.31.) On first use, this will append \space(⟨symbol⟩, ⟨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 \ifglsused within the post- within the post-link-text hook as by this point the first use flag will have been unset. Instead you can use -



    \glsxtrifwasfirstuse  \glsxtrifwasfirstuse{true}{false}

    -

    +

    This will do ⟨true⟩ if the last used entry was the first use for that entry, otherwise it + id="dx1-8054">first use for that entry, otherwise it will do ⟨false⟩. (Requires at least glossaries v4.19 to work properly.) This command is locally set by commands like \gls, so don’t rely on it outside of the post-link-text + id="dx1-8055">link-text hook. -

    Note that commands like

    Note that commands like \glsfirst and and \glsxtrfull fake first use for the + id="dx1-8057"> fake first use for the benefit of the post-link-text hooks by setting link-text hooks by setting \glsxtrifwasfirstuse to \@firstoftwo. (Although, depending on the styles in use, they may not exactly match the text produced by \gls-like commands on first use.) However, the + id="dx1-8060">-like commands on first use.) However, the short-postfootnote style alters style alters \glsxtrfull so that it fakes non-first use otherwise + id="dx1-8063">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 link-text +

    +

    For example, if you want to place the description in a footnote after the link-text on first use for the first use for the general category: + id="dx1-8066"> category:

    -
    +
    \newcommand*{\glsxtrpostlinkgeneral}{%  
      \glsxtrifwasfirstuse{\footnote{\glsentrydesc{\glslabel}}}{}%  
    }
    -

    -

    The

    +

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

    You can set the default options used by

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


    etc with: +


    \GlsXtrSetDefaultGlsOpts  \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 number list. These defaults may be overridden by other settings (such as category attributes) in addition to any settings passed in the option argument of commands like \glslink and \gls. -

    Note that if you don’t want

    Note that if you don’t want any indexing, just omit \makeglossaries and \printglossaries (or analogous commands). If you want to adjust the default for wrgloss, it’s better to do this by redefining , it’s better to do this by redefining \glsxtrinitwrgloss + id="dx1-8074"> 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: -


    , 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 @@ -3728,14 +3830,14 @@ overridden):

    -
    +
    \backmatter  
    \GlsXtrSetDefaultNumberFormat{hyperit}
    -

    -

    Commands like

    +

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



    \GlsXtrSetAltModifier  \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 @@ -3780,23 +3882,23 @@ 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. -

    Location lists displayed with \printnoidxglossary internally use -



    \glsnoidxdisplayloc  \glsnoidxdisplayloc{prefix}{} class="cmtt-10">{location}

    -

    +

    This command is provided by glossaries, but is modified by glossaries-extra to check @@ -3817,53 +3919,53 @@ 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  \glsxtrdisplaysingleloc{format}{location}

    -

    +

    otherwise it uses -



    \glsxtrdisplaystartloc  \glsxtrdisplaystartloc{format}{location}

    -

    +

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



    \glsxtrdisplayendloc  \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  \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  \glsxtrdisplayendlochook{format}{location}

    -

    +

    (which does nothing by default), followed by
    \glsxtrdisplaysingleloc{\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 +

    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 +

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

    +

    -

    Top

    2.4 Entry Counting Modifications

    -

    If you are using

    If you are using bib2gls§9 bib2gls: Managing Reference Databases instead. -

    The

    The \glsenableentrycount command is modified to allow for the §5 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 §6.1 Entry Counting (First Use Flag). -

    +

    -

    Top

    2.5 Unsetting the First Use Flag

    -

    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 \gls are used in a context where changing a boolean variable -can cause things to go wrong. One example of this is using \gls in one of the -commands provided with the package. For example: +

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


    \glslocalreseteach  \glslocalreseteach{list}

    +

    +and +


    \glslocalunseteach  \glslocalunseteach{list}

    +

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

    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 \gls are used in a context where changing a boolean +variable can cause things to go wrong. One example of this is using \gls in one of +the commands provided with the package. For example:

    -
    +
    \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: @@ -4013,37 +4137,44 @@ 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  \GlsXtrStartUnsetBuffering

    -

    -Later you can restore

    +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 +buffering only applies to the global \glsunset and does not affect the local +\glslocalunset. +

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



    \GlsXtrStopUnsetBuffering  \GlsXtrStopUnsetBuffering

    -

    +

    The starred form \GlsXtrStopUnsetBuffering* uses \glslocalunset instead. For @@ -4052,7 +4183,7 @@ example:

    -
    +
    \documentclass{article}  
    \usepackage[T1]{fontenc}  
    \usepackage{soul} @@ -4065,35 +4196,50 @@ example:  
    Next use: \gls{html}.  
    \end{document}
    -

    -

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

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


    \GlsXtrForUnsetBufferedList  \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. +

    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 +

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

    -
    +
    \usepackage[T1]{fontenc}  
    \usepackage{soul}  
    \usepackage{glossaries-extra} @@ -4110,31 +4256,31 @@ possibility is:  
    Next use: \gls{html}.  
    \end{document}
    -

    This moves

    This moves \gls outside of \ul and uses textformat to locally change the formatting + id="dx1-10007"> to locally change the formatting command used by \gls (which is normally given by \glstextformat or the textformat attribute) to a custom command attribute) to a custom command \gul, which locally changes the regular font and the default abbreviation font to use \ul. It then uses -



    \GlsXtrExpandedFmt  \GlsXtrExpandedFmt{cs}{text}

    -

    +

    which (protected) fully expands ⟨text⟩ before applying ⟨cs⟩, which must be a control @@ -4146,12 +4292,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.6 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:

      @@ -4256,7 +4402,7 @@ class="cmtt-10">\acrpluralsuffixshort 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  \glsxtrabbrvpluralsuffix

    -

    +

    which defaults to just \glspluralsuffix. Some of the abbreviation styles have their own command for the plural suffix, such as

    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 -

    +
    '\abbrvpluralsuffix
    -

    That is, an apostrophe followed by

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

    +

    -

    Top

    2.7 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: +

    +

    The main problems are:

    1. 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 shtml. For example: -

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

      This produces: +

      This produces:

      -

      This section discusses server side includes (SSI), hypertext +

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

      -

      So the

      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 @@ -4434,41 +4580,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: +

      This produces:

      -

      The sample files are either hypertext markup language (HTML) +

      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 produces:

      -

      This article is an introduction to server side includes (SSI) +

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

      -

      So the

      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: @@ -4476,10 +4622,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 @@ -4491,7 +4637,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: @@ -4499,13 +4645,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 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). +

    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 -

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

    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: +

    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 @@ -4726,8 +4872,8 @@ 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  \glsps{label}

    -

    +

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



    \glspt  \glspt{label}

    -

    +

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

    The

    The \glsxtrp command behaves much like the \glsfmtfield⟩ commands described @@ -4790,104 +4936,104 @@ class="cmss-10">noindex to true. If you want to change this, you can use -



    \glsxtrsetpopts  \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  \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 +

    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: +

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

    Example document:

    -
    +
    \documentclass{report}  
    \usepackage[utf8]{inputenc}  
    \usepackage[T1]{fontenc} @@ -4970,16 +5116,16 @@ class="cmti-10">really need nested commands, the safest method is  
    \printglossaries  
    \end{document}
    -

    -

    +

    +

    -

    Top

    2.8 Acronym Style Modifications

    -

    The

    The glossaries-extra package provides a new way of dealing with abbreviations and redefines \newacronymglossaries-extra is do just add

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

    before you define any entries. For example, the following document using just +

    before you define any entries. For example, the following document using just glossaries

    -
    +
    \documentclass{article}  
    \usepackage[acronym,nopostdot,toc]{glossaries}  
    \makeglossaries @@ -5018,13 +5164,13 @@ class="cmss-10">glossaries  
    \printglossaries  
    \end{document}
    -

    can be easily adapted to use

    can be easily adapted to use glossaries-extra:

    -
    +
    \documentclass{article}  
    \usepackage[acronym]{glossaries-extra}  
    \makeglossaries @@ -5035,7 +5181,7 @@ class="cmss-10">glossaries-extra:  
    \printglossaries  
    \end{document}
    -

    Table 

    Table 2.1 lists the nearest equivalent glossaries-extra abbreviation styles for the predefined acronym styles provided by


    @@ -5074,34 +5220,34 @@ cellspacing="0" cellpadding="0" id="TBL-2-1" />

    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

    @@ -5294,7 +5440,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 @@ -5303,15 +5449,15 @@ class="cmss-10">glossaries-extra. However, if you really want to restore the generic acronym function provided by glossaries you can use -



    \RestoreAcronyms  \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 @@ -5321,7 +5467,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

    +

    In general, there’s rarely any need for \RestoreAcronyms. If you have a document that uses \newacronymstyle§3.5 Defining New Abbreviation Styles for further details.) -



    \glsacspace  \glsacspace{label}

    -

    +

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



    \glsacspacemax  \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.9 glossary-bookindex package

    -

    As from v1.21,

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

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

    or use both the

    or use both the stylemods and style -

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

    The

    The bookindex style only supports a maximum hierarchical level of 2 (top-level, level 1 and level 2). -

    The number of columns is given by -


    The number of columns is given by +


    \glsxtrbookindexcols  \glsxtrbookindexcols

    -

    +

    which defaults to 2. -

    This style uses the

    This style uses the multicols environment. If the command -



    \glsxtrbookindexcolspread  \glsxtrbookindexcolspread

    -

    +

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



    \glsxtrbookindexmulticolsenv  \glsxtrbookindexmulticolsenv

    -

    +

    For example

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

    -

    Each top-level entry is displayed using -


    +

    Each top-level entry is displayed using +


    \glsxtrbookindexname  \glsxtrbookindexname{label}

    -

    +

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

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

    Alternatively you can use the

    Alternatively you can use the \glsxtrpostnamecategory⟩ hook. -

    Sub-entries are displayed using -


    Sub-entries are displayed using +


    \glsxtrbookindexsubname  \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  \glsxtrbookindexprelocation{label}

    -

    +

    where ⟨label⟩ is the entry’s label. This checks if the location field has been set. If it @@ -5560,10 +5706,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  \glsxtrbookindexsubprelocation{label}

    -

    +

    which defaults to \glsxtrbookindexprelocation{label}. -

    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  \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  \glsxtrbookindexparentsubchildsep

    -

    +

    This defaults to \glsxtrbookindexparentchildsep. -

    The separator between top-level entries is given by -


    The separator between top-level entries is given by +


    \glsxtrbookindexbetween  }{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  }{label2}

    -

    -

    The separator between two level 2 entries is given by -


    +

    The separator between two level 2 entries is given by +


    \glsxtrbookindexsubsubbetween  } class="cmtt-10">{⟨label2}

    -

    +

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



    \glsxtrbookindexsubsubatendgroup  }

    -

    -


    +


    \glsxtrbookindexsubatendgroup  \glsxtrbookindexsubatendgroup{sub-label}

    -

    -


    +


    \glsxtrbookindexatendgroup  \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 -

    +
    \renewcommand{\glsxtrbookindexatendgroup}[1]{%  
      \glsxtrifhasfield{seealso}{#1}{\glstreesubitem\glsxtruseseealso{#1}}{}%  
    } @@ -5727,7 +5873,7 @@ appended after the child entries using:  
      \glsxtrbookindexsubsubatendgroup{#1}%  
    }
    -

    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 @@ -5737,7 +5883,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--group or -g switch.) The heading will use -




    -

    +

    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  } -

    +

    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 @@ -5807,35 +5953,35 @@ should only be used within one of the \print…glossary commands. (That is, they should only be used in glossary styles.) -



    \glsxtrbookindexmarkentry  \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  \glsxtrbookindexfirstmark

    -

    +

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



    \glsxtrbookindexlastmark  \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  \glsxtrbookindexfirstmarkfmt{label}

    -

    +

    for the first instance and -



    \glsxtrbookindexlastmarkfmt  \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: @@ -5863,13 +6009,13 @@ current entry:

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

    If you only want to mark the top-level entries, remember to redefine +

    If you only want to mark the top-level entries, remember to redefine \glsxtrbookindexsubname as it defaults to \glsxtrbookindexname: @@ -5877,13 +6023,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: @@ -5891,20 +6037,20 @@ entry for the current page with:

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

    -

    +

    +

    -

    Top

    2.10 Glossary Style Modifications

    -

    The

    The glossaries-extra-stylemods package (more conveniently loaded through the §2.10.3 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  }{title}

    -

    -

    +

    +

    -

    Top

    2.10.1 Style Hooks

    -

    The commands

    The commands \glossentryname and \glossentrydesc§5 Categories). This means you can make simple case-changing modifications to the name and description without defining a new glossary style. -

    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  \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 §7 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})}
    -

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


    \glsextrapostnamehook

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


    \glsdefpostname  \glsdefpostname{category}{definition}

    +

    +This is simply a shortcut for:

    +
    +\csdefglsxtrpostnamecategory{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 +


    \glsextrapostnamehook  \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  \glsxtrpostdescription

    -

    +

    This occurs before the original \glspostdescription, so if the nopostdot=false + id="dx1-16020"> 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 ⟨category⟩ is the category label associated with th \glsxtrpostdescgeneral for entries with the category set to general or + id="dx1-16021"> or \glsxtrpostdescacronym for entries with the category set to acronym. -

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


    \glsdefpostdesc  \glsdefpostdesc{category}{definition}

    +

    +This is simply a shortcut for:

    +
    +\csdefglsxtrpostdesccategory{definition} +
    +
    Note that it doesn’t check if the command has already been defined. +

    Since both \glossentry and \subglossentry set -



    \glscurrententrylabel  \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 + id="dx1-16025"> category, then you could do:

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

    This means you don’t have to define a custom glossary style, which you may find +

    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 \glspostdescription to do nothing instead of using the nopostdot option to suppress the terminating full stop.) See option to suppress the terminating full stop.) See §2.10.3 The @@ -6169,16 +6360,16 @@ class="cmss-10">glossaries-extra-stylemods Package

    -

    +

    +

    -

    Top

    2.10.2 Number List

    -

    The

    The number list is now placed inside the argument of -



    \GlsXtrFormatLocationList  \GlsXtrFormatLocationList{number list}

    -

    +

    This is internally used by \glossaryentrynumbers. The \glossaryentrynumbers so that it doesn’t display th id="dx1-17004">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.
    -

    -

    If you want to, for example, change the font for the entire

    +

    If you want to, for example, change the font for the entire number list then 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  }{pages}

    -

    +

    where ⟨page⟩ is the text to display if the number list only contains a single location and @@ -6238,31 +6429,31 @@ 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. -

    +

    -

    Top

    2.10.3 The glossaries-extra-stylemods Package

    -

    As from v1.02,

    As from v1.02, glossaries-extra now includes the package glossaries-extra-stylemods that @@ -6274,12 +6465,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 -

    +
    \usepackage{glossaries-extra}  
    \usepackage[longragged]{glossaries-extra-stylemods}
    -

    Another option is to use the

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

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

    Or the value of

    Or the value of stylemods may be a comma-separated list of the style package @@ -6321,19 +6512,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  \glsxtrprelocation

    -

    +

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

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

    -

    The

    +

    The list styles use -



    \glslistprelocation  \glslistprelocation

    -

    +

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



    \glslistchildprelocation  \glslistchildprelocation

    -

    +

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

    For just the

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


    \glslistdesc  \glslistdesc{label}

    +

    +for the list style and its letter group variations (not the and altlist or styles (but not the listdotted + id="dx1-18024"> variations). +

    For just the list style and its letter group variations (not the altlist or listdotted variations) the number list for child entries is followed by -



    \glslistchildpostlocation  \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 + id="dx1-18030"> 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

    The glossary-tree package introduced two new commands in glossaries version 4.22, +\glstreegroupheaderfmt and \glstreenavigationfmt, which are used to format +the letter group headings and the navigation elements for the appropriate styles. +These two new commands are defined in terms of \glstreenamefmt since that was +the command originally used for the group headings and navigation. This +now allows these different elements to be defined independently, but the +most common redefinition is for \glstreenamefmt to remove the bold in +the name. If the bold is still required for the group heading and navigation +elements, then both other commands also need redefining. To simplify matters, if +\glstreenamefmt has been defined, as from v1.31 glossaries-extra-stylemods +defines: +


    \glstreedefaultnamefmt  \glstreedefaultnamefmt{text}

    +

    +which simply does \textbf{text} and redefines \glstreenamefmt, +\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 need to redefine \glstreedefaultnamefmt, but if you only +want to redefine \glstreenamefmt without affecting the other two commands, then + + + +you now can. +

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


    -like styles insert the pre-number list space with +


    \glstreeprelocation  \glstreeprelocation

    -

    +

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



    \glstreechildprelocation  \glstreechildprelocation

    -

    +

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

    As from version 1.05, the

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


    \glstreenonamedesc  \glstreenonamedesc{label}

    +

    +which is used by the treenoname styles to display the pre-description separator, the +description and the post-description hook. Similarly for the symbol: +


    \glstreenonamesymbol  \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 +description: +


    \glstreenonamechilddesc  \glstreenonamechilddesc{label}

    +

    +

    For the tree styles (but not the treenoname or alttree styles), the description is +displayed using: +


    \glstreedesc  \glstreedesc{label}

    +

    +and the symbol with: +


    \glstreesymbol  \glstreesymbol{label}

    +

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


    \glstreechilddesc  \glstreechilddesc{label}

    +

    +for the description and +


    \glstreechildsymbol  \glstreechildsymbol{label}

    +

    +for the symbol. +

    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-18055"> style to make it easier to modify. These commands are only defined if the glossary-tree package has already been loaded, + id="dx1-18056"> package has already been loaded, which is typically the case unless the notree option has been used when loading + id="dx1-18057"> option has been used when loading glossaries. -



    \gglssetwidest  \gglssetwidest[level]{name}

    -

    +

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



    \eglssetwidest  \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  \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  \glsupdatewidest[level]{name}

    -

    +

    Global update: -



    \gglsupdatewidest  \gglsupdatewidest[level]{name}

    -

    +

    Locale update (expands ⟨name⟩): -



    \eglsupdatewidest  \eglsupdatewidest[level]{name}

    -

    +

    Global update (expands ⟨name⟩): -



    \xglsupdatewidest  \xglsupdatewidest[level]{name}

    -

    -

    The widest entry value can later be retrieved using -


    +

    The widest entry value can later be retrieved using +


    \glsgetwidestname  \glsgetwidestname

    -

    +

    for the top-level entries and -



    \glsgetwidestsubname  \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 , 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 + id="dx1-18071"> 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-18072"> has a CamelCase synonym: -



    \glsFindWidestTopLevelName  \glsFindWidestTopLevelName[glossary list]

    -

    +

    Similar commands are also provided: -



    \glsFindWidestUsedTopLevelName  \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-18075"> 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  \glsFindWidestUsedAnyName[glossary list]

    -

    +

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



    \glsFindWidestAnyName  \glsFindWidestAnyName[glossary list]

    -

    +

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



    \glsFindWidestUsedLevelTwo  \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  \glsFindWidestLevelTwo[glossary list]

    -

    +

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



    \glsFindWidestUsedAnyNameSymbol  \glsFindWidestUsedAnyNameSymbol [glossary list]{register}

    -

    +

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



    \glsFindWidestAnyNameSymbol  \glsFindWidestAnyNameSymbol[glossary list]{register}

    -

    +

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



    \glsFindWidestUsedAnyNameSymbolLocation  \glsFindWidestUsedAnyNameSymbolLocation [symbol 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-18086">number list is stored in ⟨location register⟩. -



    \glsFindWidestAnyNameSymbolLocation  \glsFindWidestAnyNameSymbolLocation [symbol register}{location register}

    -

    +

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



    \glsFindWidestUsedAnyNameLocation  \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  \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

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



    \glsxtralttreeSymbolDescLocation  \glsxtralttreeSymbolDescLocation {label}{number list}

    -

    +

    for top-level entries and -



    \glsxtralttreeSubSymbolDescLocation  \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-18094"> style: -



    \glsxtralttreeInit  \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  \glsxtrAltTreeIndent

    -

    -

    For additional commands that are available with the

    +

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

    -

    -

    +

    Top

    3. Abbreviations

    -

    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 @@ -6875,10 +7215,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  }{long}

    -

    -

    This sets the

    +

    This sets the category key to abbreviation by default, but that value may be @@ -6916,7 +7256,7 @@ href="#sec:categories">§5 Categories for further details. -

    See

    See §2.7 Nested Links regarding the pitfalls of using commands like \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 @@ -6944,7 +7284,7 @@ class="cmtt-10">acronym (see also href="#sec:acronymmods">§2.8 Acronym Style Modifications) so -



    \newacronym  short}{long}

    -

    +

    is now equivalent @@ -6983,7 +7323,7 @@ class="cmtt-10">}
    -

    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}

    -

    +

    -

    Top

    3.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  } class="cmtt-10">{⟨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 @@ -7106,21 +7446,21 @@ href="#catattr.tagging">tagging attribute set to “true”. For those cases it will use -



    \glsxtrtagfont  \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 @@ -7129,7 +7469,7 @@ 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

    The first argument of \GlsXtrEnableInitialTagging is a comma-separated list of category names. The §5 Categories) but this must be done before the glossary is displayed. -

    The accompanying sample file

    The accompanying sample file sample-mixtures.tex uses initial tagging for both the acronymabbreviation -

    +
    \GlsXtrEnableInitialTagging{acronym,abbreviation}{\itag}
    -

    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 @@ -7173,18 +7513,18 @@ example:  
    \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 +

    The underlining of the tagged letters only occurs in the glossary and then only for entries with the tagging attribute set. -

    +

    -

    Top

    3.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  ]{style-name}

    -

    +

    where ⟨style-name⟩ is the name of the style and ⟨category⟩ is the category label @@ -7216,11 +7556,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

    @@ -7241,7 +7581,7 @@ href="#sec:acronymmods">§2.8 Acronym Style Modifications). However the original acronym interface is incompatible with all the commands described here. -

    Abbreviations can be used with the standard

    Abbreviations can be used with the standard glossaries commands, such as \gls, @@ -7251,7 +7591,7 @@ class="cmtt-10">\acrshort\acronymfont). The short form can be produced with: -



    \glsxtrshort  label}[insert]

    -

    +

    (Use this instead of \acrshort.) -

    The long form can be produced with -


    The long form can be produced with +


    \glsxtrlong  label}[insert]

    -

    +

    (Use this instead of \acrlong.) -

    The

    The inline full form can be produced with -



    \glsxtrfull  label}[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 §4 Entries in Sectioning Titles, Headers, Captions and Contents instead.
    -

    -

    The arguments ⟨

    +

    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  label}[insert]

    -

    -

    First letter upper case long form: -


    +

    First letter upper case long form: +


    \Glsxtrlong  label}[insert]

    -

    -

    First letter upper case inline full form: -


    +

    First letter upper case inline full form: +


    \Glsxtrfull  label}[insert]

    -

    -

    All upper case short form: +

    +

    All upper case short form: -



    \Glsxtrshort  label}[insert]

    -

    -

    All upper case long form: -


    +

    All upper case long form: +


    \Glsxtrlong  label}[insert]

    -

    -

    All upper case inline full form: -


    +

    All upper case inline full form: +


    \GLSxtrfull  label}[insert]

    -

    -

    Plural forms are also available. -

    Short form plurals: -


    +

    Plural forms are also available. +

    Short form plurals: +


    \glsxtrshortpl  label}[insert]

    -

    -


    +


    \Glsxtrshortpl  label}[insert]

    -

    -


    +


    \GLSxtrshortpl  label}[insert]

    -

    -

    Long form plurals: -


    +

    Long form plurals: +


    \glsxtrlongpl  label}[insert]

    -

    -


    +


    \Glsxtrlongpl  label}[insert]

    -

    -


    +


    \GLSxtrlongpl  label}[insert]

    -

    -

    Full form plurals: -


    +

    Full form plurals: +


    \glsxtrfullpl  label}[insert]

    -

    -


    +


    \Glsxtrfullpl  label}[insert]

    -

    -


    +


    \GLSxtrfullpl  label}[insert]

    -

    -

    Be careful about using

    +

    Be careful about using \glsentryfull, \Glsentryfull, \glsentryfullpl and @@ -7540,13 +7880,13 @@ class="cmtt-10">\glsentryshort etc.
    -

    -

    +

    +

    -

    Top

    3.3 Shortcut Commands

    -

    The abbreviation shortcut commands can be enabled using the package option +

    The abbreviation shortcut commands can be enabled using the package option shortcutstable 3.1. -


    @@ -7886,10 +8226,10 @@ class="cmtt-10">\newabbreviation
    -

    Top

    3.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 @@ -7925,7 +8265,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 @@ -7964,52 +8304,52 @@ class="cmss-10">fontenc package with the T1 option or something similar.
    -

    -

    The parenthetical styles, such as

    +

    The parenthetical styles, such as long-short, use -



    \glsxtrparen  \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  \glsabbrvdefaultfont{text}

    -

    +

    for the short form. This just does ⟨text⟩ by default. (That is, no font change is applied.) On first use, -



    \glsfirstabbrvdefaultfont  \glsfirstabbrvdefaultfont{text}

    -

    +

    is used instead. By default, this just does \glsabbrvdefaultfont. The long form is formatted according to -



    \glslongdefaultfont  }

    -

    +

    which again just does ⟨text⟩ (no font change). On first use, -



    \glsfirstlongdefaultfont  \glsfirstlongdefaultfont{text}

    -

    +

    is used instead. This just does \glslongdefaultfont. The plural suffix used for the short form is given by -



    \glsxtrabbrvpluralsuffix  \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  \glsabbrvscfont{text}

    -

    +

    which uses \textsc.3.1 On first use -



    \glsabbrvdefaultfont  \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  \glsxtrscsuffix

    -

    +

    This is defined as

    -
    +
    \newcommand*{\glsxtrscsuffix}{\glstextup{\glsxtrabbrvpluralsuffix}}
    -

    The

    The \glstextup command is provided by glossaries and is used to switch off the @@ -8115,51 +8455,51 @@ attributes. See §5 Categories for further details.) -

    The small styles, such as

    The small styles, such as long-short-sm and short-sm-long, use -



    \glsabbrvsmfont  \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  \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  \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  \glsabbrvemfont{text}

    -

    +

    On first use -



    \glsfirstabbrvemfont  \glsfirstabbrvemfont{text}

    -

    +

    is used instead. This uses \glsabbrvemfont by default. The suffix is given by -



    \glsxtremsuffix  \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  \glsfirstlongemfont{long-form}

    -

    +

    instead of \glsfirstlongdefaultfont{long-form} and -



    \glslongemfont  }

    -

    +

    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  \glsabbrvuserfont{text}

    -

    +

    for the short form, -



    \glsfirstabbrvuserfont  \glsfirstabbrvuserfont{text}

    -

    +

    for the first use short form, -



    \glslonguserfont  \glslonguserfont{text}

    -

    +

    for the long form, -



    \glsfirstlonguserfont  \glsfirstlonguserfont{text}

    -

    +

    for the first use long form, and -



    \glsxtrusersuffix  \glsxtrusersuffix

    -

    +

    for the short plural suffix. -

    Similarly for the hyphen styles: -


    Similarly for the hyphen styles: +


    \glsabbrvhyphenfont  \glsabbrvhyphenfont{text}

    -

    +

    for the short form, -



    \glsfirstabbrvhyphenfont  \glsfirstabbrvhyphenfont{text}

    -

    +

    for the first use short form, -



    \glslonghyphenfont  \glslonghyphenfont{text}

    -

    +

    for the long form, -



    \glsfirstlonghyphenfont  \glsfirstlonghyphenfont{text}

    -

    +

    for the first use long form, and -



    \glsxtrhyphensuffix  \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  \glsabbrvonlyfont{text}

    -

    +

    for the short form, -



    \glsfirstabbrvonlyfont  \glsfirstabbrvonlyfont{text}

    -

    +

    for the first use short form, -



    \glslongonlyfont  \glslongonlyfont{text}

    -

    +

    for the long form, -



    \glsfirstlongonlyfont  }

    -

    +

    for the first use long form, and -



    \glsxtronlysuffix  \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  \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 +

    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 @@ -8413,49 +8753,49 @@ 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  \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⟩[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:

      • \glsfirstabbrvhyphenfont on first
      • style-noreg -

        Some styles set the

        Some styles set the regular attribute. In some cases, there’s a version of the @@ -8566,7 +8906,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 @@ -8584,7 +8924,7 @@ class="cmti-10">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:

        • short-sc-postfootnote: short form in smallcaps with the long form in the footnote outside of the link-text.
        -

        Take care with the footnote styles. Remember that there are some situations +

        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:

        -

        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

        3.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 @@ -8690,12 +9030,12 @@ href="#glo:firstuse">first use. The name is set to the short form through the command -



        \glsxtrshortnolongname  \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⟩ @@ -8863,12 +9203,12 @@ class="cmss-10">short-nolongname is set to the full form obtained by expanding -



        \glsxtrshortdescname  \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 \glsxtrshortlong⟩ (⟨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  \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 @@ -9116,12 +9456,12 @@ class="cmss-10">sortname key is also set to the short form, but this is done by expanding -



        \glsxtrlongnoshortname  \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.

        @@ -9228,12 +9568,12 @@ href="#catattr.regular">regular attribute. -

        +

        -

        Top

        3.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 @@ -9255,12 +9595,12 @@ class="cmss-10">sortname is also set to the short form through -



        \glsxtrlongshortname  \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 \glsxtrfull shows the long form followed by the short for The name field is obtained from -



        \glsxtronlyname  \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 @@ -9372,12 +9712,12 @@ class="cmss-10">long-only-short-onlyname field is obtained from -



        \glsxtronlydescname  \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 @@ -9409,12 +9749,12 @@ class="cmss-10">long-short style but additional information can be inserted into the parenthetical material. This checks the value of the field given by -



        \glsxtruserfield  \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 \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 @@ -9497,47 +9837,47 @@ 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:

        -

        T

        TEX User Group (TUG)

        -

        whereas

        whereas \gls{dante} will appear as:

        -

        Deutschsprachige Anwendervereinigung T

        Deutschsprachige Anwendervereinigung TEX e.V (DANTE, German Speaking TEX User Group)

        -

        The short form is formatted according to -


        The short form is formatted according to +


        \glsabbrvuserfont  \glsabbrvuserfont{text}

        -

        +

        and the plural suffix is given by -



        \glsxtrusersuffix  \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 -

        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  \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  \glsxtrlongshortdescname

        -

        +

        (Similarly for other longmodifierlong-short-username key is obtained from -



        \glsxtrlongshortuserdescname  \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 short-long-user style. -

        The

        The name field is obtained from -



        \glsxtrshortlongname  \glsxtrshortlongname

        -

        +

        (Similarly for other shortmodifier\glsxtruserparenname field is obtained by expanding -



        \glsxtrshortlongname  \glsxtrshortlongname

        -

        +

        Again, this should only be redefined before \newabbreviation (or \glsxtrfullsep. The name field is obtained from -



        \glsxtrshortlongdescname  \glsxtrshortlongdescname

        -

        +

        (Similarly for other shortmodifiername



        \glsxtrshortlonguserdescname  \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 nohyperfirsthyperref 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  \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  \glsfirstlongfootnotefont{text}

        -

        +

        to format the long form on first use or for the full form and -



        \glslongfootnotefont  \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: +

        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 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 namemarkwords category attribute. The full form is formatted using -



        \glsxtrlonghyphenshort  }

        -

        +

        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

        -

        The space before the parenthetical material is actually given by +

        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 +

        then

        -
        +
        \gls{ip}[-Adressen]
        -

        will do +

        will do

        -

        Internet-Protocol-Adressen (IP-Adressen)

        -

        on first use, whereas +

        Internet-Protocol-Adressen (IP-Adressen)

        +

        on first use, whereas

        -
        +
        \gls{ip}[ Address]
        -

        will do +

        will do

        -

        Internet Protocol Address (IP Address)

        -

        on first use. -

        Note that the hyphenation isn’t applied when using commands like +

        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 +

        will do

        -

        Internet Protocol-Adressen

        +

        Internet Protocol-Adressen

        -

        -

        If the

        +

        If the markwords attribute hadn’t been set, then the first use of @@ -10520,14 +10860,14 @@ class="cmss-10">markwords -

        +
        \gls{ip}[-Adressen]
        -

        would do +

        would do

        -

        Internet Protocol-Adressen (IP-Adressen)

        -

        instead. -

        If the inserted material ⟨

        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 @@ -10545,11 +10885,11 @@ class="cmtt-10">\glsxtrhyphensuffix to use the small-caps

        -
        +
        \renewcommand{\glsabbrvhyphenfont}{\glsabbrvscfont}  
        \renewcommand{\glsxtrhyphensuffix}{\glsxtrscsuffix}
        -

        Similarly for other font-changing variations. +

        Similarly for other font-changing variations.

        long-hyphen-noshort-desc-noreglong-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 @@ -10600,7 +10940,7 @@ class="cmtt-10">\glsxtrlongshortdescname. class="cmssbx-10">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 @@ -10626,7 +10966,7 @@ class="cmtt-10">}⟨insert
        where -



        \glsxtrposthyphenshort  label}insert

        -

        +

        is in the post-link hook. This uses the format:
        insert⟩ (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  }{insert}

        -

        +

        checks if ⟨insert⟩ starts with a hyphen. If it does, then \glsxtrwordsep is locally @@ -10680,15 +11020,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 @@ -10705,7 +11045,7 @@ class="cmtt-10">} if you want to ensure the full class="cmssbx-10">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 @@ -10725,7 +11065,7 @@ class="cmss-10">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 -



        \glsxtrshorthyphenlong  } class="cmtt-10">{⟨insert}

        -

        +

        which behaves in an analogous way to \glsxtrlonghyphenshort. The name\glsxtrshortlongname. class="cmssbx-10">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 @@ -10796,7 +11136,7 @@ class="cmtt-10">}⟨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 @@ -10840,7 +11180,7 @@ class="cmtt-10">} if you want to ensure the full class="cmssbx-10">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 @@ -10851,13 +11191,13 @@ class="cmss-10">name\glsxtrshortlongdescname.

        -

        +

        -

        Top

        3.5 Defining New Abbreviation Styles

        -

        New abbreviation styles may be defined using: -


        New abbreviation styles may be defined using: +


        \newabbreviationstyle  }{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  \CustomAbbreviationFields

        -

        +

        to set the entry fields including the name (defaults to the short form if omitted), @@ -10924,12 +11264,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}, @@ -10951,14 +11291,14 @@ class="cmti-10">setup⟩:  
            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  \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}% @@ -11005,7 +11345,7 @@ class="cmti-10">setup⟩:  
            {}%  
          }%
        -

        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  \glsshorttok

        -

        -

        Short plural value (defined by

        +

        Short plural value (defined by glossaries-extra): -



        \glsshortpltok  \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  \glslongtok

        -

        -

        Long plural value (defined by

        +

        Long plural value (defined by glossaries-extra): -



        \glslongpltok  \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 @@ -11071,19 +11411,19 @@ 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  \glsxtrorgshort

        -

        +

        for the short form and -



        \glsxtrorglong  \glsxtrorglong

        -

        +

        for the long form. (These may be useful for the sort key to avoid any formatting that @@ -11091,44 +11431,44 @@ 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  \glslabeltok

        -

        +

        which contains the entry’s label and -



        \glskeylisttok  \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  \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  \GlsXtrUseAbbrStyleSetup{name}

        -

        +

        where ⟨name⟩ is the name of the existing style. For example, the -

        +
        \GlsXtrUseAbbrStyleSetup{long-noshort-desc}
        -

        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  \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  \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  \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  \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  \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 @@ -11211,7 +11551,7 @@ 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 @@ -11247,7 +11587,7 @@ abbreviations without the regular attribute set): -



        \glsxtrfullplformat  }

        -

        -

        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  }{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  }{insert}

        -

        -

        Inline plural no case-change (used by

        +

        Inline plural no case-change (used by \glsentryfullpl, \glsxtrfullpl\glsxtrfullpl\GLSxtrfullpl): -



        \glsxtrinlinefullplformat  }{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  }{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  }{insert}

        -

        -

        Plural with first letter upper case: -


        +

        Plural with first letter upper case: +


        \Glsxtrsubsequentplfmt  }{insert}

        -

        -

        If you want to provide support for

        +

        If you want to provide support for glossaries-accsupp use the following glossaries-accsupp\glsentry⟨xxx⟩ command.) -

        For example, the

        For example, the short-long style has the following in ⟨fmts⟩:

        -
        +
          \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%  
          \renewcommand*{\glsabbrvfont}[1]{\glsabbrvdefaultfont{##1}}%  
          \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}% @@ -11468,17 +11808,17 @@ class="cmti-10">fmts⟩:  
            \glsxtrparen{\glsfirstlongfont{\glsaccesslongpl{##1}}}%  
          }%
        -

        Since the inline full commands aren’t redefined, they default to the same as the +

        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  \GlsXtrUseAbbrStyleFmts{name}

        -

        +

        within ⟨fmts⟩, where ⟨name⟩ is the name of the existing style. For example, the @@ -11491,11 +11831,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 @@ -11505,7 +11845,7 @@ class="cmtt-10">\textsf:

        -
        +
        \newabbreviationstyle  
        {custom-sf}% label  
        {% setup @@ -11516,7 +11856,7 @@ class="cmtt-10">\textsf:  
          \renewcommand*{\glsabbrvfont}[1]{\textsf{##1}}%  
        }
        -

        Note that this wouldn’t work if it was instead based on one of the modified versions +

        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

        4. 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:

        @@ -11574,9 +11914,9 @@ class="cmss-10">hyperrefhyperref, 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 +

      Similar problems can also occur with captions (except for the page header and bookmark issues). -

      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 -

      +
      \chapter{A Chapter about \glsabbrvfont{\glsentryshort{html}}}
      -

      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 +

      +

      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 @@ -11642,62 +11982,70 @@ class="cmtt-10">\markboth and \@starttoc. If you don’t like this change, you can restore their former definitions using -



      \glsxtrRevertMarks  \glsxtrRevertMarks

      -

      -In this case, you’ll have to use the glossaries manual’s recommendations of either -simply using \glsentryshort (as above) or use the sectioning command’s option -argument to provide an alternative for the table of contents and page header. For -example: +

      +If you only want to restore \@starttoc you can use: +


      \glsxtrRevertTocMarks  \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 \glsentryshort (as +above) or use the sectioning command’s option argument to provide an alternative +for the table of contents and page header. For example:

      -
      +
      \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. -

      The commands listed below all use

      The commands listed below all use \texorpdfstring if if hyperref has been + id="dx1-27015"> has been loaded so that the expandable non-formatted version is added to the PDF bookmarks. Note that since the commands that convert the first letter to upper case aren’t expandable, the non-case-changing version is used for the bookmarks. -

      These commands essentially behave as though you have used

      These commands essentially behave as though you have used \glsxtrshort (or equivalent) with the options noindex and and hyper=false. The text produced won’t be + id="dx1-27017">. The text produced won’t be converted to upper case in the page headings by default. If you want the text converted to upper case you need to set the headuc attribute to “true” for the + id="dx1-27018"> 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 + id="dx1-27019"> styles, be aware that the default fonts don’t provide bold small-caps or italic small-caps. This means that if the chapter or section title style uses bold, this may override the small-caps setting, in which case the abbreviation will just appear as lower case bold. If the @@ -11706,246 +12054,246 @@ heading style uses italic, the abbreviation may appear in upright small-caps, class="cmti-10">even if you have set the headuc attribute since the all-capitals form still uses \glsabbrvfont. You may want to consider using the slantsc package in this case. + id="dx1-27021"> package in this case.
      -

      -

      Display the short form: -


      +

      Display the short form: +


      \glsfmtshort  \glsfmtshort{label}

      -

      -

      Display the plural short form: -


      +

      Display the plural short form: +


      \glsfmtshortpl  \glsfmtshortpl{label}

      -

      -

      First letter upper case singular short form: -


      +

      First letter upper case singular short form: +


      \Glsfmtshort  \Glsfmtshort{label}

      -

      +

      (No case-change applied to PDF bookmarks.) -

      First letter upper case plural short form: +

      First letter upper case plural short form: -



      \Glsfmtshortpl  \Glsfmtshortpl{label}

      -

      +

      (No case-change applied to PDF bookmarks.) -

      Display the long form: -


      Display the long form: +


      \glsfmtlong  \glsfmtlong{label}

      -

      -

      Display the plural long form: -


      +

      Display the plural long form: +


      \glsfmtlongpl  \glsfmtlongpl{label}

      -

      -

      First letter upper case singular long form: -


      +

      First letter upper case singular long form: +


      \Glsfmtlong  \Glsfmtlong{label}

      -

      +

      (No case-change applied to PDF bookmarks.) -

      First letter upper case plural long form: -


      First letter upper case plural long form: +


      \Glsfmtlongpl  \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. -

      Display the full form: -


      Display the full form: +


      \glsfmtfull  \glsfmtfull{label}

      -

      -

      Display the plural full form: -


      +

      Display the plural full form: +


      \glsfmtfullpl  \glsfmtfullpl{label}

      -

      -

      First letter upper case singular full form: -


      +

      First letter upper case singular full form: +


      \Glsfmtfull  \Glsfmtfull{label}

      -

      +

      (No case-change applied to PDF bookmarks.) -

      First letter upper case plural full form: -


      First letter upper case plural full form: +


      \Glsfmtfullpl  \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: -


      field: +


      \glsfmttext  \glsfmttext{label}

      -

      -

      First letter converted to upper case: -


      +

      First letter converted to upper case: +


      \Glsfmttext  \Glsfmttext{label}

      -

      +

      (No case-change applied to PDF bookmarks.) -

      The plural equivalents: +

      The plural equivalents: -



      \glsfmtplural  \glsfmtplural{label}

      -

      +

      and -



      \Glsfmtplural  \Glsfmtplural{label}

      -

      -

      Likewise for the value of the

      +

      Likewise for the value of the name field: -


      field: +


      \glsfmtname  \glsfmtname{label}

      -

      -

      First letter converted to upper case: -


      +

      First letter converted to upper case: +


      \Glsfmtname  \Glsfmtname{label}

      -

      +

      (No case-change applied to PDF bookmarks.) -

      Similarly for the value of the

      Similarly for the value of the first field: -


      field: +


      \glsfmtfirst  \glsfmtfirst{label}

      -

      -

      First letter converted to upper case: -


      +

      First letter converted to upper case: +


      \Glsfmtfirst  \Glsfmtfirst{label}

      -

      +

      (No case-change applied to PDF bookmarks.) -

      The plural equivalents: -


      The plural equivalents: +


      \glsfmtfirstpl  \glsfmtfirstpl{label}

      -

      +

      and -



      \Glsfmtfirstpl  \Glsfmtfirstpl{label}

      -

      +

      -

      -

      +

      Top

      5. 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. @@ -11979,7 +12327,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  \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  part}{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 attribute then just redefine -



      \glsxtrchecknohyperfirst  \glsxtrchecknohyperfirst{label}

      -

      +

      to do nothing.

      link-text hook will discard a full stop class="cmti-10">non-plural commands like \gls or \glstext. (Provided - for entries such as abbreviations that end with a full stop.) -

      Note that this can cause a problem if you access a field that doesn’t end with a + 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 \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 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 -

      pluraldiscardperiod are set. This is useful for ⟨short⟩ (⟨long⟩) abbreviation styles where only the short form - has a trailing full stop. +class="cmti-10">long⟩) abbreviation styles where only the + short form has a trailing full stop. This attribute is only applicable to + entries defined using \newabbreviation (or \newacronym if it’s using + \newabbreviation.) This attribute doesn’t apply to the accessibility + fields.
      If this attribute is set to “true” any entry def class="cmtt-10">\newabbreviation will automatically have spaces in the long form replaced with -



      \glsxtrwordsep  \glsxtrwordsep

      -

      +

      and each word is encapsulated with -



      \glsxtrword  \glsxtrword{word}

      -

      +

      For example:

      -
      +
      \glssetcategoryattribute{abbreviation}{markwords}{true}  
      \newabbreviation{ip}{IP}{Internet Protocol}
      -

      is essentially the same as +

      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 @@ -12300,19 +12664,24 @@ 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 setting may result in the

      +

      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 \glsxtrword and \glsxtrwordsep markup ending up in the sort field, depending on the style in use.
      -

      +

      This is similar to markwords but applies to the short form. (Only - useful for abbreviations that contain spaces.) -

      This setting will only adjust the short plural if the \newabbreviation (or \newacronym if it’s using + \newabbreviation.) +

      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.
      -

      +

      incompatible with markshortwords. -

      If you explicitly override the short plural using the . This attribute is only applicable to + entries defined using \newabbreviation (or \newacronym if it’s using + \newabbreviation.) +

      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”. @@ -12381,16 +12763,20 @@ class="cmtt-10">\newabbreviation will insert an apostrophe (’) before the plural suffix for the short plural form (unless - - - explicitly overridden with the shortplural key). The long plural form is unaffected by this setting. This setting overrides noshortplural. + id="dx1-28074">. This + attribute is only applicable to entries defined using \newabbreviation (or + \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”, \newabbreviation won’t append the - plural suffix for the short plural form. This means the won’t append + the plural suffix for the short plural form. This means the short and and + shortplural - values will be the same unless explicitly overridden. This setting is incompatible + id="dx1-28078"> values will be the same unless explicitly overridden. This setting with is incompatible with aposplural. +class="cmti-10">. This attribute is only applicable to + entries defined using \newabbreviation (or \newacronym if it’s using + \newabbreviation.) +
      +accessinsertdots
      If this attribute is set to “true” and the glossaries-accsupp package + has been loaded (with the accsupp option), then this behaves like insertdots but + for the shortaccess field instead of the short field. This can be used to assist the + screen reader for initialisms that should be read out letter by letter rather than + as a word. For example: + + + +
      + \glssetcategoryattribute{initialism}{accessinsertdots}{true} +  
      \newabbreviation[category=initialism]{pi}{PI}{Private Investigator} +
      +

      This setting will be overridden by an explicit use of the shortaccess key in the + optional argument of \newabbreviation (or \newacronym). This attribute is + only applicable to entries defined using \newabbreviation (or \newacronym if + it’s using \newabbreviation.) +

      +nameshortaccess
      If this attribute is set to “true”, the access field (used for the name + field’s accessibility support) is set to the shortaccess value. This attribute has no + effect if there’s no accessibility support or if the shortaccess field hasn’t been + assigned or if the access field is used explicitly. This attribute is only applicable + to entries defined using \newabbreviation (or \newacronym if it’s using + \newabbreviation.) +
      +textshortaccess
      Like nameshortaccess but applies to the textaccess field (for use with + regular abbreviations). +
      +firstshortaccess
      Like nameshortaccess but applies to the firstaccess field (for use with + regular abbreviations). +
      +accessaposplural
      This boolean attribute overrides aposplural for the shortpluralaccess + key. Has no effect if there’s no accessibility support or if the shortaccess key + hasn’t been set or if the shortpluralaccess key is explicitly set. If the aposplural is + set and this attribute isn’t set and the shortaccess key is set, then the + aposplural setting governs the default shortpluralaccess setting. If you want + aposplural 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 + \newabbreviation.) +
      +accessnoshortplural
      This boolean attribute overrides noshortplural for the + shortpluralaccess key. The same conditions apply as for accessaposplural. This + attribute is only applicable to entries defined using \newabbreviation (or + \newacronym if it’s using \newabbreviation.)
      headuc
      If this attribute is set to “true”, commands like \glsfmtshort will use the + id="dx1-28115"> will use the upper case version in the page headers. + + +
      tagging
      If this attribute is set to “true”, the tagging command defined by \GlsXtrEnableInitialTagging will be activated to use will be activated to use \glsxtrtagfont in + id="dx1-28118"> in the glossary (see §3.1 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 \glsenableentrycount + id="dx1-28120"> (see §2.4 Entry Counting Modifications

      With

      With glossaries, commands like \cgls use \cglsformat only if the previous @@ -12465,18 +13007,18 @@ class="cmss-10">glossaries-extra the test is now for entries that have the entrycount attribute set and where the previous + id="dx1-28123"> attribute set and where the previous usage count for that entry is less than or equal to the value of that attribute.

      linkcount
      This attribute is set to true by \GlsXtrEnableLinkCounting (see (see §6.2 Link Counting). linkcountmaster
      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 §6.2 Link Counting). glossdesc
      The \glossentrydesc command (used in the predefined glossary styles) is + id="dx1-28129"> 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: @@ -12510,37 +13052,34 @@ class="cmss-10">glossaries-extra to check for this attribute. The attribu class="cmtt-10">firstuc: the first letter of the description will be converted to upper case (using \Glsentrydesc). - - - + id="dx1-28130">).
    • title: the description will be used in the argument of the title casing command \capitalisewords (provided by (provided by mfirstuc). If you want to use a + id="dx1-28132">). If you want to use a different command you can redefine: -



      \glsxtrfieldtitlecasecs  \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. + id="dx1-28134"> user manual for further details.

    glossdescfont
    (New to version 1.04) In addition to the above, the modified \glossentrydesc command also checks this attribute. If set, it should be the + id="dx1-28136"> 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 glossdesc but applies to but applies to \glossentryname. Additionally, if this + id="dx1-28139">. Additionally, if this attribute is set to “uc” the name is converted to all capitals.
    indexname
    If set, the \glsxtrpostnamehook hook used at the end of \glossentryname + id="dx1-28141"> will index the entry using \index. See . See §7 Auto-Indexing for further @@ -12604,24 +13143,24 @@ href="#sec:autoindex">Auto-Indexing for fur glossnamefont
    (New to version 1.04) In addition to the above, the modified \glossentryname command also checks this attribute. If set, it should be the + id="dx1-28144"> 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. @@ -12629,7 +13168,7 @@ class="cmtt-10">\item. textformat

    (New to version 1.21.) Commands like \gls and \glstext have the link @@ -12644,14 +13183,14 @@ class="cmtt-10">\glstextformat by default. If this hyperoutside
    (New to v1.21.) The attribute value may be false, true or unset. If unset, true is assumed. This indicates the default setting of the hyperoutside + id="dx1-28147"> key, described in §2.1 Entry Indexing. dualindex
    If set, whenever a glossary entry has information written to the external glossary file through commands like \gls and and \glsadd, a corresponding line + id="dx1-28150">, a corresponding line will be written to the indexing file using \index. See . See §7 Auto-Indexing for @@ -12678,17 +13217,17 @@ href="#sec:autoindex">Auto-Indexing for targeturl
    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 ~) remember that the base glossaries package provides commands like \glspercentchar and 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 targetname to the anchor ⟨ to the anchor ⟨name⟩. You may use \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 entries to link to glossaries in the URL given by targeturl, you can just + id="dx1-28155">, you can just do:

    -
    +
    \glssetcategoryattribute{general}{targetname}{\glolinkprefix\glslabel}
    -

    (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 targetname for the ⟨ for the ⟨name2⟩ part and targetcategory for the ⟨ 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 for the external list. For + id="dx1-28158"> for the external list. For example:

    -
    +
    \newignoredglossary*{external}  
    \glssetcategoryattribute{external}{targeturl}{master-doc.pdf}  
    \glssetcategoryattribute{general}{targetname}{\glolinkprefix\glslabel} @@ -12778,14 +13317,14 @@ class="cmtt-10">\newignoredglossary  category=external,  
      description={external example}}
    -

    +

    -

    An attribute can be set using: -


    An attribute can be set using: +


    \glssetcategoryattribute  \glssetcategoryattribute{category-label} @@ -12795,31 +13334,31 @@ class="cmitt-10">attribute-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”: -


    attribute to “true”: +


    \glssetregularcategory  \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  \glssetattribute{entry-label}{} class="cmtt-10">{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  \glsgetcategoryattribute{category-label} @@ -12846,13 +13385,13 @@ class="cmtt-10">} class="cmtt-10">{⟨attribute-label}

    -

    +

    Again there is a shortcut if you need to lookup the category label for a given entry: -



    \glsgetattribute  \glsgetattribute{entry-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  \glshascategoryattribute{category-label} @@ -12879,19 +13418,19 @@ class="cmitt-10">true code}{false code}

    -

    +

    This uses etoolbox’s ’s \ifcsvoid and does ⟨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  \glshasattribute{entry-label}{code}{false 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  \glsifcategoryattribute{category-label} @@ -12922,7 +13461,7 @@ class="cmitt-10">true-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 category has the nohyper attribute set to + id="dx1-28170"> 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 , 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  \glsifattribute{entry-label}{true-part} {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 + id="dx1-28173"> attribute set to “true”: -



    \glsifregularcategory  \glsifregularcategory{category-label} @@ -12993,12 +13532,12 @@ class="cmitt-10">true-part}{false-part}

    -

    +

    Alternatively, if you need to lookup the category for a particular entry: -



    \glsifregular  \glsifregular{entry-label}{}{false-part}

    -

    +

    Note that if the regular attribute hasn’t be set, the above do ⟨ attribute hasn’t be set, the above do ⟨false-part⟩. There are also reverse commands that test if the regular attribute has been set to + id="dx1-28177"> attribute has been set to “false”: -



    \glsifnotregularcategory  \glsifnotregularcategory{category-label} @@ -13031,12 +13570,12 @@ class="cmitt-10">true-part}{false-part}

    -

    +

    or for a particular entry: -



    \glsifnotregular  \glsifnotregular{entry-label}{}{false-part}

    -

    +

    Again, if the regular attribute hasn’t been set, the above do ⟨ 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 ⟨

    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  \glsforeachwithattribute[glossary-labels] @@ -13105,42 +13644,42 @@ class="cmtt-10">}{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 + id="dx1-28182">. Alternatively, you can use -



    \glsxtrsetcategory  \glsxtrsetcategory{entry-labels}{category-label}

    -

    +

    This will change the category to ⟨category-label⟩ for each entry listed in the comma-separated list ⟨entry-labels⟩. This command uses \glsfieldxdef so it will + id="dx1-28184"> 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  \glsxtrsetcategoryforall{glossary-labels} @@ -13148,18 +13687,18 @@ class="cmtt-10">} class="cmtt-10">{⟨category-label}

    -

    +

    where ⟨glossary-labels⟩ is a comma-separated list of glossary labels.

    -

    -

    +

    Top

    6. 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 glossaries class="cmtt-10">.aux file so that it’s available on the next LATEX run. -

      This method is extended by

      This method is extended by glossaries-extra and is described in §6.1 \glslinkpresetkeys. See §6.2 Link Counting for further details.

    -

    Top

    6.1 Entry Counting (First Use Flag)

    -

    As mentioned in

    As mentioned in §2.4 Entry Counting Modifications, §5 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 shortcuts=acro). -

    All upper case versions (not provided by

    All upper case versions (not provided by glossaries) are also available: -



    \cGLS  label}[insert]

    -

    +

    and -



    \cGLSpl  label}[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 @@ -13364,8 +13903,8 @@ class="cmss-10">glossaries:  
    \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  } class="cmtt-10">{⟨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}%  
     {% @@ -13441,7 +13980,7 @@ class="cmti-10">normal code⟩).  
     {#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 @@ -13449,17 +13988,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  } class="cmtt-10">{⟨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}% @@ -13499,19 +14038,19 @@ class="cmti-10">value⟩. In addition, this does:  
    \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 @@ -13524,12 +14063,12 @@ class="cmss-10">entrycount\printglossaries  
    \end{document}
    -

    -

    The standard entry-counting function describe above counts the number of times +

    +

    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  value}{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 T

    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 @@ -13583,58 +14122,58 @@ 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  \glsentrycurrcount{label}

    -

    +

    and the final value from the previous run: -



    \glsentryprevcount  \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  \glsentryprevtotalcount{label}

    -

    +

    which gives the sum of all the per-unit totals from the previous run for the entry given by ⟨label⟩, and -



    \glsentryprevmaxcount  \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} @@ -13653,7 +14192,7 @@ which gives the maximum per-unit total from the previous run.  
    \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  \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} @@ -13721,22 +14260,22 @@ hyperlink.  
    \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

    6.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 @@ -13752,8 +14291,8 @@ 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  ] class="cmtt-10">{⟨categories}

    -

    +

    where ⟨categories⟩ is a list of category labels. The optional argument ⟨master @@ -13780,18 +14319,18 @@ href="#catattr.linkcountmaster">linkcountmaster attribute. -

    When enabled, commands like

    When enabled, commands like \gls and \glstext increment the associated counter using -



    \glsxtrinclinkcounter  \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  \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  \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  }{false}

    -

    +

    where ⟨label⟩ is the entry’s label. -

    The counter name can be obtained using -


    The counter name can be obtained using +


    \GlsXtrLinkCounterName  \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 @@ -13872,10 +14411,10 @@ class="cmss-10">etoolbox -

    +
    \csdef{the\GlsXtrLinkCounterName{duck}}{\Roman{\GlsXtrLinkCounterName{duck}}}
    -

    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: @@ -13883,16 +14422,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} @@ -13930,7 +14469,7 @@ class="cmtt-10">\glstext).  
    \printglossaries  
    \end{document}
    -

    The use of

    The use of \glslinkpresetkeys means that the options can override this. For example @@ -13938,10 +14477,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 -

    +
    \ifnum\GlsXtrLinkCounterValue{\glslabel}>1
    -

    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

    -
    +

    Top

    7. 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

    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  }{attribute-label}

    -

    +

    This uses the standard \index command with the sort value taken from the entry’s @@ -14059,30 +14598,30 @@ 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  \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  }{label}

    -

    +

    where ⟨label⟩ is the entry label and ⟨cs⟩ is the command which needs to be set to the @@ -14101,36 +14640,36 @@ 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 command used to perform the actual indexing is: -


    The command used to perform the actual indexing is: +


    \glsxtrautoindex  \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 -

    +
    \renewcommand*{\glsxtrautoindexentry}[1]{\string\glsentryfirst{#1}}
    -

    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 -

    +
    \renewcommand*{\glsxtrautoindexassignsort}[2]{%  
      \ifglshaslong{#2}%  
      {\glsletentryfield{#1}{#2}{long}}%  
      {\glsletentryfield{#1}{#2}{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  \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 @@ -14230,8 +14769,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  \GlsXtrSetActualChar{char}

    -

    +

    Set the actual character to ⟨char⟩. -



    \GlsXtrSetLevelChar  \GlsXtrSetLevelChar{char}

    -

    +

    Set the level character to ⟨char⟩. -



    \GlsXtrSetEscChar  \GlsXtrSetEscChar{char}

    -

    +

    Set the escape (quote) character to ⟨char⟩. -



    \GlsXtrSetEncapChar  }

    -

    +

    Set the encap character to ⟨char⟩.

    -

    -

    +

    Top

    8. 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 documentglossaries-extra but can be enabled using the href="#styopt.docdefs">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  \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  dfn-options]{label}

    -

    +

    If an entry with the label ⟨label⟩ has already been defined, this just does \gls @@ -14409,7 +14948,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: +

    +

    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 +

    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  dfn-options]{label}

    -

    +

    This is like \glsxtr but uses \glspl instead of \gls. -



    \Glsxtr  dfn-options]{label}

    -

    +

    This is like \glsxtr but uses \Gls instead of \gls. -



    \Glsxtrpl  dfn-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 @@ -14524,20 +15063,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

    9. bib2gls: Managing Reference Databases

    -

    There is a new command line application called

    There is a new command line application called bib2gls.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 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 @@ -14592,7 +15131,7 @@ 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 -

    + -

    -

    The follow provides some abbreviations: +

    +

    The follow provides some abbreviations:

    -
    + -

    -

    Here are some symbols: +

    +

    Here are some symbols:

    -
    +
    preamble{"\providecommand{\mtx}[1]{\boldsymbol{#1}}"}  
    @symbol{M,  
      name={$\mtx{M}$}, @@ -14667,8 +15206,8 @@ preamble{"\providecommand{\mtx}[1]{\boldsymbol{#1}}"}  
      description={a set}  
    }
    -

    -

    To ensure that

    +

    To ensure that bib2glsrecord -

    +
    \usepackage[record]{glossaries-extra}
    -

    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 bib2glssort key from being set. -

    The

    The .glstex file created by bib2gls is loaded using: -



    \glsxtrresourcefile  ]{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  \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 .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 -

    +
    \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

    -

    -

    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 @@ -14882,10 +15421,10 @@ 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 .aux file. Those that don’t have any records will h href="#glo:bib2gls">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 @@ -14918,13 +15457,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 +

    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 @@ -14948,7 +15487,7 @@ class="cmtt-10">\printunsrtglossaries), described in href="#sec:printunsrt">§10.2 Display All Entries Without Sorting or Indexing. -

    Suppose the

    Suppose the .bib examples shown above have been stored in the files terms.bib, EX’s path. Then the document might look like:

    -
    +
    \documentclass{article}  
    \usepackage[record]{glossaries-extra}  
    \setabbreviationstyle{long-short-desc} @@ -14972,18 +15511,18 @@ class="E">EX’s path. Then the document might look like:  
    \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} @@ -15044,8 +15583,8 @@ methods:  
    \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: @@ -15053,7 +15592,7 @@ 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} @@ -15071,7 +15610,7 @@ class="cmtt-10">type, which will produce a glossary with ordered sub-bloc  
    \printunsrtglossaries  
    \end{document}
    -

    This will result in a glossary where the first group has the title “Abbreviations”, the +

    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 §2.10 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 +

    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=onlyxindy 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 script⟩ is the four letter script identifier, such as Latn). -



    \glshex  \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). -


    \glsxtrprovidecommand


    \glscapturedgroup  \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 bib2gls +version 1.5). For example: + + + +

    +
    +sort-replace={{([a-zA-Z])\string\.}{\glscapturedgroup1}} +
    +

    This only removes a full stop that follows any of the characters a,…,z or +A,…,Z. +

    If you use the save-child-count resource option, you can test if the childcount +field is non-zero using: +


    \GlsXtrIfHasNonZeroChildCount  \GlsXtrIfHasNonZeroChildCount{label} +{true}{false}

    +

    +This internally uses \GlsXtrIfFieldNonZero and will do ⟨false⟩ if the field isn’t set. +Within ⟨true⟩ and ⟨false⟩ you can use \glscurrentfieldvalue to access the value. (It +will be 0 in ⟨false⟩ if the field isn’t set.) +


    \glsxtrprovidecommand  \glsxtrprovidecommand

    -

    +

    This command is intended for use in @preamble. It’s simply defined to \providecommand in glossaries-extra-bib2gls but but bib2gls’s interpreter treats it as + id="dx1-37019">’s interpreter treats it as \renewcommand. This means that you can override bib2gls’s internal definition of a + id="dx1-37021">’s internal definition of a command without overriding the command definition in the document (if it’s already defined before the resource file is input). For example

    -
    +
    @preamble{"\glsxtrprovidecommand{\int}{integral}"}
    -

    This will force

    This will force bib2gls to treat to treat \int as the word “integral” to assist sorting but if this preamble code is written to the .glstex file (as it is by default) then it won’t override the current definition (provided by the kernel or redefined by a package). -



    \GlsXtrIndexCounterLink  \GlsXtrIndexCounterLink{text}{label}

    -

    +

    If the \hyperref command has been defined (that is, command has been defined (that is, hyperref has been + id="dx1-37026"> has been loaded before glossaries-extra) then this command checks for the existence of the text⟩. This command is provided for use with the indexcounter package option combined with package option combined with bib2gls’s ’s save-index-counter resource option. See the bib2gls manual for further details (at least version + id="dx1-37031"> manual for further details (at least version 1.4). -



    \GlsXtrBibTeXEntryAliases  \GlsXtrBibTeXEntryAliases

    -

    +

    A convenient shortcut for use in the entry-type-aliases setting. This provides aliases for BibTEX’s standard entry types to bib2gls’s ’s @bibtexentry entry type (requires at least bib2gls version 1.4). -


    version 1.4). +


    \GlsXtrProvideBibTeXFields  \GlsXtrProvideBibTeXFields

    -

    +

    Defines storage keys for BibTEX’s standard fields. Note that BibTEX’s type field clashes with the glossaries package’s package’s type key, so this command provides the key + id="dx1-37039"> key, so this command provides the key bibtextype instead. You can alias it with field-aliases=type=bibtextype in the @@ -15595,59 +16184,59 @@ class="cmtt-10">\glsxtrbibaddress. The class="cmtt-10">bibtextype 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 + id="dx1-37040"> package also provides definitions of the missing mathematical Greek commands: \Alpha, , \Beta, , \Epsilon, , \Zeta, , \Eta, , \Iota, + id="dx1-37046">, \Kappa, , \Mu, , \Nu, , \Omicron, , \Rho, , \Tau, , \Chi, , \Digamma, , \omicron. These are all + id="dx1-37055">. These are all defined with \providecommand, so they won’t override any definitions provided by any package loaded before glossaries-extra. Since . Since bib2gls’s interpreter recognises + id="dx1-37058">’s interpreter recognises these commands, using them instead of explicitly using the Latin characters with the same shape helps to keep the Greek symbols together when sorting. Similarly, if upgreek has been loaded, the missing upright Greek commands are also + id="dx1-37059"> 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 \IfTrackedLanguageFileExists in the tracklang documentation for further details. + id="dx1-37060"> documentation for further details. If this file is on TEX’s path and the tracklang package (automatically loaded by + id="dx1-37061"> package (automatically loaded by glossaries) detects that the document has requested that language or locale, then the file will automatically be loaded. For example, if you want to provide a rule @@ -15674,7 +16263,7 @@ contains:

    -
    +
    \ProvidesGlossariesExtraLang{welsh}[2018/02/23 v1.0]  
    \@ifpackageloaded{glossaries-extra-bib2gls}  
    { @@ -15712,7 +16301,7 @@ contains:  
    }  
    {}% 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. @@ -15720,7 +16309,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 @@ -15740,20 +16329,20 @@ class="cmtt-10">glossariesxtr-Cyrl.ldf could contain:  
      % an alternative set of Cyrillic rules  
    }
    -

    (Remember that the required document language scripts need to be tracked through +

    (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 + id="dx1-37062"> package, in order for these files to be automatically loaded. This essentially means ensuring you load the appropriate language package before tracklang is loaded by the base is loaded by the base glossaries package or any other package that uses it. + id="dx1-37064"> package or any other package that uses it. See the tracklang documentation for further details.) -

    Alternatively, if the rules are specific to a subject rather than a region or + id="dx1-37065"> documentation for further details.) +

    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 @@ -15763,7 +16352,7 @@ class="cmtt-10">mapsymbols.sty might contain:

    -
    +
    \NeedsTeXFormat{LaTeX2e}  
    \ProvidesPackage{mapsymbols}  
     some package or font loading stuff here to provide @@ -15779,28 +16368,28 @@ class="cmtt-10">mapsymbols.sty might contain:  
     \string< \glshex 26BD % football 0x26BD  
    }
    -

    and the supplementary file

    and the supplementary file mapsymbols.bib can provide the appropriate definitions for bib2gls: + id="dx1-37067">:

    -
    +
    @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: +

    Now both the preamble and rule block can be used in the resource set:

    -
    +
    \usepackage{mapsymbols}% my custom package  
    \usepackage[record]{glossaries-extra}  
    \GlsXtrLoadResources[ @@ -15822,10 +16411,10 @@ class="cmtt-10">bib2gls }  
    ]
    -

    -

    The following commands are provided by

    +

    The following commands are provided by glossaries-extra-bib2gls. They should be + id="dx1-37068">. They should be separated by the rule separator characters ; (semi-colon) or , (comma) or @@ -15834,21 +16423,21 @@ class="cmtt-10">& (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, + id="dx1-37069">, \Alpha, , \beta, , \Beta etc) in a block before Latin characters: + id="dx1-37072"> etc) in a block before Latin characters:

    -
    +
    sort-rule={\glsxtrcontrolrules  
     ;\glsxtrspacerules  
     ;\glsxtrnonprintablerules @@ -15863,48 +16452,48 @@ sort-rule={\glsxtrcontrolrules  
     <\glsxtrLatinOslash  
    }
    -

    -


    +


    \glsxtrcontrolrules  \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  \glsxtrspacerules

    -

    +

    These are space characters. They typically come after the control characters with the two blocks separated by a ; (semi-colon). -



    \glsxtrnonprintablerules  \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 aren’t checked for by bib2gls when it determines whether or not to use the + id="dx1-37077"> 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  \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: @@ -15912,7 +16501,7 @@ of sub-block commands:

    -
    +
    \newcommand*{\glsxtrcombiningdiacriticrules}{%  
     \glsxtrcombiningdiacriticIrules\string;  
     \glsxtrcombiningdiacriticIIrules\string; @@ -15920,36 +16509,36 @@ of sub-block commands:  
     \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  \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  \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  \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 @@ -15961,13 +16550,13 @@ 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  \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, @@ -15977,20 +16566,20 @@ arrow above, left arrow above, right arrow above, ring overlay, clockwise ring o anticlockwise ring overlay, three dots above, four dots above, enclosing circle, enclosing square, enclosing diamond, enclosing circle backslash, left right arrow above. -



    \glsxtrhyphenrules  \glsxtrhyphenrules

    -

    +

    This contains hyphens (including the minus sign 0x2212). This rule block typically comes after the diacritic rules separated by a comma. -



    \glsxtrgeneralpuncrules  \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 @@ -16000,20 +16589,20 @@ different order is required:

    -
    +
    \newcommand*{\glsxtrgeneralpuncrules}{%  
      \glsxtrgeneralpuncIrules  
      \string<\glsxtrcurrencyrules  
      \string<\glsxtrgeneralpuncIIrules  
    }
    -

    -


    +


    \glsxtrgeneralpuncIrules  \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, @@ -16022,32 +16611,32 @@ 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  \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  \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  \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  \glsxtrBasicDigitrules

    -

    +

    This rule block contains just the Basic Latin digits (0, …, 9). -



    \glsxtrSubScriptDigitrules  \glsxtrSubScriptDigitrules

    -

    +

    This rule block contains just the subscript digits (0 … 9). -



    \glsxtrSuperScriptDigitrules  \glsxtrSuperScriptDigitrules

    -

    +

    This rule block contains just the superscript digits (0 … 9). -



    \glsxtrfractionrules  \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 @@ -16101,12 +16690,12 @@ class="cmtt-10">glossariesxtr-⟨tag.ldf file for the particular language or region. -



    \glsxtrGeneralLatinIrules  \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  \glsxtrGeneralLatinIIrules

    -

    +

    This is like \glsxtrGeneralLatinIrules but it includes eth (Ð) between ‘D’ and ‘E’ and eszett (ß) treated as ‘ss’. -



    \glsxtrGeneralLatinIIIrules  \glsxtrGeneralLatinIIIrules

    -

    +

    This is like \glsxtrGeneralLatinIrules but it includes eth (Ð) between ‘D’ and ‘E’ and eszett (ß) treated as ‘sz’. -



    \glsxtrGeneralLatinIVrules  \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  \glsxtrGeneralLatinVrules

    -

    +

    This is like \glsxtrGeneralLatinIrules but it includes eth (Ð) between ‘D’ and ‘E’, eszett (ß) treated as ‘ss’ and thorn (þ) treated as ‘th’. -



    \glsxtrGeneralLatinVIrules  \glsxtrGeneralLatinVIrules

    -

    +

    This is like \glsxtrGeneralLatinIrules but it includes eth (Ð) between ‘D’ and ‘E’, eszett (ß) treated as ‘sz’ and thorn (þ) treated as ‘th’. -



    \glsxtrGeneralLatinVIIrules  \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  \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  \glsxtrLatinA

    -

    +

    A mini-rule that just covers ‘A’ but includes the sub- and superscript A. -



    \glsxtrLatinE  \glsxtrLatinE

    -

    +

    A mini-rule that just covers ‘E’ but includes the subscript E. -



    \glsxtrLatinH  \glsxtrLatinH

    -

    +

    A mini-rule that just covers ‘H’ but includes the subscript H. -



    \glsxtrLatinK  \glsxtrLatinK

    -

    +

    A mini-rule that just covers ‘K’ but includes the subscript K. -



    \glsxtrLatinI  \glsxtrLatinI

    -

    +

    A mini-rule that just covers ‘I’ but includes the superscript I. -



    \glsxtrLatinL  \glsxtrLatinL

    -

    +

    A mini-rule that just covers ‘L’ but includes the subscript L. -



    \glsxtrLatinM  \glsxtrLatinM

    -

    +

    A mini-rule that just covers ‘M’ but includes the subscript M. -



    \glsxtrLatinN  \glsxtrLatinN

    -

    +

    A mini-rule that just covers ‘N’ but includes the sub- and superscript N. -



    \glsxtrLatinO  \glsxtrLatinO

    -

    +

    A mini-rule that just covers ‘O’ but includes the sub- and superscript O. -



    \glsxtrLatinP  \glsxtrLatinP

    -

    +

    A mini-rule that just covers ‘P’ but includes the subscript P. -



    \glsxtrLatinS  \glsxtrLatinS

    -

    +

    A mini-rule that just covers ‘S’ but includes the subscript S. -



    \glsxtrLatinT  \glsxtrLatinT

    -

    +

    A mini-rule that just covers ‘T’ but includes the subscript T. -



    \glsxtrLatinX  \glsxtrLatinX

    -

    +

    A mini-rule that just covers ‘X’ but includes the subscript X. -



    \glsxtrLatinEszettSs  \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  \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  \glsxtrLatinEth

    -

    +

    A mini-rule for eth (Ð) so you don’t need to remember the Unicode values. -



    \glsxtrLatinThorn  \glsxtrLatinThorn

    -

    +

    A mini-rule for thorn (þ) so you don’t need to remember the Unicode values. -



    \glsxtrLatinAELigature  \glsxtrLatinAELigature

    -

    +

    A mini-rule for ae-ligature (æ) so you don’t need to remember the Unicode values. -



    \glsxtrLatinOELigature  \glsxtrLatinOELigature

    -

    +

    A mini-rule for oe-ligature (œ) so you don’t need to remember the Unicode values. -



    \glsxtrLatinOslash  \glsxtrLatinOslash

    -

    +

    A mini-rule for ‘Ø’ so you don’t need to remember the Unicode values. -



    \glsxtrLatinLslash  \glsxtrLatinLslash

    -

    +

    A mini-rule for ‘Ł’ so you don’t need to remember the Unicode values. -



    \glsxtrLatinWynn  \glsxtrLatinWynn

    -

    +

    A mini-rule for wynn (Ƿ) so you don’t need to remember the Unicode values. -



    \glsxtrLatinInsularG  \glsxtrLatinInsularG

    -

    +

    A mini-rule for insular G (Ᵹ) so you don’t need to remember the Unicode values. -



    \glsxtrLatinSchwa  \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  \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  \glsxtrMathGreekIrules

    -

    +

    A rule block for mathematical Greek (\alpha, , \beta etc) and upright Greek + id="dx1-37128"> etc) and upright Greek (\upalpha, etc, from the , etc, from the upgreek package) characters that includes digamma + id="dx1-37130"> package) characters that includes digamma (\digamma and and \Digamma) between epsilon and zeta. The upright and italic versions + id="dx1-37132">) between epsilon and zeta. The upright and italic versions are gathered together into the same letter group. -



    \glsxtrMathGreekIIrules  \glsxtrMathGreekIIrules

    -

    +

    As \glsxtrMathGreekIrules but doesn’t include digamma. -



    \glsxtrMathUpGreekIrules  \glsxtrMathUpGreekIrules

    -

    +

    A rule block for upright Greek (\upalpha, etc, from the , etc, from the upgreek package) + id="dx1-37136"> package) characters that includes digamma (\digamma and and \Digamma) between epsilon and + id="dx1-37138">) between epsilon and zeta. -



    \glsxtrMathUpGreekIIrules  \glsxtrMathUpGreekIIrules

    -

    +

    A rule block for upright Greek (\upalpha, etc, from the , etc, from the upgreek package) that + id="dx1-37141"> package) that doesn’t include digamma. -



    \glsxtrMathItalicGreekIrules  \glsxtrMathItalicGreekIrules

    -

    +

    A rule block for mathematical Greek (\alpha, , \Alpha, etc) characters that includes + id="dx1-37144">, etc) characters that includes digamma (\diagamma and and \Digamma) between epsilon and zeta. Note that even + id="dx1-37146">) between epsilon and zeta. Note that even though the upper case \Delta etc are actually rendered upright by LATEX, bib2gls’s interpreter treats them as italic to help keep them close to the lower case + id="dx1-37148">’s interpreter treats them as italic to help keep them close to the lower case versions. -



    \glsxtrMathItalicGreekIIrules  \glsxtrMathItalicGreekIIrules

    -

    +

    A rule block for mathematical Greek (\alpha, , \Alpha, etc) characters that doesn’t + id="dx1-37151">, etc) characters that doesn’t include digamma. -



    \glsxtrMathItalicUpperGreekIrules  \glsxtrMathItalicUpperGreekIrules

    -

    +

    A rule block for upper case mathematical Greek (\Alpha, , \Beta, etc) characters that + id="dx1-37154">, etc) characters that includes digamma (\Digamma) between epsilon and zeta. -


    ) between epsilon and zeta. +


    \glsxtrMathItalicUpperGreekIIrules  \glsxtrMathItalicUpperGreekIIrules

    -

    +

    A rule block for upper case mathematical Greek (\Alpha, , \Beta, etc) characters that + id="dx1-37158">, etc) characters that doesn’t include digamma. -



    \glsxtrMathItalicLowerGreekIrules  \glsxtrMathItalicLowerGreekIrules

    -

    +

    A rule block for lower case mathematical Greek (\alpha, , \beta, etc) characters that + id="dx1-37161">, etc) characters that includes digamma (\digamma) between epsilon and zeta. -


    ) between epsilon and zeta. +


    \glsxtrMathItalicLowerGreekIIrules  \glsxtrMathItalicLowerGreekIIrules

    -

    +

    A rule block for lower case mathematical Greek (\alpha, , \beta, etc) characters that + id="dx1-37165">, 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  \glsxtrMathItalicPartial

    -

    +

    The partial derivative symbol (). -



    \glsxtrMathItalicNabla  \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

    @@ -16586,12 +17175,12 @@ class="cmti-10">information⟩ is the information to pass to bib2gls. The command in the second argument -



    \glsxtrresourceinit  \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: @@ -16599,23 +17188,23 @@ 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. -

    It’s possible to specify label prefixes. For example, modifying the earlier +

    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} @@ -16636,21 +17225,21 @@ example:  
    \printunsrtglossaries  
    \end{document}
    -

    If you do something like this, you may find it more convenient to define custom +

    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  prefix}{cs}

    -

    +

    which defines the command ⟨cs⟩ that behaves like

    @@ -16686,23 +17275,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  }{\Glspl-like cs}

    -

    +

    For example:

    -
    +
    \glsxtrnewglslike[hyper=false]{idx.}{\idx}{\idxpl}{\Idx}{\Idxpl}
    -

    For the all caps versions: -


    For the all caps versions: +


    \glsxtrnewGLSlike  \GLS-like cs}{\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  }{cs}

    -

    +

    and for \rgls, \rglspl, \rGls and \rGlspl: -



    \glsxtrnewrglslike  }{\rGlspl-like cs}

    -

    +

    and for the all caps: -



    \glsxtrnewrGLSlike  \rGLS-like cs}{\rGLSpl-like cs}

    -

    -

    +

    +

    -

    Top

    9.5 Record Counting

    -

    As from version 1.1 of

    As from version 1.1 of bib2glsrecordcount: set to the total number of records found for class="cmtt-10">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:

    • location⟩: set to the total number of reco -

      Only use the unit counting option if the locations don’t contain any special characters. If +

      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  \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 bib2glssection 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  \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 @@ -16939,19 +17528,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  } class="cmtt-10">{⟨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. -



      \rgls  label}[insert]

      -

      -


      +


      \rglspl  label}[insert]

      -

      -


      +


      \rGls  label}[insert]

      -

      -


      +


      \rGlspl  label}[insert]

      -

      -


      +


      \rGLS  label}[insert]

      -

      -


      +


      \rGLSpl  label}[insert]

      -

      +

      These commands check the recordcount -

      +
      \glssetcategoryattribute{abbreviation}{recordcount}{1}
      -

      For convenience, you can use -


      For convenience, you can use +



      -

      +

      to set the recordcountn⟩ for all the categories listed in ⟨category list⟩. -

      The

      The \rgls-like commands use -



      \glsxtrifrecordtrigger  } class="cmtt-10">{⟨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  \glsxtrrecordtriggervalue{label}

      -

      +

      is greater than the value given in the recordcount -

      +
      \newcommand*{\glsxtrrecordtriggervalue}[1]{%  
       \GlsXtrTotalRecordCount{#1}%  
      }
      -

      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  \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. @@ -17271,7 +17860,7 @@ For example:

      -
      +
      \documentclass{article}  
      \usepackage[record]{glossaries-extra}  
      \newignoredglossary{ignored} @@ -17288,7 +17877,7 @@ For example:  
      \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 @@ -17315,21 +17904,21 @@ class="cmss-10">subentrycounter options. The glossaries-extra package provides a supplementary command -



      \glsxtrpageref  \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  }{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  \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}{% @@ -17434,10 +18023,10 @@ class="cmti-10">without the initial backslash.  
         $\mtx{M}\mtxinv{M}=\glssymbol{identitymatrix}$}  
      }
      -

      -

      There are two commands provided that allow you to apply the command to an +

      +

      There are two commands provided that allow you to apply the command to an argument: -



      \glsxtrfmt  label}{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  \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*  text}[insert]

      -

      +

      Both the starred and unstarred versions use: -



      \glsxtrfmtdisplay  }{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 @@ -17543,25 +18132,25 @@ 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} @@ -17569,7 +18158,7 @@ class="cmti-10">text⟩.
       
        \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}

      -

      +

      This uses \texorpdfstring and will simply expand to ⟨text⟩ within the PDF @@ -17607,14 +18196,14 @@ class="cmti-10">text⟩} if a control sequence name has been provided or just ⟨text⟩ otherwise. -

      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  }{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  true}{false}

      -

      +

      This tests if ⟨key⟩ is available for use in the ⟨key⟩= list in the second argument of @@ -17656,7 +18245,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  field}{value}

      -

      +

      Sets the field given by ⟨field⟩ to ⟨value⟩ for the entry given by ⟨

      \GlsXtrSetField uses -



      \glsxtrsetfieldifexists  }{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  replacement text}

      -

      +

      This simply uses etoolbox’s \protected@csedef instead:10.1 -



      \glsxtredeffield  replacement text}

      -

      -


      +


      \gGlsXtrSetField  field}{value}

      -

      +

      As \GlsXtrSetField but globally. -



      \eGlsXtrSetField  field}{value}

      -

      +

      As \GlsXtrSetField but uses protected expansion. -



      \xGlsXtrSetField  field}{value}

      -

      +

      As \gGlsXtrSetField but uses protected expansion. -



      \GlsXtrLetField  field}{cs}

      -

      +

      Sets the field given by ⟨field⟩ to the replacement text of ⟨cs⟩ for the entry given by ⟨label⟩ (using \let). -



      \csGlsXtrLetField  }{cs name}

      -

      +

      As \GlsXtrLetField but the control sequence name is supplied instead. -



      \GlsXtrLetFieldToField  label-2}{field-2}

      -

      +

      Sets the field given by ⟨field-1⟩ for the entry given by ⟨label-1⟩ to the field given by @@ -17881,7 +18470,7 @@ class="cmti-10">code⟩} is still used, as for \GlsXtrSetField. -

      The

      The glossaries package provides \ifglshasfield to determine if a field has been @@ -17890,7 +18479,7 @@ class="cmss-10">glossaries-extra package provides a simpler version: -



      \glsxtrifhasfield  }{false}

      -

      +

      (New to v1.19.) Note that in this case the ⟨field⟩ must be the internal field label (for @@ -17921,17 +18510,17 @@ class="cmti-10">true⟩ part is done otherwise it does ⟨false⟩. Within ⟨true⟩ you may use -



      \glscurrentfieldvalue  \glscurrentfieldvalue

      -

      +

      to access the field value. This command includes grouping which scopes the ⟨true⟩ and ⟨false⟩ parts. The starred version -



      \glsxtrifhasfield*  }{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  }{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  } class="cmtt-10">{⟨false}

      -

      +

      If the entry exists and has the given field set to the given text then this does ⟨true⟩ otherwise it does ⟨false⟩. This is just a shortcut that uses \glsxtrifhasfield to test if +class="cmti-10">false⟩. This is just a shortcut that uses: -the field exists and then compares the replacement text of \glscurrentfieldvalue -with ⟨text⟩ using


      \GlsXtrIfFieldCmpStr  \GlsXtrIfFieldCmpStr{field}{label}{comparison} +{text}{true}{false}

      +

      +This in turn is just a shortcut that uses \glsxtrifhasfield to test if the field exists +and then compares the replacement text of \glscurrentfieldvalue with ⟨text⟩ using +etoolbox’s \ifdefstring. -

      The ’s \ifdefstring. The ⟨comparison⟩ argument must be one of = (equality), < +(less than) or > (greater than). +

      As from version 1.31, there’s a similar command: +


      \GlsXtrIfFieldEqXpStr  \GlsXtrIfFieldEqXpStr{field}{label}{text} +{true}{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  \GlsXtrIfXpFieldEqXpStr{field}{label}{text} +{true}{false}

      +

      +

      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 ⟨true⟩ or ⟨false⟩ to access the +actual value. Both ⟨true⟩ and ⟨false⟩ are scoped. If the field is undefined or +empty, the value is assumed to be 0, and \glscurrentfieldvalue is set +accordingly. +

      To test if the value is non-zero: +


      \GlsXtrIfFieldNonZero  \GlsXtrIfFieldNonZero{field}{label}{true} +{false}

      +

      +Alternatively, you can test if the field expands to a specific number using: +


      \GlsXtrIfFieldEqNum  \GlsXtrIfFieldEqNum{field}{label}{n}{true} +{false}

      +

      +This does ⟨true⟩ if the field value equals ⟨n⟩ (using \ifnum for the comparison) otherwise +it does ⟨false⟩. +

      The glossaries package provides \glsfieldfetch which can be used to fetch the + id="dx1-41041"> 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  \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 ⟨field-label⟩ corresponds to the internal field tag, which isn’t always the same as the key name. See Table 4.1 of the glossaries + id="dx1-41043"> 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  \Glsxtrusefield{entry-label}{field-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 + id="dx1-41045"> internal list, you can use the following command that adds an item to the field using etoolbox’s ’s \listcsadd: -



      \glsxtrfieldlistadd  \glsxtrfieldlistadd{label}{}{item}

      -

      +

      where ⟨label⟩ is the entry’s label, ⟨field⟩ is the entry’s field and ⟨\listgadd, \listeadd and \listxadd: -



      \glsxtrfieldlistgadd  \glsxtrfieldlistgadd{label}{}{item}

      -

      -


      +


      \glsxtrfieldlisteadd  \glsxtrfieldlisteadd{label}{}{item}

      -

      -


      +


      \glsxtrfieldlistxadd  \glsxtrfieldlistxadd{label}{}{item}

      -

      +

      You can then iterate over the list using: -



      \glsxtrfielddolistloop  \glsxtrfielddolistloop{label}{field}

      -

      +

      or -



      \glsxtrfieldforlistloop  \glsxtrfieldforlistloop{label}{} class="cmtt-10">{handler}

      -

      +

      that internally use \dolistcsloop and \forlistloop, respectively. - - - -

      There are also commands that use

      There are also commands that use \ifinlistcs: -



      \glsxtrfieldifinlist  \glsxtrfieldifinlist{label}{} class="cmtt-10">{false}

      -

      +

      and \xifinlistcs -



      \glsxtrfieldxifinlist  \glsxtrfieldxifinlist{label}{true}{false}

      -

      -

      See the

      +

      See the etoolbox’s user manual for further details of these commands, in particular + id="dx1-41055">’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  \glsxtrforcsvfield{label}{}{handler}

      -

      +

      where again ⟨handler⟩ is a control sequence that takes a single argument. Unlike the etoolbox loops, this doesn’t ignore empty elements nor does it discard leading / + id="dx1-41057"> loops, this doesn’t ignore empty elements nor does it discard leading / trailing spaces. Internally it uses \@for (modified by xfor which is automatically + id="dx1-41058"> which is automatically loaded by glossaries). The ). The xfor package modifies the behaviour of package modifies the behaviour of \@for to allow the loop to be broken prematurely using \@endfortrue. The \glsxtrforcsvfield command locally defines a user level command: -



      \glsxtrendfor  \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. -

      When using the

      When using the record option, in addition to recording the usual location, you can + id="dx1-41062"> 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  \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  \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 @@ -18362,8 +19077,8 @@ 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 §9 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 @@ -18425,7 +19140,7 @@ class="cmsy-10">§2.10 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. -

      If you want to use a different field, you can redefine -


      If you want to use a different field, you can redefine +


      \glsxtrgroupfield  \glsxtrgroupfield

      -

      +

      to the relevant internal field label, but the group bib2glssecondarygroup 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}} @@ -18501,32 +19216,32 @@ will automatically deal with this.  
      \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  \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⟩]. -

      To avoid complications caused by

      To avoid complications caused by tabular-like glossary styles,



      \printunsrtglossaryentryprocesshook  \printunsrtglossaryentryprocesshook class="cmtt-10">{⟨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  \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  \printunsrtglossarypredoglossary

      -

      +

      -

      The internal command uses -


      The internal command uses +


      \printunsrtglossaryhandler  \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  \glsxtrunsrtdo{label}

      -

      +

      which determines whether to use \glossentry or \subglossentry and checks the @@ -18598,10 +19313,10 @@ class="cmss-10">loclist fields for the number list. -

      You can redefine the handler if required. For example, you may want to filter +

      You can redefine the handler 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  } class="cmtt-10">{⟨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 +

      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} @@ -18663,8 +19378,8 @@ localise the change:  
        }%  
      }
      -

      -

      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} @@ -18690,7 +19405,7 @@ duplicate hypertarget names. For example:  
        }%  
      }
      -

      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: @@ -18698,7 +19413,7 @@ better approach to use:

      -
      +
      \printunsrtglossary*{%  
        \renewcommand{\printunsrtglossaryhandler}[1]{%  
          \glsxtrfieldxifinlist{#1}{record.section}{\thesection} @@ -18714,14 +19429,14 @@ better approach to use:  
        }%  
      }
      -

      -

      If it’s a short summary at the start of a section, you might also want to suppress +

      +

      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} @@ -18739,9 +19454,9 @@ the glossary header and add some vertical space afterwards:  
        \appto\glossarypostamble{\glspar\medskip\glspar}%  
      }
      -

      -

      There’s a shortcut command that essentially does this: -


      +

      There’s a shortcut command that essentially does this: +


      \printunsrtglossaryunit  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” +

      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 @@ -18796,7 +19511,7 @@ href="#styopt.record">record=alsoindex) 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 @@ -18808,12 +19523,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 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 @@ -18838,43 +19553,43 @@ custom command:  
       \par\medskip  
      }
      -

      define your entries +

      define your entries

      -
      +
      \newglossaryentry{function}{name={function},  
        description={a relation or expression involving variables}  
      }
      -

      and then later in the text: +

      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  \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 \subglossentry and may be used by hooks, such as class="cmtt-10">\glossentryname.
      • 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. Here the definition is localised so that it’s only available for - use in \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. + Here the definition is localised so that it’s only available for use in + \glsentryitem and \glssubentryitem. -
      • +class="cmtt-10">\glssubentryitem. The value is obtained by fully + expanding: +


        \GlsXtrStandaloneGlossaryType  \GlsXtrStandaloneGlossaryType +

        +

        + which defaults to the value of the type field for the current entry. +

      • Increments and display the entry counters if the entrycounter or or subentrycounter - package options are set. If the entry has a parent, then this does + id="dx1-43008"> + package options are set. If the entry doesn’t have a parent, then this + does
        • \glssubentryitem{\glsentryitem{label}
        -

        otherwise it does

        +

        otherwise it does (as from v1.31)

        • \glsentryitem{\GlsXtrStandaloneSubEntryItem + {label}
        -
      • +class="cmtt-10">} 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 + 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 + do: + + + +

      +
      + \renewcommand*{\GlsXtrStandaloneSubEntryItem}[1]{\glssubentryitem{#1}} +
      +

      +

    • Sets the hyper-target if supported (using \glstarget).
    • @@ -18928,22 +19678,19 @@ class="cmtt-10">\glsnamefont or picks up the style from category attribut such as glossnamefont.
    - - - -

    If you have used . +

    If you have used \nopostdesc or or \glsxtrnopostpunc in any of your description fields, + id="dx1-43012"> in any of your description fields, you can use -



    \glsxtractivatenopost  \glsxtractivatenopost

    -

    +

    to make these commands behave as they normally do within a glossary. This needs to be placed before

    @@ -18956,13 +19703,13 @@ 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  \glsxtrglossentryother{header}{}{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 }.

  • Otherwise ⟨header⟩ is simply the field value.
  • -

    The

    The \glsxtrglossentryother command internally uses \glossentrynameother{label\glossentryname{label}. If you are using the glossaries-accsupp + id="dx1-43016"> package (through the accsupp option) then accessibility support will be provided if + id="dx1-43017"> option) then accessibility support will be provided if there’s a corresponding command

    }
    (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 @@ -19039,17 +19789,17 @@ class="cmtt-10">\glssymbolaccessdisplay).  
     \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 + id="dx1-43018"> or subentrycounter and remove the colon: + id="dx1-43019"> and remove the colon:

    -
    +
    \newcommand{\displayterm}[1]{%  
     \par\medskip\par\noindent  
     Definition \glsxtrglossentry{#1}.\par @@ -19057,28 +19807,28 @@ class="cmss-10">subentrycounter \par\medskip  
    }
    -

    The counter label uses a dot after the number by default but this can be changed to +

    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 @@ -19089,18 +19839,18 @@ the following modification:  
     \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.4 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 @@ -19132,7 +19882,7 @@ defining the other entry after the aliased entry. (For example, when used with href="#glo:bib2gls">bib2gls.) -

    If an entry ⟨

    If an entry ⟨entry-1⟩ is made an alias of ⟨entry-2⟩ then:

    -

    The index suppression trigger is performed by -


    The index suppression trigger is performed by +


    \glsxtrsetaliasnoindex  \glsxtrsetaliasnoindex

    -

    +

    This is performed after the default options provided by \GlsXtrSetDefaultGlsOpts @@ -19222,49 +19972,49 @@ class="cmss-10">=only, \glsxtrsetaliasnoindex will default to do nothing. -

    Within the definition of

    Within the definition of \glsxtrsetaliasnoindex you can use -



    \glsxtrindexaliased  \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  \glsxtralias{label}

    -

    +

    -

    -

    +

    Top

    11. Supplemental Packages

    -

    The

    The glossaries bundle provides additional support packages glossaries-prefix (for @@ -19273,10 +20023,10 @@ class="cmss-10">glossaries-accsupp (for accessibility support). These packages aren’t automatically loaded.

    -

    Top

    11.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 @@ -19285,7 +20035,7 @@ example:

    -
    +
    \documentclass{article}  
    \usepackage{glossaries-extra}  
    \usepackage{glossaries-prefix} @@ -19300,13 +20050,13 @@ example:  
    \printglossaries  
    \end{document}
    -

    -

    +

    +

    -

    Top

    11.2 Accessibility Support

    -

    The

    The glossaries-accsupp package needs to be loaded before glossaries-extra or through @@ -19318,10 +20068,10 @@ class="cmss-10">accsupp -

    +
    \usepackage[accsupp]{glossaries-extra}
    -

    If you don’t load

    If you don’t load glossaries-accsupp or you load glossaries-accsuppxxx⟩ commands described below will simply be equiv corresponding \glsentryxxx⟩ commands. -

    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  \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  
      {% @@ -19377,20 +20127,20 @@ class="cmss-10">glossaries-accsupp  {#1}%  
    }
    -

    (

    (\glsnameaccessdisplay is defined by the glossaries-accsupp package.) The first letter upper case version is: -



    \Glsaccessname  \Glsaccessname{label}

    -

    +

    Without the glossaries-accsupp package this is just defined as: @@ -19398,17 +20148,17 @@ class="cmss-10">glossaries-accsupp -

    +
    \newcommand*{\Glsaccessname}[1]{\Glsentryname{#1}}
    -

    With the

    With the glossaries-accsupp package this is defined as:

    -
    +
    \newcommand*{\Glsaccessname}[1]{%  
      \glsnameaccessdisplay  
      {% @@ -19417,112 +20167,112 @@ class="cmss-10">glossaries-accsupp  {#1}%  
    }
    -

    -

    The following commands are all defined in an analogous manner. -


    +

    The following commands are all defined in an analogous manner. +


    \glsaccesstext  \glsaccesstext{label}

    -

    +

    This displays the value of the text field. -



    \Glsaccesstext  \Glsaccesstext{label}

    -

    +

    This displays the value of the text field with the first letter converted to upper case. -



    \glsaccessplural  \glsaccessplural{label}

    -

    +

    This displays the value of the plural field. -



    \Glsaccessplural  \Glsaccessplural{label}

    -

    +

    This displays the value of the plural field with the first letter converted to upper case. -



    \glsaccessfirst  \glsaccessfirst{label}

    -

    +

    This displays the value of the first field. -



    \Glsaccessfirst  \Glsaccessfirst{label}

    -

    +

    This displays the value of the first field with the first letter converted to upper case. -



    \glsaccessfirstplural  \glsaccessfirstplural{label}

    -

    +

    This displays the value of the firstplural field. -



    \Glsaccessfirstplural  \Glsaccessfirstplural{label}

    -

    +

    This displays the value of the firstplural field with the first letter converted to upper case. -



    \glsaccesssymbol  \glsaccesssymbol{label}

    -

    +

    This displays the value of the symbol field. -



    \Glsaccesssymbol  }

    -

    +

    This displays the value of the symbol field with the first letter converted to upper case. -



    \glsaccesssymbolplural  \glsaccesssymbolplural{label}

    -

    +

    This displays the value of the symbolplural field. -



    \Glsaccesssymbolplural  \Glsaccesssymbolplural{label}

    -

    +

    This displays the value of the symbolplural field with the first letter converted to upper case. -



    \glsaccessdesc  \glsaccessdesc{label}

    -

    +

    This displays the value of the desc field. -



    \Glsaccessdesc  \Glsaccessdesc{label}

    -

    +

    This displays the value of the desc field with the first letter converted to upper case. -



    \glsaccessdescplural  \glsaccessdescplural{label}

    -

    +

    This displays the value of the descplural field. -



    \Glsaccessdescplural  \Glsaccessdescplural{label}

    -

    +

    This displays the value of the descplural field with the first letter converted to upper case. -



    \glsaccessshort  \glsaccessshort{label}

    -

    +

    This displays the value of the short field. -



    \Glsaccessshort  \Glsaccessshort{label}

    -

    +

    This displays the value of the short field with the first letter converted to upper case. -



    \glsaccessshortpl  \glsaccessshortpl{label}

    -

    +

    This displays the value of the shortplural field. -



    \Glsaccessshortpl  \Glsaccessshortpl{label}

    -

    +

    This displays the value of the shortplural field with the first letter converted to upper case. -



    \glsaccesslong  \glsaccesslong{label}

    -

    +

    This displays the value of the long field. -



    \Glsaccesslong  \Glsaccesslong{label}

    -

    +

    This displays the value of the long field with the first letter converted to upper case. -



    \glsaccesslongpl  }

    -

    +

    This displays the value of the longplural field. -



    \Glsaccesslongpl  \Glsaccesslongpl{label}

    -

    +

    This displays the value of the longplural field with the first letter converted to upper @@ -19705,11 +20455,11 @@ case.

    -

    -

    +

    Top

    12. Sample Files

    -

    The following sample files are provided with this package: +

    The following sample files are provided with this package:

    sample.tex
    sample-suppl-hyp.tex. -

    -

    +

    Top

    13. 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\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 -

    +
    \appto\captionsenglish{%  
     \renewcommand*{\abbreviationsname}{List of Abbreviations}%  
    }
    -

    -

    Alternatively you can use the

    +

    Alternatively you can use the title key when you print the list of abbreviations. For example: @@ -20052,21 +20802,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}% @@ -20127,8 +20877,8 @@ class="cmtt-10">glossariesxtr-french.ldf.  
      {}%  
    }
    -

    -

    You can adapt this for other languages by replacing all instances of the language +

    +

    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 @@ -20144,16 +20894,16 @@ class="cmsy-10">§9.3 The glossaries-extra-bib2gls package for further details. -

    This

    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  }{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.

    -



    \GlsXtrNoGlsWarningEmptyStart  \GlsXtrNoGlsWarningEmptyStart

    -

    +

    This produces the following text in English:

    -

    This has probably happened because there are no entries defined in +

    This has probably happened because there are no entries defined in this glossary.

    -



    \GlsXtrNoGlsWarningEmptyMain  \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:

    -



    \GlsXtrNoGlsWarningEmptyNotMain  \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 ] as the optional argument? If you did, check that the definitions in the file you loaded all had the type set to \glsdefaulttype.

    -



    \GlsXtrNoGlsWarningCheckFile  \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  \GlsXtrNoGlsWarningMisMatch

    -

    +

    This produces the following text in English:

    -

    You need +

    You need to either replace \makenoidxglossaries with \makeglossaries or @@ -20258,17 +21008,17 @@ class="cmtt-10">\printglossaries) class="cmtt-10">\printnoidxglossary (or \printnoidxglossaries) and then rebuild this document.

    -



    \GlsXtrNoGlsWarningNoOut  \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.

    -



    \GlsXtrNoGlsWarningTail  \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  \GlsXtrNoGlsWarningBuildInfo

    -

    +

    This is advice on how to generate the glossary files. See the documented code (glossaries-extra-code.pdf) for further details. -



    \GlsXtrNoGlsWarningAutoMake  \GlsXtrNoGlsWarningAutoMake{label}

    -

    +

    This is the message produced when the automakeshort-nolong-noreg  228
        short-postfootnote  229, 230, 229, 230, 231, 232, 233, 308
    bib2gls  309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 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, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 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, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 386
    +class="cmbx-10">388
    bib2gls  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, 459, 460, 461, 462, 463, 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, 459, 460, 461, 462, 463, 464, 465, 466, 467, 464
    +class="cmbx-10">468

    C categories:
        abbreviation  465, 466, 467, 468, 469
    +href="glossaries-extra-manual.html#dx1-9005" >469, 470, 471, 472, 473
        acronym  470, 471, 472, 473, 474
    +href="glossaries-extra-manual.html#dx1-16022" >474, 475, 476, 477, 478
        general  475, 476, 477, 478, 479, 480, 481, 482
    +href="glossaries-extra-manual.html#dx1-8037" >479, 480, 481, 482, 483, 484, 485, 486
        index  483, 484
    +href="glossaries-extra-manual.html#dx1-5047" >487, 488
        number  485
    +href="glossaries-extra-manual.html#dx1-28018" >489
        symbol  486, 487
    +href="glossaries-extra-manual.html#dx1-8045" >490, 491
    category attributes:
        accessaposplural  492, 493, 494
    +    accessinsertdots  495
    +    accessnoshortplural  496
    +    aposplural  488, 489, 490, 491
    +href="glossaries-extra-manual.html#dx1-11036" >497, 498, 499, 500, 501, 502, 503, 504
        discardperiod  492, 493, 494, 495, 496
    +href="glossaries-extra-manual.html#dx1-8032" >505, 506, 507, 508, 509
        dualindex  497, 498, 499, 500, 501, 502, 503
    +href="glossaries-extra-manual.html#dx1-28148" >510, 511, 512, 513, 514, 515, 516
        entrycount  504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514
    +href="glossaries-extra-manual.html#dx1-9004" >517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527
        externallocation  515
    +href="glossaries-extra-manual.html#dx1-6049" >528
    +    firstshortaccess  529
        glossdesc  516, 517, 518
    +href="glossaries-extra-manual.html#dx1-16004" >530, 531, 532
        glossdescfont  519, 520
    +href="glossaries-extra-manual.html#dx1-16005" >533, 534
        glossname  521, 522, 523
    +href="glossaries-extra-manual.html#dx1-16003" >535, 536, 537
        glossnamefont  524, 525, 526
    +href="glossaries-extra-manual.html#dx1-16009" >538, 539, 540
        headuc  527, 528, 529, 530
    +href="glossaries-extra-manual.html#dx1-12059" >541, 542, 543, 544
        hyperoutside  531, 532
    +href="glossaries-extra-manual.html#dx1-6018" >545, 546
        indexname  533, 534, 535, 536, 537
    +href="glossaries-extra-manual.html#dx1-16014" >547, 548, 549, 550, 551
        indexonlyfirst  538, 539, 540
    +href="glossaries-extra-manual.html#dx1-6006" >552, 553, 554
    + + +     insertdots  541, 542, 543
    +href="glossaries-extra-manual.html#dx1-19004" >555, 556, 557, 558
        linkcount  544, 545, 546
    +href="glossaries-extra-manual.html#dx1-28124" >559, 560, 561
        linkcountmaster  547, 548
    +href="glossaries-extra-manual.html#dx1-28126" >562, 563
        markshortwords  549, 550
    - - - +href="glossaries-extra-manual.html#dx1-28061" >564, 565
        markwords  551, 552, 553, 554, 555, 556
    +href="glossaries-extra-manual.html#dx1-25212" >566, 567, 568, 569, 570, 571
    +    nameshortaccess  572
        nohyper  557, 558, 559
    +href="glossaries-extra-manual.html#dx1-28034" >573, 574, 575
        nohyperfirst  560, 561, 562, 563, 564
    +href="glossaries-extra-manual.html#dx1-25148" >576, 577, 578, 579, 580
        noshortplural  565, 566, 567, 568, 569
    +href="glossaries-extra-manual.html#dx1-11037" >581, 582, 583, 584, 585, 586
        pluraldiscardperiod  570, 571
    +href="glossaries-extra-manual.html#dx1-28048" >587, 588
        recordcount  572, 573, 574, 575
    +href="glossaries-extra-manual.html#dx1-39019" >589, 590, 591, 592
        regular  576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607
    +href="glossaries-extra-manual.html#dx1-8010" >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, 618, 619, 620, 621, 622, 623, 624
        retainfirstuseperiod  608
    +href="glossaries-extra-manual.html#dx1-28050" >625
        tagging  609, 610, 611, 612
    +href="glossaries-extra-manual.html#dx1-20002" >626, 627, 628, 629
        targetcategory  613
    +href="glossaries-extra-manual.html#dx1-28157" >630
        targetname  614, 615
    +href="glossaries-extra-manual.html#dx1-28154" >631, 632
        targeturl  616, 617, 618, 619, 620
    +href="glossaries-extra-manual.html#dx1-5014" >633, 634, 635, 636, 637
        textformat  621, 622, 623, 624, 625
    +href="glossaries-extra-manual.html#dx1-6019" >638, 639, 640, 641, 642
    +    textshortaccess  643
        unitcount  626
    +href="glossaries-extra-manual.html#dx1-30034" >644
        wrgloss  627, 628
    +href="glossaries-extra-manual.html#dx1-6014" >645, 646
    \cGLS  629
    +class="cmti-10">647
    \cGLSformat  630
    +class="cmti-10">648
    \cGLSpl  631
    +class="cmti-10">649
    \cGLSplformat  632
    +class="cmti-10">650
    convertgls2bib  633
    +href="glossaries-extra-manual.html#dx1-34005" >651
    \csGlsXtrLetField  634
    +class="cmti-10">652
    \CustomAbbreviationFields  635
    +class="cmti-10">653

    D datatool-base package  636
    +href="glossaries-extra-manual.html#dx1-10" >654

    E \eglssetwidest  637
    +href="glossaries-extra-manual.html#dx1-18060" >655
    \eglsupdatewidest  638
    +href="glossaries-extra-manual.html#dx1-18064" >656
    \eGlsXtrSetField  639
    +class="cmti-10">657
    entry location  640, 641, 642
    +class="cmbx-10">658, 659, 660
    entrycounter package  643
    +href="glossaries-extra-manual.html#dx1-43018" >661
    equation (counter)  644, 645
    +href="glossaries-extra-manual.html#dx1-4123" >662, 663
    etoolbox package  646, 647, 648, 649, 650, 651, 652, 653, 654
    +href="glossaries-extra-manual.html#dx1-6" >664, 665, 666, 667, 668, 669, 670, 671, 672

    F fancyhdr package  655
    +href="glossaries-extra-manual.html#dx1-14047" >673
    + + + first use  656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 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, 705, 706, 707
    +class="cmbx-10">724, 725, 726
    first use flag  708, 709, 710, 711, 712, 727, 728, 729, 730, 731, 713
    +class="cmbx-10">732
    first use text  714, 715
    +class="cmbx-10">733, 734
    fontenc package  716
    - - - +href="glossaries-extra-manual.html#dx1-23024" >735

    G \gglssetwidest  717
    +href="glossaries-extra-manual.html#dx1-18058" >736
    \gglsupdatewidest  718
    +href="glossaries-extra-manual.html#dx1-18063" >737
    \gGlsXtrSetField  719
    +class="cmti-10">738
    glossaries package  720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733
    +href="glossaries-extra-manual.html#dx1-5035" >739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753
    glossaries-accsupp package  734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749
    +href="glossaries-extra-manual.html#dx1-4036" >754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770
    glossaries-extra package  750, 751, 752
    +href="glossaries-extra-manual.html#dx1-5037" >771, 772, 773
    glossaries-extra-bib2gls package  753, 754, 755, 756, 757, 758, 759, 760, 761
    +href="glossaries-extra-manual.html#dx1-4080" >774, 775, 776, 777, 778, 779, 780, 781, 782
    glossaries-extra-stylemods package  762, 763, 764, 765, 766, 767, 768
    +href="glossaries-extra-manual.html#dx1-4027" >783, 784, 785, 786, 787, 788, 789, 790
    glossaries-prefix package  769, 770, 771
    +href="glossaries-extra-manual.html#dx1-45001" >791, 792, 793
    \glossariesextrasetup  772
    +class="cmti-10">794
    glossary styles:
        altlist  773
    +href="glossaries-extra-manual.html#dx1-18023" >795, 796
        alttree  774, 775, 776, 777, 778, 779, 780
    +href="glossaries-extra-manual.html#dx1-18050" >797, 798, 799, 800, 801, 802, 803, 804
        bookindex  781, 782, 783, 784
    +href="glossaries-extra-manual.html#dx1-14002" >805, 806, 807, 808
        index  785
    +href="glossaries-extra-manual.html#dx1-18038" >809
        inline  786, 787
    +href="glossaries-extra-manual.html#dx1-18006" >810, 811
        list  788, 789
    +href="glossaries-extra-manual.html#dx1-18018" >812, 813, 814
        listdotted  790
    +href="glossaries-extra-manual.html#dx1-18024" >815, 816
        long  791
    +href="glossaries-extra-manual.html#dx1-18012" >817
        long3col  792
    +href="glossaries-extra-manual.html#dx1-18004" >818
        mcolindexgroup  793
    +href="glossaries-extra-manual.html#dx1-14003" >819
        tree  794
    +href="glossaries-extra-manual.html#dx1-18039" >820, 821
    +    treenoname  822, 823, 824
    glossary-bookindex package  795, 796
    +href="glossaries-extra-manual.html#dx1-14001" >825, 826
    glossary-inline package  797
    +href="glossaries-extra-manual.html#dx1-18007" >827
    glossary-tree package  798, 799, 800, 801
    +href="glossaries-extra-manual.html#dx1-14040" >828, 829, 830, 831, 832
    \glossentrynameother  802
    +class="cmti-10">833
    \glossxtrsetpopts  803
    +class="cmti-10">834
    \glsabbrvdefaultfont  804, 835, 805
    +class="cmti-10">836
    \glsabbrvemfont  806
    +class="cmti-10">837
    \glsabbrvfont  807
    +class="cmti-10">838
    \glsabbrvhyphenfont  808
    +class="cmti-10">839
    \glsabbrvonlyfont  809
    +class="cmti-10">840
    \glsabbrvscfont  810
    +class="cmti-10">841
    \glsabbrvsmfont  811
    +class="cmti-10">842
    \glsabbrvuserfont  812, 843, 813
    +class="cmti-10">844
    \Glsaccessdesc  814
    +class="cmti-10">845
    + + + \glsaccessdesc  815
    +class="cmti-10">846
    \Glsaccessdescplural  816
    +class="cmti-10">847
    \glsaccessdescplural  817
    +class="cmti-10">848
    \Glsaccessfirst  818
    +class="cmti-10">849
    \glsaccessfirst  819
    +class="cmti-10">850
    \Glsaccessfirstplural  820
    +class="cmti-10">851
    \glsaccessfirstplural  821
    - - - +class="cmti-10">852
    \Glsaccesslong  822
    +class="cmti-10">853
    \glsaccesslong  823
    +class="cmti-10">854
    \Glsaccesslongpl  824
    +class="cmti-10">855
    \glsaccesslongpl  825
    +class="cmti-10">856
    \Glsaccessname  826
    +class="cmti-10">857
    \glsaccessname  827
    +class="cmti-10">858
    \Glsaccessplural  828
    +class="cmti-10">859
    \glsaccessplural  829
    +class="cmti-10">860
    \Glsaccessshort  830
    +class="cmti-10">861
    \glsaccessshort  831
    +class="cmti-10">862
    \Glsaccessshortpl  832
    +class="cmti-10">863
    \glsaccessshortpl  833
    +class="cmti-10">864
    \Glsaccesssymbol  834
    +class="cmti-10">865
    \glsaccesssymbol  835
    +class="cmti-10">866
    \Glsaccesssymbolplural  836
    +class="cmti-10">867
    \glsaccesssymbolplural  837
    +class="cmti-10">868
    \Glsaccesstext  838
    +class="cmti-10">869
    \glsaccesstext  839
    +class="cmti-10">870
    \glsacspace  840
    +class="cmti-10">871
    \glsacspacemax  841
    +class="cmti-10">872
    \glsadd options
        format  842
    +href="glossaries-extra-manual.html#dx1-8075" >873
        theHvalue  843, 844
    +href="glossaries-extra-manual.html#dx1-6034" >874, 875
        thevalue  845, 846, 847, 848, 849
    +href="glossaries-extra-manual.html#dx1-6033" >876, 877, 878, 879, 880
    +\glsaddeach  881
    \glsaddpostsetkeys  850
    +href="glossaries-extra-manual.html#dx1-6030" >882
    \glsaddpresetkeys  851
    +href="glossaries-extra-manual.html#dx1-6029" >883
    +\glscapturedgroup  884
    \glscategory  852
    +class="cmti-10">885
    \glscategorylabel  853
    +class="cmti-10">886
    \glscurrententrylabel  854
    +href="glossaries-extra-manual.html#dx1-16024" >887
    \glscurrentfieldvalue  855
    +class="cmti-10">888
    +\glsdefpostdesc  889
    +\glsdefpostlink  890
    +\glsdefpostname  891
    \glsentrycurrcount  856
    +class="cmti-10">892
    \glsentryprevcount  857
    +class="cmti-10">893
    \glsentryprevmaxcount  858
    +class="cmti-10">894
    \glsentryprevtotalcount  859
    +class="cmti-10">895
    + + + \glsextrapostnamehook  860
    +href="glossaries-extra-manual.html#dx1-16018" >896
    \glsFindWidestAnyName  861
    +href="glossaries-extra-manual.html#dx1-18078" >897
    \glsFindWidestAnyNameLocation  862
    +href="glossaries-extra-manual.html#dx1-18090" >898
    \glsFindWidestAnyNameSymbol  863
    +href="glossaries-extra-manual.html#dx1-18082" >899
    \glsFindWidestAnyNameSymbolLocation  864
    +href="glossaries-extra-manual.html#dx1-18087" >900
    \glsFindWidestLevelTwo  865
    +href="glossaries-extra-manual.html#dx1-18080" >901
    \glsFindWidestTopLevelName  866
    +href="glossaries-extra-manual.html#dx1-18073" >902
    \glsFindWidestUsedAnyName  867
    +href="glossaries-extra-manual.html#dx1-18076" >903
    \glsFindWidestUsedAnyNameLocation  868
    +href="glossaries-extra-manual.html#dx1-18088" >904
    \glsFindWidestUsedAnyNameSymbol  869
    +href="glossaries-extra-manual.html#dx1-18081" >905
    \glsFindWidestUsedAnyNameSymbolLocation  870
    +href="glossaries-extra-manual.html#dx1-18083" >906
    \glsFindWidestUsedLevelTwo  871
    - - - +href="glossaries-extra-manual.html#dx1-18079" >907
    \glsFindWidestUsedTopLevelName  872
    +href="glossaries-extra-manual.html#dx1-18074" >908
    \glsfirstabbrvdefaultfont  873
    +class="cmti-10">909
    \glsfirstabbrvemfont  874
    +class="cmti-10">910
    \glsfirstabbrvfont  875
    +class="cmti-10">911
    \glsfirstabbrvhyphenfont  876
    +class="cmti-10">912
    \glsfirstabbrvonlyfont  877
    +class="cmti-10">913
    \glsfirstabbrvsmfont  878
    +class="cmti-10">914
    \glsfirstabbrvuserfont  879
    +class="cmti-10">915
    \glsfirstlongdefaultfont  880
    +class="cmti-10">916
    \glsfirstlongemfont  881
    +class="cmti-10">917
    \glsfirstlongfont  882
    +class="cmti-10">918
    \glsfirstlongfootnotefont  883
    +class="cmti-10">919
    \glsfirstlonghyphenfont  884
    +class="cmti-10">920
    \glsfirstlongonlyfont  885
    +class="cmti-10">921
    \glsfirstlonguserfont  886
    +class="cmti-10">922
    \Glsfmtfirst  887
    +href="glossaries-extra-manual.html#dx1-27044" >923
    \glsfmtfirst  888
    +href="glossaries-extra-manual.html#dx1-27043" >924
    \Glsfmtfirstpl  889
    +href="glossaries-extra-manual.html#dx1-27046" >925
    \glsfmtfirstpl  890
    +href="glossaries-extra-manual.html#dx1-27045" >926
    \Glsfmtfull  891
    +href="glossaries-extra-manual.html#dx1-27032" >927
    \glsfmtfull  892
    +href="glossaries-extra-manual.html#dx1-27030" >928
    \Glsfmtfullpl  893
    +href="glossaries-extra-manual.html#dx1-27033" >929
    \glsfmtfullpl  894
    +href="glossaries-extra-manual.html#dx1-27031" >930
    \Glsfmtlong  895
    +href="glossaries-extra-manual.html#dx1-27028" >931
    \glsfmtlong  896
    +href="glossaries-extra-manual.html#dx1-27026" >932
    \Glsfmtlongpl  897
    +href="glossaries-extra-manual.html#dx1-27029" >933
    \glsfmtlongpl  898
    +href="glossaries-extra-manual.html#dx1-27027" >934
    \Glsfmtname  899
    +href="glossaries-extra-manual.html#dx1-27041" >935
    \glsfmtname  900
    +href="glossaries-extra-manual.html#dx1-27040" >936
    \Glsfmtplural  901
    +href="glossaries-extra-manual.html#dx1-27038" >937
    \glsfmtplural  902
    +href="glossaries-extra-manual.html#dx1-27037" >938
    \Glsfmtshort  903
    +href="glossaries-extra-manual.html#dx1-27024" >939
    \glsfmtshort  904
    +href="glossaries-extra-manual.html#dx1-27022" >940
    \Glsfmtshortpl  905
    +href="glossaries-extra-manual.html#dx1-27025" >941
    + + + \glsfmtshortpl  906
    +href="glossaries-extra-manual.html#dx1-27023" >942
    \Glsfmttext  907
    +href="glossaries-extra-manual.html#dx1-27036" >943
    \glsfmttext  908
    +href="glossaries-extra-manual.html#dx1-27035" >944
    \glsforeachwithattribute  909
    +href="glossaries-extra-manual.html#dx1-28181" >945
    \glsgetattribute  910
    +href="glossaries-extra-manual.html#dx1-28164" >946
    \glsgetcategoryattribute  911
    +href="glossaries-extra-manual.html#dx1-28163" >947
    \glsgetwidestname  912
    +href="glossaries-extra-manual.html#dx1-18066" >948
    \glsgetwidestsubname  913
    +href="glossaries-extra-manual.html#dx1-18067" >949
    \glshasattribute  914
    +href="glossaries-extra-manual.html#dx1-28167" >950
    \glshascategoryattribute  915
    +href="glossaries-extra-manual.html#dx1-28165" >951
    \glshex  916
    +class="cmti-10">952
    \glsifattribute  917
    - - - +href="glossaries-extra-manual.html#dx1-28172" >953
    \glsifcategory  918
    +class="cmti-10">954
    \glsifcategoryattribute  919
    +href="glossaries-extra-manual.html#dx1-28168" >955
    \glsifnotregular  920
    +href="glossaries-extra-manual.html#dx1-28179" >956
    \glsifnotregularcategory  921
    +href="glossaries-extra-manual.html#dx1-28178" >957
    \glsifregular  922
    +href="glossaries-extra-manual.html#dx1-28175" >958
    \glsifregularcategory  923
    +href="glossaries-extra-manual.html#dx1-28174" >959
    \glskeylisttok  924
    +class="cmti-10">960
    \glslabeltok  925
    +class="cmti-10">961
    \glslink options
        format  926, 927, 928, 929
    +href="glossaries-extra-manual.html#dx1-6046" >962, 963, 964, 965
        hyper  930, 931, 932
    +href="glossaries-extra-manual.html#dx1-12055" >966, 967, 968
        hyper=false  933
    +href="glossaries-extra-manual.html#dx1-27017" >969
        hyperoutside  934, 935
    +href="glossaries-extra-manual.html#dx1-6017" >970, 971
        noindex  936, 937, 938, 939, 940, 941, 942
    +href="glossaries-extra-manual.html#dx1-6002" >972, 973, 974, 975, 976, 977, 978
    +    prefix  979, 980
        textformat  943, 944
    +href="glossaries-extra-manual.html#dx1-6021" >981, 982
        theHvalue  945
    +href="glossaries-extra-manual.html#dx1-6037" >983
        thevalue  946
    +href="glossaries-extra-manual.html#dx1-6036" >984
        wrgloss  947, 948, 949, 950
    +href="glossaries-extra-manual.html#dx1-6010" >985, 986, 987, 988
    \glslinkcheckfirsthyperhook  951
    +class="cmti-10">989
    \glslinkpresetkeys  952
    +href="glossaries-extra-manual.html#dx1-6027" >990
    \glslistchildpostlocation  953
    +href="glossaries-extra-manual.html#dx1-18029" >991
    \glslistchildprelocation  954
    +class="cmti-10">992
    +\glslistdesc  993
    \glslistprelocation  955
    +class="cmti-10">994
    +\glslocalreseteach  995
    +\glslocalunseteach  996
    \glslongdefaultfont  956
    +class="cmti-10">997
    \glslongemfont  957
    +class="cmti-10">998
    \glslongfont  958
    +class="cmti-10">999
    \glslongfootnotefont  959
    +class="cmti-10">1000
    \glslonghyphenfont  960
    +class="cmti-10">1001
    \glslongonlyfont  961
    +class="cmti-10">1002
    \glslongpltok  962
    +class="cmti-10">1003
    + + + \glslongtok  963
    +class="cmti-10">1004
    \glslonguserfont  964
    +class="cmti-10">1005
    \glsnoidxdisplayloc  965
    +href="glossaries-extra-manual.html#dx1-8079" >1006
    \glsps  966
    +class="cmti-10">1007
    \glspt  967
    +class="cmti-10">1008
    \glsseeitemformat  968
    +class="cmti-10">1009
    \glssetattribute  969
    +href="glossaries-extra-manual.html#dx1-28162" >1010
    \glssetcategoryattribute  970
    +href="glossaries-extra-manual.html#dx1-28159" >1011
    \glssetregularcategory  971
    +href="glossaries-extra-manual.html#dx1-28161" >1012
    \glsshortpltok  972
    +class="cmti-10">1013
    \glsshorttok  973
    +class="cmti-10">1014
    +\glstreechilddesc  1015
    \glstreechildprelocation  974
    +href="glossaries-extra-manual.html#dx1-18042" >1016
    +\glstreechildsymbol  1017
    +\glstreedefaultnamefmt  1018
    +\glstreedesc  1019
    +\glstreenonamechilddesc  1020
    +\glstreenonamedesc  1021
    +\glstreenonamesymbol  1022
    \glstreeprelocation  975
    +href="glossaries-extra-manual.html#dx1-18041" >1023
    +\glstreesymbol  1024
    \glsupdatewidest  976
    +href="glossaries-extra-manual.html#dx1-18062" >1025
    \glsuseabbrvfont  977
    +class="cmti-10">1026
    \glsuselongfont  978
    - - - +class="cmti-10">1027
    \glsuserdescription  979
    +class="cmti-10">1028
    \Glsxtr  980
    +class="cmti-10">1029
    \glsxtr  981
    +class="cmti-10">1030
    \glsxtrabbreviationfont  982
    +class="cmti-10">1031
    \glsxtrabbrvfootnote  983
    +class="cmti-10">1032
    \glsxtrabbrvpluralsuffix  984, 1033, 985
    +class="cmti-10">1034
    \glsxtractivatenopost  986
    +href="glossaries-extra-manual.html#dx1-43013" >1035
    \glsxtraddallcrossrefs  987
    +class="cmti-10">1036
    \glsxtralias  988
    +class="cmti-10">1037
    \glsxtrAltTreeIndent  989
    +href="glossaries-extra-manual.html#dx1-18096" >1038
    \glsxtralttreeInit  990
    +href="glossaries-extra-manual.html#dx1-18095" >1039
    \glsxtralttreeSubSymbolDescLocation  991
    +href="glossaries-extra-manual.html#dx1-18093" >1040
    \glsxtralttreeSymbolDescLocation  992
    +href="glossaries-extra-manual.html#dx1-18092" >1041
    \glsxtrautoindex  993
    +class="cmti-10">1042
    \glsxtrautoindexassignsort  994
    +class="cmti-10">1043
    \glsxtrautoindexentry  995
    +class="cmti-10">1044
    \glsxtrBasicDigitrules  996
    +href="glossaries-extra-manual.html#dx1-37089" >1045
    \GlsXtrBibTeXEntryAliases  997
    +href="glossaries-extra-manual.html#dx1-37032" >1046
    \glsxtrbookindexatendgroup  998
    +class="cmti-10">1047
    \glsxtrbookindexbetween  999
    +class="cmti-10">1048
    \glsxtrbookindexbookmark  1000
    +class="cmti-10">1049
    \glsxtrbookindexcols  1001
    +class="cmti-10">1050
    + + + \glsxtrbookindexcolspread  1002
    +class="cmti-10">1051
    \glsxtrbookindexfirstmark  1003
    +class="cmti-10">1052
    \glsxtrbookindexfirstmarkfmt  1004
    +class="cmti-10">1053
    \glsxtrbookindexformatheader  1005
    +class="cmti-10">1054
    \glsxtrbookindexlastmark  1006
    +class="cmti-10">1055
    \glsxtrbookindexlastmarkfmt  1007
    +class="cmti-10">1056
    \glsxtrbookindexmarkentry  1008
    +class="cmti-10">1057
    \glsxtrbookindexmulticolsenv  1009
    +class="cmti-10">1058
    \glsxtrbookindexname  1010
    +class="cmti-10">1059
    \glsxtrbookindexparentchildsep  1011
    +class="cmti-10">1060
    \glsxtrbookindexparentsubchildsep  1012
    +class="cmti-10">1061
    \glsxtrbookindexprelocation  1013
    +class="cmti-10">1062
    \glsxtrbookindexsubatendgroup  1014
    +class="cmti-10">1063
    \glsxtrbookindexsubbetween  1015
    +class="cmti-10">1064
    \glsxtrbookindexsubname  1016
    +class="cmti-10">1065
    \glsxtrbookindexsubprelocation  1017
    +class="cmti-10">1066
    \glsxtrbookindexsubsubatendgroup  1018
    +class="cmti-10">1067
    \glsxtrbookindexsubsubbetween  1019
    +class="cmti-10">1068
    \glsxtrchecknohyperfirst  1020
    +class="cmti-10">1069
    \glsxtrcombiningdiacriticIIIrules  1021
    +href="glossaries-extra-manual.html#dx1-37081" >1070
    \glsxtrcombiningdiacriticIIrules  1022
    +href="glossaries-extra-manual.html#dx1-37080" >1071
    \glsxtrcombiningdiacriticIrules  1023
    +href="glossaries-extra-manual.html#dx1-37079" >1072
    \glsxtrcombiningdiacriticIVrules  1024
    +href="glossaries-extra-manual.html#dx1-37082" >1073
    \glsxtrcombiningdiacriticrules  1025
    - - - +href="glossaries-extra-manual.html#dx1-37078" >1074
    \glsxtrcontrolrules  1026
    +href="glossaries-extra-manual.html#dx1-37073" >1075
    \glsxtrcopytoglossary  1027
    +class="cmti-10">1076
    \glsxtrcurrencyrules  1028
    +href="glossaries-extra-manual.html#dx1-37086" >1077
    \glsxtrdeffield  1029
    +class="cmti-10">1078
    \glsxtrdetoklocation  1030
    +class="cmti-10">1079
    \glsxtrdigitrules  1031
    +href="glossaries-extra-manual.html#dx1-37088" >1080
    \glsxtrdisplayendloc  1032
    +href="glossaries-extra-manual.html#dx1-8082" >1081
    \glsxtrdisplayendlochook  1033
    +href="glossaries-extra-manual.html#dx1-8084" >1082
    \glsxtrdisplaysingleloc  1034
    +href="glossaries-extra-manual.html#dx1-8080" >1083
    \glsxtrdisplaystartloc  1035
    +href="glossaries-extra-manual.html#dx1-8081" >1084
    \glsxtrdoautoindexname  1036
    +class="cmti-10">1085
    \glsxtrdowrglossaryhook  1037
    +href="glossaries-extra-manual.html#dx1-6026" >1086
    \glsxtredeffield  1038
    +class="cmti-10">1087
    \glsxtremsuffix  1039
    +class="cmti-10">1088
    \GlsXtrEnableEntryCounting  1040
    +class="cmti-10">1089
    \GlsXtrEnableEntryUnitCounting  1041
    +class="cmti-10">1090
    \GlsXtrEnableIndexFormatOverride  1042
    +class="cmti-10">1091
    \GlsXtrEnableInitialTagging  1043
    +class="cmti-10">1092
    \GlsXtrEnableLinkCounting  1044
    +class="cmti-10">1093
    \GlsXtrEnableOnTheFly  1045
    +class="cmti-10">1094
    \GlsXtrEnablePreLocationTag  1046
    +class="cmti-10">1095
    \glsxtrenablerecordcount  1047
    +class="cmti-10">1096
    + + + \glsxtrendfor  1048
    +href="glossaries-extra-manual.html#dx1-41061" >1097
    \glsxtrentryfmt  1049
    +class="cmti-10">1098
    \GlsXtrExpandedFmt  1050
    +href="glossaries-extra-manual.html#dx1-10009" >1099
    \glsxtrfielddolistloop  1051
    +href="glossaries-extra-manual.html#dx1-41051" >1100
    \glsxtrfieldforlistloop  1052
    +href="glossaries-extra-manual.html#dx1-41052" >1101
    \glsxtrfieldifinlist  1053
    +href="glossaries-extra-manual.html#dx1-41053" >1102
    \glsxtrfieldlistadd  1054
    +href="glossaries-extra-manual.html#dx1-41047" >1103
    \glsxtrfieldlisteadd  1055
    +href="glossaries-extra-manual.html#dx1-41049" >1104
    \glsxtrfieldlistgadd  1056
    +href="glossaries-extra-manual.html#dx1-41048" >1105
    \glsxtrfieldlistxadd  1057
    +href="glossaries-extra-manual.html#dx1-41050" >1106
    \glsxtrfieldtitlecasecs  1058
    +href="glossaries-extra-manual.html#dx1-28133" >1107
    \glsxtrfieldxifinlist  1059
    +href="glossaries-extra-manual.html#dx1-41054" >1108
    \glsxtrfmt  1060
    +class="cmti-10">1109
    \glsxtrfmt*  1061
    +class="cmti-10">1110
    \GlsXtrFmtDefaultOptions  1062
    +class="cmti-10">1111
    \glsxtrfmtdisplay  1063
    +class="cmti-10">1112
    \GlsXtrFmtField  1064
    +class="cmti-10">1113
    \glsxtrfootnotename  1065
    +class="cmti-10">1114
    \glsxtrforcsvfield  1066
    +href="glossaries-extra-manual.html#dx1-41056" >1115
    \GlsXtrFormatLocationList  1067
    +class="cmti-10">1116
    +\GlsXtrForUnsetBufferedList  1117
    \glsxtrfractionrules  1068
    +href="glossaries-extra-manual.html#dx1-37092" >1118
    \GLSxtrfull  1069
    +class="cmti-10">1119
    \Glsxtrfull  1070
    +class="cmti-10">1120
    \glsxtrfull  1071
    - - - +class="cmti-10">1121
    \Glsxtrfullformat  1072
    +class="cmti-10">1122
    \glsxtrfullformat  1073
    +class="cmti-10">1123
    \GLSxtrfullpl  1074
    +class="cmti-10">1124
    \Glsxtrfullpl  1075
    +class="cmti-10">1125
    \glsxtrfullpl  1076
    +class="cmti-10">1126
    \Glsxtrfullplformat  1077
    +class="cmti-10">1127
    \glsxtrfullplformat  1078
    +class="cmti-10">1128
    \glsxtrfullsep  1079
    +class="cmti-10">1129
    \glsxtrGeneralLatinIIIrules  1080
    +href="glossaries-extra-manual.html#dx1-37095" >1130
    \glsxtrGeneralLatinIIrules  1081
    +href="glossaries-extra-manual.html#dx1-37094" >1131
    \glsxtrGeneralLatinIrules  1082
    +href="glossaries-extra-manual.html#dx1-37093" >1132
    \glsxtrGeneralLatinIVrules  1083
    +href="glossaries-extra-manual.html#dx1-37096" >1133
    \glsxtrGeneralLatinVIIIrules  1084
    +href="glossaries-extra-manual.html#dx1-37100" >1134
    \glsxtrGeneralLatinVIIrules  1085
    +href="glossaries-extra-manual.html#dx1-37099" >1135
    \glsxtrGeneralLatinVIrules  1086
    +href="glossaries-extra-manual.html#dx1-37098" >1136
    \glsxtrGeneralLatinVrules  1087
    +href="glossaries-extra-manual.html#dx1-37097" >1137
    \glsxtrgeneralpuncIIrules  1088
    +href="glossaries-extra-manual.html#dx1-37087" >1138
    \glsxtrgeneralpuncIrules  1089
    +href="glossaries-extra-manual.html#dx1-37085" >1139
    \glsxtrgeneralpuncrules  1090
    +href="glossaries-extra-manual.html#dx1-37084" >1140
    \glsxtrglossentry  1091
    +class="cmti-10">1141
    \glsxtrglossentryother  1092
    +href="glossaries-extra-manual.html#dx1-43015" >1142
    + + + \glsxtrgroupfield  1093
    +class="cmti-10">1143
    \glsxtrhyphenrules  1094
    +href="glossaries-extra-manual.html#dx1-37083" >1144
    \glsxtrhyphensuffix  1095
    +class="cmti-10">1145
    \glsxtrifcounttrigger  1096
    +class="cmti-10">1146
    \glsxtrifcustomdiscardperiod  1097
    +class="cmti-10">1147
    +\GlsXtrIfFieldCmpStr  1148
    +\GlsXtrIfFieldEqNum  1149
    \GlsXtrIfFieldEqStr  1098
    +class="cmti-10">1150
    +\GlsXtrIfFieldEqXpStr  1151
    +\GlsXtrIfFieldNonZero  1152
    \GlsXtrIfFieldUndef  1099
    +class="cmti-10">1153
    \glsxtrifhasfield  1100
    +class="cmti-10">1154
    \glsxtrifhasfield*  1101
    +class="cmti-10">1155
    +\GlsXtrIfHasNonZeroChildCount  1156
    \glsxtrifkeydefined  1102
    +class="cmti-10">1157
    \glsxtriflabelinlist  1103
    +class="cmti-10">1158
    \GlsXtrIfLinkCounterDef  1104
    +class="cmti-10">1159
    \glsxtrifrecordtrigger  1105
    +class="cmti-10">1160
    \glsxtrifwasfirstuse  1106
    +href="glossaries-extra-manual.html#dx1-8053" >1161
    +\GlsXtrIfXpFieldEqXpStr  1162
    \glsxtrinclinkcounter  1107
    +class="cmti-10">1163
    \glsxtrindexaliased  1108
    +class="cmti-10">1164
    \GlsXtrIndexCounterLink  1109
    +href="glossaries-extra-manual.html#dx1-37024" >1165
    \glsxtrindexseealso  1110
    +class="cmti-10">1166
    \glsxtrinitwrgloss  1111
    +href="glossaries-extra-manual.html#dx1-6012" >1167
    \Glsxtrinlinefullformat  1112
    +class="cmti-10">1168
    \glsxtrinlinefullformat  1113
    +class="cmti-10">1169
    \Glsxtrinlinefullplformat  1114
    +class="cmti-10">1170
    \glsxtrinlinefullplformat  1115
    +class="cmti-10">1171
    \glsxtrinsertinsidetrue  1116
    +class="cmti-10">1172
    \glsxtrLatinA  1117
    - - - +href="glossaries-extra-manual.html#dx1-37101" >1173
    \glsxtrLatinAA  1118
    +href="glossaries-extra-manual.html#dx1-37125" >1174
    \glsxtrLatinAELigature  1119
    +href="glossaries-extra-manual.html#dx1-37118" >1175
    \glsxtrLatinE  1120
    +href="glossaries-extra-manual.html#dx1-37102" >1176
    \glsxtrLatinEszettSs  1121
    +href="glossaries-extra-manual.html#dx1-37114" >1177
    \glsxtrLatinEszettSz  1122
    +href="glossaries-extra-manual.html#dx1-37115" >1178
    \glsxtrLatinEth  1123
    +href="glossaries-extra-manual.html#dx1-37116" >1179
    \glsxtrLatinH  1124
    +href="glossaries-extra-manual.html#dx1-37103" >1180
    \glsxtrLatinI  1125
    +href="glossaries-extra-manual.html#dx1-37105" >1181
    \glsxtrLatinInsularG  1126
    +href="glossaries-extra-manual.html#dx1-37123" >1182
    \glsxtrLatinK  1127
    +href="glossaries-extra-manual.html#dx1-37104" >1183
    \glsxtrLatinL  1128
    +href="glossaries-extra-manual.html#dx1-37106" >1184
    \glsxtrLatinLslash  1129
    +href="glossaries-extra-manual.html#dx1-37121" >1185
    \glsxtrLatinM  1130
    +href="glossaries-extra-manual.html#dx1-37107" >1186
    \glsxtrLatinN  1131
    +href="glossaries-extra-manual.html#dx1-37108" >1187
    \glsxtrLatinO  1132
    +href="glossaries-extra-manual.html#dx1-37109" >1188
    + + + \glsxtrLatinOELigature  1133
    +href="glossaries-extra-manual.html#dx1-37119" >1189
    \glsxtrLatinOslash  1134
    +href="glossaries-extra-manual.html#dx1-37120" >1190
    \glsxtrLatinP  1135
    +href="glossaries-extra-manual.html#dx1-37110" >1191
    \glsxtrLatinS  1136
    +href="glossaries-extra-manual.html#dx1-37111" >1192
    \glsxtrLatinSchwa  1137
    +href="glossaries-extra-manual.html#dx1-37124" >1193
    \glsxtrLatinT  1138
    +href="glossaries-extra-manual.html#dx1-37112" >1194
    \glsxtrLatinThorn  1139
    +href="glossaries-extra-manual.html#dx1-37117" >1195
    \glsxtrLatinWynn  1140
    +href="glossaries-extra-manual.html#dx1-37122" >1196
    \glsxtrLatinX  1141
    +href="glossaries-extra-manual.html#dx1-37113" >1197
    \GlsXtrLetField  1142
    +class="cmti-10">1198
    \GlsXtrLetFieldToField  1143
    +class="cmti-10">1199
    \GlsXtrLinkCounterName  1144
    +class="cmti-10">1200
    \GlsXtrLinkCounterValue  1145
    +class="cmti-10">1201
    \GlsXtrLoadResources  1146
    +class="cmti-10">1202
    \glsxtrlocalsetgrouptitle  1147
    +class="cmti-10">1203
    \GlsXtrLocationRecordCount  1148
    +class="cmti-10">1204
    \glsxtrlocrangefmt  1149
    +href="glossaries-extra-manual.html#dx1-8083" >1205
    \Glsxtrlong  1150, 1206, 1151
    +class="cmti-10">1207
    \glsxtrlong  1152
    +class="cmti-10">1208
    \glsxtrlonghyphen  1153
    +class="cmti-10">1209
    \glsxtrlonghyphenshort  1154
    +class="cmti-10">1210
    \glsxtrlongnoshortdescname  1155
    +class="cmti-10">1211
    \glsxtrlongnoshortname  1156
    +class="cmti-10">1212
    \GLSxtrlongpl  1157
    +class="cmti-10">1213
    \Glsxtrlongpl  1158
    +class="cmti-10">1214
    \glsxtrlongpl  1159
    +class="cmti-10">1215
    \glsxtrlongshortdescname  1160
    +class="cmti-10">1216
    \glsxtrlongshortdescsort  1161
    +class="cmti-10">1217
    \glsxtrlongshortname  1162
    +class="cmti-10">1218
    \glsxtrlongshortuserdescname  1163
    +class="cmti-10">1219
    \glsxtrMathGreekIIrules  1164
    - - - +href="glossaries-extra-manual.html#dx1-37133" >1220
    \glsxtrMathGreekIrules  1165
    +href="glossaries-extra-manual.html#dx1-37126" >1221
    \glsxtrMathItalicGreekIIrules  1166
    +href="glossaries-extra-manual.html#dx1-37149" >1222
    \glsxtrMathItalicGreekIrules  1167
    +href="glossaries-extra-manual.html#dx1-37142" >1223
    \glsxtrMathItalicLowerGreekIIrules  1168
    +href="glossaries-extra-manual.html#dx1-37163" >1224
    \glsxtrMathItalicLowerGreekIrules  1169
    +href="glossaries-extra-manual.html#dx1-37159" >1225
    \glsxtrMathItalicNabla  1170
    +href="glossaries-extra-manual.html#dx1-37167" >1226
    \glsxtrMathItalicPartial  1171
    +href="glossaries-extra-manual.html#dx1-37166" >1227
    \glsxtrMathItalicUpperGreekIIrules  1172
    +href="glossaries-extra-manual.html#dx1-37156" >1228
    \glsxtrMathItalicUpperGreekIrules  1173
    +href="glossaries-extra-manual.html#dx1-37152" >1229
    \glsxtrMathUpGreekIIrules  1174
    +href="glossaries-extra-manual.html#dx1-37139" >1230
    \glsxtrMathUpGreekIrules  1175
    +href="glossaries-extra-manual.html#dx1-37134" >1231
    \glsxtrnewgls  1176
    +class="cmti-10">1232
    \glsxtrnewGLSlike  1177
    +class="cmti-10">1233
    \glsxtrnewglslike  1178
    +class="cmti-10">1234
    \glsxtrnewnumber  1179
    +class="cmti-10">1235
    + + + \glsxtrnewrgls  1180
    +class="cmti-10">1236
    \glsxtrnewrGLSlike  1181
    +class="cmti-10">1237
    \glsxtrnewrglslike  1182
    +class="cmti-10">1238
    \glsxtrnewsymbol  1183
    +class="cmti-10">1239
    \GlsXtrNoGlsWarningAutoMake  1184
    +class="cmti-10">1240
    \GlsXtrNoGlsWarningBuildInfo  1185
    +class="cmti-10">1241
    \GlsXtrNoGlsWarningCheckFile  1186
    +class="cmti-10">1242
    \GlsXtrNoGlsWarningEmptyMain  1187
    +class="cmti-10">1243
    \GlsXtrNoGlsWarningEmptyNotMain  1188
    +class="cmti-10">1244
    \GlsXtrNoGlsWarningEmptyStart  1189
    +class="cmti-10">1245
    \GlsXtrNoGlsWarningHead  1190
    +class="cmti-10">1246
    \GlsXtrNoGlsWarningMisMatch  1191
    +class="cmti-10">1247
    \GlsXtrNoGlsWarningNoOut  1192
    +class="cmti-10">1248
    \GlsXtrNoGlsWarningTail  1193
    +class="cmti-10">1249
    \glsxtrnonprintablerules  1194
    +href="glossaries-extra-manual.html#dx1-37075" >1250
    \glsxtrnopostpunc  1195
    +class="cmti-10">1251
    \glsxtronlydescname  1196
    +class="cmti-10">1252
    \glsxtronlyname  1197
    +class="cmti-10">1253
    \glsxtronlysuffix  1198
    +class="cmti-10">1254
    \glsxtrorglong  1199
    +class="cmti-10">1255
    \glsxtrorgshort  1200
    +class="cmti-10">1256
    \Glsxtrp  1201, 1257, 1202
    +class="cmti-10">1258
    \glsxtrp  1203
    +class="cmti-10">1259
    \glsxtrpageref  1204
    +class="cmti-10">1260
    \glsxtrparen  1205
    +class="cmti-10">1261
    \Glsxtrpl  1206
    +class="cmti-10">1262
    \glsxtrpl  1207
    +class="cmti-10">1263
    \glsxtrpostdescription  1208
    +href="glossaries-extra-manual.html#dx1-16019" >1264
    \glsxtrposthyphenlong  1209
    +class="cmti-10">1265
    \glsxtrposthyphenshort  1210
    +class="cmti-10">1266
    \glsxtrpostlink  1211
    - - - +class="cmti-10">1267
    \glsxtrpostlinkAddDescOnFirstUse  1212
    +href="glossaries-extra-manual.html#dx1-8042" >1268
    +\glsxtrpostlinkAddSymbolDescOnFirstUse  1269
    \glsxtrpostlinkAddSymbolOnFirstUse  1213
    +href="glossaries-extra-manual.html#dx1-8046" >1270
    \glsxtrpostlinkendsentence  1214
    +class="cmti-10">1271
    \glsxtrpostlinkhook  1215
    +class="cmti-10">1272
    \glsxtrpostlongdescription  1216
    +href="glossaries-extra-manual.html#dx1-5034" >1273
    \glsxtrpostnamehook  1217
    +class="cmti-10">1274
    \GlsXtrPostNewAbbreviation  1218
    +class="cmti-10">1275
    \glsxtrprelocation  1219
    +class="cmti-10">1276
    \GlsXtrProvideBibTeXFields  1220
    +href="glossaries-extra-manual.html#dx1-37037" >1277
    \glsxtrprovidecommand  1221
    +href="glossaries-extra-manual.html#dx1-37016" >1278
    \glsxtrprovidestoragekey  1222
    +class="cmti-10">1279
    \GlsXtrRecordCount  1223
    +class="cmti-10">1280
    \GlsXtrRecordCounter  1224
    +href="glossaries-extra-manual.html#dx1-41063" >1281
    \glsxtrrecordtriggervalue  1225
    +class="cmti-10">1282
    + + + \glsxtrregularfont  1226
    +class="cmti-10">1283
    \glsxtrresourcefile  1227
    +class="cmti-10">1284
    \glsxtrresourceinit  1228
    +class="cmti-10">1285
    \glsxtrrestorepostpunc  1229
    +class="cmti-10">1286
    \glsxtrRevertMarks  1230
    +class="cmti-10">1287
    +\glsxtrRevertTocMarks  1288
    \glsxtrscsuffix  1231
    +class="cmti-10">1289
    \glsxtrseealsolabels  1232
    +class="cmti-10">1290
    \glsxtrseelist  1233
    +class="cmti-10">1291
    \GlsXtrSetActualChar  1234
    +class="cmti-10">1292
    \glsxtrsetaliasnoindex  1235
    +class="cmti-10">1293
    \GlsXtrSetAltModifier  1236
    +href="glossaries-extra-manual.html#dx1-8077" >1294
    \glsxtrsetcategory  1237
    +href="glossaries-extra-manual.html#dx1-28183" >1295
    \glsxtrsetcategoryforall  1238
    +href="glossaries-extra-manual.html#dx1-28185" >1296
    \GlsXtrSetDefaultGlsOpts  1239
    +href="glossaries-extra-manual.html#dx1-8071" >1297
    \GlsXtrSetEncapChar  1240
    +class="cmti-10">1298
    \GlsXtrSetEscChar  1241
    +class="cmti-10">1299
    \GlsXtrSetField  1242
    +class="cmti-10">1300
    \glsxtrsetfieldifexists  1243
    +class="cmti-10">1301
    \glsxtrsetgrouptitle  1244
    +class="cmti-10">1302
    \GlsXtrSetLevelChar  1245
    +class="cmti-10">1303
    \glsxtrsetpopts  1246
    +class="cmti-10">1304
    \GlsXtrSetRecordCountAttribute  1247
    +class="cmti-10">1305
    \Glsxtrshort  1248, 1306, 1249
    +class="cmti-10">1307
    \glsxtrshort  1250
    +class="cmti-10">1308
    \glsxtrshortdescname  1251
    +class="cmti-10">1309
    \glsxtrshorthyphenlong  1252
    +class="cmti-10">1310
    \glsxtrshortlongdescname  1253
    +class="cmti-10">1311
    \glsxtrshortlongname  1254, 1312, 1255
    +class="cmti-10">1313
    \glsxtrshortlonguserdescname  1256
    +class="cmti-10">1314
    \glsxtrshortnolongname  1257
    +class="cmti-10">1315
    \GLSxtrshortpl  1258
    +class="cmti-10">1316
    \Glsxtrshortpl  1259
    - - - +class="cmti-10">1317
    \glsxtrshortpl  1260
    +class="cmti-10">1318
    \glsxtrsmsuffix  1261
    +class="cmti-10">1319
    \glsxtrspacerules  1262
    +href="glossaries-extra-manual.html#dx1-37074" >1320
    +\GlsXtrStandaloneGlossaryType  1321
    \GlsXtrStartUnsetBuffering  1263
    +href="glossaries-extra-manual.html#dx1-10004" >1322
    \GlsXtrStopUnsetBuffering  1264
    +href="glossaries-extra-manual.html#dx1-10005" >1323
    \glsxtrSubScriptDigitrules  1265
    +href="glossaries-extra-manual.html#dx1-37090" >1324
    \Glsxtrsubsequentfmt  1266
    +class="cmti-10">1325
    \glsxtrsubsequentfmt  1267
    +class="cmti-10">1326
    \Glsxtrsubsequentplfmt  1268
    +class="cmti-10">1327
    \glsxtrsubsequentplfmt  1269
    +class="cmti-10">1328
    \glsxtrSuperScriptDigitrules  1270
    +href="glossaries-extra-manual.html#dx1-37091" >1329
    \glsxtrtagfont  1271
    +class="cmti-10">1330
    + + + \GlsXtrTheLinkCounter  1272
    +class="cmti-10">1331
    \GlsXtrTotalRecordCount  1273
    +class="cmti-10">1332
    \glsxtrunsrtdo  1274
    +class="cmti-10">1333
    \GlsXtrUseAbbrStyleFmts  1275
    +class="cmti-10">1334
    \GlsXtrUseAbbrStyleSetup  1276
    +class="cmti-10">1335
    \Glsxtrusefield  1277
    +href="glossaries-extra-manual.html#dx1-41044" >1336
    \glsxtrusefield  1278
    +href="glossaries-extra-manual.html#dx1-41042" >1337
    \glsxtruserfield  1279
    +class="cmti-10">1338
    \glsxtruserparen  1280
    +class="cmti-10">1339
    \glsxtrusersuffix  1281, 1340, 1282
    +class="cmti-10">1341
    \glsxtrusesee  1283
    +class="cmti-10">1342
    \glsxtruseseealso  1284
    +class="cmti-10">1343
    \glsxtruseseeformat  1285, 1344, 1286
    +class="cmti-10">1345
    \GlsXtrWarnDeprecatedAbbrStyle  1287
    +class="cmti-10">1346
    \GlsXtrWarning  1288
    +class="cmti-10">1347
    \glsxtrword  1289
    +class="cmti-10">1348
    \glsxtrwordsep  1290
    +class="cmti-10">1349
    \glsxtrwrglossmark  1291
    +class="cmti-10">1350

    H hyperref package  1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314
    +href="glossaries-extra-manual.html#dx1-4112" >1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373

    I \ifglsxtrinitwrglossbefore  1315
    +href="glossaries-extra-manual.html#dx1-6013" >1374
    inputenc package  1316
    +href="glossaries-extra-manual.html#dx1-36019" >1375

    L link-text  1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1336
    +class="cmbx-10">1395
    location list  1337, 1338, 1339, 1340, 1396, 1397, 1398, 1399, 1341
    +class="cmbx-10">1400
    \longnewglossaryentry  1342
    +href="glossaries-extra-manual.html#dx1-5032" >1401

    M - - - makeglossaries  1343, 1344, 1345, 1346, 1402, 1403, 1404, 1405, 1347
    +class="cmbx-10">1406
    \makeglossaries  1348
    +href="glossaries-extra-manual.html#dx1-5049" >1407
    makeglossaries-lite  1349, 1408, 1350
    +class="cmbx-10">1409
    makeglossaries-lite  1351, 1410, 1352
    +class="cmbx-10">1411
    makeindex  1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1369
    +class="cmbx-10">1428
    makeindex  1370, 1371, 1372, 1373
    +href="glossaries-extra-manual.html#dx1-6040" >1429, 1430, 1431, 1432
    memoir class  1374
    +href="glossaries-extra-manual.html#dx1-3021" >1433
    mfirstuc package  1375, 1376, 1377
    +href="glossaries-extra-manual.html#dx1-5" >1434, 1435, 1436

    N + + + \newabbreviation  1378
    +class="cmti-10">1437
    \newabbreviationstyle  1379
    +class="cmti-10">1438
    \newacronym  1380
    +class="cmti-10">1439
    \newglossaryentry options
        access  1440, 1441
    +    alias  1381, 1382, 1383, 1384, 1385, 1386
    +href="glossaries-extra-manual.html#dx1-5024" >1442, 1443, 1444, 1445, 1446, 1447
        category  1387, 1388, 1389, 1390, 1391, 1392
    +href="glossaries-extra-manual.html#dx1-5023" >1448, 1449, 1450, 1451, 1452, 1453
        counter  1393
    +href="glossaries-extra-manual.html#dx1-6032" >1454
        desc  1394, 1395
    +href="glossaries-extra-manual.html#dx1-47038" >1455, 1456
        descplural  1396, 1397
    +href="glossaries-extra-manual.html#dx1-47042" >1457, 1458
        description  1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419
    +href="glossaries-extra-manual.html#dx1-5002" >1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480
        descriptionplural  1420, 1421, 1422, 1423
    +href="glossaries-extra-manual.html#dx1-5033" >1481, 1482, 1483, 1484
        first  1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436
    +href="glossaries-extra-manual.html#dx1-8013" >1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497
    +    firstaccess  1498
        firstplural  1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446
    +href="glossaries-extra-manual.html#dx1-8014" >1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508
        group  1447, 1448, 1449, 1450, 1451
    +href="glossaries-extra-manual.html#dx1-36018" >1509, 1510, 1511, 1512, 1513
        location  1452, 1453
    +href="glossaries-extra-manual.html#dx1-14021" >1514, 1515
        loclist  1454
    +href="glossaries-extra-manual.html#dx1-42035" >1516
        long  1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463
    +href="glossaries-extra-manual.html#dx1-11026" >1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525
        longplural  1464, 1465, 1466, 1467, 1468, 1469
    +href="glossaries-extra-manual.html#dx1-11010" >1526, 1527, 1528, 1529, 1530, 1531
        name  1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520
    +href="glossaries-extra-manual.html#dx1-5007" >1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583
    +    nameshortaccess  1584, 1585
        parent  1521, 1522, 1523
    +href="glossaries-extra-manual.html#dx1-18077" >1586, 1587, 1588
        plural  1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536
    +href="glossaries-extra-manual.html#dx1-8017" >1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601
    +    prefix  1602
        see  1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563
    +href="glossaries-extra-manual.html#dx1-4054" >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, 1628, 1629
        seealso  1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573
    +href="glossaries-extra-manual.html#dx1-4055" >1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639
        short  1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587
    +href="glossaries-extra-manual.html#dx1-8011" >1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654
    +    shortaccess  1655, 1656, 1657, 1658, 1659, 1660
        shortplural  1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602
    +href="glossaries-extra-manual.html#dx1-11011" >1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675
    +    shortpluralaccess  1676, 1677, 1678, 1679
        sort  1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620
    +href="glossaries-extra-manual.html#dx1-4165" >1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697
        symbol  1621, 1622, 1623, 1624
    +href="glossaries-extra-manual.html#dx1-41032" >1698, 1699, 1700, 1701
        symbolplural  1625, 1626
    +href="glossaries-extra-manual.html#dx1-47034" >1702, 1703
        text  1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639
    +href="glossaries-extra-manual.html#dx1-5009" >1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716
    +    textaccess  1717
        type  1640, 1641, 1642
    - - - +href="glossaries-extra-manual.html#dx1-13046" >1718, 1719, 1720, 1721
        user1  1643, 1644, 1645
    +href="glossaries-extra-manual.html#dx1-23080" >1722, 1723, 1724
    number list  1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1679
    +class="cmbx-10">1758

    P + + + package options:
        abbreviations  1680, 1681, 1682, 1683, 1684
    +href="glossaries-extra-manual.html#dx1-4177" >1759, 1760, 1761, 1762, 1763
        accsupp  1685, 1686, 1687, 1688
    +href="glossaries-extra-manual.html#dx1-4035" >1764, 1765, 1766, 1767, 1768
        acronym  1689
    +href="glossaries-extra-manual.html#dx1-4185" >1769
        acronymlists  1690
    +href="glossaries-extra-manual.html#dx1-4189" >1770
        automake  1691, 1692
    +href="glossaries-extra-manual.html#dx1-5057" >1771, 1772
        autoseeindex  1693, 1694
    +href="glossaries-extra-manual.html#dx1-4064" >1773, 1774
            false  1695, 1696
    +href="glossaries-extra-manual.html#dx1-4056" >1775, 1776
        counter
            wrglossary  1697
    +href="glossaries-extra-manual.html#dx1-4116" >1777
        debug  1698
    +href="glossaries-extra-manual.html#dx1-4002" >1778
            all  1699, 1700
    +href="glossaries-extra-manual.html#dx1-4005" >1779, 1780
            showtargets  1701, 1702
    +href="glossaries-extra-manual.html#dx1-4003" >1781, 1782
            showwrgloss  1703, 1704, 1705
    +href="glossaries-extra-manual.html#dx1-4004" >1783, 1784, 1785
            true  1706
    +href="glossaries-extra-manual.html#dx1-4007" >1786
        docdef  1707, 1708, 1709, 1710
    +href="glossaries-extra-manual.html#dx1-4145" >1787, 1788, 1789, 1790
            restricted  1711, 1712
    +href="glossaries-extra-manual.html#dx1-4158" >1791, 1792
            true  1713, 1714
    +href="glossaries-extra-manual.html#dx1-4173" >1793, 1794
        docdefs  1715, 1716, 1717
    +href="glossaries-extra-manual.html#dx1-33003" >1795, 1796, 1797
            true  1718
    +href="glossaries-extra-manual.html#dx1-4157" >1798
        entrycounter  1719, 1720
    +href="glossaries-extra-manual.html#dx1-40002" >1799, 1800
        hyperfirst
            false  1721
    +href="glossaries-extra-manual.html#dx1-28030" >1801
        index  1722, 1723
    +href="glossaries-extra-manual.html#dx1-5046" >1802, 1803
        indexcounter  1724, 1725, 1726
    +href="glossaries-extra-manual.html#dx1-4109" >1804, 1805, 1806
        indexcrossrefs  1727, 1728, 1729, 1730
    +href="glossaries-extra-manual.html#dx1-4053" >1807, 1808, 1809, 1810
            false  1731
    +href="glossaries-extra-manual.html#dx1-4063" >1811
        indexonlyfirst  1732, 1733, 1734, 1735
    +href="glossaries-extra-manual.html#dx1-6003" >1812, 1813, 1814, 1815
        nogroupskip  1736
    +href="glossaries-extra-manual.html#dx1-18014" >1816
        nomain  1737
    +href="glossaries-extra-manual.html#dx1-3032" >1817
        nomissingglstext  1738
    +href="glossaries-extra-manual.html#dx1-4176" >1818
        nonumberlist  1739, 1740, 1741, 1742
    +href="glossaries-extra-manual.html#dx1-7026" >1819, 1820, 1821, 1822
        nopostdot  1743, 1744, 1745, 1746
    +href="glossaries-extra-manual.html#dx1-4023" >1823, 1824, 1825, 1826
            false  1747, 1748, 1749
    +href="glossaries-extra-manual.html#dx1-3004" >1827, 1828, 1829
            true  1750
    +href="glossaries-extra-manual.html#dx1-3003" >1830
        noredefwarn
            false  1751
    +href="glossaries-extra-manual.html#dx1-3009" >1831
            true  1752
    +href="glossaries-extra-manual.html#dx1-3006" >1832
        notree  1753
    +href="glossaries-extra-manual.html#dx1-18057" >1833
        numbers  1754, 1755, 1756
    - - - +href="glossaries-extra-manual.html#dx1-4193" >1834, 1835, 1836
        postdot  1757, 1758, 1759
    +href="glossaries-extra-manual.html#dx1-3005" >1837, 1838, 1839
        postpunc  1760, 1761, 1762
    +href="glossaries-extra-manual.html#dx1-4019" >1840, 1841, 1842
            comma  1763
    +href="glossaries-extra-manual.html#dx1-4020" >1843
            dot  1764
    +href="glossaries-extra-manual.html#dx1-4021" >1844
    + + +         none  1765
    +href="glossaries-extra-manual.html#dx1-4022" >1845
        record  1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776
    +href="glossaries-extra-manual.html#dx1-4062" >1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856
            alsoindex  1777, 1778, 1779, 1780, 1781, 1782, 1783
    +href="glossaries-extra-manual.html#dx1-4009" >1857, 1858, 1859, 1860, 1861, 1862, 1863
            off  1784, 1785
    +href="glossaries-extra-manual.html#dx1-5052" >1864, 1865
            only  1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795
    +href="glossaries-extra-manual.html#dx1-4067" >1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875
        section
            chapter  1796
    +href="glossaries-extra-manual.html#dx1-14038" >1876
        seeautonumberlist  1797
    +href="glossaries-extra-manual.html#dx1-7027" >1877
        seenoindex  1798
    +href="glossaries-extra-manual.html#dx1-7016" >1878
            ignore  1799, 1800
    +href="glossaries-extra-manual.html#dx1-7018" >1879, 1880
            warn  1801
    +href="glossaries-extra-manual.html#dx1-42022" >1881
        shortcuts  1802, 1803
    +href="glossaries-extra-manual.html#dx1-4195" >1882, 1883
            abbr  1804, 1805
    +href="glossaries-extra-manual.html#dx1-4201" >1884, 1885
            abbreviation  1806, 1807
    +href="glossaries-extra-manual.html#dx1-22001" >1886, 1887
            abbreviations  1808, 1809
    +href="glossaries-extra-manual.html#dx1-4200" >1888, 1889
            ac  1810, 1811, 1812, 1813, 1814, 1815
    +href="glossaries-extra-manual.html#dx1-4198" >1890, 1891, 1892, 1893, 1894, 1895
            acro  1816, 1817
    +href="glossaries-extra-manual.html#dx1-4197" >1896, 1897
            acronyms  1818, 1819
    +href="glossaries-extra-manual.html#dx1-4196" >1898, 1899
            all  1820, 1821
    +href="glossaries-extra-manual.html#dx1-4211" >1900, 1901
            false  1822
    +href="glossaries-extra-manual.html#dx1-4217" >1902
            none  1823
    +href="glossaries-extra-manual.html#dx1-4216" >1903
            other  1824, 1825
    +href="glossaries-extra-manual.html#dx1-4202" >1904, 1905
            true  1826
    +href="glossaries-extra-manual.html#dx1-4212" >1906
        sort
            none  1827, 1828
    +href="glossaries-extra-manual.html#dx1-4091" >1907, 1908
        stylemods  1829, 1830, 1831, 1832, 1833
    +href="glossaries-extra-manual.html#dx1-4044" >1909, 1910, 1911, 1912, 1913
            all  1834
    +href="glossaries-extra-manual.html#dx1-4047" >1914
            default  1835
    +href="glossaries-extra-manual.html#dx1-4046" >1915
        subentrycounter  1836, 1837
    +href="glossaries-extra-manual.html#dx1-40003" >1916, 1917
        symbols  1838, 1839, 1840
    +href="glossaries-extra-manual.html#dx1-4190" >1918, 1919, 1920
        toc
            false  1841
    +href="glossaries-extra-manual.html#dx1-3002" >1921
            true  1842
    +href="glossaries-extra-manual.html#dx1-3001" >1922
        translate
            babel  1843
    +href="glossaries-extra-manual.html#dx1-3011" >1923
            true  1844
    +href="glossaries-extra-manual.html#dx1-3013" >1924
        undefaction  1845, 1846
    +href="glossaries-extra-manual.html#dx1-4048" >1925, 1926
            error  1847, 1848
    +href="glossaries-extra-manual.html#dx1-4049" >1927, 1928
            warn  1849, 1850, 1851, 1852, 1853, 1854
    +href="glossaries-extra-manual.html#dx1-4050" >1929, 1930, 1931, 1932, 1933, 1934
        xindy  1855
    +href="glossaries-extra-manual.html#dx1-7046" >1935
    page (counter)  1856, 1857, 1858, 1859
    +href="glossaries-extra-manual.html#dx1-4122" >1936, 1937, 1938, 1939
    polyglossia package  1860
    - - - +href="glossaries-extra-manual.html#dx1-49005" >1940
    \pretoglossarypreamble  1861
    +class="cmti-10">1941
    \printabbreviations  1862
    +class="cmti-10">1942
    \printglossary options
        nogroupskip  1863
    +href="glossaries-extra-manual.html#dx1-18015" >1943
    + + + +    prefix  1944
        target  1864, 1865
    +href="glossaries-extra-manual.html#dx1-5018" >1945, 1946
        targetnameprefix  1866
    +href="glossaries-extra-manual.html#dx1-5019" >1947
        title  1867
    +href="glossaries-extra-manual.html#dx1-49006" >1948
    \printnoidxglossary options
        sort  1868
    +href="glossaries-extra-manual.html#dx1-42025" >1949
    \printunsrtglossaries  1869
    +class="cmti-10">1950
    \printunsrtglossary  1870
    +class="cmti-10">1951
    \printunsrtglossary*  1871
    +class="cmti-10">1952
    \printunsrtglossaryentryprocesshook  1872
    +class="cmti-10">1953
    \printunsrtglossaryhandler  1873
    +class="cmti-10">1954
    \printunsrtglossarypredoglossary  1874
    +class="cmti-10">1955
    \printunsrtglossaryskipentry  1875
    +class="cmti-10">1956
    \printunsrtglossaryunit  1876
    +class="cmti-10">1957
    \printunsrtglossaryunitsetup  1877
    +class="cmti-10">1958
    \provideignoredglossary  1878
    +class="cmti-10">1959

    R relsizes package  1879
    +href="glossaries-extra-manual.html#dx1-23048" >1960
    \RestoreAcronyms  1880
    +class="cmti-10">1961
    \rGLS  1881
    +class="cmti-10">1962
    \rGls  1882
    +class="cmti-10">1963
    \rgls  1883
    +class="cmti-10">1964
    \rGLSformat  1884
    +class="cmti-10">1965
    \rGlsformat  1885
    +class="cmti-10">1966
    \rglsformat  1886
    +class="cmti-10">1967
    \rGLSpl  1887
    +class="cmti-10">1968
    \rGlspl  1888
    +class="cmti-10">1969
    \rglspl  1889
    +class="cmti-10">1970
    \rGLSplformat  1890
    +class="cmti-10">1971
    \rGlsplformat  1891
    +class="cmti-10">1972
    \rglsplformat  1892
    +class="cmti-10">1973

    S \setabbreviationstyle  1893
    +class="cmti-10">1974
    slantsc package  1894
    +href="glossaries-extra-manual.html#dx1-27021" >1975
    soul package  1895, 1896
    +href="glossaries-extra-manual.html#dx1-6023" >1976, 1977
    style package  1897
    +href="glossaries-extra-manual.html#dx1-14005" >1978
    subentrycounter package  1898
    +href="glossaries-extra-manual.html#dx1-43019" >1979

    T - - - textcase package  1899
    +href="glossaries-extra-manual.html#dx1-8" >1980
    tracklang package  1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907
    +href="glossaries-extra-manual.html#dx1-4" >1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988
    + + + translator package  1908
    +href="glossaries-extra-manual.html#dx1-3012" >1989

    U upgreek package  1909, 1910, 1911, 1912
    +href="glossaries-extra-manual.html#dx1-37059" >1990, 1991, 1992, 1993

    W wrglossary (counter)  1913, 1914, 1915, 1916, 1917
    +href="glossaries-extra-manual.html#dx1-4117" >1994, 1995, 1996, 1997, 1998

    X xfor package  1918, 1919, 1920
    +href="glossaries-extra-manual.html#dx1-9" >1999, 2000, 2001
    \xglssetwidest  1921
    +href="glossaries-extra-manual.html#dx1-18061" >2002
    \xglsupdatewidest  1922
    +href="glossaries-extra-manual.html#dx1-18065" >2003
    \xGlsXtrSetField  1923
    +class="cmti-10">2004
    xindy  1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 1938
    +class="cmbx-10">2019
    xindy  1939
    +href="glossaries-extra-manual.html#dx1-6044" >2020
    xkeyval package  1940
    +href="glossaries-extra-manual.html#dx1-7" >2021

    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 descriptionplural key is a throwback to the base package’s original acronym mechanism before the introduction of the long and short keys, where the long form was stored in the description + id="dx1-5043"> field and the short form was stored in the symbol field.

    -

    3.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.30: + \title{glossaries-extra.sty v1.31: an extension to the glossaries package} \author{Nicola L.C. Talbot\\[10pt] Dickimaw Books\\ \url{http://www.dickimaw-books.com/}} - \date{2018-04-25} + \date{2018-05-09} \maketitle \begin{abstract} @@ -276,6 +276,9 @@ Additional resources: \item The \href{http://www.dickimaw-books.com/gallery/#glossaries-extra}{\styfmt{glossaries-extra} gallery}. +\item \styfmt{glossaries-extra} and \gls{bib2gls}: An Introductory +Guide. (\href{http://mirrors.ctan.org/support/bib2gls/bib2gls-begin.pdf}{\texttt{bib2gls-begin.pdf}}). + \item \href{http://www.dickimaw-books.com/software/bib2gls}{\appfmt{bib2gls}} \item @@ -1151,6 +1154,11 @@ be displayed multiple times. of avoiding duplicate target names is to set a prefix used for the names. Unlike changing \cs{glolinkprefix} this doesn't affect any hyperlinks (such as those created with \cs{gls}). +\item +\gloskey[printglossary]{prefix}\texttt{=}\marg{prefix}. If you do +actually want to locally change \cs{glolinkprefix}, you can use +the \gloskey{prefix} key instead. You need to use the matching +\gloskey[glslink]{prefix} key in commands like \cs{gls}. \end{itemize} The \cs{newglossaryentry} command has three new keys: @@ -1256,6 +1264,15 @@ with \styfmt{glossaries} v4.27) to allow for this use of \section{Entry Indexing} \label{sec:wrglossary} +As from version 1.31, there is a new command like \cs{glsadd} +where the mandatory argument is a comma-separated list +of labels: +\begin{definition}[\DescribeMacro\glsaddeach] +\cs{glsaddeach}\oarg{options}\marg{list} +\end{definition} +This simply iterates over \meta{list} and does +\cs{glsadd}\oarg{options}\marg{label} for each entry in the list. + The \styfmt{glossaries-extra} package provides extra keys for commands like \cs{gls} and \cs{glstext}: \begin{description} @@ -1355,6 +1372,10 @@ this name must exist and must take one argument. (Use the \catattr{textformat} attribute and \cs{glstextformat}. See the \sty{soul} example in \sectionref{sec:glsunset}. +\item[{\gloskey[glslink]{prefix}}] Locally redefines +\ics{glolinkprefix} to the given value. It should match the prefix +for the desired glossary. + \end{description} There is a new hook that's used each time indexing information is @@ -1791,6 +1812,23 @@ By default \cs{glsxtrpostlink} just does \postlinkcat\ if it exists, where (For example, for the \category{general} category, \cs{glsxtrpostlinkgeneral} if it has been defined.) +You can define the post-link hook command using \cs{newcommand}, for +example: +\begin{verbatim} +\newcommand*{\glsxtrpostlinkgeneral}{% + \glsxtrpostlinkAddDescOnFirstUse +} +\end{verbatim} +or, as from v1.31, you can use +\begin{definition}[\DescribeMacro\glsdefpostlink] +\cs{glsdefpostlink}\marg{category}\marg{definition} +\end{definition} +This is simply a shortcut for: +\begin{alltt} +\cs{csdef}{glsxtrpostlink\meta{category}}\marg{definition} +\end{alltt} +Note that it doesn't check if the command has already been defined. + \begin{sloppypar} The sentence-ending hook is slightly more complicated. If the command \postlinkcat\ is defined the hook will do that @@ -1825,7 +1863,15 @@ category: \cs{glsxtrpostlinkAddSymbolOnFirstUse} \end{definition} This will append the symbol (if defined) in parentheses on -\gls{firstuse}. +\gls{firstuse}. (Does nothing if the symbol hasn't been set.) + +\begin{definition}[\DescribeMacro\glsxtrpostlinkAddSymbolDescOnFirstUse] +\cs{glsxtrpostlinkAddSymbolDescOnFirstUse} +\end{definition} +(New to v1.31.) On \gls{firstuse}, +this will append \cs{space}(\meta{symbol}, \meta{description}) if +the symbol is defined otherwise it just appends +\cs{space}(\meta{description}). If you want to provide your own custom format be aware that you can't use \ics{ifglsused} within the post-\gls{linktext} hook as by this point @@ -2031,6 +2077,17 @@ new per-unit feature, is described in \sectionref{sec:entrycount}. \section{Unsetting the First Use Flag} \label{sec:glsunset} +There are two new commands provided with version 1.31+: +\begin{definition}[\DescribeMacro\glslocalreseteach] +\cs{glslocalreseteach}\marg{list} +\end{definition} +and +\begin{definition}[\DescribeMacro\glslocalunseteach] +\cs{glslocalunseteach}\marg{list} +\end{definition} +These behave like \cs{glslocalreset} and \cs{glslocalunset} +but the argument is a comma-separated list of labels. + The internal command used by \cs{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 @@ -2062,6 +2119,13 @@ entry's label but doesn't actually perform the change: \begin{definition}[\DescribeMacro\GlsXtrStartUnsetBuffering] \cs{GlsXtrStartUnsetBuffering} \end{definition} +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 buffering only applies to the +global \cs{glsunset} and does not affect the local +\cs{glslocalunset}. + Later you can restore \cs{glsunset} and unset all buffered labels using: \begin{definition}[\DescribeMacro\GlsXtrStopUnsetBuffering] @@ -2086,6 +2150,14 @@ The starred form \cs{GlsXtrStopUnsetBuffering*} uses Next use: \gls{html}. \end{document} \end{verbatim} +Before you stop the unset buffering, you can iterate over the +current buffer using +\begin{definition}[\DescribeMacro\GlsXtrForUnsetBufferedList] +\cs{GlsXtrForUnsetBufferedList}\marg{cs} +\end{definition} +where \meta{cs} is a control sequence that takes a single argument +(which is the entry label). This is best used with the starred +version \cs{GlsXtrStartUnsetBuffering*} to avoid duplicates. \begin{important} Note that since the change in the first use flag now doesn't @@ -3110,6 +3182,16 @@ the \qt{symbol} category: \newcommand*{\glsxtrpostnamesymbol}{\space (\glsentrysymbol{\glscurrententrylabel})} \end{verbatim} +For convenience, as from v1.31, you can use +\begin{definition}[\DescribeMacro\glsdefpostname] +\cs{glsdefpostname}\marg{category}\marg{definition} +\end{definition} +This is simply a shortcut for: +\begin{alltt} +\cs{csdef}{glsxtrpostname\meta{category}}\marg{definition} +\end{alltt} +Note that it doesn't check if the command has already been defined. + As from version 1.25, the post-name hook also does \begin{definition}[\DescribeMacro\glsextrapostnamehook] \cs{glsextrapostnamehook}\marg{label} @@ -3133,6 +3215,15 @@ with the current entry. For example \cs{glsxtrpostdescgeneral} for entries with the category set to \category{general} or \cs{glsxtrpostdescacronym} for entries with the category set to \category{acronym}. +For convenience, as from v1.31, you can use +\begin{definition}[\DescribeMacro\glsdefpostdesc] +\cs{glsdefpostdesc}\marg{category}\marg{definition} +\end{definition} +This is simply a shortcut for: +\begin{alltt} +\cs{csdef}{glsxtrpostdesc\meta{category}}\marg{definition} +\end{alltt} +Note that it doesn't check if the command has already been defined. Since both \cs{glossentry} and \cs{subglossentry} set \begin{definition}[\DescribeMacro\glscurrententrylabel] @@ -3298,6 +3389,14 @@ The \glostyle{list} styles use \end{definition} (which defaults to \cs{glslistprelocation}) for child items. +As from v1.31, the description (including the post-description hook) +is governed by: +\begin{definition}[\DescribeMacro\glslistdesc] +\cs{glslistdesc}\marg{label} +\end{definition} +for the \glostyle{list} and \glostyle{altlist} styles (but not the +\glostyle{listdotted} variations). + For just the \glostyle{list} style and its letter group variations (not the \glostyle{altlist} or \glostyle{listdotted} variations) the \gls{numberlist} for child entries is followed by @@ -3311,6 +3410,31 @@ 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 \cs{hsize} isn't set until the start of the document. +The \sty{glossary-tree} package introduced two new commands in +\sty{glossaries} version 4.22, \ics{glstreegroupheaderfmt} +and \ics{glstreenavigationfmt}, which are used to format +the letter group headings and the navigation elements for the +appropriate styles. These two new commands are defined in terms of +\ics{glstreenamefmt} since that was the command originally used +for the group headings and navigation. This now allows these +different elements to be defined independently, but the most common +redefinition is for \cs{glstreenamefmt} to remove the bold in the +name. If the bold is still required for the group heading and navigation +elements, then both other commands also need redefining. To simplify +matters, if \cs{glstreenamefmt} has been defined, as from v1.31 +\sty{glossaries-extra-stylemods} defines: +\begin{definition}[\DescribeMacro\glstreedefaultnamefmt] +\cs{glstreedefaultnamefmt}\marg{text} +\end{definition} +which simply does \cs{textbf}\marg{text} and redefines +\cs{glstreenamefmt}, \cs{glstreegroupheaderfmt} and +\cs{glstreenavigationfmt} all in terms of +\cs{glstreedefaultnamefmt}. This means that if you want to change +all three to use a particular style you only need to redefine +\cs{glstreedefaultnamefmt}, but if you only want to redefine +\cs{glstreenamefmt} without affecting the other two commands, then +you now can. + The \glostyle{index}-like and \glostyle{tree}-like styles insert the pre-\gls{numberlist} space with \begin{definition}[\DescribeMacro\glstreeprelocation] @@ -3322,6 +3446,44 @@ insert the pre-\gls{numberlist} space with \end{definition} (which defaults to \cs{glstreeprelocation}) for child items. +As from version 1.31, the \styfmt{glossaries-extra-stylemods} +package also provides: +\begin{definition}[\DescribeMacro\glstreenonamedesc] +\cs{glstreenonamedesc}\marg{label} +\end{definition} +which is used by the \glostyle{treenoname} styles to display the +pre-description separator, the description and the post-description +hook. Similarly for the symbol: +\begin{definition}[\DescribeMacro\glstreenonamesymbol] +\cs{glstreenonamesymbol}\marg{label} +\end{definition} +The above are just used for top-level entries. Child entries don't +have the name or symbol displayed for the \glostyle{treenoname} +styles, so there's only a command for the child description: +\begin{definition}[\DescribeMacro\glstreenonamechilddesc] +\cs{glstreenonamechilddesc}\marg{label} +\end{definition} + +For the \glostyle{tree} styles (but not the \glostyle{treenoname} or +\glostyle{alttree} styles), the description is displayed using: +\begin{definition}[\DescribeMacro\glstreedesc] +\cs{glstreedesc}\marg{label} +\end{definition} +and the symbol with: +\begin{definition}[\DescribeMacro\glstreesymbol] +\cs{glstreesymbol}\marg{label} +\end{definition} +Again the above two commands are just for top-level entries. The +child entries use: +\begin{definition}[\DescribeMacro\glstreechilddesc] +\cs{glstreechilddesc}\marg{label} +\end{definition} +for the description and +\begin{definition}[\DescribeMacro\glstreechildsymbol] +\cs{glstreechildsymbol}\marg{label} +\end{definition} +for the symbol. + As from version 1.05, the \styfmt{glossaries-extra-stylemods} package provides some additional commands for use with the @@ -5610,7 +5772,11 @@ change, you can restore their former definitions using \begin{definition}[\DescribeMacro\glsxtrRevertMarks] \cs{glsxtrRevertMarks} \end{definition} -In this case, you'll have to use the \styfmt{glossaries} manual's +If you only want to restore \cs{@starttoc} you can use: +\begin{definition}[\DescribeMacro\glsxtrRevertTocMarks] +\cs{glsxtrRevertTocMarks} +\end{definition} +If you restore the header or table of contents commands, you'll have to use the \styfmt{glossaries} manual's recommendations of either simply using \cs{glsentryshort} (as above) or use the sectioning command's option argument to provide an alternative for the table of contents and page header. For example: @@ -5880,7 +6046,11 @@ implement \gloskey[glslink]{wrgloss}\optfmt{=after}. (New to v1.14.) \item[\catattrdef{discardperiod}] If set to \qt{true}, the post-\gls{linktext} hook will discard a~full stop (period) that follows \emph{non-plural} commands like \cs{gls} or -\cs{glstext}. (Provided for entries such as abbreviations that end with a full stop.) +\cs{glstext}. (Provided for entries such as abbreviations that end +with a full stop.) This attribute is only applicable to entries +defined using \cs{newabbreviation} (or \cs{newacronym} if it's using +\cs{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 full stop. For example: @@ -5903,14 +6073,19 @@ and it won't be discarded. \item[\catattrdef{pluraldiscardperiod}] If this attribute is set to \qt{true} \emph{and} the \catattr{discardperiod} attribute is set to \qt{true}, this will behave as above for the plural commands like -\cs{glspl} or \cs{glsplural}. +\cs{glspl} or \cs{glsplural}. This attribute is only applicable to entries +defined using \cs{newabbreviation} (or \cs{newacronym} if it's using +\cs{newabbreviation}.) \item[\catattrdef{retainfirstuseperiod}] If this attribute is set to \qt{true} then the full stop won't be discarded for \gls{firstuse} instances, even if \catattr{discardperiod} or \catattr{pluraldiscardperiod} are set. This is useful for \meta{short} (\meta{long}) abbreviation styles where only the short -form has a trailing full stop. +form has a trailing full stop. This attribute is only applicable to entries +defined using \cs{newabbreviation} (or \cs{newacronym} if it's using +\cs{newabbreviation}.) This attribute doesn't apply to the +accessibility fields. \item[\catattrdef{markwords}] If this attribute is set to \qt{true} any entry defined using \ics{newabbreviation} will automatically @@ -5945,7 +6120,9 @@ localised switch, if required. For example: {\def\glsxtrwordsep{-}\glsxtrlong[#1]{#2}}} \end{verbatim} -This setting will also adjust the long plural. +This setting will also adjust the long plural. This attribute is only applicable to entries +defined using \cs{newabbreviation} (or \cs{newacronym} if it's using +\cs{newabbreviation}.) \begin{important} This setting may result in the @@ -5955,7 +6132,9 @@ This setting may result in the \item[\catattrdef{markshortwords}] This is similar to \catattr{markwords} but applies to the short form. (Only useful for -abbreviations that contain spaces.) +abbreviations that contain spaces.) This attribute is only applicable to entries +defined using \cs{newabbreviation} (or \cs{newacronym} if it's using +\cs{newabbreviation}.) This setting will only adjust the short plural if the \gloskey{shortplural} key isn't used. This setting will @@ -5975,7 +6154,9 @@ in the \meta{short} argument of \cs{newabbreviation} (rather than inserting them every time the entry is used). The short plural form defaults to the new dotted version of the original \meta{short} form with the plural suffix appended. \emph{This setting is incompatible -with \catattr{markshortwords}.} +with \catattr{markshortwords}.} This attribute is only applicable to entries +defined using \cs{newabbreviation} (or \cs{newacronym} if it's using +\cs{newabbreviation}.) \begin{important} If you explicitly override @@ -5993,13 +6174,75 @@ attribute set to \qt{true}. the plural suffix for the \emph{short} plural form (unless explicitly overridden with the \gloskey{shortplural} key). The long plural form is unaffected by this setting. This setting overrides -\catattr{noshortplural}. +\catattr{noshortplural}. This attribute is only applicable to entries +defined using \cs{newabbreviation} (or \cs{newacronym} if it's using +\cs{newabbreviation}.) Check with your supervisor, publisher or +editor if you want to use this attribute as this +usage is controversial. + \item[\catattrdef{noshortplural}] If this attribute is set to \qt{true}, \ics{newabbreviation} won't append the plural suffix for the short plural form. This means the \gloskey{short} and \gloskey{shortplural} values will be the same unless explicitly -overridden. \emph{This setting is incompatible with \catattr{aposplural}.} +overridden. \emph{This setting is incompatible with \catattr{aposplural}.} This attribute is only applicable to entries +defined using \cs{newabbreviation} (or \cs{newacronym} if it's using +\cs{newabbreviation}.) + +\item[\catattrdef{accessinsertdots}] If this attribute is set to +\qt{true} and the \sty{glossaries-accsupp} package has been loaded +(with the \pkgopt{accsupp} option), then this behaves like +\catattr{insertdots} but for the \gloskey{shortaccess} field instead +of the \gloskey{short} field. This can be used to assist the +screen reader for initialisms that should be read out letter by +letter rather than as a word. For example: +\begin{verbatim} +\glssetcategoryattribute{initialism}{accessinsertdots}{true} + +\newabbreviation[category=initialism]{pi}{PI}{Private Investigator} +\end{verbatim} +This setting will be overridden by an explicit use of +the \gloskey{shortaccess} key in the optional argument +of \cs{newabbreviation} (or \cs{newacronym}). This attribute is only applicable to entries +defined using \cs{newabbreviation} (or \cs{newacronym} if it's using +\cs{newabbreviation}.) + +\item[\catattrdef{nameshortaccess}] If this attribute is set to +\qt{true}, the \gloskey{access} field (used for the \gloskey{name} +field's accessibility support) is set to the \gloskey{shortaccess} +value. This attribute has no effect if there's no accessibility +support or if the \gloskey{shortaccess} field hasn't been assigned +or if the \gloskey{access} field is used explicitly. This attribute is only applicable to entries +defined using \cs{newabbreviation} (or \cs{newacronym} if it's using +\cs{newabbreviation}.) + +\item[\catattrdef{textshortaccess}] Like \gloskey{nameshortaccess} +but applies to the \gloskey{textaccess} field (for use with +regular abbreviations). + +\item[\catattrdef{firstshortaccess}] Like \gloskey{nameshortaccess} +but applies to the \gloskey{firstaccess} field (for use with +regular abbreviations). + +\item[\catattrdef{accessaposplural}] This boolean attribute overrides +\catattr{aposplural} for the \gloskey{shortpluralaccess} key. +Has no effect if there's no accessibility support or if +the \gloskey{shortaccess} key hasn't been set or if the +\gloskey{shortpluralaccess} key is explicitly set. If +the \catattr{aposplural} is set and this attribute isn't set +and the \gloskey{shortaccess} key is set, then the +\catattr{aposplural} setting governs the default +\gloskey{shortpluralaccess} setting. If you want +\catattr{aposplural} but don't want it applied to the accessibility +support, set the \catattr{accessaposplural} attribute to \qt{false}. This attribute is only applicable to entries +defined using \cs{newabbreviation} (or \cs{newacronym} if it's using +\cs{newabbreviation}.) + +\item[\catattrdef{accessnoshortplural}] This boolean attribute overrides +\catattr{noshortplural} for the \gloskey{shortpluralaccess} key. +The same conditions apply as for \catattr{accessaposplural}. This attribute is only applicable to entries +defined using \cs{newabbreviation} (or \cs{newacronym} if it's using +\cs{newabbreviation}.) \item[\catattrdef{headuc}] If this attribute is set to \qt{true}, commands like \ics{glsfmtshort} will use the upper case version @@ -7590,6 +7833,28 @@ when you need to indicate a Unicode character in the form \cs{u}\meta{hex} in some of the resource options (as illustrated above). +\begin{definition}[\DescribeMacro\glscapturedgroup] +\cs{glscapturedgroup} +\end{definition} +This is just defined as \verb|\string\$| and is used for +the captured group reference in a replacement part of a regular +expression substitution (requires at least \gls{bib2gls} version 1.5). For example: +\begin{verbatim} +sort-replace={{([a-zA-Z])\string\.}{\glscapturedgroup1}} +\end{verbatim} +This only removes a full stop that follows any of the characters +a,\ldots,z or A,\ldots,Z. + +If you use the \texttt{save-child-count} resource option, +you can test if the \texttt{childcount} field is non-zero using: +\begin{definition}[\DescribeMacro{\GlsXtrIfHasNonZeroChildCount}] +\cs{GlsXtrIfHasNonZeroChildCount}\marg{label}\marg{true}\marg{false} +\end{definition} +This internally uses \cs{GlsXtrIfFieldNonZero} and will do +\meta{false} if the field isn't set. Within \meta{true} and +\meta{false} you can use \cs{glscurrentfieldvalue} to access the +value. (It will be 0 in \meta{false} if the field isn't set.) + \begin{definition}[\DescribeMacro\glsxtrprovidecommand] \cs{glsxtrprovidecommand} \end{definition} @@ -8968,12 +9233,48 @@ You can test if a field value equals a string using \end{definition} If the entry exists and has the given field set to the given text then this does \meta{true} otherwise it does -\meta{false}. -This is just a shortcut that uses \cs{glsxtrifhasfield} +\meta{false}. This is just a shortcut that uses: +\begin{definition}[\DescribeMacro{\GlsXtrIfFieldCmpStr}] +\cs{GlsXtrIfFieldCmpStr}\marg{field}\marg{label}\marg{comparison}\marg{text}\marg{true}\marg{false} +\end{definition} +This in turn is just a shortcut that uses \cs{glsxtrifhasfield} to test if the field exists and then compares the replacement text of \cs{glscurrentfieldvalue} with \meta{text} using -\sty{etoolbox}'s \cs{ifdefstring}. +\sty{etoolbox}'s \cs{ifdefstring}. The \meta{comparison} argument +must be one of \texttt{=} (equality), \texttt{<} (less +than) or \texttt{>} (greater than). + +As from version 1.31, there's a similar command: +\begin{definition}[\DescribeMacro{\GlsXtrIfFieldEqXpStr}] +\cs{GlsXtrIfFieldEqXpStr}\marg{field}\marg{label}\marg{text}\marg{true}\marg{false} +\end{definition} +This is like \cs{GlsXtrIfFieldEqStr} but first (protected) fully +expands \meta{text} (but not the field value). If you want to +compare the (protected) full expansion of both the field value and \meta{text} +use: +\begin{definition}[\DescribeMacro{\GlsXtrIfXpFieldEqXpStr}] +\cs{GlsXtrIfXpFieldEqXpStr}\marg{field}\marg{label}\marg{text}\marg{true}\marg{false} +\end{definition} +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 \cs{glscurrentfieldvalue} +within \meta{true} or \meta{false} to access the actual value. Both \meta{true} +and \meta{false} are scoped. If the field is undefined or empty, +the value is assumed to be 0, and \cs{glscurrentfieldvalue} is set +accordingly. + +To test if the value is non-zero: +\begin{definition}[\DescribeMacro{\GlsXtrIfFieldNonZero}] +\cs{GlsXtrIfFieldNonZero}\marg{field}\marg{label}\marg{true}\marg{false} +\end{definition} +Alternatively, you can test if the field expands to a specific +number using: +\begin{definition}[\DescribeMacro{\GlsXtrIfFieldEqNum}] +\cs{GlsXtrIfFieldEqNum}\marg{field}\marg{label}\marg{n}\marg{true}\marg{false} +\end{definition} +This does \meta{true} if the field value equals \meta{n} +(using \cs{ifnum} for the comparison) otherwise it does \meta{false}. The \styfmt{glossaries} package provides \ics{glsfieldfetch} which can be used to fetch the value of the given field and store it in a @@ -9437,19 +9738,34 @@ so that it's only available for use in \cs{glossentryname}. This is usually done at the start of commands like \cs{printglossary} and may be used by style hooks. Here the definition is localised so that it's only available for use -in \cs{glsentryitem} and \cs{glssubentryitem}. +in \cs{glsentryitem} and \cs{glssubentryitem}. The value is obtained +by fully expanding: +\begin{definition}[\DescribeMacro\GlsXtrStandaloneGlossaryType] +\cs{GlsXtrStandaloneGlossaryType} +\end{definition} +which defaults to the value of the \gloskey{type} field for the +current entry. \item Increments and display the entry counters if the \pkgopt{entrycounter} or \pkgopt{subentrycounter} - package options are set. If the entry has a parent, then + package options are set. If the entry doesn't have a parent, then this does \begin{itemize} - \item \cs{glssubentryitem}\marg{label} + \item \cs{glsentryitem}\marg{label} \end{itemize} - otherwise it does + otherwise it does (as from v1.31) \begin{itemize} - \item \cs{glsentryitem}\marg{label} + \item \ics{GlsXtrStandaloneSubEntryItem}\marg{label} +which defaults to \cs{glssubentryitem}\marg{label} if the entry +has a parent but not a grandparent. \end{itemize} + This reflects the behaviour of the predefined hierarchical styles. +A bug in pre-version~1.31 used \cs{glsentryitem} for all child levels, +which doesn't match the hierarchical glossary styles. If you want to +restore this behaviour, just do: +\begin{verbatim} +\renewcommand*{\GlsXtrStandaloneSubEntryItem}[1]{\glssubentryitem{#1}} +\end{verbatim} \item Sets the hyper-target if supported (using \cs{glstarget}). diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-abbr-styles.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-abbr-styles.pdf index a77ce1c16d7..44cc9df0327 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-abbr-styles.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-abbr-styles.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-abbrv.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-abbrv.pdf index 3b8a3909c47..bb9a2f38250 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-abbrv.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-abbrv.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-accsupp.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-accsupp.pdf index 015ad156b22..547f9a2299d 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-accsupp.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-accsupp.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-accsupp.tex b/Master/texmf-dist/doc/latex/glossaries-extra/sample-accsupp.tex index a49aab93228..85d24a80598 100644 --- a/Master/texmf-dist/doc/latex/glossaries-extra/sample-accsupp.tex +++ b/Master/texmf-dist/doc/latex/glossaries-extra/sample-accsupp.tex @@ -30,6 +30,11 @@ ] {spld}{SpLD}{specific learning difference} +\glssetcategoryattribute{initialism}{accessinsertdots}{true} +\glssetcategoryattribute{initialism}{nameshortaccess}{true} + +\newabbreviation[category=initialism]{pi}{PI}{Private Investigator} + % \ensuremath is required in the following as the % accessibility support clashes with math-mode. @@ -63,6 +68,8 @@ to see the difference. First use: \gls{spld}. Next use: \gls{spld}. +Access name: \glsentryaccess{spld}. + Access text: \glsentrytextaccess{spld}. Access short: \glsentryshortaccess{spld}. @@ -73,6 +80,18 @@ is used in the corresponding \verb|\glstext|, \verb|\glsaccesstext| etc commands Text field: \glstext{spld} [no-index/link version: \glsaccesstext{spld}]. Short field: \glsxtrshort{spld} [no-index/link version: \glsaccessshort{spld}]. +\section{An Initialism} + +The short form should be read as two letters: P I (not as the word +pi). + +First use: \gls{pi}. +Next use: \gls{pi}. + +Access short: \glsentryshortaccess{pi}. +Actual short value: \glsentryshort{pi}. +Access (name): \glsentryaccess{pi}. + \section{A Symbol} First use: \gls{R}. Next use: \gls{R}. @@ -92,11 +111,11 @@ field is used on subsequent use. If this hasn't been set the ``access'' field is used instead. The ``access'' field is used for the entry name in the glossary list. -Access field: \glsentryaccess{R}. +Access (name) field: \glsentryaccess{R}. First Access field: \glsentryfirstaccess{R}. Text Access field: \glsentrytextaccess{R}. -Access field: \glsentryaccess{in}. +Access (name) field: \glsentryaccess{in}. First Access field: \glsentryfirstaccess{in}. Text Access field: \glsentrytextaccess{in}. diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-acronym-desc.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-acronym-desc.pdf index d85e150eec6..33101737829 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-acronym-desc.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-acronym-desc.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-acronym.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-acronym.pdf index d15e0d136e0..22df2eae199 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-acronym.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-acronym.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-alias.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-alias.pdf index 912a43bdd2e..34583ece3f5 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-alias.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-alias.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-altmodifier.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-altmodifier.pdf index b099aa1341b..8c8e7710d28 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-altmodifier.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-altmodifier.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-alttree-marginpar.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-alttree-marginpar.pdf index 24417903f7c..890f5e96974 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-alttree-marginpar.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-alttree-marginpar.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-alttree-sym.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-alttree-sym.pdf index 5e4800b7a06..2db19dac06f 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-alttree-sym.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-alttree-sym.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-alttree.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-alttree.pdf index 9c4c8612c48..47ccd0fe247 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-alttree.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-alttree.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-autoindex-hyp.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-autoindex-hyp.pdf index db3e990d577..aaed3e9b0bc 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-autoindex-hyp.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-autoindex-hyp.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-autoindex.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-autoindex.pdf index f5dcae61148..885f17b90df 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-autoindex.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-autoindex.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-crossref.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-crossref.pdf index e772615c911..838248aba3f 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-crossref.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-crossref.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-crossref2.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-crossref2.pdf index 86e065a8127..94b256f2388 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-crossref2.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-crossref2.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-docdef.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-docdef.pdf index 09649032818..6ccd164f057 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-docdef.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-docdef.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-entrycount.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-entrycount.pdf index 62677c79f29..f26bfb36d3f 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-entrycount.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-entrycount.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-external.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-external.pdf index d94891ac998..ff89a4ebe60 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-external.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-external.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-fmt.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-fmt.pdf index be5dae81161..ed1ba77d3c4 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-fmt.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-fmt.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-footnote.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-footnote.pdf index ab81ba307e1..c552c07a5d2 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-footnote.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-footnote.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-header.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-header.pdf index c6a14608f3b..55f53108eca 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-header.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-header.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-indexhook.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-indexhook.pdf index f3c5efc0385..6d54cfb2784 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-indexhook.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-indexhook.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-initialisms.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-initialisms.pdf index f3eaec66a45..e97e56edeb6 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-initialisms.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-initialisms.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-linkcount.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-linkcount.pdf index d45f94a4ba6..3c1a1d46fe3 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-linkcount.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-linkcount.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-mixed-abbrv-styles.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-mixed-abbrv-styles.pdf index 08462065f4a..cda0757a956 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-mixed-abbrv-styles.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-mixed-abbrv-styles.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-mixedsort.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-mixedsort.pdf index db28d977c6c..636ebc98950 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-mixedsort.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-mixedsort.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-mixture.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-mixture.pdf index 2bffab12954..6d93a5f1682 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-mixture.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-mixture.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-name-font.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-name-font.pdf index fec82e2227e..a94ce4a3a56 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-name-font.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-name-font.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-nested.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-nested.pdf index 5ff73ad5d2d..297da86f4f1 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-nested.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-nested.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-noidx-restricteddocdefs.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-noidx-restricteddocdefs.pdf index 3d569eb4fd1..f08c68b0f3b 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-noidx-restricteddocdefs.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-noidx-restricteddocdefs.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-onelink.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-onelink.pdf index 6d08643150a..f9b1981857e 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-onelink.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-onelink.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-onthefly-utf8.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-onthefly-utf8.pdf index e8e8e59aa79..543a0935b31 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-onthefly-utf8.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-onthefly-utf8.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-onthefly-xetex.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-onthefly-xetex.pdf index d9192abd53a..ae3b3ed6730 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-onthefly-xetex.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-onthefly-xetex.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-onthefly.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-onthefly.pdf index e65d46323b3..31a758a5747 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-onthefly.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-onthefly.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-pages.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-pages.pdf index 7d91b44ec55..71632792769 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-pages.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-pages.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-postdot.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-postdot.pdf index eeea89394bb..a462a6163d7 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-postdot.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-postdot.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-postlink.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-postlink.pdf index 573c461f145..8c8a49395a5 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-postlink.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-postlink.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-prefix.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-prefix.pdf index 5b335882437..3deeda72aed 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-prefix.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-prefix.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-record.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-record.pdf index 87fde0a00d9..82c53e2d707 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-record.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-record.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-restricteddocdefs.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-restricteddocdefs.pdf index ce84437668d..6eb1fcd0f57 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-restricteddocdefs.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-restricteddocdefs.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-hyp.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-hyp.pdf index 80a53942aa5..4f03b30d732 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-hyp.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-hyp.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main-hyp.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main-hyp.pdf index 4fd3c00334c..fd49dc1d6c0 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main-hyp.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main-hyp.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main.pdf index 450c7fc1e99..f237697fcd4 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl.pdf index 3911f0ebebd..725df90810c 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-trans.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-trans.pdf index 7d61ebb96c4..6085e53194d 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-trans.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-trans.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-undef.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-undef.pdf index 2cf66795124..e545d26978a 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-undef.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-undef.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-unitentrycount.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-unitentrycount.pdf index b51ffa6462a..f44c3a5eb89 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-unitentrycount.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-unitentrycount.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample.pdf index 9fe9aa5d114..f8c86ac5c35 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample.pdf differ diff --git a/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.dtx b/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.dtx index 429217ad269..6a62b1dee1e 100644 --- a/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.dtx +++ b/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.dtx @@ -1,23 +1,23 @@ %\iffalse % glossaries-extra.dtx generated using makedtx version 1.2 (c) Nicola Talbot % Command line args: -% -section "chapter" -% -macrocode ".*\.tex" -% -macrocode ".*\.bib" -% -author "Nicola Talbot" -% -setambles ".*\.bib=>\nopreamble\nopostamble" +% -codetitle "Main Package Code (\\styfmt{glossaries-extra.sty})" % -comment ".*\.tex" % -comment ".*\.bib" -% -codetitle "Main Package Code (\\styfmt{glossaries-extra.sty})" +% -setambles ".*\.bib=>\nopreamble\nopostamble" +% -author "Nicola Talbot" % -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" % -src "glossary-bookindex.sty\Z=>glossary-bookindex.sty" % -src "(example-glossaries-.+\.tex)\Z=>\1" % -src "(example-glossaries-.+\.bib)\Z=>\1" +% -macrocode ".*\.tex" +% -macrocode ".*\.bib" % -doc "glossaries-extra-codedoc.tex" +% -section "chapter" % glossaries-extra -% Created on 2018/4/25 15:12 +% Created on 2018/5/9 22:46 %\fi %\iffalse %<*package> @@ -127,7 +127,7 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of \setcounter{IndexColumns}{2} -\CheckSum{22769} +\CheckSum{23123} \newcommand*{\ifirstuse}{\iterm{first use}} \newcommand*{\firstuse}{\gls{firstuse}} @@ -167,13 +167,13 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of \raggedright } -\title{glossaries-extra.sty v1.30: +\title{glossaries-extra.sty v1.31: documented code} \author{Nicola L.C. Talbot\\[10pt] Dickimaw Books\\ \url{http://www.dickimaw-books.com/}} -\date{2018-04-25} +\date{2018-05-09} \begin{document} \DocInput{glossaries-extra.dtx} @@ -218,7 +218,7 @@ Dickimaw Books\\ %\section{Package Initialisation and Options} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra}[2018/04/25 v1.30 (NLCT)] +\ProvidesPackage{glossaries-extra}[2018/05/09 v1.31 (NLCT)] % \end{macrocode} % Requires \sty{xkeyval} to define package options. % \begin{macrocode} @@ -890,6 +890,10 @@ Dickimaw Books\\ % \begin{macrocode} \ifdef\@gls@setupsort@none{\@gls@setupsort@none}{}% % \end{macrocode} +% Warn about using \cs{printglossary}: +% \begin{macrocode} + \def\glsxtrNoGlossaryWarning{\@glsxtr@record@noglossarywarning}% +% \end{macrocode} %Load \sty{glossaries-extra-bib2gls}: % \begin{macrocode} \RequirePackage{glossaries-extra-bib2gls}% @@ -2232,6 +2236,52 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % +%\begin{macro}{\GlsXtrIfFieldNonZero} +%\changes{1.31}{2018-05-09}{new} +%Designed for numeric fields. +% \begin{macrocode} +\newcommand{\GlsXtrIfFieldNonZero}[4]{% + \GlsXtrIfFieldCmpNum{#1}{#2}{=}{0}{#4}{#3}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\GlsXtrIfFieldEqNum} +%\changes{1.31}{2018-05-09}{new} +%\begin{definition} +%\cs{GlsXtrIfFieldEqNum}\marg{field}\marg{label}\marg{value}\marg{true}\marg{false} +%\end{definition} +%Designed for numeric fields. +% \begin{macrocode} +\newcommand{\GlsXtrIfFieldEqNum}[5]{% + \GlsXtrIfFieldCmpNum{#1}{#2}{=}{#3}{#4}{#5}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\GlsXtrIfFieldCmpNum} +%\changes{1.31}{2018-05-09}{new} +%\begin{definition} +%\cs{GlsXtrIfFieldCmpNum}\marg{field}\marg{label}\marg{comparison}\marg{value}\marg{true}\marg{false} +%\end{definition} +%Designed for numeric fields. +% \begin{macrocode} +\newcommand{\GlsXtrIfFieldCmpNum}[6]{% + {% + \letcs{\glscurrentfieldvalue}{glo@\glsdetoklabel{#2}@#1}% + \ifundef\glscurrentfieldvalue + {\def\glscurrentfieldvalue{0}}% + {% + \ifdefempty\glscurrentfieldvalue + {\def\glscurrentfieldvalue{0}}% + {}% + }% + \ifnum\glscurrentfieldvalue#3#4\relax #5\else #6\fi + }% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\GlsXtrIfFieldUndef} %\changes{1.23}{2017-11-12}{new} %\begin{definition} @@ -2385,20 +2435,72 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % +%\begin{macro}{\GlsXtrIfFieldEqXpStr} +%\changes{1.31}{2018-05-09}{new} +%Like the above but first expands the string. +% \begin{macrocode} +\newrobustcmd*{\GlsXtrIfFieldEqXpStr}[5]{% + \glsxtrifhasfield{#1}{#2}% + {% + \protected@edef\@gls@tmp{#3}% + \ifdefequal{\glscurrentfieldvalue}{\@gls@tmp}{#4}{#5}% + }% + {#5}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\GlsXtrIfXpFieldEqXpStr} +%\changes{1.31}{2018-05-09}{new} +%Like the above but also expands the field value. +% \begin{macrocode} +\newrobustcmd*{\GlsXtrIfXpFieldEqXpStr}[5]{% + \glsxtrifhasfield{#1}{#2}% + {% + \protected@edef\@gls@tmp{\glscurrentfieldvalue}% + \let\glscurrentfieldvalue\@gls@tmp + \protected@edef\@gls@tmp{#3}% + \ifdefequal{\glscurrentfieldvalue}{\@gls@tmp}{#4}{#5}% + }% + {#5}% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\glsxtrpageref} %\changes{1.11}{2017-01-19}{new} % Like \cs{glsrefentry} but references the page number instead (if -% entry counting is on). +% entry counting is on). The base \sty{glossaries} package only +% introduced \cs{GlsEntryCounterLabelPrefix} in version 4.38, so it +% may not be defined. % \begin{macrocode} -\ifglsentrycounter - \newcommand*{\glsxtrpageref}[1]{\pageref{glsentry-\glsdetoklabel{#1}}} -\else - \ifglssubentrycounter - \newcommand*{\glsxtrpageref}[1]{\pageref{glsentry-\glsdetoklabel{#1}}} - \else - \newcommand*{\glsxtrpageref}[1]{\gls{#1}} - \fi -\fi +\ifdef\GlsEntryCounterLabelPrefix +{% + \newcommand*{\glsxtrpageref}[1]{% + \ifglsentrycounter + \pageref{\GlsEntryCounterLabelPrefix\glsdetoklabel{#1}}% + \else + \ifglssubentrycounter + \pageref{\GlsEntryCounterLabelPrefix\glsdetoklabel{#1}}% + \else + \gls{#1}% + \fi + \fi + } +}% +{% + \newcommand*{\glsxtrpageref}[1]{% + \ifglsentrycounter + \pageref{glsentry-\glsdetoklabel{#1}}% + \else + \ifglssubentrycounter + \pageref{glsentry-\glsdetoklabel{#1}}% + \else + \gls{#1}% + \fi + \fi + } +}% % \end{macrocode} %\end{macro} % @@ -4149,6 +4251,11 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % +%\changes{1.31}{2018-05-09}{added \texttt{prefix} key for \texttt{glslink}} +% \begin{macrocode} +\define@key{glslink}{prefix}{\def\glolinkprefix{#1}} +% \end{macrocode} +% %\begin{macro}{\glsxtrinithyperoutside} %\changes{1.21}{2017-11-03}{new} %Set the default if the \gloskey[glslink]{hyperoutside} is omitted. @@ -4213,6 +4320,10 @@ Dickimaw Books\\ \edef\glstype{\csname glo@\glslabel @type\endcsname}% \let\org@ifKV@glslink@hyper\ifKV@glslink@hyper % \end{macrocode} +%Save current value of \cs{glolinkprefix}: +% \begin{macrocode} + \let\@glsxtr@org@glolinkprefix\glolinkprefix +% \end{macrocode} %Initialise \cs{@glsxtr@local@textformat} % \begin{macrocode} \let\@glsxtr@local@textformat\relax @@ -4326,6 +4437,10 @@ Dickimaw Books\\ \@do@wrglossary{#2}% \fi % \end{macrocode} +%Restore original value of \cs{glolinkprefix}: +% \begin{macrocode} + \let\glolinkprefix\@glsxtr@org@glolinkprefix +% \end{macrocode} % As the original definition: % \begin{macrocode} \let\ifKV@glslink@hyper\org@ifKV@glslink@hyper @@ -4404,6 +4519,17 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % +%\begin{macro}{\glsaddeach} +%\changes{1.31}{2018-05-09}{new} +%Performs \cs{glsadd} for each entry listed in the mandatory +%argument. +% \begin{macrocode} +\newrobustcmd{\glsaddeach}[2][]{% + \@for\@gls@thislabel:=#2\do{\glsadd[#1]{\@gls@thislabel}}% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\@glsxtr@field@linkdefs} % Default settings for \cs{@gls@field@link} %\changes{0.3}{2015-12-02}{new} @@ -5919,7 +6045,9 @@ Dickimaw Books\\ % This command was only introduced in \styfmt{glossaries} v4.20, so it may % not be defined (therefore use \cs{def}). For older \styfmt{glossaries} versions, this won't be % used if \sty{hyperref} hasn't been loaded, which means the -% indexing will still take place. The generated text is scoped. +% indexing will still take place. The generated text is scoped +% (the link text in \cs{hyperlink} is also scoped, so it's +% consistent). %\changes{0.5.4}{2015-12-15}{added} % \begin{macrocode} \def\glsdonohyperlink#1#2{{\glsxtrprotectlinks #2}} @@ -6593,6 +6721,16 @@ Dickimaw Books\\ %\changes{1.30}{2018-04-25}{new} % \begin{macrocode} \newcommand*{\GlsXtrStartUnsetBuffering}{% + \@ifstar\s@GlsXtrStartUnsetBuffering\@GlsXtrStartUnsetBuffering +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@GlsXtrStartUnsetBuffering} +%\changes{1.31}{2018-05-09}{new} +%Unstarred version doesn't check for duplicates. +% \begin{macrocode} +\newcommand*{\@GlsXtrStartUnsetBuffering}{% \let\@glsxtr@org@unset@buffer\@glsxtr@unset@buffer \def\@glsxtr@unset@buffer{}% \let\@glsunset\@glsxtrbuffer@unset @@ -6600,6 +6738,18 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % +%\begin{macro}{\s@GlsXtrStartUnsetBuffering} +%\changes{1.31}{2018-05-09}{new} +%Starred version checks for duplicates. +% \begin{macrocode} +\newcommand*{\s@GlsXtrStartUnsetBuffering}{% + \let\@glsxtr@org@unset@buffer\@glsxtr@unset@buffer + \def\@glsxtr@unset@buffer{}% + \let\@glsunset\@glsxtrbuffer@nodup@unset +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\@glsxtrbuffer@unset} %\changes{1.30}{2018-04-25}{new} %This must use a global change since \cs{gls} may have to be placed @@ -6611,6 +6761,21 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % +%\begin{macro}{\@glsxtrbuffer@nodup@unset} +%\changes{1.31}{2018-05-09}{new} +%Alternative version that avoids duplicates. +%One level of expansion is performed on the argument in case it's a +%control sequence containing the label. (Not using \cs{xifinlist} as +%the added complexity might cause problems that the buffering is +%trying to overcome.) +% \begin{macrocode} +\newcommand*{\@glsxtrbuffer@nodup@unset}[1]{% + \expandafter\ifinlist\expandafter{#1}{\@glsxtr@unset@buffer}{}% + {\listxadd\@glsxtr@unset@buffer{#1}}% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\GlsXtrStopUnsetBuffering} %\changes{1.30}{2018-04-25}{new} % \begin{macrocode} @@ -6643,6 +6808,17 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % +%\begin{macro}{\GlsXtrForUnsetBufferedList} +%\changes{1.31}{2018-05-09}{new} +%Iterate over labels stored in the current buffer. +%The argument is the handler macro. +% \begin{macrocode} +\newcommand*{\GlsXtrForUnsetBufferedList}[1]{% + \forlistloop#1\@glsxtr@unset@buffer +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\@glslocalunset} % Local unset. % \begin{macrocode} @@ -6691,6 +6867,42 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % +%\begin{macro}{\glslocalreseteach} +%\changes{1.31}{2018-05-09}{new} +%Locally reset a list of entries. +% \begin{macrocode} +\newcommand*{\glslocalreseteach}[1]{% + \gls@ifnotmeasuring + {% + \@for\@gls@thislabel:=#1\do{% + \glsdoifexists{\@gls@thislabel}% + {% + \@glslocalreset{\@gls@thislabel}% + }% + }% + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\glslocalunseteach} +%Locally unset a list of entries. +%\changes{1.31}{2018-05-09}{new} +% \begin{macrocode} +\newcommand*{\glslocalunseteach}[1]{% + \gls@ifnotmeasuring + {% + \@for\@gls@thislabel:=#1\do{% + \glsdoifexists{\@gls@thislabel}% + {% + \@glslocalunset{\@gls@thislabel}% + }% + }% + }% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\GlsXtrEnableEntryCounting} % The first argument is the list of categories and the second % argument is the value of the \catattr{entrycount} attribute. @@ -8050,7 +8262,10 @@ Dickimaw Books\\ {true,false}[true]% {% \ifcase\@glsxtr@printglossnr - \let\@glstarget\glsdohypertarget +% \end{macrocode} +%\changes{1.31}{2018-05-09}{changed \cs{let} to \cs{def}} +% \begin{macrocode} + \def\@glstarget{\glsdohypertarget}% \else \let\@glstarget\@secondoftwo \fi @@ -8070,6 +8285,13 @@ Dickimaw Books\\ } % \end{macrocode} % +%\changes{1.31}{2018-05-09}{added \texttt{prefix} key for \texttt{printgloss}} +% \begin{macrocode} +\define@key{printgloss}{prefix}{% + \renewcommand{\glolinkprefix}{#1}% +} +% \end{macrocode} +% %\begin{macro}{\glsdohypertarget} %\changes{1.20}{2017-09-11}{added redefinition} %Redefine to insert \cs{@glsxtrhypernameprefix} before the target @@ -8080,7 +8302,16 @@ Dickimaw Books\\ \@glsxtr@org@glsdohypertarget{\@glsxtrhypernameprefix#1}{#2}% } % \end{macrocode} +%\changes{1.31}{2018-05-09}{bug fix: ensure that new version is picked up} +%Update \cs{@glstarget} to use \cs{def} instead being assigned with +%\cs{let} so that it can pick up the new definition and allow any +%further redefinitions: +% \begin{macrocode} +\ifx\@glstarget\@glsxtr@org@glsdohypertarget + \def\@glstarget{\glsdohypertarget}% +\fi %\end{macro} +% \end{macrocode} %\begin{macro}{\glsxtr@makeglossaries} %For the benefit of \app{makeglossaries} %\changes{1.09}{2016-12-16}{new} @@ -8736,6 +8967,19 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % +%\begin{macro}{\GlsXtrRecordWarning} +% Paragraph for \pkgopt[only]{record}. +%\changes{1.31}{2018-05-09}{new} +% \begin{macrocode} +\newcommand{\GlsXtrRecordWarning}[1]{% + \texttt{\string\printglossary} doesn't work + with the \texttt{record=only} package option + use\par\texttt{\string\printunsrtglossary[type=#1]}\par + instead (or change the package option).% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\GlsXtrNoGlsWarningTail} % Final paragraph. % \begin{macrocode} @@ -8819,6 +9063,22 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % +%\begin{macro}{\@glsxtr@record@noglossarywarning} +%\changes{1.31}{2018-05-09}{new} +%Warn about using \cs{printglossary} with \pkgopt{record} +% \begin{macrocode} +\newcommand*{\@glsxtr@record@noglossarywarning}[1]{% + \GlossariesExtraWarning{\string\printglossary\space doesn't work\MessageBreak + with record=only package option\MessageBreak(use + \string\printunsrtglossary[type=#1])\MessageBreak + instead (or change the package option)}% + \glossarysection[\glossarytoctitle]{\glossarytitle} + \GlsXtrRecordWarning{#1} + \GlsXtrNoGlsWarningTail +} +% \end{macrocode} +%\end{macro} +% %Provide some commands to accompany the \pkgopt{record} option %for use with \href{https://github.com/nlct/bib2gls}{bib2gls}. %\begin{macro}{\glsxtrresourcefile} @@ -9122,9 +9382,9 @@ Dickimaw Books\\ {% \begingroup \edef\glscurrententrylabel{\glsdetoklabel{#1}}% - \edef\currentglossary{\glsentrytype{\glscurrententrylabel}}% + \edef\currentglossary{\GlsXtrStandaloneGlossaryType}% \ifglshasparent{#1}% - {\glssubentryitem{#1}}% + {\GlsXtrStandaloneSubEntryItem{#1}}% {\glsentryitem{#1}}% \glstarget{#1}{\glossentryname{#1}}% \endgroup @@ -9136,10 +9396,32 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % +%\begin{macro}{\GlsXtrStandaloneGlossaryType} +%\changes{1.31}{2018-05-09}{new} +%To make it easier to adjust the definition of \cs{currentglossary} +%within \cs{glsxtrglossentry}, this expands to the default +%definition. (If redefined, it must fully expand to the appropriate +%label.) +% \begin{macrocode} +\newcommand{\GlsXtrStandaloneGlossaryType}{\glsentrytype{\glscurrententrylabel}} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\GlsXtrStandaloneSubEntryItem} +%\changes{1.31}{2018-05-09}{new} +%Used for sub-entries in standalone format. The argument is the +%entry's label. +% \begin{macrocode} +\newcommand*{\GlsXtrStandaloneSubEntryItem}[1]{% + \GlsXtrIfFieldEqNum{level}{#1}{1}{\glssubentryitem{#1}}{}% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\glsxtrglossentryother} %\changes{1.22}{2017-11-08}{new} %As \cs{glsxtrglossentry} but uses a different field. -%First argument is command to use in the header. The second argument +%First argument is code to use in the header. The second argument %is the entry's label. The third argument is the internal field %label. This needs to be expandable in case it occurs in a %sectioning command so it can't have an optional argument. @@ -9181,9 +9463,9 @@ Dickimaw Books\\ {% \begingroup \edef\glscurrententrylabel{\glsdetoklabel{#1}}% - \edef\currentglossary{\glsentrytype{\glscurrententrylabel}}% + \edef\currentglossary{\GlsXtrStandaloneGlossaryType}% \ifglshasparent{#1}% - {\glssubentryitem{#1}}% + {\GlsXtrStandaloneSubEntryItem{#1}}% {\glsentryitem{#1}}% \glstarget{#1}{\glossentrynameother{#1}{#2}}% \endgroup @@ -9315,7 +9597,7 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % -%\begin{macro}{\printunsrtglossaryentryprocesshook} +%\begin{macro}{\printunsrtglossaryskipentry} %\changes{1.21}{2017-11-03}{new} % \begin{macrocode} \newcommand*{\printunsrtglossaryskipentry}{% @@ -9361,6 +9643,9 @@ can only be used within \string\printunsrtglossaryentryprocesshook}{}% %\end{macro} % %\begin{macro}{\glsxtriflabelinlist} +%\begin{definition} +%\cs{glsxtriflabelinlist}\marg{label}\marg{list}\marg{true}\marg{false} +%\end{definition} %\changes{1.21}{2017-11-03}{new} %Might be useful for the handler to check if an entry label %or category label is contained in a list, so provide a user-level @@ -10802,7 +11087,191 @@ defined}{}% % \end{macrocode} %\end{macro} % -% End of if part +% Keys for accessibility support. +% \begin{macrocode} + \define@key{glsxtrabbrv}{access}{% + \def\@gls@nameaccess{#1}% + } +% \end{macrocode} +% +% \begin{macrocode} + \define@key{glsxtrabbrv}{textaccess}{% + \def\@gls@textaccess{#1}% + } +% \end{macrocode} +% +% \begin{macrocode} + \define@key{glsxtrabbrv}{firstaccess}{% + \def\@gls@firstaccess{#1}% + } +% \end{macrocode} +% +% \begin{macrocode} + \define@key{glsxtrabbrv}{shortaccess}{% + \def\@gls@shortaccess{#1}% + } +% \end{macrocode} +% +% \begin{macrocode} + \define@key{glsxtrabbrv}{shortpluralaccess}{% + \def\@gls@shortaccesspl{#1}% + } +% \end{macrocode} +%\begin{macro}{\@gls@initaccesskeys} +%\changes{1.31}{2018-05-09}{new} +% \begin{macrocode} + \newcommand*{\@gls@initaccesskeys}{% + \def\@gls@nameaccess{}% + \def\@gls@textaccess{}% + \def\@gls@firstaccess{}% + \def\@gls@shortaccess{}% + \def\@gls@shortaccesspl{}% + } +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@gls@ifaccessattribute@set} +%\begin{definition} +%\cs{\@gls@ifaccessattribute@set}\marg{attribute}\marg{true}\marg{false} +%\end{definition} +%\changes{1.31}{2018-05-09}{new} +% \begin{macrocode} +\newcommand*{\@gls@ifaccessattribute@set}[3]{% + \glsifcategoryattribute{\glscategorylabel}{access#1}{true}% + {#2}% + {% + \glsifcategoryattribute{\glscategorylabel}{access#1}{false}% + {#3}% + {% + \glsifcategoryattribute{\glscategorylabel}{#1}{true}% + {#2}% + {#3}% + }% + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@gls@setup@default@short@access} +%\changes{1.31}{2018-05-09}{new} +%Assign the default value of the \gloskey{shortaccess} key. The +%argument is the short value passed to \cs{newabbreviation}. +% \begin{macrocode} + \newcommand{\@gls@setup@default@short@access}[1]{% +% \end{macrocode} +%Check if the \catattr{accessinsertdots} attribute has been set but +%only if \gloskey{shortaccess} hasn't been set. +% \begin{macrocode} + \ifdefempty\@gls@shortaccess + {% + \glsifcategoryattribute{\glscategorylabel}{accessinsertdots}{true}% + {% + \@glsxtr@insertdots\@gls@shortaccess{#1}% + \eappto\ExtraCustomAbbreviationFields{% + shortaccess={\expandonce\@gls@shortaccess},}% + }% + {}% + }% + {}% +% \end{macrocode} +%If the \gloskey{shortaccess} field has been set but +%\gloskey{shortaccessplural} hasn't been set, assign plural form. +% \begin{macrocode} + \ifdefempty\@gls@shortaccess + {}% + {% + \ifdefempty\@gls@shortaccesspl + {% + \@gls@ifaccessattribute@set{aposplural}% + {% + \expandafter\def\expandafter\@gls@shortaccesspl\expandafter{% + \@gls@shortaccess'\abbrvpluralsuffix}% + }% + {% + \@gls@ifaccessattribute@set{noshortplural}% + {% + \let\@gls@shortaccesspl\@gls@shortaccess + }% + {% + \expandafter\def\expandafter\@gls@shortaccesspl\expandafter{% + \@gls@shortaccess\abbrvpluralsuffix}% + }% + }% + \eappto\ExtraCustomAbbreviationFields{% + shortpluralaccess={\expandonce\@gls@shortaccesspl},}% + }% + {}% + }% +% \end{macrocode} +%If \gloskey{access} key hasn't been set, check if the +%\catattr{nameshortaccess} attribute has been set. +% \begin{macrocode} + \ifdefempty\@gls@nameaccess + {% + \glsifcategoryattribute{\glscategorylabel}{nameshortaccess}{true}% + {% +% \end{macrocode} +%Do nothing if the \gloskey{shortaccess} key hasn't been set. +% \begin{macrocode} + \ifdefempty\@gls@shortaccess + {}% + {% + \eappto\ExtraCustomAbbreviationFields{% + access={\expandonce\@gls@shortaccess},% + }% + }% + }% + {}% + }% + {}% +% \end{macrocode} +%If \gloskey{textaccess} key hasn't been set, check if the +%\catattr{textshortaccess} attribute has been set. +% \begin{macrocode} + \ifdefempty\@gls@textaccess + {% + \glsifcategoryattribute{\glscategorylabel}{textshortaccess}{true}% + {% +% \end{macrocode} +%Do nothing if the \gloskey{shortaccess} key hasn't been set. +% \begin{macrocode} + \ifdefempty\@gls@shortaccess + {}% + {% + \eappto\ExtraCustomAbbreviationFields{% + textaccess={\expandonce\@gls@shortaccess},% + }% + }% + }% + {}% + }% + {}% +% \end{macrocode} +%If \gloskey{firstaccess} key hasn't been set, check if the +%\catattr{firstshortaccess} attribute has been set. +% \begin{macrocode} + \ifdefempty\@gls@firstaccess + {% + \glsifcategoryattribute{\glscategorylabel}{firstshortaccess}{true}% + {% +% \end{macrocode} +%Do nothing if the \gloskey{shortaccess} key hasn't been set. +% \begin{macrocode} + \ifdefempty\@gls@shortaccess + {}% + {% + \eappto\ExtraCustomAbbreviationFields{% + firstaccess={\expandonce\@gls@shortaccess},% + }% + }% + }% + {}% + }% + {}% + } +% \end{macrocode} +%\end{macro} +% End of if accsupp part % \begin{macrocode} } { @@ -11132,6 +11601,20 @@ defined}{}% % \end{macrocode} %\end{macro} % +%\begin{macro}{\@gls@initaccesskeys} +%\changes{1.31}{2018-05-09}{new} +%This does nothing if there's no accessibility support. +% \begin{macrocode} + \newcommand*{\@gls@initaccesskeys}{} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@gls@setup@default@short@access} +%\changes{1.31}{2018-05-09}{new} +%This does nothing if there's no accessibility support. +% \begin{macrocode} + \newcommand{\@gls@setup@default@short@access}[1]{}% +% \end{macrocode} % End of else part % \begin{macrocode} } @@ -11876,6 +12359,17 @@ defined}{}% % \end{macrocode} %\end{macro} % +%\begin{macro}{\glsdefpostname} +%\changes{1.31}{2018-05-09}{new} +%Provide a convenient command for defining the post-name hook +%for the given category. +% \begin{macrocode} +\newcommand*{\glsdefpostname}[2]{% + \csdef{glsxtrpostname#1}{#2}% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\glsxtr@setaccessdisplay} %\changes{1.22}{2017-11-08}{new} % \begin{macrocode} @@ -12569,6 +13063,17 @@ defined}{}% % \end{macrocode} %\end{macro} % +%\begin{macro}{\glsdefpostdesc} +%\changes{1.31}{2018-05-09}{new} +%Provide a convenient command for defining the post-description hook +%for the given category. +% \begin{macrocode} +\newcommand*{\glsdefpostdesc}[2]{% + \csdef{glsxtrpostdesc#1}{#2}% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\glspostlinkhook} % Redefine the post link hook used by commands like \cs{gls} to % make it easier for categories or attributes to modify this action. @@ -12615,6 +13120,25 @@ defined}{}% % \end{macrocode} %\end{macro} % +%\begin{macro}{\glsdefpostlink} +%\changes{1.31}{2018-05-09}{new} +%Provide a convenient command for defining the post-link hook +%for the given category. Doesn't allow an empty argument (which) +%would overwrite \cs{glsxtrpostlink}. +% \begin{macrocode} +\newcommand*{\glsdefpostlink}[2]{% +% \end{macrocode} +% \cs{ifthenelse} is used to ensure that the expanded value is +% tested. (The category label must be fully expandable.) +% \begin{macrocode} + \ifthenelse{\equal{#1}{}}% + {\PackageError{glossaries-extra} + {Invalid empty category label in \string\glsdefpostlink}{}}% + {\csdef{glsxtrpostlink#1}{#2}}% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\glsxtrpostlinkendsentence} %\changes{0.3}{2015-12-02}{new} % Done by \cs{glsxtrpostlinkhook} if a full stop is discarded. @@ -12671,6 +13195,29 @@ defined}{}% % \end{macrocode} %\end{macro} % +%\begin{macro}{\glsxtrpostlinkAddSymbolDescOnFirstUse} +%\changes{1.31}{2018-05-09}{new} +% Provide a command for appending the symbol (if defined) and +% description in parentheses on +% first use, for the convenience of users wanting to add this to the +% post link hook. +% \begin{macrocode} +\newcommand*{\glsxtrpostlinkAddSymbolDescOnFirstUse}{% + \glsxtrifwasfirstuse + {% + \space\glsxtrparen + {% + \ifglshassymbol{\glslabel}% + {\glsaccesssymbol{\glslabel}, }% + {}% + \glsaccessdesc{\glslabel}% + }% + }% + {}% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\glsxtrdiscardperiod} % Discard following period (if present) if the % \catattr{discardperiod} attribute is true. If a period is @@ -12999,6 +13546,16 @@ defined}{}% \def\glsxtrorgshort{#3}% \def\glsxtrorglong{#4}% % \end{macrocode} +%\changes{1.31}{2018-05-09}{added \cs{ExtraCustomAbbreviationFields}} +%Provide extra settings for hooks (if modified, this command must +%end with a comma). +% \begin{macrocode} + \def\ExtraCustomAbbreviationFields{}% +% \end{macrocode} +%Initialise accessibility settings if required. +% \begin{macrocode} + \@gls@initaccesskeys +% \end{macrocode} % Get the category. %\changes{0.3}{2015-12-02}{fixed family name in \cs{setkeys}} % \begin{macrocode} @@ -13105,6 +13662,11 @@ defined}{}% \expandafter\glsshortpltok\expandafter{\@gls@shortpl}% \expandafter\glslongpltok\expandafter{\@gls@longpl}% % \end{macrocode} +% Hook for accessibility support (does nothing if +% \sty{glossaries-accsupp} hasn't been loaded). +% \begin{macrocode} + \@gls@setup@default@short@access{#3}% +% \end{macrocode} % Do any extra setup provided by hook: % \begin{macrocode} \newabbreviationhook @@ -13122,6 +13684,15 @@ defined}{}% longplural={\the\glslongpltok},% name={\the\glsshorttok},% \CustomAbbreviationFields,% +% \end{macrocode} +% Hook may override abbreviation style default settings (this hook +% must end with a comma if set). +% \begin{macrocode} + \ExtraCustomAbbreviationFields +% \end{macrocode} +% Any explicit fields set in the optional argument override all +% other settings. +% \begin{macrocode} \the\glskeylisttok }% }% @@ -20265,6 +20836,16 @@ defined}{}% % \end{macrocode} %\end{macro} % +%\begin{macro}{\glsxtrRevertTocMarks} +%\changes{1.31}{2018-05-09}{new} +%Just restores \cs{@starttoc}. +% \begin{macrocode} +\newcommand*{\glsxtrRevertTocMarks}{% + \let\@starttoc\@glsxtr@org@@starttoc +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\glsxtrifinmark} %\changes{1.07}{2016-08-15}{new} % \begin{macrocode} @@ -21596,7 +22177,7 @@ defined}{}% %automatically loaded by the record option. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra-bib2gls}[2018/04/25 v1.30 (NLCT)] +\ProvidesPackage{glossaries-extra-bib2gls}[2018/05/09 v1.31 (NLCT)] % \end{macrocode} % %These are some convenient macros for use with custom rules. @@ -21607,6 +22188,23 @@ defined}{}% % \end{macrocode} %\end{macro} % +%\begin{macro}{\glscapturedgroup} +%\changes{1.31}{2018-05-09}{new} +% \begin{macrocode} +\newcommand*{\glscapturedgroup}{\string\$} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\GlsXtrIfHasNonZeroChildCount} +%\changes{1.31}{2018-05-09}{new} +%For use with \app{bib2gls}'s \texttt{save-child-count} resource option. +% \begin{macrocode} +\newcommand*{\GlsXtrIfHasNonZeroChildCount}[3]{% + \GlsXtrIfFieldNonZero{childcount}{#1}{#2}{#3}% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\glsxtrprovidecommand} %\changes{1.27}{2018-02-26}{new} %For use in \texttt{@preamble}, this behaves like @@ -23956,7 +24554,7 @@ defined}{}% % First identify package: % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra-stylemods}[2018/04/25 v1.30 (NLCT)] +\ProvidesPackage{glossaries-extra-stylemods}[2018/05/09 v1.31 (NLCT)] % \end{macrocode} % Provide package options to automatically load required predefined % styles. The simplest method is to just test for the existence of @@ -24098,6 +24696,12 @@ defined}{}% \newcommand{\glslistchildpostlocation}{.} % \end{macrocode} %\end{macro} +%\begin{macro}{\glslistdesc} +%\changes{1.31}{2018-05-09}{new} +% \begin{macrocode} + \newcommand{\glslistdesc}[1]{\glossentrydesc{#1}\glspostdescription} +% \end{macrocode} +%\end{macro} %Redefine \glostyle{list} to use these commands. % \begin{macrocode} \renewglossarystyle{list}{% @@ -24108,11 +24712,11 @@ defined}{}% \renewcommand*{\glossentry}[2]{% \item[\glsentryitem{##1}% \glstarget{##1}{\glossentryname{##1}}] - \glossentrydesc{##1}\glspostdescription\glslistprelocation ##2}% + \glslistdesc{##1}\glslistprelocation ##2}% \renewcommand*{\subglossentry}[3]{% \glssubentryitem{##2}% \glstarget{##2}{\strut}\space - \glossentrydesc{##2}\glspostdescription + \glslistdesc{##2}% \glslistchildprelocation ##3\glslistchildpostlocation}% \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}% } @@ -24130,11 +24734,11 @@ defined}{}% \item[\glsentryitem{##1}% \glstarget{##1}{\glossentryname{##1}}]% \mbox{}\par\nobreak\@afterheading - \glossentrydesc{##1}\glspostdescription\glslistprelocation ##2}% + \glslistdesc{##1}\glslistprelocation ##2}% \renewcommand{\subglossentry}[3]{% \par \glssubentryitem{##2}% - \glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription + \glstarget{##2}{\strut}\glslistdesc{##2}% \glslistchildprelocation ##3}% } } @@ -24659,6 +25263,46 @@ defined}{}% % \end{macrocode} % %\section{Tree Styles} +% Redefine both \cs{glstreenamefmt} and \cs{glstreegroupheaderfmt} +% in terms of \cs{glstreedefaultnamefmt} to make it easier to change +% both at the same time or only change one without affecting the +% other. +% \begin{macrocode} +\ifdef\glstreenamefmt +{ +% \end{macrocode} +%\begin{macro}{\glstreedefaultnamefmt} +%\changes{1.31}{2018-05-09}{new} +% \begin{macrocode} + \newcommand{\glstreedefaultnamefmt}[1]{\textbf{#1}} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\glstreenamefmt} +%\changes{1.31}{2018-05-09}{added redefinition} +% \begin{macrocode} + \renewcommand{\glstreenamefmt}[1]{\glstreedefaultnamefmt{#1}} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\glstreegroupheaderfmt} +%\changes{1.31}{2018-05-09}{added redefinition} +%This command was only introduced to \sty{glossary-tree} v4.22, so +%it may not be defined. +% \begin{macrocode} + \def\glstreegroupheaderfmt#1{\glstreedefaultnamefmt{#1}} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\glstreenavigationfmt} +%\changes{1.31}{2018-05-09}{added redefinition} +%This command was only introduced to \sty{glossary-tree} v4.22, so +%it may not be defined. +% \begin{macrocode} + \def\glstreenavigationfmt#1{\glstreedefaultnamefmt{#1}} +% \end{macrocode} +%\end{macro} +% \begin{macrocode} +} +{} +% \end{macrocode} % The \glostyle{index} style is redefined so that the space before % the number list isn't hard coded. %\changes{1.21}{2017-11-03}{modified index to remove hard coded \cs{space}} @@ -24682,6 +25326,7 @@ defined}{}% \newcommand*{\glstreechildprelocation}{\glstreeprelocation} % \end{macrocode} %\end{macro} +%Modify the \glostyle{index} style. % \begin{macrocode} \renewglossarystyle{index}{% \renewenvironment{theglossary}% @@ -24697,8 +25342,8 @@ defined}{}% \renewcommand*{\glossentry}[2]{% \item\glsentryitem{##1}% \glstreenamefmt{\glstarget{##1}{\glossentryname{##1}}}% - \ifglshassymbol{##1}{\space(\glossentrysymbol{##1})}{}% - \glstreepredesc \glossentrydesc{##1}\glspostdescription + \glstreesymbol{##1}% + \glstreedesc{##1}% \glstreeprelocation ##2% }% \renewcommand{\subglossentry}[3]{% @@ -24711,8 +25356,8 @@ defined}{}% \subsubitem \fi \glstreenamefmt{\glstarget{##2}{\glossentryname{##2}}}% - \ifglshassymbol{##2}{\space(\glossentrysymbol{##2})}{}% - \glstreechildpredesc\glossentrydesc{##2}\glspostdescription + \glstreechildsymbol{##2}% + \glstreechilddesc{##2}% \glstreechildprelocation ##3% }% \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}% @@ -24766,6 +25411,45 @@ defined}{}% % \begin{macrocode} \ifdef{\@glsstyle@tree} {% +%Provide a command for use with the \glostyle{tree} styles that displays +%the pre-description separator, the +%description and post-description hook. +%\begin{macro}{\glstreedesc} +%\changes{1.31}{2018-05-09}{new} +% \begin{macrocode} + \newcommand{\glstreedesc}[1]{% + \glstreepredesc\glossentrydesc{#1}\glspostdescription + } +% \end{macrocode} +%\end{macro} +%Similarly for the symbol. +%\begin{macro}{\glstreesymbol} +%\changes{1.31}{2018-05-09}{new} +% \begin{macrocode} + \newcommand{\glstreesymbol}[1]{% + \ifglshassymbol{#1}{\space(\glossentrysymbol{#1})}{}% + }% +% \end{macrocode} +%\end{macro} +%And for the child entries: +%\begin{macro}{\glstreechilddesc} +%\changes{1.31}{2018-05-09}{new} +% \begin{macrocode} + \newcommand{\glstreechilddesc}[1]{% + \glstreechildpredesc\glossentrydesc{#1}\glspostdescription + }% +% \end{macrocode} +%\end{macro} +%\begin{macro}{\glstreechildsymbol} +%\changes{1.31}{2018-05-09}{new} +%This just behaves in the same way as the top-level. +% \begin{macrocode} + \newcommand{\glstreechildsymbol}[1]{% + \glstreesymbol{#1}% + }% +% \end{macrocode} +%\end{macro} +% \begin{macrocode} \renewglossarystyle{tree}{% \renewenvironment{theglossary}% {\setlength{\parindent}{0pt}% @@ -24777,8 +25461,8 @@ defined}{}% \hangindent0pt\relax \parindent0pt\relax \glsentryitem{##1}\glstreenamefmt{\glstarget{##1}{\glossentryname{##1}}}% - \ifglshassymbol{##1}{\space(\glossentrysymbol{##1})}{}% - \glstreepredesc\glossentrydesc{##1}\glspostdescription + \glstreesymbol{##1}% + \glstreedesc{##1}% \glstreeprelocation##2\par }% \renewcommand{\subglossentry}[3]{% @@ -24788,8 +25472,8 @@ defined}{}% \glssubentryitem{##2}% \fi \glstreenamefmt{\glstarget{##2}{\glossentryname{##2}}}% - \ifglshassymbol{##2}{\space(\glossentrysymbol{##2})}{}% - \glstreechildpredesc\glossentrydesc{##2}\glspostdescription + \glstreechildsymbol{##2}% + \glstreechilddesc{##2}% \glstreechildprelocation ##3\par }% \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}% @@ -24841,6 +25525,37 @@ defined}{}% % \begin{macrocode} \ifdef{\@glsstyle@treenoname} {% +%Provide a command for use with the \glostyle{treenoname} styles that displays +%the pre-description separator, the +%description and post-description hook. +%\begin{macro}{\glstreenonamedesc} +%\changes{1.31}{2018-05-09}{new} +% \begin{macrocode} + \newcommand{\glstreenonamedesc}[1]{% + \glstreepredesc\glossentrydesc{#1}\glspostdescription + }% +% \end{macrocode} +%\end{macro} +%Similarly for the symbol. +%\begin{macro}{\glstreenonamesymbol} +%\changes{1.31}{2018-05-09}{new} +% \begin{macrocode} + \newcommand{\glstreenonamesymbol}[1]{% + \ifglshassymbol{#1}{\space(\glossentrysymbol{#1})}{}% + }% +% \end{macrocode} +%\end{macro} +%\begin{macro}{\glstreenonamechilddesc} +%\changes{1.31}{2018-05-09}{new} +%The child entry doesn't have the pre-description separator as the +%name isn't displayed. +% \begin{macrocode} + \newcommand{\glstreenonamechilddesc}[1]{% + \glossentrydesc{#1}\glspostdescription + }% +% \end{macrocode} +%\end{macro} +% \begin{macrocode} \renewglossarystyle{treenoname}{% \renewenvironment{theglossary}% {\setlength{\parindent}{0pt}% @@ -24852,8 +25567,8 @@ defined}{}% \hangindent0pt\relax \parindent0pt\relax \glsentryitem{##1}\glstreenamefmt{\glstarget{##1}{\glossentryname{##1}}}% - \ifglshassymbol{##1}{\space(\glossentrysymbol{##1})}{}% - \glstreepredesc\glossentrydesc{##1}\glspostdescription + \glstreenonamesymbol{##1}% + \glstreenonamedesc{##1}% \glstreeprelocation##2\par }% \renewcommand{\subglossentry}[3]{% @@ -24863,7 +25578,8 @@ defined}{}% \glssubentryitem{##2}% \fi \glstarget{##2}{\strut}% - \glossentrydesc{##2}\glspostdescription\glstreechildprelocation##3\par + \glstreenonamechilddesc{##2}% + \glstreechildprelocation##3\par }% \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}% } @@ -26013,7 +26729,7 @@ defined}{}% %\section{Package Initialisation and Options} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossary-bookindex}[2018/04/25 v1.30 (NLCT)] +\ProvidesPackage{glossary-bookindex}[2018/05/09 v1.31 (NLCT)] % \end{macrocode} %Load required packages. % \begin{macrocode} diff --git a/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.ins b/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.ins index 870152f26c4..3f5f25aa8ef 100644 --- a/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.ins +++ b/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.ins @@ -1,4 +1,4 @@ -% glossaries-extra.ins generated using makedtx version 1.2 2018/4/25 15:12 +% glossaries-extra.ins generated using makedtx version 1.2 2018/5/9 22:46 \input docstrip \preamble diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-bib2gls.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-bib2gls.sty index 4264622979c..4b0c1cc3a89 100644 --- a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-bib2gls.sty +++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-bib2gls.sty @@ -39,8 +39,12 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra-bib2gls}[2018/04/25 v1.30 (NLCT)] +\ProvidesPackage{glossaries-extra-bib2gls}[2018/05/09 v1.31 (NLCT)] \newcommand*{\glshex}{\string\u} +\newcommand*{\glscapturedgroup}{\string\$} +\newcommand*{\GlsXtrIfHasNonZeroChildCount}[3]{% + \GlsXtrIfFieldNonZero{childcount}{#1}{#2}{#3}% +} \newcommand*{\glsxtrprovidecommand}{\providecommand} \newcommand*{\glsxtr@wrglossarylocation}[2]{#1} \ifdef\hyperref diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-stylemods.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-stylemods.sty index b2833673969..195583b6bac 100644 --- a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-stylemods.sty +++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-stylemods.sty @@ -39,7 +39,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra-stylemods}[2018/04/25 v1.30 (NLCT)] +\ProvidesPackage{glossaries-extra-stylemods}[2018/05/09 v1.31 (NLCT)] \newcommand*{\@glsxtr@loadstyles}{} \DeclareOption{all}{% \appto\@glsxtr@loadstyles{% @@ -102,6 +102,7 @@ \newcommand{\glslistprelocation}{\glsxtrprelocation} \newcommand{\glslistchildprelocation}{\glslistprelocation} \newcommand{\glslistchildpostlocation}{.} + \newcommand{\glslistdesc}[1]{\glossentrydesc{#1}\glspostdescription} \renewglossarystyle{list}{% \renewenvironment{theglossary}% {\begin{description}}{\end{description}}% @@ -110,11 +111,11 @@ \renewcommand*{\glossentry}[2]{% \item[\glsentryitem{##1}% \glstarget{##1}{\glossentryname{##1}}] - \glossentrydesc{##1}\glspostdescription\glslistprelocation ##2}% + \glslistdesc{##1}\glslistprelocation ##2}% \renewcommand*{\subglossentry}[3]{% \glssubentryitem{##2}% \glstarget{##2}{\strut}\space - \glossentrydesc{##2}\glspostdescription + \glslistdesc{##2}% \glslistchildprelocation ##3\glslistchildpostlocation}% \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}% } @@ -128,11 +129,11 @@ \item[\glsentryitem{##1}% \glstarget{##1}{\glossentryname{##1}}]% \mbox{}\par\nobreak\@afterheading - \glossentrydesc{##1}\glspostdescription\glslistprelocation ##2}% + \glslistdesc{##1}\glslistprelocation ##2}% \renewcommand{\subglossentry}[3]{% \par \glssubentryitem{##2}% - \glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription + \glstarget{##2}{\strut}\glslistdesc{##2}% \glslistchildprelocation ##3}% } } @@ -529,6 +530,14 @@ #1\glsxtrpostdescription} } {} +\ifdef\glstreenamefmt +{ + \newcommand{\glstreedefaultnamefmt}[1]{\textbf{#1}} + \renewcommand{\glstreenamefmt}[1]{\glstreedefaultnamefmt{#1}} + \def\glstreegroupheaderfmt#1{\glstreedefaultnamefmt{#1}} + \def\glstreenavigationfmt#1{\glstreedefaultnamefmt{#1}} +} +{} \ifdef{\@glsstyle@index} { \newcommand*{\glstreeprelocation}{\glsxtrprelocation} @@ -547,8 +556,8 @@ \renewcommand*{\glossentry}[2]{% \item\glsentryitem{##1}% \glstreenamefmt{\glstarget{##1}{\glossentryname{##1}}}% - \ifglshassymbol{##1}{\space(\glossentrysymbol{##1})}{}% - \glstreepredesc \glossentrydesc{##1}\glspostdescription + \glstreesymbol{##1}% + \glstreedesc{##1}% \glstreeprelocation ##2% }% \renewcommand{\subglossentry}[3]{% @@ -561,8 +570,8 @@ \subsubitem \fi \glstreenamefmt{\glstarget{##2}{\glossentryname{##2}}}% - \ifglshassymbol{##2}{\space(\glossentrysymbol{##2})}{}% - \glstreechildpredesc\glossentrydesc{##2}\glspostdescription + \glstreechildsymbol{##2}% + \glstreechilddesc{##2}% \glstreechildprelocation ##3% }% \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}% @@ -598,6 +607,18 @@ {} \ifdef{\@glsstyle@tree} {% + \newcommand{\glstreedesc}[1]{% + \glstreepredesc\glossentrydesc{#1}\glspostdescription + } + \newcommand{\glstreesymbol}[1]{% + \ifglshassymbol{#1}{\space(\glossentrysymbol{#1})}{}% + }% + \newcommand{\glstreechilddesc}[1]{% + \glstreechildpredesc\glossentrydesc{#1}\glspostdescription + }% + \newcommand{\glstreechildsymbol}[1]{% + \glstreesymbol{#1}% + }% \renewglossarystyle{tree}{% \renewenvironment{theglossary}% {\setlength{\parindent}{0pt}% @@ -609,8 +630,8 @@ \hangindent0pt\relax \parindent0pt\relax \glsentryitem{##1}\glstreenamefmt{\glstarget{##1}{\glossentryname{##1}}}% - \ifglshassymbol{##1}{\space(\glossentrysymbol{##1})}{}% - \glstreepredesc\glossentrydesc{##1}\glspostdescription + \glstreesymbol{##1}% + \glstreedesc{##1}% \glstreeprelocation##2\par }% \renewcommand{\subglossentry}[3]{% @@ -620,8 +641,8 @@ \glssubentryitem{##2}% \fi \glstreenamefmt{\glstarget{##2}{\glossentryname{##2}}}% - \ifglshassymbol{##2}{\space(\glossentrysymbol{##2})}{}% - \glstreechildpredesc\glossentrydesc{##2}\glspostdescription + \glstreechildsymbol{##2}% + \glstreechilddesc{##2}% \glstreechildprelocation ##3\par }% \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}% @@ -655,6 +676,15 @@ {} \ifdef{\@glsstyle@treenoname} {% + \newcommand{\glstreenonamedesc}[1]{% + \glstreepredesc\glossentrydesc{#1}\glspostdescription + }% + \newcommand{\glstreenonamesymbol}[1]{% + \ifglshassymbol{#1}{\space(\glossentrysymbol{#1})}{}% + }% + \newcommand{\glstreenonamechilddesc}[1]{% + \glossentrydesc{#1}\glspostdescription + }% \renewglossarystyle{treenoname}{% \renewenvironment{theglossary}% {\setlength{\parindent}{0pt}% @@ -666,8 +696,8 @@ \hangindent0pt\relax \parindent0pt\relax \glsentryitem{##1}\glstreenamefmt{\glstarget{##1}{\glossentryname{##1}}}% - \ifglshassymbol{##1}{\space(\glossentrysymbol{##1})}{}% - \glstreepredesc\glossentrydesc{##1}\glspostdescription + \glstreenonamesymbol{##1}% + \glstreenonamedesc{##1}% \glstreeprelocation##2\par }% \renewcommand{\subglossentry}[3]{% @@ -677,7 +707,8 @@ \glssubentryitem{##2}% \fi \glstarget{##2}{\strut}% - \glossentrydesc{##2}\glspostdescription\glstreechildprelocation##3\par + \glstreenonamechilddesc{##2}% + \glstreechildprelocation##3\par }% \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}% } diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty index bedfc942b13..35d8c1382a1 100644 --- a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty +++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty @@ -39,7 +39,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra}[2018/04/25 v1.30 (NLCT)] +\ProvidesPackage{glossaries-extra}[2018/05/09 v1.31 (NLCT)] \RequirePackage{xkeyval} \RequirePackage{etoolbox} \@ifpackageloaded{glossaries} @@ -337,6 +337,7 @@ \def\printunsrtglossaryunit{\print@op@unsrtglossaryunit}% \def\glsxtrsetaliasnoindex{}% \ifdef\@gls@setupsort@none{\@gls@setupsort@none}{}% + \def\glsxtrNoGlossaryWarning{\@glsxtr@record@noglossarywarning}% \RequirePackage{glossaries-extra-bib2gls}% }% \or @@ -920,6 +921,25 @@ \ifdefempty\glscurrentfieldvalue{#4}{#3}% }% } +\newcommand{\GlsXtrIfFieldNonZero}[4]{% + \GlsXtrIfFieldCmpNum{#1}{#2}{=}{0}{#4}{#3}% +} +\newcommand{\GlsXtrIfFieldEqNum}[5]{% + \GlsXtrIfFieldCmpNum{#1}{#2}{=}{#3}{#4}{#5}% +} +\newcommand{\GlsXtrIfFieldCmpNum}[6]{% + {% + \letcs{\glscurrentfieldvalue}{glo@\glsdetoklabel{#2}@#1}% + \ifundef\glscurrentfieldvalue + {\def\glscurrentfieldvalue{0}}% + {% + \ifdefempty\glscurrentfieldvalue + {\def\glscurrentfieldvalue{0}}% + {}% + }% + \ifnum\glscurrentfieldvalue#3#4\relax #5\else #6\fi + }% +} \newcommand{\GlsXtrIfFieldUndef}[2]{% \ifcsundef{glo@\glsdetoklabel{#2}@#1}% } @@ -967,15 +987,51 @@ }% {#5}% } -\ifglsentrycounter - \newcommand*{\glsxtrpageref}[1]{\pageref{glsentry-\glsdetoklabel{#1}}} -\else - \ifglssubentrycounter - \newcommand*{\glsxtrpageref}[1]{\pageref{glsentry-\glsdetoklabel{#1}}} - \else - \newcommand*{\glsxtrpageref}[1]{\gls{#1}} - \fi -\fi +\newrobustcmd*{\GlsXtrIfFieldEqXpStr}[5]{% + \glsxtrifhasfield{#1}{#2}% + {% + \protected@edef\@gls@tmp{#3}% + \ifdefequal{\glscurrentfieldvalue}{\@gls@tmp}{#4}{#5}% + }% + {#5}% +} +\newrobustcmd*{\GlsXtrIfXpFieldEqXpStr}[5]{% + \glsxtrifhasfield{#1}{#2}% + {% + \protected@edef\@gls@tmp{\glscurrentfieldvalue}% + \let\glscurrentfieldvalue\@gls@tmp + \protected@edef\@gls@tmp{#3}% + \ifdefequal{\glscurrentfieldvalue}{\@gls@tmp}{#4}{#5}% + }% + {#5}% +} +\ifdef\GlsEntryCounterLabelPrefix +{% + \newcommand*{\glsxtrpageref}[1]{% + \ifglsentrycounter + \pageref{\GlsEntryCounterLabelPrefix\glsdetoklabel{#1}}% + \else + \ifglssubentrycounter + \pageref{\GlsEntryCounterLabelPrefix\glsdetoklabel{#1}}% + \else + \gls{#1}% + \fi + \fi + } +}% +{% + \newcommand*{\glsxtrpageref}[1]{% + \ifglsentrycounter + \pageref{glsentry-\glsdetoklabel{#1}}% + \else + \ifglssubentrycounter + \pageref{glsentry-\glsdetoklabel{#1}}% + \else + \gls{#1}% + \fi + \fi + } +}% \newcommand{\apptoglossarypreamble}[2][\glsdefaulttype]{% \ifcsdef{glolist@#1}% {% @@ -1887,6 +1943,7 @@ \PackageError{glossaries-extra}{Unknown control sequence name `#1'}{}% }% } +\define@key{glslink}{prefix}{\def\glolinkprefix{#1}} \newcommand*{\glsxtrinithyperoutside}{% \glsifattribute{\glslabel}{hyperoutside}{false}% {% @@ -1911,6 +1968,7 @@ \edef\@gls@counter{\csname glo@\glslabel @counter\endcsname}% \edef\glstype{\csname glo@\glslabel @type\endcsname}% \let\org@ifKV@glslink@hyper\ifKV@glslink@hyper + \let\@glsxtr@org@glolinkprefix\glolinkprefix \let\@glsxtr@local@textformat\relax \def\@glsxtr@thevalue{}% \def\@glsxtr@theHvalue{\@glsxtr@thevalue}% @@ -1973,6 +2031,7 @@ \else \@do@wrglossary{#2}% \fi + \let\glolinkprefix\@glsxtr@org@glolinkprefix \let\ifKV@glslink@hyper\org@ifKV@glslink@hyper } \define@key{glossadd}{thevalue}{\def\@glsxtr@thevalue{#1}} @@ -2008,6 +2067,9 @@ }% }% } +\newrobustcmd{\glsaddeach}[2][]{% + \@for\@gls@thislabel:=#2\do{\glsadd[#1]{\@gls@thislabel}}% +} \newcommand*{\@glsxtr@field@linkdefs}{% \let\glsxtrifwasfirstuse\@secondoftwo \let\glsifplural\@secondoftwo @@ -3089,13 +3151,25 @@ \let\@glsunset\@glsxtr@unset \newcommand*{\glsxtrpostunset}[1]{} \newcommand*{\GlsXtrStartUnsetBuffering}{% + \@ifstar\s@GlsXtrStartUnsetBuffering\@GlsXtrStartUnsetBuffering +} +\newcommand*{\@GlsXtrStartUnsetBuffering}{% \let\@glsxtr@org@unset@buffer\@glsxtr@unset@buffer \def\@glsxtr@unset@buffer{}% \let\@glsunset\@glsxtrbuffer@unset } +\newcommand*{\s@GlsXtrStartUnsetBuffering}{% + \let\@glsxtr@org@unset@buffer\@glsxtr@unset@buffer + \def\@glsxtr@unset@buffer{}% + \let\@glsunset\@glsxtrbuffer@nodup@unset +} \newcommand*{\@glsxtrbuffer@unset}[1]{% \listxadd\@glsxtr@unset@buffer{#1}% } +\newcommand*{\@glsxtrbuffer@nodup@unset}[1]{% + \expandafter\ifinlist\expandafter{#1}{\@glsxtr@unset@buffer}{}% + {\listxadd\@glsxtr@unset@buffer{#1}}% +} \newcommand*{\GlsXtrStopUnsetBuffering}{% \@ifstar\s@GlsXtrStopUnsetBuffering\@GlsXtrStopUnsetBuffering } @@ -3108,6 +3182,9 @@ \forlistloop\@glslocalunset\@glsxtr@unset@buffer \let\@glsunset\@glsxtr@unset } +\newcommand*{\GlsXtrForUnsetBufferedList}[1]{% + \forlistloop#1\@glsxtr@unset@buffer +} \renewcommand*{\@glslocalunset}[1]{% \@@glslocalunset{#1}% \glsxtrpostlocalunset{#1}% @@ -3123,6 +3200,28 @@ \glsxtrpostlocalreset{#1}% }% \newcommand*{\glsxtrpostlocalreset}[1]{} +\newcommand*{\glslocalreseteach}[1]{% + \gls@ifnotmeasuring + {% + \@for\@gls@thislabel:=#1\do{% + \glsdoifexists{\@gls@thislabel}% + {% + \@glslocalreset{\@gls@thislabel}% + }% + }% + }% +} +\newcommand*{\glslocalunseteach}[1]{% + \gls@ifnotmeasuring + {% + \@for\@gls@thislabel:=#1\do{% + \glsdoifexists{\@gls@thislabel}% + {% + \@glslocalunset{\@gls@thislabel}% + }% + }% + }% +} \newcommand*{\GlsXtrEnableEntryCounting}[2]{% \glsenableentrycount \renewcommand*{\gls}{\cgls}% @@ -3909,7 +4008,7 @@ {true,false}[true]% {% \ifcase\@glsxtr@printglossnr - \let\@glstarget\glsdohypertarget + \def\@glstarget{\glsdohypertarget}% \else \let\@glstarget\@secondoftwo \fi @@ -3918,10 +4017,16 @@ \define@key{printgloss}{targetnameprefix}{% \renewcommand{\@glsxtrhypernameprefix}{#1}% } +\define@key{printgloss}{prefix}{% + \renewcommand{\glolinkprefix}{#1}% +} \let\@glsxtr@org@glsdohypertarget\glsdohypertarget \renewcommand{\glsdohypertarget}[2]{% \@glsxtr@org@glsdohypertarget{\@glsxtrhypernameprefix#1}{#2}% } +\ifx\@glstarget\@glsxtr@org@glsdohypertarget + \def\@glstarget{\glsdohypertarget}% +\fi \newcommand*{\glsxtr@makeglossaries}[1]{} \def\@glsxtr@gettype#1,type=#2,#3\@end@glsxtr@gettype{% \def\@glo@type{#2}% @@ -4304,6 +4409,12 @@ Then rerun \LaTeX\ on this document.% } +\newcommand{\GlsXtrRecordWarning}[1]{% + \texttt{\string\printglossary} doesn't work + with the \texttt{record=only} package option + use\par\texttt{\string\printunsrtglossary[type=#1]}\par + instead (or change the package option).% +} \newcommand{\GlsXtrNoGlsWarningTail}{% This message will be removed once the problem has been fixed.% } @@ -4368,6 +4479,15 @@ \par \GlsXtrNoGlsWarningTail } +\newcommand*{\@glsxtr@record@noglossarywarning}[1]{% + \GlossariesExtraWarning{\string\printglossary\space doesn't work\MessageBreak + with record=only package option\MessageBreak(use + \string\printunsrtglossary[type=#1])\MessageBreak + instead (or change the package option)}% + \glossarysection[\glossarytoctitle]{\glossarytitle} + \GlsXtrRecordWarning{#1} + \GlsXtrNoGlsWarningTail +} \newcommand*{\glsxtrresourcefile}[2][]{% \disable@keys{glossaries-extra.sty}{record}% \glsxtr@writefields @@ -4482,9 +4602,9 @@ {% \begingroup \edef\glscurrententrylabel{\glsdetoklabel{#1}}% - \edef\currentglossary{\glsentrytype{\glscurrententrylabel}}% + \edef\currentglossary{\GlsXtrStandaloneGlossaryType}% \ifglshasparent{#1}% - {\glssubentryitem{#1}}% + {\GlsXtrStandaloneSubEntryItem{#1}}% {\glsentryitem{#1}}% \glstarget{#1}{\glossentryname{#1}}% \endgroup @@ -4493,6 +4613,10 @@ {\glsentryname{#1}}% {\glsxtrheadname{#1}}% } +\newcommand{\GlsXtrStandaloneGlossaryType}{\glsentrytype{\glscurrententrylabel}} +\newcommand*{\GlsXtrStandaloneSubEntryItem}[1]{% + \GlsXtrIfFieldEqNum{level}{#1}{1}{\glssubentryitem{#1}}{}% +} \newcommand*{\glsxtrglossentryother}[3]{% \ifstrempty{#1}% {% @@ -4524,9 +4648,9 @@ {% \begingroup \edef\glscurrententrylabel{\glsdetoklabel{#1}}% - \edef\currentglossary{\glsentrytype{\glscurrententrylabel}}% + \edef\currentglossary{\GlsXtrStandaloneGlossaryType}% \ifglshasparent{#1}% - {\glssubentryitem{#1}}% + {\GlsXtrStandaloneSubEntryItem{#1}}% {\glsentryitem{#1}}% \glstarget{#1}{\glossentrynameother{#1}{#2}}% \endgroup @@ -5274,6 +5398,124 @@ defined}{}% }% {#1}% } + \define@key{glsxtrabbrv}{access}{% + \def\@gls@nameaccess{#1}% + } + \define@key{glsxtrabbrv}{textaccess}{% + \def\@gls@textaccess{#1}% + } + \define@key{glsxtrabbrv}{firstaccess}{% + \def\@gls@firstaccess{#1}% + } + \define@key{glsxtrabbrv}{shortaccess}{% + \def\@gls@shortaccess{#1}% + } + \define@key{glsxtrabbrv}{shortpluralaccess}{% + \def\@gls@shortaccesspl{#1}% + } + \newcommand*{\@gls@initaccesskeys}{% + \def\@gls@nameaccess{}% + \def\@gls@textaccess{}% + \def\@gls@firstaccess{}% + \def\@gls@shortaccess{}% + \def\@gls@shortaccesspl{}% + } +\newcommand*{\@gls@ifaccessattribute@set}[3]{% + \glsifcategoryattribute{\glscategorylabel}{access#1}{true}% + {#2}% + {% + \glsifcategoryattribute{\glscategorylabel}{access#1}{false}% + {#3}% + {% + \glsifcategoryattribute{\glscategorylabel}{#1}{true}% + {#2}% + {#3}% + }% + }% +} + \newcommand{\@gls@setup@default@short@access}[1]{% + \ifdefempty\@gls@shortaccess + {% + \glsifcategoryattribute{\glscategorylabel}{accessinsertdots}{true}% + {% + \@glsxtr@insertdots\@gls@shortaccess{#1}% + \eappto\ExtraCustomAbbreviationFields{% + shortaccess={\expandonce\@gls@shortaccess},}% + }% + {}% + }% + {}% + \ifdefempty\@gls@shortaccess + {}% + {% + \ifdefempty\@gls@shortaccesspl + {% + \@gls@ifaccessattribute@set{aposplural}% + {% + \expandafter\def\expandafter\@gls@shortaccesspl\expandafter{% + \@gls@shortaccess'\abbrvpluralsuffix}% + }% + {% + \@gls@ifaccessattribute@set{noshortplural}% + {% + \let\@gls@shortaccesspl\@gls@shortaccess + }% + {% + \expandafter\def\expandafter\@gls@shortaccesspl\expandafter{% + \@gls@shortaccess\abbrvpluralsuffix}% + }% + }% + \eappto\ExtraCustomAbbreviationFields{% + shortpluralaccess={\expandonce\@gls@shortaccesspl},}% + }% + {}% + }% + \ifdefempty\@gls@nameaccess + {% + \glsifcategoryattribute{\glscategorylabel}{nameshortaccess}{true}% + {% + \ifdefempty\@gls@shortaccess + {}% + {% + \eappto\ExtraCustomAbbreviationFields{% + access={\expandonce\@gls@shortaccess},% + }% + }% + }% + {}% + }% + {}% + \ifdefempty\@gls@textaccess + {% + \glsifcategoryattribute{\glscategorylabel}{textshortaccess}{true}% + {% + \ifdefempty\@gls@shortaccess + {}% + {% + \eappto\ExtraCustomAbbreviationFields{% + textaccess={\expandonce\@gls@shortaccess},% + }% + }% + }% + {}% + }% + {}% + \ifdefempty\@gls@firstaccess + {% + \glsifcategoryattribute{\glscategorylabel}{firstshortaccess}{true}% + {% + \ifdefempty\@gls@shortaccess + {}% + {% + \eappto\ExtraCustomAbbreviationFields{% + firstaccess={\expandonce\@gls@shortaccess},% + }% + }% + }% + {}% + }% + {}% + } } { \newcommand*{\glsaccessname}[1]{\glsentryname{#1}} @@ -5328,6 +5570,8 @@ defined}{}% \newcommand*{\Glsaccesslongpl}[1]{\Glsentrylongpl{#1}} \newcommand*{\GLSaccesslongpl}[1]{% \protect\mfirstucMakeUppercase{\glsentrylongpl{#1}}} + \newcommand*{\@gls@initaccesskeys}{} + \newcommand{\@gls@setup@default@short@access}[1]{}% } \glsaddstoragekey{category}{general}{\glscategory} \newcommand{\glsifcategory}[4]{% @@ -5697,6 +5941,9 @@ defined}{}% \csuse{glsxtrpostname\glscategory{#1}}% } \newcommand*{\glsextrapostnamehook}[1]{}% +\newcommand*{\glsdefpostname}[2]{% + \csdef{glsxtrpostname#1}{#2}% +} \@ifpackageloaded{glossaries-accsupp} { \newcommand*{\glsxtr@setaccessdisplay}[1]{% @@ -6047,6 +6294,9 @@ defined}{}% \newcommand*{\glsxtrpostdescterm}{} \newcommand*{\glsxtrpostdescacronym}{} \newcommand*{\glsxtrpostdescabbreviation}{} +\newcommand*{\glsdefpostdesc}[2]{% + \csdef{glsxtrpostdesc#1}{#2}% +} \renewcommand*{\glspostlinkhook}{% \ifglsentryexists{\glslabel}{\glsxtrpostlinkhook}{}% } @@ -6062,6 +6312,12 @@ defined}{}% \newcommand*{\glsxtrpostlink}{% \csuse{glsxtrpostlink\glscategory{\glslabel}}% } +\newcommand*{\glsdefpostlink}[2]{% + \ifthenelse{\equal{#1}{}}% + {\PackageError{glossaries-extra} + {Invalid empty category label in \string\glsdefpostlink}{}}% + {\csdef{glsxtrpostlink#1}{#2}}% +} \newcommand*{\glsxtrpostlinkendsentence}{% \ifcsdef{glsxtrpostlink\glscategory{\glslabel}} {% @@ -6084,6 +6340,19 @@ defined}{}% }% {}% } +\newcommand*{\glsxtrpostlinkAddSymbolDescOnFirstUse}{% + \glsxtrifwasfirstuse + {% + \space\glsxtrparen + {% + \ifglshassymbol{\glslabel}% + {\glsaccesssymbol{\glslabel}, }% + {}% + \glsaccessdesc{\glslabel}% + }% + }% + {}% +} \newcommand*{\glsxtrdiscardperiod}[3]{% \glsxtrifwasfirstuse {% @@ -6219,6 +6488,8 @@ defined}{}% \glslongtok{#4}% \def\glsxtrorgshort{#3}% \def\glsxtrorglong{#4}% + \def\ExtraCustomAbbreviationFields{}% + \@gls@initaccesskeys \def\glscategorylabel{abbreviation}% \glsxtr@applyabbrvstyle{\@glsabbrv@current@abbreviation}% \setkeys*{glsxtrabbrv}[shortplural,longplural]{#1}% @@ -6274,6 +6545,7 @@ defined}{}% \fi \expandafter\glsshortpltok\expandafter{\@gls@shortpl}% \expandafter\glslongpltok\expandafter{\@gls@longpl}% + \@gls@setup@default@short@access{#3}% \newabbreviationhook \protected@edef\@do@newglossaryentry{% \noexpand\newglossaryentry{\the\glslabeltok}% @@ -6286,6 +6558,7 @@ defined}{}% longplural={\the\glslongpltok},% name={\the\glsshorttok},% \CustomAbbreviationFields,% + \ExtraCustomAbbreviationFields \the\glskeylisttok }% }% @@ -10674,6 +10947,9 @@ defined}{}% \let\markboth\@glsxtr@org@markboth \let\@starttoc\@glsxtr@org@@starttoc } +\newcommand*{\glsxtrRevertTocMarks}{% + \let\@starttoc\@glsxtr@org@@starttoc +} \newcommand*{\glsxtrifinmark}[2]{#2} \newrobustcmd*{\@glsxtrinmark}{% \let\glsxtrifinmark\@firstoftwo diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex.sty index da839628da6..8c3d5bd66f2 100644 --- a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex.sty +++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex.sty @@ -39,7 +39,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossary-bookindex}[2018/04/25 v1.30 (NLCT)] +\ProvidesPackage{glossary-bookindex}[2018/05/09 v1.31 (NLCT)] \RequirePackage{multicol} \RequirePackage{glossary-tree} \newcommand{\glsxtrbookindexcols}{2} -- cgit v1.2.3