From 00032f2a7ba0b85507599fdb600f39d6af5483fa Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 5 May 2019 18:05:32 +0000 Subject: glossaries-extra (10apr19) git-svn-id: svn://tug.org/texlive/trunk@51006 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/doc/latex/glossaries-extra/CHANGES | 24 + .../texmf-dist/doc/latex/glossaries-extra/README | 4 +- .../glossaries-extra/glossaries-extra-code.pdf | Bin 1282036 -> 898453 bytes .../glossaries-extra/glossaries-extra-manual.html | 6767 ++++++++++---------- .../glossaries-extra/glossaries-extra-manual.pdf | Bin 784753 -> 787643 bytes .../glossaries-extra/glossaries-extra-manual.tex | 70 +- .../latex/glossaries-extra/sample-abbr-styles.pdf | Bin 512876 -> 512876 bytes .../doc/latex/glossaries-extra/sample-abbrv.pdf | Bin 44761 -> 44761 bytes .../doc/latex/glossaries-extra/sample-accsupp.pdf | Bin 82623 -> 82623 bytes .../latex/glossaries-extra/sample-acronym-desc.pdf | Bin 50368 -> 50368 bytes .../doc/latex/glossaries-extra/sample-acronym.pdf | Bin 36745 -> 36745 bytes .../doc/latex/glossaries-extra/sample-alias.pdf | Bin 43875 -> 43875 bytes .../latex/glossaries-extra/sample-altmodifier.pdf | Bin 35308 -> 35308 bytes .../glossaries-extra/sample-alttree-marginpar.pdf | Bin 91131 -> 91061 bytes .../latex/glossaries-extra/sample-alttree-sym.pdf | Bin 69566 -> 69498 bytes .../doc/latex/glossaries-extra/sample-alttree.pdf | Bin 54866 -> 54848 bytes .../glossaries-extra/sample-autoindex-hyp.pdf | Bin 139502 -> 141700 bytes .../latex/glossaries-extra/sample-autoindex.pdf | Bin 161367 -> 161138 bytes .../doc/latex/glossaries-extra/sample-crossref.pdf | Bin 41294 -> 41294 bytes .../latex/glossaries-extra/sample-crossref2.pdf | Bin 41613 -> 41613 bytes .../doc/latex/glossaries-extra/sample-docdef.pdf | Bin 45257 -> 45257 bytes .../latex/glossaries-extra/sample-entrycount.pdf | Bin 54623 -> 54623 bytes .../doc/latex/glossaries-extra/sample-external.pdf | Bin 34187 -> 34187 bytes .../doc/latex/glossaries-extra/sample-fmt.pdf | Bin 75126 -> 75268 bytes .../doc/latex/glossaries-extra/sample-footnote.pdf | Bin 63232 -> 63232 bytes .../doc/latex/glossaries-extra/sample-header.pdf | Bin 125912 -> 125912 bytes .../latex/glossaries-extra/sample-indexhook.pdf | Bin 42722 -> 42722 bytes .../latex/glossaries-extra/sample-initialisms.pdf | Bin 81618 -> 81618 bytes .../latex/glossaries-extra/sample-linkcount.pdf | Bin 38234 -> 38234 bytes .../glossaries-extra/sample-mixed-abbrv-styles.pdf | Bin 57823 -> 57823 bytes .../latex/glossaries-extra/sample-mixedsort.pdf | Bin 45154 -> 45154 bytes .../doc/latex/glossaries-extra/sample-mixture.pdf | Bin 159814 -> 159578 bytes .../latex/glossaries-extra/sample-name-font.pdf | Bin 202110 -> 202110 bytes .../doc/latex/glossaries-extra/sample-nested.pdf | Bin 67686 -> 67736 bytes .../sample-noidx-restricteddocdefs.pdf | Bin 47582 -> 47582 bytes .../doc/latex/glossaries-extra/sample-onelink.pdf | Bin 25028 -> 44455 bytes .../glossaries-extra/sample-onthefly-utf8.pdf | Bin 106071 -> 106071 bytes .../glossaries-extra/sample-onthefly-xetex.pdf | Bin 19863 -> 19859 bytes .../doc/latex/glossaries-extra/sample-onthefly.pdf | Bin 43481 -> 43481 bytes .../doc/latex/glossaries-extra/sample-pages.pdf | Bin 38801 -> 38801 bytes .../doc/latex/glossaries-extra/sample-postdot.pdf | Bin 37059 -> 37059 bytes .../doc/latex/glossaries-extra/sample-postlink.pdf | Bin 67890 -> 67890 bytes .../doc/latex/glossaries-extra/sample-prefix.pdf | Bin 33119 -> 33119 bytes .../glossaries-extra/sample-record-nameref.pdf | Bin 71313 -> 71315 bytes .../doc/latex/glossaries-extra/sample-record.pdf | Bin 50230 -> 50230 bytes .../glossaries-extra/sample-restricteddocdefs.pdf | Bin 47895 -> 47895 bytes .../latex/glossaries-extra/sample-suppl-hyp.pdf | Bin 34944 -> 34944 bytes .../glossaries-extra/sample-suppl-main-hyp.pdf | Bin 46402 -> 46402 bytes .../latex/glossaries-extra/sample-suppl-main.pdf | Bin 31607 -> 31607 bytes .../doc/latex/glossaries-extra/sample-suppl.pdf | Bin 13423 -> 13423 bytes .../doc/latex/glossaries-extra/sample-trans.pdf | Bin 49455 -> 49455 bytes .../doc/latex/glossaries-extra/sample-undef.pdf | Bin 33231 -> 33231 bytes .../glossaries-extra/sample-unitentrycount.pdf | Bin 60488 -> 61051 bytes .../doc/latex/glossaries-extra/sample.pdf | Bin 45747 -> 45747 bytes .../latex/glossaries-extra/glossaries-extra.dtx | 342 +- .../latex/glossaries-extra/glossaries-extra.ins | 2 +- .../glossaries-extra/glossaries-extra-bib2gls.sty | 2 +- .../glossaries-extra-stylemods.sty | 203 +- .../latex/glossaries-extra/glossaries-extra.sty | 2 +- .../latex/glossaries-extra/glossary-bookindex.sty | 8 +- .../latex/glossaries-extra/glossary-longextra.sty | 2 +- .../tex/latex/glossaries-extra/glossary-topic.sty | 43 +- 62 files changed, 3954 insertions(+), 3515 deletions(-) (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/CHANGES b/Master/texmf-dist/doc/latex/glossaries-extra/CHANGES index 8c2d73e4b29..922ea958beb 100644 --- a/Master/texmf-dist/doc/latex/glossaries-extra/CHANGES +++ b/Master/texmf-dist/doc/latex/glossaries-extra/CHANGES @@ -1,3 +1,27 @@ +1.41 (2019-04-09): + + * glossary-topic.sty: + + - added command \glstopicSubPreLocSep and moved \space + from \glstopicSubLoc to \glstopicSubPreLocSep + + - added check for description in \glstopicSubItem + + - moved \par from \glstopicSubItem to \glstopicAssignSubIndent + + * glossaries-extra-stylemods.sty: + + - added \glstreePreHeader + + - added check for description in \glsxtralttreeSymbolDescLocation + + - added \glstreeDescLoc and \glstreeChildDescLoc + + - \glsxtralttreeSymbolDescLocation now checks if the description + field is set + + - added \glslistgroupskip + 1.40 (2019-03-31): * glossaries-extra.sty: diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/README b/Master/texmf-dist/doc/latex/glossaries-extra/README index 5244ce51b53..6f39a09e001 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.40 +LaTeX Package : glossaries-extra v1.41 -Last Modified : 2019-03-31 +Last Modified : 2019-04-09 Author : Nicola Talbot diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/glossaries-extra-code.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/glossaries-extra-code.pdf index 163f08682f3..8272e2c862b 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 9b8c50b966f..bf636b8fa4b 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 @@ -218,7 +218,7 @@ a span.HoLogo-TeX span.HoLogo-e{text-decoration:none;} >

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

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

2019-03-31

+class="cmr-12">2019-04-09

@@ -8092,26 +8092,34 @@ If a widest name was set for the given level, this will put ⟨text⟩ inside a box of that width otherwise it just does ⟨text⟩. -

This is followed by the symbol in parentheses if set, then the description and -post-description hook, and finally the location list is displayed using: +

This is followed by the symbol in parentheses if set. Then, if the description is set, +the description and post-description hook are displayed followed by:


\glstopicSubLoc\glstopicSubPreLocSep  \glstopicSubPreLocSep

+

+(This command isn’t used if the description isn’t set.) +

Finally the location list is displayed using: +


\glstopicSubLoc  \glstopicSubLoc{label}{location}

-

-which just does a space followed by ⟨

+which just does ⟨location⟩ by default. -

+

-

Top

2.12 Glossary Style Modifications

-

The

The glossaries-extra-stylemods package (more conveniently loaded through the §2.12.3 The glossaries-extra-stylemods Package. -

The

The glossaries package tries to determine the group title from its label by first checking if \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  label}{title}

-

+

For example: @@ -8168,9 +8176,9 @@ For example:

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

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

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



\glsxtrlocalsetgrouptitle  }{title}

-

-

+

+

-

Top

2.12.1 Style Hooks

-

The commands

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

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

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



\glossentrynameother  label}{field}

-

+

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

There is a hook after

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



\glsxtrpostnamehook  \glsxtrpostnamehook{label}

-

+

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



\glsxtrdoautoindexname{}{indexname}

-

+

See §7 Auto-Indexing for further details. -

As from version 1.04, the post-name hook

As from version 1.04, the post-name hook \glsxtrpostnamehook will also use \glsxtrpostname (\glsentrysymbol{\glscurrententrylabel})}

-

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


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


\glsdefpostname  category}{definition}

-

+

This is simply a shortcut for:

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

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


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


\glsextrapostnamehook  \glsextrapostnamehook{label}

-

+

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

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

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



\glsxtrpostdescription  \glsxtrpostdescription

-

+

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

This new command will do

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



\glsdefpostdesc  category}{definition}

-

+

This is simply a shortcut for:

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

Since both

Since both \glossentry and \subglossentry set -



\glscurrententrylabel  \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 @@ -8408,10 +8416,10 @@ 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.12.2 Number List

-

The

The number list is now placed inside the argument of -



\GlsXtrFormatLocationList  \GlsXtrFormatLocationList{number list}

-

+

This is internally used by \glossaryentrynumbers. The \glossaryentrynumbers so that it doesn’t display th id="dx1-19004">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 @@ -8502,27 +8510,27 @@ 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.12.3 The glossaries-extra-stylemods Package

-

As from v1.02,

As from v1.02, glossaries-extra now includes the package glossaries-extra-stylemods that @@ -8539,7 +8547,7 @@ class="cmss-10">glossaries-extra. For example:  
\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[longragged]{glossaries-extra-stylemods}

-

Another option is to use the

Another option is to use the stylemods key when you load long3col \usepackage[style=long3col,stylemods]{glossaries-extra}

-

Or the value of

Or the value of stylemods may be a comma-separated list of the style package @@ -8584,7 +8592,7 @@ 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: @@ -8592,8 +8600,8 @@ identifiers. For example:

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

-

Note that the

+

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

The

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

As from version 1.21, the hard-coded

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



\glsxtrprelocation  \glsxtrprelocation

-

+

This just defaults to \space but may be redefined as required. For example: @@ -8665,36 +8673,36 @@ class="cmtt-10">\space but may be redefined as required. For example:

\renewcommand{\glsxtrprelocation}{\dotfill}
-

-

The

+

The list styles use -



\glslistprelocation  \glslistprelocation

-

+

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



\glslistchildprelocation  \glslistchildprelocation

-

+

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

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

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



\glslistdesc  \glslistdesc{label}

-

+

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

For just the

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



\glslistchildpostlocation  \glslistchildpostlocation

-

+

which defaults to a full stop. -

The default value of

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

The

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


\glslistgroupskip  \glslistgroupskip

+

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

The glossary-tree package introduced two new commands in package introduced two new commands in glossaries version 4.22, + id="dx1-20035"> version 4.22, \glstreegroupheaderfmt and and \glstreenavigationfmt, which are used to format + id="dx1-20037">, which are used to format the letter group headings and the navigation elements for the appropriate styles. These two new commands are defined in terms of \glstreenamefmt since that was + id="dx1-20038"> since that was the command originally used for the group headings and navigation. This now allows these different elements to be defined independently, but the most common redefinition is for \glstreenamefmt has been defined, as from v1.31 glossaries-extra-stylemods + id="dx1-20039"> defines: -



\glstreedefaultnamefmt  \glstreedefaultnamefmt{text}

-

+ + + +

which simply does \textbf{text\glstreedefaultnamefmt, but if you only want to redefine \glstreenamefmt without affecting the other two commands, then +you now can. +

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


\glstreegroupskip  \glstreegroupskip

+

+This defaults to \indexspace with penalties to deter page breaks. This command +isn’t used if nogroupskip is set (except for the styles that display the group +titles). +

The styles that display the group titles now use: +


\glstreePreHeader  \glstreePreHeader{label}{title}

+

+where ⟨label⟩ is the group label and ⟨title⟩ is the group title. This does nothing by +default and is inserted before the group title. You can redefine it to add the group +title to the PDF bookmarks. For example, if the glossary title uses \chapter +then: -you now can. -

The +

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

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

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



\glstreeprelocation  \glstreeprelocation

-

+

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



\glstreechildprelocation  \glstreechildprelocation

-

+

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

As from version 1.31, the

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



\glstreenonamedesc  \glstreenonamedesc{label}

-

+

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



\glstreenonamesymbol  \glstreenonamesymbol{label}

-

+

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



\glstreenonamechilddesc  \glstreenonamechilddesc{label}

-

-

For the

+

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



\glstreedesc  \glstreedesc{label}

-

+

and the symbol with: -



\glstreesymbol  \glstreesymbol{label}

-

+

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



\glstreechilddesc  \glstreechilddesc{label}

-

+

for the description and -



\glstreechildsymbol  \glstreechildsymbol{label}

-

+

for the symbol. -

As from version 1.05, the

As from version 1.41, there are now wrapper commands for \glstreedesc and +\glstreechilddesc that check for the description and symbol to determine whether +or not to insert a space (\glstreeprelocation or \glstreechildprelocation) +before the page list. These are: +


\glstreeDescLoc  \glstreeDescLoc{label}{location}

+

+for top-level entries and +


\glstreeChildDescLoc  \glstreeChildDescLoc{label}{location} +

+

+for sub-entries. This prevents a spurious space for terms that don’t have a symbol or +description but do have a location list (for example, aliases). +

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



\gglssetwidest  \gglssetwidest[level]{name}

-

+

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



\eglssetwidest  \eglssetwidest[level]{name}

- - - -

+

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



\xglssetwidest  \xglssetwidest[level]{name}

-

+

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



\glsupdatewidest  \glsupdatewidest[level]{name}

-

+

Global update: -



\gglsupdatewidest  \gglsupdatewidest[level]{name}

-

+

Locale update (expands ⟨name⟩): -



\eglsupdatewidest  \eglsupdatewidest[level]{name}

-

+

Global update (expands ⟨name⟩): -



\xglsupdatewidest  \xglsupdatewidest[level]{name}

-

-

The widest entry value can later be retrieved using -


+

The widest entry value can later be retrieved using +


\glsgetwidestname  \glsgetwidestname

-

+

for the top-level entries and -



\glsgetwidestsubname  \glsgetwidestsubname{level}

-

+ + + +

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

Note that if you are using

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

The command

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



\glsFindWidestTopLevelName  \glsFindWidestTopLevelName[glossary list]

-

+

Similar commands are also provided: -



\glsFindWidestUsedTopLevelName  \glsFindWidestUsedTopLevelName[glossary list]

-

+

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



\glsFindWidestUsedAnyName  \glsFindWidestUsedAnyName[glossary list]

-

+

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



\glsFindWidestAnyName  \glsFindWidestAnyName[glossary list]

-

+

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



\glsFindWidestUsedLevelTwo  \glsFindWidestUsedLevelTwo[glossary list]

-

+

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



\glsFindWidestLevelTwo  \glsFindWidestLevelTwo[glossary list]

-

+

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



\glsFindWidestUsedAnyNameSymbol  \glsFindWidestUsedAnyNameSymbol [glossary list]{register}

-

+

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



\glsFindWidestAnyNameSymbol  \glsFindWidestAnyNameSymbol[glossary list]{register}

-

+

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



\glsFindWidestUsedAnyNameSymbolLocation  \glsFindWidestUsedAnyNameSymbolLocation [symbol register}{location register}

-

+

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



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

-

+

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



\glsFindWidestUsedAnyNameLocation  \glsFindWidestUsedAnyNameLocation [glossary list]{register}

-

+

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



\glsFindWidestAnyNameLocation  \glsFindWidestAnyNameLocation[glossary list]{register}

-

+

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

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


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


\glsxtralttreeSymbolDescLocation  \glsxtralttreeSymbolDescLocation {label}{number list}

-

+

for top-level entries and -



\glsxtralttreeSubSymbolDescLocation  \glsxtralttreeSubSymbolDescLocation {label}{number list}

-

+

for sub-entries. -

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

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



\glsxtralttreeInit  \glsxtralttreeInit

-

-

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

+

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



\glsxtrAltTreeIndent  \glsxtrAltTreeIndent

-

-

For additional commands that are available with the

+ + + +

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

-

-

+

Top

3. Abbreviations

-

The new abbreviation system provided by

The new abbreviation system provided by glossaries-extra is more flexible than the acronym handling provided by the base glossaries package. The @@ -9280,7 +9385,7 @@ their formatting dealt with by the style. You therefore need to select an abbreviation style that ensures that \gls (and its variants) displays the desired output. -

Don’t use commands like

Don’t use commands like \glstext or \glsfirst with abbreviations as they aren’t flexible enough to handle some abbreviation styles and unexpected @@ -9292,8 +9397,8 @@ class="cmtt-10">\gls. If you don’t want the full form to show on first use of \gls use one of the “nolong” or “noshort” styles.
-

-

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 @@ -9307,10 +9412,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 @@ -9348,7 +9453,7 @@ href="#sec:categories">§5 Categories for further details. -

See

See §2.7 Nested Links regarding the pitfalls of using commands like \glsxtrshort within ⟨short⟩ or ⟨long⟩. -

Make sure that you set the category attributes before defining new abbreviations +

Make sure that you set the category attributes before defining new abbreviations or they may not be correctly applied.
-

-

The

+

The \newacronym command provided by the glossaries package is redefined by @@ -9379,7 +9484,7 @@ class="cmtt-10">acronym (see also href="#sec:acronymmods">§2.8 Acronym Style Modifications) so -



\newacronym  short}{long}

-

+

is now equivalent @@ -9415,7 +9520,7 @@ class="cmtt-10">{⟨long}
-

The

The \newabbreviation command is superficially similar to the glossaries package’s abbreviationglossaries package, although they may produce similar results.) -

The way the abbreviations are displayed by commands like

The way the abbreviations are displayed by commands like \gls varies according to the abbreviation style. The styles are set according to the entry’s category so, unlike the base glossaries package, you can have different abbreviation styles within the same glossary. -

There are two types of full forms. The display full form, which is used on +

There are two types of full forms. The display full form, which is used on first use by commands like short-footnote, the display and inline full forms are different. -

These formatting commands aren’t stored in the

These formatting commands aren’t stored in the short, shortplural\glsxtrlong and the case-changing variants don’t use \glsfirstlongfont. -

You can apply the formatting command used for the short form to some arbitrary +

You can apply the formatting command used for the short form to some arbitrary text using -



\glsuseabbrvfont  text}{category}

-

+

where ⟨category⟩ is the category label that identifies the abbreviation style. Similarly for the formatting command use by the long form: -



\glsuselongfont  text}{category}

-

+

-

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 @@ -9538,21 +9643,21 @@ href="#catattr.tagging">tagging attribute set to “true”. For those cases it will use -



\glsxtrtagfont  \glsxtrtagfont{text}

-

+

This command defaults to \underline{text} but may be redefined as required. -

The control sequence ⟨

The control sequence ⟨cs⟩ can’t already be defined when used with the unstarred version of \GlsXtrEnableInitialTagging for safety reasons. The starred @@ -9561,7 +9666,7 @@ class="cmti-10">cs⟩. As with redefining any commands, ensure that you don’t redefine something important. In fact, just forget the existence of the starred version and let’s pretend I didn’t mention it. -

The first argument of

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

The accompanying sample file

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

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

This defines the command

This defines the command \itag which can be used in the definitions. For example:

-
+
\newacronym  
 [description={a system for detecting the location and  
 speed of ships, aircraft, etc, through the use of radio @@ -9605,18 +9710,18 @@ example:  
\newabbreviation{xml}{XML}  
 {e\itag{x}tensible \itag{m}arkup \itag{l}anguage}
-

The underlining of the tagged letters only occurs in the glossary and then only for +

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

+

-

Top

3.2 Abbreviation Styles

-

The abbreviation style must be set before abbreviations are defined using: -


The abbreviation style must be set before abbreviations are defined using: +


\setabbreviationstyle  ]{style-name}

-

+

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

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

Abbreviations can be used with the standard

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



\glsxtrshort  label}[insert]

-

+

(Use this instead of \acrshort.) -

The long form can be produced with -


The long form can be produced with +


\glsxtrlong  label}[insert]

-

+

(Use this instead of \acrlong.) -

The

The inline full form can be produced with -



\glsxtrfull  label}[insert]

-

+

(This this instead of \acrfull.) -

In general, it’s best not to use commands like

In general, it’s best not to use commands like \glsfirst for abbreviations, especially if you use the ⟨insert⟩ optional argument. Use either \gls (possibly with a reset) or \glsxtrfull.
-

-

As mentioned earlier, the inline full form may not necessarily match the format +

+

As mentioned earlier, the inline full form may not necessarily match the format used on first use with short-nolongfirst use, but the full form will display the long form followed by the short form in parentheses. -

If you want to use an abbreviation in a chapter or section title, use the +

If you want to use an abbreviation in a chapter or section title, use the commands described in §4 Entries in Sectioning Titles, Headers, Captions and Contents instead.
-

-

The arguments ⟨

+

The arguments ⟨options⟩, ⟨label⟩ and ⟨insert⟩ are the same as for commands such as \glstext. There are also analogous case-changing commands: -

First letter upper case short form: -


First letter upper case short form: +


\Glsxtrshort  label}[insert]

-

-

First letter upper case long form: -


+

First letter upper case long form: +


\Glsxtrlong  label}[insert]

-

-

First letter upper case inline full form: -


+

First letter upper case inline full form: +


\Glsxtrfull  label}[insert]

-

-

All upper case short form: +

+

All upper case short form: -



\Glsxtrshort  label}[insert]

-

-

All upper case long form: -


+

All upper case long form: +


\Glsxtrlong  label}[insert]

-

-

All upper case inline full form: -


+

All upper case inline full form: +


\GLSxtrfull  label}[insert]

-

-

Plural forms are also available. -

Short form plurals: -


+

Plural forms are also available. +

Short form plurals: +


\glsxtrshortpl  label}[insert]

-

-


+


\Glsxtrshortpl  label}[insert]

-

-


+


\GLSxtrshortpl  label}[insert]

-

-

Long form plurals: -


+

Long form plurals: +


\glsxtrlongpl  label}[insert]

-

-


+


\Glsxtrlongpl  label}[insert]

-

-


+


\GLSxtrlongpl  label}[insert]

-

-

Full form plurals: -


+

Full form plurals: +


\glsxtrfullpl  label}[insert]

-

-


+


\Glsxtrfullpl  label}[insert]

-

-


+


\GLSxtrfullpl  label}[insert]

-

-

Be careful about using

+

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

-

+

+

-

Top

3.3 Shortcut Commands

-

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

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


@@ -10318,10 +10423,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 @@ -10357,7 +10462,7 @@ class="cmss-10">long\glsxtrshort. -

The other abbreviation styles don’t modify the

The other abbreviation styles don’t modify the regular attribute. The \glsxtrfullformat that are defined by the style). -

In both cases, the

In both cases, the first use of \gls may not match the text produced by \glsfirst (and likewise for the plural and case-changing versions). -

The sample file

The sample file sample-abbr-styles.tex demonstrates all predefined styles described here. -

For the “sc” styles that use

For the “sc” styles that use \textsc, be careful about your choice of fonts as some only have limited support. For example, you may not be able to combine bold @@ -10396,52 +10501,52 @@ class="cmss-10">fontenc package with the T1 option or something similar.
-

-

The parenthetical styles, such as

+

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



\glsxtrparen  \glsxtrparen{text}

-

+

to set the parenthetical material. This just puts parentheses around the text: (⟨text⟩). -

The basic abbreviation styles, such as

The basic abbreviation styles, such as long-short and short-long use -



\glsabbrvdefaultfont  \glsabbrvdefaultfont{text}

-

+

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



\glsfirstabbrvdefaultfont  \glsfirstabbrvdefaultfont{text}

-

+

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



\glslongdefaultfont  }

-

+

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



\glsfirstlongdefaultfont  \glsfirstlongdefaultfont{text}

-

+

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



\glsxtrabbrvpluralsuffix  \glsxtrabbrvpluralsuffix

-

+

which defaults to \glspluralsuffix. -

The small-cap styles, such as

The small-cap styles, such as long-short-sc and short-sc-long, use -



\glsabbrvscfont  \glsabbrvscfont{text}

-

+

which uses \textsc.3.1 On first use -



\glsabbrvdefaultfont  \glsfirstabbrvscfont{text}

-

+

is used instead. This uses \glsabbrvscfont by default. So redefine, \glsabbrvscfont to change first and subsequent uses or \glsfirstabbrvscfont to change just the first use. -

The long form for the small-cap styles uses

The long form for the small-cap styles uses \glslongdefaultfont or \glsfirstlongdefaultfont, as with the basic style. The suffix is given by -



\glsxtrscsuffix  \glsxtrscsuffix

-

+

This is defined as

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

The

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

The small styles, such as

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



\glsabbrvsmfont  \glsabbrvsmfont{text}

-

+

which uses \textsmaller. (This requires the relsizes package, which isn’t loaded by glossaries-extra, so must be loaded explicitly.) On first use -



\glsfirstabbrvsmfont  \glsfirstabbrvsmfont{text}

-

+

is used instead. This uses \glsabbrvsmfont by default. -

The long form for the smaller styles uses

The long form for the smaller styles uses \glslongdefaultfont or \glsfirstlongdefaultfont, as with the basic style. The suffix is given by -



\glsxtrsmsuffix  \glsxtrsmsuffix

-

+

which defaults to just \glsxtrabbrvpluralsuffix. -

The “short-em” (emphasize short) styles, such as

The “short-em” (emphasize short) styles, such as long-short-em or short-em-long, use -



\glsabbrvemfont  \glsabbrvemfont{text}

-

+

On first use -



\glsfirstabbrvemfont  \glsfirstabbrvemfont{text}

-

+

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



\glsxtremsuffix  \glsxtremsuffix

-

+

which defaults to just \glsxtrabbrvpluralsuffix. The long form is as for the basic style unless the style is a “long-em” style. -

The “long-em” (emphasize long) styles, such as

The “long-em” (emphasize long) styles, such as long-em-short-em or short-em-long-em, use -



\glsfirstlongemfont  \glsfirstlongemfont{long-form}

-

+

instead of \glsfirstlongdefaultfont{long-form} and -



\glslongemfont  }

-

+

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

The user styles have similar commands: -


The user styles have similar commands: +


\glsabbrvuserfont  \glsabbrvuserfont{text}

-

+

for the short form, -



\glsfirstabbrvuserfont  \glsfirstabbrvuserfont{text}

-

+

for the first use short form, -



\glslonguserfont  \glslonguserfont{text}

-

+

for the long form, -



\glsfirstlonguserfont  \glsfirstlonguserfont{text}

-

+

for the first use long form, and -



\glsxtrusersuffix  \glsxtrusersuffix

-

+

for the short plural suffix. -

Similarly for the hyphen styles: -


Similarly for the hyphen styles: +


\glsabbrvhyphenfont  \glsabbrvhyphenfont{text}

-

+

for the short form, -



\glsfirstabbrvhyphenfont  \glsfirstabbrvhyphenfont{text}

-

+

for the first use short form, -



\glslonghyphenfont  \glslonghyphenfont{text}

-

+

for the long form, -



\glsfirstlonghyphenfont  \glsfirstlonghyphenfont{text}

-

+

for the first use long form, and -



\glsxtrhyphensuffix  \glsxtrhyphensuffix

-

+

for the short plural suffix. -

Similarly for the “only” styles, such as

Similarly for the “only” styles, such as long-only-short-only: -



\glsabbrvonlyfont  \glsabbrvonlyfont{text}

-

+

for the short form, -



\glsfirstabbrvonlyfont  \glsfirstabbrvonlyfont{text}

-

+

for the first use short form, -



\glslongonlyfont  \glslongonlyfont{text}

-

+

for the long form, -



\glsfirstlongonlyfont  }

-

+

for the first use long form, and -



\glsxtronlysuffix  \glsxtronlysuffix

-

+

for the short plural suffix. -

Note that by default inserted material (provided in the final optional argument of +

Note that by default inserted material (provided in the final optional argument of commands like \gls), is placed outside the font command in the predefined styles. To move it inside, use: -



\glsxtrinsertinsidetrue  \glsxtrinsertinsidetrue

-

+

This applies to all the predefined styles. For example:

-
+
\setabbreviationstyle{long-short}  
\renewcommand*{\glsfirstlongdefaultfont}[1]{\emph{#1}}  
\glsxtrinsertinsidetrue
-

This will make the long form and the inserted text emphasized, whereas the default +

This will make the long form and the inserted text emphasized, whereas the default (without \glsxtrinsertinsidetrue) would place the inserted text outside of the emphasized font. -

Note that for some styles, such as the

Note that for some styles, such as the short-long, the inserted text would be placed inside the font command for the short form (rather than the long form in the above example). -

Remember that

Remember that \textsc renders lowercase letters as small capitals. Uppercase letters are rendered as normal uppercase letters, so if you specify the short form in @@ -10845,49 +10950,49 @@ convert its argument to lowercase. For example:

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

-

If you want to easily switch between the “sc” and “sm” styles, you may find it +

+

If you want to easily switch between the “sc” and “sm” styles, you may find it easier to redefine this command to convert case:

-
+
\renewcommand*{\glsabbrvscfont}[1]{\textsc{\MakeTextLowercase{#1}}}  
\renewcommand*{\glsabbrvsmfont}[1]{\textsmaller{\MakeTextUppercase{#1}}}
-

-

Some of the styles use -


+

Some of the styles use +


\glsxtrfullsep  \glsxtrfullsep{label}

-

+

as a separator between the long and short forms. This is defined as a space by default, but may be changed as required. For example:

-
+
\renewcommand*{\glsxtrfullsep}[1]{~}
-

or +

or

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

-

The new naming scheme for abbreviation styles is as follows:

+

+

The new naming scheme for abbreviation styles is as follows:

  • field1⟩[field2⟩[-modifier2⟩][-user] -

    This is for the parenthetical styles. The

    This is for the parenthetical styles. The -modifier⟩ parts may be omitted. These styles display ⟨field1⟩ or ⟨field2⟩ starts with “no” then that element is omitted from the display style (no parenthetical part) but is included in the inline style. -

    If the

    If the -modifier⟩ part is present, then the field has a font changing command applied to it. The special modifier -only indicates that field is only present according to whether or not the entry has been used. -

    If

    If post is present then ⟨field2⟩ is placed after the link-text using the post-link hook. -

    If the

    If the -user part is present, then the user1 value, if provided, is inserted into the parenthetical material . (The field used for the inserted material may be changed.) -

    Examples:

    +

    Examples:

    • \glsfirstabbrvhyphenfont on first
    • style-noreg -

      Some styles set the

      Some styles set the regular attribute. In some cases, there’s a version of the @@ -10998,7 +11103,7 @@ href="#abbrstyle.long-em-noshort-em-noreg">long-em-noshort-em-noreg style is a minor variation that style that doesn’t set the attribute. -

      There are a few “noshort” styles, such as

      There are a few “noshort” styles, such as long-hyphen-noshort-noreg, that have @@ -11016,7 +11121,7 @@ class="cmti-10">modifier1⟩]-[post]footnote -

      The display style uses ⟨

      The display style uses ⟨field1⟩ followed by a footnote with the other field in it. If post is present then the footnote is placed after the link-text using the post-link hook. The inline style does ⟨field1⟩ followed by the other field in parentheses. -

      If

      If -modifier1⟩ is present, ⟨field1⟩ has a font-changing command applied to it. -

      Examples:

      +

      Examples:

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

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

      Take care with the footnote styles. Remember that there are some situations where \footnote doesn’t work.
      -

      +

    • style-desc -

      Like ⟨

      Like ⟨style⟩ but the description key must be provided when defining abbreviations with this style. -

      Examples:

      +

      Examples:

      -

      Not all combinations that fit the above syntax are provided. Pre-version 1.04 +

      Not all combinations that fit the above syntax are provided. Pre-version 1.04 styles that didn’t fit this naming scheme are either provided with a synonym (where the former name wasn’t ambiguous) or provided with a deprecated synonym (where the former name was confusing). The deprecated style names generate a warning using: -



      \GlsXtrWarnDeprecatedAbbrStyle  old-name}{new-name}

      -

      +

      where ⟨old-name⟩ is the deprecated name and ⟨new-name⟩ is the preferred name. You can suppress these warnings by redefining this command to do nothing. -

      +

      -

      Top

      3.4.1 Predefined Abbreviation Styles that Set the Regular Attribute

      -

      The following abbreviation styles set the

      The following abbreviation styles set the regular attribute to “true” for all categories @@ -11122,12 +11227,12 @@ href="#glo:firstuse">first use. The name is set to the short form through the command -



      \glsxtrshortnolongname  \glsxtrshortnolongname

      -

      +

      (Similarly for the other shortmodifier\newacronym) for it to take effect. Make sure to \protect any formatting commands (or anything else that shouldn’t be expanded). -

      The

      The description is set to the long form. The inline full form displays ⟨short⟩ @@ -11295,12 +11400,12 @@ class="cmss-10">short-nolongname is set to the full form obtained by expanding -



      \glsxtrshortdescname  \glsxtrshortdescname

      -

      +

      (Similarly for the other shortmodifier\protect fragile and formatting commands and only redefin before \newabbreviation (or \newacronym). -

      The

      The description must be supplied by the user. You may prefer to use the \glsxtrshortlong⟩ (⟨short⟩). -

      The

      The sort key are set to the long form. The name key is also set to the long form, but this is done by expanding -



      \glsxtrlongnoshortdescname  \glsxtrlongnoshortdescname

      -

      +

      (Similarly for the other longmodifier-desc styles, unless indicated otherwise.) This command should only be redefined before abbreviations are defined, and any fragile or formatting commands within it need protecting. -

      The

      The description must be provided by the user. The predefined glossary styles won’t display the short form. You can use the post-description hook to @@ -11548,12 +11653,12 @@ class="cmss-10">sortname key is also set to the short form, but this is done by expanding -



      \glsxtrlongnoshortname  \glsxtrlongnoshortname

      -

      +

      (Similarly for other longmodifier-noshortmodifier⟩ styles, unless indicated otherwise.) This command should only be redefined before abbreviations are defined, and fragile or formatting commands should be protected. -

      The

      The description is set to the long form.

      @@ -11660,12 +11765,12 @@ href="#catattr.regular">regular attribute. -

      +

      -

      Top

      3.4.2 Predefined Abbreviation Styles that Don’t Set the Regular Attribute

      -

      The following abbreviation styles will set the

      The following abbreviation styles will set the regular attribute to “false” if it has @@ -11687,12 +11792,12 @@ class="cmss-10">sortname is also set to the short form through -



      \glsxtrlongshortname  \glsxtrlongshortname

      -

      +

      (Similarly for other longmodifiermodifier⟩ styles, unless indicated class="cmtt-10">\the\glslongtok and the short form can be referenced with \the\glsshorttok. -

      The

      The description is set to the long form. The long and short forms are separated by \glsxtrfull shows the long form followed by the short for The name field is obtained from -



      \glsxtronlyname  \glsxtronlyname

      -

      +

      Any redefinition of this command must come before the abbreviations are defined as it expands on definition. Make sure you protect any commands that shouldn’t be expanded. The long form can be referenced @@ -11804,12 +11909,12 @@ class="cmss-10">long-only-short-onlyname field is obtained from -



      \glsxtronlydescname  \glsxtronlydescname

      -

      +

      Any redefinition of this command must come before the abbreviations are defined as it expands on definition. Make sure you protect any commands that shouldn’t be expanded. The long form can be referenced @@ -11841,12 +11946,12 @@ class="cmss-10">long-short style but additional information can be inserted into the parenthetical material. This checks the value of the field given by -



      \glsxtruserfield  \glsxtruserfield

      -

      +

      (which defaults to useri) using \ifglshasfieldlong⟩ (⟨short⟩, ⟨field-value⟩). The format is governed by -



      \glsxtruserparen  text}{label}

      -

      +

      where ⟨text⟩ is the short form (for the \glsxtrparendescription is set to -



      \glsuserdescription  long}{label}

      -

      +

      The default definition ignores the ⟨label⟩ and encapsulates ⟨long⟩ with \glslonguserfont. -

      The

      The name is obtained by expanding \glsxtrlongshortname (see above). The @@ -11929,47 +12034,47 @@ class="cmtt-10">} href="#abbrstyle.short-long-user">short-long-user style. -

      For example: +

      For example:

      -
      +
      \setabbreviationstyle[acronym]{long-short-user}  
      \newacronym{tug}{TUG}{\TeX\ User Group}  
      \newacronym  
       [user1={German Speaking \TeX\ User Group}]  
       {dante}{DANTE}{Deutschsprachige Anwendervereinigung \TeX\ e.V}
      -

      On first use,

      On first use, \gls{tug} will appear as:

      -

      T

      TEX User Group (TUG)

      -

      whereas

      whereas \gls{dante} will appear as:

      -

      Deutschsprachige Anwendervereinigung T

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

      -

      The short form is formatted according to -


      The short form is formatted according to +


      \glsabbrvuserfont  \glsabbrvuserfont{text}

      -

      +

      and the plural suffix is given by -



      \glsxtrusersuffix  \glsxtrusersuffix

      -

      -

      These may be redefined as appropriate. For example, if you want a smallcaps +

      +

      These may be redefined as appropriate. For example, if you want a smallcaps style, you can just set these commands to those used by the long-short-sclong-short-sc -

      long⟩ (⟨short⟩). Before version 1.04, this was incorrectly set to the short form. If you want to revert back to this you can redefine -



      \glsxtrlongshortdescsort  \glsxtrlongshortdescsort

      -

      +

      For example:

      -
      +
      \renewcommand*{\glsxtrlongshortdescsort}{\the\glsshorttok}
      -

      The

      The description must be supplied by the user. The long and short forms are separated by \glsxtrfullsep. The name field is obtained from -



      \glsxtrlongshortdescname  \glsxtrlongshortdescname

      -

      +

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



      \glsxtrlongshortuserdescname  \glsxtrlongshortuserdescname

      -

      +

      Again, this should only be redefined before \newabbreviation (or \newacronym), and fragile and formatting commands need protecting. -

      The

      The description key must be supplied in the optional argument of short-long-user style. -

      The

      The name field is obtained from -



      \glsxtrshortlongname  \glsxtrshortlongname

      -

      +

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



      \glsxtrshortlongname  \glsxtrshortlongname

      -

      +

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



      \glsxtrshortlongdescname  \glsxtrshortlongdescname

      -

      +

      (Similarly for other shortmodifiername



      \glsxtrshortlonguserdescname  \glsxtrshortlonguserdescname

      -

      +

      Again, this should only be redefined before \newabbreviation (or \newacronym), and fragile and formatting commands need protecting. -

      The

      The description key must be supplied in the optional argument of nohyperfirsthyperref package is used). -

      The inline full form uses the ⟨

      The inline full form uses the ⟨short⟩ (⟨long⟩) style. The namedescriptionname key is obtained by expanding -



      \glsxtrfootnotename  \glsxtrfootnotename

      -

      +

      (Similarly for other shortmodifierfootnote styles, unless class="cmtt-10">\newabbreviation (or \newacronym), and fragile or formatting commands should be protected from expansion. -

      As from version 1.05, all the footnote styles use: -


      As from version 1.05, all the footnote styles use: +


      \glsfirstlongfootnotefont  \glsfirstlongfootnotefont{text}

      -

      +

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



      \glslongfootnotefont  \glslongfootnotefont{text}

      -

      +

      to format the long form elsewhere (for example, when used with \glsxtrlong). -

      As from version 1.07, all the footnote styles use: -


      As from version 1.07, all the footnote styles use: +


      \glsxtrabbrvfootnote  label}{long}

      -

      +

      By default, this just does \footnote} (the first argument is ignored). For

      -
      +
      \renewcommand{\glsxtrabbrvfootnote}[2]{%  
        \footnote{\glshyperlink[#2]{#1}}%  
      }
      -

      or to include the short form with a hyperlink: +

      or to include the short form with a hyperlink:

      -
      +
      \renewcommand{\glsxtrabbrvfootnote}[2]{%  
        \footnote{\glshyperlink[\glsfmtshort{#1}]{#1}: #2}%  
      }
      -

      Note that I haven’t used commands like

      Note that I haven’t used commands like \glsxtrshort to avoid interference (see first use. This will also defer the footnote \glsxtrifnextpunc. -

      The inline full form uses the ⟨

      The inline full form uses the ⟨short⟩ (⟨long⟩) style. The namemarkwords category attribute. The full form is formatted using -



      \glsxtrlonghyphenshort  }

      -

      +

      where ⟨insert⟩ is the inserted material provided in the final optional argument of commands like name key is obtained from \glsxtrlongshortname. -

      Unlike the other ⟨

      Unlike the other ⟨long⟩ (⟨short⟩) type of styles, such as long-short

      -

      The space before the parenthetical material is actually given by +

      The space before the parenthetical material is actually given by \glsxtrfullsep{labelinsert⟩ may be moved into the formatting commands according to the conditional \ifglsxtrinsertinside. -

      For example, if

      For example, if ip is defined using:

      -
      +
      \glssetcategoryattribute{english}{markwords}{true}  
      \setabbreviationstyle[english]{long-hyphen-short-hyphen}  
      \newabbreviation[category=english]{ip}{IP}{Internet Protocol}
      -

      then +

      then

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

      will do +

      will do

      -

      Internet-Protocol-Adressen (IP-Adressen)

      -

      on first use, whereas +

      Internet-Protocol-Adressen (IP-Adressen)

      +

      on first use, whereas

      -
      +
      \gls{ip}[ Address]
      -

      will do +

      will do

      -

      Internet Protocol Address (IP Address)

      -

      on first use. -

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

      Internet Protocol Address (IP Address)

      +

      on first use. +

      Note that the hyphenation isn’t applied when using commands like \glsxtrlong. This means that

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

      will do +

      will do

      -

      Internet Protocol-Adressen

      +

      Internet Protocol-Adressen

      -

      -

      If the

      +

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

      +
      \gls{ip}[-Adressen]
      -

      would do +

      would do

      -

      Internet Protocol-Adressen (IP-Adressen)

      -

      instead. -

      If the inserted material ⟨

      Internet Protocol-Adressen (IP-Adressen)

      +

      instead. +

      -

      -

      If you want the short version in small-caps, you can just redefine +

      +

      If you want the short version in small-caps, you can just redefine \glsabbrvhyphenfont and \glsxtrhyphensuffix to use the small-caps @@ -12977,11 +13082,11 @@ class="cmtt-10">\glsxtrhyphensuffix to use the small-caps

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

      Similarly for other font-changing variations. +

      Similarly for other font-changing variations.

      long-hyphen-noshort-desc-noreglong-hyphen-short-hyphen-desc
      -

      New to version 1.17. This is similar to

      New to version 1.17. This is similar to long-hyphen-short-hyphen but the user @@ -13032,7 +13137,7 @@ class="cmtt-10">\glsxtrlongshortdescname. class="cmssbx-10">long-hyphen-postshort-hyphen

      -

      New to version 1.17. This is similar to

      New to version 1.17. This is similar to long-hyphen-short-hyphen but the @@ -13058,7 +13163,7 @@ class="cmtt-10">}⟨insert
      where -



      \glsxtrposthyphenshort  label}insert

      -

      +

      is in the post-link hook. This uses the format:
      insert⟩ (isnert⟩) -

      The singular short form is always used here, even with

      The singular short form is always used here, even with \glspl. (Unlike long-hyphen-long-hyphen.)
      -

      -

      The part in the link-text on first use: -


      +

      The part in the link-text on first use: +


      \glsxtrlonghyphen  }{insert}

      -

      +

      checks if ⟨insert⟩ starts with a hyphen. If it does, then \glsxtrwordsep is locally @@ -13112,15 +13217,15 @@ class="cmti-10">insert⟩ for this style without causing nested hyperlinks, but only for commands like \gls. -

      Don’t use

      Don’t use \gls in the ⟨insert⟩ part for commands like \glsxtrfull, \glsxtrshort or \glsxtrlong.
      -

      -

      The inline full display format used by commands like

      +

      The inline full display format used by commands like \glsxtrfull behaves differently to the first use of \gls with this style. It’s better @@ -13137,7 +13242,7 @@ class="cmtt-10">} if you want to ensure the full class="cmssbx-10">long-hyphen-postshort-hyphen-desc

      -

      New to version 1.17. This is similar to

      New to version 1.17. This is similar to long-hyphen-postshort-hyphen @@ -13157,7 +13262,7 @@ class="cmss-10">long-hyphen-short-hyphen, except that the short form is displayed first followed by the long form in parentheses. The full form is formatted using -



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

      -

      +

      which behaves in an analogous way to \glsxtrlonghyphenshort. The name\glsxtrshortlongname. class="cmssbx-10">short-hyphen-long-hyphen-desc

      -

      New to version 1.17. This is similar to

      New to version 1.17. This is similar to short-hyphen-long-hyphen but the user @@ -13228,7 +13333,7 @@ class="cmtt-10">}⟨insert
      where -



      \glsxtrposthyphenlong  label}insert

      -

      +

      is in the post-link hook. These commands behave in an analogous manner to those used with name is obtained from \glsxtrshortlongname. -

      Don’t use

      Don’t use \gls in the ⟨insert⟩ part for commands like \glsxtrfull, \glsxtrshort or \glsxtrlong.
      -

      -

      The inline full display format used by commands like

      +

      The inline full display format used by commands like \glsxtrfull behaves differently to the first use of \gls with this style. It’s better @@ -13272,7 +13377,7 @@ class="cmtt-10">} if you want to ensure the full class="cmssbx-10">short-hyphen-postlong-hyphen-desc

      -

      New to version 1.17. This is similar to

      New to version 1.17. This is similar to short-hyphen-postlong-hyphen @@ -13283,13 +13388,13 @@ class="cmss-10">name\glsxtrshortlongdescname.

      -

      +

      -

      Top

      3.5 Defining New Abbreviation Styles

      -

      New abbreviation styles may be defined using: -


      New abbreviation styles may be defined using: +


      \newabbreviationstyle  }{fmts}

      -

      +

      -

      where ⟨

      where ⟨name⟩ is the name of the new style (as used in the mandatory argument of \setabbreviationstyleglossaries package’s \newacronymstyle command. -

      You can’t use styles defined by

      You can’t use styles defined by \newacronymstyle with glossaries-extra unless you have reverted glossaries package can’t be used with abbreviations defined with \newabbreviation.
      -

      -

      The ⟨

      +

      The ⟨setup⟩ argument deals with the way the entry is defined and may set attributes for the given abbreviation category. This argument should redefine -



      \CustomAbbreviationFields  \CustomAbbreviationFields

      -

      +

      to set the entry fields including the name (defaults to the short form if omitted), @@ -13356,12 +13461,12 @@ class="cmss-10">pluraldescription. -

      \CustomAbbreviationFields is expanded by \newabbreviation so take care to protect commands that shouldn’t be expanded.
      -

      -

      For example, the

      +

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

      -
      +
        \renewcommand*{\CustomAbbreviationFields}{%  
          name={\protect\glsabbrvfont{\the\glsshorttok}},  
          sort={\the\glsshorttok}, @@ -13383,14 +13488,14 @@ class="cmti-10">setup⟩:  
          plural={\protect\glsabbrvfont{\the\glsshortpltok}},%  
          description={\the\glslongtok}}%
      -

      Note that the

      Note that the first and firstplural are set even though they’re not used by \gls. -

      The basic styles, such as

      The basic styles, such as long-short, use commands like fmts⟩ argument even if they’re not used within \CustomAbbreviationFields. -

      The ⟨

      The ⟨setup⟩ argument may also redefine -



      \GlsXtrPostNewAbbreviation  \GlsXtrPostNewAbbreviation

      -

      +

      which can be used to assign attributes. (This will automatically be initialised to do nothing.) -

      For example, the

      For example, the short-footnote includes the following in ⟨setup⟩:

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

      This sets the

      This sets the nohyperfirst attribute to “true”. It also unsets the nohyperfirst attribute doesn’t get unset by other styles, so take care not to switch styles for the same category. -

      You can access the short, long, short plural and long plural values through the +

      You can access the short, long, short plural and long plural values through the following token registers. -

      Short value (defined by

      Short value (defined by glossaries): -



      \glsshorttok  \glsshorttok

      -

      -

      Short plural value (defined by

      +

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



      \glsshortpltok  \glsshortpltok

      -

      +

      (This may be the default value or, if provided, the value provided by the user through the shortplural key in the optional argument of \newabbreviation.) -

      Long value (defined by

      Long value (defined by glossaries): -



      \glslongtok  \glslongtok

      -

      -

      Long plural value (defined by

      +

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



      \glslongpltok  \glslongpltok

      -

      +

      (This may be the default value or, if provided, the value provided by the user through the longplural key in the optional argument of \newabbreviation.) -

      The short or long values may be modified by attributes (such as

      The short or long values may be modified by attributes (such as markwords). The @@ -13503,19 +13608,19 @@ above registers reflect the modification. If you want to access the original (unmodified) short or long form (as provided in the final two arguments of \newabbreviation), then use the commands: -



      \glsxtrorgshort  \glsxtrorgshort

      -

      +

      for the short form and -



      \glsxtrorglong  \glsxtrorglong

      -

      +

      for the long form. (These may be useful for the sort key to avoid any formatting that @@ -13523,44 +13628,44 @@ class="cmss-10">sort

      There are two other registers available that are defined by

      There are two other registers available that are defined by glossaries: -



      \glslabeltok  \glslabeltok

      -

      +

      which contains the entry’s label and -



      \glskeylisttok  \glskeylisttok

      -

      +

      which contains the values provided in the optional argument of \newabbreviation. -

      Remember put

      Remember put \the in front of the register command as in the examples above. The category label can be access through the command (not a register): -



      \glscategorylabel  \glscategorylabel

      -

      +

      This may be used inside the definition of \GlsXtrPostNewAbbreviation. -

      If you want to base a style on an existing style, you can use -


      If you want to base a style on an existing style, you can use +


      \GlsXtrUseAbbrStyleSetup  \GlsXtrUseAbbrStyleSetup{name}

      -

      +

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

      +
      \GlsXtrUseAbbrStyleSetup{long-noshort-desc}
      -

      within ⟨

      within ⟨setup⟩. -

      The ⟨

      The ⟨fmts⟩ argument deals with the way the entry is displayed in the document. This argument should redefine the following commands. -

      The default suffix for the plural short form (if not overridden by the

      The default suffix for the plural short form (if not overridden by the shortplural key): -



      \abbrvpluralsuffix  \abbrvpluralsuffix

      -

      +

      (Note that this isn’t used for the plural long form, which just uses the regular \glspluralsuffix.) -

      The font used for the short form on

      The font used for the short form on first use or in the full forms: -



      \glsfirstabbrvfont  \glsfirstabbrvfont{text}

      -

      -

      The font used for the short form on subsequent use or through commands like +

      +

      The font used for the short form on subsequent use or through commands like \glsxtrshort: -



      \glsabbrvfont  \glsabbrvfont{text}

      -

      -

      The font used for the long form on

      +

      The font used for the long form on first use or in the full forms: -



      \glsfirstlongfont  \glsfirstlongfont{text}

      -

      -

      The font used for the long form in commands like

      +

      The font used for the long form in commands like \glsxtrlong use: -



      \glslongfont  \glslongfont{text}

      -

      -

      Display full form singular no case-change (used by

      +

      Display full form singular no case-change (used by \gls on first use for @@ -13643,7 +13748,7 @@ abbreviations without the regular attribute set): -



      \glsxtrfullformat  label}{insert}

      -

      -

      Display full form singular first letter converted to upper case (used by

      +

      Display full form singular first letter converted to upper case (used by \Gls on \Glsregular attribute set): -



      \Glsxtrfullformat  label}{insert}

      -

      -

      Display full form plural no case-change (used by

      +

      Display full form plural no case-change (used by \glspl on first use for @@ -13679,7 +13784,7 @@ abbreviations without the regular attribute set): -



      \glsxtrfullplformat  }

      -

      -

      Display full form plural first letter converted to upper case (used by

      +

      Display full form plural first letter converted to upper case (used by \Glspl on first use for abbreviations without the regular attribute set): -



      \Glsxtrfullplformat  label}{insert}

      -

      -

      In addition ⟨

      +

      In addition ⟨fmts⟩ may also redefine the following commands that govern the inline full formats. If the style doesn’t redefine them, they will default to the same as the display full forms. -

      Inline singular no case-change (used by

      Inline singular no case-change (used by \glsentryfull, \glsxtrfull\glsxtrfull\GLSxtrfull): -



      \glsxtrinlinefullformat  }{insert}

      -

      -

      Inline singular first letter converted to upper case (used by

      +

      Inline singular first letter converted to upper case (used by \Glsentryfull and \Glsxtrfull): -



      \Glsxtrinlinefullformat  }{insert}

      -

      -

      Inline plural no case-change (used by

      +

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



      \glsxtrinlinefullplformat  }{insert}

      -

      -

      Inline plural first letter converted to upper case (used by

      +

      Inline plural first letter converted to upper case (used by \Glsentryfullpl and \Glsxtrfullpl): -



      \Glsxtrinlinefullplformat  }{insert}

      -

      -

      (New to version 1.17.) You can also modify the way the subsequent use is +

      +

      (New to version 1.17.) You can also modify the way the subsequent use is formatted by redefining the following four commands, but these won’t be used for abbreviations with the regular attribute set. If the style doesn’t redefine these commands, the default values are used. -

      Singular with no case-change: -


      Singular with no case-change: +


      \glsxtrsubsequentfmt  label}{insert}

      -

      -

      Singular with first letter upper case: -


      +

      Singular with first letter upper case: +


      \Glsxtrsubsequentfmt  label}{insert}

      -

      +

      -

      Plural with no case-change: -


      Plural with no case-change: +


      \glsxtrsubsequentplfmt  }{insert}

      -

      -

      Plural with first letter upper case: -


      +

      Plural with first letter upper case: +


      \Glsxtrsubsequentplfmt  }{insert}

      -

      -

      If you want to provide support for

      +

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

      For example, the

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

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

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

      Since the inline full commands aren’t redefined, they default to the same as the display versions. -

      If you want to base a style on an existing style, you can use -


      If you want to base a style on an existing style, you can use +


      \GlsXtrUseAbbrStyleFmts  \GlsXtrUseAbbrStyleFmts{name}

      -

      +

      within ⟨fmts⟩, where ⟨name⟩ is the name of the existing style. For example, the @@ -13923,11 +14028,11 @@ class="cmti-10">fmts⟩:

      -
      +
        \GlsXtrUseAbbrStyleFmts{long-short}%
      -

      -

      Here’s an example of an abbreviation style that’s based on

      +

      Here’s an example of an abbreviation style that’s based on long-short that displays @@ -13937,7 +14042,7 @@ class="cmtt-10">\textsf:

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

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

      Note that this wouldn’t work if it was instead based on one of the modified versions such as short-sc-longshort-long\glsabbrvfont etc which makes them easier to adapt than the modified styles. -

      For further details, see the “Abbreviations” section in the documented code +

      For further details, see the “Abbreviations” section in the documented code (glossaries-extra-code.pdf).

      -

      -

      +

      Top

      4. Entries in Sectioning Titles, Headers, Captions and Contents

      -

      The

      The glossaries user manual cautions against using commands like \gls in chapter or section titles. The principle problems are:

      @@ -14006,9 +14111,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 @@ -14074,20 +14179,20 @@ class="cmtt-10">\markboth and \@starttoc. If you don’t like this change, you can restore their former definitions using -



    \glsxtrRevertMarks  \glsxtrRevertMarks

    -

    +

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



    \glsxtrRevertTocMarks  \glsxtrRevertTocMarks

    -

    +

    If you restore the header or table of contents commands, you’ll have to use the glossaries manual’s recommendations of either simply using -

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

    Alternatively, you need to find a way to insert

    Alternatively, you need to find a way to insert \glsxtrmarkhook and \@glsxtrinmark at the start of the header or table of contents either scoped or afterwards cancelled with \@glsxtrnotinmark and \glsxtrrestoremarkhook. -

    If you don’t revert the mark commands back with

    If you don’t revert the mark commands back with \glsxtrRevertMarks, you can use the commands described below in the argument of sectioning commands. You can still use them even if the mark commands have been reverted, but only where they don’t conflict with the page style. -

    The commands listed below all use

    The commands listed below all use \texorpdfstring if 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 @@ -14153,239 +14258,239 @@ 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  \Glsfmtshortpl{label}

    -

    +

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

    Display the long form: -


    Display the long form: +


    \glsfmtlong  \glsfmtlong{label}

    -

    -

    Display the plural long form: -


    +

    Display the plural long form: +


    \glsfmtlongpl  \glsfmtlongpl{label}

    -

    -

    First letter upper case singular long form: -


    +

    First letter upper case singular long form: +


    \Glsfmtlong  \Glsfmtlong{label}

    -

    +

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

    First letter upper case plural long form: -


    First letter upper case plural long form: +


    \Glsfmtlongpl  \Glsfmtlongpl{label}

    -

    +

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

    There are similar commands for the full form, but note that these use the

    There are similar commands for the full form, but note that these use the inline full form, which may be different from the full form used by \gls. -

    Display the full form: -


    Display the full form: +


    \glsfmtfull  \glsfmtfull{label}

    -

    -

    Display the plural full form: -


    +

    Display the plural full form: +


    \glsfmtfullpl  \glsfmtfullpl{label}

    -

    -

    First letter upper case singular full form: -


    +

    First letter upper case singular full form: +


    \Glsfmtfull  \Glsfmtfull{label}

    -

    +

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

    First letter upper case plural full form: -


    First letter upper case plural full form: +


    \Glsfmtfullpl  \Glsfmtfullpl{label}

    -

    +

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

    There are also equivalent commands for the value of the

    There are also equivalent commands for the value of the text field: -



    \glsfmttext  \glsfmttext{label}

    -

    -

    First letter converted to upper case: -


    +

    First letter converted to upper case: +


    \Glsfmttext  \Glsfmttext{label}

    -

    +

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

    The plural equivalents: +

    The plural equivalents: -



    \glsfmtplural  \glsfmtplural{label}

    -

    +

    and -



    \Glsfmtplural  \Glsfmtplural{label}

    -

    -

    Likewise for the value of the

    +

    Likewise for the value of the name field: -



    \glsfmtname  \glsfmtname{label}

    -

    -

    First letter converted to upper case: -


    +

    First letter converted to upper case: +


    \Glsfmtname  \Glsfmtname{label}

    -

    +

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

    Similarly for the value of the

    Similarly for the value of the first field: -



    \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. @@ -14419,7 +14524,7 @@ class="cmtt-10">\newacronym have the category set to acronym by default. -

    Additionally, if you have enabled

    Additionally, if you have enabled \newterm with the numbersnumber. -

    You can obtain the category label for a given entry using -


    You can obtain the category label for a given entry using +


    \glscategory  \glscategory{label}

    -

    +

    This is equivalent to commands like \glsentryname and so may be used in an expandable context. No error is generated if the entry doesn’t exist. -

    You can test the category for a given entry using -


    You can test the category for a given entry using +


    \glsifcategory  part}{false part}

    -

    +

    This is equivalent to

    }
    so any restrictions that apply to \ifglsfieldeq also apply to \glsifcategory. -

    Each category may have a set of attributes. For example, the

    Each category may have a set of attributes. For example, the general and acronym\glsentryfmt to determine whether to use \glsgenentryfmt or \glsxtrgenabbrvfmt. -

    Other attributes recognised by

    Other attributes recognised by glossaries-extra are:

    nohyperfirst attribute then just redefine -



    \glsxtrchecknohyperfirst  \glsxtrchecknohyperfirst{label}

    -

    +

    to do nothing.

    \newacronym if it’s using \newabbreviation.) This attribute doesn’t apply to the accessibility fields. -

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

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

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

    Here the

    Here the short and longuser1 -

    +
    \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. @@ -14705,40 +14810,40 @@ class="description">If this attribute is set to “true” any entry def class="cmtt-10">\newabbreviation will automatically have spaces in the long form replaced with -



    \glsxtrwordsep  \glsxtrwordsep

    -

    +

    and each word is encapsulated with -



    \glsxtrword  \glsxtrword{word}

    -

    +

    For example:

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

    is essentially the same as +

    is essentially the same as

    -
    +
    \newabbreviation{ip}{IP}  
    {\glsxtrword{Internet}\glsxtrwordsep\glsxtrword{Protocol}}
    -

    The “hyphen” styles, such as

    The “hyphen” styles, such as long-hyphen-short-hyphen, take advantage of this @@ -14756,24 +14861,24 @@ class="cmtt-10">\glsxtrlong. You can provide your own

    -
    +
    \newcommand{\hyplong}[2][]{%  
     {\def\glsxtrwordsep{-}\glsxtrlong[#1]{#2}}}
    -

    -

    This setting will also adjust the long plural. This attribute is only applicable to +

    +

    This setting will also adjust the long plural. This attribute is only applicable to entries defined using \newabbreviation (or \newacronym if it’s using \newabbreviation.) -

    This setting may result in the

    This setting may result in the \glsxtrword and \glsxtrwordsep markup ending up in the sort field, depending on the style in use.
    -

    +

    \newabbreviation (or \newacronym if it’s using \newabbreviation.) -

    This setting will only adjust the short plural if the

    This setting will only adjust the short plural if the shortplural key isn’t used. This setting will take precedence over insertdots. -

    This setting may result in the

    This setting may result in the \glsxtrword and \glsxtrwordsep markup ending up in the sort field, depending on the style in use.
    -

    +

    \newabbreviation (or \newacronym if it’s using \newabbreviation.) -

    If you explicitly override the short plural using the

    If you explicitly override the short plural using the shortplural key, you must explicitly insert the dots yourself (since there’s no way for the code to determine if the plural has a suffix that shouldn’t be followed by a dot).
    -

    +

    -

    This attribute is best used with the

    This attribute is best used with the discardperiod attribute set to “true”. @@ -14920,11 +15025,11 @@ class="cmss-10">short +

    -

    This setting will be overridden by an explicit use of the

    This setting will be overridden by an explicit use of the shortaccess key in the optional argument of \glsxtrifcounttrigger\cgls should behave. -

    With

    With glossaries, commands like \cgls use \cglsformat only if the previous @@ -15154,7 +15259,7 @@ class="cmtt-10">\capitalisewordsmfirstuc). 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\glossentrydesc +

-

+

\glossentryname +
\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. @@ -15316,10 +15421,10 @@ class="cmtt-10">\gls will be set to the -

+
\glssetcategoryattribute{general}{targeturl}{master-doc.pdf}
-

(See also the accompanying sample file

(See also the accompanying sample file sample-external.tex.) If the URL contains awkward characters (such as % or \glspercentchar and \glstildechar that expand to literal characters. -

If you want to a named anchor within the target URL (notionally adding +

If you want to a named anchor within the target URL (notionally adding #name⟩ to the URL), then you also need to set \glslabel within ⟨name⟩ which is set by commands like \gls to the entry’s label. -

All the predefined glossary styles start each entry listing with

All the predefined glossary styles start each entry listing with \glstarget which sets the anchor to \glolinkprefix\glslabel, so if you want @@ -15356,13 +15461,13 @@ class="cmss-10">targeturl -

+
\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 targetcategory for the ⟨name1⟩ part. -

For example: +

For example:

-
+
\glssetcategoryattribute{general}{targeturl}{master-doc.pdf}  
\glssetcategoryattribute{general}{targetcategory}{page}  
\glssetcategoryattribute{general}{targetname}{7}
-

will cause all link text for

will cause all link text for general entries to link to master-doc.pdf#page.7 (page 7 of that PDF). -

If you want a mixture in your document of entries that link to an internal +

If you want a mixture in your document of entries that link to an internal glossary and entries that link to an external URL then you can use the starred form of \newignoredglossary\newignoredglossary -

bib2gls v1.7+ which can handle multiple external sources and doesn’t require this attribute. -

An attribute can be set using: -


An attribute can be set using: +


\glssetcategoryattribute  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”: -



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

-

+

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



\glsgetattribute  }{attribute-label}

-

-

You can test if an attribute has been assigned to a given category using: -


+

You can test if an attribute has been assigned to a given category using: +


\glshascategoryattribute  true code}{false code}

-

+

This uses etoolbox’s true code⟩ if the attribute has been set and isn’t blank and isn’t \relax. The shortcut if you need to lookup the category label from an entry is: -



\glshasattribute  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  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 nohyper attribute set to true otherwise if does “HYPER”. -

With boolean-style attributes like

With boolean-style attributes like nohyper, make sure you always test for true not false in case the attribute hasn’t been set. -

Again there’s a shortcut if you need to lookup the category label from a particular +

Again there’s a shortcut if you need to lookup the category label from a particular entry: -



\glsifattribute  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 attribute set to “true”: -



\glsifregularcategory  true-part}{false-part}

-

+

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



\glsifregular  }{false-part}

-

+

Note that if the regularregular attribute has been set to “false”: -



\glsifnotregularcategory  true-part}{false-part}

-

+

or for a particular entry: -



\glsifnotregular  }{false-part}

-

+

Again, if the regular attribute hasn’t been set, the above do ⟨false-part⟩, so these reverse commands aren’t logically opposite in the strict sense. -

You can iterate through all entries with a given category using: -


You can iterate through all entries with a given category using: +


\glsforeachincategory[glossary-labels]{label-cs}{body}

-

+

This iterates through all entries in the glossaries identified by the comma-separated list ⟨glossary-labels⟩ that have the category given by ⟨

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

-

+

This will do ⟨body⟩ for each entry that has a category with the attribute ⟨attribute-label⟩ set to ⟨attribute-value⟩. The remaining arguments are as the previous command. -

You can change the category for a particular entry using the standard glossary +

You can change the category for a particular entry using the standard glossary field changing commands, such as \glsfielddef. Alternatively, you can use -



\glsxtrsetcategory  }{category-label}

-

+

This will change the category to ⟨category-label⟩ for each entry listed in the comma-separated list ⟨\glsfieldxdef so it will expand ⟨category-label⟩ and make the change global. -

You can also change the category for all entries with a glossary or glossaries +

You can also change the category for all entries with a glossary or glossaries using: -



\glsxtrsetcategoryforall  } class="cmtt-10">{⟨category-label}

-

+

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

-

-

+

Top

6. Counting References

-

There are three basic ways of counting entry references: +

There are three basic ways of counting entry references:

  1. Counting the total number of times glossaries class="cmtt-10">.aux file so that it’s available on the next LATEX run. -

    This method is extended by

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

-

Top

6.1 Entry Counting (First Use Flag)

-

As mentioned in

As mentioned in §2.4 Entry Counting Modifications, §5 Categories). -

Remember that entry counting only counts the number of times an entry is used +

Remember that entry counting only counts the number of times an entry is used by commands that change the first use flag. (That is, all those commands that mark the entry as having been used.) There are many commands that don’t modify this flag and they won’t contribute to the entry use count.
-

-

With

+

With glossaries-extra, you may use \cgls instead of shortcuts=acro). -

All upper case versions (not provided by

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



\cGLS  label}[insert]

-

+

and -



\cGLSpl  label}[insert]

-

+

These are analogous to \cgls and \cglspl but they use -



\cGLSformat  label}{insert}

-

+

and -



\cGLSplformat  label}{insert}

-

+

which convert the analogous \cglsformat and \cglsplformat to upper case. -

Just using

Just using glossaries:

-
+
\documentclass{article}  
\usepackage{glossaries}  
\makeglossaries @@ -16008,8 +16113,8 @@ class="cmss-10">glossaries:  
\printglossaries  
\end{document}
-

-

If you switch to

+

If you switch to glossaries-extra you must set the entrycountentrycount -

+ -

-

When activated with

+

When activated with \glsenableentrycount, commands such as \cgls now use -



\glsxtrifcounttrigger  } class="cmtt-10">{⟨normal code}

-

+

to determine if the entry trips the entry count trigger. The ⟨trigger code⟩ uses commands like trigger code⟩ but the usual \gls behaviour in ⟨normal code⟩). -

The default definition is: +

The default definition is:

-
+
\newcommand*{\glsxtrifcounttrigger}[3]{%  
 \glshasattribute{#1}{entrycount}%  
 {% @@ -16085,7 +16190,7 @@ class="cmti-10">normal code⟩).  
 {#3}%  
}
-

This means that if an entry is assigned to a category that has the

This means that if an entry is assigned to a category that has the entrycount @@ -16093,17 +16198,17 @@ attribute then the ⟨trigger code⟩ will be used if the previous count value (the number of times the entry was used on the last run) is greater than the value of the attribute. -

For example, to trigger normal use if the previous count value is greater than +

For example, to trigger normal use if the previous count value is greater than four:

-
+
\glssetcategoryattribute{abbreviation}{entrycount}{4}
-

-

There is a convenient command provided to enable entry counting, set the +

+

There is a convenient command provided to enable entry counting, set the entrycount\gls, etc to use \cgls etc: -



\GlsXtrEnableEntryCounting  } class="cmtt-10">{⟨value}

-

+

The first argument ⟨categories⟩ is a comma-separated list of categories. For each category, the value⟩. In addition, this does:

-
+
\renewcommand*{\gls}{\cgls}%  
\renewcommand*{\Gls}{\cGls}%  
\renewcommand*{\glspl}{\cglspl}% @@ -16143,19 +16248,19 @@ class="cmti-10">value⟩. In addition, this does:  
\renewcommand*{\GLS}{\cGLS}%  
\renewcommand*{\GLSpl}{\cGLSpl}%
-

This makes it easier to enable entry-counting on existing documents. -

If you use

This makes it easier to enable entry-counting on existing documents. +

If you use \GlsXtrEnableEntryCounting more than once, subsequent uses will just set the entrycount attribute for each listed category. -

The above example document can then become: +

The above example document can then become:

-
+
\documentclass{article}  
\usepackage{glossaries-extra}  
\makeglossaries @@ -16168,12 +16273,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 @@ -16227,58 +16332,58 @@ class="cmss-10">entrycountunitcount (the name of the counter). -

Both the original document-wide counting mechanism and the per-unit counting +

Both the original document-wide counting mechanism and the per-unit counting mechanism provide a command that can be used to access the current count value for this run: -



\glsentrycurrcount  \glsentrycurrcount{label}

-

+

and the final value from the previous run: -



\glsentryprevcount  \glsentryprevcount{label}

-

+

In the case of the per-unit counting, this is the final value for the current unit. In both commands ⟨label⟩ is the entry’s label. -

The per-unit counting mechanism additionally provides: -


The per-unit counting mechanism additionally provides: +


\glsentryprevtotalcount  \glsentryprevtotalcount{label}

-

+

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



\glsentryprevmaxcount  \glsentryprevmaxcount{label}

-

+

which gives the maximum per-unit total from the previous run. -

The above two commands are unavailable for the document-wide counting. -

Example of per-unit counting, where the unit is the chapter: +

The above two commands are unavailable for the document-wide counting. +

Example of per-unit counting, where the unit is the chapter:

-
+
\documentclass{report}  
\usepackage{glossaries-extra}  
\GlsXtrEnableEntryUnitCounting{abbreviation}{2}{chapter} @@ -16297,7 +16402,7 @@ which gives the maximum per-unit total from the previous run.  
\printglossaries  
\end{document}
-

In this document, the

In this document, the css entry is used three times in the first chapter. This is more than the trigger value of 2, so \gls{css} is expanded on \gls{css} doesn’t get a line added to the glossary file. -

The

The html is used a total of three times, but the expansion and indexing suppression trigger is tripped in both chapters because the per-unit total (1 for the first chapter and 2 for the second chapter) is less than or equal to the trigger value. -

The

The sample entry has only been used once, but it doesn’t trip the indexing suppression because it’s in the general\GlsXtrEnableEntryUnitCounting. -

The per-unit entry counting can be used for other purposes. In the following +

The per-unit entry counting can be used for other purposes. In the following example document the trigger value is set to zero, which means the index suppression won’t be triggered, but the unit entry count is used to automatically suppress the hyperlink for commands like \gls by modifying the hook -



\glslinkcheckfirsthyperhook  \glslinkcheckfirsthyperhook

-

+

which is used at the end of the macro the determines whether or not to suppress the hyperlink.

-
+
\documentclass{article}  
\usepackage[colorlinks]{hyperref}  
\usepackage{glossaries-extra} @@ -16365,22 +16470,22 @@ hyperlink.  
\printglossaries  
\end{document}
-

This only produces a hyperlink for the first instance of

This only produces a hyperlink for the first instance of \gls{sample} on each page. -

The earlier warning about using the

The earlier warning about using the page counter still applies. If the first instance of \gls occurs at the top of the page within a paragraph that started on the previous page, then the count will continue from the previous page. -

+

-

Top

6.2 Link Counting

-

As from version 1.26, an alternative method of entry counting is to count the number +

As from version 1.26, an alternative method of entry counting is to count the number @@ -16396,8 +16501,8 @@ class="cmtt-10">\hyperlink when displaying the link-text.) -

To enable link counting use the preamble-only command: -


To enable link counting use the preamble-only command: +


\GlsXtrEnableLinkCounting  ] class="cmtt-10">{⟨categories}

-

+

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

When enabled, commands like

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



\glsxtrinclinkcounter  \glsxtrinclinkcounter{counter name}

-

+

This just does \stepcounter{counter name\refstepcounter instead, just redefine this command:

-
+
\renewcommand*{\glsxtrinclinkcounter}[1]{\refstepcounter{#1}}
-

-

You can access the internal count register using -


+

You can access the internal count register using +


\GlsXtrLinkCounterValue  \GlsXtrLinkCounterValue{label}

-

+

where ⟨label⟩ is the entry’s label. This will expand to 0 if the counter hasn’t been defined. -

It’s also possible to access the display value (

It’s also possible to access the display value (\thecounter⟩) using -



\GlsXtrTheLinkCounter  \GlsXtrTheLinkCounter{counter}

-

+

(This will expand to 0 if the counter hasn’t been defined.) -

In order to conserve resources, the counter is only defined when it first +

In order to conserve resources, the counter is only defined when it first needs to be incremented so terms that have been defined but haven’t been used in the document won’t have the associated count register allocated.
-

-

You can test if the counter has been defined using: -


+

You can test if the counter has been defined using: +


\GlsXtrIfLinkCounterDef  }{false}

-

+

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

The counter name can be obtained using -


The counter name can be obtained using +


\GlsXtrLinkCounterName  \GlsXtrLinkCounterName{label}

-

+

This simply expands to the counter name associated with the entry given by ⟨label⟩ without any check for existence. For example, to change the display command @@ -16516,10 +16621,10 @@ class="cmss-10">etoolbox -

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

This is useful if you just want to change the display for specific entries but isn’t +

This is useful if you just want to change the display for specific entries but isn’t convenient if you want to change the display for all entries. Instead, it’s simpler to redefine \GlsXtrTheLinkCounter. For example: @@ -16527,16 +16632,16 @@ class="cmtt-10">\GlsXtrTheLinkCounter. For example:

-
+
\renewcommand*{\GlsXtrTheLinkCounter}[1]{%  
 \GlsXtrIfLinkCounterDef{#1}%  
 {\Roman{\GlsXtrLinkCounterName{#1}}}%  
 {0}%  
}
-

In both cases, the redefinition should be implemented after

In both cases, the redefinition should be implemented after \GlsXtrEnableLinkCounting. -

Here’s an example document that uses link counting to disable the hyperlink after +

Here’s an example document that uses link counting to disable the hyperlink after the first reference. This redefines \glslinkpresetkeys (which is used by both \glstext).

-
+
\documentclass{article}  
\usepackage[colorlinks]{hyperref}  
\usepackage{glossaries-extra} @@ -16574,7 +16679,7 @@ class="cmtt-10">\glstext).  
\printglossaries  
\end{document}
-

The use of

The use of \glslinkpresetkeys means that the options can override this. For example @@ -16582,10 +16687,10 @@ example

-
+
\gls[hyper=true]{sample1}
-

will override the

will override the hyper=false setting in \glslinkpresetkeys. If \glslinkpostsetkeyshyper=false setting will override the setting provided in the optional argument. -

The

The abbreviation category doesn’t have the -

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

will always be false. This means that the abbreviation won’t have

will always be false. This means that the abbreviation won’t have hyper=false applied. If the test is changed to

-
+

Top

7. Auto-Indexing

-

It’s possible that you may also want a normal index as well as the glossary, +

It’s possible that you may also want a normal index as well as the glossary, and you may want entries to automatically be added to the index (as in this document). There are two attributes that govern this: indexnamedualindex. -

The auto-indexing is designed for

The auto-indexing is designed for makeindex syntax. If you’ve used the bib2gls and its dual entries as an alternative approach.
-

-

The

+

The \glsxtrpostnamehook macro, used at the end of \glossentrynamename key. -

The internal macro used by the

The internal macro used by the glossaries package to write the information to the external glossary file is modified to check for the dualindex attribute. -

In both cases, the indexing is done through -


In both cases, the indexing is done through +


\glsxtrdoautoindexname  }{attribute-label}

-

+

This uses the standard \index command with the sort value taken from the entry’s @@ -16730,30 +16835,30 @@ class="cmti-10">label⟩}. As from v1.16, there are user-level commands available to change the sort and actual value used by the automated index. -

The actual value is given by -


The actual value is given by +


\glsxtrautoindexentry  \glsxtrautoindexentry{label}

-

+

where ⟨label⟩ is the entry’s label. The default definition is:

-
+
\newcommand*{\glsxtrautoindexentry}[1]{\string\glsentryname{#1}}
-

Note the use of

Note the use of \string to prevent \glsentryname from being expanded as it’s written to the index file. -

The sort value is assigned using: -


The sort value is assigned using: +


\glsxtrautoindexassignsort  }{label}

-

+

where ⟨label⟩ is the entry label and ⟨cs⟩ is the command which needs to be set to the @@ -16772,23 +16877,23 @@ sort value. The default definition is:

-
+
\newcommand*{\glsxtrautoindexassignsort}[2]{%  
  \glsletentryfield{#1}{#2}{sort}%  
}
-

After this macro is called, ⟨

After this macro is called, ⟨cs⟩ is then processed to escape any of makeindex’s special characters. Note that this escaping is only performed on the sort not on the actual value. The escaping of the sort value is performed by -



\glsxtrautoindexesc  \glsxtrautoindexesc

-

+

You can redefine this to do nothing if you want to omit the escaping. You may want to consider providing another field to obtain the appropriate sort value if the one provided in the sort field isn’t suitable (because it may already have had special characters escaped or it may be a numeric value in the case of sort by use or definition). -

The command used to perform the actual indexing is: -


The command used to perform the actual indexing is: +


\glsxtrautoindex  \glsxtrautoindex{text}

-

+

This just does \index{text} by default. -

The entry’s

The entry’s parent field isn’t referenced in this automated indexing.
-

-

For example, to index the value of the

+

For example, to index the value of the first key, instead of the namename -

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

and if the sort value also needs to be set to the

and if the sort value also needs to be set to the long field, if present, otherwise the sort -

+
\renewcommand*{\glsxtrautoindexassignsort}[2]{%  
  \ifglshaslong{#2}%  
  {\glsletentryfield{#1}{#2}{long}}%  
  {\glsletentryfield{#1}{#2}{sort}}%  
}
-

-

If the value of the attribute given by ⟨

+

If the value of the attribute given by ⟨attribute-label⟩ is “true”, no encap will be added, otherwise the encap will be the attribute value. For example:

-
+
\glssetcategoryattribute{general}{indexname}{textbf}
-

will set the encap to

will set the encap to textbf which will display the relevant page number in bold whereas

-
+
\glssetcategoryattribute{general}{dualindex}{true}
-

won’t apply any formatting to the page number in the index. -

The location used in the index will always be the page number not the counter +

won’t apply any formatting to the page number in the index. +

The location used in the index will always be the page number not the counter used in the glossary. (Unless some other loaded package has modified the definition of \index to use some thing else.)
-

-

By default the

+

By default the format key won’t be used with the format key to override the attribute value by using the preamble-only command: -



\GlsXtrEnableIndexFormatOverride  \GlsXtrEnableIndexFormatOverride

-

+

If you use this command and hyperref has been loaded, then the \glshypernumber to allow formats that use that command. -

The

The dualindex attribute will still be used on subsequent use even if the @@ -16914,8 +17019,8 @@ class="cmss-10">dualindexnoindex key.
-

-

The

+

The \glsxtrdoautoindexname command will attempt to escape any of \makeindex\encapchar have been defined before glossaries-extra is loaded). -

If this isn’t the case, you can use the following preamble-only commands to set +

If this isn’t the case, you can use the following preamble-only commands to set the correct characters. -

Be very careful of possible shifting category codes!
-

-


Be very careful of possible shifting category codes!
+

+


\GlsXtrSetActualChar  \GlsXtrSetActualChar{char}

-

+

Set the actual character to ⟨char⟩. -



\GlsXtrSetLevelChar  \GlsXtrSetLevelChar{char}

-

+

Set the level character to ⟨char⟩. -



\GlsXtrSetEscChar  \GlsXtrSetEscChar{char}

-

+

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



\GlsXtrSetEncapChar  }

-

+

Set the encap character to ⟨char⟩.

-

-

+

Top

8. On-the-Fly Document Definitions

-

The commands described here may superficially look like ⟨

The commands described here may superficially look like ⟨word\index{word\index then just use \index.
-

-

The

+

The glossaries package advises against defining entries in the documentglossaries-extra but can be enabled using the href="#styopt.docdefs">docdefs package options. -

Although this can be problematic, the

Although this can be problematic, the glossaries-extra package provides a way of defining and using entries within the documentdocdefsThere are limitations with this approach, so take care with it. This function is disabled by default, but can be enabled using the preamble-only command: -



\GlsXtrEnableOnTheFly  \GlsXtrEnableOnTheFly

-

+

When used, this defines the commands described below. -

The commands

The commands \glsxtr, \glsxtrpl, \Glsxtr and \printglossary\gls or there may be unexpected results.
-

-


+


\glsxtr  dfn-options]{label}

-

+

If an entry with the label ⟨label⟩ has already been defined, this just does \gls @@ -17093,7 +17198,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 @@ -17208,21 +17313,21 @@ without switching to X\GlsXtrEnableOnTheFly that allows you to use UTF-8 characters in ⟨label⟩, but it’s experimental and may not work in some cases. -

If you use the starred version of

If you use the starred version of \GlsXtrEnableOnTheFly don’t use any commands in the ⟨label⟩, even if they expand to just text.
-

+

-

-

+

Top

9. bib2gls: Managing Reference Databases

-

There is a new command line application called

There is a new command line application called bib2gls, which works in much @@ -17243,7 +17348,7 @@ class="cmtt-10">.glstex file which is loaded using \glsxtrresourcefile (or \GlsXtrLoadResources). -

This means that you can use a reference managing system, such as JabRef, to +

This means that you can use a reference managing system, such as JabRef, to maintain the database and it reduces the TEX overhead by only defining the entries that are actually required in the document. If you currently have a convertgls2bibbib2gls.) -

There are some new commands and options added to

There are some new commands and options added to glossaries-extra to help assist the integration of bib2gls into the document build process. -

This chapter just provides a general overview of

This chapter just provides a general overview of bib2gls. The full details and some sample documents are provided in the bib2gls manual. -

An example of the contents of

An example of the contents of .bib file that stores glossary entries that can be extracted with bib2gls:

-
+
@entry{bird,  
  name={bird},  
  description = {feathered animal}, @@ -17296,13 +17401,13 @@ class="cmtt-10">bib2gls:  
  description={a waterbird with a long neck}  
}
-

-

The follow provides some abbreviations: +

+

The follow provides some abbreviations:

-
+
@string{ssi={server-side includes}}  
@string{html={hypertext markup language}}  
@abbreviation{shtml, @@ -17321,13 +17426,13 @@ class="cmtt-10">bib2gls:  
  description={a simple interpreted server-side scripting language}  
}
-

-

Here are some symbols: +

+

Here are some symbols:

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

-

To ensure that

+

To ensure that bib2gls can find out which entries have been used in the @@ -17358,15 +17463,15 @@ class="cmss-10">record -

+
\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 bib2gls to omit sorting to save time and to prevent the < class="cmss-10">sort key from being set. -

The

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



\glsxtrresourcefile  ]{filename}

-

+

(Don’t include the file extension in ⟨filename⟩.) There’s a shortcut version (recommended over the above) that sets ⟨filename⟩ to use \jobname: -



\GlsXtrLoadResources  \GlsXtrLoadResources[options]

-

+

On the first use, this command is a shortcut for

}
where ⟨n⟩ is the current value of -



\glsxtrresourcecount

-

+

which is incremented at the end of \GlsXtrLoadResources. Any advisory notes regarding \glsxtrresourcefile also apply to \GlsXtrLoadResources. -

The

The \glsxtrresourcefile command writes the line

9.2

Since the

Since the .glstex file won’t exist on the first LATEX run, the .glstex file the references should be resolved. This may cause a shift in the locations if the actual text produced once the entry is defined is significantly larger than the placeholder ?? (as this can alter the page breaking). -

Note that as from v1.12,

Note that as from v1.12, \glsxtrresourcefile temporarily switches the category code of @ to 11 (letter) while it reads the file to allow for any internal commands stored in the location field.

-

Top

9.1 Selection

-

The default behaviour is for

The default behaviour is for bib2gls to select all entries that have a record in the @@ -17516,20 +17621,20 @@ methods), so you can do, for example,

-
+
\GlsXtrSetDefaultNumberFormat{glsignore}
-

at the start of the front matter and +

at the start of the front matter and

-
+
\GlsXtrSetDefaultNumberFormat{glsnumberformat}
-

at the start of the main matter to prevent any records in the front matter from +

at the start of the main matter to prevent any records in the front matter from occurring in the location lists. -

Note that commands like

Note that commands like \glsaddall and \glsaddallunused don’t work with bib2gls.
-

-

If you want to add all entries to the glossary, you need to tell

+

If you want to add all entries to the glossary, you need to tell bib2gls this in the options list. For example: @@ -17550,22 +17655,22 @@ options list. For example:

-
+
\GlsXtrLoadResources[src={terms},selection={all}]
-

This will add all entries, regardless of whether or not they have any records in the +

This will add all entries, regardless of whether or not they have any records in the .aux file. Those that don’t have any records will have an empty location list. See the bib2gls user manual for more details of this option. -

+

-

Top

9.2 Sorting and Displaying the Glossary

-

There are many sorting options provided by

There are many sorting options provided by bib2gls. The default is to sort according to the system locale. If the document has a language setting, you can use @@ -17583,13 +17688,13 @@ example:

-
+
\GlsXtrLoadResources[  
  src=terms, % data in terms.bib  
  sort=de-DE-1996 % sort according to this locale  
]
-

The locale-sensitive sort methods usually ignore most punctuation so for lists of +

The locale-sensitive sort methods usually ignore most punctuation so for lists of symbols you may find it more appropriate to use one of the letter-base sort methods that sort according to the Unicode value of each character. Alternatively you can provide a custom rule. See the bib2gls manual for full details of all the available sort methods. -

Since the

Since the .glstex file only defines those references required within the document (selected according to the selection option) and the definitions have been written in @@ -17611,7 +17716,7 @@ class="cmtt-10">\printunsrtglossaries), described in href="#sec:printunsrt">§10.2 Display All Entries Without Sorting or Indexing. -

Suppose the

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

-
+
\documentclass{article}  
\usepackage[record]{glossaries-extra}  
\setabbreviationstyle{long-short-desc} @@ -17635,18 +17740,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} @@ -17705,8 +17810,8 @@ methods:  
\printunsrtglossaries  
\end{document}
-

-

Or you can have multiple instance of

+

Or you can have multiple instance of \GlsXtrLoadResources with the same type, which will produce a glossary with ordered sub-blocks. For example: @@ -17714,7 +17819,7 @@ class="cmtt-10">type, which will produce a glossary with ordered sub-bloc

-
+
\documentclass{article}  
\usepackage[record,style=indexgroup]{glossaries-extra}  
\setabbreviationstyle{long-short-desc} @@ -17732,7 +17837,7 @@ class="cmtt-10">type, which will produce a glossary with ordered sub-bloc  
\printunsrtglossaries  
\end{document}
-

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

This will result in a glossary where the first group has the title “Abbreviations”, the second group has the title “Symbols” and then follow the usual letter groups. Note that for this example to work, you must run myDoc.tex:

-
+
pdflatex myDoc  
bib2gls -g myDoc  
pdflatex myDoc
-

The value of the

The value of the group field must always be a label. You can set the corresponding title with §2.12 Glossary Style Modifications). If no title is set then the label is used as the group title. -

You can provide your own custom sort rule. For example, if you are using +

You can provide your own custom sort rule. For example, if you are using XƎLATEX or LuaLATEX:

}]
-

+

-

Top

9.3 The glossaries-extra-bib2gls package

-

The package option

The package option record=onlyxindy and it is expected that the sorting will be switched off (with the resource option sort=none). -

If

If glossaries-extra-bib2gls is loaded via the script⟩ is the four letter script identifier, such as Latn). -

This package provides some shortcut commands that use

This package provides some shortcut commands that use \printunsrtglossary if the relevant package option has defined the associated glossary: \printunsrtnumbers\printunsrtindex. -



\glsxtrprovidecommand  ] class="cmtt-10">{⟨definition}

-

+

This command is intended for use in @preamble. It’s simply defined to -

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

This will force

This will force bib2gls to treat .glstex file (as it is by default) then it won’t override the current definition (provided by the kernel or redefined by a package). -

The helper commands in the resource files are defined using

The helper commands in the resource files are defined using \providecommand. For many of them, if you want to provide an alternative definition then you need to define the command before the resource file is loaded. There are a few that may be @@ -18183,7 +18288,7 @@ first LATEX run when the .glstex file doesn’t exist. In this case, you may prefer to use: -



\glsrenewcommand  ]{definition}

-

+

This behaves like \renewcommand but only generates a warning rather than an error if the command isn’t already defined so it won’t interrupt the document build. -



\GlsXtrIndexCounterLink  }{label}

-

+

If the \hyperref command has been defined (that is, bib2gls manual for further details (at least version 1.4). -

If you use the

If you use the set-widest resource option, bib2gls v1.8+ will now use: -



\glsxtrSetWidest  level}{text}

-

+

(if it has been defined) to set the widest name for the given glossary type and level. This allows for both the alttreealttreeglossary-longextra, which need to know the widest name. -

If

If bib2gls can’t determine the widest name (typically because the name field consists of commands that aren’t recognised by the interpreter) then bib2gls v1.8+ will now use: -



\glsxtrSetWidestFallback  } -

+

(if defined). Currently the maximum hierarchical depth ⟨max depth⟩ may only be 0 or 2. This command requires commands provided by the alttree\glssetwidest. -

+

-

Top

9.3.1 Supplemental Locations

-



\glsxtrdisplaysupploc  src}{location}

-

+

This is used by externallocation attribute. This command sets up the location counter and prefix (used in the formation of hyperlinks) and then uses -



\glsxtrmultisupplocation  } class="cmtt-10">{⟨format}

-

+

to format the actual location (with an external hyperlink, if supported). -

+

-

Top

9.3.2 Nameref Record

-

Normally locations are recorded in the

Normally locations are recorded in the .aux file in the form: -



\glsxtr@record{label}{}{location}

-

+

The record=namerefbib2gls v1.8, instead uses: -



\glsxtr@record@nameref{label}{href}{hcounter}

-

+

where ⟨title⟩ is obtained from \@currentlabelname and ⟨title⟩ and class="cmti-10">href ⟩ will be left empty and bib2gls will treat it as a regular record. -

Be careful with this option as ⟨

Be careful with this option as ⟨href ⟩ will globally change on every instance of \refstepcounter but ⟨title⟩ won’t necessarily change. It can therefore cause unexpected behaviour.
-

-

The final argument ⟨

+

The final argument ⟨hcounter⟩ is obtained from \theHcounter⟩ which provides the @@ -18450,7 +18555,7 @@ class="cmti-10">counter⟩ (most notably the equation counter with chapters) so this can fail. -

Since

Since bib2gls is customized specifically for use with \refstepcounter. However, you may choose to switch to using the ⟨href ⟩ target, which will take you to the nearest target before the indexing took place. -

With

With bib2gls v1.8+, normal locations are displayed using: -



\glsnoidxdisplayloc{prefix}{format}{location}

-

+

This is provided by the base glossaries package and is simply defined to do: -



\setentrycounter[prefix]{}{location}

-

+

Earlier versions of bib2gls only used this in the \setentrycounter command sets up the prefix needed for \glshypernumber to reform the target name from the given location. -

The locations identified by

The locations identified by \glsxtr@record@nameref are written by bib2gls to the location list using: -



\glsxtrdisplaylocnameref  hcounter}{file}

-

+

With normal internal locations, ⟨file⟩ will always be empty. With supplemental locations, ⟨file⟩ will be the external file reference. -

The default definition is: +

The default definition is:

-
+
\newcommand*{\glsxtrdisplaylocnameref}[8]{%  
  \ifstrequal{#2}{equation}%  
  {\glsxtrnamereflink{#3}{(#4)}{#2.#7}{#8}}% @@ -18577,8 +18682,8 @@ class="cmti-10">file⟩ will be the external file reference.  
  }%  
}
-

which uses: -


which uses: +


\glsxtrnamereflink  }{file}

-

+

This ignores the ⟨prefix⟩, ⟨counter⟩ and } arguments and instead creates a hyperlink with the target name obtained from ⟨target⟩ (and ⟨file⟩, if not empty). -

Since pages and equations typically don’t have titles, the default definition of +

Since pages and equations typically don’t have titles, the default definition of \glsxtrdisplaylocnameref checks the counter was used as the location. If it’s pageequation, then the text is the location in parentheses. Otherwise the text is obtained from ⟨title⟩. -

If ⟨

If ⟨file⟩ is empty an internal link is created with: -



\glsxtrfmtinternalnameref  } class="cmtt-10">{⟨title}

-

+

otherwise an external link is created with: -



\glsxtrfmtexternalnameref  title}{file}

-

+

The ⟨file⟩ argument is set by bib2gls for supplemental locations. -

Here’s alternative definition that uses the ⟨

Here’s alternative definition that uses the ⟨prefix⟩ and ⟨counter⟩ to reform the target name (as -

+
\renewcommand*{\glsxtrdisplaylocnameref}[7]{%  
 \glsxtrnamereflink{#3}{#5}{#6}{#7}%  
}
-

which uses: -


which uses: +


\glsxtrnameloclink  title}{file}

-

+

This uses the same commands as \glsxtrnamereflink to produce the hyperlinks. -

In both cases, the link is encapsulated with the text-block command whose +

In both cases, the link is encapsulated with the text-block command whose name is given by ⟨format⟩, but \glshypernumber is first locally redefined to @@ -18702,7 +18807,7 @@ class="cmti-10">format⟩ is hyperbf then it will simply behave like textbf. -

For compactness,

For compactness, bib2gls merges normal records if the ⟨location class="cmti-10">location⟩, as regular records). In all cases, the ⟨counter⟩ must also match. -

+

-

Top

9.3.3 Helper Commands for Resource Options

-



\glshex  \glshex

-

+

This is just defined as \string\u, which is required when you need to indicate a Unicode character in the form \uhex⟩ in some of the resource options (as illustrated above). -



\glscapturedgroup  \glscapturedgroup

-

+

This is just defined as \string\$ and is used for the captured group reference in a replacement part of a regular expression substitution (requires at least -

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

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

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

If you use the

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



\GlsXtrIfHasNonZeroChildCount  true}{false}

-

+

This internally uses \GlsXtrIfFieldNonZero and will do ⟨false⟩ if the field isn’t set. @@ -18793,14 +18898,14 @@ class="cmti-10">false⟩ you can use \glscurrentfieldvalue to access the value. (It will be 0 in ⟨false⟩ if the field isn’t set.) -

A convenient shortcut for use in the

A convenient shortcut for use in the entry-type-aliases setting: -



\GlsXtrBibTeXEntryAliases  \GlsXtrBibTeXEntryAliases

-

+

This provides aliases for BibTEX’s standard entry types to @bibtexentry entry type (requires at least bib2gls version 1.4). -

You may also want to provide storage keys for BibT

You may also want to provide storage keys for BibTEX’s standard fields rather than having to alias them all. This can be done with: -



\GlsXtrProvideBibTeXFields  \GlsXtrProvideBibTeXFields

-

+

Note that BibTEX’s type field clashes with the bibtextype field can be accessed with \glsxtrbibtype. Each of these commands takes the entry label as the sole argument. -

The

The glossaries-extra-bib2gls package also provides definitions of the missing mathematical Greek commands: upgreek has been loaded, the missing upright Greek commands are also provided. -

The remaining commands provide common rule blocks for use in the +

The remaining commands provide common rule blocks for use in the sort-rule resource option. If you want a rule for a specific locale, you can provide similar commands in a file called -

+
\ProvidesGlossariesExtraLang{welsh}[2018/02/23 v1.0]  
\@ifpackageloaded{glossaries-extra-bib2gls}  
{ @@ -18955,7 +19060,7 @@ contains:  
}  
{}% glossaries-extra-bib2gls.sty not loaded
-

(The use of

(The use of \string is in case the < character has been made active.) You can provide more than one rule-block per local, to allow for loanwords or foreign words. @@ -18963,7 +19068,7 @@ For example, you could provide \glsxtrWelshIRules, \glsxtrWelshIIRules etc. -

If the rules are for a particular script (independent of language or region) then +

If the rules are for a particular script (independent of language or region) then they can be provided in a file given by glossariesxtr-scriptglossariesxtr-Cyrl.ldf could contain:

-
+
\ProvidesGlossariesExtraLang{Cyrl}[2018/02/23 v1.0]  
\newcommand*{\glsxtrGeneralCyrillicIRules}{%  
  % Cyrillic rules @@ -18983,7 +19088,7 @@ class="cmtt-10">glossariesxtr-Cyrl.ldf could contain:  
  % an alternative set of Cyrillic rules  
}
-

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

(Remember that the required document language scripts need to be tracked through the tracklang package, in order for these files to be automatically loaded. This @@ -18996,7 +19101,7 @@ class="cmss-10">glossariestracklang documentation for further details.) -

Alternatively, if the rules are specific to a subject rather than a region or +

Alternatively, if the rules are specific to a subject rather than a region or language, then you can provide a supplementary package. For example, if you have a package called, say, mapsymbols that provides map symbols, then the file @@ -19006,7 +19111,7 @@ class="cmtt-10">mapsymbols.sty might contain:

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

and the supplementary file

and the supplementary file mapsymbols.bib can provide the appropriate definitions for bib2gls:

-
+
@preamble{"\glsxtrprovidecommand{\Harbour}{\char"2693}  
\glsxtrprovidecommand{\Battlefield}{\char"2694}  
\glsxtrprovidecommand{\Stadium}{\char"26BD}"}
-

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

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

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

-

The following commands are provided by

+

The following commands are provided by glossaries-extra-bib2gls. They should be separated by the rule separator characters & (ampersand) or < (less than). See Java’s RuleBasedCollator documentation for details of the rule syntax. -

For example, the following will place the mathematical Greek symbols (

For example, the following will place the mathematical Greek symbols (\alpha, \Beta -

+
sort-rule={\glsxtrcontrolrules  
 ;\glsxtrspacerules  
 ;\glsxtrnonprintablerules @@ -19105,31 +19210,31 @@ sort-rule={\glsxtrcontrolrules  
 <\glsxtrLatinOslash  
}
-

-


+


\glsxtrcontrolrules  \glsxtrcontrolrules

-

+

These are control characters that are usually placed at the start of a rule in the ignored section. They typically won’t occur in any sort values, but if they do they should normally be ignored. -



\glsxtrspacerules  \glsxtrspacerules

-

+

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



\glsxtrnonprintablerules  \glsxtrnonprintablerules

-

+

These are non-printable characters (BOM, tabs, line feed and carriage return). They typically come after the spaces separated by a ; (semi-colon). These characters @@ -19139,13 +19244,13 @@ href="#glo:bib2gls">bib2gls when it determines whether or not to use the interpreter, so a TAB or newline character may end up in the sort value if it wasn’t interpreted. -



\glsxtrcombiningdiacriticrules  \glsxtrcombiningdiacriticrules

-

+

These are combining diacritic marks which typically follow the space and non-printable blocks (separated by a semi-colon). This command is defined in terms of sub-block commands: @@ -19153,7 +19258,7 @@ of sub-block commands:

-
+
\newcommand*{\glsxtrcombiningdiacriticrules}{%  
 \glsxtrcombiningdiacriticIrules\string;  
 \glsxtrcombiningdiacriticIIrules\string; @@ -19161,36 +19266,36 @@ of sub-block commands:  
 \glsxtrcombiningdiacriticIVrules  
}
-

If you prefer, you can use the sub-blocks directly in your required ordered. -


If you prefer, you can use the sub-blocks directly in your required ordered. +


\glsxtrcombiningdiacriticIrules  \glsxtrcombiningdiacriticIrules

-

+

This contains the combining diacritics: acute, grave, breve, circumflex, caron, ring, vertical line above, diaeresis (umlaut), double acute, tilde, dot above, combining macron. -



\glsxtrcombiningdiacriticIIrules  \glsxtrcombiningdiacriticIIrules

-

+

This contains the combining diacritics: short solidus overlay, cedilla, ogonek, dot below, low line, overline, hook above, double vertical line above, double grave accent, candrabindu, inverted breve, turned comma above, comma above, reversed comma above, comma above right, grave accent below, acute accent below. -



\glsxtrcombiningdiacriticIIIrules  \glsxtrcombiningdiacriticIIIrules

-

+

This contains the combining diacritics: left tack below, right tack below, left angle above, horn, left half ring below, up tack below, down tack below, plus sign below, minus sign below, palatalized hook below, retroflex hook below, diaresis below, ring @@ -19202,13 +19307,13 @@ seagull below, x above, vertical tilde, double overline, Greek perispomeni, Gree dialytika tonos, Greek ypogegrammeni, double tilde, double inverted breve, Cyrillic titlo, Cyrillic palatalization, Cyrillic dasia pneumata, Cyrillic psili pneumata. -



\glsxtrcombiningdiacriticIVrules  \glsxtrcombiningdiacriticIVrules

-

+

This contains the combining diacritics: left harpoon above, right harpoon above, long vertical line overlay, short vertical line overlay, anticlockwise arrow above, clockwise arrow above, left arrow above, right arrow above, ring overlay, clockwise ring overlay, @@ -19218,20 +19323,20 @@ arrow above, left arrow above, right arrow above, ring overlay, clockwise ring o anticlockwise ring overlay, three dots above, four dots above, enclosing circle, enclosing square, enclosing diamond, enclosing circle backslash, left right arrow above. -



\glsxtrhyphenrules  \glsxtrhyphenrules

-

+

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



\glsxtrgeneralpuncrules  \glsxtrgeneralpuncrules

-

+

This contains punctuation characters. This rule block typically comes after the hyphen rules separated by a less than (<). As with the combining diacritics, this @@ -19241,20 +19346,20 @@ different order is required:

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

-


+


\glsxtrgeneralpuncIrules  \glsxtrgeneralpuncIrules

-

+

This is the first punctuation sub-block containing: underscore, macron, comma, semi-colon, colon, exclamation mark, inverted exclamation mark, question mark, inverted question mark, solidus, full stop, acute accent, grave accent, @@ -19263,32 +19368,32 @@ straight double quote, left guillemet, right guillemet, left parenthesis, right parenthesis, left square bracket, right square bracket, left curly bracket, right curly bracket, section sign, pilcrow sign, copyright sign, registered sign, at sign. -



\glsxtrcurrencyrules  \glsxtrcurrencyrules

-

+

This sub-block contains some currency symbols: currency sign, Thai currency symbol baht, cent sign, colon sign, cruzeiro sign, dollar sign, dong sign, euro sign, French franc sign, lira sign, mill sign, naira sign, peseta sign, pound sign, rupee sign, new sheqel sign, won sign, yen sign. -



\glsxtrgeneralpuncIIrules  \glsxtrgeneralpuncIIrules

-

+

This sub-block contains some other punctuation symbols: asterisk, backslash, ampersand, hash sign, percent sign, plus sign, plus-minus sign, division sign, multiplication sign, less-than sign, equals sign, greater-than sign, not sign, vertical bar (pipe), broken bar, degree sign, micron sign. -



\glsxtrdigitrules  \glsxtrdigitrules

-

+

This rule block contains the Basic Latin digits (0, …, 9) and the subscript and superscript digits (0 0 etc) made equivalent to the corresponding Basic Lat The digit block typically comes after the punctuation rules separated by a less than (<). -



\glsxtrBasicDigitrules  \glsxtrBasicDigitrules

-

+

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



\glsxtrSubScriptDigitrules  \glsxtrSubScriptDigitrules

-

+

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



\glsxtrSuperScriptDigitrules  \glsxtrSuperScriptDigitrules

-

+

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



\glsxtrfractionrules  \glsxtrfractionrules

-

+

This rule block contains vulgar fraction characters. The digit block typically comes after the digit rules separated by a less than (<). -

There are a number of Latin rule blocks. Some of these included extended +

There are a number of Latin rule blocks. Some of these included extended characters or ligatures (such as ß or œ) but they don’t include accented characters. If you require a Latin rule block that includes accented characters, digraphs, trigraphs or other extended characters, then it’s best to provide similar @@ -19342,12 +19447,12 @@ class="cmtt-10">glossariesxtr-⟨tag.ldf file for the particular language or region. -



\glsxtrGeneralLatinIrules  \glsxtrGeneralLatinIrules

-

+

This is just the basic (non-extended) Latin alphabet with the superscript and subscript Latin letters (a a etc) treated as the equivalent basic Latin letter. don’t want the subscripts and superscripts included you can redefine \glsxtrLatinA etc to omit them.) -



\glsxtrGeneralLatinIIrules  \glsxtrGeneralLatinIIrules

-

+

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



\glsxtrGeneralLatinIIIrules  \glsxtrGeneralLatinIIIrules

-

+

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



\glsxtrGeneralLatinIVrules  \glsxtrGeneralLatinIVrules

-

+

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



\glsxtrGeneralLatinVrules  \glsxtrGeneralLatinVrules

-

+

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



\glsxtrGeneralLatinVIrules  \glsxtrGeneralLatinVIrules

-

+

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



\glsxtrGeneralLatinVIIrules  \glsxtrGeneralLatinVIIrules

-

+

This is like \glsxtrGeneralLatinIrules but it includes ae-ligature (æ) between ‘A’ and ‘B’, eth (Ð) between ‘D’ and ‘E’, insular G (Ᵹ) instead of ‘G’, oe-ligature between ‘O’ and ‘P’, long s (ſ) equivalent to ‘s’, thorn (þ) between ‘T’ and ‘U’ and wynn (Ƿ) instead of W. -



\glsxtrGeneralLatinVIIIrules  \glsxtrGeneralLatinVIIIrules

-

+

This is like \glsxtrGeneralLatinIrules but ae-ligature (æ) is treated as ‘ae’, oe-ligature (œ) is treated as ‘oe’, eszett (ß) treated as ‘ss’, thorn (þ) is treated as ‘th’, Ø is treated as ‘O’ and ‘Ł’ is treated as ‘L’. -



\glsxtrLatinA  \glsxtrLatinA

-

+

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



\glsxtrLatinE  \glsxtrLatinE

-

+

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



\glsxtrLatinH  \glsxtrLatinH

-

+

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



\glsxtrLatinK  \glsxtrLatinK

-

+

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



\glsxtrLatinI  \glsxtrLatinI

-

+

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



\glsxtrLatinL  \glsxtrLatinL

-

+

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



\glsxtrLatinM  \glsxtrLatinM

-

+

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



\glsxtrLatinN  \glsxtrLatinN

-

+

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



\glsxtrLatinO  \glsxtrLatinO

-

+

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



\glsxtrLatinP  \glsxtrLatinP

-

+

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



\glsxtrLatinS  \glsxtrLatinS

-

+

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



\glsxtrLatinT  \glsxtrLatinT

-

+

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



\glsxtrLatinX  \glsxtrLatinX

-

+

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



\glsxtrLatinEszettSs  \glsxtrLatinEszettSs

-

+

A mini-rule that just covers eszett (ß) and makes long s (ſ) followed by short ‘s’ equivalent to ‘ß’. (This is used in the above blocks that treat ‘ß’ as ‘ss’.) -



\glsxtrLatinEszettSz  \glsxtrLatinEszettSz

-

+

A mini-rule that just covers eszett (ß) and makes long s (ſ) followed by ‘z’ equivalent to ‘ß’. (This is used in the above blocks that treat ‘ß’ as ‘sz’.) -



\glsxtrLatinEth  \glsxtrLatinEth

-

+

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



\glsxtrLatinThorn  \glsxtrLatinThorn

-

+

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



\glsxtrLatinAELigature  \glsxtrLatinAELigature

-

+

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



\glsxtrLatinOELigature  \glsxtrLatinOELigature

-

+

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



\glsxtrLatinOslash  \glsxtrLatinOslash

-

+

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



\glsxtrLatinLslash  \glsxtrLatinLslash

-

+

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



\glsxtrLatinWynn  \glsxtrLatinWynn

-

+

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



\glsxtrLatinInsularG  \glsxtrLatinInsularG

-

+

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



\glsxtrLatinSchwa  \glsxtrLatinSchwa

-

+

A mini-rule that just covers schwa (Ə) but includes the subscript schwa. (Not used in any of the provided Latin rule blocks described above.) -



\glsxtrLatinAA  \glsxtrLatinAA

-

+

A mini-rule for ‘Å’ so you don’t need to remember the Unicode values. (Not used in any of the provided Latin rule blocks described above.) -



\glsxtrMathGreekIrules  \glsxtrMathGreekIrules

-

+

A rule block for mathematical Greek (\alpha,



\glsxtrMathGreekIIrules  \glsxtrMathGreekIIrules

-

+

As \glsxtrMathGreekIrules but doesn’t include digamma. -



\glsxtrMathUpGreekIrules  \glsxtrMathUpGreekIrules

-

+

A rule block for upright Greek (\upalpha, etc, from the \digamma\Digamma) between epsilon and zeta. -



\glsxtrMathUpGreekIIrules  \glsxtrMathUpGreekIIrules

-

+

A rule block for upright Greek (\upalpha, etc, from the upgreek package) that doesn’t include digamma. -



\glsxtrMathItalicGreekIrules  \glsxtrMathItalicGreekIrules

-

+

A rule block for mathematical Greek (\alpha, EX, href="#glo:bib2gls">bib2gls’s interpreter treats them as italic to help keep them close to the lower case versions. -



\glsxtrMathItalicGreekIIrules  \glsxtrMathItalicGreekIIrules

-

+

A rule block for mathematical Greek (\alpha, \Alpha, etc) characters that doesn’t include digamma. -



\glsxtrMathItalicUpperGreekIrules  \glsxtrMathItalicUpperGreekIrules

-

+

A rule block for upper case mathematical Greek (\Alpha, \Beta\Digamma) between epsilon and zeta. -



\glsxtrMathItalicUpperGreekIIrules  \glsxtrMathItalicUpperGreekIIrules

-

+

A rule block for upper case mathematical Greek (\Alpha, \Beta, etc) characters that doesn’t include digamma. -



\glsxtrMathItalicLowerGreekIrules  \glsxtrMathItalicLowerGreekIrules

-

+

A rule block for lower case mathematical Greek (\alpha, \beta\digamma) between epsilon and zeta. -



\glsxtrMathItalicLowerGreekIIrules  \glsxtrMathItalicLowerGreekIIrules

-

+

A rule block for lower case mathematical Greek (\alpha, \beta, etc) characters that doesn’t include digamma. -

Additionally, there are commands in the form

Additionally, there are commands in the form \glsxtrUpAlpha, \glsxtrUpBeta etc and \upalpha etc and \Alpha, \alpha etc) as well as the following: -



\glsxtrMathItalicPartial  \glsxtrMathItalicPartial

-

+

The partial derivative symbol (). -



\glsxtrMathItalicNabla  \glsxtrMathItalicNabla

-

+

The nabla symbol (). -

+

-

Top

9.4 Supplementary Commands

-

These commands are provided by

These commands are provided by glossaries-extra for use with bib2gls. -

The information provided with

The information provided with \GlsXtrLoadResources is written to the .aux file using

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



\glsxtrresourceinit  \glsxtrresourceinit

-

+

may be used to temporarily redefine commands before the information is written to the file. This does nothing by default, but may be redefined to allow the use of short commands for convenience. For example, with: @@ -19837,40 +19942,40 @@ commands for convenience. For example, with:

-
+
\renewcommand{\glsxtrresourceinit}{\let\u\glshex}
-

you can just use, for example,

you can just use, for example, \u E6 instead of \string\uE6 in the custom rule. This redefinition of \u is scoped so its original definition is restored after the write operation. -

If you have multiple resource commands and you want a default set of options you +

If you have multiple resource commands and you want a default set of options you can supply them in the definition of: -



\GlsXtrDefaultResourceOptions  \GlsXtrDefaultResourceOptions

-

+

For example:

-
+
\renewcommand{\GlsXtrDefaultResourceOptions}{selection=all}
-

This should be done before the resource commands. -

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

This should be done before the resource commands. +

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

-
+
\documentclass{article}  
\usepackage[record,style=indexgroup]{glossaries-extra}  
\setabbreviationstyle{long-short-desc} @@ -19891,21 +19996,21 @@ example:  
\printunsrtglossaries  
\end{document}
-

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

If you do something like this, you may find it more convenient to define custom commands that set the prefix. For example:

-
+
\newcommand*{\sym}[2][]{\gls[#1]{sym.#2}}
-

The problem with this is that the custom command

The problem with this is that the custom command \sym doesn’t allow for modifiers (such as \gls* or \gls+). Instead you can use: -



\glsxtrnewgls  prefix}{cs}

-

+

which defines the command ⟨cs⟩ that behaves like

@@ -19941,23 +20046,23 @@ class="cmtt-10">] -
+
\glsxtrnewgls{sym.}{\sym}
-

or (to default to no hyperlinks) +

or (to default to no hyperlinks)

-
+
\glsxtrnewgls[hyper=false]{sym.}{\sym}
-

now you can use

now you can use \sym+{M} to behave like \gls+{sym.M}. -

If you also want the plural and first letter upper case versions you can +

If you also want the plural and first letter upper case versions you can use -



\glsxtrnewglslike  }{\Glspl-like cs}

-

+

For example:

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

For the all caps versions: -


For the all caps versions: +


\glsxtrnewGLSlike  \GLS-like cs}{\GLSpl-like cs}

-

+

For example:

-
+
\glsxtrnewGLSlike[hyper=false]{idx.}{\IDX}{\IDXpl}
-

-

There’s an analogous command for

+

There’s an analogous command for \rgls: -



\glsxtrnewrgls  }{cs}

-

+

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



\glsxtrnewrglslike  }{\rGlspl-like cs}

-

+

and for the all caps: -



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

-

-

If you provide your own custom command with just

+

If you provide your own custom command with just \newcommand that has syntax that starts with [}, then you can notify bib2gls using: -



\glsxtridentifyglslike  }{command}

-

+

This writes information to the .aux file so that bib2gls can search for the given command when looking for dependencies. -

Another possibility is to set up known label prefixes, with each one identified +

Another possibility is to set up known label prefixes, with each one identified by: -



\glsxtraddlabelprefix  \glsxtraddlabelprefix{prefix}

-

+

These should be listed in order of precedence. Since no entries are defined on the first LATEX run, the final prefix should be the fallback. You can prepend a prefix to the list using: -



\glsxtrprependlabelprefix  \glsxtrprependlabelprefix{prefix}

-

+

which gives it the highest order of precedence. -

The ⟨

The ⟨prefix⟩ argument may be empty. You can clear the list with: -



\glsxtrclearlabelprefixes  \glsxtrclearlabelprefixes

-

-

You can test if a prefix is already in the list with: +

+

You can test if a prefix is already in the list with: -



\glsxtrifinlabelprefixlist  } class="cmtt-10">{⟨false}

-

+

In general it’s best to avoid adding multiple instances of the same prefix, so you can check with this command before adding a prefix to the list. However, it can be useful to repeat a prefix at the end of the list so that it can be used as a fallback for entries that haven’t yet been defined. -

With the list of possible prefixes set up (including an empty prefix if necessary), +

With the list of possible prefixes set up (including an empty prefix if necessary), you can use: -



\dgls  label}[insert]

-

+

which behaves like

prefix⟩ is the first prefix in the list such that class="cmti-10">prefix⟩⟨label⟩ matches a defined entry (or the last entry in the prefix list if none match). -

There are also analogous commands for the plural and case-changing +

There are also analogous commands for the plural and case-changing versions: -



\dglspl  label}[insert]

-

+

(uses \glspl), -



\dGls  label}[insert]

-

+

(uses \Gls), -



\dGlspl  label}[insert]

-

+

(uses \Glspl), -



\dGLS  label}[insert]

-

+

(uses \GLS), -



\dGLSpl  label}[insert]

-

+

(uses \GLSpl), -



\dglslink  label}[insert]

-

+

(uses \glslink), -



\dglsdisp  label}[insert]

-

+

(uses \glsdisp). -

These commands are essentially provided for a mixture of single and dual entries. +

These commands are essentially provided for a mixture of single and dual entries. Suppose the file entries.bib contains:

-
+
@index{duck}  
@dualindexabbreviation{svm,  
  short={SVM}, @@ -20304,12 +20409,12 @@ class="cmtt-10">entries.bib contains:  
    diameter}  
}
-

and suppose the document code is: +

and suppose the document code is:

-
+
\documentclass{article}  
\usepackage{hyperref}  
\usepackage[record,abbreviations,symbols]{glossaries-extra} @@ -20324,7 +20429,7 @@ class="cmtt-10">entries.bib contains:  
\printunsrtglossaries  
\end{document}
-

This uses the default empty primary prefix and

This uses the default empty primary prefix and dual. for the dual prefix, so \gls{svm} is referencing the primary entry, which is (essentially) an \gls{pi}, which references the primary @index entry rather than the symbol. -

What’s really needed is: +

What’s really needed is:

-
+
\gls{duck}, \gls{dual.svm}, \gls{dual.pi}.
-

or with +

or with

-
+
\GlsXtrLoadResources[src=entries,  
 label-prefix={idx.},  
 dual-prefix={}  
]
-

then only the entries without a dual need a prefix: +

then only the entries without a dual need a prefix:

-
+
\gls{idx.duck}, \gls{svm}, \gls{pi}.
-

Using

Using \glsxtrnewglslike, as earlier, this can be simplified to:

-
+
\idx{duck}, \gls{svm}, \gls{pi}.
-

but this requires remembering which terms have duals. -

An alternative is to use

but this requires remembering which terms have duals. +

An alternative is to use \dgls instead:

-
+
\documentclass{article}  
\usepackage{hyperref}  
\usepackage[record,abbreviations,symbols]{glossaries-extra} @@ -20395,7 +20500,7 @@ class="cmtt-10">\dgls instead:  
\printunsrtglossaries  
\end{document}
-

On the first LAT

On the first LATEX call (when the .glstex file doesn’t exist), neither dual.svm) entry to be selected. The location will be adde primary entry’s location list, unless overridden by resource options, such as combine-dual-locations. -

Once

Once bib2gls has been run and the \dgls{svm} now behaves like \gls{dual.svm}, which follows the abbreviation style and hyperlinks to the list of abbreviations. -

Similarly for the index-symbol combination

Similarly for the index-symbol combination dual.pi and pi. In the case of \dgls{duck} always behaves like \gls{duck}. -

If you haven’t used

If you haven’t used combine-dual-locations an extra bib2gls+LATEX run may be required to correct the location lists. -

If you change the label prefixes, remember to update the corresponding +

If you change the label prefixes, remember to update the corresponding \glsxtraddlabelprefix{prefix}. If no prefixes have been added to the list (or if the list is cleared), just an empty prefix is assumed. -

As from version 1.8,

As from version 1.8, bib2gls provides hooks that identify the label prefixes in the @@ -20485,12 +20590,12 @@ loaded to set up the prefix list. For example: -

+
\newcommand{\bibglsprimaryprefixlabel}[1]{\glsxtraddlabelprefix{#1}}  
\newcommand{\bibglsdualprefixlabel}[1]{\glsxtrprependlabelprefix{#1}}  
\GlsXtrLoadResources[src=entries]
-

Remember that this will only have an effect once the

Remember that this will only have an effect once the .glstex file has been created. The prefix list will be empty on the first run (which is treated as a single empty prefix). If this isn’t a suitable fallback, it may be necessary to add one after all the @@ -20499,20 +20604,20 @@ resource commands:

-
+
\newcommand{\bibglsprimaryprefixlabel}[1]{\glsxtraddlabelprefix{#1}}  
\newcommand{\bibglsdualprefixlabel}[1]{\glsxtrprependlabelprefix{#1}}  
\GlsXtrLoadResources[src=entries,label-prefix={idx.}]  
\glsxtraddlabelprefix{idx.}
-

Although this rather defeats the purpose of using the hooks as you still have to keep +

Although this rather defeats the purpose of using the hooks as you still have to keep track of the fallback prefix. -

+

-

Top

9.5 Record Counting

-

As from version 1.1 of

As from version 1.1 of bib2gls, you can save the total record count for each entry by @@ -20535,7 +20640,7 @@ class="cmtt-10">recordcount: set to the total number of records found for class="cmtt-10">recordcount.⟨counter⟩: set to the total number of records found for the entry for the given counter. -

If

If --record-count-unit is used then additionally:

  • counter.location⟩: set to the total number of records found for the entry for the given counter with the given location.
-

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

Only use the unit counting option if the locations don’t contain any special characters. If you really need it with locations that may contain formatting commands, then you can try redefining: -



\glsxtrdetoklocation  \glsxtrdetoklocation{location}

-

+

so that it detokenizes ⟨location⟩ but take care when using \GlsXtrLocationRecordCount with commands like \thepage as they can end up becoming detokenized too early. -

Note that the record count includes locations that

Note that the record count includes locations that bib2gls discards, such as ignored records, duplicates and partial duplicates. It doesn’t include cross-reference @@ -20581,34 +20686,34 @@ field) is 2 + 1 + 4 = 7, and the total for the section counter (stored in the recordcount.section field) is 1. -

With the unit counting on as well, the field

With the unit counting on as well, the field recordcount.page.1 is set to 2, recordcount.page.2 is set to 1, recordcount.page.3 is set to 4 and recordcount.section.3 is set to 1. -

You can access these fields using the following commands which will expand to +

You can access these fields using the following commands which will expand to the field value if set or to 0 if unset: -



\GlsXtrTotalRecordCount  \GlsXtrTotalRecordCount{label}

-

+

This expands to the total record count for the entry given by ⟨label⟩.

-
+
\GlsXtrTotalRecordCount{bird}
-

expands to 8. -


expands to 8. +


\GlsXtrRecordCount  label}{counter}

-

+

This expands to the counter total for the entry given by ⟨label⟩ where ⟨counter⟩ is the @@ -20626,19 +20731,19 @@ counter name. For example:

-
+
\GlsXtrRecordCount{bird}{page}
-

expands to 7 and +

expands to 7 and

-
+
\GlsXtrRecordCount{bird}{section}
-

expands to 1. -


expands to 1. +


\GlsXtrLocationRecordCount  } class="cmtt-10">{⟨location}

-

+

This expands to the total for the given location. For example

-
+
\GlsXtrLocationRecordCount{bird}{page}{3}
-

expands to 4. Be careful about using

expands to 4. Be careful about using \thepage in the ⟨location⟩ part. Remember that due to TEX’s asynchronous output routine, \thepage may not be correct. -

There are commands analogous to the entry counting commands like

There are commands analogous to the entry counting commands like \cgls and \cglsformat that are triggered by the record count. These are listed below. -



\rgls  label}[insert]

-

-


+


\rglspl  label}[insert]

-

-


+


\rGls  label}[insert]

-

-


+


\rGlspl  label}[insert]

-

-


+


\rGLS  label}[insert]

-

-


+


\rGLSpl  label}[insert]

-

+

These commands check the recordcount -

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

For convenience, you can use -


For convenience, you can use +



-

+

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

The

The \rgls-like commands use -



\glsxtrifrecordtrigger  } class="cmtt-10">{⟨normal}

-

+

to determine whether the \rgls-like command should behave like its \gls counterpart (⟨normal⟩) or whether it should instead use ⟨trigger code⟩. -

This command checks if the

This command checks if the recordcount attribute is set. If not is just does ⟨normal⟩, otherwise it tests if -



\glsxtrrecordtriggervalue  \glsxtrrecordtriggervalue{label}

-

+

is greater than the value given in the recordcount -

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

The ⟨

The ⟨trigger code⟩ part writes a record with the format set to trigger format⟩. Then it unsets the first use flag. Note that it doesn’t implement the post-link hook. This ensures that the record count is correct on the next run. -

The ⟨

The ⟨trigger format⟩ depends on the \rgls-like command used and will be one of the following: -



\rglsformat  label}{insert}

-

-


+


\rglsplformat  label}{insert}

-

-


+


\rGlsformat  label}{insert}

-

-


+


\rGlsplformat  label}{insert}

-

-


+


\rGLSformat  label}{insert}

-

-


+


\rGLSplformat  label}{insert}

-

+

These all behave much like their \cglsformat counterparts. If the entry’s regular attribute is set or if the entry doesn’t have a long form, the first or first plural is used, otherwise the long or long plural form is used. -

You can use -


You can use +


\glsxtrenablerecordcount  \glsxtrenablerecordcount

-

+

to redefine \gls, \glspl, \rGls, class="cmtt-10">\rGlspl, \rGLS, \rGLSpl, respectively, for convenience. -

If you don’t want the entries that use ⟨

If you don’t want the entries that use ⟨trigger code⟩ to appear in the glossary, you need to use the resource option trigger-type to assign them to another glossary. @@ -20957,7 +21062,7 @@ For example:

-
+
\documentclass{article}  
\usepackage[record]{glossaries-extra}  
\newignoredglossary{ignored} @@ -20974,7 +21079,7 @@ For example:  
\printunsrtglossaries  
\end{document}
-

In the above,

In the above, stc and upa both only have one record, so they are assigned to the main one.

-

-

+

Top

10. Miscellaneous New Commands

-

The

The glossaries package provides \glsrefentry entry to cross-reference entries @@ -21001,21 +21106,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}{% @@ -21120,10 +21225,10 @@ class="cmti-10">without the initial backslash.  
   $\mtx{M}\mtxinv{M}=\glssymbol{identitymatrix}$}  
}
-

-

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

+

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



\glsxtrfmt  label}{text}

-

+

This effectively does

cs name⟩ is the control sequence name supplied in must be defined to take a single required argument. Although it effectively acts like \glslink it misses out the post-link hook. -

The default ⟨

The default ⟨default-options⟩ are given by -



\GlsXtrFmtDefaultOptions  \GlsXtrFmtDefaultOptions

-

+

This is defined as noindex but may be redefined as appropriate. Note that the replacement text of \GlsXtrFmtDefaultOptions is prepended to the optional argument of \glslink. -

As from version 1.23, there’s also a starred version of this command that has a +

As from version 1.23, there’s also a starred version of this command that has a final optional argument: -



\glsxtrfmt*  text}[insert]

-

+

Both the starred and unstarred versions use: -



\glsxtrfmtdisplay  }{insert}

-

+

within the link text. In the case of the unstarred version ⟨insert⟩ will be empty. It will also be empty if the final option argument is missing from the starred form. If the @@ -21229,25 +21334,25 @@ default definition is:

-
+
\newcommand{\glsxtrfmtdisplay}[3]{\csuse{#1}{#2}#3}
-

which puts ⟨

which puts ⟨text⟩ inside the argument of the control sequence and ⟨insert⟩ outside it (but it will still be inside the link text). -

Remember that nested links cause a problem so avoid using commands like

Remember that nested links cause a problem so avoid using commands like \gls or \glsxtrfmt within ⟨text⟩.
-

-

For example: +

+

For example:

-
+
\[  
  \glsxtrfmt{matrix}{A}  
  \glsxtrfmt{matrixinv}{A} @@ -21255,7 +21360,7 @@ class="cmti-10">text⟩.
 
  \glssymbol{identitymatrix}  
\]
-

If the default options are set to

If the default options are set to noindex then \glsxtrfmt won’t index, but will create a hyperlink (if -

+
\renewcommand{\GlsXtrFmtDefaultOptions}{hyper=false,noindex}
-

-

Note that

+

Note that \glsxtrfmt won’t work with PDF bookmarks. Instead you can use -



\glsxtrentryfmt  label}{text}

-

+

This uses \texorpdfstring and will simply expand to ⟨text⟩ within the PDF @@ -21293,14 +21398,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 @@ -21342,7 +21447,7 @@ class="cmtt-10">\newglossaryentry (or the optional argument of commands l class="cmtt-10">\newabbreviation). The corresponding field may not have been set for any of the entries if no default was provided. -

There are now commands provided to set individual fields. Note that +

There are now commands provided to set individual fields. Note that these only change the specified field, not any related values. For example, changing the value of the textparent field). Unexpected results may occur if they are subsequently changed. -



\GlsXtrSetField  field}{value}

-

+

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

\GlsXtrSetField uses -



\glsxtrsetfieldifexists  }{code}

-

+

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

This command just uses

This command just uses \glsdoifexists{=warn\glsxtrsetfieldifexists to simply do ⟨code⟩ if you want to skip the existence check. Alternatively you can instead use -



\glsxtrdeffield  replacement text}

-

+

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



\glsxtredeffield  replacement text}

-

-


+


\gGlsXtrSetField  field}{value}

-

+

As \GlsXtrSetField but globally. -



\eGlsXtrSetField  field}{value}

-

+

As \GlsXtrSetField but uses protected expansion. -



\xGlsXtrSetField  field}{value}

-

+

As \gGlsXtrSetField but uses protected expansion. -



\GlsXtrLetField  field}{cs}

-

+

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



\csGlsXtrLetField  }{cs name}

-

+

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



\GlsXtrLetFieldToField  label-2}{field-2}

-

+

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

The

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



\glsxtrifhasfield  }{false}

-

+

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



\glscurrentfieldvalue  \glscurrentfieldvalue

-

+

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



\glsxtrifhasfield*  }{false}

-

+

omits the implicit grouping. -

Be careful of keys that use

Be careful of keys that use \relax as the default value (such as the symbol). Use \ifglshassymbol instead.
-

-

There is also a version that simply uses

+

There is also a version that simply uses \ifcsundef. It doesn’t save the field value, but can be used if you only need to check if the field is defined without accessing it: -



\GlsXtrIfFieldUndef  }{false}

-

-

There’s a difference between an undefined field and an unset field. An undefined +

+

There’s a difference between an undefined field and an unset field. An undefined field hasn’t been assigned any value (no associated internal control sequence has been defined). If a defined field has been defined to empty, then it’s considered unset. \GlsXtrIfFieldUndef for fields that can only be defined through commands like \GlsXtrSetField.
-

-

You can test if a field value equals a string using -


+

You can test if a field value equals a string using +


\GlsXtrIfFieldEqStr  } class="cmtt-10">{⟨false}

-

+

If the entry exists and has the given field set to the given text then this does ⟨true⟩ otherwise it does ⟨etoolbox\ifdefstring. Version 1.39 introduced a starred form of this command, which uses the starred form of \glsxtrifhasfield. -

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


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


\GlsXtrIfFieldEqXpStr  true}{false}

-

+

This is like \GlsXtrIfFieldEqStr but first (protected) fully expands ⟨text⟩ (but not the field value). If you want to compare the (protected) full expansion of both the field value and ⟨text⟩ use: -



\GlsXtrIfXpFieldEqXpStr  true}{false}

-

+

Again, version 1.39 introduced a starred form of these commands, which use the starred form of \glsxtrifhasfield. -

As from v1.31, if a field represents a numeric (integer) value, you can use the +

As from v1.31, if a field represents a numeric (integer) value, you can use the following two numeric tests. If the field is set, it must expand to an integer. You may use \glscurrentfieldvalue within ⟨\glscurrentfieldvalue is set accordingly. As from version 1.39, these numeric tests have starred versions. The unstarred versions add implicit grouping. The starred versions don’t. -

To test if the value is non-zero: -


To test if the value is non-zero: +


\GlsXtrIfFieldNonZero  } class="cmtt-10">{⟨false}

-

+

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



\GlsXtrIfFieldEqNum  } class="cmtt-10">{⟨false}

-

+

This does ⟨true⟩ if the field value equals ⟨n⟩ (using \ifnum for the comparison) otherwise it does ⟨false⟩. For a more general numeric comparison you can use: -



\GlsXtrIfFieldCmpNum  true}{false}

-

+

where ⟨comparison⟩ is one of =, < or >. -

The

The glossaries package provides \glsfieldfetch which can be used to fetch the value of the given field and store it in a control sequence. The glossaries-extra package provides another way of accessing the field value: -



\glsxtrusefield  entry-label}{field-label}

-

+

This works in the same way as commands like \glsentrytext but the field label is specified in the first argument. Note that the ⟨

There is also a version that converts the first letter to uppercase (analogous to +

There is also a version that converts the first letter to uppercase (analogous to \Glsentrytext): -



\Glsxtrusefield  entry-label}{field-label}

-

+

and, as from v1.37, a command that converts the entire value to upper case: -



\GLSxtrusefield  entry-label}{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 list, you can use the following command that adds an item to the field using @@ -21902,7 +22007,7 @@ list, you can use the following command that adds an item to the field using class="cmss-10">etoolbox’s \listcsadd: -



\glsxtrfieldlistadd  }{item}

-

+

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



\glsxtrfieldlistgadd  }{item}

-

-


+


\glsxtrfieldlisteadd  }{item}

-

-


+


\glsxtrfieldlistxadd  }{item}

-

+

You can then iterate over the list using: -



\glsxtrfielddolistloop  }{field}

-

+

or -



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

-

+

and \xifinlistcs -



\glsxtrfieldxifinlist  }

-

-

See the

+

See the etoolbox’s user manual for further details of these commands, in particular the limitations of \ifinlist. -

If the field has a comma-separated list value instead, you can iterate over it +

If the field has a comma-separated list value instead, you can iterate over it using: -



\glsxtrforcsvfield  }{handler}

-

+

where again ⟨handler⟩ is a control sequence that takes a single argument. Unlike the \@endfortrue. The \glsxtrforcsvfield command locally defines a user level command: -



\glsxtrendfor  \glsxtrendfor

-

+

which is just a synonym for \@endfortrue. -

The loop is performed within the true part of

The loop is performed within the true part of \glsxtrifhasfield so scoping is automatically applied. -

As from version 1.32, if the field given by -


As from version 1.32, if the field given by +


\GlsXtrForeignTextField  \GlsXtrForeignTextField

-

+

(which defaults to userii) contains a locale tag, then -



\GlsXtrForeignText  entry label}{text}

-

+

can be used to encapsulate ⟨text⟩ in \foreignlanguage{text⟩. For example:

-
+
\documentclass{article}  
\usepackage[main=british,brazilian,ngerman]{babel}  
\usepackage{glossaries-extra} @@ -22162,31 +22267,31 @@ class="cmti-10">text⟩. For example:  
\gls{abnt}, \gls{din}.  
\end{document}
-

-

When using the

+

When using the record option, in addition to recording the usual location, you can also record the current value of another counter at the same time using the preamble-only command: -



\GlsXtrRecordCounter  \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 @@ -22268,8 +22373,8 @@ the definition of \glsgroupskip to avoid the “Incomplete \iftrue” error that may otherwise occur. -

There’s also a starred form -


There’s also a starred form +


\printunsrtglossary*  options]{code}

-

+

which is equivalent to

\endgroup class="cmtt-10">\glossarypreamble, the supplied ⟨code⟩ is done before the glossary header. -

This means you now have the option to simply list all entries on the first +

This means you now have the option to simply list all entries on the first LATEX run without the need for a post-processor, however there will be no §9 bib2gls: Managing Reference Databases). -

No attempt is made to gather hierarchical elements. If child entries aren’t defined +

No attempt is made to gather hierarchical elements. If child entries aren’t defined immediately after their parent entry, they won’t be together in the glossary when using \printunsrtglossary.
-

+

-

There’s a difference in behaviour depending on whether or not the

There’s a difference in behaviour depending on whether or not the group key is defined. If not defined (default), the group label will be formed from the first @@ -22331,7 +22436,7 @@ class="cmsy-10">§2.12 Glossary Style Modifications. This can lead to an odd effect if you are using a style that separates letter groups when the ordering isn’t alphabetical. -

If the

If the group key is defined (which it is with the group field is non-empty, then the corresponding title is obtained as described earlier. -

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


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


\glsxtrgroupfield  \glsxtrgroupfield

-

+

to the relevant internal field label, but the group bib2gls for secondary entries, which have the group label stored in the secondarygroup internal field.) -

If you have any entries with the

If you have any entries with the see key set, you will need the glossariesrecord=only package option will automatically deal with this. -

For example: +

For example:

-
+
\documentclass{article}  
\usepackage{glossaries-extra}  
\newglossaryentry{zebra}{name={zebra},description={stripy animal}} @@ -22406,32 +22511,32 @@ will automatically deal with this.  
\printunsrtglossaries  
\end{document}
-

In the above, zebra will be listed before ant as it was defined first. -

If you allow document definitions with the

In the above, zebra will be listed before ant as it was defined first. +

If you allow document definitions with the docdefs option, the document will require a second LATEX run if the entries are defined after \printunsrtglossary. -

The optional argument is as for

The optional argument is as for \printnoidxglossary (except for the sort key, which isn’t available). -

All glossaries may be displayed in the order of their definition using: -


All glossaries may be displayed in the order of their definition using: +


\printunsrtglossaries  \printunsrtglossaries

-

+

which is analogous to \printnoidxglossaries. This just iterates over all defined glossaries (that aren’t on the ignored list) and does \printunsrtglossary[type=⟨type⟩]. -

To avoid complications caused by

To avoid complications caused by tabular-like glossary styles,



\printunsrtglossaryentryprocesshook  \printunsrtglossaryentryprocesshook class="cmtt-10">{⟨label}

-

+

This hook should not display any content, but may be used to perform calculations. For example, to calculate widths. Within this hook you can use: -



\printunsrtglossaryskipentry  \printunsrtglossaryskipentry

-

+

to skip the current entry. This will prevent the entry from being added to the internal command. -

There’s another hook immediately before the internal command containing the +

There’s another hook immediately before the internal command containing the glossary code is performed: -



\printunsrtglossarypredoglossary  \printunsrtglossarypredoglossary

-

+

-

The internal command uses -


The internal command uses +


\printunsrtglossaryhandler  \printunsrtglossaryhandler{label}

-

+

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

By default the handler just does -


By default the handler just does +


\glsxtrunsrtdo  \glsxtrunsrtdo{label}

-

+

which determines whether to use \glossentry or \subglossentry and checks the @@ -22506,26 +22611,26 @@ href="#glo:numberlist">number list. If you want to use a different field to used instead of location then redefine: -



\GlsXtrLocationField  \GlsXtrLocationField

-

+

to the internal name of the desired field. For example:

-
+
\renewcommand{\GlsXtrLocationField}{primarylocation}
-

-

Note that if the given location field is undefined or unset, the handler will +

+

Note that if the given location field is undefined or unset, the handler will fallback on the loclist field.
-

+

You can instruct loclist field with the resource option --save-loclist=false to prevent it from being used as a fallback. -

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

You can redefine the handler if required. For example, you may want to filter entries according to the category label. You can test if a label is contained in a comma-separated list of labels using: -



\glsxtriflabelinlist  } class="cmtt-10">{⟨false}

-

+

The ⟨label⟩ and ⟨label list⟩ will be fully expanded. -

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

If you redefine the handler to exclude entries, you may end up with an empty glossary. This could cause a problem for the list-based styles.
-

-

For example, if the preamble includes: +

+

For example, if the preamble includes:

-
+
\usepackage[record,style=index]{glossaries-extra}  
\GlsXtrRecordCounter{section}
-

then you can print the glossary but first redefine the handler to only select entries +

then you can print the glossary but first redefine the handler to only select entries that include the current section number in the record.section field:

-
+
\renewcommand{\printunsrtglossaryhandler}[1]{%  
  \glsxtrfieldxifinlist{#1}{record.section}{\thesection}  
  {\glsxtrunsrtdo{#1}}%  
  {}%  
}
-

-

Alternatively you can use the starred form of

+

Alternatively you can use the starred form of \printunsrtglossary which will localise the change:

-
+
\printunsrtglossary*{%  
  \renewcommand{\printunsrtglossaryhandler}[1]{%  
    \glsxtrfieldxifinlist{#1}{record.section}{\thesection} @@ -22599,8 +22704,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} @@ -22626,7 +22731,7 @@ duplicate hypertarget names. For example:  
  }%  
}
-

Note that this will cause a problem if your descriptions contain commands like

Note that this will cause a problem if your descriptions contain commands like \gls that need to link an entry that doesn’t appear in the summary. In this case, it’s a better approach to use: @@ -22634,7 +22739,7 @@ better approach to use:

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

-

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

+

If it’s a short summary at the start of a section, you might also want to suppress the glossary header and add some vertical space afterwards:

-
+
\printunsrtglossary*{%  
  \renewcommand{\printunsrtglossaryhandler}[1]{%  
    \glsxtrfieldxifinlist{#1}{record.section}{\thesection} @@ -22675,9 +22780,9 @@ the glossary header and add some vertical space afterwards:  
  \appto\glossarypostamble{\glspar\medskip\glspar}%  
}
-

-

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


+

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


\printunsrtglossaryunit  counter name}

-

+

The above example can simply be replaced with:

-
+
\printunsrtglossaryunit{section}
-

-

This shortcut command is actually defined to use

+

This shortcut command is actually defined to use \printunsrtglossary* with -



\printunsrtglossaryunitsetup  counter name}

-

+

so if you want to just make some minor modifications you can do

-
+
\printunsrtglossary*{\printunsrtglossaryunitsetup{section}%  
  \renewcommand*{\glossarysection}[2][]{\subsection*{Summary}}%  
}
-

which will start the list with a subsection header with the title “Summary” +

which will start the list with a subsection header with the title “Summary” (overriding the glossary’s title). -

Note that this shortcut command is only available with the

Note that this shortcut command is only available with the record (or @@ -22732,7 +22837,7 @@ href="#styopt.record">record=alsoindex) package option. -

This temporary change in the hypertarget prefix means you need to explicitly use +

This temporary change in the hypertarget prefix means you need to explicitly use \hyperlink to create a link to it as commands like \gls will try to link to the target @@ -22744,12 +22849,12 @@ the front or back matter) which can be the target for all glossary references an just use \printunsrtglossaryunit for a quick summary at the start of a section etc. -

+

-

Top

10.3 Standalone Entry Items

-

It may be that you don’t want a list but would rather display entry details +

It may be that you don’t want a list but would rather display entry details throughout the document. You can simply do \glsentryname followed by -

+
\newcommand{\displayterm}[1]{%  
 \par\medskip\par\noindent  
 Definition: \glsentryname{#1}.\par @@ -22774,43 +22879,43 @@ custom command:  
 \par\medskip  
}
-

define your entries +

define your entries

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

and then later in the text: +

and then later in the text:

-
+
\displayterm{function}
-

-

However, if may be that you want to use

+

However, if may be that you want to use hyperref and have commands like \gls link back to the place where the term is described. Instead of using \glsentryname use -



\glsxtrglossentry  \glsxtrglossentry{label}

-

+

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

This is designed to behave much like the way the name is displayed in the +

This is designed to behave much like the way the name is displayed in the glossary. It performs the following:

  • Defines \printglossary and may be used by style hooks. class="cmtt-10">\glsentryitem and \glssubentryitem. The value is obtained by fully expanding: -



    \GlsXtrStandaloneGlossaryType  \GlsXtrStandaloneGlossaryType

    -

    +

    which defaults to the value of the type field for the current entry. @@ -22857,7 +22962,7 @@ class="cmss-10">subentrycounter\glsentryitem{⟨label}

-

otherwise it does (as from v1.31)

+

otherwise it does (as from v1.31)

-

If you have used

If you have used \nopostdesc or \glsxtrnopostpunc in any of your description fields, you can use -



\glsxtractivatenopost  \glsxtractivatenopost

-

+

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

@@ -22939,10 +23044,10 @@ class="cmtt-10">}\glspostdescription class="cmtt-10">\glsnonextpages and \glsnextpages have no effect outside of the glossary and are not intended for use in a standalone context. -

It’s also possible to select a different field (rather than using

It’s also possible to select a different field (rather than using name): -



\glsxtrglossentryother  }{field}

-

+

The ⟨field⟩ must be given using its internal field label which may not be the same as the key used to set the field. See the key to field mappings table in the }.

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

    The

    The \glsxtrglossentryother command internally uses -



    \GlsXtrStandaloneEntryOther  }{field}

    -

    +

    instead of \GlsXtrStandaloneEntryName, which uses \glossentrynameother{} instead of \glossentryname{label}. -

    If you have loaded the

    If you have loaded the glossaries-accsupp package (through the }

    (for example, \glssymbolaccessdisplay). -

    This means that my custom command can be changed to: +

    This means that my custom command can be changed to:

    -
    +
    \newcommand{\displayterm}[1]{%  
     \par\medskip\par\noindent  
     Definition: \glsxtrglossentry{#1}.\par @@ -23039,7 +23144,7 @@ class="cmtt-10">\glssymbolaccessdisplay).  
     \par\medskip  
    }
    -

    If I want numbered definitions, then I can use the package options

    If I want numbered definitions, then I can use the package options entrycounter or subentrycounter -

    + -

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

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

    -
    +
    \renewcommand*{\glsentrycounterlabel}{\theglossaryentry:\space}
    -

    It’s now possible to not only use

    It’s now possible to not only use \gls to link back to the definition but also use \glsrefentry to reference the counter and \glsxtrpageref to reference the page number. -

    If I want the description to behave more like it does in a glossary in need to make +

    If I want the description to behave more like it does in a glossary in need to make the following modification:

    -
    +
    \newcommand{\displayterm}[1]{%  
     \par\medskip\par\noindent  
     Definition \glsxtrglossentry{#1}.\par @@ -23089,18 +23194,18 @@ the following modification:  
     \par\medskip  
    }
    -

    (Note the grouping to localise

    (Note the grouping to localise \glsxtractivatenopost.) -

    You can also use

    You can also use \glsxtrglossentry within section headings. For example:

    -
    +
    \section{\glsxtrglossentry{function}}
    -

    This will use

    This will use \glsentryname in PDF bookmarks (if \texorpdfstring is defined) and will use \@glsxtrnotinmark and \glsxtrrestoremarkhook.) -

    +

    -

    Top

    10.4 Entry Aliases

    -

    An entry can be made an alias of another entry using the

    An entry can be made an alias of another entry using the alias key. The value should be the label of the other term. There’s no check for the other’s @@ -23131,7 +23236,7 @@ defining the other entry after the aliased entry. (For example, when used with id="dx1-49002">bib2gls.) -

    If an entry ⟨

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

    -

    The index suppression trigger is performed by -


    The index suppression trigger is performed by +


    \glsxtrsetaliasnoindex  \glsxtrsetaliasnoindex

    -

    +

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

    Within the definition of

    Within the definition of \glsxtrsetaliasnoindex you can use -



    \glsxtrindexaliased  \glsxtrindexaliased

    -

    +

    to index ⟨entry-2⟩. -

    The index suppression command can be redefined to index the main term instead. +

    The index suppression command can be redefined to index the main term instead. For example:

    -
    +
    \renewcommand{\glsxtrsetaliasnoindex}{%  
     \glsxtrindexaliased  
     \setkeys{glslink}{noindex}%  
    }
    -

    -

    The value of the

    +

    The value of the alias field can be accessed using -



    \glsxtralias  \glsxtralias{label}

    -

    +

    -

    -

    +

    Top

    11. Supplemental Packages

    -

    The

    The glossaries bundle provides additional support packages glossaries-prefix (for @@ -23271,10 +23376,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 @@ -23283,7 +23388,7 @@ example:

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

    -

    +

    +

    -

    Top

    11.2 Accessibility Support

    -

    The

    The glossaries-accsupp package needs to be loaded before glossaries-extra or through @@ -23316,10 +23421,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  
      {% @@ -23375,20 +23480,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: @@ -23396,17 +23501,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  
      {% @@ -23415,112 +23520,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 description field. -



    \Glsaccessdesc  \Glsaccessdesc{label}

    -

    +

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



    \glsaccessdescplural  \glsaccessdescplural{label}

    -

    +

    This displays the value of the descriptionplural field. -



    \Glsaccessdescplural  \Glsaccessdescplural{label}

    -

    +

    This displays the value of the descriptionplural 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 @@ -23703,11 +23808,11 @@ case.

    -

    -

    +

    Top

    12. Sample Files

    -

    The following sample files are provided with this package: +

    The following sample files are provided with this package:

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

    -

    +

    Top

    13. Multi-Lingual Support

    -

    There’s only one command provided by

    There’s only one command provided by glossaries-extra that you’re likely to want to change in your document and that’s \abbreviationsname\acronymname (provided by glossaries). -

    You can redefine it in the usual way. For example: +

    You can redefine it in the usual way. For example:

    -
    +
    \renewcommand*{\abbreviationsname}{List of Abbreviations}
    -

    Or using

    Or using babel or polyglossiapolyglossia -

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

    -

    Alternatively you can use the

    +

    Alternatively you can use the title key when you print the list of abbreviations. For example: @@ -24050,21 +24155,21 @@ For example:

    -
    +
    \printabbreviations[title={List of Abbreviations}]
    -

    or +

    or

    -
    +
    \printglossary[type=abbreviations,title={List of Abbreviations}]
    -

    -

    The other fixed text commands are the diagnostic messages, which shouldn’t +

    +

    The other fixed text commands are the diagnostic messages, which shouldn’t appear in the final draft of your document. -

    The

    The glossaries-extra package has the facility to load language modules (whose filename is in the form glossariesxtr-Latn, associated with the given dialect. There’s no warning if the associated file isn’t found. The script file is loaded after the dialect file. -

    If you want to write your own language module, you just need to create a file +

    If you want to write your own language module, you just need to create a file called glossariesxtr-langtracklang package). For example, glossariesxtr-french.ldf. -

    The simplest code for this file is: +

    The simplest code for this file is:

    -
    +
    \ProvidesGlossariesExtraLang{french}[2015/12/09 v1.0]  
    \newcommand*{\glossariesxtrcaptionsfrench}{%  
     \def\abbreviationsname{Abr\'eviations}% @@ -24125,8 +24230,8 @@ class="cmtt-10">glossariesxtr-french.ldf.  
      {}%  
    }
    -

    -

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

    +

    You can adapt this for other languages by replacing all instances of the language identifier french and the translated text Abr\’eviations as appropriate. You can @@ -24141,16 +24246,16 @@ class="cmsy-10">§9.3 The glossaries-extra-bib2gls package for further details. -

    This

    This .ldf file then needs to be put somewhere on TEX’s path so that it can be found by glossaries-extra. You might also want to consider uploading it to CTAN so that it can be useful to others. (Please don’t send it to me. I already have more packages than I am able to maintain.) -

    If you additionally want to provide translations for the diagnostic messages used +

    If you additionally want to provide translations for the diagnostic messages used when a glossary is missing, you need to redefine the following commands: -



    \GlsXtrNoGlsWarningHead  }{file}

    -

    +

    This produces the following text in English:

    -

    This document is incomplete. The external file associated with the +

    This document is incomplete. The external file associated with the glossary ‘⟨label⟩’ (which should be called ⟨file⟩) hasn’t been created.

    -



    \GlsXtrNoGlsWarningEmptyStart  \GlsXtrNoGlsWarningEmptyStart

    -

    +

    This produces the following text in English:

    -

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

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

    -



    \GlsXtrNoGlsWarningEmptyMain  \GlsXtrNoGlsWarningEmptyMain

    -

    +

    This produces the following text in English:

    -

    If you don’t want this glossary, add

    If you don’t want this glossary, add nomain to your package option list when you load glossaries-extra.sty. For example:

    -



    \GlsXtrNoGlsWarningEmptyNotMain  \GlsXtrNoGlsWarningEmptyNotMain{label}

    -

    +

    This produces the following text in English:

    -

    Did you forget to use

    Did you forget to use type=label⟩ when you defined your entries? If you tried to load entries into this glossary with ] as the optional argument? If you did, check that the definitions in the file you loaded all had the type set to \glsdefaulttype.

    -



    \GlsXtrNoGlsWarningCheckFile  \GlsXtrNoGlsWarningCheckFile{file}

    -

    +

    This produces the following text in English:

    -

    Check the contents of the file ⟨

    Check the contents of the file ⟨file⟩. If it’s empty, that means you haven’t indexed any of your entries in this glossary (using commands like \gls or \glsadd) so this list can’t be generated. If the file isn’t empty, the document build process hasn’t been completed.

    -



    \GlsXtrNoGlsWarningMisMatch  \GlsXtrNoGlsWarningMisMatch

    -

    +

    This produces the following text in English:

    -

    You need +

    You need to either replace \makenoidxglossaries with \makeglossaries or @@ -24255,17 +24360,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 automake340, 341, 342, 343, 344, 345, 344, 345, 346, 347, 348, 616
    class="cmbx-10">E \eglssetwidest  617
    \eglsupdatewidest  618
    \eGlsXtrSetField  701
    class="cmbx-10">G \gglssetwidest  702
    \gglsupdatewidest  703
    \gGlsXtrSetField  712, 713, 714, 715, 716, 716, 717, 718, 719, 763, 764, 765, 766, 767, 767, 768, 769, 770
    @@ -25764,11 +25869,11 @@ class="cmss-10">alttree  777, 778, 779, 780, 781, 782, 783, 784, 780, 781, 782, 783, 784, 785, 786, 787, 792, 793
        index  794
    +href="glossaries-extra-manual.html#dx1-20045" >794
        inline  795, 825
    class="cmss-10">tree  826, 827, 828, 829
    +href="glossaries-extra-manual.html#dx1-20046" >828, 829
        treenoname  830, 831, 832
    +href="glossaries-extra-manual.html#dx1-20051" >830, 831, 832
    glossary-bookindex package  833, 840
    class="cmss-10">glossary-tree package  841, 842, 843, 844, 845, 846
    +href="glossaries-extra-manual.html#dx1-20034" >843, 844, 845, 846
    \glossentrynameother  910
    \glsFindWidestAnyName  911
    \glsFindWidestAnyNameLocation  912
    \glsFindWidestAnyNameSymbol  913
    \glsFindWidestAnyNameSymbolLocation  914
    \glsFindWidestLevelTwo  915
    \glsFindWidestTopLevelName  916
    \glsFindWidestUsedAnyName  917
    \glsFindWidestUsedAnyNameLocation  918
    \glsFindWidestUsedAnyNameSymbol  919
    \glsFindWidestUsedAnyNameSymbolLocation  920
    \glsFindWidestUsedLevelTwo  921
    \glsFindWidestUsedTopLevelName  922
    \glsfirstabbrvdefaultfont  961
    \glsgetwidestname  962
    \glsgetwidestsubname  963
    \glshasattribute  \glslistdesc  1011
    \glslistgroupskip  1012
    +\glslistprelocation  1012
    +class="cmti-10">1013
    \glslocalreseteach  1013
    +class="cmti-10">1014
    \glslocalunseteach  1014
    +class="cmti-10">1015
    \glslongdefaultfont  1015
    +class="cmti-10">1016
    \glslongemfont  1016
    +class="cmti-10">1017
    \glslongextraDescAlign  1017
    +class="cmti-10">1018
    \glslongextraDescFmt  1018
    +class="cmti-10">1019
    \glslongextraDescNameHeader  1019
    +class="cmti-10">1020
    \glslongextraDescNameTabularFooter  1020
    +class="cmti-10">1021
    \glslongextraDescNameTabularHeader  1021
    +class="cmti-10">1022
    \glslongextraDescSymNameHeader  1022
    +class="cmti-10">1023
    \glslongextraDescSymNameTabularFooter  1023
    +class="cmti-10">1024
    \glslongextraDescSymNameTabularHeader  1024
    +class="cmti-10">1025
    \glslongextraGroupHeading  1025
    +class="cmti-10">1026
    \glslongextraHeaderFmt  1026
    +class="cmti-10">1027
    \glslongextraLocationAlign  1027
    +class="cmti-10">1028
    \glslongextraLocationDescNameHeader  1028
    +class="cmti-10">1029
    \glslongextraLocationDescNameTabularFooter  1029
    +class="cmti-10">1030
    \glslongextraLocationDescNameTabularHeader  1030
    +class="cmti-10">1031
    \glslongextraLocationDescSymNameHeader  1031
    +class="cmti-10">1032
    \glslongextraLocationDescSymNameTabularFooter  1032
    +class="cmti-10">1033
    \glslongextraLocationDescSymNameTabularHeader  1033
    +class="cmti-10">1034
    \glslongextraLocationFmt  1034, 1035, 1035
    +class="cmti-10">1036
    \glslongextraLocationSymDescNameHeader  1036
    +class="cmti-10">1037
    \glslongextraLocationSymDescNameTabularFooter  1037
    +class="cmti-10">1038
    \glslongextraLocationSymDescNameTabularHeader  1038
    +class="cmti-10">1039
    \glslongextraLocSetDescWidth  1039
    +class="cmti-10">1040
    \glslongextraNameAlign  1040
    +class="cmti-10">1041
    \glslongextraNameDescHeader  1041
    +class="cmti-10">1042
    \glslongextraNameDescLocationHeader  1042
    -\glslongextraNameDescLocationTabularFooter  1043
    +\glslongextraNameDescLocationTabularFooter  1044
    \glslongextraNameDescLocationTabularHeader  1044
    +class="cmti-10">1045
    \glslongextraNameDescSymHeader  1045
    +class="cmti-10">1046
    \glslongextraNameDescSymLocationHeader  1046
    +class="cmti-10">1047
    \glslongextraNameDescSymLocationTabularFooter  1047
    +class="cmti-10">1048
    \glslongextraNameDescSymLocationTabularHeader  1048
    +class="cmti-10">1049
    \glslongextraNameDescSymTabularFooter  1049
    +class="cmti-10">1050
    \glslongextraNameDescSymTabularHeader  1050
    +class="cmti-10">1051
    \glslongextraNameDescTabularFooter  1051
    +class="cmti-10">1052
    \glslongextraNameDescTabularHeader  1052
    +class="cmti-10">1053
    \glslongextraNameFmt  1053
    +class="cmti-10">1054
    \glslongextraNameSymDescHeader  1054
    +class="cmti-10">1055
    \glslongextraNameSymDescLocationHeader  1055
    +class="cmti-10">1056
    \glslongextraNameSymDescLocationTabularFooter  1056
    +class="cmti-10">1057
    \glslongextraNameSymDescLocationTabularHeader  1057
    +class="cmti-10">1058
    \glslongextraNameSymDescTabularFooter  1058
    +class="cmti-10">1059
    \glslongextraNameSymDescTabularHeader  1059
    +class="cmti-10">1060
    \glslongextraSetDescWidth  1060
    +class="cmti-10">1061
    \glslongextraSetWidest  1061
    +class="cmti-10">1062
    \glslongextraSubDescFmt  1062
    +class="cmti-10">1063
    \glslongextraSubNameFmt  1063
    +class="cmti-10">1064
    \glslongextraSubSymbolFmt  1064
    +class="cmti-10">1065
    \glslongextraSymbolAlign  1065
    +class="cmti-10">1066
    \glslongextraSymbolFmt  1066
    +class="cmti-10">1067
    \glslongextraSymDescNameHeader  1067
    +class="cmti-10">1068
    \glslongextraSymDescNameTabularFooter  1068
    +class="cmti-10">1069
    \glslongextraSymDescNameTabularHeader  1069
    +class="cmti-10">1070
    \glslongextraSymLocSetDescWidth  1070
    +class="cmti-10">1071
    \glslongextraSymSetDescWidth  1071
    +class="cmti-10">1072
    \glslongextraTabularVAlign  1072
    +class="cmti-10">1073
    \glslongextraUpdateWidest  1073
    +class="cmti-10">1074
    \glslongextraUpdateWidestChild  1074
    +class="cmti-10">1075
    \GlsLongExtraUseTabulartrue  1075
    +class="cmti-10">1076
    \glslongfont  1076
    +class="cmti-10">1077
    \glslongfootnotefont  1077
    +class="cmti-10">1078
    \glslonghyphenfont  1078
    +class="cmti-10">1079
    \glslongonlyfont  1079
    +class="cmti-10">1080
    \glslongpltok  1080
    +class="cmti-10">1081
    \glslongtok  1081
    +class="cmti-10">1082
    \glslonguserfont  1082
    +class="cmti-10">1083
    \glsnoidxdisplayloc  1083
    +class="cmti-10">1084
    \glsps  1084
    +class="cmti-10">1085
    \glspt  1085
    +class="cmti-10">1086
    \glsrenewcommand  1086
    +class="cmti-10">1087
    \glsseeitemformat  1087
    +class="cmti-10">1088
    \glssetattribute  1088
    -\glssetcategoryattribute  1089
    +\glssetcategoryattribute  1090
    \glssetregularcategory  1090
    +class="cmti-10">1091
    \glsshortpltok  1091
    +class="cmti-10">1092
    \glsshorttok  1092
    +class="cmti-10">1093
    \glstopicAssignSubIndent  1093
    +class="cmti-10">1094
    \glstopicAssignWidest  1094
    +class="cmti-10">1095
    \glstopicCols  1095
    +class="cmti-10">1096
    \glstopicColsEnv  1096
    +class="cmti-10">1097
    \glstopicDesc  1097
    +class="cmti-10">1098
    \glstopicGroupHeading  1098
    +class="cmti-10">1099
    \glstopicInit  1099
    +class="cmti-10">1100
    \glstopicItem  1100
    +class="cmti-10">1101
    \glstopicLoc  1101
    +class="cmti-10">1102
    \glstopicMarker  1102
    +class="cmti-10">1103
    \glstopicMidSkip  1103
    +class="cmti-10">1104
    \glstopicParIndent  1104
    +class="cmti-10">1105
    \glstopicPostSkip  1105
    +class="cmti-10">1106
    \glstopicPreSkip  1106
    +class="cmti-10">1107
    \glstopicSubIndent  1107
    +class="cmti-10">1108
    \glstopicSubItem  1108
    +class="cmti-10">1109
    \glstopicSubItemBox  1109
    +class="cmti-10">1110
    \glstopicSubItemSep  1110
    +class="cmti-10">1111
    \glstopicSubLoc  1111
    +href="glossaries-extra-manual.html#dx1-16036" >1112
    \glstopicSubNameFont  1112
    +class="cmti-10">1113
    +\glstopicSubPreLocSep  1114
    \glstopicTitle  1113
    +class="cmti-10">1115
    \glstopicTitleFont  1114
    +class="cmti-10">1116
    \glstreechilddesc  1115
    +href="glossaries-extra-manual.html#dx1-20060" >1117
    +\glstreeChildDescLoc  1118
    \glstreechildprelocation  1116
    +href="glossaries-extra-manual.html#dx1-20049" >1119
    \glstreechildsymbol  1117
    +href="glossaries-extra-manual.html#dx1-20061" >1120
    \glstreedefaultnamefmt  1118
    +href="glossaries-extra-manual.html#dx1-20040" >1121
    \glstreedesc  1119
    +href="glossaries-extra-manual.html#dx1-20058" >1122
    +\glstreeDescLoc  1123
    +\glstreegroupskip  1124
    \glstreenonamechilddesc  1120
    +href="glossaries-extra-manual.html#dx1-20054" >1125
    \glstreenonamedesc  1121
    +href="glossaries-extra-manual.html#dx1-20050" >1126
    \glstreenonamesymbol  1122
    +href="glossaries-extra-manual.html#dx1-20052" >1127
    +\glstreePreHeader  1128
    \glstreeprelocation  1123
    +href="glossaries-extra-manual.html#dx1-20048" >1129
    \glstreesymbol  1124
    +href="glossaries-extra-manual.html#dx1-20059" >1130
    \glsupdatewidest  1125
    +href="glossaries-extra-manual.html#dx1-20071" >1131
    \glsuseabbrvfont  1126
    +class="cmti-10">1132
    \glsuselongfont  1127
    +class="cmti-10">1133
    \glsuserdescription  1128
    +class="cmti-10">1134
    \Glsxtr  1129
    +class="cmti-10">1135
    + + + \glsxtr  1130
    +class="cmti-10">1136
    \glsxtrabbreviationfont  1131
    +class="cmti-10">1137
    \glsxtrabbrvfootnote  1132
    +class="cmti-10">1138
    \glsxtrabbrvpluralsuffix  1133, 1139, 1134
    +class="cmti-10">1140
    \glsxtractivatenopost  1135
    +class="cmti-10">1141
    \glsxtraddallcrossrefs  1136
    - - - +class="cmti-10">1142
    \glsxtraddlabelprefix  1137
    +class="cmti-10">1143
    \glsxtralias  1138
    +class="cmti-10">1144
    \glsxtrAltTreeIndent  1139
    +href="glossaries-extra-manual.html#dx1-20103" >1145
    \glsxtralttreeInit  1140
    +href="glossaries-extra-manual.html#dx1-20102" >1146
    \glsxtralttreeSubSymbolDescLocation  1141
    +href="glossaries-extra-manual.html#dx1-20100" >1147
    \glsxtralttreeSymbolDescLocation  1142
    +href="glossaries-extra-manual.html#dx1-20099" >1148
    \GlsXtrAutoAddOnFormat  1143
    +class="cmti-10">1149
    \glsxtrautoindex  1144
    +class="cmti-10">1150
    \glsxtrautoindexassignsort  1145
    +class="cmti-10">1151
    \glsxtrautoindexentry  1146
    +class="cmti-10">1152
    \glsxtrautoindexesc  1147
    +class="cmti-10">1153
    \glsxtrBasicDigitrules  1148
    +class="cmti-10">1154
    \GlsXtrBibTeXEntryAliases  1149
    +class="cmti-10">1155
    \glsxtrbookindexatendgroup  1150
    +class="cmti-10">1156
    \glsxtrbookindexbetween  1151
    +class="cmti-10">1157
    \glsxtrbookindexbookmark  1152
    +class="cmti-10">1158
    \glsxtrbookindexcols  1153
    +class="cmti-10">1159
    \glsxtrbookindexcolspread  1154
    +class="cmti-10">1160
    \glsxtrbookindexfirstmark  1155
    +class="cmti-10">1161
    \glsxtrbookindexfirstmarkfmt  1156
    +class="cmti-10">1162
    \glsxtrbookindexformatheader  1157
    +class="cmti-10">1163
    \glsxtrbookindexlastmark  1158
    +class="cmti-10">1164
    \glsxtrbookindexlastmarkfmt  1159
    +class="cmti-10">1165
    \glsxtrbookindexlocation  1160
    +class="cmti-10">1166
    \glsxtrbookindexmarkentry  1161
    +class="cmti-10">1167
    \glsxtrbookindexmulticolsenv  1162
    +class="cmti-10">1168
    \glsxtrbookindexname  1163
    +class="cmti-10">1169
    \glsxtrbookindexparentchildsep  1164
    +class="cmti-10">1170
    \glsxtrbookindexparentsubchildsep  1165
    +class="cmti-10">1171
    \glsxtrbookindexprelocation  1166
    +class="cmti-10">1172
    \glsxtrbookindexsubatendgroup  1167
    +class="cmti-10">1173
    \glsxtrbookindexsubbetween  1168
    +class="cmti-10">1174
    \glsxtrbookindexsublocation  1169
    +class="cmti-10">1175
    \glsxtrbookindexsubname  1170
    +class="cmti-10">1176
    \glsxtrbookindexsubprelocation  1171
    +class="cmti-10">1177
    \glsxtrbookindexsubsubatendgroup  1172
    +class="cmti-10">1178
    \glsxtrbookindexsubsubbetween  1173
    +class="cmti-10">1179
    \glsxtrchecknohyperfirst  1174
    +class="cmti-10">1180
    \glsxtrclearlabelprefixes  1175
    +class="cmti-10">1181
    \glsxtrcombiningdiacriticIIIrules  1176
    +class="cmti-10">1182
    + + + \glsxtrcombiningdiacriticIIrules  1177
    +class="cmti-10">1183
    \glsxtrcombiningdiacriticIrules  1178
    +class="cmti-10">1184
    \glsxtrcombiningdiacriticIVrules  1179
    +class="cmti-10">1185
    \glsxtrcombiningdiacriticrules  1180
    +class="cmti-10">1186
    \glsxtrcontrolrules  1181
    +class="cmti-10">1187
    \glsxtrcopytoglossary  1182
    - - - +class="cmti-10">1188
    \glsxtrcurrencyrules  1183
    +class="cmti-10">1189
    \GlsXtrDefaultResourceOptions  1184
    +class="cmti-10">1190
    \glsxtrdeffield  1185
    +class="cmti-10">1191
    \glsxtrdetoklocation  1186
    +class="cmti-10">1192
    \glsxtrdigitrules  1187
    +class="cmti-10">1193
    \glsxtrdisplayendloc  1188
    +class="cmti-10">1194
    \glsxtrdisplayendlochook  1189
    +class="cmti-10">1195
    \glsxtrdisplaylocnameref  1190
    +class="cmti-10">1196
    \glsxtrdisplaysingleloc  1191
    +class="cmti-10">1197
    \glsxtrdisplaystartloc  1192
    +class="cmti-10">1198
    \glsxtrdisplaysupploc  1193
    +class="cmti-10">1199
    \glsxtrdoautoindexname  1194
    +class="cmti-10">1200
    \glsxtrdowrglossaryhook  1195
    +class="cmti-10">1201
    \glsxtredeffield  1196
    +class="cmti-10">1202
    \glsxtremsuffix  1197
    +class="cmti-10">1203
    \GlsXtrEnableEntryCounting  1198
    +class="cmti-10">1204
    \GlsXtrEnableEntryUnitCounting  1199
    +class="cmti-10">1205
    \GlsXtrEnableIndexFormatOverride  1200
    +class="cmti-10">1206
    \GlsXtrEnableInitialTagging  1201
    +class="cmti-10">1207
    \GlsXtrEnableLinkCounting  1202
    +class="cmti-10">1208
    \GlsXtrEnableOnTheFly  1203
    +class="cmti-10">1209
    \GlsXtrEnablePreLocationTag  1204
    +class="cmti-10">1210
    \glsxtrenablerecordcount  1205
    +class="cmti-10">1211
    \glsxtrendfor  1206
    +class="cmti-10">1212
    \glsxtrentryfmt  1207
    +class="cmti-10">1213
    \GlsXtrExpandedFmt  1208
    +class="cmti-10">1214
    \glsxtrfielddolistloop  1209
    +class="cmti-10">1215
    \glsxtrfieldforlistloop  1210
    +class="cmti-10">1216
    \glsxtrfieldifinlist  1211
    +class="cmti-10">1217
    \glsxtrfieldlistadd  1212
    +class="cmti-10">1218
    \glsxtrfieldlisteadd  1213
    +class="cmti-10">1219
    \glsxtrfieldlistgadd  1214
    +class="cmti-10">1220
    \glsxtrfieldlistxadd  1215
    +class="cmti-10">1221
    \glsxtrfieldtitlecasecs  1216
    +class="cmti-10">1222
    \glsxtrfieldxifinlist  1217
    +class="cmti-10">1223
    \glsxtrfmt  1218
    +class="cmti-10">1224
    \glsxtrfmt*  1219
    +class="cmti-10">1225
    \GlsXtrFmtDefaultOptions  1220
    +class="cmti-10">1226
    \glsxtrfmtdisplay  1221
    +class="cmti-10">1227
    \glsxtrfmtexternalnameref  1222
    +class="cmti-10">1228
    + + + \GlsXtrFmtField  1223
    +class="cmti-10">1229
    \glsxtrfmtinternalnameref  1224
    +class="cmti-10">1230
    \glsxtrfootnotename  1225
    +class="cmti-10">1231
    \glsxtrforcsvfield  1226
    +class="cmti-10">1232
    \GlsXtrForeignText  1227
    +class="cmti-10">1233
    \GlsXtrForeignTextField  1228
    - - - +class="cmti-10">1234
    \GlsXtrFormatLocationList  1229
    +class="cmti-10">1235
    \GlsXtrForUnsetBufferedList  1230
    +class="cmti-10">1236
    \glsxtrfractionrules  1231
    +class="cmti-10">1237
    \GLSxtrfull  1232
    +class="cmti-10">1238
    \Glsxtrfull  1233
    +class="cmti-10">1239
    \glsxtrfull  1234
    +class="cmti-10">1240
    \Glsxtrfullformat  1235
    +class="cmti-10">1241
    \glsxtrfullformat  1236
    +class="cmti-10">1242
    \GLSxtrfullpl  1237
    +class="cmti-10">1243
    \Glsxtrfullpl  1238
    +class="cmti-10">1244
    \glsxtrfullpl  1239
    +class="cmti-10">1245
    \Glsxtrfullplformat  1240
    +class="cmti-10">1246
    \glsxtrfullplformat  1241
    +class="cmti-10">1247
    \glsxtrfullsep  1242
    +class="cmti-10">1248
    \glsxtrGeneralLatinIIIrules  1243
    +class="cmti-10">1249
    \glsxtrGeneralLatinIIrules  1244
    +class="cmti-10">1250
    \glsxtrGeneralLatinIrules  1245
    +class="cmti-10">1251
    \glsxtrGeneralLatinIVrules  1246
    +class="cmti-10">1252
    \glsxtrGeneralLatinVIIIrules  1247
    +class="cmti-10">1253
    \glsxtrGeneralLatinVIIrules  1248
    +class="cmti-10">1254
    \glsxtrGeneralLatinVIrules  1249
    +class="cmti-10">1255
    \glsxtrGeneralLatinVrules  1250
    +class="cmti-10">1256
    \glsxtrgeneralpuncIIrules  1251
    +class="cmti-10">1257
    \glsxtrgeneralpuncIrules  1252
    +class="cmti-10">1258
    \glsxtrgeneralpuncrules  1253
    +class="cmti-10">1259
    \glsxtrglossentry  1254
    +class="cmti-10">1260
    \glsxtrglossentryother  1255
    +class="cmti-10">1261
    \glsxtrgroupfield  1256
    +class="cmti-10">1262
    \GLSXTRhiername  1257
    +class="cmti-10">1263
    \GLSxtrhiername  1258
    +class="cmti-10">1264
    \GlsXtrhiername  1259
    +class="cmti-10">1265
    \Glsxtrhiername  1260
    +class="cmti-10">1266
    \glsxtrhiername  1261
    +class="cmti-10">1267
    \glsxtrhiernamesep  1262
    +class="cmti-10">1268
    \glsxtrhyphenrules  1263
    +class="cmti-10">1269
    \glsxtrhyphensuffix  1264
    +class="cmti-10">1270
    \glsxtridentifyglslike  1265
    +class="cmti-10">1271
    \glsxtrifcounttrigger  1266
    +class="cmti-10">1272
    \glsxtrifcustomdiscardperiod  1267
    +class="cmti-10">1273
    \GlsXtrIfFieldCmpNum  1268
    +class="cmti-10">1274
    + + + \GlsXtrIfFieldEqNum  1269
    +class="cmti-10">1275
    \GlsXtrIfFieldEqStr  1270
    +class="cmti-10">1276
    \GlsXtrIfFieldEqXpStr  1271
    +class="cmti-10">1277
    \GlsXtrIfFieldNonZero  1272
    +class="cmti-10">1278
    \GlsXtrIfFieldUndef  1273
    +class="cmti-10">1279
    \glsxtrifhasfield  1274
    - - - +class="cmti-10">1280
    \glsxtrifhasfield*  1275
    +class="cmti-10">1281
    \GlsXtrIfHasNonZeroChildCount  1276
    +class="cmti-10">1282
    \glsxtrifinlabelprefixlist  1277
    +class="cmti-10">1283
    \glsxtrifkeydefined  1278
    +class="cmti-10">1284
    \glsxtriflabelinlist  1279
    +class="cmti-10">1285
    \GlsXtrIfLinkCounterDef  1280
    +class="cmti-10">1286
    \glsxtrifrecordtrigger  1281
    +class="cmti-10">1287
    \GlsXtrIfUnusedOrUndefined  1282
    +class="cmti-10">1288
    \glsxtrifwasfirstuse  1283
    +class="cmti-10">1289
    \GlsXtrIfXpFieldEqXpStr  1284
    +class="cmti-10">1290
    \glsxtrinclinkcounter  1285
    +class="cmti-10">1291
    \glsxtrindexaliased  1286
    +class="cmti-10">1292
    \GlsXtrIndexCounterLink  1287
    +class="cmti-10">1293
    \glsxtrindexseealso  1288
    +class="cmti-10">1294
    \glsxtrinitwrgloss  1289
    +class="cmti-10">1295
    \Glsxtrinlinefullformat  1290
    +class="cmti-10">1296
    \glsxtrinlinefullformat  1291
    +class="cmti-10">1297
    \Glsxtrinlinefullplformat  1292
    +class="cmti-10">1298
    \glsxtrinlinefullplformat  1293
    +class="cmti-10">1299
    \glsxtrinsertinsidetrue  1294
    +class="cmti-10">1300
    \glsxtrLatinA  1295
    +class="cmti-10">1301
    \glsxtrLatinAA  1296
    +class="cmti-10">1302
    \glsxtrLatinAELigature  1297
    +class="cmti-10">1303
    \glsxtrLatinE  1298
    +class="cmti-10">1304
    \glsxtrLatinEszettSs  1299
    +class="cmti-10">1305
    \glsxtrLatinEszettSz  1300
    +class="cmti-10">1306
    \glsxtrLatinEth  1301
    +class="cmti-10">1307
    \glsxtrLatinH  1302
    +class="cmti-10">1308
    \glsxtrLatinI  1303
    +class="cmti-10">1309
    \glsxtrLatinInsularG  1304
    +class="cmti-10">1310
    \glsxtrLatinK  1305
    +class="cmti-10">1311
    \glsxtrLatinL  1306
    +class="cmti-10">1312
    \glsxtrLatinLslash  1307
    +class="cmti-10">1313
    \glsxtrLatinM  1308
    +class="cmti-10">1314
    \glsxtrLatinN  1309
    +class="cmti-10">1315
    \glsxtrLatinO  1310
    +class="cmti-10">1316
    \glsxtrLatinOELigature  1311
    +class="cmti-10">1317
    \glsxtrLatinOslash  1312
    +class="cmti-10">1318
    \glsxtrLatinP  1313
    +class="cmti-10">1319
    \glsxtrLatinS  1314
    +class="cmti-10">1320
    + + + \glsxtrLatinSchwa  1315
    +class="cmti-10">1321
    \glsxtrLatinT  1316
    +class="cmti-10">1322
    \glsxtrLatinThorn  1317
    +class="cmti-10">1323
    \glsxtrLatinWynn  1318
    +class="cmti-10">1324
    \glsxtrLatinX  1319
    +class="cmti-10">1325
    \GlsXtrLetField  1320
    - - - +class="cmti-10">1326
    \GlsXtrLetFieldToField  1321
    +class="cmti-10">1327
    \GlsXtrLinkCounterName  1322
    +class="cmti-10">1328
    \GlsXtrLinkCounterValue  1323
    +class="cmti-10">1329
    \GlsXtrLoadResources  1324
    +class="cmti-10">1330
    \glsxtrlocalsetgrouptitle  1325
    +class="cmti-10">1331
    \GlsXtrLocationField  1326
    +class="cmti-10">1332
    \GlsXtrLocationRecordCount  1327
    +class="cmti-10">1333
    \glsxtrlocrangefmt  1328
    +class="cmti-10">1334
    \Glsxtrlong  1329, 1335, 1330
    +class="cmti-10">1336
    \glsxtrlong  1331
    +class="cmti-10">1337
    \glsxtrlonghyphen  1332
    +class="cmti-10">1338
    \glsxtrlonghyphenshort  1333
    +class="cmti-10">1339
    \glsxtrlongnoshortdescname  1334
    +class="cmti-10">1340
    \glsxtrlongnoshortname  1335
    +class="cmti-10">1341
    \GLSxtrlongpl  1336
    +class="cmti-10">1342
    \Glsxtrlongpl  1337
    +class="cmti-10">1343
    \glsxtrlongpl  1338
    +class="cmti-10">1344
    \glsxtrlongshortdescname  1339
    +class="cmti-10">1345
    \glsxtrlongshortdescsort  1340
    +class="cmti-10">1346
    \glsxtrlongshortname  1341
    +class="cmti-10">1347
    \glsxtrlongshortuserdescname  1342
    +class="cmti-10">1348
    \glsxtrMathGreekIIrules  1343
    +class="cmti-10">1349
    \glsxtrMathGreekIrules  1344
    +class="cmti-10">1350
    \glsxtrMathItalicGreekIIrules  1345
    +class="cmti-10">1351
    \glsxtrMathItalicGreekIrules  1346
    +class="cmti-10">1352
    \glsxtrMathItalicLowerGreekIIrules  1347
    +class="cmti-10">1353
    \glsxtrMathItalicLowerGreekIrules  1348
    +class="cmti-10">1354
    \glsxtrMathItalicNabla  1349
    +class="cmti-10">1355
    \glsxtrMathItalicPartial  1350
    +class="cmti-10">1356
    \glsxtrMathItalicUpperGreekIIrules  1351
    +class="cmti-10">1357
    \glsxtrMathItalicUpperGreekIrules  1352
    +class="cmti-10">1358
    \glsxtrMathUpGreekIIrules  1353
    +class="cmti-10">1359
    \glsxtrMathUpGreekIrules  1354
    +class="cmti-10">1360
    \glsxtrmultisupplocation  1355
    +class="cmti-10">1361
    \glsxtrnameloclink  1356
    +class="cmti-10">1362
    \glsxtrnamereflink  1357
    +class="cmti-10">1363
    \glsxtrnewgls  1358
    +class="cmti-10">1364
    \glsxtrnewGLSlike  1359
    +class="cmti-10">1365
    \glsxtrnewglslike  1360
    +class="cmti-10">1366
    \glsxtrnewnumber  1361
    +class="cmti-10">1367
    + + + \glsxtrnewrgls  1362
    +class="cmti-10">1368
    \glsxtrnewrGLSlike  1363
    +class="cmti-10">1369
    \glsxtrnewrglslike  1364
    +class="cmti-10">1370
    \glsxtrnewsymbol  1365
    +class="cmti-10">1371
    \GlsXtrNoGlsWarningAutoMake  1366
    +class="cmti-10">1372
    \GlsXtrNoGlsWarningBuildInfo  1367
    - - - +class="cmti-10">1373
    \GlsXtrNoGlsWarningCheckFile  1368
    +class="cmti-10">1374
    \GlsXtrNoGlsWarningEmptyMain  1369
    +class="cmti-10">1375
    \GlsXtrNoGlsWarningEmptyNotMain  1370
    +class="cmti-10">1376
    \GlsXtrNoGlsWarningEmptyStart  1371
    +class="cmti-10">1377
    \GlsXtrNoGlsWarningHead  1372
    +class="cmti-10">1378
    \GlsXtrNoGlsWarningMisMatch  1373
    +class="cmti-10">1379
    \GlsXtrNoGlsWarningNoOut  1374
    +class="cmti-10">1380
    \GlsXtrNoGlsWarningTail  1375
    +class="cmti-10">1381
    \glsxtrnonprintablerules  1376
    +class="cmti-10">1382
    \glsxtrnopostpunc  1377
    +class="cmti-10">1383
    \glsxtronlydescname  1378
    +class="cmti-10">1384
    \glsxtronlyname  1379
    +class="cmti-10">1385
    \glsxtronlysuffix  1380
    +class="cmti-10">1386
    \glsxtrorglong  1381
    +class="cmti-10">1387
    \glsxtrorgshort  1382
    +class="cmti-10">1388
    \GLSxtrp  1383
    +class="cmti-10">1389
    \Glsxtrp  1384
    +class="cmti-10">1390
    \glsxtrp  1385
    +class="cmti-10">1391
    \glsxtrpageref  1386
    +class="cmti-10">1392
    \glsxtrparen  1387
    +class="cmti-10">1393
    \Glsxtrpl  1388
    +class="cmti-10">1394
    \glsxtrpl  1389
    +class="cmti-10">1395
    \glsxtrpostdescription  1390
    +class="cmti-10">1396
    \glsxtrposthyphenlong  1391
    +class="cmti-10">1397
    \glsxtrposthyphenshort  1392
    +class="cmti-10">1398
    \glsxtrpostlink  1393
    +class="cmti-10">1399
    \glsxtrpostlinkAddDescOnFirstUse  1394
    +class="cmti-10">1400
    \glsxtrpostlinkAddSymbolDescOnFirstUse  1395
    +class="cmti-10">1401
    \glsxtrpostlinkAddSymbolOnFirstUse  1396
    +class="cmti-10">1402
    \glsxtrpostlinkendsentence  1397
    +class="cmti-10">1403
    \glsxtrpostlinkhook  1398
    +class="cmti-10">1404
    \glsxtrpostlongdescription  1399
    +class="cmti-10">1405
    \glsxtrpostnamehook  1400
    +class="cmti-10">1406
    \GlsXtrPostNewAbbreviation  1401
    +class="cmti-10">1407
    \glsxtrprelocation  1402
    +class="cmti-10">1408
    \glsxtrprependlabelprefix  1403
    +class="cmti-10">1409
    \GlsXtrProvideBibTeXFields  1404
    +class="cmti-10">1410
    \glsxtrprovidecommand  1405
    +class="cmti-10">1411
    \glsxtrprovidestoragekey  1406
    +class="cmti-10">1412
    \GlsXtrRecordCount  1407
    +class="cmti-10">1413
    + + + \GlsXtrRecordCounter  1408
    +class="cmti-10">1414
    \glsxtrrecordtriggervalue  1409
    +class="cmti-10">1415
    \glsxtrregularfont  1410
    +class="cmti-10">1416
    \glsxtrresourcefile  1411
    +class="cmti-10">1417
    \glsxtrresourceinit  1412
    +class="cmti-10">1418
    \glsxtrrestorepostpunc  1413
    - - - +class="cmti-10">1419
    \glsxtrRevertMarks  1414
    +class="cmti-10">1420
    \glsxtrRevertTocMarks  1415
    +class="cmti-10">1421
    \glsxtrscsuffix  1416
    +class="cmti-10">1422
    \glsxtrseealsolabels  1417
    +class="cmti-10">1423
    \glsxtrseelist  1418
    +class="cmti-10">1424
    \GlsXtrSetActualChar  1419
    +class="cmti-10">1425
    \glsxtrsetaliasnoindex  1420
    +class="cmti-10">1426
    \GlsXtrSetAltModifier  1421
    +class="cmti-10">1427
    \glsxtrsetcategory  1422
    +class="cmti-10">1428
    \glsxtrsetcategoryforall  1423
    +class="cmti-10">1429
    \GlsXtrSetDefaultGlsOpts  1424
    +class="cmti-10">1430
    \GlsXtrSetEncapChar  1425
    +class="cmti-10">1431
    \GlsXtrSetEscChar  1426
    +class="cmti-10">1432
    \GlsXtrSetField  1427
    +class="cmti-10">1433
    \glsxtrsetfieldifexists  1428
    +class="cmti-10">1434
    \glsxtrsetglossarylabel  1429
    +class="cmti-10">1435
    \glsxtrsetgrouptitle  1430
    +class="cmti-10">1436
    \GlsXtrSetLevelChar  1431
    +class="cmti-10">1437
    \glsxtrsetpopts  1432
    +class="cmti-10">1438
    \GlsXtrSetRecordCountAttribute  1433
    +class="cmti-10">1439
    \glsxtrSetWidest  1434
    +class="cmti-10">1440
    \glsxtrSetWidestFallback  1435
    +class="cmti-10">1441
    \Glsxtrshort  1436, 1442, 1437
    +class="cmti-10">1443
    \glsxtrshort  1438
    +class="cmti-10">1444
    \glsxtrshortdescname  1439
    +class="cmti-10">1445
    \glsxtrshorthyphenlong  1440
    +class="cmti-10">1446
    \glsxtrshortlongdescname  1441
    +class="cmti-10">1447
    \glsxtrshortlongname  1442, 1448, 1443
    +class="cmti-10">1449
    \glsxtrshortlonguserdescname  1444
    +class="cmti-10">1450
    \glsxtrshortnolongname  1445
    +class="cmti-10">1451
    \GLSxtrshortpl  1446
    +class="cmti-10">1452
    \Glsxtrshortpl  1447
    +class="cmti-10">1453
    \glsxtrshortpl  1448
    +class="cmti-10">1454
    \glsxtrsmsuffix  1449
    +class="cmti-10">1455
    \glsxtrspacerules  1450
    +class="cmti-10">1456
    \GlsXtrStandaloneEntryName  1451
    +class="cmti-10">1457
    \GlsXtrStandaloneEntryOther  1452
    +class="cmti-10">1458
    \GlsXtrStandaloneGlossaryType  1453
    +class="cmti-10">1459
    \GlsXtrStartUnsetBuffering  1454
    +class="cmti-10">1460
    \GlsXtrStopUnsetBuffering  1455
    +class="cmti-10">1461
    + + + \glsxtrSubScriptDigitrules  1456
    +class="cmti-10">1462
    \Glsxtrsubsequentfmt  1457
    +class="cmti-10">1463
    \glsxtrsubsequentfmt  1458
    +class="cmti-10">1464
    \Glsxtrsubsequentplfmt  1459
    +class="cmti-10">1465
    \glsxtrsubsequentplfmt  1460
    +class="cmti-10">1466
    \glsxtrSuperScriptDigitrules  1461
    - - - +class="cmti-10">1467
    \glsxtrtagfont  1462
    +class="cmti-10">1468
    \GlsXtrTheLinkCounter  1463
    +class="cmti-10">1469
    \GlsXtrTotalRecordCount  1464
    +class="cmti-10">1470
    \glsxtrunsrtdo  1465
    +class="cmti-10">1471
    \GlsXtrUseAbbrStyleFmts  1466
    +class="cmti-10">1472
    \GlsXtrUseAbbrStyleSetup  1467
    +class="cmti-10">1473
    \GLSxtrusefield  1468
    +class="cmti-10">1474
    \Glsxtrusefield  1469
    +class="cmti-10">1475
    \glsxtrusefield  1470
    +class="cmti-10">1476
    \glsxtruserfield  1471
    +class="cmti-10">1477
    \glsxtruserparen  1472
    +class="cmti-10">1478
    \glsxtrusersuffix  1473, 1479, 1474
    +class="cmti-10">1480
    \glsxtrusesee  1475
    +class="cmti-10">1481
    \glsxtruseseealso  1476
    +class="cmti-10">1482
    \glsxtruseseeformat  1477, 1483, 1478
    +class="cmti-10">1484
    \GlsXtrWarnDeprecatedAbbrStyle  1479
    +class="cmti-10">1485
    \GlsXtrWarning  1480
    +class="cmti-10">1486
    \glsxtrword  1481
    +class="cmti-10">1487
    \glsxtrwordsep  1482
    +class="cmti-10">1488
    \glsxtrwrglossmark  1483
    +class="cmti-10">1489

    H hyperref package  1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508
    +href="glossaries-extra-manual.html#dx1-4089" >1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514

    I \ifglsxtrinitwrglossbefore  1509
    +class="cmti-10">1515
    inputenc package  1510
    +href="glossaries-extra-manual.html#dx1-38012" >1516

    L link-text  1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1530
    +class="cmbx-10">1536
    location list  1531, 1532, 1533, 1534, 1537, 1538, 1539, 1540, 1535
    +class="cmbx-10">1541
    \longnewglossaryentry  1536
    +class="cmti-10">1542

    M makeglossaries  1537, 1538, 1539, 1540, 1543, 1544, 1545, 1546, 1541
    +class="cmbx-10">1547
    \makeglossaries  1542
    +class="cmti-10">1548
    + + + makeglossaries-lite  1543, 1549, 1544
    +class="cmbx-10">1550
    makeglossaries-lite  1545, 1551, 1546
    +class="cmbx-10">1552
    makeindex  1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1566
    +class="cmbx-10">1572
    makeindex  1567, 1568, 1569, 1570, 1571
    +href="glossaries-extra-manual.html#dx1-6044" >1573, 1574, 1575, 1576, 1577
    memoir class  1572
    - - - +href="glossaries-extra-manual.html#dx1-3021" >1578
    mfirstuc package  1573, 1574, 1575
    +href="glossaries-extra-manual.html#dx1-4" >1579, 1580, 1581
    multicols package  1576
    +href="glossaries-extra-manual.html#dx1-16002" >1582

    N \newabbreviation  1577
    +class="cmti-10">1583
    \newabbreviationstyle  1578
    +class="cmti-10">1584
    \newacronym  1579
    +class="cmti-10">1585
    \newglossaryentry options
        access  1580, 1581
    +href="glossaries-extra-manual.html#dx1-30088" >1586, 1587
        alias  1582, 1583, 1584, 1585, 1586, 1587
    +href="glossaries-extra-manual.html#dx1-5028" >1588, 1589, 1590, 1591, 1592, 1593
        category  1588, 1589, 1590, 1591, 1592, 1593
    +href="glossaries-extra-manual.html#dx1-5027" >1594, 1595, 1596, 1597, 1598, 1599
        counter  1594
    +href="glossaries-extra-manual.html#dx1-6035" >1600
        description  1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618
    +href="glossaries-extra-manual.html#dx1-5002" >1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624
        descriptionplural  1619, 1620, 1621, 1622, 1623, 1624
    +href="glossaries-extra-manual.html#dx1-5036" >1625, 1626, 1627, 1628, 1629, 1630
        first  1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637
    +href="glossaries-extra-manual.html#dx1-8013" >1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643
        firstaccess  1638
    +href="glossaries-extra-manual.html#dx1-30098" >1644
        firstplural  1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648
    +href="glossaries-extra-manual.html#dx1-8014" >1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654
        group  1649, 1650, 1651, 1652, 1653
    +href="glossaries-extra-manual.html#dx1-38011" >1655, 1656, 1657, 1658, 1659
        location  1654, 1655, 1656, 1657
    +href="glossaries-extra-manual.html#dx1-14023" >1660, 1661, 1662, 1663
        loclist  1658, 1659, 1660, 1661
    +href="glossaries-extra-manual.html#dx1-41014" >1664, 1665, 1666, 1667
        long  1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670
    +href="glossaries-extra-manual.html#dx1-11026" >1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676
        longplural  1671, 1672, 1673, 1674, 1675, 1676
    +href="glossaries-extra-manual.html#dx1-11010" >1677, 1678, 1679, 1680, 1681, 1682
        name  1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729
    +href="glossaries-extra-manual.html#dx1-5007" >1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735
        nameshortaccess  1730, 1731
    +href="glossaries-extra-manual.html#dx1-30094" >1736, 1737
        parent  1732, 1733, 1734
    +href="glossaries-extra-manual.html#dx1-20084" >1738, 1739, 1740
        plural  1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747
    +href="glossaries-extra-manual.html#dx1-8017" >1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753
        prefix  1748
    +href="glossaries-extra-manual.html#dx1-5023" >1754
        see  1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775
    +href="glossaries-extra-manual.html#dx1-4054" >1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781
        seealso  1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785
    +href="glossaries-extra-manual.html#dx1-4055" >1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791
        short  1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801
    +href="glossaries-extra-manual.html#dx1-7041" >1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807
        shortaccess  1802, 1803, 1804, 1805, 1806, 1807
    +href="glossaries-extra-manual.html#dx1-30084" >1808, 1809, 1810, 1811, 1812, 1813
        shortplural  1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822
    +href="glossaries-extra-manual.html#dx1-11011" >1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828
        shortpluralaccess  1823, 1824, 1825, 1826
    +href="glossaries-extra-manual.html#dx1-30101" >1829, 1830, 1831, 1832
        sort  1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846
    +href="glossaries-extra-manual.html#dx1-4173" >1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852
        symbol  1847, 1848, 1849, 1850
    +href="glossaries-extra-manual.html#dx1-46032" >1853, 1854, 1855, 1856
    + + +     symbolplural  1851, 1852
    +href="glossaries-extra-manual.html#dx1-52034" >1857, 1858
        text  1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866
    +href="glossaries-extra-manual.html#dx1-5009" >1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872
        textaccess  1867
    +href="glossaries-extra-manual.html#dx1-30095" >1873
        type  1868, 1869, 1870, 1871
    +href="glossaries-extra-manual.html#dx1-13046" >1874, 1875, 1876, 1877
        user1  1872, 1873, 1874
    +href="glossaries-extra-manual.html#dx1-25080" >1878, 1879, 1880
    number list  1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1908
    - - - +class="cmbx-10">1914

    P package options:
        abbreviations  1909, 1910, 1911, 1912, 1913
    +href="glossaries-extra-manual.html#dx1-4188" >1915, 1916, 1917, 1918, 1919
        accsupp  1914, 1915, 1916, 1917, 1918
    +href="glossaries-extra-manual.html#dx1-4033" >1920, 1921, 1922, 1923, 1924
        acronym  1919, 1920
    +href="glossaries-extra-manual.html#dx1-4199" >1925, 1926
        acronymlists  1921
    +href="glossaries-extra-manual.html#dx1-4203" >1927
        acronyms  1922
    +href="glossaries-extra-manual.html#dx1-4215" >1928
        automake  1923, 1924
    +href="glossaries-extra-manual.html#dx1-5060" >1929, 1930
        autoseeindex  1925, 1926
    +href="glossaries-extra-manual.html#dx1-4063" >1931, 1932
            false  1927, 1928
    +href="glossaries-extra-manual.html#dx1-4056" >1933, 1934
        counter
            chapter  1929
    +href="glossaries-extra-manual.html#dx1-4091" >1935
            equation  1930
    +href="glossaries-extra-manual.html#dx1-4094" >1936
            section  1931
    +href="glossaries-extra-manual.html#dx1-4092" >1937
            wrglossary  1932
    +href="glossaries-extra-manual.html#dx1-4127" >1938
        debug  1933
    +href="glossaries-extra-manual.html#dx1-4002" >1939
            all  1934, 1935
    +href="glossaries-extra-manual.html#dx1-4005" >1940, 1941
            showtargets  1936, 1937
    +href="glossaries-extra-manual.html#dx1-4003" >1942, 1943
            showwrgloss  1938, 1939, 1940
    +href="glossaries-extra-manual.html#dx1-4004" >1944, 1945, 1946
            true  1941
    +href="glossaries-extra-manual.html#dx1-4007" >1947
        docdef  1942, 1943, 1944, 1945
    +href="glossaries-extra-manual.html#dx1-4153" >1948, 1949, 1950, 1951
            restricted  1946, 1947, 1948, 1949
    +href="glossaries-extra-manual.html#dx1-4166" >1952, 1953, 1954, 1955
            true  1950, 1951
    +href="glossaries-extra-manual.html#dx1-4184" >1956, 1957
        docdefs  1952, 1953, 1954
    +href="glossaries-extra-manual.html#dx1-35003" >1958, 1959, 1960
            true  1955
    +href="glossaries-extra-manual.html#dx1-4165" >1961
        entrycounter  1956, 1957
    +href="glossaries-extra-manual.html#dx1-45002" >1962, 1963
        equations  1958, 1959
    +href="glossaries-extra-manual.html#dx1-4108" >1964, 1965
            true  1960
    +href="glossaries-extra-manual.html#dx1-4095" >1966
        floats  1961
    +href="glossaries-extra-manual.html#dx1-4115" >1967
        hyperfirst
            false  1962
    +href="glossaries-extra-manual.html#dx1-30030" >1968
        index  1963, 1964, 1965
    +href="glossaries-extra-manual.html#dx1-4221" >1969, 1970, 1971
        indexcounter  1966, 1967, 1968, 1969
    +href="glossaries-extra-manual.html#dx1-4090" >1972, 1973, 1974, 1975
        indexcrossrefs  1970, 1971, 1972, 1973
    +href="glossaries-extra-manual.html#dx1-4053" >1976, 1977, 1978, 1979
            false  1974
    +href="glossaries-extra-manual.html#dx1-4062" >1980
        indexonlyfirst  1975, 1976, 1977, 1978
    +href="glossaries-extra-manual.html#dx1-6004" >1981, 1982, 1983, 1984
        makeindex  1979
    +href="glossaries-extra-manual.html#dx1-41016" >1985
    + + +     nogroupskip  1980, 1981
    +href="glossaries-extra-manual.html#dx1-16008" >1986, 1987, 1988, 1989, 1990, 1991
        nomain  1982
    +href="glossaries-extra-manual.html#dx1-3032" >1992
        nomissingglstext  1983
    +href="glossaries-extra-manual.html#dx1-4187" >1993
        nonumberlist  1984, 1985, 1986, 1987, 1988
    +href="glossaries-extra-manual.html#dx1-7048" >1994, 1995, 1996, 1997, 1998
        nopostdot  1989, 1990, 1991, 1992
    +href="glossaries-extra-manual.html#dx1-4022" >1999, 2000, 2001, 2002
            false  1993, 1994, 1995
    - - - +href="glossaries-extra-manual.html#dx1-3004" >2003, 2004, 2005
            true  1996
    +href="glossaries-extra-manual.html#dx1-3003" >2006
        noredefwarn
            false  1997
    +href="glossaries-extra-manual.html#dx1-3009" >2007
            true  1998
    +href="glossaries-extra-manual.html#dx1-3006" >2008
        notree  1999
    +href="glossaries-extra-manual.html#dx1-20066" >2009
        numbers  2000, 2001, 2002
    +href="glossaries-extra-manual.html#dx1-4210" >2010, 2011, 2012
        postdot  2003, 2004, 2005
    +href="glossaries-extra-manual.html#dx1-3005" >2013, 2014, 2015
        postpunc  2006, 2007, 2008
    +href="glossaries-extra-manual.html#dx1-4018" >2016, 2017, 2018
            comma  2009
    +href="glossaries-extra-manual.html#dx1-4019" >2019
            dot  2010
    +href="glossaries-extra-manual.html#dx1-4020" >2020
            none  2011
    +href="glossaries-extra-manual.html#dx1-4021" >2021
        record  2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024
    +href="glossaries-extra-manual.html#dx1-4061" >2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034
            alsoindex  2025, 2026, 2027, 2028, 2029, 2030, 2031
    +href="glossaries-extra-manual.html#dx1-4009" >2035, 2036, 2037, 2038, 2039, 2040, 2041
            nameref  2032, 2033
    +href="glossaries-extra-manual.html#dx1-41001" >2042, 2043
            off  2034, 2035
    +href="glossaries-extra-manual.html#dx1-5055" >2044, 2045
            only  2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046
    +href="glossaries-extra-manual.html#dx1-4066" >2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056
        section
            chapter  2047
    +href="glossaries-extra-manual.html#dx1-14040" >2057
        seeautonumberlist  2048
    +href="glossaries-extra-manual.html#dx1-7049" >2058
        seenoindex  2049
    +href="glossaries-extra-manual.html#dx1-7016" >2059
            ignore  2050, 2051
    +href="glossaries-extra-manual.html#dx1-7018" >2060, 2061
            warn  2052
    +href="glossaries-extra-manual.html#dx1-47020" >2062
        shortcuts  2053, 2054
    +href="glossaries-extra-manual.html#dx1-4225" >2063, 2064
            abbr  2055, 2056
    +href="glossaries-extra-manual.html#dx1-4231" >2065, 2066
            abbreviation  2057, 2058
    +href="glossaries-extra-manual.html#dx1-24001" >2067, 2068
            abbreviations  2059, 2060
    +href="glossaries-extra-manual.html#dx1-4230" >2069, 2070
            ac  2061, 2062, 2063, 2064, 2065, 2066
    +href="glossaries-extra-manual.html#dx1-4228" >2071, 2072, 2073, 2074, 2075, 2076
            acro  2067, 2068
    +href="glossaries-extra-manual.html#dx1-4227" >2077, 2078
            acronyms  2069, 2070
    +href="glossaries-extra-manual.html#dx1-4226" >2079, 2080
            all  2071, 2072
    +href="glossaries-extra-manual.html#dx1-4241" >2081, 2082
            false  2073
    +href="glossaries-extra-manual.html#dx1-4247" >2083
            none  2074
    +href="glossaries-extra-manual.html#dx1-4246" >2084
            other  2075, 2076
    +href="glossaries-extra-manual.html#dx1-4232" >2085, 2086
            true  2077
    +href="glossaries-extra-manual.html#dx1-4242" >2087
        sort
            none  2078, 2079
    +href="glossaries-extra-manual.html#dx1-4086" >2088, 2089
        stylemods  2080, 2081, 2082, 2083, 2084
    +href="glossaries-extra-manual.html#dx1-4042" >2090, 2091, 2092, 2093, 2094
            all  2085
    +href="glossaries-extra-manual.html#dx1-4045" >2095
            default  2086
    +href="glossaries-extra-manual.html#dx1-4044" >2096
        subentrycounter  2087, 2088
    +href="glossaries-extra-manual.html#dx1-45003" >2097, 2098
    + + +     symbols  2089, 2090, 2091
    +href="glossaries-extra-manual.html#dx1-4204" >2099, 2100, 2101
        toc
            false  2092
    +href="glossaries-extra-manual.html#dx1-3002" >2102
            true  2093
    +href="glossaries-extra-manual.html#dx1-3001" >2103
        translate
            babel  2094
    - - - +href="glossaries-extra-manual.html#dx1-3011" >2104
            true  2095
    +href="glossaries-extra-manual.html#dx1-3013" >2105
        undefaction  2096, 2097
    +href="glossaries-extra-manual.html#dx1-4046" >2106, 2107
            error  2098, 2099, 2100
    +href="glossaries-extra-manual.html#dx1-4047" >2108, 2109, 2110
            warn  2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109
    +href="glossaries-extra-manual.html#dx1-4048" >2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119
        xindy  2110, 2111
    +href="glossaries-extra-manual.html#dx1-7068" >2120, 2121
    page (counter)  2112, 2113, 2114, 2115, 2116, 2117
    +href="glossaries-extra-manual.html#dx1-4093" >2122, 2123, 2124, 2125, 2126, 2127
    polyglossia package  2118, 2119
    +href="glossaries-extra-manual.html#dx1-46069" >2128, 2129
    \pretoglossarypreamble  2120
    +class="cmti-10">2130
    \printabbreviations  2121
    +class="cmti-10">2131
    \printglossary options
        label  2122
    +href="glossaries-extra-manual.html#dx1-5025" >2132
        nogroupskip  2123
    +href="glossaries-extra-manual.html#dx1-20015" >2133
        prefix  2124
    +href="glossaries-extra-manual.html#dx1-5022" >2134
        target  2125, 2126
    +href="glossaries-extra-manual.html#dx1-5020" >2135, 2136
        targetnameprefix  2127
    +href="glossaries-extra-manual.html#dx1-5021" >2137
        title  2128
    +href="glossaries-extra-manual.html#dx1-54006" >2138
    \printnoidxglossary options
        sort  2129
    +href="glossaries-extra-manual.html#dx1-47023" >2139
    \printunsrtabbreviations  2130
    +class="cmti-10">2140
    \printunsrtacronyms  2131
    +class="cmti-10">2141
    \printunsrtglossaries  2132
    +class="cmti-10">2142
    \printunsrtglossary  2133
    +class="cmti-10">2143
    \printunsrtglossary*  2134
    +class="cmti-10">2144
    \printunsrtglossaryentryprocesshook  2135
    +class="cmti-10">2145
    \printunsrtglossaryhandler  2136
    +class="cmti-10">2146
    \printunsrtglossarypredoglossary  2137
    +class="cmti-10">2147
    \printunsrtglossaryskipentry  2138
    +class="cmti-10">2148
    \printunsrtglossaryunit  2139
    +class="cmti-10">2149
    \printunsrtglossaryunitsetup  2140
    +class="cmti-10">2150
    \printunsrtindex  2141
    +class="cmti-10">2151
    \printunsrtnumbers  2142
    +class="cmti-10">2152
    \printunsrtsymbols  2143
    +class="cmti-10">2153
    \provideignoredglossary  2144
    +class="cmti-10">2154

    R relsizes package  2145
    +href="glossaries-extra-manual.html#dx1-25048" >2155
    \RestoreAcronyms  2146
    +class="cmti-10">2156
    \rGLS  2147
    +class="cmti-10">2157
    \rGls  2148
    +class="cmti-10">2158
    + + + \rgls  2149
    +class="cmti-10">2159
    \rGLSformat  2150
    +class="cmti-10">2160
    \rGlsformat  2151
    +class="cmti-10">2161
    \rglsformat  2152
    +class="cmti-10">2162
    \rGLSpl  2153
    +class="cmti-10">2163
    \rGlspl  2154
    - - - +class="cmti-10">2164
    \rglspl  2155
    +class="cmti-10">2165
    \rGLSplformat  2156
    +class="cmti-10">2166
    \rGlsplformat  2157
    +class="cmti-10">2167
    \rglsplformat  2158
    +class="cmti-10">2168

    S \setabbreviationstyle  2159
    +class="cmti-10">2169
    slantsc package  2160
    +href="glossaries-extra-manual.html#dx1-29021" >2170
    soul package  2161, 2162
    +href="glossaries-extra-manual.html#dx1-6024" >2171, 2172
    style package  2163
    +href="glossaries-extra-manual.html#dx1-14005" >2173
    subentrycounter package  2164
    +href="glossaries-extra-manual.html#dx1-48021" >2174

    T texindy  2165
    +href="glossaries-extra-manual.html#dx1-34007" >2175
    textcase package  2166
    +href="glossaries-extra-manual.html#dx1-7" >2176
    tracklang package  2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176
    +href="glossaries-extra-manual.html#dx1-3" >2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186
    translator package  2177
    +href="glossaries-extra-manual.html#dx1-3012" >2187

    U upgreek package  2178, 2179, 2180, 2181
    +href="glossaries-extra-manual.html#dx1-42029" >2188, 2189, 2190, 2191

    W wrglossary (counter)  2182, 2183, 2184, 2185, 2186
    +href="glossaries-extra-manual.html#dx1-4128" >2192, 2193, 2194, 2195, 2196

    X xfor package  2187, 2188, 2189
    +href="glossaries-extra-manual.html#dx1-8" >2197, 2198, 2199
    \xglssetwidest  2190
    +href="glossaries-extra-manual.html#dx1-20070" >2200
    \xglsupdatewidest  2191
    +href="glossaries-extra-manual.html#dx1-20074" >2201
    \xGlsXtrSetField  2192
    +class="cmti-10">2202
    xindy  2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2209
    +class="cmbx-10">2219
    xindy  2210
    +href="glossaries-extra-manual.html#dx1-6047" >2220
    xkeyval package  2211
    +href="glossaries-extra-manual.html#dx1-6" >2221

    @@ -29634,7 +29767,7 @@ class="cmr-8">field and the short form was stored in the
    symbol field.

    -

    3.1For compatibility with earlier versions, \glsabbrvscfont \glsxtrscfont is now deprecated. Likewise for similar commands.

    -

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

    -

    9.2v1.08 assumed filename.glstex extension was enforced by version 1.11.

    -

    10.1Pre version 1.28 used \csedef#1={\protect\ttfamily#1}|main}} \DeleteShortVerb{\|} \MakeShortVerb{"} - \title{glossaries-extra.sty v1.40: + \title{glossaries-extra.sty v1.41: an extension to the glossaries package} \author{Nicola L.C. Talbot\\[10pt] Dickimaw Books\\ \url{http://www.dickimaw-books.com/}} - \date{2019-03-31} + \date{2019-04-09} \maketitle \begin{abstract} @@ -4079,13 +4079,19 @@ If a widest name was set for the given level, this will put \meta{text} inside a box of that width otherwise it just does \meta{text}. -This is followed by the symbol in parentheses if set, then -the description and post-description hook, and finally the location -list is displayed using: +This is followed by the symbol in parentheses if set. Then, if the +description is set, the description and post-description hook are +displayed followed by: +\begin{definition}[\DescribeMacro\glstopicSubPreLocSep] +\cs{glstopicSubPreLocSep} +\end{definition} +(This command isn't used if the description isn't set.) + +Finally the location list is displayed using: \begin{definition}[\DescribeMacro\glstopicSubLoc] \cs{glstopicSubLoc}\marg{label}\marg{location} \end{definition} -which just does a space followed by \meta{location} by default. +which just does \meta{location} by default. \section{Glossary Style Modifications} \label{sec:glosstylemods} @@ -4398,6 +4404,15 @@ 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 separator between groups (if not \pkgopt{nogroupskip}) is now +given by: +\begin{definition}[\DescribeMacro\glslistgroupskip] +\cs{glslistgroupskip} +\end{definition} +This defaults to \cs{indexspace} with penalties to deter page +breaks. +This command isn't used if \pkgopt{nogroupskip} is set. + The \sty{glossary-tree} package introduced two new commands in \sty{glossaries} version 4.22, \ics{glstreegroupheaderfmt} and \ics{glstreenavigationfmt}, which are used to format @@ -4423,6 +4438,34 @@ all three to use a particular style you only need to redefine \cs{glstreenamefmt} without affecting the other two commands, then you now can. +The separator between groups (if not \pkgopt{nogroupskip}) is now +given by: +\begin{definition}[\DescribeMacro\glstreegroupskip] +\cs{glstreegroupskip} +\end{definition} +This defaults to \cs{indexspace} with penalties to deter page +breaks. +This command isn't used if \pkgopt{nogroupskip} is set (except for +the styles that display the group titles). + +The styles that display the group titles now use: +\begin{definition}[\DescribeMacro\glstreePreHeader] +\cs{glstreePreHeader}\marg{label}\marg{title} +\end{definition} +where \meta{label} is the group label and \meta{title} is the group +title. This does nothing by default +and is inserted before the group title. You can redefine it to add +the group title to the PDF bookmarks. For example, if the +glossary title uses \cs{chapter} then: +\begin{verbatim} +\renewcommand{\glstreePreHeader}[2]{% + \pdfbookmark[1]{#2}{\currentglossary.#1}% +} +\end{verbatim} +will insert section-level bookmarks. The use of \cs{currentglossary} +helps to provide unique bookmark labels in the event of multiple +glossaries. + The \glostyle{index}-like and \glostyle{tree}-like styles insert the pre-\gls{numberlist} space with \begin{definition}[\DescribeMacro\glstreeprelocation] @@ -4472,6 +4515,21 @@ for the description and \end{definition} for the symbol. +As from version 1.41, there are now wrapper commands for +\cs{glstreedesc} and \cs{glstreechilddesc} that check for +the description and symbol to determine whether or not to insert a +space (\cs{glstreeprelocation} or \cs{glstreechildprelocation}) +before the page list. These are: +\begin{definition}[\DescribeMacro\glstreeDescLoc] +\cs{glstreeDescLoc}\marg{label}\marg{location} +\end{definition} +for top-level entries and +\begin{definition}[\DescribeMacro\glstreeChildDescLoc] +\cs{glstreeChildDescLoc}\marg{label}\marg{location} +\end{definition} +for sub-entries. This prevents a spurious space for terms that don't +have a symbol or description but do have a location list (for +example, aliases). As from version 1.05, the \styfmt{glossaries-extra-stylemods} package provides some additional commands for use with the diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-abbr-styles.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-abbr-styles.pdf index 5e4f0d58d05..7d04e01e7a9 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-abbr-styles.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-abbr-styles.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-abbrv.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-abbrv.pdf index 48fb8296aef..e85508041da 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 522091f867b..51d427f7ca4 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 4df60aed2f1..a792bef02ba 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 b41b7446a09..748c73c9cb1 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 93a3dfe4c3b..7254b52a706 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-alias.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-alias.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-altmodifier.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-altmodifier.pdf index 56027016599..e0776db2de9 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 cf0a4851d3b..ab853285b42 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 e9bb837ce70..56d3b3e27d0 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 a7f85b8f5cb..36df4991ddd 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 5919e3f5f4b..59a5978d4ff 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 d77d32d1f3f..93a8d36a551 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 dc2d1c3b01d..8429430c250 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-crossref.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-crossref.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-crossref2.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-crossref2.pdf index b0d86585c10..be4f0703ab5 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 f07338c9274..418419a652e 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 d9203454efa..0b032a464c1 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 78a07ddef71..b598bbe6728 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 2171571f42a..44b0b88aba5 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 d025eeaff31..ddd2da63765 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 00e794c4c43..d14b7ac990e 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 16f18aabce5..6862cdf5af7 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 81e76b6363d..70a828f297c 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-initialisms.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-initialisms.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-linkcount.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-linkcount.pdf index 9cb7c710aa5..6ecfa45889f 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-linkcount.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-linkcount.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-mixed-abbrv-styles.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-mixed-abbrv-styles.pdf index 0ee3eef0a19..ed38e87d42c 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 af609245796..47a2626b991 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 8530fb600b9..3c9208ba088 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 68e8ea01819..83b5b168d87 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 c229de4a48b..da7a9f2d445 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 f08042cea03..d2a571a2331 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 b30522462b2..80898cefa1e 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 830d36226b0..1daeb9987c6 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 9885d8c4361..98df08cb26b 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 233dcf43d28..1d60fe81750 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 763e6a8c2b6..97cb8910036 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 52aafbd692a..5193bfe0bd7 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 5caee46be41..7e7448c3616 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 9d67bc6a4a6..196eeb389bd 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-nameref.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-record-nameref.pdf index 662782b62a9..23daf02f3cf 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-record-nameref.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-record-nameref.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 e9b5926df7b..338bc55bb11 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 4031d86f1b5..0662789138c 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-restricteddocdefs.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-restricteddocdefs.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-hyp.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-hyp.pdf index c0f73cee6f3..67862dfd865 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-hyp.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-hyp.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main-hyp.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main-hyp.pdf index d39c381481e..fd234df18be 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main-hyp.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main-hyp.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main.pdf index 4775faf2fea..5ca8b571c0f 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl-main.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl.pdf index f503d713474..a78c307b62b 100644 Binary files a/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl.pdf and b/Master/texmf-dist/doc/latex/glossaries-extra/sample-suppl.pdf differ diff --git a/Master/texmf-dist/doc/latex/glossaries-extra/sample-trans.pdf b/Master/texmf-dist/doc/latex/glossaries-extra/sample-trans.pdf index 53a72f6895b..c7a5afbce69 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 e1ae555ec8b..f5ce99c373b 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 85666167c05..4c397377f09 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 bed0dcc12fc..c5fb78f8f99 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 614c383121a..3d37899d9b0 100644 --- a/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.dtx +++ b/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.dtx @@ -1,11 +1,6 @@ %\iffalse % glossaries-extra.dtx generated using makedtx version 1.2 (c) Nicola Talbot % Command line args: -% -doc "glossaries-extra-codedoc.tex" -% -comment ".*\.tex" -% -comment ".*\.bib" -% -macrocode ".*\.tex" -% -macrocode ".*\.bib" % -src "glossaries-extra.sty\Z=>glossaries-extra.sty" % -src "glossaries-extra-bib2gls.sty\Z=>glossaries-extra-bib2gls.sty" % -src "glossaries-extra-stylemods.sty\Z=>glossaries-extra-stylemods.sty" @@ -14,12 +9,17 @@ % -src "glossary-topic.sty\Z=>glossary-topic.sty" % -src "(example-glossaries-.+\.tex)\Z=>\1" % -src "(example-glossaries-.+\.bib)\Z=>\1" -% -codetitle "Main Package Code (\\styfmt{glossaries-extra.sty})" -% -setambles ".*\.bib=>\nopreamble\nopostamble" -% -section "chapter" % -author "Nicola Talbot" +% -doc "glossaries-extra-codedoc.tex" +% -macrocode ".*\.tex" +% -macrocode ".*\.bib" +% -section "chapter" +% -setambles ".*\.bib=>\nopreamble\nopostamble" +% -comment ".*\.tex" +% -comment ".*\.bib" +% -codetitle "Main Package Code (\\styfmt{glossaries-extra.sty})" % glossaries-extra -% Created on 2019/3/31 16:53 +% Created on 2019/4/9 21:59 %\fi %\iffalse %<*package> @@ -182,13 +182,13 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of \raggedright } -\title{glossaries-extra.sty v1.40: +\title{glossaries-extra.sty v1.41: documented code} \author{Nicola L.C. Talbot\\[10pt] Dickimaw Books\\ \url{http://www.dickimaw-books.com/}} -\date{2019-03-31} +\date{2019-04-09} \begin{document} \DocInput{glossaries-extra.dtx} @@ -233,7 +233,7 @@ Dickimaw Books\\ %\section{Package Initialisation and Options} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra}[2019/03/31 v1.40 (NLCT)] +\ProvidesPackage{glossaries-extra}[2019/04/09 v1.41 (NLCT)] % \end{macrocode} % Requires \sty{xkeyval} to define package options. % \begin{macrocode} @@ -23180,7 +23180,7 @@ defined}{}% %automatically loaded by the record option. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra-bib2gls}[2019/03/31 v1.40 (NLCT)] +\ProvidesPackage{glossaries-extra-bib2gls}[2019/04/09 v1.41 (NLCT)] % \end{macrocode} %Provide convenient shortcut commands for predefined glossary types. %\begin{macro}{\printunsrtacronyms} @@ -26227,7 +26227,7 @@ defined}{}% % First identify package: % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra-stylemods}[2019/03/31 v1.40 (NLCT)] +\ProvidesPackage{glossaries-extra-stylemods}[2019/04/09 v1.41 (NLCT)] % \end{macrocode} % Provide package options to automatically load required predefined % styles. The simplest method is to just test for the existence of @@ -26379,6 +26379,12 @@ defined}{}% \newcommand{\glslistdesc}[1]{\glossentrydesc{#1}\glspostdescription} % \end{macrocode} %\end{macro} +%\begin{macro}{\glslistgroupskip} +%\changes{1.41}{2019-04-09}{new} +% \begin{macrocode} + \newcommand{\glslistgroupskip}{\nobreak\indexspace\nobreak} +% \end{macrocode} +%\end{macro} %Redefine \glostyle{list} to use these commands. % \begin{macrocode} \renewglossarystyle{list}{% @@ -26395,7 +26401,7 @@ defined}{}% \glstarget{##2}{\strut}\space \glslistdesc{##2}% \glslistchildprelocation ##3\glslistchildpostlocation}% - \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}% + \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\glslistgroupskip\fi}% } } {} @@ -26976,6 +26982,14 @@ defined}{}% \def\glstreenavigationfmt#1{\glstreedefaultnamefmt{#1}} % \end{macrocode} %\end{macro} +%\begin{macro}{\glstreePreHeader} +%\changes{1.41}{2019-04-09}{new} +%Takes the label as the first argument and title as the second +%argument so this can be modified to add a bookmark. +% \begin{macrocode} + \newcommand{\glstreePreHeader}[2]{} +% \end{macrocode} +%\end{macro} % \begin{macrocode} } {} @@ -27003,6 +27017,12 @@ defined}{}% \newcommand*{\glstreechildprelocation}{\glstreeprelocation} % \end{macrocode} %\end{macro} +%\begin{macro}{\glstreegroupskip} +%\changes{1.41}{2019-04-09}{new} +% \begin{macrocode} + \newcommand{\glstreegroupskip}{\nopagebreak\indexspace\nobreak} +% \end{macrocode} +%\end{macro} %Modify the \glostyle{index} style. % \begin{macrocode} \renewglossarystyle{index}{% @@ -27020,8 +27040,7 @@ defined}{}% \item\glsentryitem{##1}% \glstreenamefmt{\glstarget{##1}{\glossentryname{##1}}}% \glstreesymbol{##1}% - \glstreedesc{##1}% - \glstreeprelocation ##2% + \glstreeDescLoc{##1}{##2}% }% \renewcommand{\subglossentry}[3]{% \ifcase##1\relax @@ -27034,10 +27053,9 @@ defined}{}% \fi \glstreenamefmt{\glstarget{##2}{\glossentryname{##2}}}% \glstreechildsymbol{##2}% - \glstreechilddesc{##2}% - \glstreechildprelocation ##3% + \glstreeChildDescLoc{##2}{##3}% }% - \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}% + \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\glstreegroupskip\fi}% } } {} @@ -27053,9 +27071,10 @@ defined}{}% \renewglossarystyle{indexgroup}{% \setglossarystyle{index}% \renewcommand*{\glsgroupheading}[1]{% - \item\glstreegroupheaderfmt{\glsgetgrouptitle{##1}}% - \nopagebreak\indexspace - \nobreak\@afterheading + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% + \item\glstreegroupheaderfmt{\glsxtr@grptitle}% + \glstreegroupskip\@afterheading }% } } @@ -27072,12 +27091,13 @@ defined}{}% \setglossarystyle{index}% \renewcommand*{\glossaryheader}{% \item\glstreenavigationfmt{\glsnavigation}% - \nobreak\@afterheading\indexspace}% + \glstreegroupskip\@afterheading}% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \item\glstreegroupheaderfmt - {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}% - \nopagebreak\indexspace - \nobreak\@afterheading}% + {\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip\@afterheading}% }% } {} @@ -27100,6 +27120,23 @@ defined}{}% } % \end{macrocode} %\end{macro} +%\begin{macro}{\glstreeDescLoc} +%\changes{1.41}{2019-04-09}{new} +%\begin{definition} +%\cs{glstreeDescLoc}\marg{label}\marg{location} +%\end{definition} +%This checks for the description and symbol. If both are missing, +%don't want a space at the start of the location list. (For example, +%the entry may just have a cross-reference.) +% \begin{macrocode} + \newcommand{\glstreeDescLoc}[2]{% + \ifglshasdesc{#1}% + {\glstreedesc{#1}\glstreeprelocation}% + {\ifglshassymbol{#1}{\glstreeprelocation}{}}% + #2% + } +% \end{macrocode} +%\end{macro} %Similarly for the symbol. %\begin{macro}{\glstreesymbol} %\changes{1.31}{2018-05-09}{new} @@ -27118,6 +27155,17 @@ defined}{}% }% % \end{macrocode} %\end{macro} +%\begin{macro}{\glstreeChildDescLoc} +%\changes{1.41}{2019-04-09}{new} +% \begin{macrocode} + \newcommand{\glstreeChildDescLoc}[2]{% + \ifglshasdesc{#1}% + {\glstreechilddesc{#1}\glstreechildprelocation}% + {\ifglshassymbol{#1}{\glstreechildprelocation}{}}% + #2% + }% +% \end{macrocode} +%\end{macro} %\begin{macro}{\glstreechildsymbol} %\changes{1.31}{2018-05-09}{new} %This just behaves in the same way as the top-level. @@ -27140,8 +27188,7 @@ defined}{}% \parindent0pt\relax \glsentryitem{##1}\glstreenamefmt{\glstarget{##1}{\glossentryname{##1}}}% \glstreesymbol{##1}% - \glstreedesc{##1}% - \glstreeprelocation##2\par + \glstreeDescLoc{##1}{##2}\par }% \renewcommand{\subglossentry}[3]{% \hangindent##1\glstreeindent\relax @@ -27151,10 +27198,9 @@ defined}{}% \fi \glstreenamefmt{\glstarget{##2}{\glossentryname{##2}}}% \glstreechildsymbol{##2}% - \glstreechilddesc{##2}% - \glstreechildprelocation ##3\par + \glstreeChildDescLoc{##2}{##3}\par }% - \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}% + \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\glstreegroupskip\fi}% }% } {} @@ -27169,9 +27215,11 @@ defined}{}% {% \renewglossarystyle{treegroup}{% \setglossarystyle{tree}% - \renewcommand{\glsgroupheading}[1]{\par - \noindent\glstreegroupheaderfmt{\glsgetgrouptitle{##1}}\par - \nopagebreak\indexspace\nobreak\@afterheading}% + \renewcommand{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% + \par\noindent\glstreegroupheaderfmt{\glsxtr@grptitle}% + \glstreegroupskip\@afterheading}% } } {} @@ -27186,13 +27234,15 @@ defined}{}% \renewglossarystyle{treehypergroup}{% \setglossarystyle{tree}% \renewcommand*{\glossaryheader}{% - \par\noindent\glstreenavigationfmt{\glsnavigation}\par - \nobreak\@afterheading\indexspace}% + \par\noindent\glstreenavigationfmt{\glsnavigation}% + \glstreegroupskip\@afterheading}% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \par\noindent \glstreegroupheaderfmt - {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}\par - \nopagebreak\indexspace\nobreak\@afterheading}% + {\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip\@afterheading}% } } {} @@ -27260,7 +27310,7 @@ defined}{}% \glstreenonamechilddesc{##2}% \glstreechildprelocation##3\par }% - \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}% + \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\glstreegroupskip\fi}% } } {} @@ -27275,10 +27325,11 @@ defined}{}% {% \renewglossarystyle{treenonamegroup}{% \setglossarystyle{treenoname}% - \renewcommand{\glsgroupheading}[1]{\par - \noindent\glstreegroupheaderfmt - {\glsgetgrouptitle{##1}}% - \nopagebreak\indexspace\nobreak\@afterheading + \renewcommand{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% + \par\noindent\glstreegroupheaderfmt{\glsxtr@grptitle}% + \glstreegroupskip\@afterheading }% } } @@ -27294,13 +27345,14 @@ defined}{}% \renewglossarystyle{treenonamehypergroup}{% \setglossarystyle{treenoname}% \renewcommand*{\glossaryheader}{% - \par\noindent\glstreenavigationfmt{\glsnavigation}\par - \nobreak\@afterheading\indexspace}% + \par\noindent\glstreenavigationfmt{\glsnavigation}% + \glstreegroupskip\@afterheading}% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \par\noindent - \glstreegroupheaderfmt - {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}% - \nopagebreak\indexspace\nobreak\@afterheading}% + \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip\@afterheading}% } } {} @@ -27326,7 +27378,12 @@ defined}{}% {% \let\par\glsxtrAltTreePar \ifglshassymbol{#1}{(\glossentrysymbol{#1})\space}{}% - \glossentrydesc{#1}\glspostdescription\glstreeprelocation #2\par +% \end{macrocode} +%\changes{1.41}{2019-04-09}{added check for description} +% \begin{macrocode} + \ifglshasdesc{#1}% + {\glossentrydesc{#1}\glspostdescription\glstreeprelocation}{}% + #2\par }% } % \end{macrocode} @@ -28035,7 +28092,7 @@ defined}{}% \glsxtralttreeSubSymbolDescLocation{##1}{##2}{##3}% \def\@gls@prevlevel{##1}% }% - \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}% + \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\glstreegroupskip\fi}% } }% {% @@ -28056,8 +28113,10 @@ defined}{}% \def\@gls@prevlevel{-1}% \hangindent0pt\relax \parindent0pt\relax - \glstreegroupheaderfmt{\glsgetgrouptitle{##1}}% - \nopagebreak\indexspace\nopagebreak + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% + \glstreegroupheaderfmt{\glsxtr@grptitle}% + \glstreegroupskip }% }% }% @@ -28077,16 +28136,18 @@ defined}{}% \def\@gls@prevlevel{-1}% \hangindent0pt\relax \parindent0pt\relax - \glstreenavigationfmt{\glsnavigation}\par\indexspace + \glstreenavigationfmt{\glsnavigation}% + \glstreegroupskip }% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \par \def\@gls@prevlevel{-1}% \hangindent0pt\relax \parindent0pt\relax - \glstreegroupheaderfmt - {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}\par - \nopagebreak\indexspace\nopagebreak + \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip }% } }% @@ -28105,8 +28166,10 @@ defined}{}% \renewglossarystyle{mcolindexgroup}{% \setglossarystyle{mcolindex}% \renewcommand*{\glsgroupheading}[1]{% - \item\glstreegroupheaderfmt{\glsgetgrouptitle{##1}}% - \nopagebreak\indexspace\nobreak\@afterheading + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% + \item\glstreegroupheaderfmt{\glsxtr@grptitle}% + \glstreegroupskip\@afterheading }% } }% @@ -28123,12 +28186,14 @@ defined}{}% \setglossarystyle{mcolindex}% \renewcommand*{\glossaryheader}{% \item\glstreenavigationfmt{\glsnavigation}% - \indexspace + \glstreegroupskip }% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \item\glstreegroupheaderfmt - {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}% - \nopagebreak\indexspace\nobreak\@afterheading + {\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip\@afterheading }% } }% @@ -28151,9 +28216,11 @@ defined}{}% \let\item\glstreeitem}% {\end{multicols}}% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \item\glstreegroupheaderfmt - {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}% - \nopagebreak\indexspace\nobreak\@afterheading + {\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip\@afterheading }% } }% @@ -28168,9 +28235,11 @@ defined}{}% {% \renewglossarystyle{mcoltreegroup}{% \setglossarystyle{mcoltree}% - \renewcommand{\glsgroupheading}[1]{\par - \noindent\glstreegroupheaderfmt{\glsgetgrouptitle{##1}}% - \nopagebreak\indexspace\nobreak\@afterheading + \renewcommand{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% + \par\noindent\glstreegroupheaderfmt{\glsxtr@grptitle}% + \glstreegroupskip\@afterheading }% } }% @@ -28186,12 +28255,15 @@ defined}{}% \renewglossarystyle{mcoltreehypergroup}{% \setglossarystyle{mcoltree}% \renewcommand*{\glossaryheader}{% - \par\noindent\glstreenavigationfmt{\glsnavigation}\par\indexspace + \par\noindent\glstreenavigationfmt{\glsnavigation}% + \glstreegroupskip }% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \par\noindent - \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}% - \nopagebreak\indexspace\nobreak\@afterheading + \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip\@afterheading }% } }% @@ -28215,9 +28287,11 @@ defined}{}% }% {\end{multicols}}% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \par\noindent - \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}% - \nopagebreak\indexspace\nobreak\@afterheading + \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip\@afterheading }% } }% @@ -28232,9 +28306,11 @@ defined}{}% {% \renewglossarystyle{mcoltreenonamegroup}{% \setglossarystyle{mcoltreenoname}% - \renewcommand{\glsgroupheading}[1]{\par - \noindent\glstreegroupheaderfmt{\glsgetgrouptitle{##1}}% - \nopagebreak\indexspace\nobreak\@afterheading + \renewcommand{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% + \par\noindent\glstreegroupheaderfmt{\glsxtr@grptitle}% + \glstreegroupskip\@afterheading }% } }% @@ -28250,11 +28326,15 @@ defined}{}% \renewglossarystyle{mcoltreenonamehypergroup}{% \setglossarystyle{mcoltreenoname}% \renewcommand*{\glossaryheader}{% - \par\noindent\glstreenavigationfmt{\glsnavigation}\par\indexspace}% + \par\noindent\glstreenavigationfmt{\glsnavigation}% + \glstreegroupskip + }% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \par\noindent - \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}% - \nopagebreak\indexspace\nobreak\@afterheading}% + \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip\@afterheading}% } }% {% @@ -28277,9 +28357,11 @@ defined}{}% }% {\end{multicols}}% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \par\noindent - \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}% - \nopagebreak\indexspace\nobreak\@afterheading}% + \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip\@afterheading}% } }% {% @@ -28315,12 +28397,15 @@ defined}{}% {% \renewglossarystyle{mcolalttreegroup}{% \setglossarystyle{mcolalttree}% - \renewcommand{\glsgroupheading}[1]{\par + \renewcommand{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% + \par \def\@gls@prevlevel{-1}% \hangindent0pt\relax \parindent0pt\relax - \glstreegroupheaderfmt{\glsgetgrouptitle{##1}}% - \nopagebreak\indexspace\nopagebreak + \glstreegroupheaderfmt{\glsxtr@grptitle}% + \glstreegroupskip }% } }% @@ -28341,15 +28426,17 @@ defined}{}% \hangindent0pt\relax \parindent0pt\relax \glstreenavigationfmt{\glsnavigation}% - \par\indexspace + \glstreegroupskip }% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \par \def\@gls@prevlevel{-1}% \hangindent0pt\relax \parindent0pt\relax - \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}% - \nopagebreak\indexspace\nopagebreak + \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip }% } }% @@ -28373,12 +28460,14 @@ defined}{}% }% {\par\end{multicols}}% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \par \def\@gls@prevlevel{-1}% \hangindent0pt\relax \parindent0pt\relax - \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}% - \nopagebreak\indexspace\nopagebreak + \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip }% } }% @@ -28408,7 +28497,7 @@ defined}{}% %\section{Package Initialisation and Options} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossary-bookindex}[2019/03/31 v1.40 (NLCT)] +\ProvidesPackage{glossary-bookindex}[2019/04/09 v1.41 (NLCT)] % \end{macrocode} %Load required packages. % \begin{macrocode} @@ -28781,16 +28870,18 @@ defined}{}% \let\@glsxtr@bookindex@subsubatendgroup\relax % \end{macrocode} % Fetch the group title from the label supplied in \verb|#1|. +%\changes{1.41}{2019-04-09}{changed \cs{thisgrptitle} to +%\cs{glsxtrcurrentgrptitle}}% % \begin{macrocode} - \glsxtrgetgrouptitle{##1}{\thisgrptitle}% + \glsxtrgetgrouptitle{##1}{\glsxtrcurrentgrptitle}% % \end{macrocode} % Do the PDF bookmark if supported. % \begin{macrocode} - \glsxtrbookindexbookmark{\thisgrptitle}{index.##1}% + \glsxtrbookindexbookmark{\glsxtrcurrentgrptitle}{index.##1}% % \end{macrocode} % Format the group title. % \begin{macrocode} - \glsxtrbookindexformatheader{\thisgrptitle}% + \glsxtrbookindexformatheader{\glsxtrcurrentgrptitle}% \nopagebreak\indexspace\nopagebreak\@afterheading }% } @@ -28893,7 +28984,7 @@ defined}{}% %Provides additional long styles. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossary-longextra}[2019/03/31 v1.40 (NLCT)] +\ProvidesPackage{glossary-longextra}[2019/04/09 v1.41 (NLCT)] % \end{macrocode} %Load required packages. % \begin{macrocode} @@ -30322,7 +30413,7 @@ defined}{}% %topic. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossary-topic}[2019/03/31 v1.40 (NLCT)] +\ProvidesPackage{glossary-topic}[2019/04/09 v1.41 (NLCT)] % \end{macrocode} %Load required package. % \begin{macrocode} @@ -30334,15 +30425,37 @@ defined}{}% %\changes{1.40}{2019-03-22}{new} % \begin{macrocode} \newglossarystyle{topic}{% - \renewenvironment{theglossary}{\glstopicInit}{\par}% + \renewenvironment{theglossary}% + {% + \glstopicInit + \def\glstopic@prechildren{}% + \def\glstopic@prevlevel{-1}% + }% + {\par}% \renewcommand*{\glossaryheader}{}% - \renewcommand*{\glsgroupheading}[1]{\glstopicGroupHeading{##1}}% + \renewcommand*{\glsgroupheading}[1]{% + \def\glstopic@prevlevel{-1}% + \glstopicGroupHeading{##1}% + }% \renewcommand{\glossentry}[2]{% \hangindent0pt\relax \parindent\glstopicParIndent\relax \glstopicItem{##1}{##2}% +% \end{macrocode} +%\changes{1.41}{2019-04-09}{added penalty if no description} +%If there isn't a description, penalise a page break. +% \begin{macrocode} + \ifglshasdesc{##1}% + {% + \def\glstopic@prechildren{}% + }% + {% + \def\glstopic@prechildren{\nopagebreak}% + }% }% \renewcommand{\subglossentry}[3]{% + \ifnum\glstopic@prevlevel=0\relax\glstopic@prechildren\fi + \def\glstopic@prevlevel{##1}% \glstopicAssignSubIndent{##1}% \glstopicSubItem{##1}{##2}{##3}% }% @@ -30449,6 +30562,10 @@ defined}{}% %Used to set the indentation for sub-levels. % \begin{macrocode} \newcommand*{\glstopicAssignSubIndent}[1]{% +% \end{macrocode} +%\changes{1.41}{2019-04-09}{moved \cs{par} from \cs{glstopicSubItem}} +% \begin{macrocode} + \par \parindent\dimexpr#1\glstopicSubIndent-\glstopicSubIndent\relax \glstopicAssignWidest{#1}% \hangindent\dimexpr\parindent+\glstopicwidest\relax @@ -30519,13 +30636,19 @@ defined}{}% %\end{definition} % \begin{macrocode} \newcommand*{\glstopicSubItem}[3]{% - \par +% \end{macrocode} +%\changes{1.41}{2019-04-09}{moved \cs{par} to \cs{glstopicAssignSubIndent}} +% \begin{macrocode} \glstopicSubItemBox{#1}{\glstopicSubNameFont{\glsentryitem{#2}% \glstarget{#2}{\glossentryname{#2}}}% \glstopicSubItemSep }% \ifglshassymbol{#2}{(\glossentrysymbol{#2})\space}{}% - \glossentrydesc{#2}\glspostdescription +% \end{macrocode} +%\changes{1.41}{2019-04-09}{added check for description} +% \begin{macrocode} + \ifglshasdesc{#2}% + {\glossentrydesc{#2}\glspostdescription\glstopicSubPreLocSep}{}% \glstopicSubLoc{#2}{#3}% } % \end{macrocode} @@ -30553,10 +30676,16 @@ defined}{}% \newcommand*{\glstopicSubNameFont}[1]{\textbf{#1}} % \end{macrocode} %\end{macro} +%\changes{1.41}{2019-04-09}{new} +% \begin{macrocode} +\newcommand*{\glstopicSubPreLocSep}{\space} +% \end{macrocode} +%\end{macro} %\begin{macro}{\glstopicSubLoc} %\changes{1.40}{2019-03-22}{new} +%\changes{1.41}{2019-04-09}{moved \cs{space} to \cs{glstopicSubPreLocSep}} % \begin{macrocode} -\newcommand*{\glstopicSubLoc}[2]{\space#2} +\newcommand*{\glstopicSubLoc}[2]{#2} % \end{macrocode} %\end{macro} % @@ -30602,7 +30731,20 @@ defined}{}% \parindent\glstopicParIndent\relax \glstopicItem{##1}{##2}% \ifnum\glstopicCols>1\relax - \edef\glstopic@prechildren{\noexpand\begin{\glstopicColsEnv}{\glstopicCols}}% +% \end{macrocode} +%\changes{1.41}{2019-04-09}{added penalty if no description} +%If there isn't a description, penalise a page break. +% \begin{macrocode} + \ifglshasdesc{##1}% + {% + \edef\glstopic@prechildren{% + \noexpand\begin{\glstopicColsEnv}{\glstopicCols}}% + }% + {% + \edef\glstopic@prechildren{% + \noexpand\nopagebreak + \noexpand\begin{\glstopicColsEnv}{\glstopicCols}}% + }% \edef\glstopic@postchildren{\noexpand\end{\glstopicColsEnv}}% \fi }% 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 3d12a504bf3..e8bd0d99dba 100644 --- a/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.ins +++ b/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.ins @@ -1,4 +1,4 @@ -% glossaries-extra.ins generated using makedtx version 1.2 2019/3/31 16:53 +% glossaries-extra.ins generated using makedtx version 1.2 2019/4/9 21:59 \input docstrip \preamble diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-bib2gls.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-bib2gls.sty index 757345860f0..218686c492a 100644 --- a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-bib2gls.sty +++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-bib2gls.sty @@ -39,7 +39,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra-bib2gls}[2019/03/31 v1.40 (NLCT)] +\ProvidesPackage{glossaries-extra-bib2gls}[2019/04/09 v1.41 (NLCT)] \ifglsacronym \providecommand*{\printunsrtacronyms}[1][]{% \printunsrtglossary[type=\acronymtype,#1]}% 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 b158e4a66cc..7d67e17cfd5 100644 --- a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-stylemods.sty +++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-stylemods.sty @@ -39,7 +39,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra-stylemods}[2019/03/31 v1.40 (NLCT)] +\ProvidesPackage{glossaries-extra-stylemods}[2019/04/09 v1.41 (NLCT)] \newcommand*{\@glsxtr@loadstyles}{} \DeclareOption{all}{% \appto\@glsxtr@loadstyles{% @@ -105,6 +105,7 @@ \newcommand{\glslistchildprelocation}{\glslistprelocation} \newcommand{\glslistchildpostlocation}{.} \newcommand{\glslistdesc}[1]{\glossentrydesc{#1}\glspostdescription} + \newcommand{\glslistgroupskip}{\nobreak\indexspace\nobreak} \renewglossarystyle{list}{% \renewenvironment{theglossary}% {\begin{description}}{\end{description}}% @@ -119,7 +120,7 @@ \glstarget{##2}{\strut}\space \glslistdesc{##2}% \glslistchildprelocation ##3\glslistchildpostlocation}% - \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}% + \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\glslistgroupskip\fi}% } } {} @@ -538,12 +539,14 @@ \renewcommand{\glstreenamefmt}[1]{\glstreedefaultnamefmt{#1}} \def\glstreegroupheaderfmt#1{\glstreedefaultnamefmt{#1}} \def\glstreenavigationfmt#1{\glstreedefaultnamefmt{#1}} + \newcommand{\glstreePreHeader}[2]{} } {} \ifdef{\@glsstyle@index} { \newcommand*{\glstreeprelocation}{\glsxtrprelocation} \newcommand*{\glstreechildprelocation}{\glstreeprelocation} + \newcommand{\glstreegroupskip}{\nopagebreak\indexspace\nobreak} \renewglossarystyle{index}{% \renewenvironment{theglossary}% {\setlength{\parindent}{0pt}% @@ -559,8 +562,7 @@ \item\glsentryitem{##1}% \glstreenamefmt{\glstarget{##1}{\glossentryname{##1}}}% \glstreesymbol{##1}% - \glstreedesc{##1}% - \glstreeprelocation ##2% + \glstreeDescLoc{##1}{##2}% }% \renewcommand{\subglossentry}[3]{% \ifcase##1\relax @@ -573,10 +575,9 @@ \fi \glstreenamefmt{\glstarget{##2}{\glossentryname{##2}}}% \glstreechildsymbol{##2}% - \glstreechilddesc{##2}% - \glstreechildprelocation ##3% + \glstreeChildDescLoc{##2}{##3}% }% - \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}% + \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\glstreegroupskip\fi}% } } {} @@ -585,9 +586,10 @@ \renewglossarystyle{indexgroup}{% \setglossarystyle{index}% \renewcommand*{\glsgroupheading}[1]{% - \item\glstreegroupheaderfmt{\glsgetgrouptitle{##1}}% - \nopagebreak\indexspace - \nobreak\@afterheading + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% + \item\glstreegroupheaderfmt{\glsxtr@grptitle}% + \glstreegroupskip\@afterheading }% } } @@ -598,12 +600,13 @@ \setglossarystyle{index}% \renewcommand*{\glossaryheader}{% \item\glstreenavigationfmt{\glsnavigation}% - \nobreak\@afterheading\indexspace}% + \glstreegroupskip\@afterheading}% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \item\glstreegroupheaderfmt - {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}% - \nopagebreak\indexspace - \nobreak\@afterheading}% + {\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip\@afterheading}% }% } {} @@ -612,12 +615,24 @@ \newcommand{\glstreedesc}[1]{% \glstreepredesc\glossentrydesc{#1}\glspostdescription } + \newcommand{\glstreeDescLoc}[2]{% + \ifglshasdesc{#1}% + {\glstreedesc{#1}\glstreeprelocation}% + {\ifglshassymbol{#1}{\glstreeprelocation}{}}% + #2% + } \newcommand{\glstreesymbol}[1]{% \ifglshassymbol{#1}{\space(\glossentrysymbol{#1})}{}% }% \newcommand{\glstreechilddesc}[1]{% \glstreechildpredesc\glossentrydesc{#1}\glspostdescription }% + \newcommand{\glstreeChildDescLoc}[2]{% + \ifglshasdesc{#1}% + {\glstreechilddesc{#1}\glstreechildprelocation}% + {\ifglshassymbol{#1}{\glstreechildprelocation}{}}% + #2% + }% \newcommand{\glstreechildsymbol}[1]{% \glstreesymbol{#1}% }% @@ -633,8 +648,7 @@ \parindent0pt\relax \glsentryitem{##1}\glstreenamefmt{\glstarget{##1}{\glossentryname{##1}}}% \glstreesymbol{##1}% - \glstreedesc{##1}% - \glstreeprelocation##2\par + \glstreeDescLoc{##1}{##2}\par }% \renewcommand{\subglossentry}[3]{% \hangindent##1\glstreeindent\relax @@ -644,10 +658,9 @@ \fi \glstreenamefmt{\glstarget{##2}{\glossentryname{##2}}}% \glstreechildsymbol{##2}% - \glstreechilddesc{##2}% - \glstreechildprelocation ##3\par + \glstreeChildDescLoc{##2}{##3}\par }% - \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}% + \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\glstreegroupskip\fi}% }% } {} @@ -655,9 +668,11 @@ {% \renewglossarystyle{treegroup}{% \setglossarystyle{tree}% - \renewcommand{\glsgroupheading}[1]{\par - \noindent\glstreegroupheaderfmt{\glsgetgrouptitle{##1}}\par - \nopagebreak\indexspace\nobreak\@afterheading}% + \renewcommand{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% + \par\noindent\glstreegroupheaderfmt{\glsxtr@grptitle}% + \glstreegroupskip\@afterheading}% } } {} @@ -666,13 +681,15 @@ \renewglossarystyle{treehypergroup}{% \setglossarystyle{tree}% \renewcommand*{\glossaryheader}{% - \par\noindent\glstreenavigationfmt{\glsnavigation}\par - \nobreak\@afterheading\indexspace}% + \par\noindent\glstreenavigationfmt{\glsnavigation}% + \glstreegroupskip\@afterheading}% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \par\noindent \glstreegroupheaderfmt - {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}\par - \nopagebreak\indexspace\nobreak\@afterheading}% + {\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip\@afterheading}% } } {} @@ -712,7 +729,7 @@ \glstreenonamechilddesc{##2}% \glstreechildprelocation##3\par }% - \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}% + \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\glstreegroupskip\fi}% } } {} @@ -720,10 +737,11 @@ {% \renewglossarystyle{treenonamegroup}{% \setglossarystyle{treenoname}% - \renewcommand{\glsgroupheading}[1]{\par - \noindent\glstreegroupheaderfmt - {\glsgetgrouptitle{##1}}% - \nopagebreak\indexspace\nobreak\@afterheading + \renewcommand{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% + \par\noindent\glstreegroupheaderfmt{\glsxtr@grptitle}% + \glstreegroupskip\@afterheading }% } } @@ -733,13 +751,14 @@ \renewglossarystyle{treenonamehypergroup}{% \setglossarystyle{treenoname}% \renewcommand*{\glossaryheader}{% - \par\noindent\glstreenavigationfmt{\glsnavigation}\par - \nobreak\@afterheading\indexspace}% + \par\noindent\glstreenavigationfmt{\glsnavigation}% + \glstreegroupskip\@afterheading}% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \par\noindent - \glstreegroupheaderfmt - {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}% - \nopagebreak\indexspace\nobreak\@afterheading}% + \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip\@afterheading}% } } {} @@ -749,7 +768,9 @@ {% \let\par\glsxtrAltTreePar \ifglshassymbol{#1}{(\glossentrysymbol{#1})\space}{}% - \glossentrydesc{#1}\glspostdescription\glstreeprelocation #2\par + \ifglshasdesc{#1}% + {\glossentrydesc{#1}\glspostdescription\glstreeprelocation}{}% + #2\par }% } \newlength\glsxtrAltTreeIndent @@ -1205,7 +1226,7 @@ \glsxtralttreeSubSymbolDescLocation{##1}{##2}{##3}% \def\@gls@prevlevel{##1}% }% - \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}% + \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\glstreegroupskip\fi}% } }% {% @@ -1218,8 +1239,10 @@ \def\@gls@prevlevel{-1}% \hangindent0pt\relax \parindent0pt\relax - \glstreegroupheaderfmt{\glsgetgrouptitle{##1}}% - \nopagebreak\indexspace\nopagebreak + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% + \glstreegroupheaderfmt{\glsxtr@grptitle}% + \glstreegroupskip }% }% }% @@ -1234,16 +1257,18 @@ \def\@gls@prevlevel{-1}% \hangindent0pt\relax \parindent0pt\relax - \glstreenavigationfmt{\glsnavigation}\par\indexspace + \glstreenavigationfmt{\glsnavigation}% + \glstreegroupskip }% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \par \def\@gls@prevlevel{-1}% \hangindent0pt\relax \parindent0pt\relax - \glstreegroupheaderfmt - {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}\par - \nopagebreak\indexspace\nopagebreak + \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip }% } }% @@ -1254,8 +1279,10 @@ \renewglossarystyle{mcolindexgroup}{% \setglossarystyle{mcolindex}% \renewcommand*{\glsgroupheading}[1]{% - \item\glstreegroupheaderfmt{\glsgetgrouptitle{##1}}% - \nopagebreak\indexspace\nobreak\@afterheading + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% + \item\glstreegroupheaderfmt{\glsxtr@grptitle}% + \glstreegroupskip\@afterheading }% } }% @@ -1267,12 +1294,14 @@ \setglossarystyle{mcolindex}% \renewcommand*{\glossaryheader}{% \item\glstreenavigationfmt{\glsnavigation}% - \indexspace + \glstreegroupskip }% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \item\glstreegroupheaderfmt - {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}% - \nopagebreak\indexspace\nobreak\@afterheading + {\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip\@afterheading }% } }% @@ -1290,9 +1319,11 @@ \let\item\glstreeitem}% {\end{multicols}}% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \item\glstreegroupheaderfmt - {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}% - \nopagebreak\indexspace\nobreak\@afterheading + {\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip\@afterheading }% } }% @@ -1302,9 +1333,11 @@ {% \renewglossarystyle{mcoltreegroup}{% \setglossarystyle{mcoltree}% - \renewcommand{\glsgroupheading}[1]{\par - \noindent\glstreegroupheaderfmt{\glsgetgrouptitle{##1}}% - \nopagebreak\indexspace\nobreak\@afterheading + \renewcommand{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% + \par\noindent\glstreegroupheaderfmt{\glsxtr@grptitle}% + \glstreegroupskip\@afterheading }% } }% @@ -1315,12 +1348,15 @@ \renewglossarystyle{mcoltreehypergroup}{% \setglossarystyle{mcoltree}% \renewcommand*{\glossaryheader}{% - \par\noindent\glstreenavigationfmt{\glsnavigation}\par\indexspace + \par\noindent\glstreenavigationfmt{\glsnavigation}% + \glstreegroupskip }% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \par\noindent - \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}% - \nopagebreak\indexspace\nobreak\@afterheading + \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip\@afterheading }% } }% @@ -1339,9 +1375,11 @@ }% {\end{multicols}}% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \par\noindent - \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}% - \nopagebreak\indexspace\nobreak\@afterheading + \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip\@afterheading }% } }% @@ -1351,9 +1389,11 @@ {% \renewglossarystyle{mcoltreenonamegroup}{% \setglossarystyle{mcoltreenoname}% - \renewcommand{\glsgroupheading}[1]{\par - \noindent\glstreegroupheaderfmt{\glsgetgrouptitle{##1}}% - \nopagebreak\indexspace\nobreak\@afterheading + \renewcommand{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% + \par\noindent\glstreegroupheaderfmt{\glsxtr@grptitle}% + \glstreegroupskip\@afterheading }% } }% @@ -1364,11 +1404,15 @@ \renewglossarystyle{mcoltreenonamehypergroup}{% \setglossarystyle{mcoltreenoname}% \renewcommand*{\glossaryheader}{% - \par\noindent\glstreenavigationfmt{\glsnavigation}\par\indexspace}% + \par\noindent\glstreenavigationfmt{\glsnavigation}% + \glstreegroupskip + }% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \par\noindent - \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}% - \nopagebreak\indexspace\nobreak\@afterheading}% + \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip\@afterheading}% } }% {% @@ -1386,9 +1430,11 @@ }% {\end{multicols}}% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \par\noindent - \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}% - \nopagebreak\indexspace\nobreak\@afterheading}% + \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip\@afterheading}% } }% {% @@ -1412,12 +1458,15 @@ {% \renewglossarystyle{mcolalttreegroup}{% \setglossarystyle{mcolalttree}% - \renewcommand{\glsgroupheading}[1]{\par + \renewcommand{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% + \par \def\@gls@prevlevel{-1}% \hangindent0pt\relax \parindent0pt\relax - \glstreegroupheaderfmt{\glsgetgrouptitle{##1}}% - \nopagebreak\indexspace\nopagebreak + \glstreegroupheaderfmt{\glsxtr@grptitle}% + \glstreegroupskip }% } }% @@ -1433,15 +1482,17 @@ \hangindent0pt\relax \parindent0pt\relax \glstreenavigationfmt{\glsnavigation}% - \par\indexspace + \glstreegroupskip }% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \par \def\@gls@prevlevel{-1}% \hangindent0pt\relax \parindent0pt\relax - \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}% - \nopagebreak\indexspace\nopagebreak + \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip }% } }% @@ -1460,12 +1511,14 @@ }% {\par\end{multicols}}% \renewcommand*{\glsgroupheading}[1]{% + \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}% + \glstreePreHeader{##1}{\glsxtr@grptitle}% \par \def\@gls@prevlevel{-1}% \hangindent0pt\relax \parindent0pt\relax - \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}% - \nopagebreak\indexspace\nopagebreak + \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}% + \glstreegroupskip }% } }% 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 94e66a2f9f5..9246f55b5d7 100644 --- a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty +++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty @@ -39,7 +39,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra}[2019/03/31 v1.40 (NLCT)] +\ProvidesPackage{glossaries-extra}[2019/04/09 v1.41 (NLCT)] \RequirePackage{xkeyval} \RequirePackage{etoolbox} \@ifpackageloaded{glossaries} diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex.sty index 83858af8f5d..8b4851257aa 100644 --- a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex.sty +++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex.sty @@ -39,7 +39,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossary-bookindex}[2019/03/31 v1.40 (NLCT)] +\ProvidesPackage{glossary-bookindex}[2019/04/09 v1.41 (NLCT)] \RequirePackage{multicol} \RequirePackage{glossary-tree} \newcommand{\glsxtrbookindexcols}{2} @@ -194,9 +194,9 @@ \let\@glsxtr@bookindex@atendgroup\relax \let\@glsxtr@bookindex@subatendgroup\relax \let\@glsxtr@bookindex@subsubatendgroup\relax - \glsxtrgetgrouptitle{##1}{\thisgrptitle}% - \glsxtrbookindexbookmark{\thisgrptitle}{index.##1}% - \glsxtrbookindexformatheader{\thisgrptitle}% + \glsxtrgetgrouptitle{##1}{\glsxtrcurrentgrptitle}% + \glsxtrbookindexbookmark{\glsxtrcurrentgrptitle}{index.##1}% + \glsxtrbookindexformatheader{\glsxtrcurrentgrptitle}% \nopagebreak\indexspace\nopagebreak\@afterheading }% } diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-longextra.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-longextra.sty index cc7b6fa44e6..5724ca61515 100644 --- a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-longextra.sty +++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-longextra.sty @@ -39,7 +39,7 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossary-longextra}[2019/03/31 v1.40 (NLCT)] +\ProvidesPackage{glossary-longextra}[2019/04/09 v1.41 (NLCT)] \RequirePackage{glossary-longbooktabs} \newcommand{\glslongextraNameFmt}[1]{% \glsentryitem{#1}\glstarget{#1}{\glossentryname{#1}}% diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-topic.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-topic.sty index 76b6b62ef76..b73fe6dc74d 100644 --- a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-topic.sty +++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-topic.sty @@ -39,18 +39,36 @@ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossary-topic}[2019/03/31 v1.40 (NLCT)] +\ProvidesPackage{glossary-topic}[2019/04/09 v1.41 (NLCT)] \RequirePackage{multicol} \newglossarystyle{topic}{% - \renewenvironment{theglossary}{\glstopicInit}{\par}% + \renewenvironment{theglossary}% + {% + \glstopicInit + \def\glstopic@prechildren{}% + \def\glstopic@prevlevel{-1}% + }% + {\par}% \renewcommand*{\glossaryheader}{}% - \renewcommand*{\glsgroupheading}[1]{\glstopicGroupHeading{##1}}% + \renewcommand*{\glsgroupheading}[1]{% + \def\glstopic@prevlevel{-1}% + \glstopicGroupHeading{##1}% + }% \renewcommand{\glossentry}[2]{% \hangindent0pt\relax \parindent\glstopicParIndent\relax \glstopicItem{##1}{##2}% + \ifglshasdesc{##1}% + {% + \def\glstopic@prechildren{}% + }% + {% + \def\glstopic@prechildren{\nopagebreak}% + }% }% \renewcommand{\subglossentry}[3]{% + \ifnum\glstopic@prevlevel=0\relax\glstopic@prechildren\fi + \def\glstopic@prevlevel{##1}% \glstopicAssignSubIndent{##1}% \glstopicSubItem{##1}{##2}{##3}% }% @@ -83,6 +101,7 @@ \setlength\glstopicSubIndent{20pt} \newcommand{\glstopicInit}{} \newcommand*{\glstopicAssignSubIndent}[1]{% + \par \parindent\dimexpr#1\glstopicSubIndent-\glstopicSubIndent\relax \glstopicAssignWidest{#1}% \hangindent\dimexpr\parindent+\glstopicwidest\relax @@ -107,13 +126,13 @@ \newcommand*{\glstopicMidSkip}{\smallskip} \newcommand*{\glstopicPostSkip}{\smallskip} \newcommand*{\glstopicSubItem}[3]{% - \par \glstopicSubItemBox{#1}{\glstopicSubNameFont{\glsentryitem{#2}% \glstarget{#2}{\glossentryname{#2}}}% \glstopicSubItemSep }% \ifglshassymbol{#2}{(\glossentrysymbol{#2})\space}{}% - \glossentrydesc{#2}\glspostdescription + \ifglshasdesc{#2}% + {\glossentrydesc{#2}\glspostdescription\glstopicSubPreLocSep}{}% \glstopicSubLoc{#2}{#3}% } \newcommand*{\glstopicSubItemSep}{\quad} @@ -121,7 +140,8 @@ \ifdim\glstopicwidest>0pt\relax\makebox[\glstopicwidest][l]{#2}\else#2\fi } \newcommand*{\glstopicSubNameFont}[1]{\textbf{#1}} -\newcommand*{\glstopicSubLoc}[2]{\space#2} +\newcommand*{\glstopicSubPreLocSep}{\space} +\newcommand*{\glstopicSubLoc}[2]{#2} \newcommand*{\glstopicCols}{2} \newcommand*{\glstopicColsEnv}{multicols} \newglossarystyle{topicmcols}{% @@ -149,7 +169,16 @@ \parindent\glstopicParIndent\relax \glstopicItem{##1}{##2}% \ifnum\glstopicCols>1\relax - \edef\glstopic@prechildren{\noexpand\begin{\glstopicColsEnv}{\glstopicCols}}% + \ifglshasdesc{##1}% + {% + \edef\glstopic@prechildren{% + \noexpand\begin{\glstopicColsEnv}{\glstopicCols}}% + }% + {% + \edef\glstopic@prechildren{% + \noexpand\nopagebreak + \noexpand\begin{\glstopicColsEnv}{\glstopicCols}}% + }% \edef\glstopic@postchildren{\noexpand\end{\glstopicColsEnv}}% \fi }% -- cgit v1.2.3