From 8e743c86b6872f30b7a35c72aa944455157d4b3f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 18 Apr 2017 21:31:32 +0000 Subject: glossaries-extra (18apr17) git-svn-id: svn://tug.org/texlive/trunk@43913 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/doc/latex/glossaries-extra/CHANGES | 22 + .../texmf-dist/doc/latex/glossaries-extra/README | 4 +- .../glossaries-extra/glossaries-extra-code.pdf | Bin 766595 -> 782720 bytes .../glossaries-extra/glossaries-extra-manual.html | 6029 +++++++++++--------- .../glossaries-extra/glossaries-extra-manual.pdf | Bin 668024 -> 677824 bytes .../glossaries-extra/glossaries-extra-manual.tex | 188 +- .../doc/latex/glossaries-extra/sample-abbrv.pdf | Bin 44749 -> 44761 bytes .../doc/latex/glossaries-extra/sample-accsupp.pdf | Bin 80745 -> 80757 bytes .../latex/glossaries-extra/sample-acronym-desc.pdf | Bin 50358 -> 50368 bytes .../doc/latex/glossaries-extra/sample-acronym.pdf | Bin 36734 -> 36745 bytes .../doc/latex/glossaries-extra/sample-alias.pdf | Bin 42449 -> 43611 bytes .../doc/latex/glossaries-extra/sample-alias.tex | 11 + .../latex/glossaries-extra/sample-altmodifier.pdf | Bin 35296 -> 35308 bytes .../glossaries-extra/sample-alttree-marginpar.pdf | Bin 91049 -> 91061 bytes .../latex/glossaries-extra/sample-alttree-sym.pdf | Bin 69519 -> 69532 bytes .../doc/latex/glossaries-extra/sample-alttree.pdf | Bin 54855 -> 54866 bytes .../glossaries-extra/sample-autoindex-hyp.pdf | Bin 141989 -> 141903 bytes .../latex/glossaries-extra/sample-autoindex.pdf | Bin 147020 -> 147022 bytes .../doc/latex/glossaries-extra/sample-crossref.pdf | Bin 40642 -> 41294 bytes .../doc/latex/glossaries-extra/sample-crossref.tex | 1 + .../latex/glossaries-extra/sample-crossref2.pdf | Bin 41305 -> 41319 bytes .../doc/latex/glossaries-extra/sample-docdef.pdf | Bin 45245 -> 45257 bytes .../latex/glossaries-extra/sample-entrycount.pdf | Bin 54610 -> 54623 bytes .../doc/latex/glossaries-extra/sample-external.pdf | Bin 55773 -> 55786 bytes .../doc/latex/glossaries-extra/sample-fmt.pdf | Bin 75259 -> 75272 bytes .../doc/latex/glossaries-extra/sample-footnote.pdf | Bin 63220 -> 63232 bytes .../doc/latex/glossaries-extra/sample-header.pdf | Bin 125189 -> 125199 bytes .../latex/glossaries-extra/sample-indexhook.pdf | Bin 42711 -> 42722 bytes .../latex/glossaries-extra/sample-initialisms.pdf | Bin 81582 -> 81591 bytes .../glossaries-extra/sample-mixed-abbrv-styles.pdf | Bin 57809 -> 57823 bytes .../latex/glossaries-extra/sample-mixedsort.pdf | Bin 45141 -> 45154 bytes .../doc/latex/glossaries-extra/sample-mixture.pdf | Bin 159841 -> 159839 bytes .../latex/glossaries-extra/sample-name-font.pdf | Bin 202090 -> 202102 bytes .../doc/latex/glossaries-extra/sample-nested.pdf | Bin 67724 -> 67736 bytes .../sample-noidx-restricteddocdefs.pdf | Bin 47572 -> 47582 bytes .../doc/latex/glossaries-extra/sample-onelink.pdf | Bin 44514 -> 44527 bytes .../glossaries-extra/sample-onthefly-utf8.pdf | Bin 106058 -> 106071 bytes .../glossaries-extra/sample-onthefly-xetex.pdf | Bin 19853 -> 19858 bytes .../doc/latex/glossaries-extra/sample-onthefly.pdf | Bin 43469 -> 43481 bytes .../doc/latex/glossaries-extra/sample-pages.pdf | Bin 38788 -> 38801 bytes .../doc/latex/glossaries-extra/sample-postdot.pdf | Bin 37051 -> 37063 bytes .../doc/latex/glossaries-extra/sample-postlink.pdf | Bin 67877 -> 67889 bytes .../doc/latex/glossaries-extra/sample-prefix.pdf | Bin 33107 -> 33119 bytes .../doc/latex/glossaries-extra/sample-record.pdf | Bin 49653 -> 49665 bytes .../glossaries-extra/sample-restricteddocdefs.pdf | Bin 47883 -> 47895 bytes .../latex/glossaries-extra/sample-suppl-hyp.pdf | Bin 0 -> 34944 bytes .../latex/glossaries-extra/sample-suppl-hyp.tex | 25 + .../glossaries-extra/sample-suppl-main-hyp.pdf | Bin 0 -> 32971 bytes .../glossaries-extra/sample-suppl-main-hyp.tex | 24 + .../latex/glossaries-extra/sample-suppl-main.pdf | Bin 0 -> 31607 bytes .../latex/glossaries-extra/sample-suppl-main.tex | 18 + .../doc/latex/glossaries-extra/sample-suppl.pdf | Bin 0 -> 13423 bytes .../doc/latex/glossaries-extra/sample-suppl.tex | 14 + .../doc/latex/glossaries-extra/sample-trans.pdf | Bin 49443 -> 49455 bytes .../doc/latex/glossaries-extra/sample-undef.pdf | Bin 33219 -> 33231 bytes .../glossaries-extra/sample-unitentrycount.pdf | Bin 61040 -> 61051 bytes .../doc/latex/glossaries-extra/sample.pdf | Bin 45734 -> 45747 bytes .../latex/glossaries-extra/glossaries-extra.dtx | 458 +- .../latex/glossaries-extra/glossaries-extra.ins | 4 +- .../glossaries-extra-stylemods.sty | 4 +- .../latex/glossaries-extra/glossaries-extra.sty | 259 +- 61 files changed, 4134 insertions(+), 2927 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-hyp.pdf create mode 100644 Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-hyp.tex create mode 100644 Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main-hyp.pdf create mode 100644 Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main-hyp.tex create mode 100644 Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main.pdf create mode 100644 Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main.tex create mode 100644 Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl.pdf create mode 100644 Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl.tex diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/CHANGES b/Master/texmf-dist/doc/latex/glossaries-extra/CHANGES index dc7dbe20312..df5dbec12b0 100644 --- a/Master/texmf-dist/doc/latex/glossaries-extra/CHANGES +++ b/Master/texmf-dist/doc/latex/glossaries-extra/CHANGES @@ -1,3 +1,25 @@ +1.14 (2017-04-18): + + * New keys for \glsadd: thevalue and theHvalue + + * New key 'wrgloss' for \gls, \glstext etc and associated + commands: + \glsxtrinitwrgloss + \ifglsxtrinitwrglossbefore + \glsxtrinitwrglossbeforetrue + \glsxtrinitwrglossbeforefalse + + * New command: \glsxtrlocationhyperlink + + * New attribute checks: externallocation, wrgloss + + * Bug fix: "incorrect alias target name when using \glshyperlink + (and therefore also \glsseeformat)" + http://www.dickimaw-books.com/cgi-bin/bugtracker.cgi?action=view&key=120 + + * Bug fix: corrected assignment of \cGls in \glsenableentrycount + and \glsenableentryunitcount + 1.13 (2017-02-07): * Fixed bug in \glsdisp that caused an infinite loop. diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/README b/Master/texmf-dist/doc/latex/glossaries-extra/README index e3b6cccfee6..4de1f396fcc 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.13 +LaTeX Package : glossaries-extra v1.14 -Last Modified : 2017-02-07 +Last Modified : 2017-04-18 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 037f6adb64f..6dd68c9338c 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 6c17505a5cb..86d32ef2be4 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 @@ -202,22 +202,22 @@ a span.HoLogo-TeX span.HoLogo-e{text-decoration:none;} -

-

+

-

+

-

-

glossaries-extra.sty v1.13: an extension to the +

+

glossaries-extra.sty v1.14: an extension to the glossaries package

@@ -240,22 +240,22 @@ class="td11">http://www.dickimaw-books.com/
-

2017-02-07

+

2017-04-18

-

+

-

-

+

Abstract

-

The

The glossaries-extra package is an extension to the glossaries package, providing additional features. Some of the features provided by this package are only available @@ -268,7 +268,7 @@ class="cmss-10">glossaries package.

-

Since

Since glossaries-extra internally loads the glossaries package, you also need to have EX distribution? or Updating TEX on Linux.)
-

-

Additional resources:

+

+

Additional resources:

  • The glossaries-extra documented code 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 @@ -433,10 +433,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 @@ -446,7 +446,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: @@ -528,7 +528,7 @@ Commands and Styles).  
    \usepackage[toc,nopostdot]{glossaries}  
    \usepackage{glossaries-extra}

    -

    +

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

This is like: +

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

+

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

    This is like: +

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

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

    This is like: +

    This is like: @@ -593,19 +593,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: @@ -656,7 +656,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 @@ -712,13 +712,13 @@ class="cmss-10">nomain\printglossaries  
    \end{document} -

    -

    +

    +

    -

    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:

    @@ -754,7 +754,7 @@ class="cmss-10">glossaries-accsupp

    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 through glossaries). You can switch this to a warning message (and ?? appearing in the text) with undefaction=warn. -

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

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

    +

    record§9 bib2gls: Managing Reference Databases). -

    The option may only be set in the preamble. -

    The

    The option may only be set in the preamble. +

    The record=off option switches off the recording, as per the default behaviour. It implements undefaction=error. -

    The other values switch on the recording and also

    The other values switch on the recording and also undefaction=warn, but \makeglossaries or \makenoidxglossaries has been used) whereas record=alsoindex will both record and index. -

    With the recording on, any of the commands that would typically index the + id="dx1-4025"> will both record and index. Note that record=only will prevent + the see from automatically implementing \glssee. (bib2gls deals with the see + field.) You may explicitly use \glssee in the document, but bib2gls + + + + will ignore the cross-reference if the see field was already set for that + entry. +

    With the recording on, any of the commands that would typically index the entry (such as \gls, \glstext or \glsadd) will add a \glsxtr@record entry - - - to the .aux file. bib2gls can then read these lines to find out which entries + id="dx1-4035"> can then read these lines to find out which entries have been used. (Remember that commands like \glsentryname don’t index, so any use of these commands won’t add a corresponding bib2gls: Managing Reference Databases

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

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

    - - - -

    The

    The glossaries package allows \newglossaryentry within the document + id="dx1-4054"> environment (when used with makeindex or xindy) but the user manual warns + id="dx1-4056">makeindex or xindy) but the user manual warns against this usage. By default the glossaries-extra package prohibits this, only allowing definitions within the preamble. If you are really determined to define entries in the document environment, despite all the + id="dx1-4058"> environment, despite all the associated drawbacks, you can restore this with docdef=true. Note that this + id="dx1-4060">. Note that this doesn’t change the prohibitions that the glossaries package has in certain circumstances (for example, when using “option 1”). See the glossaries user manual for further details. A better option if document definitions are required is docdef=restricted. Only use . Only use docdef=true if document definitions + id="dx1-4062"> 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 On-the-Fly Document Definitions

    Note that

    Note that bib2gls can automatically find dependent entries when it + id="dx1-4069"> can automatically find dependent entries when it parses the .bib source file. The record option automatically implements + id="dx1-4070"> option automatically implements indexcrossrefs=false. + id="dx1-4071">.

    abbreviations
    This option has no value and can’t be cancelled. If used, it will automatically create a new glossary with the label abbreviations and redefines \glsxtrabbrvtype to this label. In addition, it defines a shortcut command -



    \printabbreviations  \printabbreviations[options]

    -

    - which is equivalent to

    +

    + which is equivalent to

    \printglossary[type=\glsxtrabbrvtype,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 babel hasn’t been loaded or hasn’t been loaded or \acronymname if babel has been loaded. However, if you’re using has been loaded. However, if you’re using babel it’s likely you + id="dx1-4077"> it’s likely you will need to change this. (See §13 Multi-Lingual Support for further details.) -

    If you don’t use the

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

    -

    If the

    +

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

    \renewcommand*{\acronymtype}{main}
    -

    -

    Note that there are no analogous options to the

    +

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

    symbols
    This is passed to glossaries but will additionally define -



    \glsxtrnewsymbol  \glsxtrnewsymbol[options]{}{symbol}

    -

    +

    which is equivalent to

    }
    Note that the sort key is set to the ⟨ key is set to the ⟨label⟩ not the ⟨symbol⟩ as the symbol will likely contain commands.
    numbers
    This is passed to glossaries but will additionally define -



    \glsxtrnewnumber  \glsxtrnewnumber[options]{number}

    -

    +

    which is equivalent to

    }
    shortcuts
    Unlike the glossaries package option of the same name, this option isn’t boolean but has multiple values: @@ -1250,18 +1273,18 @@ class="cmss-10">glossaries package option of the same name, this option i
    • shortcuts=acronyms (or (or shortcuts=acro): set the shortcuts provided + id="dx1-4092">): set the shortcuts provided by the glossaries package for acronyms (such as \ac).
    • shortcuts=abbreviations (or (or shortcuts=abbr): + id="dx1-4094">): set the abbreviation shortcuts provided by glossaries-extra. (See glossaries package.
    • shortcuts=other: set the “other” shortcut commands, but not the shortcut + id="dx1-4095">: set the “other” shortcut commands, but not the shortcut commands for abbreviations or the acronym shortcuts provided by glossaries. The “other” shortcuts are:
      • \newentry equivalent to equivalent to \newglossaryentry + id="dx1-4097">
      • \newsym equivalent to equivalent to \glsxtrnewsymbol (see the (see the symbols + id="dx1-4100"> option).
      • \newnum equivalent to equivalent to \glsxtrnewnumber (see the (see the numbers + id="dx1-4103"> option).
    • shortcuts=all (or (or shortcuts=true): define all the shortcut commands. + id="dx1-4105">): define all the shortcut commands.
    • shortcuts=none (or (or shortcuts=false): don’t define any of the shortcut + id="dx1-4107">): don’t define any of the shortcut commands (default).
    -

    Note that multiple invocations of the

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

    -

    After the

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



    \glossariesextrasetup  \glossariesextrasetup{options}

    -

    +

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

    -

    -

    +

    Top

    2. Modifications to Existing Commands and Styles

    -

    The commands used by

    The commands used by glossaries to automatically produce an error if an entry is undefined (such as \glsdoifexists\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, \glsdisablehyper this doesn’t switch off hyperlinks any cross-references within the glossary won’t be affected. This is a way of avoiding duplicate target warnings if a glossary needs to be displayed multiple times. -

    The

    The \newglossaryentry command has two new keys:

    -

    The

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

    \leavevmode\unskip\nopostdesc
    -

    at the end of the description field. -


    at the end of the description field. +


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

    -

    +

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

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

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



    \glsxtrpostlongdescription  \glsxtrpostlongdescription

    -

    +

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

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

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

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

    The unstarred version also alters the base

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

    Note that this modified unstarred version doesn’t append

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

    The

    The \newterm command (defined through the index§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 @@ -1523,20 +1546,20 @@ 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. -

    It should then be possible to use

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

    If you use the optional argument ⟨

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

    -

    You will need at least version 2.20 of

    +

    You will need at least version 2.20 of makeglossaries or at least version 1.3 of @@ -1554,151 +1577,338 @@ class="cmtt-10">]. Alternatively, use the class="cmss-10">automake option.

    -

    Top

    2.1 Entry Indexing

    -

    The glossaries-extra package provides an extra key for commands like

    The glossaries-extra package provides extra keys for commands like \gls and \glstext called 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 by glossaries, -as the first use might not be the most pertinent use. (If you want to apply +class="cmtt-10">\glstext: +

    +noindex
    This is a boolean key. If true, this suppresses the indexing. (That is, -\gls or whatever from adding a line to the external glossary + file.) This is more useful than the indexonlyfirst to selected entries, rather than all of them, you can use the 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 + can use the indexonlyfirst -attribute, see attribute, see §5 Categories for further details.) Note that the Categories for further details.) + Note that the noindex key isn’t -available for key isn’t available for \glsadd (and \glsaddall) since the whole purpose of that command is -to index an entry. -

    There is a new hook that’s used each time indexing information is written to the + id="dx1-6008">) + 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 + default, commands that both index and display link text (such as \gls, + \glstext and \glslink), perform the indexing before the link text as the + indexing creates a whatsit that can cause problems if it occurs after the + link text. However, it may be that in some cases (such as long phrases) you + may actually want the indexing performed after the link text. In this case + you can use wrgloss=after for specific instances. Note that this option + doesn’t have an effect if the indexing has been suppressed through other + settings (such as noindex). +

    The default value is set up using +


    \glsxtrinitwrgloss  \glsxtrinitwrgloss

    +

    + which is defined as: + + + +

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

    This sets the conditional +


    \ifglsxtrinitwrglossbefore  \ifglsxtrinitwrgloss

    +

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

    This means you can set the wrgloss 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 \GlsXtrSetDefaultGlsOpts will override + \glsxtrinitwrgloss.) +

    +
    +

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

    The value of the

    As from version 1.14, there are two new keys for \glsadd: thevalue and +theHvalue. These keys are designed for manually adding explicit locations +rather than obtaining the value from the associated counter. (If you want an +automated method, you might want to investigate bib2gls.) This is intended +primarily for adding locations in supplementary material that can’t otherwise +be picked up by makeindex or xindy. They therefore aren’t available for +commands like \gls or \glslink. Remember that the value will still need to be a +valid location according to the rules of whichever indexing application you +use. +

    For example, suppose the file suppl.tex contains: + + + +

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

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

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

    (By placing \glsadd at the end of the document, it adds the supplementary location +to the end of the location list, although the ordering may be changed by the indexing +application depending on its location collation settings.) +

    If you want hyperlinks, things are more complicated. First you need to set the +externallocation to the location of the PDF file. For example: + + + +

    +
    +\glssetcategoryattribute{supplemental}{externallocation}{suppl.pdf} + 
    \newglossaryentry{sample}{category=supplemental, + 
     name={sample},description={an example}} +
    +

    Next you need to add glsxtrsupphypernumber as the format: + + + +

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

    Both documents will need to use the hyperref package. Remember that the counter +used for the location also needs to match. If \theHcounter⟩ is defined in the +other document and is not the same as \thecounter⟩, then you need to use +theHvalue 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 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. +
    +

    +

    The value of the see key is now saved as a field. This isn’t the case with key is now saved as a field. This isn’t the case with glossaries, where the see attribute is simply used to directly write a line to the corresponding + id="dx1-6029"> attribute is simply used to directly write a line to the corresponding glossary file and is then discarded. This is why the see key can’t be used + id="dx1-6030"> key can’t be used before \makeglossaries (since the file hasn’t been opened yet). It’s also the + id="dx1-6031"> (since the file hasn’t been opened yet). It’s also the reason why the see key doesn’t have any effect when used in entries that + id="dx1-6032"> key doesn’t have any effect when used in entries that are defined in the document environment. Since the value isn’t saved, it’s + id="dx1-6033"> environment. Since the value isn’t saved, it’s not available when the .glsdefs file is created at the end of the document and so isn’t available at the start of the document environment on the next + id="dx1-6035"> 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 was set to false. +

    As a by-product of this enhancement, the see key will now work for entries + id="dx1-6039"> key will now work for entries defined in the document environment, but it’s still best to define entries in the + id="dx1-6040"> environment, but it’s still best to define entries in the preamble, and the see key still can’t perform any indexing before the file has been + id="dx1-6042"> key still can’t perform any indexing before the file has been opened by \makeglossaries. Note that glossaries v4.24 introduced the seenoindex + id="dx1-6043"> package option, which can be used to suppress the error when the see key + id="dx1-6044"> key is used before \makeglossaries, so seenoindex=ignore will allow the will allow the see + id="dx1-6046"> 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  \glsxtruseseeformat{tag}{xr list}

    -

    + + + +

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

    Suppose you want to suppress the number list using

    Suppose you want to suppress the number list using nonumberlist. This - - - + id="dx1-6053">. This will automatically prevent the cross-references from being displayed. The seeautonumberlist package option will automatically enable the number list for entries + id="dx1-6054"> package option will automatically enable the number list for entries that have the see key set, but this will also show the rest of the number + id="dx1-6056"> 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: @@ -1740,23 +1947,23 @@ example:

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

    Now the cross-references can appear even though the

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

    +

    -

    Top

    2.2 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 @@ -1767,7 +1974,7 @@ whether or not it actually has a hyperlink. The actual text and the way it’s displayed depends on the command used (such as \gls) and the entry format. -

    The default entry format (

    The default entry format (\glsentryfmt) used in the link-text by commands like @@ -1849,22 +2056,22 @@ class="cmsy-10">§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 @@ -1873,41 +2080,41 @@ class="cmtt-10">\glsxtrregularfont. This is more precise than changing \glstextformat which will be applied to all linking commands for all entries. -

    For example: +

    For example:

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

    You can access the label through

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

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

    or query the category attribute: +

    or query the category attribute:

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

    or use the attribute to store the control sequence name: +

    or use the attribute to store the control sequence name:

    -
    +
    \glssetcategoryattribute{general}{font}{textsf}  
    \glssetcategoryattribute{acronym}{font}{emph}  
    \renewcommand*{\glsxtrregularfont}[1]{% @@ -1916,7 +2123,7 @@ category:  
      {#1}%  
    }
    -

    (Remember the category and attribute settings will only queried here for

    (Remember the category and attribute settings will only queried here for regular entries, so if the abbreviation style for the acronym\glsxtrregularfont will no longer apply.) -

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

    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 @@ -1970,8 +2177,8 @@ href="#sec:nested">§2.5 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 +

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

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

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



    \glsxtrpostlinkAddDescOnFirstUse  \glsxtrpostlinkAddDescOnFirstUse

    -

    +

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

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

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

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

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



    \glsxtrifwasfirstuse  true}{false}

    -

    +

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

    Note that commands like

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

    -

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

    +

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

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

    -

    The

    +

    The short-postfootnote 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: -



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

    Commands like \printglossaries (or analogous commands). If you want to adjust the +default for wrgloss, it’s better to do this by redefining \glsxtrinitwrgloss +instead. +

    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 @@ -2196,23 +2409,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 @@ -2233,53 +2446,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.3 Entry Counting Modifications

    -

    The

    The \glsenableentrycount command is modified to allow for the entrycount§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 Entry Counting. -

    +

    -

    Top

    2.4 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 plural

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

      @@ -2491,7 +2704,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 -

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

    So if you want to completely strip all the plural suffixes used for abbreviations then +

    So if you want to completely strip all the plural suffixes used for abbreviations then you need to redefine \glsxtrabbrvpluralsuffix not \abbrvpluralsuffix, which changes with the style. Redefining \acrpluralsuffix will have no affect, since it’s not used by the new abbreviation mechanism. -

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

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

    -
    +
    '\abbrvpluralsuffix
    -

    That is, an apostrophe followed by

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

    +

    -

    Top

    2.5 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 @@ -2672,41 +2885,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: @@ -2714,10 +2927,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 @@ -2729,7 +2942,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: @@ -2737,13 +2950,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 @@ -2962,8 +3175,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 @@ -3026,103 +3239,103 @@ 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} @@ -3205,16 +3418,16 @@ class="cmti-10">really need nested commands, the safest method is  
    \printglossaries  
    \end{document}
    -

    -

    +

    +

    -

    Top

    2.6 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 @@ -3253,13 +3466,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 @@ -3270,7 +3483,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


    @@ -3309,32 +3522,32 @@ 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
    with #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
    with #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

    @@ -3508,7 +3721,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 @@ -3517,15 +3730,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 @@ -3535,7 +3748,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 long-short\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.7 Glossary Style Modifications

    -

    The default value of

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

    +

    The glossaries package tries to determine the group title from its label by first +checking if \labelgroupname exists. If it doesn’t exist, then the title is assumed to be +the same as the label. For example, when typesetting the “A” letter group, glossaries +first checks if \Agroupname exists. This could potentially cause conflict with another +package that may have some other meaning for \Agroupname, so glossaries-extra first +checks for the existence of the internal command \glsxtr@grouptitle@label⟩ +which shouldn’t clash with another package. You can set the group title +using +


    \glsxtrsetgrouptitle  \glsxtrsetgrouptitle{label}{title}

    +

    +For example: + + +

    -

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

    +

    +

    +

    +

    Top

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

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

    -

    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 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 ⟨general\glsxtrpostdescacronym for entries with the category set to acronym. -

    Since both

    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 @@ -3759,14 +4009,14 @@ 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 glossaries-extra-stylemods Package

    -

    +

    +

    -

    Top

    2.7.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 nonumberlist\glossaryentrynumbers so that it doesn’t display th id="dx1-14004">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 @@ -3851,31 +4101,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.7.3 The glossaries-extra-stylemods Package

    -

    As from v1.02,

    As from v1.02, glossaries-extra now includes the package glossaries-extra-stylemods that @@ -3887,12 +4137,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 glossaries-extra. You can @@ -3921,10 +4171,10 @@ class="cmss-10">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 identifiers. For example: @@ -3932,19 +4182,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 inlinenopostdot option, but the post-description category hook can still be used. -

    As from version 1.05, the

    As from version 1.05, the glossaries-extra-stylemods package provides some additional commands for use with the alttreenotree option has been used when loading glossaries. -



    \eglssetwidest  level]{name}

    -

    +

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



    \xglssetwidest  level]{name}

    -

    +

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

    The command

    The command \glsfindwidesttoplevelname provided by glossary-tree has a CamelCase synonym: -



    \glsFindWidestTopLevelName  \glsFindWidestTopLevelName[glossary list]

    -

    +

    Similar commands are also provided: -



    \glsFindWidestUsedTopLevelName  glossary list]

    -

    +

    This has an additional check that the entry has been used. Naturally this is only useful if the glossaries that use the alttree



    \glsFindWidestUsedAnyName  \glsFindWidestUsedAnyName[glossary list]

    -

    +

    This is like the previous command but if doesn’t check the parent 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  glossary list]{register}

    -

    +

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



    \glsFindWidestAnyNameSymbol  list]{register}

    -

    +

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



    \glsFindWidestUsedAnyNameSymbolLocation  symbol register}{location register}

    -

    +

    This is like \glsFindWidestUsedAnyNameSymbol but also measures the symbol register⟩ and the length of the widest number list is stored in ⟨location register⟩. -



    \glsFindWidestAnyNameSymbolLocation  symbol register}{location register}

    -

    +

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



    \glsFindWidestUsedAnyNameLocation  }

    -

    +

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



    \glsFindWidestAnyNameLocation  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  label}{number list}

    -

    +

    for top-level entries and -



    \glsxtralttreeSubSymbolDescLocation  label}{number list}

    -

    +

    for sub-entries. -

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

    There is now a user level command that performs the initialisation for the alttree 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 documented code (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 @@ -4292,10 +4542,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 @@ -4331,7 +4581,7 @@ href="#sec:categories">§5 Categories for further details. -

    See

    See §2.5 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 @@ -4359,7 +4609,7 @@ class="cmtt-10">acronym (see also href="#sec:acronymmods">§2.6 Acronym Style Modifications) so -



    \newacronym  short}{long}

    -

    +

    is now equivalent @@ -4398,7 +4648,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 short form is displayed within commands like

    The short form is displayed within commands like \gls using -



    \glsfirstabbrvfont  \glsfirstabbrvfont{short-form}

    -

    +

    on first use and -



    \glsabbrvfont  \glsabbrvfont{short-form}

    -

    +

    for subsequent use. -

    These commands (

    These commands (\glsfirstabbrvfont and \glsabbrvfont) are reset by the abbreviation styles and whenever an abbreviation is used by commands like \gls class="cmtt-10">\glsentryshort) so don’t try redefining them outside of an abbreviation style.
    -

    -

    If you use the

    +

    If you use the long-short style, \glsabbrvfont is redefine to use -



    \glsabbrvdefaultfont  \glsabbrvdefaultfont{text}

    -

    +

    whereas the long-short-sc style redefines \glsabbrvdefaultfont and use one of the base styles, such class="cmss-10">long-short, or define a new style in a similar manner to the “sc”, “sm” or “em” styles. -

    Similarly the basic styles redefine

    Similarly the basic styles redefine \glsfirstabbrvfont to use -



    \glsfirstabbrvdefaultfont  \glsfirstabbrvdefaultfont{short-form}

    -

    +

    whereas the font modifier styles, such as long-short-sc, use their own custom command, such as \glsfirstscfont. -

    The commands that display the full form for abbreviations use

    The commands that display the full form for abbreviations use \glsfirstabbrvfont to display the short form and -



    \glsfirstlongfont  \glsfirstlongfont{long-form}

    -

    +

    to display the long form on first use or for the inline full format. Commands like \glsxtrlong use -



    \glslongfont  \glslongfont{long-form}

    -

    +

    instead. -

    As with

    As with \glsabbrvfont, this command is changed by all styles. Currently all predefined abbreviation styles, except the “long-em” (emphasize long @@ -4522,7 +4772,7 @@ class="cmtt-10">\glsfirstlongfont to use -



    \glsfirstlongdefaultfont  \glsfirstlongdefaultfont{long-form}

    -

    +

    and \glslongfont to use -



    \glslongdefaultfont  \glslongdefaultfont{long-form}

    -

    -

    You can redefine these command if you want to change the font used by the long +

    +

    You can redefine these command if you want to change the font used by the long form for all your abbreviations (except for the emphasize-long styles), or you can define your own abbreviation style that provides a different format for only those abbreviations defined with that style. -

    The “long-em” (emphasize long) styles use -


    The “long-em” (emphasize long) styles use +


    \glsfirstlongemfont  \glsfirstlongemfont{long-form}

    -

    +

    instead of \glsfirstlongdefaultfont{long-form} and -



    \glslongemfont  \glslongemfont{long-form}

    -

    +

    instead of \glslongdefaultfont{long-form}. The first form \glsfirstlongemfont is initialised to use \glslongemfont. -

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

    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-nolongshort-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\glsfirstlongfont.

    -

    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 @@ -4667,21 +4917,21 @@ the glossary it’s activated for those categories that have the 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 @@ -4693,7 +4943,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 tagging§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 @@ -4736,17 +4986,17 @@ 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 @@ -4775,11 +5025,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

    @@ -4800,7 +5050,7 @@ href="#sec:acronymmods">§2.6 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, @@ -4810,7 +5060,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.) -

    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  ]

    -

    -

    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 @@ -5086,16 +5336,16 @@ class="cmtt-10">\glsxtrfull instead. Similarly for \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 shortcuts=abbreviation (or table 3.1. -


    @@ -5300,10 +5550,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 category assigned to each abbreviation with that style. This means that on long\glsxtrshort. -

    The other abbreviation styles don’t modify the

    The other abbreviation styles don’t modify the regular attribute. The first\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). -

    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 @@ -5373,57 +5623,57 @@ class="cmss-10">fontenc package with the T1 option or something similar.
    -

    -

    The “sc” styles all use -


    +

    The “sc” styles all use +


    \glsxtrscfont  \glsxtrscfont{text}

    -

    +

    which is defined as

    -
    +
    \newcommand*{\glsxtrscfont}[1]{\textsc{#1}}
    -

    and -


    and +


    \glsxtrfirstscfont  \glsxtrfirstscfont{text}

    -

    +

    which is defined as

    -
    +
    \newcommand*{\glsxtrfirstscfont}[1]{\glsxtrscfont{#1}}
    -

    The default plural suffix for the short form is set to -


    The default plural suffix for the short form is set to +


    \glsxtrscsuffix  \glsxtrscsuffix

    -

    +

    This just defined as

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

    The

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

    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 @@ -5452,45 +5702,45 @@ its argument to lowercase. For example:

    -
    +
    \renewcommand*{\glsxtrscfont}[1]{\textsc{\MakeLowercase{#1}}}
    -

    -

    The “sm” styles all use -


    +

    The “sm” styles all use +


    \glsxtrsmfont  \glsxtrsmfont{text}

    -

    +

    This is defined as:

    -
    +
    \newcommand*{\glsxtrsmfont}[1]{\textsmaller{#1}}
    -

    and -


    and +


    \glsxtrfirstsmfont  \glsxtrfirstsmfont{text}

    -

    +

    which is defined as

    -
    +
    \newcommand*{\glsxtrfirstsmfont}[1]{\glsxtrsmfont{#1}}
    -

    If you want to use this style, you must explicitly load the

    If you want to use this style, you must explicitly load the relsize package which defines the -

    +
    \renewcommand*{\glsxtrsmfont}[1]{\textsmaller{\MakeTextUppercase{#1}}}
    -

    The default plural suffix for the short form is set to -


    The default plural suffix for the short form is set to +


    \glsxtrsmsuffix  \glsxtrsmsuffix

    -

    +

    This just does \glspluralsuffix. -

    The “em” styles all use -


    The “em” styles all use +


    \glsabbrvemfont  \glsabbrvemfont{text}

    -

    +

    which is defined as:

    -
    +
    \newcommand*{\glsabbrvemfont}[1]{\emph{#1}}
    -

    and -


    and +


    \glsfirstabbrvemfont  \glsfirstabbrvemfont{text}

    -

    +

    which is defined as:

    -
    +
    \newcommand*{\glsfirstabbrvemfont}[1]{\glsabbrvemfont{#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 ⟨field2⟩ in parentheses. If ⟨field2⟩ starts with “no” then the parenthetical element is omitted from the display style 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. -

      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:

      -

      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 that have abbreviations defined with any of these styles. @@ -5913,7 +6163,7 @@ class="cmtt-10">\glsxtrshortlong⟩ (⟨short⟩). -

    The

    The name and sort\gls\glsxtrshort. -

    +

    -

    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 previously been set. If it hasn’t already been set, it’s left unset. Other attributes may @@ -6184,12 +6434,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 long-short-user} in the case of the 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-sc @@ -6288,11 +6538,11 @@ class="cmss-10">long-short-sc -

    +
    \renewcommand{\glsabbruserfont}[1]{\glsxtrscfont{#1}}  
    \renewcommand{\glsxtrusersuffix}{\glsxtrscsuffix}
    -

    +

    long-short-desclong⟩ (⟨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 hyperref

    The inline full form uses the ⟨

    The inline full form uses the ⟨short⟩ (⟨long⟩) style. The namenamedescription is set to the long form. -

    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 namedescription must be specified. -

    +

    -

    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), @@ -6924,12 +7174,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⟩: @@ -6937,7 +7187,7 @@ class="cmti-10">setup⟩:

    -
    +
      \renewcommand*{\CustomAbbreviationFields}{%  
        name={\protect\glsabbrvfont{\the\glsshorttok}},  
        sort={\the\glsshorttok}, @@ -6950,24 +7200,24 @@ class="cmti-10">setup⟩:  
        plural={\protect\glsabbvfont{\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 ⟨

    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⟩: @@ -6975,7 +7225,7 @@ class="cmti-10">setup⟩:

    -
    +
      \renewcommand*{\GlsXtrPostNewAbbreviation}{%  
        \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%  
        \glshasattribute{\the\glslabeltok}{regular}% @@ -6985,7 +7235,7 @@ class="cmti-10">setup⟩:  
        {}%  
      }%
    -

    This sets the

    This sets the nohyperfirst attribute to “true”. It also unsets the regularnohyperfirst 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.) -

    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 short-sc-footnoteshort-sm-footnote -

    +
    \GlsXtrUseAbbrStyleSetup{short-footnote}
    -

    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 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 first use for abbreviations without the regular 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 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 \Glsplfirst 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}

    -

    -

    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⟩: @@ -7331,7 +7581,7 @@ class="cmti-10">fmts⟩:

    -
    +
      \renewcommand*{\abbrvpluralsuffix}{\glspluralsuffix}%  
      \renewcommand*{\glsabbrvfont}[1]{\glsabbrvdefaultfont{##1}}%  
      \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}% @@ -7354,17 +7604,17 @@ class="cmti-10">fmts⟩:  
        (\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 @@ -7376,25 +7626,25 @@ class="cmti-10">fmts⟩:

    -
    +
      \GlsXtrUseAbbrStyleFmts{short-long}%  
      \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrscsuffix}%  
      \renewcommand*{\glsabbrvfont}[1]{\glsxtrscfont{##1}}%
    -

    and the

    and the short-sm-long style has:

    -
    +
      \GlsXtrUseAbbrStyleFmts{short-long-desc}%  
      \renewcommand*{\glsabbrvfont}[1]{\glsxtrsmfont{##1}}%  
      \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrsmsuffix}%
    -

    -

    The simplest examples of creating a new style based on an existing style are the +

    +

    The simplest examples of creating a new style based on an existing style are the “em” styles, such as the short-em-long style, which is defined as: @@ -7402,7 +7652,7 @@ class="cmss-10">short-em-long -

    -

    +

    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:

    @@ -7456,9 +7706,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 @@ -7523,12 +7773,12 @@ class="cmtt-10">\markright\markboth. 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 -

    +
    \chapter[A Chapter about \glsentryshort{html}]{A Chapter about \gls{html}}
    -

    -

    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 hyperref

    These commands essentially behave as though you have used

    These commands essentially behave as though you have used \glsxtrshort (or equivalent) with the options noindexheaduc attribute to “true” for the appropriate category. -

    If you use one of the

    If you use one of the \textsc styles, be aware that the default fonts don’t provide bold small-caps or italic small-caps. This means that if the chapter @@ -7586,37 +7836,37 @@ class="cmtt-10">\glsabbrvfont. You may want to consider using the slantsc package in this case.
    -

    -

    Display the short form: -


    +

    Display the short form: +


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

    -

    +

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



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

    -

    +

    and -



    \Glsfmtplural  \Glsfmtplural{label}

    -

    -

    Similarly for the value of the

    +

    Similarly for the value of the first 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. @@ -7831,7 +8081,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 indexnumbersnumber. -

    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:

    \glsfirst etc commands to ignore the nohyperfirst attribute then just redefine -



    \glsxtrchecknohyperfirst  \glsxtrchecknohyperfirst{label}

    -

    +

    to do nothing.

    indexonlyfirst
    discardperiodwrgloss
    When using commands like \gls, if this attribute is set to “after”, it will + automatically implement wrgloss=after. (New to v1.14.) +
    +discardperiod
    If set to “true”, the post-link-text hook will discard a full stop (period) that follows non-plural commands like \gls or \glstext. (Provided for entries such as abbreviations that end with a full stop.) -

    Note that this can cause a problem if you access a field that doesn’t end with a +

    Note that this can cause a problem if you access a field that doesn’t end with a full stop. For example:

    -
    +
    \newabbreviation  
     [user1={German Speaking \TeX\ User Group}]  
     {dante}{DANTE e.V.}{Deutschsprachige Anwendervereinigung \TeX\  
    e.V.}
    -

    Here the

    Here the short and and long fields end with a full stop, but the fields end with a full stop, but the user1 field doesn’t. + id="dx1-25046"> field doesn’t. The simplest solution in this situation is to put the sentence terminator in the final optional argument. For example:

    -
    +
    \glsuseri{dante}[.]
    -

    This will bring the punctuation character inside the

    This will bring the punctuation character inside the link-text and it won’t be discarded.

    pluraldiscardperiod
    If this attribute is set to “true” and the discardperiod attribute is + id="dx1-25049"> attribute is set to “true”, this will behave as above for the plural commands like \glspl or \glsplural.
    retainfirstuseperiod
    If this attribute is set to “true” then the full stop won’t be discarded for first use instances, even if discardperiod or or pluraldiscardperiod are + id="dx1-25053"> are set. This is useful for ⟨short⟩ (⟨long⟩) abbreviation styles where only the short form @@ -8066,10 +8327,10 @@ class="cmti-10">long⟩) abbreviation styles where only the short fo
    insertdots
    If this attribute is set to “true” any entry defined using \newabbreviation + id="dx1-25055"> will automatically have full stops (periods) inserted after each letter. The entry will be defined with those dots present as though they had been present in the ⟨\newabbreviation (rather than inserting them new dotted version of the original ⟨short⟩ form with the plural suffix appended. -

    If you explicitly override the short plural using the

    If you explicitly override the short plural using the shortplural key, you must + id="dx1-25056"> 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”. + id="dx1-25057"> attribute set to “true”.

    aposplural
    If this attribute is set to “true”, \newabbreviation will insert an + id="dx1-25059"> 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 + id="dx1-25060"> key). The long plural form is unaffected by this setting.
    noshortplural
    If this attribute is set to “true”, \newabbreviation won’t append the + id="dx1-25062"> won’t append the plural suffix for the short plural form. This means the short and and shortplural + id="dx1-25064"> values will be the same unless explicitly overridden. The aposplural attribute trumps the noshortplural attribute. @@ -8130,21 +8391,21 @@ class="cmti-10">attribute.
    headuc
    If this attribute is set to “true”, commands like \glsfmtshort will use the + id="dx1-25068"> 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-25071"> 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-25073"> (see §2.3 Entry Counting Modifications

    With

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

    glossdesc
    The \glossentrydesc command (used in the predefined glossary styles) is + id="dx1-25078"> 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: @@ -8194,34 +8455,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-25079">).
  • 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-25081">). 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-25083"> 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-25085"> 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-25088">. 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 \glossentyname + id="dx1-25090"> will index the entry using \index. See . See §7 Auto-Indexing for further @@ -8280,40 +8541,40 @@ 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-25093"> 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.

    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-25096">, a corresponding line will be written to the indexing file using \index. See . See §7 Auto-Indexing for @@ -8321,17 +8582,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-25101">, 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-25104"> for the external list. For example:

    -
    +
    \newignoredglossary*{external}  
    \glssetcategoryattribute{external}{targeturl}{master-doc.pdf}  
    \glssetcategoryattribute{general}{targetname}{\glolinkprefix\glslabel} @@ -8417,14 +8678,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} @@ -8434,30 +8695,30 @@ 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} @@ -8484,13 +8745,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} @@ -8517,19 +8778,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} @@ -8560,7 +8821,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-25116"> 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-25119"> attribute set to “true”: -



    \glsifregularcategory  \glsifregularcategory{category-label} @@ -8628,12 +8889,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-25123"> attribute has been set to “false”: -



    \glsifnotregularcategory  \glsifnotregularcategory{category-label} @@ -8664,12 +8925,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] @@ -8737,42 +8998,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-25128">. 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-25130"> 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} @@ -8780,18 +9041,18 @@ class="cmtt-10">} class="cmtt-10">{⟨category-label}

    -

    +

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

    -

    -

    +

    Top

    6. Entry Counting

    -

    As mentioned in

    As mentioned in §2.3 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 Shortcut Commands class="cmtt-10">\ac which uses \gls. -

    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 @@ -8917,8 +9178,8 @@ class="cmss-10">glossaries:  
    \printglossaries  
    \end{document}
    -

    -

    If you switch to

    +

    If you switch to glossaries-extra you must set the entrycount attribute: @@ -8926,7 +9187,7 @@ class="cmss-10">entrycount -

    + -

    -

    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}%  
     {% @@ -8993,24 +9254,24 @@ 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 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 attribute and redefine \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}% @@ -9048,18 +9309,18 @@ 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 @@ -9072,12 +9333,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 unitcount

    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} @@ -9199,7 +9460,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 category, which hasn’t been listed in \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 @@ -9234,19 +9495,19 @@ won’t be triggered, but the unit entry count is used to automatically supp 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} @@ -9267,10 +9528,10 @@ 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 -

    -

    +

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

    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 @@ -9343,26 +9604,26 @@ 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 dualindexformat 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 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 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 @@ -9578,7 +9839,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 @@ -9693,20 +9954,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 under development called

    There is a new command line application under development 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 .tex file that contains hundreds of definitions, but you only use a dozen or so in your document, then the build time is needlessly slowed by the unrequired definitions that occur when the file is input. -

    Although

    Although bib2gls isn’t ready yet, there have been some new commands and @@ -9745,7 +10006,7 @@ class="cmss-10">glossaries-extra to help assist the integration of bib2gls into the document build process. -

    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}$}, @@ -9820,8 +10081,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 \printglossaries), but instruct bib2gls to omit sorting to save time. -

    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 that sets ⟨filename\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

    The options are ignored by

    The options are ignored by glossaries-extra but are picked up by bib2glsbib2gls.bib files and any changes to the default behaviour. -

    Since the

    Since the .glstex won’t exist on the first LATEX run, the recordbib2gls has created the .glstex file the references should be resolved. -

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

    Since the

    Since the .glstex file only defines those references used within the document and the definitions have been written in the order corresponding to §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} @@ -10007,18 +10268,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} @@ -10081,12 +10342,12 @@ methods:  
    \printunsrtglossaries  
    \end{document}
    -

    (By default, entries are sorted according to the operating system’s locale. +

    (By default, entries are sorted according to the operating system’s locale. If this doesn’t match the document language, you need to set this in the option list, for example sort=de-CH-1996 for Swiss German using the new orthography.) -

    Note that

    Note that \glsaddall doesn’t work in this case as it has to iterate over the glossary lists, which will be empty on the first run and on subsequent runs will only contain those entries that have been selected by -

    -

    +

    Top

    10. Miscellaneous New Commands

    -

    The

    The glossaries package provides \glsrefentry entry to cross-reference entries @@ -10131,21 +10392,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}{% @@ -10250,10 +10511,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

    \glsxtrfmt will simply do ⟨text⟩. The default ⟨options⟩ are given by -



    \GlsXtrFmtDefaultOptions  \GlsXtrFmtDefaultOptions

    -

    +

    @@ -10301,12 +10562,12 @@ replacement text of \GlsXtrFmtDefaultOptions is prepended to the optional argument of \glslink. -

    For example: +

    For example:

    -
    +
    \[  
      \glsxtrfmt{matrix}{A}  
      \glsxtrfmt{matrixinv}{A} @@ -10314,7 +10575,7 @@ class="cmtt-10">\glslink.  
      \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 @@ -10352,14 +10613,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 @@ -10401,17 +10662,22 @@ 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 these only -change the specified field, not any related fields. For example, changing the value of -the

    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 text field won’t update the plural field. -


    field. There are also +some fields that should really only be set when entries are defined (such as +the parent field). Unexpected results may occur if they are subsequently +changed. +


    \GlsXtrSetField  \GlsXtrSetField{label}{field}{value}

    -

    +

    Sets the field given by ⟨field⟩ to ⟨value⟩ for the entry given by ⟨\newglossaryentry. If a field without a corresponding key is assigned a value, the key remains undefined. This command is robust. -

    \GlsXtrSetField uses -



    \glsxtrsetfieldifexists  \glsxtrsetfieldifexists{label}{}{code}

    - - - -

    +

    where ⟨label⟩ is the entry label and ⟨code⟩ is the assignment code. -

    This command just uses

    This command just uses \glsdoifexists{label}{} (ignoring the class="cmti-10">field⟩ argument), so by default it causes an error if the entry doesn’t exist. This can be changed to a warning with undefaction=warn. You can redefine + id="dx1-31014">. You can redefine \glsxtrsetfieldifexists to simply do ⟨code⟩ if you want to skip the existence check. Alternatively you can instead use -



    \glsxtrdeffield  \glsxtrdeffield{label}{replacement text}

    -

    +

    This simply uses etoolbox’s ’s \csdef without any checks. This command isn’t robust. There is also a version that uses \csedef instead: -



    \glsxtredeffield  \glsxtredeffield{label}{replacement text}

    -

    -


    +


    \gGlsXtrSetField  \gGlsXtrSetField{label}{field}{value}

    -

    +

    As \GlsXtrSetField but globally. -



    \eGlsXtrSetField  \eGlsXtrSetField{label}{field}{value}

    -

    +

    As \GlsXtrSetField but uses protected expansion. -



    \xGlsXtrSetField  \xGlsXtrSetField{label}{field}{value}

    -

    +

    As \gGlsXtrSetField but uses protected expansion. -



    \GlsXtrLetField  \GlsXtrLetField{label}{field}{cs}

    -

    +

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



    \csGlsXtrLetField  \csGlsXtrLetField{label}{}{cs name}

    -

    +

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



    \GlsXtrLetFieldToField  \GlsXtrLetFieldToField{label-1}{label-2}{field-2}

    -

    +

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

    The

    The glossaries package provides \glsfieldfetch which can be used to fetch the + id="dx1-31024"> 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-31026"> 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-31028"> 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-31038">’s user manual for further details of these commands, in particular the limitations of \ifinlist. -

    When using the

    When using the record option, in addition to recording the usual location, you can + id="dx1-31039"> 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 \makenoidxglossaries). -

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

    For example: +

    For example:

    -
    +
    \documentclass{article}  
    \usepackage{glossaries-extra}  
    \newglossaryentry{zebra}{name={zebra},description={stripy animal}} @@ -10955,33 +11221,33 @@ href="#sec:bib2gls">bib2gls: Managing Reference Databases

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

    The

    The \printunsrtglossary command internally uses -



    \printunsrtglossaryhandler  \printunsrtglossaryhandler{label}

    -

    +

    for each item in the list, where ⟨label⟩ is the current label. -

    By default this just does -


    By default this just does +


    \glsxtrunsrtdo  \glsxtrunsrtdo{label}

    -

    +

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

    You can redefine the handler if required. -

    If you redefine the handler to exclude entries, you may end up with an empty +

    You can redefine the handler if required. +

    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} @@ -11055,8 +11321,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} @@ -11082,13 +11348,13 @@ duplicate hypertarget names. For example:  
      }%  
    }
    -

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

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

    -

    There’s a shortcut command that does this: -


    +

    There’s a shortcut command that 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 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 @@ -11172,12 +11438,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 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 @@ -11188,7 +11454,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:

      @@ -11246,7 +11512,7 @@ class="cmtt-10">\glssee) unless it’s been explicitly class="cmtt-10">\glsadd or if the indexing has been explicitly set using noindex=false. -

      Note that with

      Note that with record=only, the location list for aliased entries is controlled href="#glo:bib2gls">bib2gls’s settings.

    -

    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 @@ -11271,49 +11537,49 @@ class="cmss-10">record=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 @@ -11322,10 +11588,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 @@ -11334,7 +11600,7 @@ example:

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

    -

    +

    +

    -

    Top

    11.2 Accessibility Support

    -

    The

    The glossaries-accsupp needs to be loaded before glossaries-extra or through the @@ -11366,10 +11632,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  
      {% @@ -11425,20 +11691,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: @@ -11446,17 +11712,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  
      {% @@ -11465,112 +11731,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 @@ -11753,11 +12019,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-prefix.tex
    Integrate glossaries-prefix. +
    +sample-suppl-main.tex
    Uses thevalue to reference a location in the + supplementary file sample-suppl.tex. +
    +sample-suppl-main-hyp.tex
    A more complicated version to the above that + uses the hyperref package to reference a location in the supplementary file + 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: @@ -12054,24 +12337,24 @@ 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 if they exist, but won’t warn if they don’t. -

    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}% @@ -12112,8 +12395,8 @@ class="cmtt-10">glossariesxtr-french.ldf.  
      \glossariesxtrcaptionsfrench  
    }
    -

    -

    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. This EX’s path so that it can be found by class="cmss-10">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 @@ -12231,17 +12514,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 automake option is used, but the document @@ -12306,8 +12589,8 @@ class="description">A command line Java application that selects entries .bib file and converts them to glossary definitions. At the time of writing, this application is still under development. Further details at: https://github.com/nlct/bib2gls. +href="http://www.dickimaw-books.com/software/bib2gls/" class="url" >http://www.dickimaw-books.com/software/bib2gls/.

    short-sm-postfootnote  211
    \abbreviationsname  212
    \abbrvpluralsuffix  B class="cmss-10">babel package  238, 239, 240, 241, 242, 240, 241, 242, 243, 244, 245
    bib2gls  246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 269
    +class="cmbx-10">272
    bib2gls  270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 293
    +class="cmbx-10">299

    C categories:
        abbreviation  294, 295, 296, 297
    +href="glossaries-extra-manual.html#dx1-8003" >300, 301, 302, 303
        acronym  298, 299, 300, 301, 302, 303
    +href="glossaries-extra-manual.html#dx1-7029" >304, 305, 306, 307, 308, 309
        general  304, 305, 306, 307, 308, 309, 310, 311
    +href="glossaries-extra-manual.html#dx1-7036" >310, 311, 312, 313, 314, 315, 316, 317
        index  312, 313
    +href="glossaries-extra-manual.html#dx1-5026" >318, 319
        number  314
    +href="glossaries-extra-manual.html#dx1-25018" >320
        symbol  315, 316
    +href="glossaries-extra-manual.html#dx1-7043" >321, 322
    category attributes:
        aposplural  317, 318, 319, 320
    +href="glossaries-extra-manual.html#dx1-9036" >323, 324, 325, 326
        discardperiod  321, 322, 323, 324, 325
    +href="glossaries-extra-manual.html#dx1-7032" >327, 328, 329, 330, 331
        dualindex  326, 327, 328, 329, 330, 331, 332
    +href="glossaries-extra-manual.html#dx1-25094" >332, 333, 334, 335, 336, 337, 338
        entrycount  333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343
    +href="glossaries-extra-manual.html#dx1-8002" >339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349
    +    externallocation  350
        glossdesc  344, 345, 346
    +href="glossaries-extra-manual.html#dx1-13004" >351, 352, 353
        glossdescfont  347, 348
    +href="glossaries-extra-manual.html#dx1-13005" >354, 355
        glossname  349, 350
    +href="glossaries-extra-manual.html#dx1-13003" >356, 357
        glossnamefont  351
    +href="glossaries-extra-manual.html#dx1-25092" >358
        headuc  352, 353, 354, 355
    +href="glossaries-extra-manual.html#dx1-10059" >359, 360, 361, 362
        indexname  356, 357, 358, 359, 360
    +href="glossaries-extra-manual.html#dx1-13009" >363, 364, 365, 366, 367
        indexonlyfirst  361, 362, 363
    +href="glossaries-extra-manual.html#dx1-6005" >368, 369, 370
        insertdots  364, 365
    +href="glossaries-extra-manual.html#dx1-16004" >371, 372
        nohyper  366, 367, 368
    +href="glossaries-extra-manual.html#dx1-25034" >373, 374, 375
        nohyperfirst  369, 370, 371, 372, 373
    +href="glossaries-extra-manual.html#dx1-22107" >376, 377, 378, 379, 380
        noshortplural  374, 375, 376, 377, 378
    +href="glossaries-extra-manual.html#dx1-9037" >381, 382, 383, 384, 385
        pluraldiscardperiod  379, 380
    +href="glossaries-extra-manual.html#dx1-25048" >386, 387
        regular  381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400
    +href="glossaries-extra-manual.html#dx1-7010" >388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407
        retainfirstuseperiod  401
    +href="glossaries-extra-manual.html#dx1-25050" >408
        tagging  402, 403, 404, 405
    +href="glossaries-extra-manual.html#dx1-17002" >409, 410, 411, 412
        targetcategory  406
    +href="glossaries-extra-manual.html#dx1-25103" >413
        targetname  407, 408
    +href="glossaries-extra-manual.html#dx1-25100" >414, 415
        targeturl  409, 410, 411, 412, 413
    +href="glossaries-extra-manual.html#dx1-5004" >416, 417, 418, 419, 420
        unitcount  414
    +href="glossaries-extra-manual.html#dx1-26030" >421
    +    wrgloss  422, 423
    \cGLS  415
    +class="cmti-10">424
    \cGLSformat  416
    +class="cmti-10">425
    \cGLSpl  417
    +class="cmti-10">426
    \cGLSplformat  418
    +class="cmti-10">427
    \csGlsXtrLetField  419
    +href="glossaries-extra-manual.html#dx1-31022" >428
    \CustomAbbreviationFields  420
    +class="cmti-10">429

    D datatool-base package  421
    +href="glossaries-extra-manual.html#dx1-8" >430

    E \eglssetwidest  422
    +class="cmti-10">431
    \eGlsXtrSetField  423
    +href="glossaries-extra-manual.html#dx1-31019" >432
    entry location  424, 425, 426
    +class="cmbx-10">433, 434, 435
    etoolbox package  427, 428, 429, 430, 431, 432
    -

    F +href="glossaries-extra-manual.html#dx1-4" >436, 437, 438, 439, 440, 441
    +

    F first use  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, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 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, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 484, 485, 486
    +class="cmbx-10">493, 494, 495
    first use flag  487, 488, 489, 490, 496, 497, 498, 499, 491
    +class="cmbx-10">500
    first use text  492, 493
    +class="cmbx-10">501, 502
    fontenc package  494
    +href="glossaries-extra-manual.html#dx1-20024" >503

    G \gGlsXtrSetField  495
    +href="glossaries-extra-manual.html#dx1-31018" >504
    glossaries package  496, 497, 498, 499, 500, 501, 502
    +href="glossaries-extra-manual.html#dx1-5014" >505, 506, 507, 508, 509, 510, 511, 512, 513
    glossaries-accsupp package  503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517
    +href="glossaries-extra-manual.html#dx1-4003" >514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528
    glossaries-extra package  518
    +href="glossaries-extra-manual.html#dx1-5016" >529, 530
    glossaries-extra-stylemods package  519, 520, 521, 522
    +href="glossaries-extra-manual.html#dx1-4012" >531, 532, 533, 534
    glossaries-prefix package  523, 524, 525
    +href="glossaries-extra-manual.html#dx1-34001" >535, 536, 537
    \glossariesextrasetup  526
    +href="glossaries-extra-manual.html#dx1-4109" >538
    glossary styles:
        alttree  527, 528, 529, 530, 531, 532, 533
    +href="glossaries-extra-manual.html#dx1-15010" >539, 540, 541, 542, 543, 544, 545
        inline  534, 535
    +href="glossaries-extra-manual.html#dx1-15006" >546, 547
        long3col  536
    +href="glossaries-extra-manual.html#dx1-15004" >548
    glossary-inline package  537
    +href="glossaries-extra-manual.html#dx1-15007" >549
    glossary-tree package  538, 539, 540
    +href="glossaries-extra-manual.html#dx1-15011" >550, 551, 552
    \glossxtrsetpopts  541
    +class="cmti-10">553
    \glsabbrvdefaultfont  542
    +class="cmti-10">554
    \glsabbrvemfont  543
    +class="cmti-10">555
    \glsabbrvfont  544, 556, 545
    +class="cmti-10">557
    \glsabbrvuserfont  546
    +class="cmti-10">558
    \Glsaccessdesc  547
    +class="cmti-10">559
    \glsaccessdesc  548
    +class="cmti-10">560
    \Glsaccessdescplural  549
    +class="cmti-10">561
    \glsaccessdescplural  550
    +class="cmti-10">562
    \Glsaccessfirst  551
    +class="cmti-10">563
    \glsaccessfirst  552
    +class="cmti-10">564
    \Glsaccessfirstplural  553
    +class="cmti-10">565
    \glsaccessfirstplural  554
    +class="cmti-10">566
    \Glsaccesslong  555
    +class="cmti-10">567
    \glsaccesslong  556
    +class="cmti-10">568
    \Glsaccesslongpl  557
    +class="cmti-10">569
    \glsaccesslongpl  558
    +class="cmti-10">570
    \Glsaccessname  559
    +class="cmti-10">571
    \glsaccessname  560
    +class="cmti-10">572
    \Glsaccessplural  561
    +class="cmti-10">573
    \glsaccessplural  562
    +class="cmti-10">574
    \Glsaccessshort  563
    +class="cmti-10">575
    \glsaccessshort  564
    -\Glsaccessshortpl  565
    +class="cmti-10">576
    +\Glsaccessshortpl  577
    \glsaccessshortpl  566
    +class="cmti-10">578
    \Glsaccesssymbol  567
    +class="cmti-10">579
    \glsaccesssymbol  568
    +class="cmti-10">580
    \Glsaccesssymbolplural  569
    +class="cmti-10">581
    \glsaccesssymbolplural  570
    +class="cmti-10">582
    \Glsaccesstext  571
    +class="cmti-10">583
    \glsaccesstext  572
    +class="cmti-10">584
    \glsacspace  573
    +class="cmti-10">585
    \glsacspacemax  574
    +class="cmti-10">586
    +\glsadd options
    +    theHvalue  587, 588
    +    thevalue  589, 590, 591
    \glscategory  575
    +class="cmti-10">592
    \glscategorylabel  576
    +class="cmti-10">593
    \glscurrententrylabel  577
    +class="cmti-10">594
    \glsentrycurrcount  578
    +class="cmti-10">595
    \glsentryprevcount  579
    +class="cmti-10">596
    \glsentryprevmaxcount  580
    +class="cmti-10">597
    \glsentryprevtotalcount  581
    +class="cmti-10">598
    \glsFindWidestAnyName  582
    +class="cmti-10">599
    \glsFindWidestAnyNameLocation  583
    +class="cmti-10">600
    \glsFindWidestAnyNameSymbol  584
    +class="cmti-10">601
    \glsFindWidestAnyNameSymbolLocation  585
    +class="cmti-10">602
    \glsFindWidestLevelTwo  586
    +class="cmti-10">603
    \glsFindWidestTopLevelName  587
    +class="cmti-10">604
    \glsFindWidestUsedAnyName  588
    +class="cmti-10">605
    \glsFindWidestUsedAnyNameLocation  589
    +class="cmti-10">606
    \glsFindWidestUsedAnyNameSymbol  590
    +class="cmti-10">607
    \glsFindWidestUsedAnyNameSymbolLocation  591
    +class="cmti-10">608
    \glsFindWidestUsedLevelTwo  592
    +class="cmti-10">609
    \glsFindWidestUsedTopLevelName  593
    +class="cmti-10">610
    \glsfirstabbrvdefaultfont  594
    +class="cmti-10">611
    \glsfirstabbrvemfont  595
    +class="cmti-10">612
    \glsfirstabbrvfont  596, 613, 597
    +class="cmti-10">614
    \glsfirstlongdefaultfont  598
    +class="cmti-10">615
    \glsfirstlongemfont  599
    +class="cmti-10">616
    \glsfirstlongfont  600, 617, 601
    +class="cmti-10">618
    \glsfirstlongfootnotefont  602
    +class="cmti-10">619
    \Glsfmtfirst  603
    +class="cmti-10">620
    \glsfmtfirst  604
    +class="cmti-10">621
    \Glsfmtfirstpl  605
    +class="cmti-10">622
    \glsfmtfirstpl  606
    +class="cmti-10">623
    \Glsfmtfull  607
    +class="cmti-10">624
    \glsfmtfull  608
    +class="cmti-10">625
    \Glsfmtfullpl  609
    +class="cmti-10">626
    + + + \glsfmtfullpl  610
    +class="cmti-10">627
    \Glsfmtlong  611
    +class="cmti-10">628
    \glsfmtlong  612
    +class="cmti-10">629
    \Glsfmtlongpl  613
    - - - +class="cmti-10">630
    \glsfmtlongpl  614
    +class="cmti-10">631
    \Glsfmtplural  615
    +class="cmti-10">632
    \glsfmtplural  616
    +class="cmti-10">633
    \Glsfmtshort  617
    +class="cmti-10">634
    \glsfmtshort  618
    +class="cmti-10">635
    \Glsfmtshortpl  619
    +class="cmti-10">636
    \glsfmtshortpl  620
    +class="cmti-10">637
    \Glsfmttext  621
    +class="cmti-10">638
    \glsfmttext  622
    +class="cmti-10">639
    \glsforeachwithattribute  623
    +href="glossaries-extra-manual.html#dx1-25127" >640
    \glsgetattribute  624
    +href="glossaries-extra-manual.html#dx1-25110" >641
    \glsgetcategoryattribute  625
    +href="glossaries-extra-manual.html#dx1-25109" >642
    \glsgetwidestname  626
    +class="cmti-10">643
    \glsgetwidestsubname  627
    +class="cmti-10">644
    \glshasattribute  628
    +href="glossaries-extra-manual.html#dx1-25113" >645
    \glshascategoryattribute  629
    +href="glossaries-extra-manual.html#dx1-25111" >646
    \glsifattribute  630
    +href="glossaries-extra-manual.html#dx1-25118" >647
    \glsifcategory  631
    +class="cmti-10">648
    \glsifcategoryattribute  632
    +href="glossaries-extra-manual.html#dx1-25114" >649
    \glsifnotregular  633
    +href="glossaries-extra-manual.html#dx1-25125" >650
    \glsifnotregularcategory  634
    +href="glossaries-extra-manual.html#dx1-25124" >651
    \glsifregular  635
    +href="glossaries-extra-manual.html#dx1-25121" >652
    \glsifregularcategory  636
    +href="glossaries-extra-manual.html#dx1-25120" >653
    \glskeylisttok  637
    +class="cmti-10">654
    \glslabeltok  638
    +class="cmti-10">655
    \glslink options
        format  639, 640
    +href="glossaries-extra-manual.html#dx1-27012" >656, 657
        hyper  641, 642, 643
    +href="glossaries-extra-manual.html#dx1-10055" >658, 659, 660
        hyper=false  644
    +href="glossaries-extra-manual.html#dx1-24016" >661
        noindex  645, 646, 647, 648, 649, 650
    +href="glossaries-extra-manual.html#dx1-6001" >662, 663, 664, 665, 666, 667, 668
    +    wrgloss  669, 670, 671, 672
    \glslinkcheckfirsthyperhook  651
    +class="cmti-10">673
    \glslongdefaultfont  652
    +class="cmti-10">674
    \glslongemfont  653
    +class="cmti-10">675
    \glslongfont  654, 676, 655
    +class="cmti-10">677
    \glslongfootnotefont  656
    +class="cmti-10">678
    \glslongpltok  657
    +class="cmti-10">679
    \glslongtok  658
    +class="cmti-10">680
    \glsnoidxdisplayloc  659
    +href="glossaries-extra-manual.html#dx1-7074" >681
    \glsps  660
    +class="cmti-10">682
    \glspt  661
    +class="cmti-10">683
    \glssetattribute  662
    +href="glossaries-extra-manual.html#dx1-25108" >684
    + + + \glssetcategoryattribute  663
    +href="glossaries-extra-manual.html#dx1-25105" >685
    \glssetregularcategory  664
    +href="glossaries-extra-manual.html#dx1-25107" >686
    \glsshortpltok  665
    +class="cmti-10">687
    \glsshorttok  666
    +class="cmti-10">688
    \Glsxtr  667
    - - - +class="cmti-10">689
    \glsxtr  668
    +class="cmti-10">690
    \glsxtrabbrvfootnote  669
    +class="cmti-10">691
    \glsxtrabbrvpluralsuffix  670
    +class="cmti-10">692
    \glsxtraddallcrossrefs  671
    +href="glossaries-extra-manual.html#dx1-6037" >693
    \glsxtralias  672
    +class="cmti-10">694
    \glsxtrAltTreeIndent  673
    +class="cmti-10">695
    \glsxtralttreeInit  674
    +class="cmti-10">696
    \glsxtralttreeSubSymbolDescLocation  675
    +class="cmti-10">697
    \glsxtralttreeSymbolDescLocation  676
    +class="cmti-10">698
    \glsxtrchecknohyperfirst  677
    +class="cmti-10">699
    \glsxtrcopytoglossary  678
    +class="cmti-10">700
    \glsxtrdeffield  679
    +href="glossaries-extra-manual.html#dx1-31015" >701
    \glsxtrdisplayendloc  680
    +href="glossaries-extra-manual.html#dx1-7077" >702
    \glsxtrdisplayendlochook  681
    +href="glossaries-extra-manual.html#dx1-7079" >703
    \glsxtrdisplaysingleloc  682
    +href="glossaries-extra-manual.html#dx1-7075" >704
    \glsxtrdisplaystartloc  683
    +href="glossaries-extra-manual.html#dx1-7076" >705
    \glsxtrdoautoindexname  684
    +class="cmti-10">706
    \glsxtrdowrglossaryhook  685
    +href="glossaries-extra-manual.html#dx1-6016" >707
    \glsxtredeffield  686
    +href="glossaries-extra-manual.html#dx1-31017" >708
    \GlsXtrEnableEntryCounting  687
    +class="cmti-10">709
    \GlsXtrEnableEntryUnitCounting  688
    +class="cmti-10">710
    \GlsXtrEnableIndexFormatOverride  689
    +class="cmti-10">711
    \GlsXtrEnableInitialTagging  690
    +class="cmti-10">712
    \GlsXtrEnableOnTheFly  691
    +class="cmti-10">713
    \GlsXtrEnablePreLocationTag  692
    +class="cmti-10">714
    \glsxtrentryfmt  693
    +class="cmti-10">715
    \glsxtrfielddolistloop  694
    +href="glossaries-extra-manual.html#dx1-31034" >716
    \glsxtrfieldforlistloop  695
    +href="glossaries-extra-manual.html#dx1-31035" >717
    \glsxtrfieldifinlist  696
    +href="glossaries-extra-manual.html#dx1-31036" >718
    \glsxtrfieldlistadd  697
    +href="glossaries-extra-manual.html#dx1-31030" >719
    \glsxtrfieldlisteadd  698
    +href="glossaries-extra-manual.html#dx1-31032" >720
    \glsxtrfieldlistgadd  699
    +href="glossaries-extra-manual.html#dx1-31031" >721
    \glsxtrfieldlistxadd  700
    +href="glossaries-extra-manual.html#dx1-31033" >722
    \glsxtrfieldtitlecasecs  701
    +href="glossaries-extra-manual.html#dx1-25082" >723
    \glsxtrfieldxifinlist  702
    +href="glossaries-extra-manual.html#dx1-31037" >724
    \glsxtrfirstscfont  703
    +class="cmti-10">725
    \glsxtrfirstsmfont  704
    +class="cmti-10">726
    \glsxtrfmt  705
    +class="cmti-10">727
    \GlsXtrFmtDefaultOptions  706
    +class="cmti-10">728
    \GlsXtrFmtField  707
    +class="cmti-10">729
    \GlsXtrFormatLocationList  708
    +class="cmti-10">730
    + + + \GLSxtrfull  709
    +class="cmti-10">731
    \Glsxtrfull  710
    +class="cmti-10">732
    \glsxtrfull  711
    +class="cmti-10">733
    \Glsxtrfullformat  712
    +class="cmti-10">734
    \glsxtrfullformat  713
    - - - +class="cmti-10">735
    \GLSxtrfullpl  714
    +class="cmti-10">736
    \Glsxtrfullpl  715
    +class="cmti-10">737
    \glsxtrfullpl  716
    +class="cmti-10">738
    \Glsxtrfullplformat  717
    +class="cmti-10">739
    \glsxtrfullplformat  718
    +class="cmti-10">740
    \glsxtrfullsep  719
    +class="cmti-10">741
    \glsxtrifcounttrigger  720
    +class="cmti-10">742
    \glsxtrifkeydefined  721
    +class="cmti-10">743
    \glsxtrifwasfirstuse  722
    +class="cmti-10">744
    \glsxtrindexaliased  723
    +class="cmti-10">745
    +\glsxtrinitwrgloss  746
    \Glsxtrinlinefullformat  724
    +class="cmti-10">747
    \glsxtrinlinefullformat  725
    +class="cmti-10">748
    \Glsxtrinlinefullplformat  726
    +class="cmti-10">749
    \glsxtrinlinefullplformat  727
    +class="cmti-10">750
    \glsxtrinsertinsidetrue  728
    +class="cmti-10">751
    \GlsXtrLetField  729
    +href="glossaries-extra-manual.html#dx1-31021" >752
    \GlsXtrLetFieldToField  730
    +href="glossaries-extra-manual.html#dx1-31023" >753
    \GlsXtrLoadResources  731
    +class="cmti-10">754
    \glsxtrlocrangefmt  732
    +href="glossaries-extra-manual.html#dx1-7078" >755
    \Glsxtrlong  733, 756, 734
    +class="cmti-10">757
    \glsxtrlong  735
    +class="cmti-10">758
    \GLSxtrlongpl  736
    +class="cmti-10">759
    \Glsxtrlongpl  737
    +class="cmti-10">760
    \glsxtrlongpl  738
    +class="cmti-10">761
    \glsxtrlongshortdescsort  739
    +class="cmti-10">762
    \glsxtrnewnumber  740
    +href="glossaries-extra-manual.html#dx1-4089" >763
    \glsxtrnewsymbol  741
    +href="glossaries-extra-manual.html#dx1-4086" >764
    \GlsXtrNoGlsWarningAutoMake  742
    +class="cmti-10">765
    \GlsXtrNoGlsWarningBuildInfo  743
    +class="cmti-10">766
    \GlsXtrNoGlsWarningCheckFile  744
    +class="cmti-10">767
    \GlsXtrNoGlsWarningEmptyMain  745
    +class="cmti-10">768
    \GlsXtrNoGlsWarningEmptyNotMain  746
    +class="cmti-10">769
    \GlsXtrNoGlsWarningEmptyStart  747
    +class="cmti-10">770
    \GlsXtrNoGlsWarningHead  748
    +class="cmti-10">771
    \GlsXtrNoGlsWarningMisMatch  749
    +class="cmti-10">772
    \GlsXtrNoGlsWarningNoOut  750
    +class="cmti-10">773
    \GlsXtrNoGlsWarningTail  751
    +class="cmti-10">774
    \Glsxtrp  752, 775, 753
    +class="cmti-10">776
    \glsxtrp  754
    +class="cmti-10">777
    \glsxtrpageref  755
    +class="cmti-10">778
    + + + \Glsxtrpl  756
    +class="cmti-10">779
    \glsxtrpl  757
    +class="cmti-10">780
    \glsxtrpostdescription  758
    +class="cmti-10">781
    \glsxtrpostlink  759
    +class="cmti-10">782
    \glsxtrpostlinkAddDescOnFirstUse  760
    +class="cmti-10">783
    \glsxtrpostlinkAddSymbolOnFirstUse  761
    - - - +class="cmti-10">784
    \glsxtrpostlinkendsentence  762
    +class="cmti-10">785
    \glsxtrpostlinkhook  763
    +class="cmti-10">786
    \glsxtrpostlongdescription  764
    +class="cmti-10">787
    \glsxtrpostnamehook  765
    +class="cmti-10">788
    \GlsXtrPostNewAbbreviation  766
    +class="cmti-10">789
    \glsxtrprovidestoragekey  767
    +class="cmti-10">790
    \GlsXtrRecordCounter  768
    +href="glossaries-extra-manual.html#dx1-31040" >791
    \glsxtrregularfont  769
    +class="cmti-10">792
    \glsxtrresourcefile  770
    +class="cmti-10">793
    \glsxtrRevertMarks  771
    +class="cmti-10">794
    \glsxtrscfont  772
    +class="cmti-10">795
    \glsxtrscsuffix  773
    +class="cmti-10">796
    \GlsXtrSetActualChar  774
    +class="cmti-10">797
    \glsxtrsetaliasnoindex  775
    +class="cmti-10">798
    \GlsXtrSetAltModifier  776
    +href="glossaries-extra-manual.html#dx1-7072" >799
    \glsxtrsetcategory  777
    +href="glossaries-extra-manual.html#dx1-25129" >800
    \glsxtrsetcategoryforall  778
    +href="glossaries-extra-manual.html#dx1-25131" >801
    \GlsXtrSetDefaultGlsOpts  779
    +class="cmti-10">802
    \GlsXtrSetEncapChar  780
    +class="cmti-10">803
    \GlsXtrSetEscChar  781
    +class="cmti-10">804
    \GlsXtrSetField  782
    +href="glossaries-extra-manual.html#dx1-31011" >805
    \glsxtrsetfieldifexists  783
    +href="glossaries-extra-manual.html#dx1-31012" >806
    +\glsxtrsetgrouptitle  807
    \GlsXtrSetLevelChar  784
    +class="cmti-10">808
    \glsxtrsetpopts  785
    +class="cmti-10">809
    \Glsxtrshort  786, 810, 787
    +class="cmti-10">811
    \glsxtrshort  788
    +class="cmti-10">812
    \GLSxtrshortpl  789
    +class="cmti-10">813
    \Glsxtrshortpl  790
    +class="cmti-10">814
    \glsxtrshortpl  791
    +class="cmti-10">815
    \glsxtrsmfont  792
    +class="cmti-10">816
    \glsxtrsmsuffix  793
    +class="cmti-10">817
    \glsxtrtagfont  794
    +class="cmti-10">818
    \glsxtrunsrtdo  795
    +class="cmti-10">819
    \GlsXtrUseAbbrStyleFmts  796
    +class="cmti-10">820
    \GlsXtrUseAbbrStyleSetup  797
    +class="cmti-10">821
    \Glsxtrusefield  798
    +href="glossaries-extra-manual.html#dx1-31027" >822
    \glsxtrusefield  799
    +href="glossaries-extra-manual.html#dx1-31025" >823
    \glsxtruserfield  800
    +class="cmti-10">824
    \glsxtruserparen  801
    +class="cmti-10">825
    + + + \glsxtrusersuffix  802
    +class="cmti-10">826
    \glsxtrusesee  803
    +href="glossaries-extra-manual.html#dx1-6047" >827
    \glsxtruseseeformat  804
    +href="glossaries-extra-manual.html#dx1-6048" >828
    \GlsXtrWarnDeprecatedAbbrStyle  805
    +class="cmti-10">829
    \GlsXtrWarning  806
    +class="cmti-10">830

    H - - - hyperref package  807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821
    +href="glossaries-extra-manual.html#dx1-6025" >831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848
    +

    I +\ifglsxtrinitwrglossbefore  849

    L link-text  822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 839
    +class="cmbx-10">867
    location list  840, 841, 842, 843, 868, 869, 870, 871, 844
    +class="cmbx-10">872
    \longnewglossaryentry  845
    +class="cmti-10">873

    M makeglossaries  846, 847, 848, 849, 874, 875, 876, 877, 850
    +class="cmbx-10">878
    \makeglossaries  851
    +class="cmti-10">879
    makeglossaries-lite.lua  852, 880, 853
    +class="cmbx-10">881
    makeglossaries-lite.lua  854, 882, 855
    +class="cmbx-10">883
    makeindex  856, 857, 858, 859, 860, 861, 862, 863, 884, 885, 886, 887, 888, 889, 890, 891, 892, 864
    +class="cmbx-10">893
    memoir class  865
    +href="glossaries-extra-manual.html#dx1-3020" >894
    mfirstuc package  866, 867, 868
    +href="glossaries-extra-manual.html#dx1-3" >895, 896, 897

    N \newabbreviation  869
    +class="cmti-10">898
    \newabbreviationstyle  870
    +class="cmti-10">899
    \newacronym  871
    +class="cmti-10">900
    \newglossaryentry options
        alias  872, 873, 874, 875, 876
    +href="glossaries-extra-manual.html#dx1-5010" >901, 902, 903, 904, 905
        category  877, 878, 879, 880, 881
    +href="glossaries-extra-manual.html#dx1-5009" >906, 907, 908, 909, 910
        desc  882, 883
    +href="glossaries-extra-manual.html#dx1-36038" >911, 912
        descplural  884, 885
    +href="glossaries-extra-manual.html#dx1-36042" >913, 914
        description  886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904
    +href="glossaries-extra-manual.html#dx1-20052" >915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933
        descriptionplural  905, 906, 907, 908
    +href="glossaries-extra-manual.html#dx1-5012" >934, 935, 936, 937
        first  909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920
    +href="glossaries-extra-manual.html#dx1-7013" >938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949
        firstplural  921, 922, 923, 924, 925, 926, 927, 928, 929, 930
    +href="glossaries-extra-manual.html#dx1-7014" >950, 951, 952, 953, 954, 955, 956, 957, 958, 959
        location  931
    +href="glossaries-extra-manual.html#dx1-32011" >960
        loclist  932
    +href="glossaries-extra-manual.html#dx1-32012" >961
    + + +     long  933, 934, 935, 936, 937, 938, 939, 940
    +href="glossaries-extra-manual.html#dx1-9026" >962, 963, 964, 965, 966, 967, 968, 969
        longplural  941, 942, 943, 944, 945, 946
    +href="glossaries-extra-manual.html#dx1-9010" >970, 971, 972, 973, 974, 975
        name  947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970
    +href="glossaries-extra-manual.html#dx1-9023" >976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999
        parent  971
    +href="glossaries-extra-manual.html#dx1-15023" >1000, 1001
        plural  972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984
    +href="glossaries-extra-manual.html#dx1-7017" >1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014
        see  985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999
    +href="glossaries-extra-manual.html#dx1-4027" >1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032
        short  1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013
    +href="glossaries-extra-manual.html#dx1-7011" >1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046
        shortplural  1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027
    +href="glossaries-extra-manual.html#dx1-9011" >1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060
        sort  1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039
    - - - +href="glossaries-extra-manual.html#dx1-4052" >1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072
        symbol  1040, 1041, 1042
    +href="glossaries-extra-manual.html#dx1-36030" >1073, 1074, 1075
        symbolplural  1043, 1044
    +href="glossaries-extra-manual.html#dx1-36034" >1076, 1077
        text  1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056
    +href="glossaries-extra-manual.html#dx1-7016" >1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089
        type  1057, 1058
    +href="glossaries-extra-manual.html#dx1-11046" >1090, 1091
        user1  1059, 1060, 1061
    +href="glossaries-extra-manual.html#dx1-20041" >1092, 1093, 1094
    number list  1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1083
    +class="cmbx-10">1116

    P package options:
        abbreviations  1084, 1085, 1086, 1087, 1088
    +href="glossaries-extra-manual.html#dx1-4072" >1117, 1118, 1119, 1120, 1121
        accsupp  1089, 1090, 1091
    +href="glossaries-extra-manual.html#dx1-4002" >1122, 1123, 1124
        acronym  1092
    +href="glossaries-extra-manual.html#dx1-4080" >1125
        acronymlists  1093
    +href="glossaries-extra-manual.html#dx1-4084" >1126
        automake  1094, 1095
    +href="glossaries-extra-manual.html#dx1-5033" >1127, 1128
        docdef  1096, 1097, 1098, 1099
    +href="glossaries-extra-manual.html#dx1-4036" >1129, 1130, 1131, 1132
            restricted  1100
    +href="glossaries-extra-manual.html#dx1-4061" >1133
            true  1101, 1102
    +href="glossaries-extra-manual.html#dx1-4060" >1134, 1135
        docdefs  1103, 1104, 1105
    +href="glossaries-extra-manual.html#dx1-28003" >1136, 1137, 1138
        entrycounter  1106
    +href="glossaries-extra-manual.html#dx1-30002" >1139
        hyperfirst
            false  1107
    +href="glossaries-extra-manual.html#dx1-25030" >1140
        index  1108, 1109
    +href="glossaries-extra-manual.html#dx1-5025" >1141, 1142
        indexcrossrefs  1110, 1111, 1112
    +href="glossaries-extra-manual.html#dx1-4064" >1143, 1144, 1145
            false  1113
    +href="glossaries-extra-manual.html#dx1-4071" >1146
        indexonlyfirst  1114, 1115, 1116, 1117
    +href="glossaries-extra-manual.html#dx1-6002" >1147, 1148, 1149, 1150
        nomain  1118
    +href="glossaries-extra-manual.html#dx1-3031" >1151
        nomissingglstext  1119
    +href="glossaries-extra-manual.html#dx1-4063" >1152
        nonumberlist  1120, 1121, 1122, 1123
    +href="glossaries-extra-manual.html#dx1-6053" >1153, 1154, 1155, 1156
        nopostdot  1124, 1125
    +href="glossaries-extra-manual.html#dx1-13018" >1157, 1158
            false  1126, 1127
    +href="glossaries-extra-manual.html#dx1-3004" >1159, 1160
            true  1128
    +href="glossaries-extra-manual.html#dx1-3003" >1161
        noredefwarn
            false  1129
    +href="glossaries-extra-manual.html#dx1-3008" >1162
            true  1130
    +href="glossaries-extra-manual.html#dx1-3005" >1163
    + + +     notree  1131
    +href="glossaries-extra-manual.html#dx1-15012" >1164
        numbers  1132, 1133, 1134
    +href="glossaries-extra-manual.html#dx1-4088" >1165, 1166, 1167
        record  1135, 1136, 1137, 1138, 1139, 1140
    +href="glossaries-extra-manual.html#dx1-4018" >1168, 1169, 1170, 1171, 1172, 1173
            alsoindex  1141, 1142, 1143, 1144
    +href="glossaries-extra-manual.html#dx1-4025" >1174, 1175, 1176, 1177
            off  1145, 1146
    +href="glossaries-extra-manual.html#dx1-4021" >1178, 1179
            only  1147, 1148, 1149
    +href="glossaries-extra-manual.html#dx1-4024" >1180, 1181, 1182, 1183
        seeautonumberlist  1150
    +href="glossaries-extra-manual.html#dx1-6054" >1184
        seenoindex  1151
    +href="glossaries-extra-manual.html#dx1-6043" >1185
            ignore  1152
    +href="glossaries-extra-manual.html#dx1-6045" >1186
        shortcuts  1153, 1154
    - - - +href="glossaries-extra-manual.html#dx1-4090" >1187, 1188
            abbr  1155, 1156
    +href="glossaries-extra-manual.html#dx1-4094" >1189, 1190
            abbreviation  1157
    +href="glossaries-extra-manual.html#dx1-19001" >1191
            abbreviations  1158
    +href="glossaries-extra-manual.html#dx1-4093" >1192
            acro  1159
    +href="glossaries-extra-manual.html#dx1-4092" >1193
            acronyms  1160
    +href="glossaries-extra-manual.html#dx1-4091" >1194
            all  1161
    +href="glossaries-extra-manual.html#dx1-4104" >1195
            false  1162
    +href="glossaries-extra-manual.html#dx1-4107" >1196
            none  1163
    +href="glossaries-extra-manual.html#dx1-4106" >1197
            other  1164
    +href="glossaries-extra-manual.html#dx1-4095" >1198
            true  1165
    +href="glossaries-extra-manual.html#dx1-4105" >1199
        stylemods  1166, 1167, 1168
    +href="glossaries-extra-manual.html#dx1-4011" >1200, 1201, 1202
        subentrycounter  1169
    +href="glossaries-extra-manual.html#dx1-30003" >1203
        symbols  1170, 1171, 1172
    +href="glossaries-extra-manual.html#dx1-4085" >1204, 1205, 1206
        toc
            false  1173
    +href="glossaries-extra-manual.html#dx1-3002" >1207
            true  1174
    +href="glossaries-extra-manual.html#dx1-3001" >1208
        translate
            babel  1175
    +href="glossaries-extra-manual.html#dx1-3010" >1209
            true  1176
    +href="glossaries-extra-manual.html#dx1-3012" >1210
        undefaction  1177, 1178
    +href="glossaries-extra-manual.html#dx1-4013" >1211, 1212
            error  1179, 1180
    +href="glossaries-extra-manual.html#dx1-4014" >1213, 1214
            warn  1181, 1182, 1183, 1184, 1185
    +href="glossaries-extra-manual.html#dx1-4015" >1215, 1216, 1217, 1218, 1219
    page (counter)  1186, 1187
    +href="glossaries-extra-manual.html#dx1-26027" >1220, 1221
    polyglossia package  1188
    +href="glossaries-extra-manual.html#dx1-38005" >1222
    \pretoglossarypreamble  1189
    +class="cmti-10">1223
    \printabbreviations  1190
    +href="glossaries-extra-manual.html#dx1-4073" >1224
    \printglossary options
        target  1191, 1192
    +href="glossaries-extra-manual.html#dx1-5008" >1225, 1226
        title  1193
    +href="glossaries-extra-manual.html#dx1-38006" >1227
    \printnoidxglossary options
        sort  1194
    +href="glossaries-extra-manual.html#dx1-32007" >1228
    \printunsrtglossaries  1195
    +class="cmti-10">1229
    \printunsrtglossary  1196, 1230, 1197
    +class="cmti-10">1231
    \printunsrtglossaryhandler  1198
    +class="cmti-10">1232
    \printunsrtglossaryunit  1199
    +class="cmti-10">1233
    \printunsrtglossaryunitsetup  1200
    +class="cmti-10">1234
    + + + \provideignoredglossary  1201
    +class="cmti-10">1235

    R relsize package  1202
    +href="glossaries-extra-manual.html#dx1-20034" >1236
    \RestoreAcronyms  1203
    +class="cmti-10">1237

    S \setabbreviationstyle  1204
    - - - +class="cmti-10">1238
    slantsc package  1205
    +href="glossaries-extra-manual.html#dx1-24020" >1239

    T textcase package  1206
    +href="glossaries-extra-manual.html#dx1-6" >1240
    tracklang package  1207, 1208
    +href="glossaries-extra-manual.html#dx1-2" >1241, 1242
    translator package  1209
    +href="glossaries-extra-manual.html#dx1-3011" >1243

    X xfor package  1210
    +href="glossaries-extra-manual.html#dx1-7" >1244
    \xglssetwidest  1211
    +class="cmti-10">1245
    \xGlsXtrSetField  1212
    +href="glossaries-extra-manual.html#dx1-31020" >1246
    xindy  1213, 1214, 1215, 1216, 1217, 1218, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1219
    +class="cmbx-10">1254
    xkeyval package  1220
    +href="glossaries-extra-manual.html#dx1-5" >1255

    1.14.21 was originally intended as the last release of glossaries to incorporate new features, but a few new minor features slipped in with some bug fixes in v4.21.

    -

    2.1The descriptionpluralfield and the short form was stored in the symbol field.

    -

    9.1Version 1.11 only allowed one use of \GlsXtrLoadResources per document.

    -

    9.2v1.08 assumed filename#1={\protect\sffamily#1}|main}} @@ -166,13 +167,13 @@ styles (glossaries):>#1={\protect\ttfamily#1}|main}} \DeleteShortVerb{\|} \MakeShortVerb{"} - \title{glossaries-extra.sty v1.13: + \title{glossaries-extra.sty v1.14: an extension to the glossaries package} \author{Nicola L.C. Talbot\\[10pt] Dickimaw Books\\ \url{http://www.dickimaw-books.com/}} - \date{2017-02-07} + \date{2017-04-18} \maketitle \begin{abstract} @@ -504,6 +505,11 @@ The other values switch on the recording and also will also switch off the indexing mechanism (even if \cs{makeglossaries} or \cs{makenoidxglossaries} has been used) whereas \pkgopt[alsoindex]{record} will both record and index. +Note that \pkgopt[only]{record} will prevent the \gloskey{see} from +automatically implementing \cs{glssee}. (\gls{bib2gls} deals with the +\gloskey{see} field.) You may explicitly use \cs{glssee} in the +document, but \gls{bib2gls} will ignore the cross-reference if the +\gloskey{see} field was already set for that entry. With the recording on, any of the commands that would typically index the entry (such as \cs{gls}, \cs{glstext} or \cs{glsadd}) @@ -838,9 +844,10 @@ with \styfmt{glossaries} v4.27) to allow for this use of \section{Entry Indexing} \label{sec:wrglossary} -The \styfmt{glossaries-extra} package provides an extra key for -commands like \cs{gls} and \cs{glstext} called -\gloskey[glslink]{noindex}. This is a boolean key. If true, +The \styfmt{glossaries-extra} package provides extra keys for +commands like \cs{gls} and \cs{glstext}: +\begin{description} +\item[{\gloskey[glslink]{noindex}}] This is a boolean key. If true, this suppresses the indexing. (That is, it prevents \cs{gls} or whatever from adding a line to the external glossary file.) This is more useful than the \pkgopt{indexonlyfirst} package option @@ -853,6 +860,51 @@ Note that the \gloskey[glslink]{noindex} key isn't available for \ics{glsadd} (and \ics{glsaddall}) since the whole purpose of that command is to index an entry. +\item[{\gloskey[glslink]{wrgloss}}] (New to v1.14.) +This is may only take the +values \optfmt{before} or \optfmt{after}. By default, commands +that both index and display link text (such as \cs{gls}, +\cs{glstext} and \cs{glslink}), perform the indexing before +the link text as the indexing creates a whatsit that can cause +problems if it occurs after the link text. However, it may +be that in some cases (such as long phrases) you may actually +want the indexing performed after the link text. In this +case you can use \texttt{wrgloss=after} for specific +instances. Note that this option doesn't +have an effect if the indexing has been suppressed through +other settings (such as \gloskey[glslink]{noindex}). + +The default value is set up using +\begin{definition}[\DescribeMacro\glsxtrinitwrgloss] +\cs{glsxtrinitwrgloss} +\end{definition} +which is defined as: +\begin{verbatim} +\newcommand*{\glsxtrinitwrgloss}{% + \glsifattribute{\glslabel}{wrgloss}{after}% + {% + \glsxtrinitwrglossbeforefalse + }% + {% + \glsxtrinitwrglossbeforetrue + }% +} +\end{verbatim} +This sets the conditional +\begin{definition}[\DescribeMacro\ifglsxtrinitwrglossbefore] +\cs{ifglsxtrinitwrgloss} +\end{definition} +which is used to determine where to perform the indexing. + +This means you can set the \catattr{wrgloss} +attribute to \optfmt{after} to automatically use this as +the default for entries with that category attribute. (Note that +adding \gloskey[glslink]{wrgloss} to the default options +in \ics{GlsXtrSetDefaultGlsOpts} will override +\cs{glsxtrinitwrgloss}.) + +\end{description} + There is a new hook that's used each time indexing information is written to the external glossary files: \begin{definition}[\DescribeMacro\glsxtrdowrglossaryhook] @@ -864,6 +916,87 @@ accompanying sample file \texttt{sample-indexhook.tex}, which uses this hook to determine which entries haven't been indexed.) +As from version 1.14, there are two new keys for \cs{glsadd}: +\gloskey[glsadd]{thevalue} and \gloskey[glsadd]{theHvalue}. +These keys are designed for manually adding explicit locations +rather than obtaining the value from the associated counter. (If +you want an automated method, you might want to investigate \gls{bib2gls}.) This is +intended primarily for adding locations in supplementary material +that can't otherwise be picked up by \gls{makeindex} or \gls{xindy}. +They therefore aren't available for commands like \cs{gls} or +\cs{glslink}. Remember that the value will still need to +be a valid location according to the rules of whichever indexing +application you use. + +For example, suppose the file \texttt{suppl.tex} contains: +\begin{verbatim} +\documentclass{article} + +\usepackage{glossaries-extra} + +\newglossaryentry{sample}{name={sample},description={an example}} + +\renewcommand{\thepage}{S.\arabic{page}} + +\begin{document} +First page. +\newpage +\gls{sample}. +\end{document} +\end{verbatim} +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 \gloskey[glsadd]{thevalue} to \texttt{S.2}. For example: +\begin{verbatim} +\documentclass{article} + +\usepackage{glossaries-extra} + +\makeglossaries + +\newglossaryentry{sample}{name={sample},description={an example}} + +\begin{document} +Some \gls{sample} text. + +\printglossaries +\glsadd[thevalue={S.2}]{sample} +\end{document} +\end{verbatim} +(By placing \cs{glsadd} at the end of the document, it adds the +supplementary location to the end of the location list, although the +ordering may be changed by the indexing application depending on its +location collation settings.) + +If you want hyperlinks, things are more complicated. First +you need to set the \catattr{externallocation} to the location of +the PDF file. For example: +\begin{verbatim} +\glssetcategoryattribute{supplemental}{externallocation}{suppl.pdf} + +\newglossaryentry{sample}{category=supplemental, + name={sample},description={an example}} +\end{verbatim} +Next you need to add \texttt{glsxtrsupphypernumber} as the format: +\begin{verbatim} +\glsadd[thevalue={S.2},format=glsxtrsupphypernumber]{sample} +\end{verbatim} +Both documents will need to use the \sty{hyperref} package. +Remember that the counter used for the location also needs to match. +If \cs{theH}\meta{counter} is defined in the other document +and is not the same as \cs{the}\meta{counter}, then you need +to use \gloskey[glsadd]{theHvalue} to set the appropriate value. +See the accompanying sample files \texttt{sample-suppl-hyp.tex} +and \texttt{sample-suppl-main-hyp.tex} for an example that uses +\sty{hyperref}. + +\begin{important} +The hyperlink for the supplementary location may or \emph{may not} +take you to the relevant place in the external PDF file +\emph{depending on your PDF viewer}. Some may not support external +links, and some may take you to the first page or last visited page. +\end{important} + The value of the \gloskey{see} key is now saved as a field. This isn't the case with \styfmt{glossaries}, where the \gloskey{see} attribute is simply used to directly @@ -1144,7 +1277,9 @@ option argument of commands like \cs{glslink} and \cs{gls}. Note that if you don't want \emph{any} indexing, just omit \cs{makeglossaries} and \cs{printglossaries} (or analogous -commands). +commands). If you want to adjust the default for +\gloskey[glslink]{wrgloss}, it's better to do this by redefining +\ics{glsxtrinitwrgloss} instead. Commands like \ics{gls} have star (\texttt{*}) and plus (\texttt{+}) modifiers as a short cut for \texttt{hyper=false} @@ -1892,6 +2027,26 @@ 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{glossaries} package tries to determine the group +title from its label by first checking if +\cs{}\meta{label}\texttt{groupname} exists. If it doesn't exist, +then the title is assumed to be the same as the label. +For example, when typesetting the \qt{A} letter group, +\sty{glossaries} first checks if \cs{Agroupname} exists. +This could potentially cause conflict with another package +that may have some other meaning for \cs{Agroupname}, so +\sty{glossaries-extra} first checks for the existence +of the internal command \cs{glsxtr@grouptitle@}\meta{label} +which shouldn't clash with another package. You can set the +group title using +\begin{definition}[\DescribeMacro\glsxtrsetgrouptitle] +\cs{glsxtrsetgrouptitle}\marg{label}\marg{title} +\end{definition} +For example: +\begin{verbatim} +\glsxtrsetgrouptitle{A}{A (a)} +\end{verbatim} + \subsection{Style Hooks} \label{sec:stylehooks} @@ -3984,6 +4139,10 @@ commands like \cs{gls}.) \pkgopt{indexonlyfirst} package option but only for entries that have a category with this attribute set to \qt{true}. +\item[\catattr{wrgloss}] When using commands like \ics{gls}, +if this attribute is set to \qt{after}, it will automatically +implement \gloskey[glslink]{wrgloss}\optfmt{=after}. (New to v1.14.) + \item[\catattr{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 @@ -5339,9 +5498,12 @@ 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 -these only change the specified field, not any related fields. For +these only change the specified field, not any related values. For example, changing the value of the \gloskey{text} field won't update -the \gloskey{plural} field. +the \gloskey{plural} field. There are also some fields that +should really only be set when entries are defined (such +as the \gloskey{parent} field). Unexpected results may occur +if they are subsequently changed. \begin{definition}[\DescribeMacro\GlsXtrSetField] \cs{GlsXtrSetField}\marg{label}\marg{field}\marg{value} @@ -6115,6 +6277,14 @@ the label. \item[sample-prefix.tex] Integrate \sty{glossaries-prefix}. +\item[sample-suppl-main.tex] Uses \gloskey[glsadd]{thevalue} to +reference a location in the supplementary file +\texttt{sample-suppl.tex}. + +\item[sample-suppl-main-hyp.tex] A more complicated version to the +above that uses the \sty{hyperref} package to reference a location +in the supplementary file \texttt{sample-suppl-hyp.tex}. + \end{description} \chapter{Multi-Lingual Support} 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 f39bdfb6db3..d494667edc2 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 2eecf967253..fd396472bbd 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-acronym-desc.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-acronym-desc.pdf index 603ebd3aa6f..c8a6b8ece28 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 efd0ee1d4ca..6893d548878 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 6c60bf05337..baa5c4bb487 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-alias.tex b/Master/texmf-dist/doc/latex/glossaries-extra/sample-alias.tex index b6d0f8fa692..dd14470fbcf 100644 --- a/Master/texmf-dist/doc/latex/glossaries-extra/sample-alias.tex +++ b/Master/texmf-dist/doc/latex/glossaries-extra/sample-alias.tex @@ -25,13 +25,24 @@ {}% } +\newglossaryentry{sample}{name={sample}, +description={an example}} + +\newglossaryentry{sample-alias}{name={sample-alias}, +description={\nopostdesc}, +alias={sample} +} + \begin{document} \gls{numberlist} or \gls{locationlist}. +\gls{sample} or \gls{sample-alias}. + \newpage \gls{numberlist} +\gls{sample-alias} \newpage \printglossaries \end{document} 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 d1dd64a84bd..3c0bdb399a6 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 1b6ad19cc23..68fc849251e 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 1e755012ca5..7c9e4a37767 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 2d5f6781cfa..200d3e68c7a 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 44a98df745c..d6e7ef776f1 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 7ef1f6690d0..83e90c43ae4 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 bfb1c8b510b..f70be962d28 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-crossref.tex b/Master/texmf-dist/doc/latex/glossaries-extra/sample-crossref.tex index 59a7c750c6e..896ce4bdee2 100644 --- a/Master/texmf-dist/doc/latex/glossaries-extra/sample-crossref.tex +++ b/Master/texmf-dist/doc/latex/glossaries-extra/sample-crossref.tex @@ -3,6 +3,7 @@ % arara: pdflatex \documentclass{article} +\usepackage[colorlinks]{hyperref} \usepackage{glossaries-extra} \makeglossaries 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 1dd5af91a0a..cd735277214 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 cf4b3d15f58..fde21b1f63b 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 544d14619a3..aa550263d73 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 4b043f0f5f9..18067bd3c2d 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 5ed8a714b6d..f5917e37b38 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 545a8cae4b9..f73e67317bf 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 fbecc3285d1..13688c2434b 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 7af2da589b8..019eb661ebf 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 6b9bd14934b..52e0f44ecca 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-mixed-abbrv-styles.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-mixed-abbrv-styles.pdf index 0bd0ebd1da5..15824e4824b 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 266ad977a6f..c877d1caa0b 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 e40325863f7..d5150a59082 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 46fc07925e2..0ba3393e3de 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 9894b439edd..581ed6af93a 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 25e19c73a78..e471146fdd9 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 123f5d470e9..fa76a89e41b 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 2a88885332b..b920238d014 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 e4537158b97..b93d0321862 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 c77ace2b413..a9823de9136 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 8918a665022..54b138dcfa9 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 aebd95f1281..a356b9c6b22 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 7f02a421e2b..fa2e6f72e91 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 0eb73efe5ec..1aab7d2e221 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 8c6f7516267..9e34654efc6 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 b1508580864..01665654c6b 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 new file mode 100644 index 00000000000..ff8bcbafc3e Binary files /dev/null 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-hyp.tex b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-hyp.tex new file mode 100644 index 00000000000..346496ec2fa --- /dev/null +++ b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-hyp.tex @@ -0,0 +1,25 @@ +% arara: pdflatex +% arara: makeglossaries +% arara: pdflatex +\documentclass{article} + +\usepackage[colorlinks]{hyperref} +\usepackage{glossaries-extra} + +\makeglossaries + +\newglossaryentry{sample}{name={sample},description={an example}} + +\renewcommand{\thesection}{S.\arabic{section}} +\renewcommand{\theHsection}{\thepart.\thesection} + +\begin{document} +\part{Sample Part} +\section{Sample Section} + +\part{Another Part} +\section{Another Section} +\gls[counter=section]{sample}. + +\printglossaries +\end{document} 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 new file mode 100644 index 00000000000..adfa1e06a5b Binary files /dev/null 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-hyp.tex b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main-hyp.tex new file mode 100644 index 00000000000..4f53fca2ddb --- /dev/null +++ b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main-hyp.tex @@ -0,0 +1,24 @@ +% arara: pdflatex +% arara: makeglossaries +% arara: pdflatex +\documentclass{article} + +\usepackage[colorlinks]{hyperref} +\usepackage{glossaries-extra} + +\makeglossaries + +\glssetcategoryattribute{supplementary}{externallocation}{sample-suppl-hyp.pdf} + +\newglossaryentry{sample}{category={supplementary}, + name={sample},description={an example}} + +\begin{document} +Some \gls{sample} text. + +Test link: \hyperref{sample-suppl-hyp.pdf}{}{section.II.S.2}{S.2}. + +\printglossaries +\glsadd[format=glsxtrsupphypernumber,thevalue={S.2},theHvalue={II.S.2},counter=section]{sample} +\end{document} + 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 new file mode 100644 index 00000000000..c328076cb42 Binary files /dev/null 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-main.tex b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main.tex new file mode 100644 index 00000000000..2945b55f81e --- /dev/null +++ b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main.tex @@ -0,0 +1,18 @@ +% arara: pdflatex +% arara: makeglossaries +% arara: pdflatex +\documentclass{article} + +\usepackage{glossaries-extra} + +\makeglossaries + +\newglossaryentry{sample}{name={sample},description={an example}} + +\begin{document} +Some \gls{sample} text. + +\printglossaries +\glsadd[thevalue={S.2}]{sample} +\end{document} + diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl.pdf new file mode 100644 index 00000000000..182ca047315 Binary files /dev/null and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl.tex b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl.tex new file mode 100644 index 00000000000..6b295688fc9 --- /dev/null +++ b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl.tex @@ -0,0 +1,14 @@ +% arara: pdflatex +\documentclass{article} + +\usepackage{glossaries-extra} + +\newglossaryentry{sample}{name={sample},description={an example}} + +\renewcommand{\thepage}{S.\arabic{page}} + +\begin{document} +First page. +\newpage +\gls{sample}. +\end{document} 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 ac1b9a19c83..28e7f2ce24f 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 d45c6b7931c..ab3873601ba 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 042fdcc150a..15276795b10 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 df71149c8ee..f01a67f5c88 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 13ee7144aca..2bf1059077f 100644 --- a/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.dtx +++ b/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.dtx @@ -1,14 +1,14 @@ %\iffalse % glossaries-extra.dtx generated using makedtx version 1.1 (c) Nicola Talbot % Command line args: -% -src "glossaries-extra.sty\Z=>glossaries-extra.sty" -% -src "glossaries-extra-stylemods.sty\Z=>glossaries-extra-stylemods.sty" % -author "Nicola Talbot" % -section "chapter" % -codetitle "Main Package Code (\\styfmt{glossaries-extra.sty})" +% -src "glossaries-extra.sty\Z=>glossaries-extra.sty" +% -src "glossaries-extra-stylemods.sty\Z=>glossaries-extra-stylemods.sty" % -doc "glossaries-extra-codedoc.tex" % glossaries-extra -% Created on 2017/2/7 9:40 +% Created on 2017/4/18 11:44 %\fi %\iffalse %<*package> @@ -118,7 +118,7 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of \setcounter{IndexColumns}{2} -\CheckSum{11419} +\CheckSum{11746} \newcommand*{\ifirstuse}{\iterm{first use}} \newcommand*{\firstuse}{\gls{firstuse}} @@ -154,13 +154,13 @@ styles (glossaries):>#1={\protect\ttfamily#1}|main}} \raggedright } -\title{glossaries-extra.sty v1.13: +\title{glossaries-extra.sty v1.14: documented code} \author{Nicola L.C. Talbot\\[10pt] Dickimaw Books\\ \url{http://www.dickimaw-books.com/}} -\date{2017-02-07} +\date{2017-04-18} \begin{document} \DocInput{glossaries-extra.dtx} @@ -205,7 +205,7 @@ Dickimaw Books\\ %\section{Package Initialisation and Options} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra}[2017/02/07 v1.13 (NLCT)] +\ProvidesPackage{glossaries-extra}[2017/04/18 v1.14 (NLCT)] % \end{macrocode} % Requires \sty{xkeyval} to define package options. % \begin{macrocode} @@ -362,16 +362,23 @@ Dickimaw Books\\ } % \end{macrocode} % -%In the event that someone wants to develop a post-processor -%that needs to know what entries have been used in the document, -%v1.08 introduces the \pkgopt{record} option, which will write +%To assist bib2gls, v1.08 introduces the \pkgopt{record} option, which will write %information to the aux file whenever an entry needs to be indexed. % %\begin{macro}{\@glsxtr@record} %\changes{1.08}{2016-12-13}{new} +%\changes{1.14}{2017-04-18}{added third arg} +%Does nothing by default. +% \begin{macrocode} +\newcommand*{\@glsxtr@record}[3]{} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\glsxtr@recordsee} +%\changes{1.14}{2017-04-18}{new} %Does nothing by default. % \begin{macrocode} -\newcommand*{\@glsxtr@record}[2]{} +\newcommand*{\glsxtr@recordsee}[2]{} % \end{macrocode} %\end{macro} % @@ -380,11 +387,14 @@ Dickimaw Books\\ %This is the actual code that does the recording %The first argument is the option list (as passed in the first optional %argument to commands like \cs{gls}). This allows the \gloskey[glslink]{noindex} -%setting to be picked up. +%setting to be picked up. The third argument is the key family +%(\texttt{glslink} in most cases, \texttt{glossadd} for \cs{glsadd}). % \begin{macrocode} -\newcommand*{\@@glsxtr@record}[2]{% +\newcommand*{\@@glsxtr@record}[3]{% \begingroup \def\@glsnumberformat{glsnumberformat}% + \def\@glsxtr@thevalue{}% + \def\@glsxtr@theHvalue{\@glsxtr@thevalue}% \ifcsdef{glo@#2@counter}% {% \edef\@gls@counter{\csname glo@#2@counter\endcsname}% @@ -396,7 +406,7 @@ Dickimaw Books\\ % \begin{macrocode} \def\@gls@counter{page}% }% - \setkeys{glslink}{#1}% + \setkeys{#3}{#1}% \ifKV@glslink@noindex \else \glswriteentry{#2}% @@ -404,7 +414,14 @@ Dickimaw Books\\ % \end{macrocode} %Save the entry counter. % \begin{macrocode} - \glsxtr@saveentrycounter + \ifdefempty{\@glsxtr@thevalue}% + {% + \glsxtr@saveentrycounter + }% + {% + \let\theglsentrycounter\@glsxtr@thevalue + \def\theHglsentrycounter{\@glsxtr@theHvalue}% + }% % \end{macrocode} %Temporarily redefine \cs{@@do@@wrglossary} so we can use %\cs{glsxtr@@do@wrglossary}. @@ -458,6 +475,18 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % +%\begin{macro}{\@glsxtr@recordsee} +%\changes{1.14}{2017-04-18}{new} +%Deal with \cs{glssee} in record mode. +% \begin{macrocode} +\newcommand*{\@glsxtr@recordsee}[2]{% + \def\@gls@xref{#2}% + \@onelevel@sanitize\@gls@xref + \protected@write\@auxout{}{\string\glsxtr@recordsee{#1}{\@gls@xref}}% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\printunsrtglossaryunit} %\changes{1.12}{2017-02-03}{new} % \begin{macrocode} @@ -551,7 +580,9 @@ Dickimaw Books\\ %Don't record. % \begin{macrocode} \def\glsxtr@setup@record{% - \renewcommand*{\@glsxtr@record}[2]{}% + \let\@glo@autosee\@glsxtr@org@gloautosee + \renewcommand*{\@do@seeglossary}{\@glsxtr@org@doseeglossary}% + \renewcommand*{\@glsxtr@record}[3]{}% \let\@@do@wrglossary\glsxtr@@do@wrglossary \let\@gls@saveentrycounter\glsxtr@indexonly@saveentrycounter \let\glsxtrundefaction\@glsxtr@err@undefaction @@ -565,6 +596,8 @@ Dickimaw Books\\ %Only record (don't index). % \begin{macrocode} \def\glsxtr@setup@record{% + \ifdef\@glo@autosee{\let\@glo@autosee\relax}{}% + \let\@do@seeglossary\@glsxtr@recordsee \let\@glsxtr@record\@@glsxtr@record \let\@@do@wrglossary\@gobble \let\@gls@saveentrycounter\relax @@ -585,6 +618,8 @@ Dickimaw Books\\ %Record and index. % \begin{macrocode} \def\glsxtr@setup@record{% + \let\@glo@autosee\@glsxtr@org@gloautosee + \renewcommand*{\@do@seeglossary}{\@glsxtr@org@doseeglossary}% \let\@glsxtr@record\@@glsxtr@record \let\@@do@wrglossary\glsxtr@@do@wrglossary \let\@gls@saveentrycounter\glsxtr@indexonly@saveentrycounter @@ -1030,6 +1065,25 @@ Dickimaw Books\\ \@glsxtr@doaccsupp % \end{macrocode} % +%\begin{macro}{\@glsxtr@org@doseeglossary} +%Save original definition of \cs{@do@seeglossary} +% \begin{macrocode} +\let\@glsxtr@org@doseeglossary\@do@seeglossary +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@glsxtr@org@gloautosee} +%\changes{1.14}{2017-04-18}{new} +%Save and restore original definition of \cs{@glo@autosee}. +%(That command may not be defined as it was only introduced +%to \sty{glossaries} v4.30, in which case the synonym +%won't be defined either.) +% \begin{macrocode} +\let\@glsxtr@org@gloautosee\@glo@autosee +% \end{macrocode} +%\end{macro} +% +% % Define abbreviations glossaries if required. % \begin{macrocode} \@glsxtr@abbreviationsdef @@ -2712,7 +2766,7 @@ Dickimaw Books\\ %exists. %\changes{1.08}{2016-12-13}{added \cs{@glsxtr@record}} % \begin{macrocode} - \@glsxtr@record{#2}{#3}% + \@glsxtr@record{#2}{#3}{glslink}% \glsdoifexists{#3}% {% % \end{macrocode} @@ -2742,7 +2796,7 @@ Dickimaw Books\\ % \begin{macrocode} \let\@glsxtr@org@gls@\@gls@ \def\@gls@#1#2{% - \@glsxtr@record{#1}{#2}% + \@glsxtr@record{#1}{#2}{glslink}% \@glsxtr@org@gls@{#1}{#2}% }% % \end{macrocode} @@ -2754,7 +2808,7 @@ Dickimaw Books\\ % \begin{macrocode} \let\@glsxtr@org@glspl@\@glspl@ \def\@glspl@#1#2{% - \@glsxtr@record{#1}{#2}% + \@glsxtr@record{#1}{#2}{glslink}% \@glsxtr@org@glspl@{#1}{#2}% }% % \end{macrocode} @@ -2766,7 +2820,7 @@ Dickimaw Books\\ % \begin{macrocode} \let\@glsxtr@org@Gls@\@Gls@ \def\@Gls@#1#2{% - \@glsxtr@record{#1}{#2}% + \@glsxtr@record{#1}{#2}{glslink}% \@glsxtr@org@Gls@{#1}{#2}% }% % \end{macrocode} @@ -2778,7 +2832,7 @@ Dickimaw Books\\ % \begin{macrocode} \let\@glsxtr@org@Glspl@\@Glspl@ \def\@Glspl@#1#2{% - \@glsxtr@record{#1}{#2}% + \@glsxtr@record{#1}{#2}{glslink}% \@glsxtr@org@Glspl@{#1}{#2}% }% % \end{macrocode} @@ -2790,7 +2844,7 @@ Dickimaw Books\\ % \begin{macrocode} \let\@glsxtr@org@GLS@\@GLS@ \def\@GLS@#1#2{% - \@glsxtr@record{#1}{#2}% + \@glsxtr@record{#1}{#2}{glslink}% \@glsxtr@org@GLS@{#1}{#2}% }% % \end{macrocode} @@ -2803,7 +2857,7 @@ Dickimaw Books\\ % \begin{macrocode} \let\@glsxtr@org@GLSpl@\@GLSpl@ \def\@GLSpl@#1#2{% - \@glsxtr@record{#1}{#2}% + \@glsxtr@record{#1}{#2}{glslink}% \@glsxtr@org@GLSpl@{#1}{#2}% }% % \end{macrocode} @@ -2817,7 +2871,7 @@ Dickimaw Books\\ %argument. % \begin{macrocode} \renewcommand*{\@glsdisp}[3][]{% - \@glsxtr@record{#1}{#2}% + \@glsxtr@record{#1}{#2}{glslink}% \glsdoifexists{#2}{% \let\do@gls@link@checkfirsthyper\@gls@link@checkfirsthyper \let\glsifplural\@secondoftwo @@ -2842,7 +2896,7 @@ Dickimaw Books\\ %Redefine to include \cs{@glsxtr@record} % \begin{macrocode} \renewcommand*{\@gls@@link}[3][]{% - \@glsxtr@record{#1}{#2}% + \@glsxtr@record{#1}{#2}{glslink}% \glsdoifexistsordo{#2}% {% \let\do@gls@link@checkfirsthyper\relax @@ -2856,19 +2910,138 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % +%\begin{macro}{\glsxtrinitwrgloss} +%\changes{1.14}{2017-04-18}{new} +%Set the default if the \gloskey[glslink]{wrgloss} is omitted. +% \begin{macrocode} +\newcommand*{\glsxtrinitwrgloss}{% + \glsifattribute{\glslabel}{wrgloss}{after}% + {% + \glsxtrinitwrglossbeforefalse + }% + {% + \glsxtrinitwrglossbeforetrue + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\ifglsxtrwrglossbefore} +%\changes{1.14}{2017-04-18}{new} +%Conditional to determine if the indexing should be done before the +%link text. +% \begin{macrocode} +\newif\ifglsxtrinitwrglossbefore +\glsxtrinitwrglossbeforetrue +% \end{macrocode} +%\end{macro} +% +% Define a \gloskey[glslink]{wrgloss} key to determine whether to +% write the glossary information before or after the link text. +% \begin{macrocode} +\define@choicekey{glslink}{wrgloss}[\val\nr]{before,after}% +{% + \ifcase\nr\relax + \glsxtrinitwrglossbeforetrue + \or + \glsxtrinitwrglossbeforefalse + \fi +} +% \end{macrocode} +% +%\begin{macro}{\@gls@link} +%\changes{1.14}{2017-04-18}{added redefinition} +%Redefine to allow the indexing to be placed after the link text. By +%default this is done before the link text to prevent problems that +%can occur from the whatsit, but there may be times when the user +%would like the indexing done afterwards even though it causes a +%whatsit. +% \begin{macrocode} +\def\@gls@link[#1]#2#3{% + \leavevmode + \edef\glslabel{\glsdetoklabel{#2}}% + \def\@gls@link@opts{#1}% + \let\@gls@link@label\glslabel + \def\@glsnumberformat{glsnumberformat}% + \edef\@gls@counter{\csname glo@\glslabel @counter\endcsname}% + \edef\glstype{\csname glo@\glslabel @type\endcsname}% + \let\org@ifKV@glslink@hyper\ifKV@glslink@hyper +% \end{macrocode} +% Initialise when indexing should occur (new to v1.14). +% \begin{macrocode} + \glsxtrinitwrgloss +% \end{macrocode} +% As the original definition. Note that the default link options may +% override \cs{glsxtrinitwrgloss}. +% \begin{macrocode} + \@gls@setdefault@glslink@opts + \do@glsdisablehyperinlist + \do@gls@link@checkfirsthyper + \setkeys{glslink}{#1}% + \glslinkpostsetkeys + \@gls@saveentrycounter + \@gls@setsort{\glslabel}% +% \end{macrocode} +% Do write if it should occur before the link text: +% \begin{macrocode} + \ifglsxtrinitwrglossbefore + \@do@wrglossary{#2}% + \fi +% \end{macrocode} +% Do the link text: +% \begin{macrocode} + \ifKV@glslink@hyper + \@glslink{\glolinkprefix\glslabel}{\glstextformat{#3}}% + \else + \glsdonohyperlink{\glolinkprefix\glslabel}{\glstextformat{#3}}% + \fi +% \end{macrocode} +% Do write if it should occur after the link text: +% \begin{macrocode} + \ifglsxtrinitwrglossbefore + \else + \@do@wrglossary{#2}% + \fi +% \end{macrocode} +% As the original definition: +% \begin{macrocode} + \let\ifKV@glslink@hyper\org@ifKV@glslink@hyper +} +% \end{macrocode} +%\end{macro} +% +%\changes{1.14}{2017-04-18}{added \cs{glsadd} option \texttt{thevalue}} +% \begin{macrocode} +\define@key{glossadd}{thevalue}{\def\@glsxtr@thevalue{#1}} +% \end{macrocode} +% +%\changes{1.14}{2017-04-18}{added \cs{glsadd} option \texttt{theHvalue}} +% \begin{macrocode} +\define@key{glossadd}{theHvalue}{\def\@glsxtr@theHvalue{#1}} +% \end{macrocode} +% %\begin{macro}{\glsadd} %\changes{1.08}{2016-12-13}{added \cs{@glsxtr@record}} %Redefine to include \cs{@glsxtr@record} % \begin{macrocode} \renewrobustcmd*{\glsadd}[2][]{% \@gls@adjustmode - \@glsxtr@record{#1}{#2}% + \@glsxtr@record{#1}{#2}{glossadd}% \glsdoifexists{#2}% {% \def\@glsnumberformat{glsnumberformat}% \edef\@gls@counter{\csname glo@\glsdetoklabel{#2}@counter\endcsname}% + \def\@glsxtr@thevalue{}% + \def\@glsxtr@theHvalue{\@glsxtr@thevalue}% \setkeys{glossadd}{#1}% - \@gls@saveentrycounter + \ifdefempty{\@glsxtr@thevalue}% + {% + \@gls@saveentrycounter + }% + {% + \let\theglsentrycounter\@glsxtr@thevalue + \def\theHglsentrycounter{\@glsxtr@theHvalue}% + }% \@@do@wrglossary{#2}% }% } @@ -4284,6 +4457,22 @@ Dickimaw Books\\ %\end{macro} % %\begin{macro}{\glsdisablehyper} +%\changes{1.14}{2017-04-18}{added redefinition} +% Redefine to set \cs{glslabel} (to allow it to be picked up by +% \cs{glsdohyperlink}). Also made it robust and added grouping to localise the +% definition of \cs{glslabel}. The original internal command +% {@glo@label} could probably be simply replaced with \cs{glslabel}, +% but it's retained in case its removal causes unexpected problems. +% \begin{macrocode} +\renewrobustcmd*{\glshyperlink}[2][\glsentrytext{\@glo@label}]{% + \def\@glo@label{#2}% + {\edef\glslabel{#2}% + \@glslink{\glolinkprefix\glslabel}{#1}}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\glsdisablehyper} %\changes{0.5.4}{2015-12-15}{added} % Redefine in case we have an old version of \styfmt{glossaries}. % \begin{macrocode} @@ -5109,7 +5298,10 @@ Dickimaw Books\\ % \begin{macrocode} \let\@cgls@\@@cgls@ \let\@cglspl@\@@cglspl@ - \let\@cGLS@\@@cGLS@ +% \end{macrocode} +%\changes{1.14}{2017-04-18}{fixed assignment of \cs{@cGls@}} +% \begin{macrocode} + \let\@cGls@\@@cGls@ \let\@cGlspl@\@@cGlspl@ \let\@cGLS@\@@cGLS@ \let\@cGLSpl@\@@cGLSpl@ @@ -5657,7 +5849,10 @@ Dickimaw Books\\ % \begin{macrocode} \let\@cgls@\@@cgls@ \let\@cglspl@\@@cglspl@ - \let\@cGLS@\@@cGLS@ +% \end{macrocode} +%\changes{1.14}{2017-04-18}{fixed assignment of \cs{@cGls@}} +% \begin{macrocode} + \let\@cGls@\@@cGls@ \let\@cGlspl@\@@cGlspl@ \let\@cGLS@\@@cGLS@ \let\@cGLSpl@\@@cGLSpl@ @@ -6026,7 +6221,6 @@ Dickimaw Books\\ % \end{macrocode} %Adjust \cs{@do@seeglossary} % \begin{macrocode} - \let\@glsxtr@org@doseeglossary\@do@seeglossary \renewcommand*{\@do@seeglossary}[2]{% \edef\@gls@label{\glsdetoklabel{##1}}% \edef\@gls@type{\csname glo@\@gls@label @type\endcsname}% @@ -6383,6 +6577,97 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % +%\begin{macro}{\@gls@noidx@getgrouptitle} +%\changes{1.14}{2017-04-18}{new} +%Patch. +% \begin{macrocode} +\renewcommand*{\@gls@noidx@getgrouptitle}[2]{% + \protected@edef\@glsxtr@titlelabel{glsxtr@grouptitle@#1}% + \@onelevel@sanitize\@glsxtr@titlelabel + \ifcsundef{\@glsxtr@titlelabel}% + {% + \DTLifint{#1}% + {% + \ifnum#1<256\relax + \edef#2{\char#1\relax}% + \else + \edef#2{#1}% + \fi + }% + {% + \ifcsundef{#1groupname}% + {\def#2{#1}}% + {\letcs#2{#1groupname}}% + }% + }% + {% + \letcs#2{\@glsxtr@titlelabel}% + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\glsxtr@org@getgrouptitle} +%\changes{1.14}{2017-04-18}{new} +%Save original definition of \cs{@gls@getgrouptitle} +% \begin{macrocode} +\let\glsxtr@org@getgrouptitle\@gls@getgrouptitle +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\glsxtrgetgrouptitle} +%\changes{1.14}{2017-04-18}{new} +%Provide a user-level command to fetch the group title. The first +%argument is the group label. The second argument is a control +%sequence in which to store the title. +% \begin{macrocode} +\newrobustcmd{\glsxtrgetgrouptitle}[2]{% + \protected@edef\@glsxtr@titlelabel{glsxtr@grouptitle@#1}% + \@onelevel@sanitize\@glsxtr@titlelabel + \ifcsdef{\@glsxtr@titlelabel} + {\letcs{#2}{\@glsxtr@titlelabel}}% + {\glsxtr@org@getgrouptitle{#1}{#2}}% +} +\let\@gls@getgrouptitle\glsxtrgetgrouptitle +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\glsxtrsetgrouptitle} +%\changes{1.14}{2017-04-18}{new} +%Sets the title for the given group label. +% \begin{macrocode} +\newcommand{\glsxtrsetgrouptitle}[2]{% + \protected@edef\@glsxtr@titlelabel{glsxtr@grouptitle@#1}% + \@onelevel@sanitize\@glsxtr@titlelabel + \csxdef{\@glsxtr@titlelabel}{#2}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\glsnavigation} +%\changes{1.14}{2017-04-18}{new} +%Redefine to use new user-level command. +% \begin{macrocode} +\renewcommand*{\glsnavigation}{% + \def\@gls@between{}% + \ifcsundef{@gls@hypergrouplist@\@glo@type}% + {% + \def\@gls@list{}% + }% + {% + \expandafter\let\expandafter\@gls@list + \csname @gls@hypergrouplist@\@glo@type\endcsname + }% + \@for\@gls@tmp:=\@gls@list\do{% + \@gls@between + \glsxtrgetgrouptitle{\@gls@tmp}{\@gls@grptitle}% + \glsnavhyperlink{\@gls@tmp}{\@gls@grptitle}% + \let\@gls@between\glshypernavsep + }% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\@print@noidx@glossary} %\changes{1.11}{2017-01-19}{added redefinition} % \begin{macrocode} @@ -6485,14 +6770,18 @@ Dickimaw Books\\ % %\begin{macro}{\glsxtrdisplayendloc} %\changes{1.12}{2017-02-03}{new} +%\changes{1.14}{2017-04-18}{added check for empty format} %End of a location range. % \begin{macrocode} \newcommand*{\glsxtrdisplayendloc}[2]{% - \ifdefstring{\glsxtrlocrangefmt}{#1}{}% - {\GlossariesExtraWarning{Mismatched end location range - (start=\glsxtrlocrangefmt, end=#1)}% - }% - \glsxtrdisplayendlochook{#1}{#2}% + \edef\@glsxtr@tmp{#1}% + \ifdefempty{\@glsxtr@tmp}{\def\@glsxtr@tmp{glsnumberformat}}{}% + \ifx\glsxtrlocrangefmt\@glsxtr@tmp + \else + \GlossariesExtraWarning{Mismatched end location range + (start=\glsxtrlocrangefmt, end=\@glsxtr@tmp)}% + \fi + \expandafter\glsxtrdisplayendlochook\expandafter{\@glsxtr@tmp}{#2}% \expandafter\glsxtrdisplaysingleloc \expandafter{\glsxtrlocrangefmt}{#2}% \def\glsxtrlocrangefmt{}% @@ -6515,6 +6804,61 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % +%\begin{macro}{\@gls@removespaces} +%\changes{1.14}{2017-04-18}{new} +%Redefine to allow adjustments to location hyperlink. +% \begin{macrocode} +\def\@gls@removespaces#1 #2\@nil{% + \toks@=\expandafter{\the\toks@#1}% + \ifx\\#2\\% + \edef\x{\the\toks@}% + \ifx\x\empty + \else + \glsxtrlocationhyperlink{\glsentrycounter}{\@glo@counterprefix}{\the\toks@}% + \fi + \else + \@gls@ReturnAfterFi{% + \@gls@removespaces#2\@nil + }% + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\glsxtrlocationhyperlink} +%\changes{1.14}{2017-04-18}{new} +% \begin{macrocode} +\newcommand*{\glsxtrlocationhyperlink}[3]{% + \ifdefvoid\glsxtrsupplocationurl + {% + \hyperlink{#1#2#3}{#3}% + }% + {% + \hyperref{\glsxtrsupplocationurl}{}{#1#2#3}{#3}% + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\glsxtrsupphypernumber} +%\changes{1.14}{2017-04-18}{new} +% \begin{macrocode} +\newcommand*{\glsxtrsupphypernumber}[1]{% + {% + \glshasattribute{\glscurrententrylabel}{externallocation}% + {% + \def\glsxtrsupplocationurl{% + \glsgetattribute{\glscurrententrylabel}{externallocation}}% + }% + {% + \def\glsxtrsupplocationurl{}% + }% + \glshypernumber{#1}% + }% +} +% \end{macrocode} +%\end{macro} +% % Give a bit of assistance to new users who are confused and don't % know how to read transcript messages. %\begin{macro}{\@print@glossary} @@ -6937,6 +7281,37 @@ Dickimaw Books\\ \AtBeginDocument {\protected@write\@auxout{}{\string\glsxtr@linkprefix{\glolinkprefix}}}% \let\glsxtr@writefields\relax +% \end{macrocode} +%If the \pkgopt{automake} option is on, try running bib2gls if +%the aux file exists. +%\changes{1.14}{2017-04-18}{added check for automake} +% \begin{macrocode} + \ifglsautomake + \IfFileExists{\jobname.aux}% + {\immediate\write18{bib2gls "\jobname"}}{}% +% \end{macrocode} +%If \cs{makeglossaries} is also used, allow makeindex/xindy to +%also be run, otherwise disable the error message about requiring +%\cs{makeglossaries} with \pkgopt[true]{automake}. +% \begin{macrocode} + \ifx\@gls@doautomake\@gls@doautomake@err + \let\@gls@doautomake\relax + \fi + \fi +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@glsxtr@do@automake@err} +%\changes{1.14}{2017-04-18}{new} +% \begin{macrocode} +\newcommand*{\@gls@doautomake@err}{% + \PackageError{glossaries}{You must use + \string\makeglossaries\space with automake=true} + {% + Either remove the automake=true setting or + add \string\makeglossaries\space to your document preamble.% + }% } % \end{macrocode} %\end{macro} @@ -7125,8 +7500,12 @@ Dickimaw Books\\ %\begin{macro}{\@glsxtr@unsrt@getgrouptitle} %\changes{1.11}{2017-01-19}{new} % \begin{macrocode} -\newcommand*{\@glsxtr@unsrt@getgrouptitle}[2]{% - \def#2{#1}% +\newrobustcmd*{\@glsxtr@unsrt@getgrouptitle}[2]{% + \protected@edef\@glsxtr@titlelabel{glsxtr@grouptitle@#1}% + \@onelevel@sanitize\@glsxtr@titlelabel + \ifcsdef{\@glsxtr@titlelabel} + {\letcs{#2}{\@glsxtr@titlelabel}}% + {\def#2{#1}}% } % \end{macrocode} %\end{macro} @@ -7182,7 +7561,8 @@ Dickimaw Books\\ {}% {% \ifdefempty{\@gls@currentlettergroup}{}{\glsgroupskip}% - \glsgroupheading{\@glo@thislettergrp}% + \expandafter\glsgroupheading\expandafter + {\csname glo@\glsdetoklabel{#1}@group\endcsname}% }% \let\@gls@currentlettergroup\@glo@thislettergrp \ifdefvoid{\@gls@location}% @@ -14569,7 +14949,7 @@ Dickimaw Books\\ % First identify package: % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra-stylemods}[2017/02/07 v1.13 (NLCT)] +\ProvidesPackage{glossaries-extra-stylemods}[2017/04/18 v1.14 (NLCT)] % \end{macrocode} % Provide package options to automatically load required predefined % styles. The simplest method is to just test for the existence of 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 98905986c4f..5cc3435e316 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.1 2017/2/7 9:40 +% glossaries-extra.ins generated using makedtx version 1.1 2017/4/18 11:44 \input docstrip \preamble @@ -8,7 +8,7 @@ This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 - of this license of (at your option) any later version. + of this license or (at your option) any later version. The latest version of this license is in http://www.latex-project.org/lppl.txt and version 1.3 or later is part of all distributions of LaTeX 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 946575a1845..43d7ac64cc9 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 @@ -11,7 +11,7 @@ %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 -%% of this license of (at your option) any later version. +%% of this license or (at your option) any later version. %% The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.3 or later is part of all distributions of LaTeX @@ -39,7 +39,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra-stylemods}[2017/02/07 v1.13 (NLCT)] +\ProvidesPackage{glossaries-extra-stylemods}[2017/04/18 v1.14 (NLCT)] \newcommand*{\@glsxtr@loadstyles}{} \DeclareOption*{% \IfFileExists{glossary-\CurrentOption.sty} 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 888488ab869..df30651a874 100644 --- a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty +++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty @@ -11,7 +11,7 @@ %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 -%% of this license of (at your option) any later version. +%% of this license or (at your option) any later version. %% The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.3 or later is part of all distributions of LaTeX @@ -39,7 +39,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra}[2017/02/07 v1.13 (NLCT)] +\ProvidesPackage{glossaries-extra}[2017/04/18 v1.14 (NLCT)] \RequirePackage{xkeyval} \RequirePackage{etoolbox} \@ifpackageloaded{glossaries} @@ -114,10 +114,13 @@ \let\@glsxtr@redef@forglsentries\relax \fi } -\newcommand*{\@glsxtr@record}[2]{} -\newcommand*{\@@glsxtr@record}[2]{% +\newcommand*{\@glsxtr@record}[3]{} +\newcommand*{\glsxtr@recordsee}[2]{} +\newcommand*{\@@glsxtr@record}[3]{% \begingroup \def\@glsnumberformat{glsnumberformat}% + \def\@glsxtr@thevalue{}% + \def\@glsxtr@theHvalue{\@glsxtr@thevalue}% \ifcsdef{glo@#2@counter}% {% \edef\@gls@counter{\csname glo@#2@counter\endcsname}% @@ -125,12 +128,19 @@ {% \def\@gls@counter{page}% }% - \setkeys{glslink}{#1}% + \setkeys{#3}{#1}% \ifKV@glslink@noindex \else \glswriteentry{#2}% {% - \glsxtr@saveentrycounter + \ifdefempty{\@glsxtr@thevalue}% + {% + \glsxtr@saveentrycounter + }% + {% + \let\theglsentrycounter\@glsxtr@thevalue + \def\theHglsentrycounter{\@glsxtr@theHvalue}% + }% \let\@@do@@wrglossary\@glsxtr@dorecord \glsxtr@@do@wrglossary{#2}% }% @@ -153,6 +163,11 @@ \newcommand*{\@glsxtr@op@recordcounter}[1]{% \eappto\@glsxtr@counterrecordhook{\noexpand\@glsxtr@docounterrecord{#1}}% } +\newcommand*{\@glsxtr@recordsee}[2]{% + \def\@gls@xref{#2}% + \@onelevel@sanitize\@gls@xref + \protected@write\@auxout{}{\string\glsxtr@recordsee{#1}{\@gls@xref}}% +} \newcommand{\printunsrtglossaryunit}{% \print@noop@unsrtglossaryunit } @@ -204,7 +219,9 @@ {% \ifcase\nr\relax \def\glsxtr@setup@record{% - \renewcommand*{\@glsxtr@record}[2]{}% + \let\@glo@autosee\@glsxtr@org@gloautosee + \renewcommand*{\@do@seeglossary}{\@glsxtr@org@doseeglossary}% + \renewcommand*{\@glsxtr@record}[3]{}% \let\@@do@wrglossary\glsxtr@@do@wrglossary \let\@gls@saveentrycounter\glsxtr@indexonly@saveentrycounter \let\glsxtrundefaction\@glsxtr@err@undefaction @@ -215,6 +232,8 @@ }% \or \def\glsxtr@setup@record{% + \ifdef\@glo@autosee{\let\@glo@autosee\relax}{}% + \let\@do@seeglossary\@glsxtr@recordsee \let\@glsxtr@record\@@glsxtr@record \let\@@do@wrglossary\@gobble \let\@gls@saveentrycounter\relax @@ -228,6 +247,8 @@ }% \or \def\glsxtr@setup@record{% + \let\@glo@autosee\@glsxtr@org@gloautosee + \renewcommand*{\@do@seeglossary}{\@glsxtr@org@doseeglossary}% \let\@glsxtr@record\@@glsxtr@record \let\@@do@wrglossary\glsxtr@@do@wrglossary \let\@gls@saveentrycounter\glsxtr@indexonly@saveentrycounter @@ -436,6 +457,8 @@ \ProcessOptionsX \RequirePackage{glossaries} \@glsxtr@doaccsupp +\let\@glsxtr@org@doseeglossary\@do@seeglossary +\let\@glsxtr@org@gloautosee\@glo@autosee \@glsxtr@abbreviationsdef \let\@glsxtr@abbreviationsdef\relax \@glsxtr@setupshortcuts @@ -1257,7 +1280,7 @@ } \newcommand*{\glsxtrregularfont}[1]{#1} \renewcommand{\@gls@field@link}[4][]{% - \@glsxtr@record{#2}{#3}% + \@glsxtr@record{#2}{#3}{glslink}% \glsdoifexists{#3}% {% \let\glsxtrorg@ifKV@glslink@hyper\ifKV@glslink@hyper @@ -1272,36 +1295,36 @@ } \let\@glsxtr@org@gls@\@gls@ \def\@gls@#1#2{% - \@glsxtr@record{#1}{#2}% + \@glsxtr@record{#1}{#2}{glslink}% \@glsxtr@org@gls@{#1}{#2}% }% \let\@glsxtr@org@glspl@\@glspl@ \def\@glspl@#1#2{% - \@glsxtr@record{#1}{#2}% + \@glsxtr@record{#1}{#2}{glslink}% \@glsxtr@org@glspl@{#1}{#2}% }% \let\@glsxtr@org@Gls@\@Gls@ \def\@Gls@#1#2{% - \@glsxtr@record{#1}{#2}% + \@glsxtr@record{#1}{#2}{glslink}% \@glsxtr@org@Gls@{#1}{#2}% }% \let\@glsxtr@org@Glspl@\@Glspl@ \def\@Glspl@#1#2{% - \@glsxtr@record{#1}{#2}% + \@glsxtr@record{#1}{#2}{glslink}% \@glsxtr@org@Glspl@{#1}{#2}% }% \let\@glsxtr@org@GLS@\@GLS@ \def\@GLS@#1#2{% - \@glsxtr@record{#1}{#2}% + \@glsxtr@record{#1}{#2}{glslink}% \@glsxtr@org@GLS@{#1}{#2}% }% \let\@glsxtr@org@GLSpl@\@GLSpl@ \def\@GLSpl@#1#2{% - \@glsxtr@record{#1}{#2}% + \@glsxtr@record{#1}{#2}{glslink}% \@glsxtr@org@GLSpl@{#1}{#2}% }% \renewcommand*{\@glsdisp}[3][]{% - \@glsxtr@record{#1}{#2}% + \@glsxtr@record{#1}{#2}{glslink}% \glsdoifexists{#2}{% \let\do@gls@link@checkfirsthyper\@gls@link@checkfirsthyper \let\glsifplural\@secondoftwo @@ -1319,7 +1342,7 @@ \glspostlinkhook } \renewcommand*{\@gls@@link}[3][]{% - \@glsxtr@record{#1}{#2}% + \@glsxtr@record{#1}{#2}{glslink}% \glsdoifexistsordo{#2}% {% \let\do@gls@link@checkfirsthyper\relax @@ -1330,15 +1353,76 @@ }% \glspostlinkhook } +\newcommand*{\glsxtrinitwrgloss}{% + \glsifattribute{\glslabel}{wrgloss}{after}% + {% + \glsxtrinitwrglossbeforefalse + }% + {% + \glsxtrinitwrglossbeforetrue + }% +} +\newif\ifglsxtrinitwrglossbefore +\glsxtrinitwrglossbeforetrue +\define@choicekey{glslink}{wrgloss}[\val\nr]{before,after}% +{% + \ifcase\nr\relax + \glsxtrinitwrglossbeforetrue + \or + \glsxtrinitwrglossbeforefalse + \fi +} +\def\@gls@link[#1]#2#3{% + \leavevmode + \edef\glslabel{\glsdetoklabel{#2}}% + \def\@gls@link@opts{#1}% + \let\@gls@link@label\glslabel + \def\@glsnumberformat{glsnumberformat}% + \edef\@gls@counter{\csname glo@\glslabel @counter\endcsname}% + \edef\glstype{\csname glo@\glslabel @type\endcsname}% + \let\org@ifKV@glslink@hyper\ifKV@glslink@hyper + \glsxtrinitwrgloss + \@gls@setdefault@glslink@opts + \do@glsdisablehyperinlist + \do@gls@link@checkfirsthyper + \setkeys{glslink}{#1}% + \glslinkpostsetkeys + \@gls@saveentrycounter + \@gls@setsort{\glslabel}% + \ifglsxtrinitwrglossbefore + \@do@wrglossary{#2}% + \fi + \ifKV@glslink@hyper + \@glslink{\glolinkprefix\glslabel}{\glstextformat{#3}}% + \else + \glsdonohyperlink{\glolinkprefix\glslabel}{\glstextformat{#3}}% + \fi + \ifglsxtrinitwrglossbefore + \else + \@do@wrglossary{#2}% + \fi + \let\ifKV@glslink@hyper\org@ifKV@glslink@hyper +} +\define@key{glossadd}{thevalue}{\def\@glsxtr@thevalue{#1}} +\define@key{glossadd}{theHvalue}{\def\@glsxtr@theHvalue{#1}} \renewrobustcmd*{\glsadd}[2][]{% \@gls@adjustmode - \@glsxtr@record{#1}{#2}% + \@glsxtr@record{#1}{#2}{glossadd}% \glsdoifexists{#2}% {% \def\@glsnumberformat{glsnumberformat}% \edef\@gls@counter{\csname glo@\glsdetoklabel{#2}@counter\endcsname}% + \def\@glsxtr@thevalue{}% + \def\@glsxtr@theHvalue{\@glsxtr@thevalue}% \setkeys{glossadd}{#1}% - \@gls@saveentrycounter + \ifdefempty{\@glsxtr@thevalue}% + {% + \@gls@saveentrycounter + }% + {% + \let\theglsentrycounter\@glsxtr@thevalue + \def\theHglsentrycounter{\@glsxtr@theHvalue}% + }% \@@do@wrglossary{#2}% }% } @@ -2048,6 +2132,11 @@ }% }% } +\renewrobustcmd*{\glshyperlink}[2][\glsentrytext{\@glo@label}]{% + \def\@glo@label{#2}% + {\edef\glslabel{#2}% + \@glslink{\glolinkprefix\glslabel}{#1}}% +} \ifundef\glsdonohyperlink {% \renewcommand{\glsdisablehyper}{% @@ -2469,7 +2558,7 @@ }% \let\@cgls@\@@cgls@ \let\@cglspl@\@@cglspl@ - \let\@cGLS@\@@cGLS@ + \let\@cGls@\@@cGls@ \let\@cGlspl@\@@cGlspl@ \let\@cGLS@\@@cGLS@ \let\@cGLSpl@\@@cGLSpl@ @@ -2772,7 +2861,7 @@ }% \let\@cgls@\@@cgls@ \let\@cglspl@\@@cglspl@ - \let\@cGLS@\@@cGLS@ + \let\@cGls@\@@cGls@ \let\@cGlspl@\@@cGlspl@ \let\@cGLS@\@@cGLS@ \let\@cGLSpl@\@@cGLSpl@ @@ -2985,7 +3074,6 @@ \renewcommand\makeglossaries[1][]{}% \@disable@onlypremakeg \let\gls@checkseeallowed\relax - \let\@glsxtr@org@doseeglossary\@do@seeglossary \renewcommand*{\@do@seeglossary}[2]{% \edef\@gls@label{\glsdetoklabel{##1}}% \edef\@gls@type{\csname glo@\@gls@label @type\endcsname}% @@ -3219,6 +3307,60 @@ }% }% \newcommand*{\@glsxtr@idx@entrynumberlist}[1]{\glsentrynumberlist{#1}} +\renewcommand*{\@gls@noidx@getgrouptitle}[2]{% + \protected@edef\@glsxtr@titlelabel{glsxtr@grouptitle@#1}% + \@onelevel@sanitize\@glsxtr@titlelabel + \ifcsundef{\@glsxtr@titlelabel}% + {% + \DTLifint{#1}% + {% + \ifnum#1<256\relax + \edef#2{\char#1\relax}% + \else + \edef#2{#1}% + \fi + }% + {% + \ifcsundef{#1groupname}% + {\def#2{#1}}% + {\letcs#2{#1groupname}}% + }% + }% + {% + \letcs#2{\@glsxtr@titlelabel}% + }% +} +\let\glsxtr@org@getgrouptitle\@gls@getgrouptitle +\newrobustcmd{\glsxtrgetgrouptitle}[2]{% + \protected@edef\@glsxtr@titlelabel{glsxtr@grouptitle@#1}% + \@onelevel@sanitize\@glsxtr@titlelabel + \ifcsdef{\@glsxtr@titlelabel} + {\letcs{#2}{\@glsxtr@titlelabel}}% + {\glsxtr@org@getgrouptitle{#1}{#2}}% +} +\let\@gls@getgrouptitle\glsxtrgetgrouptitle +\newcommand{\glsxtrsetgrouptitle}[2]{% + \protected@edef\@glsxtr@titlelabel{glsxtr@grouptitle@#1}% + \@onelevel@sanitize\@glsxtr@titlelabel + \csxdef{\@glsxtr@titlelabel}{#2}% +} +\renewcommand*{\glsnavigation}{% + \def\@gls@between{}% + \ifcsundef{@gls@hypergrouplist@\@glo@type}% + {% + \def\@gls@list{}% + }% + {% + \expandafter\let\expandafter\@gls@list + \csname @gls@hypergrouplist@\@glo@type\endcsname + }% + \@for\@gls@tmp:=\@gls@list\do{% + \@gls@between + \glsxtrgetgrouptitle{\@gls@tmp}{\@gls@grptitle}% + \glsnavhyperlink{\@gls@tmp}{\@gls@grptitle}% + \let\@gls@between\glshypernavsep + }% +} \renewcommand*{\@print@noidx@glossary}{% \ifcsdef{@glsref@\@glo@type}% {% @@ -3273,17 +3415,56 @@ \expandafter{\glsxtrlocrangefmt}{#2}% } \newcommand*{\glsxtrdisplayendloc}[2]{% - \ifdefstring{\glsxtrlocrangefmt}{#1}{}% - {\GlossariesExtraWarning{Mismatched end location range - (start=\glsxtrlocrangefmt, end=#1)}% - }% - \glsxtrdisplayendlochook{#1}{#2}% + \edef\@glsxtr@tmp{#1}% + \ifdefempty{\@glsxtr@tmp}{\def\@glsxtr@tmp{glsnumberformat}}{}% + \ifx\glsxtrlocrangefmt\@glsxtr@tmp + \else + \GlossariesExtraWarning{Mismatched end location range + (start=\glsxtrlocrangefmt, end=\@glsxtr@tmp)}% + \fi + \expandafter\glsxtrdisplayendlochook\expandafter{\@glsxtr@tmp}{#2}% \expandafter\glsxtrdisplaysingleloc \expandafter{\glsxtrlocrangefmt}{#2}% \def\glsxtrlocrangefmt{}% } \newcommand*{\glsxtrdisplayendlochook}[2]{} \newcommand*{\glsxtrlocrangefmt}{} +\def\@gls@removespaces#1 #2\@nil{% + \toks@=\expandafter{\the\toks@#1}% + \ifx\\#2\\% + \edef\x{\the\toks@}% + \ifx\x\empty + \else + \glsxtrlocationhyperlink{\glsentrycounter}{\@glo@counterprefix}{\the\toks@}% + \fi + \else + \@gls@ReturnAfterFi{% + \@gls@removespaces#2\@nil + }% + \fi +} +\newcommand*{\glsxtrlocationhyperlink}[3]{% + \ifdefvoid\glsxtrsupplocationurl + {% + \hyperlink{#1#2#3}{#3}% + }% + {% + \hyperref{\glsxtrsupplocationurl}{}{#1#2#3}{#3}% + }% +} +\newcommand*{\glsxtrsupphypernumber}[1]{% + {% + \glshasattribute{\glscurrententrylabel}{externallocation}% + {% + \def\glsxtrsupplocationurl{% + \glsgetattribute{\glscurrententrylabel}{externallocation}}% + }% + {% + \def\glsxtrsupplocationurl{}% + }% + \glshypernumber{#1}% + }% +} \renewcommand{\@print@glossary}{% \makeatletter \@input@{\jobname.\csname @glotype@\@glo@type @in\endcsname}% @@ -3531,6 +3712,21 @@ \AtBeginDocument {\protected@write\@auxout{}{\string\glsxtr@linkprefix{\glolinkprefix}}}% \let\glsxtr@writefields\relax + \ifglsautomake + \IfFileExists{\jobname.aux}% + {\immediate\write18{bib2gls "\jobname"}}{}% + \ifx\@gls@doautomake\@gls@doautomake@err + \let\@gls@doautomake\relax + \fi + \fi +} +\newcommand*{\@gls@doautomake@err}{% + \PackageError{glossaries}{You must use + \string\makeglossaries\space with automake=true} + {% + Either remove the automake=true setting or + add \string\makeglossaries\space to your document preamble.% + }% } \newcommand*{\glsxtr@record}[5]{} \newcommand*{\glsxtr@counterrecord}[3]{% @@ -3614,8 +3810,12 @@ \PackageError{glossaries-extra}{\string\printunsrtglossaryunit\space requires the record=only or record=alsoindex package option}{}% } -\newcommand*{\@glsxtr@unsrt@getgrouptitle}[2]{% - \def#2{#1}% +\newrobustcmd*{\@glsxtr@unsrt@getgrouptitle}[2]{% + \protected@edef\@glsxtr@titlelabel{glsxtr@grouptitle@#1}% + \@onelevel@sanitize\@glsxtr@titlelabel + \ifcsdef{\@glsxtr@titlelabel} + {\letcs{#2}{\@glsxtr@titlelabel}}% + {\def#2{#1}}% } \newcommand{\glsxtrunsrtdo}{\@glsxtr@noidx@do} \newcommand{\@glsxtr@noidx@do}[1]{% @@ -3655,7 +3855,8 @@ {}% {% \ifdefempty{\@gls@currentlettergroup}{}{\glsgroupskip}% - \glsgroupheading{\@glo@thislettergrp}% + \expandafter\glsgroupheading\expandafter + {\csname glo@\glsdetoklabel{#1}@group\endcsname}% }% \let\@gls@currentlettergroup\@glo@thislettergrp \ifdefvoid{\@gls@location}% -- cgit v1.2.3