From c720a4409b388fa706f3eb1ce275f76f7d49d996 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Fri, 20 Mar 2020 03:01:17 +0000 Subject: CTAN sync 202003200301 --- macros/latex/contrib/glossaries/CHANGES | 10 + macros/latex/contrib/glossaries/README.md | 2 +- .../latex/contrib/glossaries/glossaries-code.pdf | Bin 1228026 -> 1234267 bytes .../latex/contrib/glossaries/glossaries-user.html | 4876 ++++++++++---------- .../latex/contrib/glossaries/glossaries-user.pdf | Bin 1240202 -> 1242843 bytes .../latex/contrib/glossaries/glossaries-user.tex | 19 +- macros/latex/contrib/glossaries/glossaries.dtx | 156 +- macros/latex/contrib/glossaries/glossaries.ins | 2 +- .../latex/contrib/glossaries/glossariesbegin.html | 1131 ++--- .../latex/contrib/glossaries/glossariesbegin.pdf | Bin 186071 -> 190682 bytes .../latex/contrib/glossaries/glossariesbegin.tex | 122 +- .../contrib/glossaries/glossary2glossaries.html | 64 +- .../contrib/glossaries/glossary2glossaries.pdf | Bin 143127 -> 143122 bytes .../contrib/glossaries/glossary2glossaries.tex | 2 +- .../latex/contrib/glossaries/makeglossaries-lite.1 | 2 +- macros/latex/contrib/glossaries/makeglossaries.1 | 2 +- .../samples/glossary-lipsum-examples.pdf | Bin 248661 -> 248669 bytes .../contrib/glossaries/samples/minimalgls.pdf | Bin 49023 -> 49022 bytes .../contrib/glossaries/samples/mwe-acr-desc.pdf | Bin 37957 -> 37957 bytes .../latex/contrib/glossaries/samples/mwe-acr.pdf | Bin 33649 -> 33649 bytes .../latex/contrib/glossaries/samples/mwe-gls.pdf | Bin 29939 -> 29939 bytes .../contrib/glossaries/samples/sample-FnDesc.pdf | Bin 58812 -> 58811 bytes .../glossaries/samples/sample-chap-hyperfirst.pdf | Bin 54816 -> 54816 bytes .../contrib/glossaries/samples/sample-crossref.pdf | Bin 56716 -> 56716 bytes .../glossaries/samples/sample-custom-acronym.pdf | Bin 82178 -> 82179 bytes .../contrib/glossaries/samples/sample-dot-abbr.pdf | Bin 52796 -> 52797 bytes .../contrib/glossaries/samples/sample-dual.pdf | Bin 36455 -> 36452 bytes .../glossaries/samples/sample-entrycount.pdf | Bin 36834 -> 36834 bytes .../contrib/glossaries/samples/sample-entryfmt.pdf | Bin 34899 -> 34899 bytes .../glossaries/samples/sample-font-abbr.pdf | Bin 50703 -> 50704 bytes .../contrib/glossaries/samples/sample-ignored.pdf | Bin 31808 -> 31808 bytes .../contrib/glossaries/samples/sample-index.pdf | Bin 43373 -> 43377 bytes .../contrib/glossaries/samples/sample-inline.pdf | Bin 147456 -> 147218 bytes .../contrib/glossaries/samples/sample-langdict.pdf | Bin 38866 -> 38866 bytes .../contrib/glossaries/samples/sample-newkeys.pdf | Bin 39192 -> 39193 bytes .../glossaries/samples/sample-noidxapp-utf8.pdf | Bin 96316 -> 96319 bytes .../contrib/glossaries/samples/sample-noidxapp.pdf | Bin 67177 -> 67184 bytes .../glossaries/samples/sample-nomathhyper.pdf | Bin 41741 -> 41742 bytes .../glossaries/samples/sample-numberlist.pdf | Bin 42099 -> 42099 bytes .../contrib/glossaries/samples/sample-prefix.pdf | Bin 46274 -> 46274 bytes .../latex/contrib/glossaries/samples/sample-si.pdf | Bin 21710 -> 21710 bytes .../samples/sample-storage-abbr-desc.pdf | Bin 39892 -> 39894 bytes .../glossaries/samples/sample-storage-abbr.pdf | Bin 37659 -> 37660 bytes macros/latex/contrib/glossaries/samples/sample.pdf | Bin 120028 -> 119797 bytes .../contrib/glossaries/samples/sample4col.pdf | Bin 43320 -> 43324 bytes .../latex/contrib/glossaries/samples/sampleAcr.pdf | Bin 65501 -> 65501 bytes .../contrib/glossaries/samples/sampleAcrDesc.pdf | Bin 92747 -> 92746 bytes .../contrib/glossaries/samples/sampleCustomAcr.pdf | Bin 151108 -> 151105 bytes .../latex/contrib/glossaries/samples/sampleDB.pdf | Bin 47801 -> 47803 bytes .../contrib/glossaries/samples/sampleDesc.pdf | Bin 48390 -> 48390 bytes .../latex/contrib/glossaries/samples/sampleEq.pdf | Bin 156215 -> 156042 bytes .../contrib/glossaries/samples/sampleEqPg.pdf | Bin 169434 -> 169258 bytes .../contrib/glossaries/samples/sampleFnAcrDesc.pdf | Bin 148775 -> 148773 bytes .../latex/contrib/glossaries/samples/sampleNtn.pdf | Bin 98650 -> 98406 bytes .../contrib/glossaries/samples/samplePeople.pdf | Bin 47452 -> 47455 bytes .../latex/contrib/glossaries/samples/sampleSec.pdf | Bin 65662 -> 65663 bytes .../contrib/glossaries/samples/sampleSort.pdf | Bin 95162 -> 94924 bytes .../contrib/glossaries/samples/sampleaccsupp.pdf | Bin 81349 -> 81351 bytes .../contrib/glossaries/samples/sampleacronyms.pdf | Bin 37201 -> 37201 bytes .../contrib/glossaries/samples/sampletree.pdf | Bin 60185 -> 60191 bytes .../contrib/glossaries/samples/sampleutf8.pdf | Bin 44939 -> 44940 bytes .../latex/contrib/glossaries/samples/samplexdy.pdf | Bin 133467 -> 133114 bytes .../contrib/glossaries/samples/samplexdy2.pdf | Bin 68393 -> 68389 bytes .../contrib/glossaries/samples/samplexdy3.pdf | Bin 178519 -> 178189 bytes 64 files changed, 3188 insertions(+), 3200 deletions(-) (limited to 'macros/latex/contrib/glossaries') diff --git a/macros/latex/contrib/glossaries/CHANGES b/macros/latex/contrib/glossaries/CHANGES index 3149706a90..9b66723996 100644 --- a/macros/latex/contrib/glossaries/CHANGES +++ b/macros/latex/contrib/glossaries/CHANGES @@ -1,5 +1,15 @@ glossaries change log: +v4.46 (2020-03-19): + + * glossaries.sty: + + - added starred form \ifglossaryexists* to include ignored + glossaries in existence test. + + - added \@printgloss@checkexists to allow better integration with + \printunsrtglossary (provided by glossaries-extra.sty). + v4.45 (2020-02-13): * glossaries-accsupp.sty: diff --git a/macros/latex/contrib/glossaries/README.md b/macros/latex/contrib/glossaries/README.md index ccb9d83969..e50691e1c8 100644 --- a/macros/latex/contrib/glossaries/README.md +++ b/macros/latex/contrib/glossaries/README.md @@ -1,4 +1,4 @@ -# glossaries v4.45 (2020-02-13) +# glossaries v4.46 (2020-03-19) Author: Nicola Talbot ([contact](http://www.dickimaw-books.com/contact)) diff --git a/macros/latex/contrib/glossaries/glossaries-code.pdf b/macros/latex/contrib/glossaries/glossaries-code.pdf index b6168ca4e4..f96bdbddfc 100644 Binary files a/macros/latex/contrib/glossaries/glossaries-code.pdf and b/macros/latex/contrib/glossaries/glossaries-code.pdf differ diff --git a/macros/latex/contrib/glossaries/glossaries-user.html b/macros/latex/contrib/glossaries/glossaries-user.html index abe7f89e46..a71a00fa29 100644 --- a/macros/latex/contrib/glossaries/glossaries-user.html +++ b/macros/latex/contrib/glossaries/glossaries-user.html @@ -21,11 +21,11 @@ .cmr-17{font-size:170%;} .cmr-12{font-size:120%;} .cmr-8{font-size:80%;} -.cmtt-12{font-size:120%;font-family: monospace;} -.cmtt-12{font-family: monospace;} -.cmtt-12{font-family: monospace;} -.cmtt-12{font-family: monospace;} -.cmtt-12{font-family: monospace;} +.cmtt-12{font-size:120%;font-family: monospace,monospace;} +.cmtt-12{font-family: monospace,monospace;} +.cmtt-12{font-family: monospace,monospace;} +.cmtt-12{font-family: monospace,monospace;} +.cmtt-12{font-family: monospace,monospace;} .cmbx-10{ font-weight: bold;} .cmbx-10{ font-weight: bold;} .cmss-10{ font-family: sans-serif;} @@ -33,11 +33,11 @@ .cmss-10{ font-family: sans-serif;} .cmss-10{ font-family: sans-serif;} .cmss-10{ font-family: sans-serif;} -.cmtt-10{font-family: monospace;} -.cmtt-10{font-family: monospace;} -.cmtt-10{font-family: monospace;} -.cmtt-10{font-family: monospace;} -.cmtt-10{font-family: monospace;} +.cmtt-10{font-family: monospace,monospace;} +.cmtt-10{font-family: monospace,monospace;} +.cmtt-10{font-family: monospace,monospace;} +.cmtt-10{font-family: monospace,monospace;} +.cmtt-10{font-family: monospace,monospace;} .cmti-10{ font-style: italic;} .cmssbx-10{ font-family: sans-serif; font-weight: bold;} .cmssbx-10{ font-family: sans-serif; font-weight: bold;} @@ -45,16 +45,16 @@ .cmssbx-10{ font-family: sans-serif; font-weight: bold;} .cmssbx-10{ font-family: sans-serif; font-weight: bold;} .cmr-9{font-size:90%;} -.cmtt-8{font-size:80%;font-family: monospace;} -.cmtt-8{font-family: monospace;} -.cmtt-8{font-family: monospace;} -.cmtt-8{font-family: monospace;} -.cmtt-8{font-family: monospace;} -.cmtt-9{font-size:90%;font-family: monospace;} -.cmtt-9{font-family: monospace;} -.cmtt-9{font-family: monospace;} -.cmtt-9{font-family: monospace;} -.cmtt-9{font-family: monospace;} +.cmtt-8{font-size:80%;font-family: monospace,monospace;} +.cmtt-8{font-family: monospace,monospace;} +.cmtt-8{font-family: monospace,monospace;} +.cmtt-8{font-family: monospace,monospace;} +.cmtt-8{font-family: monospace,monospace;} +.cmtt-9{font-size:90%;font-family: monospace,monospace;} +.cmtt-9{font-family: monospace,monospace;} +.cmtt-9{font-family: monospace,monospace;} +.cmtt-9{font-family: monospace,monospace;} +.cmtt-9{font-family: monospace,monospace;} .cmss-9{font-size:90%; font-family: sans-serif;} .cmss-9{ font-family: sans-serif;} .cmss-9{ font-family: sans-serif;} @@ -71,9 +71,9 @@ .cmss-8{ font-family: sans-serif;} .cmbx-12{font-size:120%; font-weight: bold;} .cmbx-12{ font-weight: bold;} -.tctt-1000{font-family: monospace;} +.tctt-1000{font-family: monospace,monospace;} .cmti-8{font-size:80%; font-style: italic;} -.cmitt-10{font-family: monospace; font-style: italic;} +.cmitt-10{font-family: monospace,monospace; font-style: italic;} .cmssi-10{ font-family: sans-serif; font-style: oblique;} .cmssi-10{ font-family: sans-serif; font-style: oblique;} .cmssi-10{ font-family: sans-serif; font-style: oblique;} @@ -147,11 +147,6 @@ table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } .hline td, .cline td{ padding: 0; } .hline hr, .cline hr{border:none;border-top:1px solid black;} .tabbing-right {text-align:right;} -span.TEX {letter-spacing: -0.125em; } -span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;} -a span.TEX span.E {text-decoration: none; } -span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;} -span.LATEX span.TEX{ position:relative; left: -0.4em; } div.float, div.figure {margin-left: auto; margin-right: auto;} div.float img {text-align:center;} div.figure img {text-align:center;} @@ -1310,7 +1305,7 @@ span#textcolor3{color:#008080} >

User Manual for glossaries.sty v4.45 +class="cmr-17">User Manual for glossaries.sty v4.46

dickimaw-books.com/contact

2020-02-13

+class="cmr-12">2020-03-19

@@ -1342,14 +1337,13 @@ class="cmbx-10">Abstract

The glossaries package provides a means to define terms or abbreviations or symbols that can be referenced within your document. Sorted lists with collated locations can be generated either using TEX or using a -supplementary locations can be generated either using TeX or using a supplementary +indexing application. Sample documents are provided with the glossaries package. These are -listed in glossaries package. These are listed in §19 Sample Documents. +href="#sec:samples">Sample +Documents.

@@ -1412,16 +1406,11 @@ class="cmss-10">datatool bundle) and amsgen. These packages are all available in the latest TEX Live and MikTEX distributions. If any of them -are missing, please update your TEX distribution using your update manager. For help on this + id="dx1-13">. These packages are all available in the latest TeX Live and MikTeX distributions. If any of them +are missing, please update your TeX distribution using your update manager. For help on this see, for example, How do I update my TEX distribution? or (for Linux users) Updating TEX on +href="http://tex.stackexchange.com/questions/55437/how-do-i-update-my-tex-distribution" >How do I update my TeX distribution? or (for Linux users) Updating TeX on Linux.

Note that occasionally you may find that certain packages need to be loaded after packages that are required @@ -1481,7 +1470,7 @@ href="glossaries-code.pdf" class="url" >glossaries-code.pdf

Advanced users wishing to know more about the inner workings of all the packages provided in the glossaries bundle should read “Documented Code for glossaries v4.45”. +class="cmss-10">glossaries bundle should read “Documented Code for glossaries v4.46”.
INSTALL
id="glo:indexingapp">Indexing application

An application (piece of software) separate from TEX/LATEX that collates and sorts information +class="newline" />An application (piece of software) separate from TeX/LaTeX that collates and sorts information that has an associated page reference. Generally the information is an index entry but in this case the information is a glossary entry. There are two main indexing applications that are used with - TEX: makeindex and makeindex provided with the glossaries - package. TEX distributions on Windows convert the original makeglossaries script into an executable makeglossaries.exe for convenience (but Perl is still required).
makeglossaries script. If you have Perl installed, use the Perl script instead. This script is actually distributed with the file name makeglossaries-lite.lua, but TEX Live (on Unix-like systems) creates a symbolic link called +class="cmtt-10">makeglossaries-lite.lua, but TeX Live (on Unix-like systems) creates a symbolic link called makeglossaries-lite (without the .lua extension) to the actual class="cmbx-10">Small caps

Small capitals. The LATEX kernel provides Small capitals. The LaTeX kernel provides \textsc{
Standard LATEXStandard LaTeX Extended Latin Character

An extended Latin character that can be created by a core LATEX command, such as that can be created by a core LaTeX command, such as \o (ø) or \’e (é). That is, the character can be produced without the need to load a particular package.

______________________________________________________________________________________

* Strips standard LATEX accents (that is, accents generated by core LATEXStrips standard LaTeX accents (that is, accents generated by core LaTeX commands) so, for example, \AA is treated +class="cmr-8">is treated the the same as A. +class="cmr-8">same as A.

Only with the hybrid method provided with option automatically switches this on.) id="x1-5017r1">

🔗Option 1 (TEX)

+ id="option1">Option 1 (TeX)

Example Document: @@ -3293,8 +3256,7 @@ class="cmtt-10">=false package option (the default for Option 1) then the standard LATEX accent commands will be ignored, so if an entry’s name is set to standard LaTeX accent commands will be ignored, so if an entry’s name is set to {\’e}lite then the sort value will default to elite if Displaying a glossary

  • Run LATEX twice on your document. (As you would do to make a table of contents appear.) For - example, click twice on the “typeset” or “build” or “PDFLATEX” button in your editor.
  • + class="enumerate" id="x1-6025x3">Run LaTeX twice on your document. (As you would do to make a table of contents appear.) For example, + click twice on the “typeset” or “build” or “PDFLaTeX” button in your editor.

    @@ -3462,16 +3422,14 @@ href="#glo:cli">CLI application called makeindex to sort the entries. This application comes with all -modern TEX distributions, but it’s hard-coded for the non-extended Latin alphabet. It can’t correctly sort accent commands (such as \’ or \c) and fails with UTF-8 characters, especially for any sort values that start with a UTF-8 character (as it separates the octets resulting in an invalid file encoding). This process involves -making LATEX write the glossary information to a temporary file which makeindex reads. Then Displaying a glossary

  • Run LATEX on your document. This creates files with the extensions Run LaTeX on your document. This creates files with the extensions glo and ist (for example, if your - LATEX document is called myDoc.tex, then you’ll have two extra files called myDoc.glo and .gls. If you have access to a terminal or a command promp

    (Replace myDoc with the base name of your LATEX document file. Avoid spaces in the file name if +class="cmtt-10">myDoc with the base name of your LaTeX document file. Avoid spaces in the file name if possible. The $ symbol indicates the command prompt and should be omitted.)

    The file extensions vary according to the glossary -l
  • 🔗 Once you have successfully completed the previous step, you can now run LATEX on your document + id="makeindex.relatex"> Once you have successfully completed the previous step, you can now run LaTeX on your document again.
  • You’ll need to repeat the last step if you have used the toc

    The xindy application comes with both TEX Live and MiKTEX, but since application comes with both TeX Live and MiKTeX, but since xindy is a Perl script, you will also need to install Perl, if you don’t already have it. In a similar way to Option 2, this option involves making -LATEX write the glossary information to a temporary file which xindy reads. Then Defining Glossary Entries).

  • Run LATEX on your document. This creates files with the extensions Run LaTeX on your document. This creates files with the extensions glo and xdy (for example, if your - LATEX document is called myDoc.tex, then you’ll have two extra files called myDoc.glo and myDoc.xdy). @@ -3964,8 +3913,7 @@ class="cmtt-10">.gls. You also need to set the language name and input en

    (Replace myDoc with the base name of your LATEX document file. Avoid spaces in the file name. If +class="cmtt-10">myDoc with the base name of your LaTeX document file. Avoid spaces in the file name. If necessary, also replace english with the name of your language and utf8 with your input encoding, for @@ -4090,8 +4038,7 @@ class="cmtt-10">xindy explicitly.

  • Once you have successfully completed the previous step, you can now run LATEX on your document + class="enumerate" id="x1-8055x5">Once you have successfully completed the previous step, you can now run LaTeX on your document again. As with makeindexα (in that order). Note that the alpha entry has been included even though it wasn’t referenced in the document. -

    This just requires a single LATEX call: +

    This just requires a single LaTeX call:

    
        
    pdflatex myDoc
    @@ -4737,9 +4683,8 @@ class="cmtt-10">=none
    package option (as in Option 5) and then define the terms in the -preamble. No external tool is required. Just run LATEX as normal. (Twice to ensure that the table of contents -is up to date.) +preamble. No external tool is required. Just run LaTeX as normal. (Twice to ensure that the table of contents is +up to date.)

    
        
    pdflatex myDoc
    pdflatex myDoc @@ -4859,8 +4804,7 @@ latter is necessary with bib2gls if the symbol needs to go in a section title as the entries aren’t defined on the -first LATEX run. +first LaTeX run.

    In normal document text, \glsentrysymbol will silently do nothing if the entry hasn’t been defined, but when used in a section heading it will expand to an undefined internal command when written to the {#1}{text}} See the glossaries-extra user manual for further details about this style. -

    Note that on the first LATEX run none of the entries will be defined. Once they are defined, the page +

    Note that on the first LaTeX run none of the entries will be defined. Once they are defined, the page numbers may shift due to the increased amount of document text. You may therefore need to repeat the document build to ensure the page numbers are correct.

    If there are extra terms that need to be included in the index that don’t have a description, you can define @@ -5212,8 +5155,7 @@ href="#top">Top

    In addition to the sample files described above, glossaries also provides some files containing lorum -ipsum dummy entries. These are provided for testing purposes and are on TEX’s path (in +ipsum dummy entries. These are provided for testing purposes and are on TeX’s path (in tex/latex/glossaries/test-entries) so they can be included via \inputuser1 key to store the name of an image file. (The images are provided by the mwe package and should be on TEX’s path.) One entry doesn’t have an + id="dx1-12010"> package and should be on TeX’s path.) One entry doesn’t have an associated image to help test for a missing key. The descriptions are long to allow for tests with the text wrapping around the image. For example: @@ -5467,8 +5408,7 @@ class="cmtt-10">user1 key to store a citation key (or comma-separated list of citation keys). The citations are defined in xampl.bib, which should be available on all modern - TEX distributions. One entry doesn’t have an associated citation to help test for a missing key. For + TeX distributions. One entry doesn’t have an associated citation to help test for a missing key. For example: @@ -5537,8 +5477,7 @@ href="#top">Top

    The glossaries package uses the tracklang package to determine the document languages. Unfortunately, because -there isn’t a standard language identification framework provided with LATEX, tracklang isn’t always able to detect the selected languages either as a result of using an unknown interface or where the interface doesn’t provide a way of detecting the language. See non-Latin character, such as é, looks like a plain character in your tex file, with -standard LATEX it’s actually a macro and can therefore cause expansion problems. You may need to switch -off the field expansions with \glsnoexpandfields. This issue doesn’t occur with XeLaTeX or LuaLATEX. +standard LaTeX it’s actually a macro and can therefore cause expansion problems. You may need to switch off +the field expansions with \glsnoexpandfields. This issue doesn’t occur with XeLaTeX or LuaLaTeX.

    With

    (Make sure that myinstitute-glossaries-dictionary-English.dict can be found by TEX.) If you want to +class="cmtt-10">myinstitute-glossaries-dictionary-English.dict can be found by TeX.) If you want to share your custom dictionary, you can upload it to CTAN.

    If you are using glossaries-irish-noenc.ldf (no encoding information) and class="cmtt-10">glossaries-irish-utf8.ldf (UTF-8).

    These both define \glossariescaptionsirish but the *-noenc.ldf uses LATEX accent commands: +class="cmtt-10">*-noenc.ldf uses LaTeX accent commands:

    @@ -6557,8 +6492,7 @@ use the sort key if the name contains any LATEX commands (except if you’re using contains any LaTeX commands (except if you’re using bib2gls). @@ -6576,8 +6510,7 @@ class="cmss-10">automake
    package option, described in §2.5 Sorting Options, but you will need -TEX’s shell escape enabled. See also Incorporating makeglossaries or makeglossaries-lite or bib2gls into the document build.

    In order to generate a sorted glossary with compact indexing application as an intermediate step (unless you have chosen Option 1, which uses TEX to do the +href="#option1">Option 1, which uses TeX to do the sorting or Option 5, which doesn’t perform any sorting). It is this application that creates the file containing the code required to typeset the glossary. If this step is omitted, the glossaries will not appear in your document. The two indexing applications that are most commonly used with -LATEX are makeindex and \makeglossaries§1.4.1 Using the makeglossaries Perl Script for further details. Perl is stable, cross-platform, open source -software that is used by a number of TEX-related applications (including xindy and latexmk). -Most Unix-like operating systems come with a Perl interpreter. TEX Live also comes with a Perl -interpreter. MiKTEX doesn’t come with a Perl interpreter so if you are a Windows MiKTEX user +Most Unix-like operating systems come with a Perl interpreter. TeX Live also comes with a Perl +interpreter. MiKTeX doesn’t come with a Perl interpreter so if you are a Windows MiKTeX user you will need to install Perl if you want to use makeglossariestrimmed-down alternative to the makeglossaries Perl script. It doesn’t have some of the options that the -Perl version has and it doesn’t attempt to diagnose any problems, but since modern TEX distributions come -with LuaTEX (and therefore have a Lua interpreter) you don’t need to install anything else in order to +Perl version has and it doesn’t attempt to diagnose any problems, but since modern TeX distributions come +with LuaTeX (and therefore have a Lua interpreter) you don’t need to install anything else in order to use makeglossaries-litebib2gls

    Likewise, an additional makeglossaries and LATEX run may be required if the document pages shift with + id="dx1-16076"> and LaTeX run may be required if the document pages shift with re-runs. For example, if the page numbering is not reset after the table of contents, the insertion of the table of -contents on the second LATEX run may push glossary entries across page boundaries, which means that the +contents on the second LaTeX run may push glossary entries across page boundaries, which means that the number lists in the glossary may need updating. @@ -7081,8 +7004,7 @@ class="cmtt-10">makeglossariesperl makeglossaries myDoc


    -

    Windows users: TEX Live on Windows has its own internal Perl interpreter and provides +

    Windows users: TeX Live on Windows has its own internal Perl interpreter and provides makeglossaries.exe as a convenient wrapper for the Top

    makeglossaries Perl script requires a Lua interpreter, which should already be -available if you have a modern TEX distribution that includes LuaTEX. Lua is a light-weight, cross-platform +available if you have a modern TeX distribution that includes LuaTeX. Lua is a light-weight, cross-platform scripting language, but because it’s light-weight it doesn’t have the full-functionality of heavy-weight scripting languages, such as Perl. The makeglossaries-d option.) -

    Note that TEX Live on Unix-like systems creates a symbolic link called makeglossaries-lite (without -the

    Note that TeX Live on Unix-like systems creates a symbolic link called makeglossaries-lite (without the +lua extension) to the actual makeglossaries-lite.lua script, so you may not need to supply the -extension.
    +class="cmtt-10">makeglossaries-lite.lua
    script, so you may not need to supply the extension. +

    The xindy explicitly (Option 3)

    Xindy comes with TEX Live. It has also been added to MikTEX, but if you don’t have it installed, see comes with TeX Live. It has also been added to MikTeX, but if you don’t have it installed, see How to use Xindy with MikTeX on TEX on StackExchange. +href="http://www.stackexchange.com/" >TeX on StackExchange.

    If you want to use xindyalsoindex

    Remember that with bib2gls, the entries will never be defined on the first LATEX call (because their + id="dx1-24011">, the entries will never be defined on the first LaTeX call (because their definitions are contained in the glstex file created by

    This option can significantly slow document compilation and may cause the indexing to fail. Page numbers in the number list will be incorrect on page boundaries due to TEX’s asynchronous output routine. As an + id="dx1-31006"> will be incorrect on page boundaries due to TeX’s asynchronous output routine. As an alternative, you can use the scrwfile package (part of the KOMA-Script bundle) and not use this option. @@ -8284,8 +8198,7 @@ class="cmtt-10">bib2gls

    If you want to use TEX’s

    If you want to use TeX’s \write18 mechanism to call toc={boolean} -

    Add the glossaries to the table of contents. Note that an extra LATEX run is required with this option. +

    Add the glossaries to the table of contents. Note that an extra LaTeX run is required with this option. Alternatively, you can switch this function on and off using


    \GlsEntryCounterLabelPrefix

    (which defaults to glsentry-).

    The sort value (#) must be sanitized before writing it to the glossary file, otherwise LATEX will try to -interpret it as a parameter reference. If, on the other hand, you want the sort value expanded, you need to -switch off the sanitization. For example, suppose you do: +class="cmtt-10">#) must be sanitized before writing it to the glossary file, otherwise LaTeX will try to interpret +it as a parameter reference. If, on the other hand, you want the sort value expanded, you need to switch off the +sanitization. For example, suppose you do:

    @@ -10622,8 +10531,7 @@ class="cmtt-10">makeindex
    or xindy using TEX’s using TeX’s \write18 mechanism at the end of the document. The option automake=true, the associated files are created at the end of the document ready for -the next LATEX run. Since there is a possibility of commands such as , the associated files are created at the end of the document ready +for the next LaTeX run. Since there is a possibility of commands such as \gls occurring on the last page of the document, it’s not possible to use \immediate to close the associated file or with @@ -10665,15 +10572,13 @@ instead. class="cmss-10">automake=immediate, you will get a warning on the first LATEX run as the associated glossary files + id="dx1-79011">, you will get a warning on the first LaTeX run as the associated glossary files don’t exist yet. -

    Since this mechanism can be a security risk, some TEX distributions disable it completely, in which case -this option won’t have an effect. (If this option doesn’t appear to work, search the log file for “runsystem” and -see if it is followed by “enabled” or “disabled”.) +

    Since this mechanism can be a security risk, some TeX distributions disable it completely, in which case this +option won’t have an effect. (If this option doesn’t appear to work, search the log file for “runsystem” and see if +it is followed by “enabled” or “disabled”.)

    Some distributions allow \write18 in a restricted mode. This mode has a limited number of trusted applications, which usually includes \babelmakeglossaries script applies mappings to assist -you.) Note that you still need at least two LATEX runs to ensure the document is up-to-date with this +you.) Note that you still need at least two LaTeX runs to ensure the document is up-to-date with this setting.

    Since this package option attempts to run the indexing application on every LATEX run, its use should be +href="#glo:indexingapp">indexing application on every LaTeX run, its use should be considered a last resort for those who can’t work out how to incorporate the indexing application into their document build. The default value for this option is automakevalue}

    As a legacy from the precursor glossary package, the standard glossary commands provided by the -LATEX kernel ( package, the standard glossary commands provided by the LaTeX kernel +(\makeglossary and \glossary) are redefined in terms of the glossaries package’s commands. -However, they were never documented in this user manual, and the conversion guide (“Upgrading from the -glossary package to the glossaries package”) explicitly discourages their use. +class="cmss-10">glossaries package’s commands. However, they +were never documented in this user manual, and the conversion guide (“Upgrading from the glossary package to +the glossaries package”) explicitly discourages their use.

    The use of those kernel commands (instead of the appropriate commands documented in this user guide) are deprecated, and you will now get a warning if you try using them.

    In the event that you require the original form of these kernel commands, for example, if you need to use the @@ -11759,8 +11661,7 @@ class="cmss-10">true (redefine with warnings, default), false (restore previous definitions) or nowarn (redefine without warnings, not recommended). -

    The only glossary-related commands provided by the LATEX kernel are

    The only glossary-related commands provided by the LaTeX kernel are \makeglossary and \glossary. Other packages or classes may provide additional glossary-related commands or environments that conflict with @@ -12143,13 +12044,12 @@ name. href="#glo:exlatinchar">extended Latin character or other non-Latin character, such as é or ß, looks + id="dx1-112008">, such as é or -like a plain character in your .tex file, it’s actually a macro (an active character) and therefore -can’t be used in the label. (This applies to LATEX rather than XeLaTeX.) Also be careful of +ß, looks like a plain character in your .tex file, it’s actually a macro (an active character) and +therefore can’t be used in the label. (This applies to LaTeX rather than XeLaTeX.) Also be careful of babel’s options that change certain punctuation characters (such as bib2gls gallery: sorting.

    Option 1 by default strips the standard LATEX accents (that is, accents generated by core - LATEX commands) from the standard LaTeX accents (that is, accents generated by core + LaTeX commands) from the name key when it sets the sortnon-Latin characters correctly. Option 1 discards accents from standard LATEX extended Latin characterstandard LaTeX extended Latin characters unless you use the sanitizesort

    There are drawbacks to this mechanism: if you modify an entry definition, you need a second run to see the effect of your modification; this method requires an extra \newwrite, which may exceed TEX’s maximum +class="cmtt-10">\newwrite, which may exceed TeX’s maximum allocation; unexpected expansion issues could occur; the see key isn’t stored, which means it can’t be added to @@ -14293,9 +14189,8 @@ class="cmtt-10">makeindexxindy to hierarchically -sort and collate the entries since they are readily available with most modern TEX distributions. Since these -are both designed as indexing applications they both require that terms either have a valid location or a cross-reference. Even if you use nonumberlistTop

    Locations

    Neither Option 1 nor Option 4 care about the location syntax as long as it’s valid LATEX code (and doesn’t +href="#option4">Option 4 care about the location syntax as long as it’s valid LaTeX code (and doesn’t contain fragile commands). In both cases, the indexing is performed by writing a line to the aux file. The write -operation is deferred to avoid the problems associated with TEX’s asynchronous output routine. (See, for +operation is deferred to avoid the problems associated with TeX’s asynchronous output routine. (See, for example, Finding if you’re on an odd or an even page for more details on this issue.) Unfortunately Options pdflatex rather than latex to compile your -document, if possible. The DVI format of LATEX has limitations with the hyperlinks that can cause a problem +document, if possible. The DVI format of LaTeX has limitations with the hyperlinks that can cause a problem when used with the glossaries package. Firstly, the DVI format can’t break a hyperlink across a line -whereas PDFLATEX can. This means that long glossary entries (for example, the full form of an +whereas PDFLaTeX can. This means that long glossary entries (for example, the full form of an acronym) won’t be able to break across a line with the DVI format. Secondly, the DVI format doesn’t correctly size hyperlinks in subscripts or superscripts. This means that if you define a term that may be used as a subscript or superscript, if you use the DVI format, it won’t come out the correct @@ -15926,8 +15817,7 @@ class="cmtt-10">\protect it will be

    (Note the use of the sort key in the above examples.) -

    There are hundreds of LATEX packages that altogether define thousands of commands with +

    There are hundreds of LaTeX packages that altogether define thousands of commands with various syntax and it’s impossible for mfirstuc to take them all into account. The above rules are @@ -16086,8 +15976,7 @@ define a helper command where the first argument is the text. For example:  
     sort={sample phrase},  
     description={an example}} -

    In fact, since the whole design ethos of LATEX is the separation of content and style, it’s better to use a +

    In fact, since the whole design ethos of LaTeX is the separation of content and style, it’s better to use a semantic command. For example: @@ -18621,8 +18510,7 @@ class="cmtt-10">makeindexxindy) -followed by one or two runs of LATEX is required. +followed by one or two runs of LaTeX is required.

    The first command, \glsentrynumberlist, simply displays the number list as is. The second command, \null ensures that all indexing information is written before the final page is shipped out. Once the external files are present \null -will no longer be used. This can cause a spurious blank page on the first LATEX run before the glossary files +will no longer be used. This can cause a spurious blank page on the first LaTeX run before the glossary files have been created. Once these files are present, \null will no longer be used and so shouldn’t cause interference for the final document. @@ -18750,16 +18637,14 @@ href="#glo:glossaries-extra">glossaries-extra manual for further details.

    -

    If the glossary still does not appear after you re-LATEX your document, check the

    If the glossary still does not appear after you re-LaTeX your document, check the makeindex/xindy log -files to see if there is a problem. With Option 1, you just need two LATEX runs to make the glossaries appear, -but you may need further runs to make the log files +to see if there is a problem. With Option 1, you just need two LaTeX runs to make the glossaries appear, but +you may need further runs to make the number lists up-to-date.

    An individual glossary can be displayed using: @@ -19337,8 +19222,7 @@ clarity.

    If you want greater control over the xindy style file than is available through the LATEX commands + id="dx1-142015"> style file than is available through the LaTeX commands provided by the glossaries package, you will need to edit the xindyname⟩ must not contain any active characters. It’s generally best to stick with just characters that have category code 11 (typically the non-extended Latin characters for standard LATEX). + id="dx1-146006">s for standard LaTeX).

    There is also a starred version (new to v4.08): @@ -22021,8 +21904,7 @@ class="cmtt-10">\glslabeltok, \glslongtok and \glsshorttok. As with all -TEX registers, you can access their values by preceding the register with \the. For example, the long-shortsample-font-abbr.tex.

    Some writers and publishing houses have started to drop full stops (periods) from upper case initials but may still retain them for lower case abbreviations, while others may still use them for both upper and lower case. This can cause complications. Chapter 12 of The TEXbook discusses the spacing between words but, -briefly, the default behaviour of TEX is to assume that an upper case character followed by a full stop and +class="cmti-10">The TeXbook discusses the spacing between words but, +briefly, the default behaviour of TeX is to assume that an upper case character followed by a full stop and space is an abbreviation, so the space is the default inter-word space whereas a lower case character followed by a full stop and space is a word occurring at the end of a sentence. In the event that this isn’t true, you need to make a manual adjustment using I was awarded a B.Sc. and a Ph.D. (From the same place.)
    -The lower case letter at the end of “B.Sc.” is confusing TEX into thinking that the full stop after it marks the -end of the sentence. Whereas the upper case letter at the end of “Ph.D.” has confused TEX into thinking that +The lower case letter at the end of “B.Sc.” is confusing TeX into thinking that the full stop after it marks the +end of the sentence. Whereas the upper case letter at the end of “Ph.D.” has confused TeX into thinking that the following full stop is just part of the abbreviation. These can be corrected: @@ -23056,8 +22930,7 @@ class="cmtt-10">\gls
    \Gls
    to change the settings. -

    Recall that, in general, LATEX ignores spaces following command names consisting of alphabetical +

    Recall that, in general, LaTeX ignores spaces following command names consisting of alphabetical characters. This is also true for \label⟩ unless you additionally load the \glsenableentrycount.
     
    Number of times apple has been used: \glsentrycurrcount{apple}.  
    \end{document}
    -

    On the first LATEX run,

    On the first LaTeX run, \glsentryprevcount{apple} produces 0. At the end of the document, \glsentrycurrcount{apple} produces 4. This is because the only commands that have incremented the entry @@ -23496,8 +23368,7 @@ class="cmtt-10">\glsentrytext and \glslink, don’t use \glsunset so they don’t increment the entry count. On the next LATEX run, next LaTeX run, \glsentryprevcount{apple} now produces 4 as that was the value of the currcount field for the \glstext-like commands) then the entry won’t appear in the glossary.

    Remember that since these commands use \glsentryprevcount you need to run LATEX twice to ensure +class="cmtt-10">\glsentryprevcount you need to run LaTeX twice to ensure they work correctly. The document build order is now (at least): (pdf)latex, (pdf)latex, listhypergroup style is like listgroup but has a navigation line at the start of the glossary - with links to each group that is present in the glossary. This requires an additional run through - LATEX to ensure the group information is up to date. In the navigation line, each group is separated + with links to each group that is present in the glossary. This requires an additional run through LaTeX to + ensure the group information is up to date. In the navigation line, each group is separated by


    glossaries-extra manual.

    Top

    16.1 Loops

    -

    Some of the commands described here take a comma-separated list as an argument. As with LATEX’s

    Some of the commands described here take a comma-separated list as an argument. As with LaTeX’s \@for command, make sure your list doesn’t have any unwanted spaces in it as they don’t get stripped. (Discussed in more detail in §2.7.2 of “LATEX for Administrative Work”.)
    +href="http://www.dickimaw-books.com/latex/admin/html/docsvlist.shtml#spacesinlists" >§2.7.2 of “LaTeX for Administrative Work”.)


    false part

    This checks if the glossary given by ⟨label⟩ exists. If it does ⟨true part⟩ is performed, otherwise ⟨false +class="cmti-10">false part⟩. +The unstarred form will do ⟨false part⟩ for ignored glossaries. As from v4.46, there is now a starred +form of this command which will also consider ignored glossaries as existing. For example, given: +

    +
    part⟩. -


    \newignoredglossary{common} +
    +
    then + + +
    +\ifglossaryexists{common}{true}{false} + 
    \ifglossaryexists*{common}{true}{false} +
    +

    will produce “false true”. +


    \ifglsentryexistslabel⟩⟨true part⟩⟨false part

    -

    +

    This checks if the glossary entry given by ⟨label⟩ exists. If it does ⟨true part⟩ is performed, otherwise ⟨false part⟩. class="cmtt-10">\ifglsentryexists will always be true after the containing glossary has been displayed via \printglossary or or \printglossaries even if the entry is explicitly defined later in the document. This is + id="dx1-169005"> even if the entry is explicitly defined later in the document. This is because the entry has to be defined before it can be displayed in the glossary, see §4.8.1 Technical Issues for further details.) -



    \glsdoifexists{label}{code}

    -

    +

    Does ⟨code⟩ if the entry given by ⟨label⟩ exists. If it doesn’t exist, an error is generated. (This command uses \ifglsentryexists.) -



    \glsdoifnoexists{label}{code}

    -

    +

    Does the reverse of \glsdoifexists. (This command uses \ifglsentryexists.) -



    \glsdoifexistsorwarn{label}{code}

    -

    +

    As \glsdoifexists but issues a warning rather than an error if the entry doesn’t exist. -



    \glsdoifexistsordo{label}{code}{else code}

    -

    +

    Does ⟨code⟩ if the entry given by ⟨label⟩ exists otherwise generate an error and do ⟨else code⟩. -



    \glsdoifnoexistsordo{label}{code}{else code}

    -

    +

    Does ⟨code⟩ if the entry given by ⟨label⟩ doesn’t exist otherwise generate an error and do ⟨else code⟩. -



    \ifglsusedlabel⟩⟨true part⟩⟨false part

    -

    +

    See §14 Unsetting and Resetting Entry Flags. -



    \ifglshaschildrenlabel⟩⟨true part⟩⟨false part

    -

    +

    This checks if the glossary entry given by ⟨label⟩ has any sub-entries. If it does, ⟨true part⟩ is performed, otherwise ⟨false part⟩. -



    \ifglshasparentlabel⟩⟨true part⟩⟨false part

    -

    +

    This checks if the glossary entry given by ⟨label⟩ has a parent entry. If it does, ⟨true part⟩ is performed, otherwise ⟨false part⟩. -



    \ifglshassymbol{label}{true part}{false part}

    -

    +

    This checks if the glossary entry given by ⟨label⟩ has had the symbol field set. If it has, ⟨ field set. If it has, ⟨true part⟩ is performed, otherwise ⟨false part⟩. -



    \ifglshaslong{label}{true part}{false part}

    -

    + + +

    This checks if the glossary entry given by ⟨label⟩ has had the long field set. If it has, ⟨ field set. If it has, ⟨true part⟩ is performed, otherwise ⟨false part⟩. This should be true for any entry that has been defined via \newacronym. There is no + id="dx1-169018">. There is no check for the existence of ⟨label⟩. - - -



    \ifglshasshort{label}{true part}{false part}

    -

    +

    This checks if the glossary entry given by ⟨label⟩ has had the short field set. If it has, ⟨ field set. If it has, ⟨true part⟩ is performed, otherwise ⟨false part⟩. This should be true for any entry that has been defined via \newacronym. There is no + id="dx1-169021">. There is no check for the existence of ⟨label⟩. -



    \ifglshasdesc{label}{true part}{false part}

    -

    +

    This checks if the description field is non-empty for the entry given by ⟨ field is non-empty for the entry given by ⟨label⟩. If it has, ⟨true part⟩ is performed, otherwise ⟨false part⟩. Compare with: -



    \ifglsdescsuppressed{label}{true part}{false part}

    -

    +

    This checks if the description field has been set to just field has been set to just \nopostdesc for the entry given by ⟨ for the entry given by ⟨label⟩. If it has, ⟨true part⟩ is performed, otherwise ⟨false part⟩. There is no check for the existence of ⟨label⟩. -

    For all other fields you can use: -


    For all other fields you can use: +


    \ifglshasfield{field}{true part}{false part}

    -

    +

    This tests the value of the field given by ⟨field⟩ for the entry identified by ⟨label⟩. If the value is empty true part⟩ is performed. If the field supplied is class="cmti-10">false part⟩ is performed and a warning is issued. Unlike the above commands, such as \ifglshasshort, an error occurs if the entry is undefined. -

    As from version 4.23, within ⟨

    As from version 4.23, within ⟨true part⟩ you can use -



    \glscurrentfieldvalue

    -

    +

    to access the field value. This command is initially defined to nothing but has no relevance outside ⟨true part⟩. This saves re-accessing the field if the test is true. For example:

    -
    +
    \ifglshasfield{useri}{sample}{, \glscurrentfieldvalue}{}
    -

    will insert a comma, space and the field value if the

    will insert a comma, space and the field value if the user1 key has been set for the entry whose label is + id="dx1-169029"> key has been set for the entry whose label is sample. -

    You can test if the value of the field is equal to a given string using: -


    You can test if the value of the field is equal to a given string using: +


    \ifglsfieldeq{label}{true}{false}

    -

    +

    In this case the ⟨field⟩ must be the field name not the key (see table 4.1). If the field isn’t recognised, an error will occur. This command internally uses etoolbox’s ’s \ifcsstring to perform the comparison. The string is not expanded during the test. -

    The result may vary depending on whether or not expansion is on for the given field (when the entry was +

    The result may vary depending on whether or not expansion is on for the given field (when the entry was defined). For example:

    -
    +
    \documentclass{article}  
    \usepackage{glossaries}  
    \newcommand*{\foo}{FOO} @@ -27059,25 +26942,25 @@ defined). For example:  
    \ifglsfieldeq{sample2}{useri}{FOO}{TRUE}{FALSE}.  
    \end{document}
    -

    This will produce “TRUE” in both cases since expansion is on, so

    This will produce “TRUE” in both cases since expansion is on, so \foo was expanded to “FOO” when sample2 was defined. If the tests are changed to:

    -
    +
    \ifglsfieldeq{sample1}{useri}{\foo}{TRUE}{FALSE}.  
    \ifglsfieldeq{sample2}{useri}{\foo}{TRUE}{FALSE}.
    -

    then this will produce “FALSE” in both cases. Now suppose expansion is switched off for the

    then this will produce “FALSE” in both cases. Now suppose expansion is switched off for the user1 + id="dx1-169032"> key:

    -
    +
    \documentclass{article}  
    \usepackage{glossaries}  
    \newcommand*{\foo}{FOO} @@ -27091,14 +26974,14 @@ key:  
    \ifglsfieldeq{sample2}{useri}{FOO}{TRUE}{FALSE}.  
    \end{document}
    -

    This now produces “TRUE” for the first case (comparing “FOO” with “FOO”) and “FALSE” for the second +

    This now produces “TRUE” for the first case (comparing “FOO” with “FOO”) and “FALSE” for the second case (comparing “\foo” with “FOO”). -

    The reverse happens in the following: +

    The reverse happens in the following:

    -
    +
    \documentclass{article}  
    \usepackage{glossaries}  
    \newcommand*{\foo}{FOO} @@ -27112,14 +26995,14 @@ class="cmtt-10">\foo” with “FOO”).  
    \ifglsfieldeq{sample2}{useri}{\foo}{TRUE}{FALSE}.  
    \end{document}
    -

    This now produces “FALSE” for the first case (comparing “FOO” with “

    This now produces “FALSE” for the first case (comparing “FOO” with “\foo”) and “TRUE” for the second case (comparing “\foo” with “\foo”). -

    You can test if the value of a field is equal to the replacement text of a command using: -


    You can test if the value of a field is equal to the replacement text of a command using: +


    \ifglsfielddefeq{label}{true}{false}

    -

    +

    This internally uses etoolbox’s ’s \ifdefstrequal command to perform the comparison. The argument ⟨command⟩ must be a macro. -

    For example: +

    For example:

    -
    +
    \documentclass{article}  
    \usepackage{glossaries}  
    \newcommand*{\foo}{FOO} @@ -27156,13 +27039,13 @@ must be a macro.  
    \ifglsfielddefeq{sample2}{useri}{\foo}{TRUE}{FALSE}.  
    \end{document}
    -

    Here, the first case produces “TRUE” since the value of the

    Here, the first case produces “TRUE” since the value of the useri field (“FOO”) is the same as the replacement text (definition) of \foo (“FOO”). We have the result “FOO” is equal to “FOO”. -

    The second case produces “FALSE” since the value of the

    The second case produces “FALSE” since the value of the useri field (“\foo”) is not the same as the replacement text (definition) of useri field. We have the result “\foo” is not equal to “FOO”. -

    If we add: +

    If we add:

    -
    +
    \newcommand{\FOO}{\foo}  
    \ifglsfielddefeq{sample2}{useri}{\FOO}{TRUE}{FALSE}.
    -

    we now get “TRUE” since the value of the

    we now get “TRUE” since the value of the useri field (“\foo”) is the same as the replacement text (definition) of \FOO (“\foo”). We have the result “\foo” is equal to “\foo”. -

    There is a similar command that requires the control sequence name (without the leading backslash) instead +

    There is a similar command that requires the control sequence name (without the leading backslash) instead of the actual control sequence: -



    \ifglsfieldcseq{label}{true}{false}

    -

    +

    This internally uses etoolbox’s ’s \ifcsstrequal command instead of \ifdefstrequal. -

    +

    -

    Top

    16.3 Fetching and Updating the Value of a Field

    -

    In addition to the commands described in

    In addition to the commands described in §9 Using Glossary Terms Without Links, the following may also be used to fetch field information. -



    \glsentrytype{label}

    -

    +

    Expands to the entry’s glossary type. No existence check is performed. -



    \glsentryparent{label}

    -

    +

    Expands to the label of the entry’s parent. No existence check is performed. -



    \glsentrysort{label}

    -

    +

    Expands to the entry’s sort value. No existence check is performed. -

    You can fetch the value of a given field and store it in a control sequence using: -


    You can fetch the value of a given field and store it in a control sequence using: +


    \glsfieldfetch{labelfield}{cs}

    -

    +

    where ⟨label⟩ is the label identifying the glossary entry, ⟨field⟩ is the field label (see \newglossaryentry (or the optional argument of \newacronym). -

    You can change the value of a given field using one of the following commands. Note that these commands +

    You can change the value of a given field using one of the following commands. Note that these commands only change the value of the given field. They have no affect on any related field. For example, if you change the value of the textpluralfirst or any other related key. -

    In all the four related commands below, ⟨

    In all the four related commands below, ⟨label⟩ and ⟨field⟩ are as above and ⟨definition⟩ is the new value of the field. -



    \glsfielddef{labelfield}{definition}

    -

    +

    This uses \def to change the value of the field (so it will be localised by any grouping). -



    \glsfieldedef{labelfield}{definition}

    -

    +

    This uses \edef to change the value of the field (so it will be localised by any grouping). Any fragile commands contained in the ⟨definition⟩ must be protected. -



    \glsfieldgdef{labelfield}{definition}

    -

    +

    This uses \gdef to change the value of the field. -



    \glsfieldxdef{labelfield}{definition}

    -

    +

    This uses \xdef to change the value of the field. Any fragile commands contained in the ⟨definition⟩ must be @@ -27334,11 +27217,11 @@ protected.

    -

    -

    +

    Top

    17. Prefixes or Determiners

    -

    The

    The glossaries-prefix package that comes with the glossaries package provides additional keys that can be @@ -27347,7 +27230,7 @@ The glossaries-prefix package automatically loads the glossaries package and has the same package options. -

    The extra keys for

    The extra keys for \newglossaryentry are as follows:

    @@ -27386,20 +27269,20 @@ class="cmtt-10">prefixplural key.
  • -

    Example 30 (Defining Determiners) -

    Here’s the start of my example document: +

    Here’s the start of my example document:

    -
    +
    \documentclass{article}  
    \usepackage[colorlinks]{hyperref}  
    \usepackage[toc,acronym]{glossaries-prefix}
    -

    Note that I’ve simply replaced

    Note that I’ve simply replaced glossaries from previous sample documents with glossaries-prefix. Now for a sample definition17.1

    -
    +
    \newglossaryentry{sample}{name={sample},%  
      description={an example},%  
      prefix={a~},%  
      prefixplural={the\space}%  
    }
    -

    Note that I’ve had to explicitly insert a space after the prefix since there’s no designated separator between the +

    Note that I’ve had to explicitly insert a space after the prefix since there’s no designated separator between the prefix and the term being referenced. This not only means that you can vary between a breaking space and non-breaking space, but also allows for the possibility of prefixes that shouldn’t have a space, such as:

    -
    +
    \newglossaryentry{oeil}{name={oeil},  
      plural={yeux},  
      description={eye},  
      prefix={l'},  
      prefixplural={les\space}}
    -

    Where a space is required at the end of the prefix, you must use a spacing command, such as +

    Where a space is required at the end of the prefix, you must use a spacing command, such as \space, \␣ (backslash space) or ~ due to the automatic spacing trimming per class="cmti-10">key⟩=⟨value⟩ options. -

    In the event that you always require a space between the prefix and the term, then you can instead +

    In the event that you always require a space between the prefix and the term, then you can instead redefine -



    \glsprefixsep

    -

    +

    to do a space. (This command does nothing by default.) For example:

    -
    +
    \renewcommand{\glsprefixsep}{\space}
    -

    -

    The prefixes can also be used with acronyms. For example: +

    +

    The prefixes can also be used with acronyms. For example:

    -
    +
    \newacronym  
     [%  
       prefix={an\space},prefixfirst={a~}%  
     ]{svm}{SVM}{support vector machine}
    -

    +

    -

    -

    ____________________________

    -

    The

    +

    ____________________________

    +

    The glossaries-prefix package provides convenient commands to use these prefixes with commands such as \gls-like command. (See §6 Links to Glossary Entries for further details.) -



    \pgls[optionslabel}[insert]

    -

    +

    This is inserts the value of the prefix key (or } class="cmtt-10">[⟨insert]. -



    \Pgls[optionslabel}[insert]

    -

    +

    If the prefix key (or label}[insert]. -



    \PGLS[optionslabel}[insert]

    -

    +

    As \pgls but converts the prefix to upper case and uses \GLS instead of \gls. -



    \pglspl[optionslabel}[insert]

    -

    +

    This is inserts the value of the prefixplural key (or label}[insert]. -



    \Pglspl[optionslabel}[insert]

    -

    +

    If the prefixplural key (or label}[insert]. -



    \PGLSpl[optionslabel}[insert]

    -

    +

    As \pglspl but converts the prefix to upper case and uses \GLSpl\GLSpl\glspl. -

    Example 31 (Using Prefixes) -

    Continuing from Example 

    Continuing from Example 30, now that I’ve defined my entries, I can use them in the text via the above @@ -27640,25 +27523,25 @@ commands:

    -
    +
    First use: \pgls{svm}. Next use: \pgls{svm}.  
    Singular: \pgls{sample}, \pgls{oeil}.  
    Plural: \pglspl{sample}, \pglspl{oeil}.
    -

    which produces: +

    which produces:

    -

    First use: a support vector machine (SVM). Next use: an SVM. Singular: a sample, l’oeil. +

    First use: a support vector machine (SVM). Next use: an SVM. Singular: a sample, l’oeil. Plural: the samples, les yeux.

    -

    For a complete document, see

    For a complete document, see sample-prefix.tex.

    -

    -

    ____________________________

    -

    This package also provides the commands described below, none of which perform any check to determine +

    +

    ____________________________

    +

    This package also provides the commands described below, none of which perform any check to determine the entry’s existence. -



    \ifglshasprefix{labeltrue part}{false part}

    -

    +

    Does ⟨true part⟩ if the entry identified by ⟨label⟩ has a non-empty value for the prefix key. -

    This package also provides the following commands: -


    This package also provides the following commands: +


    \ifglshasprefixplural{labeltrue part}{false part}

    -

    +

    Does ⟨true part⟩ if the entry identified by ⟨label⟩ has a non-empty value for the prefixplural key. -



    \ifglshasprefixfirst{labeltrue part}{false part}

    -

    +

    Does ⟨true part⟩ if the entry identified by ⟨label⟩ has a non-empty value for the prefixfirst key. -



    \ifglshasprefixfirstplural{labeltrue part}{false part}

    -

    +

    Does ⟨true part⟩ if the entry identified by ⟨label⟩ has a non-empty value for the prefixfirstplural key. -



    \glsentryprefix{label}

    -

    +

    Displays the value of the prefix key for the entry given by ⟨label⟩. -



    \glsentryprefixfirst{label}

    -

    +

    Displays the value of the prefixfirst key for the entry given by ⟨label⟩. -



    \glsentryprefixplural{label}

    -

    +

    Displays the value of the prefixplural key for the entry given by ⟨label⟩. (No check is performed to determine if the entry exists.) -



    \glsentryprefixfirstplural{label}

    -

    +

    Displays the value of the prefixfirstplural key for the entry given by ⟨label⟩. (No check is performed to determine if the entry exists.) -

    There are also variants that convert the first letter to upper +

    There are also variants that convert the first letter to upper case17.2: -



    \Glsentryprefix{label}

    -

    -


    +


    \Glsentryprefixfirst{label}

    -

    -


    +


    \Glsentryprefixplural{label}

    -

    -


    +


    \Glsentryprefixfirstplural{label}

    -

    -

    As with analogous commands such as

    +

    As with analogous commands such as \Glsentrytext, these commands aren’t expandable so can’t be used in PDF bookmarks.
    -

    +

    -

    Example 32 (Adding Determiner to Glossary Style) -

    You can use the above commands to define a new glossary style that uses the determiner. For +

    You can use the above commands to define a new glossary style that uses the determiner. For example, the following style is a slight modification of the list style that inserts the prefix before the @@ -27810,7 +27693,7 @@ name:

    -
    +
    \newglossarystyle{plist}{%  
      \setglossarystyle{list}%  
      \renewcommand*{\glossentry}[2]{% @@ -27820,12 +27703,12 @@ name:  
           \glossentrydesc{##1}\glspostdescription\space ##2}%  
    }
    -

    If you want to change the prefix separator (

    If you want to change the prefix separator (\glsprefixsep) then the following is better:

    -
    +
    \newglossarystyle{plist}{%  
      \setglossarystyle{list}%  
      \renewcommand*{\glossentry}[2]{% @@ -27835,12 +27718,12 @@ class="cmtt-10">\glsprefixsep) then the following is better:  
           \glossentrydesc{##1}\glspostdescription\space ##2}%  
    }
    -

    The conditional is also useful if you want the style to use an uppercase letter at the start of the entry +

    The conditional is also useful if you want the style to use an uppercase letter at the start of the entry item:

    -
    +
    \newglossarystyle{plist}{%  
      \setglossarystyle{list}%  
      \renewcommand*{\glossentry}[2]{% @@ -27854,18 +27737,18 @@ item:  
           \glossentrydesc{##1}\glspostdescription\space ##2}%  
    }
    -

    +

    -

    -

    ____________________________

    +

    +

    ____________________________

    -

    -

    +

    Top

    18. Accessibility Support

    -

    Limited accessibility support is provided by the accompanying

    Limited accessibility support is provided by the accompanying glossaries-accsupp package, but note that this package is experimental and it requires the -

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

    This will load

    This will load glossaries with the acronym package option as well as loading glossaries-accsupp. -

    If you are using the

    If you are using the glossaries-extra extension package, you need to load -

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

    This will load

    This will load glossaries-extra (with the abbreviationsglossariesglossaries-accsupp and make appropriate patches to integrate the accessibility support with the extension commands. -

    The

    The glossaries-accsupp package defines additional keys that may be used when defining glossary entries. The keys are as follows: @@ -28233,30 +28116,30 @@ class="description"> class="cmtt-10">user6 key. -

    For example: +

    For example:

    -
    +
    \newglossaryentry{tex}{name={\TeX},description={Document  
    preparation language},access={TeX}}
    -

    Now the

    Now the link text produced by \gls{tex} will be:

    -
    +
    \BeginAccSupp{ActualText={TeX}}\TeX\EndAccSupp{}
    -

    The sample file

    The sample file sampleaccsupp.tex illustrates the glossaries-accsupp package. -

    If you prefer to use

    If you prefer to use accessibility or tagpdf\gls@accessibility before loading glossaries-accsupp. See the section “Accessibility Support”in the documented code for further details. -

    The PDF specification identifies three different types of replacement text: +

    The PDF specification identifies three different types of replacement text:

    Alt
    A character or sequence of characters that replaces textual class="cmbx-10">E
    Expansion of an abbreviation to avoid ambiguity (for example, “St” could be short for “saint” or “street”).
    -

    Many PDF viewers don’t actually support any type of replacement text. Some may support “ActualText” +

    Many PDF viewers don’t actually support any type of replacement text. Some may support “ActualText” but not “Alt” or “E”. PDFBox’s “PDFDebugger” tool can be used to inspect the PDF content to make sure that the replacement text has been correctly set.
    -

    -

    If you define abbreviations with

    +

    If you define abbreviations with \newacronym, the shortaccess field will automatically be set to: -



    \glsdefaultshortaccess{long}{short}

    -

    +

    With the base glossaries package this just expands to ⟨long⟩. With glossaries-extra this expands to ⟨long⟩ (⟨short⟩). This command must be fully expandable. It expands when the abbreviation is defined. -

    As from

    As from glossaries-accsupp v4.45, the helper command used to identify the replacement text depends on the field name. Previous versions just used: -



    \glsaccsupp{replacement}{content}

    -

    +

    for all fields. This is defined to use ActualText, which is appropriate for symbols but not for abbreviations. -

    As from v4.45, there’s a new helper command: -


    As from v4.45, there’s a new helper command: +


    \glsfieldaccsupp{replacementfield}{label}

    -

    +

    This will use \glsfieldshort and shortplural: -



    \glsshortaccsupp{replacement}{content}

    -

    +

    which is like \glsaccsupp but uses E instead of ActualText and -



    \glsshortplaccsupp{replacementcontent}

    -

    +

    which just does \glsshortaccsupp{replacementinternal field name class="cmtt-10">shortpl) not the key name (such as shortplural). See table 4.1. -

    Rather than explicitly using

    Rather than explicitly using \BeginAccSupp, these helper commands can use: -



    \glsaccessibility[optionsvalue}{content}

    -

    +

    where ⟨tag⟩ is one of E, showaccsupp is used. If you explicitly use \BeginAccSupp instead of this command then the debugging support won’t be available. -

    You can define your own custom helper commands for specific fields that require them. For +

    You can define your own custom helper commands for specific fields that require them. For example:

    -
    +
    \newcommand{\glssymbolaccsupp}[2]{%  
     \glsaccessibility[method=hex,unicode]{ActualText}{#1}{#2}%  
    }
    -

    This definition requires the replacement text to be specified with the hexadecimal character code. For +

    This definition requires the replacement text to be specified with the hexadecimal character code. For example:

    -
    +
    \newglossaryentry{int}{name={int},description={integral},  
      symbol={\ensuremath{\int}},symbolaccess={222B}  
    }
    -

    -

    If you are using

    +

    If you are using glossaries-extra, then \glsfieldaccsupp will first test for the existence of @@ -28473,7 +28356,7 @@ example:

    - +

    Top

    19. Sample Documents

    -

    The

    The glossaries package is provided with some sample documents that illustrate the various functions. These should be located in the samples subdirectory (folder) of the glossaries documentation directory. This -location varies according to your operating system and TEX distribution. You can use texdoc to locate the main glossaries documentation. For example, in a terminal or command prompt, type: -

    
    +

    
        
    texdoc -l glossaries

    @@ -28555,12 +28437,12 @@ This should display a list of all the files in the glossaries documentation directory with their full pathnames. (The GUI version of texdoc may also provide you with the information.) -

    If you can’t find the sample files on your computer, they are also available from your nearest CTAN mirror +

    If you can’t find the sample files on your computer, they are also available from your nearest CTAN mirror at http://mirror.ctan.org/macros/latex/contrib/glossaries/samples/. Each sample file listed below has a hyperlink to the file’s location on the CTAN mirror. -

    The

    The glossaries-extra package and bib2gls provide some additional sample files. There are also examples in the Dickimaw Books Gallery. -

    If you prefer to use UTF-8 aware engines (

    If you prefer to use UTF-8 aware engines (xelatex or lualatex) remember that you’ll need to switch from fontenc & inputenc to fontspec where appropriate. -

    If you get any errors or unexpected results, check that you have up-to-date versions of all the required +

    If you get any errors or unexpected results, check that you have up-to-date versions of all the required packages. (Search the log file for lines starting with “Package: ”.) Where -

    +
    pdfTeX warning (dest): name{glo:aca} has been  
    referenced but does not exist, replaced by a fixed one
    -

    These warnings may be ignored on the first LATEX run. (The destinations won’t be defined until the glossary +

    These warnings may be ignored on the first LaTeX run. (The destinations won’t be defined until the glossary has been created.)

    -

    Top

    19.1 Basic

    -

    +

    🔗minimalgls.tex

    -

    This document is a minimal working example. You can test your installation using this file. To create the +

    This document is a minimal working example. You can test your installation using this file. To create the complete document you will need to do the following steps:

    1. Run minimalgls.tex through LATEX either by typing -

      
      +class="cmtt-10">minimalgls.tex through LaTeX either by typing
      +     

      
            
      pdflatex minimalgls

      @@ -28626,12 +28506,12 @@ class="cmtt-10">makeglossaries§1.4 Generating the Associated Glossary Files). This can be done on a terminal by typing: -

      
      +     

      
            
      makeglossaries minimalgls

      otherwise do: -

      
      +     

      
            
      makeglossaries-lite minimalgls

      @@ -28642,7 +28522,7 @@ class="cmtt-10">makeindex

      
      +     

      
            
      makeindex -s minimalgls.ist -t minimalgls.glg -o minimalgls.gls minimalgls.glo

      @@ -28654,16 +28534,15 @@ class="cmtt-10">makeindex
      explicitly (Option 2) for further details on using makeindex explicitly. -

      Note that if the file name contains spaces, you will need to use the double-quote character to delimit the +

      Note that if the file name contains spaces, you will need to use the double-quote character to delimit the name.

    2. Run minimalgls.tex through LATEX again (as step 1)
    -

    You should now have a complete document. The number following each entry in the glossary is the location +class="cmtt-10">minimalgls.tex through LaTeX again (as step 1) +

    You should now have a complete document. The number following each entry in the glossary is the location number. By default, this is the page number where the entry was referenced. -

    The

    The acronym package option creates a second glossary with the label acronym (which can be referenced with @@ -28687,7 +28566,7 @@ class="cmtt-10">makeindexxindy) the appropriate number of times. -

    If for some reason you don’t want to use

    If for some reason you don’t want to use makeglossaries or makeglossaries-liteacronym package option then the complete build process is: -

    
    +

    
        
    pdflatex minimalgls
    makeindex -s minimalgls.ist -t minimalgls.glg -o minimalgls.gls minimalgls.glo
    makeindex -s minimalgls.ist -t minimalgls.alg -o minimalgls.acr minimalgls.acn
    pdflatex minimalgls

    -

    There are three other files that can be used as

    There are three other files that can be used as minimal working examples: mwe-gls.tex, mwe-acr.tex and mwe-acr-desc.tex. -



    glossaries-extraIf you want to try out the glossaries-extra load glossaries). -

    Next, replace:

    +

    Next, replace:

    \setacronymstyle{long-short} @@ -28778,7 +28657,7 @@ class="cmtt-10">\newabbreviationacronym. -

    If you prefer to replace

    If you prefer to replace \newacronym with \newabbreviation then the default category is short-nolong, which only shows the short form on first use.) -

    As mentioned earlier, the

    As mentioned earlier, the acronym package option creates a new glossary with the label acronym. This is @@ -28827,7 +28706,7 @@ class="cmtt-10">\newacronym or \newabbreviation. -

    You may instead prefer to use the

    You may instead prefer to use the abbreviations package option, which creates a new glossary with the label xindyglossaries-extra user manual for further details. -

    If you use both the

    If you use both the acronym and abbreviations\newabbreviation will default to the abbreviations glossary. -

    bib2glsIf you want to try convertgls2bib. For example: -

    
    +

    
        
    convertgls2bib --preamble-only minimalgls.tex entries.bib

    @@ -28940,7 +28819,7 @@ class="cmtt-10">\newglossaryentry and \newacronym or \newabbreviation). -

    The abbreviation style command must go before

    The abbreviation style command must go before \GlsXtrLoadResources. For example (if you are using =entries]

    Finally, replace: -
    +
    \printglossaries
    -

    with:

    +

    with:

    \printunsrtglossaries
    The document build is now: -

    
    +

    
        
    pdflatex minimalgls
    bib2gls minimalgls
    pdflatex minimalgls @@ -28979,13 +28858,13 @@ class="cmtt-10">\printunsrtglossaries
    -

    +

    🔗sampleDB.tex

    -

    This document illustrates how to load external files containing the glossary definitions. It also illustrates how to +

    This document illustrates how to load external files containing the glossary definitions. It also illustrates how to define a new glossary type. This document has the number list suppressed and uses bib2gls if you have a large number of entries.) To create the document do: -

    
    +

    
        
    pdflatex sampleDB
    makeglossaries sampleDB
    pdflatex sampleDB

    or -

    
    +

    
        
    pdflatex sampleDB
    makeglossaries-lite sampleDB
    pdflatex sampleDB @@ -29028,14 +28907,14 @@ glossary:

    1. Create the main glossary (all on one line): -

      
      +     

      
            
      makeindex -s sampleDB.ist -t sampleDB.glg -o sampleDB.gls sampleDB.glo

    2. Create the secondary glossary (all on one line): -

      
      +     

      
            
      makeindex -s sampleDB.ist -t sampleDB.nlg -o sampleDB.not sampleDB.ntn

      @@ -29051,7 +28930,7 @@ class="cmtt-10">makeglossaries-litemakeindex the appropriate number of times.

    -

    bib2glsIf you want to switch to using bibconvertgls2bib: -

    
    +

    
        
    convertgls2bib database1.tex database1.bib
    convertgls2bib database2.tex database2.bib
    @@ -29158,14 +29037,14 @@ href="#glo:xindy">xindy extensions are now irrelevant. -

    Instead of using

    Instead of using makeglossaries you need to use bib2gls when you build the document: -

    
    +

    
        
    pdflatex sampleDB
    bib2gls sampleDB
    pdflatex sampleDB @@ -29189,15 +29068,15 @@ Multiple glossaries may be processed in a single resource set or sub-blocks of a by multiple resource sets. In this example, there happens to be one resource set per glossary because each glossary requires a different sort method. (A locale-sensitive alphabetical sort for the first and a character code sort for the second.) -

    If you want letter groups, you need to use the

    If you want letter groups, you need to use the --group switch: -

    
    +

    
        
    bib2gls --group sampleDB

    and use an appropriate glossary style. -

    See also

    See also bib2gls gallery: sorting, bib2gls user manual. -

    +

    -

    Top

    19.2 Acronyms and First Use

    -

    +

    🔗sampleAcr.tex

    -

    This document has some sample abbreviations. It also adds the glossary to the table of contents, so an extra run -through LATEX is required to ensure the document is up to date: -

    
    +

    This document has some sample abbreviations. It also adds the glossary to the table of contents, so an extra run +through LaTeX is required to ensure the document is up to date: +

    
        
    pdflatex sampleAcr
    makeglossaries sampleAcr
    pdflatex sampleAcr @@ -29236,17 +29114,16 @@ class="E">E
    X is required to ensure the document is u href="#glo:makeglossaries-lite.lua">makeglossaries-lite). -

    Note that if the glossary is at the start of the document and spans across multiple pages, then this can cause +

    Note that if the glossary is at the start of the document and spans across multiple pages, then this can cause the locations to be shifted. In that case, an extra makeglossaries and LATEX call are required. In + id="dx1-178002"> and LaTeX call are required. In this particular example, the glossary is at the end of the document so it’s not a problem. It’s also not a problem for a glossary at the start of the document if the page numbering is reset at the end of the glossary. For example, if the glossary is at the end of the front matter in a book-style document. -

    This document uses

    This document uses \ifglsused to determine whether to use “a” or “an” in:

    @@ -29268,10 +29145,10 @@ class="cmss-10">glossaries and passes all its options to the base package of: -
    +
    \usepackage[style=long,toc]{glossaries}
    -

    with:

    +

    with:

    \usepackage[style=long,toc]{ 
    -



    glossaries-extraIf you want to convert this sample document to use glossary-longextra

    If you want to use

    If you want to use glossaries-prefix, you can either load it after glossaries-extra v1.42) you can simply use the prefix package option. -

    Note that the

    Note that the toc package option has been dropped. This is the default with glossaries-extra, so it doesn’t need to be specified now. The document build is now shorter: -

    
    +

    
        
    pdflatex sampleAcr
    makeglossaries sampleAcr
    pdflatex sampleAcr

    -The third LATEX call is no longer required to make the table of contents up-to-date. This is because +The third LaTeX call is no longer required to make the table of contents up-to-date. This is because glossaries-extra provides boilerplate text on the first LATEX call when the glossary files are missing. This means +class="cmss-10">glossaries-extra provides boilerplate text on the first LaTeX call when the glossary files are missing. This means that the glossary header is added to the toc file on the first LATEX call, whereas with just the base file on the first LaTeX call, whereas with just the base glossaries -package, the header isn’t present until the second LATEX call. (As with just the base glossaries package, if the glossary occurs at the start of the document without a page reset after it then part of the build process needs repeating to ensure all referenced page numbers are up-to-date. This problem isn’t specific to the glossaries package.) -

    The other different default setting is the post-description punctuation. The base package has

    The other different default setting is the post-description punctuation. The base package has nopostdot=falsefalse or the shorter synonym postdot. -

    The

    The glossaries-extra package has different abbreviation handling that’s far more flexible than that provided by the base abbreviation is assumed. You can therefore have different styles for different categories.) -

    Finally, you need to replace

    Finally, you need to replace \acrshort, \acrlong\glsxtrfull -

    +

    🔗sampleAcrDesc.tex

    -

    This is similar to the previous example, except that the abbreviations have an associated description. As with -the previous example, the glossary is added to the table of contents, so an extra run through LATEX is +

    This is similar to the previous example, except that the abbreviations have an associated description. As with +the previous example, the glossary is added to the table of contents, so an extra run through LaTeX is required: -

    
    +

    
        
    pdflatex sampleAcrDesc
    makeglossaries sampleAcrDesc
    pdflatex sampleAcrDesc @@ -29514,7 +29386,7 @@ class="cmss-10">nomain
    option as the main glossary will now be required. -



    glossaries-extraAs with the previous example, if you want to convert this document to use makeglossaries-lite you don’t need to worry about it. -

    Again the style command needs to be changed:

    +

    Again the style command needs to be changed:

    \setabbreviationstylelong-sc-short-descacronym.) -

    As with the previous example, if you prefer to use

    As with the previous example, if you prefer to use \newabbreviation instead of \newacronym\glsfmtname{#1}}

    -

    The

    The glossaries-extra package provides two additional cross-referencing keys seealso vector machine}

    -

    Finally, as with the previous example, you need to replace

    Finally, as with the previous example, you need to replace \acrshort, \acrlong\glsxtrlong and \glsxtrfull etc. -

    bib2glsIf you want to convert this document so that it uses bib2gls. This can be done with: -

    
    +

    
        
    convertgls2bib --preamble-only sampleAcrDesc.tex entries.bib

    @@ -29788,7 +29660,7 @@ class="cmtt-10">\newabbreviation then the entries will instead be defined with @abbreviation. -

    Next replace

    Next replace \makeglossaries with the resource command, but note that the abbreviation style must be set first:

    @@ -29846,7 +29718,7 @@ class="cmss-10">acronym\setabbreviationstyle needs adjusting. -

    If the

    If the sort field is missing (which should usually be the case), then both @acronymbib2gls manual for further details and other examples. -

    Remember to delete any

    Remember to delete any \newacronym or \newabbreviation in the tex\printglossary with \printunsrtglossary. The document build is now: -

    
    +

    
        
    pdflatex sampleAcrDesc
    bib2gls sampleAcrDesc
    pdflatex sampleAcrDesc

    -

    Note that it’s now much easier to revert back to the descriptionless style used in

    Note that it’s now much easier to revert back to the descriptionless style used in sampleAcr.tex:

    @@ -29922,21 +29794,20 @@ This makes it much easier to have a large database of abbreviations for use acro or may not require the description. -

    +

    🔗sampleDesc.tex

    -

    This is similar to the previous example, except that it defines the abbreviations using

    This is similar to the previous example, except that it defines the abbreviations using \newglossaryentry instead of \newacronym. As with the previous example, the glossary is added to the table of contents, so an -extra run through LATEX is required: -

    
    +extra run through LaTeX is required:
    +

    
        
    pdflatex sampleDesc
    makeglossaries sampleDesc
    pdflatex sampleDesc @@ -29966,19 +29837,18 @@ Guide. id="x1-180007r6"> -

    +

    🔗sampleFnAcrDesc.tex

    -

    This document has some sample abbreviations that use the

    This document has some sample abbreviations that use the footnote-sc-desc acronym style. As with the -previous example, the glossary is added to the table of contents, so an extra run through LATEX is +previous example, the glossary is added to the table of contents, so an extra run through LaTeX is required: -

    
    +

    
        
    pdflatex sampleFnAcrDesc
    makeglossaries sampleFnAcrDesc
    pdflatex sampleFnAcrDesc @@ -30005,7 +29875,7 @@ class="cmtt-10">[acronym]{short-sc-footnote-desc}
    The command redefinitions (performed with \renewcommand) should now all be deleted as they are no longer applicable. -

    You may prefer to use the

    You may prefer to use the short-sc-postfootnote-desc style instead. There are subtle differences between the footnoteshort-sc-footnote and compare the location of the footnote marker with the two styles. -

    This modified sample file now has a shorter build: -

    
    +

    This modified sample file now has a shorter build: +

    
        
    pdflatex sampleFnAcrDesc
    makeglossaries sampleFnAcrDesc
    pdflatex sampleFnAcrDesc @@ -30026,22 +29896,20 @@ location of the footnote marker with the two styles. This is because the glossaries-extra package produces boilerplate text when the glossary file is missing (on the -first LATEX run) which adds the glossary title to the table of contents (toc) file. -

    +

    🔗sampleCustomAcr.tex

    -

    This document has some sample abbreviations with a custom acronym style. It also adds the glossary to the -table of contents, so an extra run through LATEX is required: -

    
    +

    This document has some sample abbreviations with a custom acronym style. It also adds the glossary to the +table of contents, so an extra run through LaTeX is required: +

    
        
    pdflatex sampleCustomAcr
    makeglossaries sampleCustomAcr @@ -30065,7 +29933,7 @@ class="cmti-10">description
    ⟩ (instead of just the long form). This inherits from the footnote-sc-desc style. -



    glossaries-extraThe conversion to }

    The abbreviation styles have associated helper commands that may be redefined to make minor modifications. These redefinitions should be done before the abbreviations are defined. -

    The

    The short-sc-footnote-desc abbreviation style is the closest match to the requirement, so replace the [acronym]{short-sc-footnote-desc}

    Again, you may prefer short-sc-postfootnote-desc. Both styles use the same helper commands. -

    Next some adjustments need to be made to fit the new requirements. The name needs to be ⟨

    Next some adjustments need to be made to fit the new requirements. The name needs to be ⟨long⟩ (⟨short⟩):

    @@ -30190,7 +30058,7 @@ class="cmtt-10"> \glsentrydesc{#1}}}
    This will mimic the result from the original sample document. -

    You may prefer to replace

    You may prefer to replace #2 with a reference to a specific field (or fields). For example:

    \glsseeitemformat since \acronymfont is no longer appropriate. -

    In the original

    In the original sampleCustomAcr.tex source code, I started the description with a capital:

    -
    +
    \newacronym[description={Statistical pattern recognition  
    technique using the ``kernel trick''},  
    see={[see also]{svm}},  
    ]{ksvm}{ksvm}{kernel support vector machine}
    -

    This leads to a capital letter after the colon in the footnote, which is undesirable, but I would like to +

    This leads to a capital letter after the colon in the footnote, which is undesirable, but I would like to have the description start with a capital in the glossary. The solution to this problem is easy with seealso key, which is only available with glossaries-extra. -

    If you prefer to use

    If you prefer to use \newabbreviation instead of \newacronym{short-sc-postfootnote-desc} id="x1-182037r8"> -

    +

    🔗sample-FnDesc.tex

    -

    This example defines a custom display format that puts the description in a footnote on

    This example defines a custom display format that puts the description in a footnote on first use. -

    
    +

    
        
    pdflatex sample-FnDesc
    makeglossaries sample-FnDesc
    pdflatex sample-FnDesc @@ -30332,7 +30200,7 @@ footnote marker hyperlink would be inside the hyperlink around the link text which would result in a nested hyperlink). -



    glossaries-extraThe glossaries-extra
    }

    -

    Never use commands like

    Never use commands like \gls or \glsdesc in the post-link hook as you can end up with infinite recursion. Use commands that don’t themselves have a post-link hook, such as \glsentrydesc or \glossentrydesc, instead.
    -

    -

    In the original

    +

    In the original sample-FnDesc.tex file, the format was adjusted with:

    general\newglossaryentry). If I added some abbreviations (which have a different category) then this change wouldn’t apply to them. -

    The first paragraph in the document is: +

    The first paragraph in the document is:

    -
    +
    First use: \gls{sample}.
    -

    So the PDF will have the word “sample” (the

    So the PDF will have the word “sample” (the link text created by \gls{sample}) as a hyperlink to the entry in the glossary followed by the footnote marker, which is a hyperlink to the footnote. This is then followed by the sentence terminator. “First use: sample1.” -

    It would look tidier if the footnote marker could be shifted after the full stop. “First use: sample.

    It would look tidier if the footnote marker could be shifted after the full stop. “First use: sample.1” This can easily be achieved with a minor modification:

    @@ -30529,17 +30397,17 @@ class="cmtt-10">\Glsentrydesc and explicitly append the full stop. -

    +

    🔗sample-custom-acronym.tex

    -

    This document illustrates how to define your own acronym style if the predefined styles don’t suit your +

    This document illustrates how to define your own acronym style if the predefined styles don’t suit your requirements. -

    
    +

    
        
    pdflatex sample-custom-acronym
    makeglossaries sample-custom-acronym
    pdflatex sample-custom-acronym @@ -30558,7 +30426,7 @@ class="cmtt-10">name
    is set to the long form (starting with an initial capital) followed by the all caps short form in parentheses. The final requirement is that the inline form should show the long form followed by the short form in parentheses. -



    glossaries-extraAs with }

    (See the glossaries-extra user manual for further details.) -

    This new custom style now needs to be set:

    +

    This new custom style now needs to be set:

    \setabbreviationstyle \glsentrydesc{#1}.}}
    -

    The

    The name now needs to be the long form followed by the short form in parentheses, but note the new requirement that the short form should now be in all capitals not \glslongtok}

    -

    If you want to switch to using

    If you want to switch to using bib2gls, remember to set the abbreviation style before the @@ -30965,17 +30833,17 @@ class="cmtt-10">longsampleAcrDesc.tex.
    -

    +

    -

    +

    🔗sample-dot-abbr.tex

    -

    This document illustrates how to use the base post link hook to adjust the space factor after abbreviations. -

    
    +

    This document illustrates how to use the base post link hook to adjust the space factor after abbreviations. +

    
        
    pdflatex sample-dot-abbr
    makeglossaries sampledot-abbrf
    pdflatex sample-dot-abbr @@ -30987,7 +30855,7 @@ class="cmss-10">glossaries-extra
    ’s category key. -



    glossaries-extraThis example is much simpler with \glsaddstoragekey{abbrtype}{word}{\abbrtype}

    can now be removed. -

    The

    The category key is set to initials for the initialisms (which are defined with the custom noshortpluralpluraldiscardperiod attribute.) -

    The

    The first use is governed by the retainfirstuseperiod attribute. If set, the period won’t be discarded if it @@ -31054,7 +30922,7 @@ class="cmtt-10">\glssetcategoryattribute{initials}{retainfirstuseperiod}{true}

    -

    The

    The insertdots attribute can automatically insert dots into the short form with a final space factor adjustment:

    @@ -31065,7 +30933,7 @@ class="cmtt-10">\glssetcategoryattribute{initials}{insertdots}{true}
    -

    The custom helper command defined in the example needs to be slightly modified:

    +

    The custom helper command defined in the example needs to be slightly modified:

    \newcommand*{\newabbr}[1][]{% @@ -31109,33 +30977,33 @@ class="cmtt-10">}{AGM}
    (This makes it much easier to change your mind if you decide at a later date to omit the dots, especially if you are storing all your definitions in a file that’s shared across multiple documents, but note the need to group “Sc”.) -

    The “laser” definition remains unchanged: +

    The “laser” definition remains unchanged:

    -
    +
    \newacronym{laser}{laser}{light amplification by stimulated  
    emission of radiation}
    -

    The remaining code in the preamble must now be removed. (It will interfere with

    The remaining code in the preamble must now be removed. (It will interfere with glossaries-extra’s category post-link hooks.) No change is required in the document body. -

    See the

    See the glossaries-extra user manual for further details about category attributes and post-link hooks. -

    +

    🔗sample-font-abbr.tex

    -

    This document illustrates how to have different fonts for abbreviations within the style. The document build +

    This document illustrates how to have different fonts for abbreviations within the style. The document build is: -

    
    +

    
        
    pdflatex sample-font-abbr
    makeglossaries sample-font-abbr
    pdflatex sample-font-abbr @@ -31151,29 +31019,29 @@ class="cmtt-10">\em
    ).

    -
    +
    \glsaddstoragekey{font}{}{\entryfont}
    -

    A new custom acronym style is defined that fetches the font information from this new key so that it can be +

    A new custom acronym style is defined that fetches the font information from this new key so that it can be applied to the abbreviation. Some helper commands are also provided to define the different types of abbreviation:

    -
    +
    \newcommand*{\newitabbr}[1][]{\newacronym[font=\em,#1]}  
    \newcommand*{\newupabbr}{\newacronym}  
    \newitabbr{eg}{e.g.}{exempli gratia}  
    \newupabbr{bsc}{BSc}{Bachelor of Science}
    -

    This makes the

    This makes the first use of \gls{eg} appear as “exempli gratia (e.g.)” whereas the first use of \gls{bsc} is “Bachelor of Science (BSc)”. -



    glossaries-extraThis example document is much simpler with acronym\setabbreviationstyle command). -

    Finally, the

    Finally, the \acrshort, \acrlong\glsxtrlong and \glsxtrfull. -

    You may notice that the spacing after “e.g.” and “i.e.” isn’t correct. This is similar to the

    You may notice that the spacing after “e.g.” and “i.e.” isn’t correct. This is similar to the sample-dot-abbr.tex example where the space factor needs adjusting. In this case I’ve inserted the dots manually (rather than relying @@ -31311,7 +31179,7 @@ class="cmtt-10">}{id est}

    -

    You don’t have to use the

    You don’t have to use the acronym category. You may prefer a different label that fits better semantically. For example:

    @@ -31364,14 +31232,14 @@ class="cmtt-10">}{id est}
    -

    +

    -

    Top

    19.3 Non-Page Locations

    -

    +

    🔗sampleEq.tex

    -

    This document illustrates how to change the location to something other than the page number. In this case, +

    This document illustrates how to change the location to something other than the page number. In this case, the equation counter is used since all glossary entries appear inside an equation environment. To create the document do: -

    
    +

    
        
    pdflatex sampleEq
    makeglossaries sampleEq
    pdflatex sampleEq @@ -31413,7 +31281,7 @@ class="cmtt-10">xindy
    , the glossaries package has to reform the name from a prefix and the location value. -

    Unfortunately it’s not always possible to split the link name into a prefix and location. That happens with +

    Unfortunately it’s not always possible to split the link name into a prefix and location. That happens with the equation counter in certain classes, such as the report class (which is used in this example). @@ -31424,11 +31292,11 @@ requirement:

    -
    +
    \renewcommand*\theHequation{\theHchapter.\arabic{equation}}
    -

    If you don’t do this, the equation locations in the glossary won’t form valid hyperlinks. -

    Each glossary entry represents a mathematical symbol. This means that with Options 

    If you don’t do this, the equation locations in the glossary won’t form valid hyperlinks. +

    Each glossary entry represents a mathematical symbol. This means that with Options 13 it’s necessary to use the sort=Gamma}

    -

    bib2glsIf you want to switch to using bib2glsconvertgls2bib: -

    
    +

    
        
    convertgls2bib --preamble-only sampleEq.tex entries.bib

    @@ -31537,7 +31405,7 @@ class="cmtt-10">@symbol

    Note that the

    Note that the sort key has been omitted. This is because it typically shouldn’t be used. The difference between using @symbol. See also bib2gls gallery: sorting.) -

    Next replace

    Next replace \makeglossaries with:

    \theHequation. Next remove all the lines defining the glossary entries (since they’re now defined in the bib file). -

    Finally, replace

    Finally, replace \printglossary with \printunsrtglossary\glsxtrfmt -

    +

    🔗sampleEqPg.tex

    -

    This is similar to the previous example, but the

    This is similar to the previous example, but the number lists are a mixture of page numbers and -equation numbers. This example adds the glossary to the table of contents, so an extra LATEX run is +equation numbers. This example adds the glossary to the table of contents, so an extra LaTeX run is required: -

    
    +

    
        
    pdflatex sampleEqPg
    makeglossaries sampleEqPg
    pdflatex sampleEqPg @@ -31628,11 +31495,11 @@ As with the previous example, entries are defined like this:

    -
    +
    \newglossaryentry{Gamma}{name=\ensuremath{\Gamma(z)},  
    description=Gamma function,sort=Gamma}
    -

    The

    The counter=equation -

    +
    \glslink[format=hyperbf,counter=page]{Gamma}{gamma function}
    -

    I’ve set the

    I’ve set the format to hyperbf\hyperbf\textbf in order to include a hyperlink in the location.) -

    The

    The link text here is almost identical to the description. The only difference is that the description starts with a capital. If it started with a lowercase character instead, I could simply use \Glossentrydesc instead of \glossentrydesc. -



    glossaries-extraIf I switch to using \glsdesc instead of \glslink. -

    It’s a bit cumbersome typing

    It’s a bit cumbersome typing [format=hyperbf,counter=page] for each primary reference, but  defined as

    -

    There are three other instances of

    There are three other instances of \glslink, such as:

    @@ -31807,7 +31674,7 @@ href="#glo:linktext">link text. For entries like this that represent functions with variable parameters it would be more convenient (and help with consistency) if a command was available to easily replace the parameters. -

    With the base

    With the base glossaries package, one simple solution that works for this example is to save just the function symbol in the symbollink textglossaries-extra. -

    The

    The glossaries-extra package provides another possibility. It requires a command that takes a single argument, for example:

    -
    +
    \newcommand{\Gammafunction}[1]{\Gamma(#1)}
    -

    The control sequence name (the command name without the leading backslash) is stored in the field identified +

    The control sequence name (the command name without the leading backslash) is stored in the field identified by the command \GlsXtrFmtField (this should be the internal field name not the key name, see Gamma entry would need to be defined with user1=Gammafunction. With this approach, each function entry would need a separate associated command. -

    Another approach is to store the parameterless function in the

    Another approach is to store the parameterless function in the symbol key (as earlier) and have a more generic command that uses this symbol. This requires the entry label, which can be obtained with link text\glslabel.) -

    So the entry now needs the parameterless function in

    So the entry now needs the parameterless function in symbol and the control sequence name of this generic command in  function,sort=Gamma}

    (This doesn’t need to be done for the C and G entries since they’re constants not functions.) -

    You may want to consider providing helper commands to make the functions easier to define. For +

    You may want to consider providing helper commands to make the functions easier to define. For example:

    -
    +
    \newcommand{\func}[2]{#1(#2)}  
    \newcommand{\entryfunc}[1]{\func{\glsentrysymbol{\glslabel}}{#1}}  
    \newcommand{\newfunc}[5][]{% @@ -31933,20 +31800,20 @@ example:  
     }%  
    }
    -

    The entries can now be defined using this custom

    The entries can now be defined using this custom \newfunc command. For example:

    -
    +
    \newfunc{Gamma}{\Gamma}{z}{gamma function}  
    \newfunc[sort=gamma1]{gamma}{\gamma}{\alpha,x}{lower  
      incomplete gamma function}  
    \newfunc[sort=Gamma2]{iGamma}{\Gamma}{\alpha,x}{upper  
      incomplete gamma function}
    -

    -

    Note that in

    +

    Note that in \newfunc the symbol key doesn’t have its value encapsulated with symbolglosssymbolfont attribute. -

    Now

    Now \glslink{Znu}{Z_\nu} can simply be replaced with \glssymbol\glslink but omits the post-link hook. (See the glossaries-extra user manual for further details.) -

    Don’t use

    Don’t use \glsxtrfmt within the argument of another \glsxtrfmt\glsxtrfmtlink text).
    -

    -

    Similarly

    +

    Similarly \glslink{Gamma}{\Gamma(\alpha)} can now be replaced with:

    {Gamma}[(\alpha)] example: -
    +
    \newcommand*{\Fn}[3][]{\glssymbol[#1]{#2}[(#3)]}
    -

    or:

    +

    or:

    \newcommand*{\Fn}[3][]{\glsxtrfmt[#1]{#2}{#3}}
    -

    bib2glsIf you want to convert this example so that it works with convertgls2bib\newcommand so it will be able to parse the custom \newfunc commands. -

    Note that

    Note that bib2gls allows you to separate the locations in the bib2gls -

    +

    🔗sampleSec.tex

    -

    This document also illustrates how to change the location to something other than the page number. In this +

    This document also illustrates how to change the location to something other than the page number. In this case, the section counter is used. This example adds the glossary to the table of contents, so an extra -LATEX run is required: -

    
    +LaTeX run is required:
    +

    
        
    pdflatex sampleSec
    makeglossaries sampleSec
    pdflatex sampleSec @@ -32096,7 +31962,7 @@ class="cmtt-10">makeindex
    -
    + -

    This is the result of indexing an entry multiple times for the same +

    This is the result of indexing an entry multiple times for the same location19.1 @@ -32118,13 +31984,13 @@ section 2.1:

    -
    +
    \gls[format=hyperit]{ident}  
    \glspl{ident} % default format=glsnumberformat  
    \gls*[format=hyperbf]{ident}
    -

    -

    If you use the

    +

    If you use the makeglossaries Perl script it will detect the warnings in the glo -

    +
    Multiple encaps detected. Attempting to remedy.  
    Reading sampleSec.glo...  
    Writing sampleSec.glo...  
    Retrying
    -

    (Range formats have highest precedence. The default

    (Range formats have highest precedence. The default glsnumberformat has the lowest precedence.) -

    If you use

    If you use makeglossaries-lite or call makeglossaries then only the bold entry (2.1) will be present. -

    If you switch to

    If you switch to xindy:

    @@ -32209,11 +32075,11 @@ class="cmtt-10">format=primary the highest priority. (It’s also better practice to provide this kind of semantic command.) -

    With

    With bib2gls, you can supply rules to deal with location format conflicts, as illustrated below. -

    bib2glsIn order to switch to glossaries-extra}

    -

    The entry definitions now need to be converted into

    The entry definitions now need to be converted into bib2gls format and saved in a convertgls2bib: -

    
    +

    
        
    convertgls2bib --preamble-only sampleSec.tex entries.bib

    -

    Next replace

    Next replace \makeglossaries with:

    @@ -32270,12 +32136,12 @@ class="cmtt-10">[src=entries]
    and remove all the \newglossaryentry commands. -

    Finally, replace

    Finally, replace \printglossaries with \printunsrtglossaries. The document build is now: -

    
    +

    
        
    pdflatex sampleSec
    bib2gls sampleSec
    pdflatex sampleSec @@ -32288,19 +32154,19 @@ class="cmtt-10">bib2gls
    -
    +
    Warning: Entry location conflict for formats: hyperbf and hyperit  
    Discarding: {ident}{}{section}{hyperbf}{2.1}  
    Conflicts with: {ident}{}{section}{hyperit}{2.1}
    -

    This means that it has discarded the bold location and kept the italic one. (As with

    This means that it has discarded the bold location and kept the italic one. (As with makeglossaries, range formats have the highest priority and glsnumberformat has the lowest.) -

    It would be better if the conflict could be merged into a single location that was both bold and italic. To +

    It would be better if the conflict could be merged into a single location that was both bold and italic. To achieve this, it’s first necessary to define a command that produces this effect:

    --map-format-m switch: -

    
    +

    
        
    bib2gls -m ”hyperbf:hyperbfit,hyperit:hyperbfit” sampleSec

    @@ -32344,7 +32210,7 @@ class="cmtt-10"> ] }
    -

    If you try out this example, notice the difference between

    If you try out this example, notice the difference between record=onlytitle⟩}

    -

    In this case the counter is

    In this case the counter is section, so the command should be \glsxtrsectionlocfmt. It takes two @@ -32393,28 +32259,27 @@ class="cmtt-10">\glsxtrequationlocfmt.) Make sure that you have at least version 1.42 of glossaries-extra. -

    +

    -

    Top

    19.4 Multiple Glossaries

    -

    See also

    See also sampleSort.tex in §19.5 Sorting, which has three glossaries. -

    +

    🔗sampleNtn.tex

    -

    This document illustrates how to create an additional glossary type. This example adds the glossary to the table -of contents, so an extra LATEX run is required: -

    
    +

    This document illustrates how to create an additional glossary type. This example adds the glossary to the table +of contents, so an extra LaTeX run is required: +

    
        
    pdflatex sampleNtn
    makeglossaries sampleNtn
    pdflatex sampleNtn @@ -32438,19 +32303,19 @@ class="cmtt-10">makeindex
    1. Create the main glossary (all on one line): -

      
      +     

      
            
      makeindex -s sampleNtn.ist -t sampleNtn.glg -o sampleNtn.gls sampleNtn.glo

    2. Create the secondary glossary (all on one line): -

      
      +     

      
            
      makeindex -s sampleNtn.ist -t sampleNtn.nlg -o sampleNtn.not sampleNtn.ntn

    -

    This document creates a new glossary using:

    +

    This document creates a new glossary using:

    @@ -32472,7 +32337,7 @@ class="cmtt-10">makeindexxindy. -

    (The optional argument is the file extension of the indexing transcript file, which

    (The optional argument is the file extension of the indexing transcript file, which glossaries doesn’t need to know about, but it writes the information to the auxmakeglossariesmakeglossaries-lite.) -

    If you switch to a different indexing option then these file extensions aren’t required, in which case it’s +

    If you switch to a different indexing option then these file extensions aren’t required, in which case it’s simpler to use the starred form:

    -

    This example uses a label prefixing system

    This example uses a label prefixing system19.2 to differentiate between the different types of entries. For example, the term “set” is defined as:

    -
    +
    \newglossaryentry{gls:set}{name=set,  
    description={A collection of distinct objects}}
    -

    and the set notation is defined as: +

    and the set notation is defined as:

    -
    +
    \newglossaryentry{not:set}{type=notation,  
    name={\ensuremath{\mathcal{S}}},  
    description={A \gls{gls:set}},sort={S}}
    -

    Notice that the latter description contains

    Notice that the latter description contains \gls. This means you shouldn’t use \glsdesc with this entry otherwise you will end up with nested links. -



    glossaries-extraThe \glsdesc. It will also suppress indexing within the glossary but will have a hyperlink (if hyperref is used). -

    The

    The glossaries-extra package provides a way of defining commands like \gls that automatically insert a @@ -32591,7 +32456,7 @@ replaced with \sym{set} and \gls{gls:set} can be replaced with \term{set}. -

    bib2glsThese two commands are primarily provided for the benefit of label-prefixext-prefixes (see below) this makes it much simpler to change the prefixes if necessary. -

    If you want to convert this document to use

    If you want to convert this document to use bib2gls, remember that you need the 19.3 id="x1-192041f3"> This is useful if you want to reuse a large database of entries across multiple documents as it doesn’t lock you into using a specific glossary. For example: -

    
    +

    
        
    convertgls2bib --split-on-type --preamble-only sampleNtn.tex entries.bib

    @@ -32778,7 +32643,7 @@ class="cmtt-10"> objects} class="cmtt-10">}
    -

    Now you can replace

    Now you can replace \makeglossaries with:

    \newglossaryentry definitions and replace \printglossaries with \printunsrtglossaries. -

    Regardless of how many resource sets the document contains, only one

    Regardless of how many resource sets the document contains, only one bib2gls call is required: -

    
    +

    
        
    pdflatex sampleNtn
    bib2gls sampleNtn
    pdflatex sampleNtn

    -

    You may notice that the ordering in the notations list has changed from the original. This is because the +

    You may notice that the ordering in the notations list has changed from the original. This is because the sort field was automatically removed by .) id="x1-192072r16"> -

    +

    🔗sample-dual.tex

    -

    This document illustrates how to define an entry that both appears in the list of acronyms and in the main +

    This document illustrates how to define an entry that both appears in the list of acronyms and in the main glossary. To create the document do: -

    
    +

    
        
    pdflatex sample-dual
    makeglossaries sample-dual
    pdflatex sample-dual @@ -32909,7 +32774,7 @@ indexed:

    -
    +
    \newcommand*{\newdualentry}[5][]{%  
      % main entry:  
      \newglossaryentry{main-#2}{name={#4},% @@ -32921,17 +32786,17 @@ indexed:  
      \newacronym{#2}{#3\glsadd{main-#2}}{#4}%  
    }
    -

    A sample dual entry is defined with this command: +

    A sample dual entry is defined with this command:

    -
    +
    \newdualentry{svm}% label  
      {SVM}% abbreviation  
      {support vector machine}% long form  
      {Statistical pattern recognition technique}% description
    -

    This defines an acronym with the label

    This defines an acronym with the label svm that can be referenced with \gls{svm} but it also defines an entry with the label \gls but it’s automatically added from the \glsadd{main-svm} in the short form of svm. -

    For this trivial document, this kind of dual entry is redundant and unnecessarily leads the +

    For this trivial document, this kind of dual entry is redundant and unnecessarily leads the reader down a trail, first to the list of acronyms and from there the reader then has to go to the main glossary to look up the description. It’s better to simply include the description in the list of acronyms. -

    bib2glsIf you want to switch over to bibbib2gls. If you do: -

    
    +

    
        
    convertgls2bib --preamble-only sample-dual.tex entries.bib

    @@ -32982,13 +32847,13 @@ class="cmtt-10">convertgls2bib -
    +
    Overriding default definition of \newdualentry with custom  
    definition. (Change \newcommand to \providecommand if you want  
    \newdualentry[options]{label}{short}{long}{description}  
    converted to @dualabbreviationentry.)
    -

    This is because

    This is because convertgls2bib has its own internal definition of \providecommand in the document source and rerun href="#glo:convertgls2bib">convertgls2bib. -

    With

    With \providecommand, the new entries.bib file created by bib2glsbib2gls creates two entries that simply reference each other. -

    Assuming that your

    Assuming that your entries.bib file just contains @dualabbreviationentry, now replace @@ -33124,19 +32989,19 @@ class="cmtt-10">={main-}]

    -

    Then remove the definition of

    Then remove the definition of \newdualentry and the entry definition. Finally, replace \printglossaries with \printunsrtglossaries. The document build is: -

    
    +

    
        
    pdflatex sample-dual
    bib2gls sample-dual
    pdflatex sample-dual

    -

    If, instead, your

    If, instead, your entries.bib file contains separate @entry and =entries]

    If you need number lists, the document build is now -

    
    +

    
        
    pdflatex sample-dual
    bib2gls sample-dual
    pdflatex sample-dual @@ -33179,8 +33044,7 @@ class="cmtt-10">text
    bib2gls and LATEX calls are to ensure the and LaTeX calls are to ensure the number list is up to date for the main-svm entry, which can only be indexed with \glsadd after svm has been defined.) -

    Dual entries make much more sense when one entry is for a glossary with the description displayed but +

    Dual entries make much more sense when one entry is for a glossary with the description displayed but no number list, and the other is for the index without the description but with a bib2gls manual for further details. -

    +

    🔗sample-langdict.tex

    -

    This document illustrates how to use the glossaries package to create English to French and French to English +

    This document illustrates how to use the glossaries package to create English to French and French to English dictionaries. To create the document do: -

    
    +

    
        
    pdflatex sample-langdict
    makeglossaries sample-langdict
    pdflatex sample-langdict @@ -33365,16 +33229,16 @@ document must provide its own glossaries:

    -
    +
    \newglossary[glg]{english}{gls}{glo}{English to French}  
    \newglossary[flg]{french}{flx}{flo}{French to English}
    -

    This means that if you want to call

    This means that if you want to call makeindex explicitly you need to take these new extensions into account: -

    
    +

    
        
    makeindex -s sample-langdict.ist -t sample-langdict.glg -o sample-langdict.gls sample-langdict.glo
    makeindex -s sample-langdict.ist -t sample-langdict.flg -o sample-langdict.flx sample-langdict.flo
    @@ -33384,14 +33248,14 @@ entries:

    -
    +
    \newcommand*{\newword}[4]{%  
      \newglossaryentry{en-#1}{type=english,name={#2},description={#3 #4}}%  
      \newglossaryentry{fr-#1}{type=french,name={#3 #4},text={#4},sort={#4},  
        description={#2}}%  
    }
    -

    This has the syntax:

    +

    This has the syntax:

    \newword{label⟩ (for the French term). So -
    +
    \newword{cat}{cat}{le}{chat}
    -

    is equivalent to: +

    is equivalent to:

    -
    +
    \newglossaryentry{en-cat}{type=english,name={cat},description={le chat}}  
    \newglossaryentry{fr-cat}{type=french,name={le chat},sort={chat},  
      description={cat}}
    -

    -

    Unlike the previous example (

    +

    Unlike the previous example (sample-dual.tex), there’s no link between these two entries. If the document only uses english glossary but the fr-cat entry won’t appear in the french one. -

    bib2glsIf you want to switch to bibbib2gls: -

    
    +

    
        
    convertgls2bib --only-preamble sample-langdict.tex entries.bib

    @@ -33551,7 +33415,7 @@ class="cmtt-10">}
    (Note that the sort field has been omitted.) -

    This would be more flexible, and much briefer, if these entries were defined using

    This would be more flexible, and much briefer, if these entries were defined using bib2gls’s dual entry @@ -33620,14 +33484,14 @@ class="cmtt-10"> {les} class="cmtt-10">}

    -

    With

    With @dualentry, the English and French terms are now automatically linked from bib2gls’s point of view. If only one is referenced in the document, the other will also be added by default. -

    Now that the determiner has been moved out of the description, it won’t show in the glossary. However, it’s +

    Now that the determiner has been moved out of the description, it won’t show in the glossary. However, it’s possible to include it by providing a command to encapsulate the description (which can also apply the language change as well).

    @@ -33716,7 +33580,7 @@ class="cmtt-10">\glssetcategoryattribute{french}{glossdescfont}{EnEncap}
    -

    Remember to remove

    Remember to remove \makeglossaries, the definition of \newword and the entry definitions from the document preamble, and replace \printunsrtglossary

    -

    Other refinements that you might like to make include using

    Other refinements that you might like to make include using \glsxtrnewglslike so you don’t have to worry about the label prefix (“en-” and “fr-”). -

    +

    🔗sample-index.tex

    -

    This document uses the

    This document uses the glossaries package to create both a glossary and an index. This requires two makeglossariesmakeglossaries-lite) calls to ensure the document is up to date: -

    
    +

    
        
    pdflatex sample-index
    makeglossaries sample-index
    pdflatex sample-index @@ -33756,24 +33620,24 @@ class="cmtt-10">makeglossaries-lite
    pdflatex sample-index

    -

    +

    -

    Top

    19.5 Sorting

    -

    +

    🔗samplePeople.tex

    -

    This document illustrates how you can hook into the standard sort mechanism to adjust the way the sort key is +

    This document illustrates how you can hook into the standard sort mechanism to adjust the way the sort key is set. This requires an additional run to ensure the table of contents is up-to-date: -

    
    +

    
        
    pdflatex samplePeople
    makeglossaries samplePeople
    pdflatex samplePeople @@ -33784,20 +33648,20 @@ This provides two commands for typesetting a name:

    -
    +
    \newcommand{\sortname}[2]{#2, #1}  
    \newcommand{\textname}[2]{#1 #2}
    -

    where the first argument contains the forenames and the second is the surname. The first command is the one +

    where the first argument contains the forenames and the second is the surname. The first command is the one required for sorting the name and the second is the one required for displaying the name in the document. A synonym is then defined:

    -
    +
    \let\name\textname
    -

    This command defaults to the display name command (

    This command defaults to the display name command (\textname) but is temporarily redefined to the sort name command (\sortname) within the \name is temporarily changed while the sort key is being assigned, the sort value for this entry ends up as “Bloggs, Joe”, but the name appears in the document as “Joe Bloggs”. -

    bib2glsIf you want to use bib2gls. You can simply do: -

    
    +

    
        
    convertgls2bib --preamble-only samplePeople people.bib

    @@ -33897,7 +33761,7 @@ class="cmtt-10">}
    However, you may prefer to use the --index-conversion (-i) switch: -

    
    +

    
        
    convertgls2bib -i --preamble-only samplePeople people.bib

    @@ -33951,7 +33815,7 @@ class="cmtt-10"> #1}"}
    Note the use of \providecommand instead of \newcommand. -

    In the document (

    In the document (samplePeople.tex) you now need to delete \makeglossaries, the definitions of \printunsrtglossaries

    The document build is now: -

    
    +

    
        
    pdflatex samplePeople
    bib2gls samplePeople
    pdflatex samplePeople
    pdflatex samplePeople

    -The third LATEX call is required to ensure that the PDF bookmarks are up to date, as the entries +The third LaTeX call is required to ensure that the PDF bookmarks are up to date, as the entries aren’t defined until after the bib2gls\glsfmttext instead of \glsentrytext). -

    This again leads to a list sorted by surname. The reason this works is because

    This again leads to a list sorted by surname. The reason this works is because bib2gls only sees the @@ -34030,22 +33893,22 @@ class="cmtt-10">@preamble prevents \name from being redefined within the document. -

    See also the “Examples” chapter of the

    See also the “Examples” chapter of the bib2gls user manual, which provides another “people” example. -

    +

    🔗sampleSort.tex

    -

    This is another document that illustrates how to hook into the standard sort mechanism. An additional run is +

    This is another document that illustrates how to hook into the standard sort mechanism. An additional run is required to ensure the table of contents is up-to-date: -

    
    +

    
        
    pdflatex sampleSort
    makeglossaries sampleSort
    pdflatex sampleSort @@ -34064,7 +33927,7 @@ href="#glo:makeindex">makeindex calls with the appropriate file extensions: -

    
    +

    
        
    pdflatex sampleSort
    makeindex -s sampleSort.ist -t sampleSort.alg -o sampleSort.acr sampleSort.acn
    makeindex -s sampleSort.ist -t sampleSort.glg -o sampleSort.gls sampleSort.glo @@ -34082,22 +33945,22 @@ class="cmtt-10">makeglossaries
    makeglossaries-lite. -

    In this example, the sort hook is adjusted to ensure the list of notation is sorted according to the order of +

    In this example, the sort hook is adjusted to ensure the list of notation is sorted according to the order of definition. A new counter is defined to keep track of the entry number:

    -
    +
    \newcounter{sortcount}
    -

    The sort hook is then redefined to increment this counter and assign the sort key to that numerical +

    The sort hook is then redefined to increment this counter and assign the sort key to that numerical value, but only for the notation glossary. The other two glossaries have their sort keys assigned as normal:

    -
    +
    \renewcommand{\glsprestandardsort}[3]{%  
      \ifdefstring{#2}{notation}%  
      {% @@ -34109,11 +33972,11 @@ normal:  
      }%  
    }
    -

    This means that

    This means that makeindex will sort the notation in numerical order. -



    glossaries-extraIf you want to convert this document to use \newabbreviation +

    -

    with:

    +

    with:

    -

    The custom counter and redefinition of

    The custom counter and redefinition of \glsprestandardsort can now be removed. The file extensions for the custom notation glossary are no longer relevant so the glossary definition can be changed to: @@ -34192,7 +34055,7 @@ class="cmtt-10">\makeglossaries, must be displayed with \printnoidxglossary. -

    This means that

    This means that makeindex only needs to process the notation glossary because, when used with sort=def, \printnoidxglossary simply iterates over the list of entries that have been indexed. -

    The document build doesn’t need the third LATEX call now (since none of the glossaries extend beyond a +

    The document build doesn’t need the third LaTeX call now (since none of the glossaries extend beyond a page break): -

    
    +

    
        
    pdflatex sampleSort
    makeglossaries sampleSort @@ -34222,27 +34084,27 @@ class="cmtt-10">makeglossaries
    -
    +
    only processing subset 'main,acronym'
    -

    This means that although

    This means that although makeglossaries has noticed the notation glossary, it will be skipped. -

    If you are explicitly calling

    If you are explicitly calling makeindex then you need to drop the call for the notation glossary: -

    
    +

    
        
    pdflatex sampleSort
    makeindex -s sampleSort.ist -t sampleSort.alg -o sampleSort.acr sampleSort.acn
    makeindex -s sampleSort.ist -t sampleSort.glg -o sampleSort.gls sampleSort.glo
    pdflatex sampleSort

    -

    bib2glsIf you prefer to use bibbib2gls. -

    For this example, it’s simpler to split the entries into different files according to the glossary type. This can +

    For this example, it’s simpler to split the entries into different files according to the glossary type. This can be done with the --split-on-type or -t switch: -

    
    +

    
        
    convertgls2bib -t --preamble-only sampleSort.tex entries.bib

    @@ -34405,7 +34267,7 @@ class="cmtt-10">@entry with @symbol in this file. -

    After the definition of the notation glossary (\newglossary), add:

    @@ -34452,20 +34314,20 @@ class="cmtt-10">]
    Delete the remainder of the preamble (\makeglossaries and entry definitions). -

    Finally, replace the lines that display the glossaries with:

    +

    Finally, replace the lines that display the glossaries with:

    \printunsrtglossaries
    The build process is now: -

    
    +

    
        
    pdflatex sampleSort
    bib2gls sampleSort
    pdflatex sampleSort

    -

    In this case, I have one resource command that processes two glossaries (

    In this case, I have one resource command that processes two glossaries (main and acronym) at the same time. The entries in these glossaries are ordered alphabetically. The second resource command processes the @@ -34474,7 +34336,7 @@ class="cmtt-10">notation glossary but the entries in this glossary aren&# within the bib file). -

    See also

    See also sampleNtn.tex, bib2gls gallery: sorting and the bib2gls user manual for more examples. -

    +

    -

    Top

    19.6 Child Entries

    -

    +

    🔗sample.tex

    -

    This document illustrates some of the basics, including how to create child entries that use the same name as +

    This document illustrates some of the basics, including how to create child entries that use the same name as the parent entry. This example adds the glossary to the table of contents and it also uses \glsrefentry, so an -extra LATEX run is required: -

    
    +extra LaTeX run is required:
    +

    
        
    pdflatex sample
    makeglossaries sample
    pdflatex sample @@ -34528,7 +34389,7 @@ class="cmtt-10">makeindex
    -l switch to indicate letter ordering.) -

    One of the entries has its name encapsulated with a semantic command:

    +

    One of the entries has its name encapsulated with a semantic command:

    \newcommand{makeindex simply treats as punctuation). -

    The homograph entries “glossary” and “bravo” are defined as sub-entries that inherit the name from the +

    The homograph entries “glossary” and “bravo” are defined as sub-entries that inherit the name from the parent entry. The parent entry doesn’t have a description, but with the default nopostdot=\nopostdesc to the description, which suppresses the post-description hook for that entry. -

    Since the child entries have the same name as the parent, this means that the child entries will have +

    Since the child entries have the same name as the parent, this means that the child entries will have duplicate sort values unless the default is changed with the sort key:

    @@ -34621,7 +34482,7 @@ class="cmtt-10">glossarylist before glossarycol, but both will come immediately after their parent glossary entry. -



    glossaries-extraIf you switch to using glossaries-extra
    }

    -

    You may now want to consider replacing

    You may now want to consider replacing \nopostdesc in the descriptions with \glsxtrnopostpunc (using your text editor’s search and replace function). This suppresses the post-description punctuation but not the category post-description hook. -

    You may have noticed that some of the descriptions include the plural form, but it’s not done very +

    You may have noticed that some of the descriptions include the plural form, but it’s not done very consistently. For example:

    -
    +
    \newglossaryentry{cow}{name=cow,  
      plural=cows,% not required as this is the default  
      user1=kine, @@ -34663,47 +34524,47 @@ consistently. For example:  
    female of any bovine animal}  
    }
    -

    which has the parenthetical material at the start of the description with emphasis, +

    which has the parenthetical material at the start of the description with emphasis,

    -
    +
    \newglossaryentry{bravocry}{  
      description={cry of approval (pl.\ bravos)},  
      sort={1},  
      parent={bravo}  
    }
    -

    which has the parenthetical material at the end of the description without emphasis even though it’s a regular +

    which has the parenthetical material at the end of the description without emphasis even though it’s a regular plural,

    -
    +
    \newglossaryentry{bravoruffian}{  
      description={hired ruffian or killer (pl.\ bravoes)},  
      sort={2},  
      plural={bravoes},  
      parent=bravo}
    -

    which has the parenthetical material at the end of the description without emphasis, and +

    which has the parenthetical material at the end of the description without emphasis, and

    -
    +
    \newglossaryentry{glossary}{name=glossary,  
      description={\nopostdesc},  
      plural={glossaries}}
    -

    which doesn’t show the plural in the description. -

    With

    which doesn’t show the plural in the description. +

    With glossaries-extra, you can remove this parenthetical material and implement it using the category post-description hook instead. For example, the above definitions become:

    -
    +
    \newglossaryentry{cow}{name=cow,  
      user1=kine,  
      description={an adult female of any bovine animal} @@ -34719,7 +34580,7 @@ post-description hook instead. For example, the above definitions become:  
      plural={bravoes},  
      parent=bravo}
    -

    +

    \newglossaryentry{glossary}{name=glossary, @@ -35007,14 +34868,14 @@ class="cmss-10">glossaries-extra user manual for further details and href="http://mirrors.ctan.org/support/bib2gls/bib2gls-begin.pdf" >glossaries-extra and bib2gls: An Introductory Guide. -

    The “bravo” homographs are an oddity where the singular form is identical but the plural is different +

    The “bravo” homographs are an oddity where the singular form is identical but the plural is different (“bravos” and “bravoes”). In the original, both descriptions included the plural term. The above modifications drop the display of the regular “bravos” plural (for the bravocry term) and only show the “bravoes” plural (for the bravoruffian term). In this particular case it might be useful to show the regular plural in order to highlight the difference. -

    While it’s straightforward to access an entry’s parent label (with

    While it’s straightforward to access an entry’s parent label (with \glsentryparent) it’s much harder to access entry’s children or siblings. The \ifglshaschildren

    With

    With bib2gls, it’s possible to save this information with the etoolbox internal list. This makes the information much faster to access and also only includes the labels of those entries that have actually been indexed. -

    In the above, the comment line:

    +

    In the above, the comment line:

    %plural field. If they are the same, it does nothing. If they are different, it displays the current entry’s plural and breaks the loop. -

    Note that this assumes that the parent entry hasn’t had the plural form explicitly set to “bravoes” instead of +

    Note that this assumes that the parent entry hasn’t had the plural form explicitly set to “bravoes” instead of the default “bravos”. In that case, the parent entry would show the plural but the bravoruffian child entry wouldn’t show the plural (since this case would led to the empty code block identified with the comment “child and parent plurals the same”). The “bravoes” plural form would instead be shown for the parent, which wouldn’t look right. -

    If you don’t use

    If you don’t use bib2gls or if you use it without the save-sibling-count resource option then the sibling information won’t be available. -

    bib2glsIn order to switch to using @preamble{"\providecommand{\scriptlang}[1]{\textsf{#1}}"}

    -

    The

    The sort field typically shouldn’t be set when using namebib2gls gallery: sorting for other examples). -

    Therefore the “Perl” entry is simply defined as:

    +

    Therefore the “Perl” entry is simply defined as:

    @entryxindy does) so the sort value will still end up as Perl. -

    The homograph entries have also had their

    The homograph entries have also had their sort fields omitted:

    @@ -35351,7 +35212,7 @@ class="cmtt-10">}
    -

    This means that the sort value for both these child entries is “glossary”. When

    This means that the sort value for both these child entries is “glossary”. When bib2gls encounters identical @@ -35390,20 +35251,20 @@ class="cmtt-10">\makeglossaries. If you want the sibling information (see need to remember to add save-sibling-count to the list of options. -

    Note that this is a better solution than in the original example. If I edit the document so that

    Note that this is a better solution than in the original example. If I edit the document so that glossarycol is used first, then the ordering will be updated accordingly, but with the original example, the sort keys would need to be manually changed. -

    The remainder of the preamble (that is, the definition of

    The remainder of the preamble (that is, the definition of \scriptlang and all the entry definitions) should now be removed. -

    Finally, replace

    Finally, replace \printglossaries with \printunsrtglossaries. The document build is now: -

    
    +

    
        
    pdflatex sample
    bib2gls --group sample
    pdflatex sample @@ -35417,11 +35278,10 @@ class="cmtt-10">-g
    ) switch, which is needed to support the treenonamegroup style. The third -LATEX call is needed because the document contains \glsrefentry. -

    Note that you can’t use the

    Note that you can’t use the order=letter]

    -

    +

    🔗sample-inline.tex

    -

    This document is like

    This document is like sample.tex, above, but uses the inline glossary style to put the glossary in a footnote. The document build is: -

    
    +

    
        
    pdflatex sample-inline
    makeglossaries sample-inline
    pdflatex sample-inline @@ -35485,15 +35345,15 @@ class="cmtt-10">--group
    switch since no letter groups are required. -

    +

    🔗sampletree.tex

    -

    This document illustrates a hierarchical glossary structure where child entries have different names to their +

    This document illustrates a hierarchical glossary structure where child entries have different names to their corresponding parent entry. To create the document do: -

    
    +

    
        
    pdflatex sampletree
    makeglossaries sampletree
    pdflatex sampletree @@ -35508,11 +35368,11 @@ class="cmtt-10">\glssetwidest
    -
    +
    \glssetwidest{Roman letters} % level 0 widest name  
    \glssetwidest[1]{Sigma}      % level 1 widest name
    -

    (Level 0 is the top-most level. That is, entries that don’t have a parent.) It’s possible to get

    (Level 0 is the top-most level. That is, entries that don’t have a parent.) It’s possible to get glossaries to compute the widest top-level entry with \glsfindwidesttoplevelname\glsfindwidesttoplevelname

    This sample document doesn’t require any of the tabular styles so I’ve prevented those packages from being +

    This sample document doesn’t require any of the tabular styles so I’ve prevented those packages from being loaded with nolong and {glossaries} class="cmss-10">glossary-topic, see below.) -

    This is obviously a contrived example since it’s strange to have the symbol names (such as “Sigma”) in the +

    This is obviously a contrived example since it’s strange to have the symbol names (such as “Sigma”) in the glossary. The purpose is to demonstrate the alttreehypergroup with an entry that’s noticeably wider than the @@ -35546,7 +35406,7 @@ others in the same hierarchical level. A more sensible document would have the s class="cmtt-10">name key. -



    glossaries-extraIf you want to switch to \glsFindWidestUsedLevelTwo

    This will only take into account the entries that have actually been used in the document, but it can still be time-consuming if you have a large number of entries. -

    Note that the glossary must be at the end of the document (after all required entries have been used) with +

    -

    -

    This example document is using top-level entries for topics without descriptions. This means that the +

    +

    This example document is using top-level entries for topics without descriptions. This means that the descriptions simply contain \nopostdesc to prevent the post-description punctuation from being automatically @@ -35606,18 +35466,18 @@ inserted. For example:

    -
    +
    \newglossaryentry{greekletter}{name={Greek letters},  
    text={Greek letter},  
    description={\nopostdesc}}
    -

    With

    With glossaries-extra, you can convert this to \glsxtrnopostpunc which will prevent the post-description punctuation without interfering with the category post-description hook. -

    In order to distinguish between the child entries, which are symbols, and the parent entries, which are topics, +

    In order to distinguish between the child entries, which are symbols, and the parent entries, which are topics, it’s useful to give these two different types of entries different categories. The topics can use the default general @@ -35638,20 +35498,20 @@ class="cmtt-10">=symbol, class="cmtt-10">parent=romanletter}

    -

    There is some redundancy caused by a parenthetical note after the

    There is some redundancy caused by a parenthetical note after the first use in some of the symbol entries. For example:

    -
    +
    \newglossaryentry{pi}{name={pi},  
    text={\ensuremath{\pi}},  
    first={\ensuremath{\pi} (lowercase pi)},  
    description={Transcendental number},  
    parent=greekletter}
    -

    With

    With glossaries-extra this can be dealt with through the category post-link hook:

    @@ -35742,7 +35602,7 @@ class="cmtt-10">category set to symbol. -

    With

    With glossaries-extra, it’s now possible to use the topic styles provided with the glossary-topictopicalttree. -

    Since there’s no description for the top-level entries, the

    Since there’s no description for the top-level entries, the topic style ignores the widest name setting for the top-level, so I can just have the level 1 setting:

    -
    +
    \glssetwidest[1]{Sigma}
    -

    -

    +

    bib2glsIf you want to convert this document so that it uses bibbib2gls: -

    
    +

    
        
    convertgls2bib --preamble-only sampletree.tex entries.bib

    @@ -35892,7 +35752,7 @@ class="cmtt-10">bib2glsname field.) -

    This means that the

    This means that the \glssetwidest commands can now be removed completely. All the \newglossaryentry @@ -35901,13 +35761,13 @@ class="cmtt-10">\printunsrtglossaries needs to be replaced with \printunsrtglossaries. The document build is now: -

    
    +

    
        
    pdflatex sampletree
    bib2gls sampletree
    pdflatex sampletree

    -

    This produces the same result as with just

    This produces the same result as with just glossaries-extra and makeglossariesbib file to make it neater. -

    The top-level entries are defined as:

    +

    The top-level entries are defined as:

    @@ -36015,7 +35875,7 @@ class="cmtt-10">pluraltext field. -

    Now let’s assume that the symbol entries are defined in a more rational manner, with the actual symbol in +

    Now let’s assume that the symbol entries are defined in a more rational manner, with the actual symbol in the name field. For example:

    @@ -36092,7 +35952,7 @@ class="cmtt-10">} class="cmtt-10">\glsdefpostdesc) should now be removed from the document. -

    If you make these changes and rebuild the document, you’ll find that the order has changed. Now the

    If you make these changes and rebuild the document, you’ll find that the order has changed. Now the sigma entry is before the pi entry. This is because \Sigma\pi and converts them to the Unicode characters 0x1D6F4 and 0x1D70B). -

    If you change

    If you change @entry to @symbolsortbib2gls gallery: sorting.) -

    You can further tidy the

    You can further tidy the bib file by removing the categoryindexplural. (Only the symbol category is significant in this example.) -

    You can make the

    You can make the bib files even more flexible by introducing field and entry aliases with field-aliasesentry-type-aliasesbib2gls manual for further details. -

    +

    -

    Top

    19.7 Cross-Referencing

    -

    +

    🔗sample-crossref.tex

    -

    This document illustrates how to cross-reference entries in the glossary. -

    
    +

    This document illustrates how to cross-reference entries in the glossary. +

    
        
    pdflatex sample-crossref
    makeglossaries sample-crossref
    pdflatex sample-crossref @@ -36245,10 +36105,10 @@ appropriate (usually within a language hook):

    -
    +
    \providecommand{\alsoname}{see also}
    -

    I’ve used

    I’ve used \providecommand as some packages define this command. This is used to create a “see also” cross-reference with the seesee -

    +
    \newglossaryentry{apple}{name=apple,description={firm, round fruit},  
    see=[\alsoname]{pear}}  
    \newglossaryentry{marrow}{name={marrow},  
     description={long vegetable with thin green skin and white flesh},  
     see={[\alsoname]courgette}}
    -

    -

    Note that “marrow” is included in the glossary even though it hasn’t been referenced in the text. This is +

    +

    Note that “marrow” is included in the glossary even though it hasn’t been referenced in the text. This is because the see key automatically triggers glossaries-extra (see below). -



    glossaries-extraThis example is quite simple to convert to postdotstylemods option. -

    In order to prevent the “marrow” entry from being automatically being added to the glossary as a result of +

    In order to prevent the “marrow” entry from being automatically being added to the glossary as a result of the cross-reference, you can use autoseeindex=]{glossaries-extra}

    The document build is the same, but now the “marrow” and “zucchini” entries aren’t present in the document. -

    Note that the “fruit” entry is still included even though it hasn’t been used in the document. This is because +

    Note that the “fruit” entry is still included even though it hasn’t been used in the document. This is because it was explicitly indexed with \glssee not via the see key. -

    The entries that contains

    The entries that contains see=[\alsoname] can be converted to use the seealso key:

    @@ -36361,7 +36221,7 @@ class="cmtt-10">}
    (The provided \alsoname definition may be removed.) -

    The original example redefines the cross-referencing format to use

    The original example redefines the cross-referencing format to use small caps:

    @@ -36380,7 +36240,7 @@ href="#ex:sampleAcrDesc">sampleAcrDesc.tex, this redefinition isn’t necessary if you have at least glossaries-extra v1.42. -

    bib2glsIf you want to switch to bibbib2gls. -

    
    +

    
        
    convertgls2bib sample-crossref.tex entries.bib

    @@ -36425,10 +36285,10 @@ by:

    -
    +
    \glssee{fruit}{pear,apple,banana}
    -

    into the

    into the fruit definition:

    =entries.bib] class="cmtt-10">\printglossaries with \printunsrtglossaries. The document build is now: -

    
    +

    
        
    pdflatex sample-crossref
    bib2gls sample-crossref
    pdflatex sample-crossref @@ -36484,7 +36344,7 @@ class="cmtt-10">\printunsrtglossaries
    The glossary now contains: apple, banana, courgette and pear. Note that it doesn’t contain fruit, zucchini or marrow. -

    Now change the selection criteria:

    +

    Now change the selection criteria:

    The glossary now includes fruit, zucchini and marrow. -

    The fruit and zucchini use the

    The fruit and zucchini use the see key which is a simple redirection for the reader. There’s no number listnumber list but in this case there are no locations as marrow hasn’t been used in the text. -

    With at least v2.0, there’s an alternative:

    +

    With at least v2.0, there’s an alternative:

    @@ -36541,20 +36401,20 @@ class="cmtt-10"> also}]
    In this case, the glossary includes fruit and zucchini but not marrow. -

    +

    -

    Top

    19.8 Custom Keys

    -

    +

    🔗sample-newkeys.tex

    -

    This document illustrates how add custom keys (using

    This document illustrates how add custom keys (using \glsaddkey). There are two custom keys ed, where the @@ -36570,11 +36430,11 @@ class="cmtt-10">text\glsaddkey* is required to ensure that the default value is expanded on definition if no alternative has been provided. -

    The entries are then defined as follows: +

    The entries are then defined as follows:

    -
    +
    \newglossaryentry{jump}{name={jump},description={}}  
    \newglossaryentry{run}{name={run},%  
     ed={ran},% @@ -36585,31 +36445,31 @@ provided.  
     ing={waddling},%  
     description={}}
    -

    -

    Each custom key is provided a set of commands analogous to

    +

    Each custom key is provided a set of commands analogous to \glsentrytext, that allows the key value to be accessed, and \glstext that allows the key value to be access with indexing and hyperlinking (where applicable). -

    If you find yourself wanting to create a lot of custom keys that produce minor variations of existing keys +

    If you find yourself wanting to create a lot of custom keys that produce minor variations of existing keys (such as different tenses) you may find it simpler to just use \glsdisp. When editing the document source, it’s usually simpler to read:

    -
    +
    The dog \glsdisp{jump}{jumped} over the duck.
    -

    than +

    than

    -
    +
    The dog \glsed{jump} over the duck.
    -

    -

    +

    bib2glsIf you want to convert this document to use bibbib2gls: -

    
    +

    
        
    convertgls2bib --index-conversion --preamble-only sample-newkeys.tex entries.bib

    @@ -36726,8 +36586,8 @@ class="cmtt-10">\newglossaryentry commands. Finally replace \printglossaries with \printunsrtglossaries. -

    The document build is now: -

    
    +

    The document build is now: +

    
        
    pdflatex sample-newkeys
    bib2gls sample-newkeys
    pdflatex sample-newkeys @@ -36743,22 +36603,22 @@ class="cmtt-10">--group
    switch. -

    +

    🔗sample-storage-abbr.tex

    -

    This document illustrates how add custom storage keys (using

    This document illustrates how add custom storage keys (using \glsaddstoragekey). The document build is: -

    
    +

    
        
    pdflatex sample-storage-abbr
    makeglossaries sample-storage-abbr
    pdflatex sample-storage-abbr

    -

    The custom storage key is called

    The custom storage key is called abbrtype which defaults to word if not explicitly set. Its value can be accessed with the provided custom command {abbrtype}{word}{\abbrtype}

    A custom abbreviation style is then defined that checks the value of this key and makes certain adjustments depending on whether or not its value is the default word. -

    This essentially forms a very similar function to the

    This essentially forms a very similar function to the glossaries-extra package’s category\glscategory}

    -



    glossaries-extraThis document is much simpler with the \end{document}

    -

    +

    🔗sample-storage-abbr-desc.tex

    -

    An extension of the previous example where the user needs to provide a description. +

    An extension of the previous example where the user needs to provide a description. -

    +

    🔗sample-chap-hyperfirst.tex

    -

    This document illustrates how to add a custom key using

    This document illustrates how to add a custom key using \glsaddstoragekey and hook into the \gls-like and @@ -36904,7 +36764,7 @@ class="cmtt-10">\gls-like and href="#sec:glstext-like">\glstext-like mechanism used to determine whether or not to hyperlink an entry. The document build is: -

    
    +

    
        
    pdflatex sample-chap-hyperfirst @@ -36970,7 +36830,7 @@ existence of the field. The glossaries-extra package provides utility commands designed to work on internal fields that don’t have an associated key and may not have had a value assigned. -



    glossaries-extraIf you want to switch to }

    The field name is still called chapter but there’s no longer an associated key or command. -

    +

    -

    Top

    19.9 Xindy (Option 3)

    -

    Most of the earlier

    Most of the earlier makeindex sample files can be adapted to use makeindex. -

    +

    🔗samplexdy.tex

    -

    The document uses UTF8 encoding (with the

    The document uses UTF8 encoding (with the inputenc package). This is information that needs to be passed to makeglossaries from the aux file. -

    By default, this document will create a

    By default, this document will create a xindy style file called -

    +
    \setStyleFile{samplexdy-mc}  
    \noist  
    \GlsSetXdyLanguage{}
    -

    it will set the style file to

    it will set the style file to samplexdy-mc.xdy instead. This provides an additional letter group for entries starting with “Mc” or “Mac”. If you use glossaries package will overwrite samplexdy-mc.xdy and you will lose the “Mc” letter group. -

    To create the document do: -

    
    +

    To create the document do: +

    
        
    pdflatex samplexdy
    makeglossaries samplexdy
    pdflatex samplexdy @@ -37145,19 +37005,19 @@ class="cmtt-10">makeglossaries-lite
  • if you are using the default style file samplexdy.xdy, then do (no line breaks): -

    
    +     

    
          
    xindy -L english -C utf8 -I xindy -M samplexdy -t samplexdy.glg -o samplexdy.gls samplexdy.glo

  • if you are using samplexdy-mc.xdy, then do (no line breaks): -

    
    +     

    
          
    xindy -I xindy -M samplexdy-mc -t samplexdy.glg -o samplexdy.gls samplexdy.glo

  • -

    This document creates a new command to use with the

    This document creates a new command to use with the format key in the optional argument of commands like table 6.1:

    -
    +
    \newcommand*{\hyperbfit}[1]{\textit{\hyperbf{#1}}}
    -

    Unfortunately, this definition doesn’t work for this particular document and some adjustments are needed (see -below). As a result of the adjustments, this command doesn’t actually get used by TEX, even though -hyperbfit is used in the

    Unfortunately, this definition doesn’t work for this particular document and some adjustments are needed (see +below). As a result of the adjustments, this command doesn’t actually get used by TeX, even though hyperbfit +is used in the format key. It does, however, need to be identified as an attribute so that xindy can -recognise it: + id="dx1-211019"> can recognise +it:

    -
    +
    \GlsAddXdyAttribute{hyperbfit}
    -

    This will add information to the

    This will add information to the xdy file when it’s created by \makeglossaries. If you prevent the creation of @@ -37203,7 +37062,7 @@ class="cmtt-10">xdy file (see the provided samplexdy-mc.xdy file). -

    In order to illustrate unusual location formats, this sample document provides a command called +

    In order to illustrate unusual location formats, this sample document provides a command called \tallynum{nn⟩:

    -
    +
    \newrobustcmd*{\tallynum}[1]{%  
     \ifnum\number#1<7  
      $\csname dice\romannumeral#1\endcsname$% @@ -37223,7 +37082,7 @@ class="cmti-10">n⟩:  
     \fi  
    }
    -

    This command needs to be robust to prevent it from being expanded when it’s written to any of the auxiliary +

    This command needs to be robust to prevent it from being expanded when it’s written to any of the auxiliary files. The \dicei, …, \dicevi commands are provided by the stix package, so that needs to be loaded. -

    An associated command

    An associated command \tally{counter} is defined that formats the value of the named ⟨\tallynum:

    -
    +
    \newcommand*{\tally}[1]{\tallynum{\arabic{#1}}}
    -

    (This shouldn’t be robust as it needs the counter value to expand.) The page numbers are altered to use this +

    (This shouldn’t be robust as it needs the counter value to expand.) The page numbers are altered to use this format (by redefining \thepage). -

    This custom location format also needs to be identified in the

    This custom location format also needs to be identified in the xdy file so that -

    +
    \GlsAddXdyLocation{tally}{% tally location format  
     :sep "\string\tallynum\space\glsopenbrace"  
     "arabic-numbers"  
     :sep "\glsclosebrace"  
    }
    -

    Again this information is written to the

    Again this information is written to the xdy file by \makeglossaries so if you use \noist then you need to manually add it to your custom xdy file. -

    When

    When xindy creates the associated glossary files, the locations will be written using:

    @@ -37313,7 +37172,7 @@ to be redefined in order to grab the number part in order to work out the locati If the value of \tally is changed so that it expands differently then these modifications won’t work. -

    Remember that in both cases, the second argument

    Remember that in both cases, the second argument #2 is in the form \tally{n}:

    -
    +
    \renewcommand{\glsXpageXglsnumberformat}[2]{%  
     \linkpagenumber#2%  
    } @@ -37329,15 +37188,15 @@ class="cmtt-10">}:  
     \textbf{\em\linkpagenumber#2}%  
    }
    -

    These need a command that can grab the actual number and correctly encapsulate it: +

    These need a command that can grab the actual number and correctly encapsulate it:

    -
    +
    \newcommand{\linkpagenumber}[2]{\hyperlink{page.#2}{#1{#2}}}
    -

    -

    If you want to try out the

    +

    If you want to try out the samplexdy-mc.xdy file, the entries starting with “Mac” or “Mc” will be placed in their own “Mc” letter group. Ideally it should be possible to do this simply with \GlsAddLetterGroup -

    +
    \setStyleFile{samplexdy-mc}  
    \noist  
    \GlsSetXdyLanguage{}
    -

    -

    This “Mc” group is suitable for names like “Maclaurin” but not for “Mach”. To prevent this, the

    +

    This “Mc” group is suitable for names like “Maclaurin” but not for “Mach”. To prevent this, the sort key for that value is set to lower case:

    -
    +
    \newglossaryentry{mach}{name={Mach, Ernst},  
    first={Ernst Mach},text={Mach},  
    sort={mach, Ernst},  
    description={Czech/Austrian physicist and philosopher}}
    -

    -

    +

    bib2glsIf you want to convert this document so that it uses bib2gls and so should be removed. -

    The definitions of

    The definitions of \hyperbfit should be retained (as well as \tallynum, \tally and the redefinition of \thepage). -

    The entries all need to be converted to the

    The entries all need to be converted to the bib format required by bib2gls. -

    
    +

    
        
    convertgls2bib --preamble-only samplexdy.tex entries.bib

    @@ -37451,12 +37310,12 @@ class="cmtt-10">\glsentryname\glsfmtname. -

    Finally, replace

    Finally, replace \printglossaries with \printunsrtglossaries. The document build is now: -

    
    +

    
        
    pdflatex samplexdy
    bib2gls --group samplexdy
    pdflatex samplexdy @@ -37464,7 +37323,7 @@ class="cmtt-10">\printunsrtglossaries
    -

    This results in a slightly different ordering from the original document (without the “Mc” letter group). In +

    This results in a slightly different ordering from the original document (without the “Mc” letter group). In the original example, “Mach number” was listed before “Mach, Ernest”. The modified document now has “Mach, Ernest” before “Mach number”. This difference is due to bib2gls manual for further details of this option, and also see the examples chapter of that manual for alternative approaches when creating entries that contain people’s names. -

    If you want the “Mc” letter group, it can be obtained by providing a custom sort rule:

    +

    If you want the “Mc” letter group, it can be obtained by providing a custom sort rule:

    \GlsXtrLoadResources] href="#glo:xindy">xindy, this puts “Mach” into the “Mc” letter group. -

    One way to get around this problem is to define a custom command to help identify genuine “Mc”/“Mac” +

    One way to get around this problem is to define a custom command to help identify genuine “Mc”/“Mac” prefixes with names that happen to start with “Mac”. For example:

     Mach}
    }
    -
    With LATEX, this command should simply do its argument: +
    With LaTeX, this command should simply do its argument: -
    +
    \newcommand{\Mac}[1]{#1}
    -

    However, when

    However, when bib2gls works out the -

    +
    \providecommand{\Mac}[1]{MC}
    -

    (Remember that

    (Remember that break-at=word will strip spaces and punctuation so don’t include them unless you switch to @@ -37698,7 +37556,7 @@ class="cmtt-10">=wordbreak-at=none.) -

    So add the first definition of

    So add the first definition of \Mac to the tex file and modify {"\providecommand{\Mac}[1]{MC}"}

    Then modify the “Mc”/“Mac” entries as appropriate (see the above “McAdam” and “Maclaurin” examples). -

    The custom sort rule needs to be modified:

    +

    The custom sort rule needs to be modified:

    \GlsXtrLoadResources]
    This will create a “Mc” letter group that only includes the names that start with the custom \Mac command. -

    Other alternatives include moving

    Other alternatives include moving @preamble into a separate bibbib2gls -

    +

    🔗samplexdy2.tex

    -

    This document illustrates how to use the

    This document illustrates how to use the glossaries package where the location numbers don’t follow a standard format. This example will only work with xindy. To create the document do: -

    
    +

    
        
    pdflatex samplexdy2
    makeglossaries samplexdy2
    pdflatex samplexdy2 @@ -37826,7 +37684,7 @@ The explicit xindy call is: -

    
    +

    
        
    xindy -L english -C utf8 -I xindy -M samplexdy2 -t samplexdy2.glg -o samplexdy2.gls samplexdy2.glo

    @@ -37838,57 +37696,57 @@ class="cmtt-10">xindy -
    +
    \usepackage[xindy,counter=section]{glossaries}
    -

    The document employs an eccentric section numbering system for illustrative purposes. The section numbers +

    The document employs an eccentric section numbering system for illustrative purposes. The section numbers are prefixed by the chapter number in square brackets:

    -
    +
    \renewcommand*{\thesection}{[\thechapter]\arabic{section}}
    -

    Parts use Roman numerals: +

    Parts use Roman numerals:

    -
    +
    \renewcommand*{\thepart}{\Roman{part}}
    -

    The section hyperlink name includes the part: +

    The section hyperlink name includes the part:

    -
    +
    \renewcommand*{\theHsection}{\thepart.\thesection}
    -

    This custom numbering scheme needs to be identified in the

    This custom numbering scheme needs to be identified in the xdy file:

    -
    +
    \GlsAddXdyLocation["roman-numbers-uppercase"]{section}{:sep "["  
      "arabic-numbers" :sep "]" "arabic-numbers"  
    }
    -

    If the part is 0 then

    If the part is 0 then \thepart will be empty (there isn’t a zero Roman numeral). An extra case is needed to catch this:

    -
    +
    \GlsAddXdyLocation{zero.section}{:sep "["  
      "arabic-numbers" :sep "]" "arabic-numbers"  
    }
    -

    Note that this will stop xindy giving a warning, but the location hyperlinks will be invalid if no

    Note that this will stop xindy giving a warning, but the location hyperlinks will be invalid if no \part is used. -

    bib2glsIf you want to switch to bib2gls: -

    
    +

    
        
    convertgls2bib --preamble-only samplexdy2.tex entries.bib

    @@ -37939,14 +37797,14 @@ class="cmtt-10">\printglossaries with \printunsrtglossaries. -

    The document build is: -

    
    +

    The document build is: +

    
        
    pdflatex samplexdy2
    bib2gls samplexdy2
    pdflatex samplexdy2

    -

    With unusual numbering systems, it’s sometimes better to use

    With unusual numbering systems, it’s sometimes better to use record=namerefsampleSec.tex. -

    +

    🔗samplexdy3.tex

    -

    This document is very similar to

    This document is very similar to samplexdy.tex but uses the command \Numberstring from the @@ -37995,13 +37853,13 @@ class="cmtt-10">\tally command from the earlier example. -

    +

    🔗sampleutf8.tex

    -

    This is another example that uses

    This is another example that uses xindy. Unlike xindynon-Latin characters. This document uses UTF-8 encoding. To create the document do: -

    
    +

    
        
    pdflatex sampleutf8
    makeglossaries sampleutf8
    pdflatex sampleutf8 @@ -38024,7 +37882,7 @@ The explicit xindy call is (no line breaks): -

    +

    
     
    xindy -L @@ -38044,18 +37902,18 @@ sampleutf8.gls sampleutf8.glo

    -

    If you remove the

    If you remove the xindy option from sampleutf8.tex and do: -

    
    +

    
        
    pdflatex sampleutf8
    makeglossaries sampleutf8
    pdflatex sampleutf8

    or -

    
    +

    
        
    pdflatex sampleutf8
    makeglossaries-lite sampleutf8
    pdflatex sampleutf8 @@ -38069,11 +37927,11 @@ href="#glo:makeindex">makeindex (no line breaks): -

    
    +

    
        
    makeindex -s sampleutf8.ist -t sampleutf8.glg -o sampleutf8.gls sampleutf8.glo

    -

    bib2glsIf you want to switch to number lists, but in this case there won’t be any locations as there’s no actual indexing. -

    The entries need to be converted to the

    The entries need to be converted to the bib format required by bib2gls: -

    
    +

    
        
    convertgls2bib --preamble-only --texenc UTF-8 --bibenc UTF-8 sampleutf8.tex entries.bib

    @@ -38151,7 +38009,7 @@ href="#glo:bib2gls">bib2gls manual for further details.) -

    Next replace

    Next replace \makeglossaries with:

    ]
    and remove all the \newglossaryentry commands. -

    Iterative commands like

    Iterative commands like \glsaddall don’t work with bib2glsnumber lists. -

    Finally, replace

    Finally, replace \printglossaries with \printunsrtglossaries. The build process is now: -

    
    +

    
        
    pdflatex sampleutf8
    bib2gls --group sampleutf8
    pdflatex sampleutf8 @@ -38238,11 +38096,11 @@ class="cmtt-10">glg
    +
    TeX character encoding: UTF-8
    -

    -

    The document language, if it has been set, is also added to the

    +

    The document language, if it has been set, is also added to the aux file when the record=is]

    (Icelandic). -

    +

    -

    Top

    19.10 No Indexing Application (Option 1)

    -

    +

    🔗sample-noidxapp.tex

    -

    This document illustrates how to use the

    This document illustrates how to use the glossaries package without an external indexing application (Option 1). To create the complete document, you need to do: -

    
    +

    
        
    pdflatex sample-noidxapp
    pdflatex sample-noidxapp
    @@ -38351,22 +38209,22 @@ href="#option3">3 or, with glossaries-extra, Option 4). -

    The larger the list of entries, the longer the document build time. This method is very inefficient for large +

    The larger the list of entries, the longer the document build time. This method is very inefficient for large glossaries. See Gallery: glossaries performance for a comparison. -

    +

    🔗sample-noidxapp-utf8.tex

    -

    As the previous example, except that it uses the

    As the previous example, except that it uses the inputenc package. To create the complete document, you need to do: -

    
    +

    
        
    pdflatex sample-noidxapp-utf8
    pdflatex sample-noidxapp-utf8
    @@ -38377,22 +38235,22 @@ href="#glo:nonlatinalph">non-Latin alphabets. Use Options 3 or 4 instead. -

    +

    -

    Top

    19.11 Other

    -

    +

    🔗sample4col.tex

    -

    This document illustrates a four column glossary where the entries have a symbol in addition to the name and +

    This document illustrates a four column glossary where the entries have a symbol in addition to the name and description. To create the complete document, you need to do: -

    
    +

    
        
    pdflatex sample4col
    makeglossaries sample4col
    pdflatex sample4col @@ -38401,7 +38259,7 @@ description. To create the complete document, you need to do:

    or -

    
    +

    
        
    pdflatex sample4col
    makeglossaries-lite sample4col
    pdflatex sample4col @@ -38416,7 +38274,7 @@ class="cmtt-10">bib2gls
    , simply omit the --group command line option.) -

    This example uses the

    This example uses the long4colheaderborder. This style doesn’t allow multi-line descriptions. You may prefer to use \usepackage{glossary-longbooktabs} class="cmtt-10">\setglossarystyle{altlongragged4col-booktabs}

    -



    glossaries-extraThe {glossaries-extra} href="https://www.dickimaw-books.com/gallery/glossaries-styles/" >gallery of predefined styles. -

    +

    🔗sample-numberlist.tex

    -

    This document illustrates how to reference the

    This document illustrates how to reference the number list in the document text. This requires an additional -LATEX run: -

    
    +LaTeX run:
    +

    
        
    pdflatex sample-numberlist
    makeglossaries sample-numberlist
    pdflatex sample-numberlist @@ -38539,10 +38396,10 @@ numbers.

    -
    +
    \usepackage[savenumberlist,counter=chapter]{glossaries}
    -

    The

    The number list can’t be obtained until \printglossary and is then saved in the aux file so that it’s available on -the next LATEX run. -

    This document contains both commands:

    +the next LaTeX run. +

    This document contains both commands:

    This{sample}).
    Without hyperref, the first list shows as “1–3, 5 & 6” and the second list shows as “1–3, 5, 6”. -

    Note that you can’t use

    Note that you can’t use \glsdisplaynumberlist with hyperref -

    +
    Package glossaries Warning: \glsdisplaynumberlist doesn't work with  
    hyperref.  
    Using \glsentrynumberlist instead
    -

    Now both lists show as “1–3, 5, 6”. -

    If you switch to

    Now both lists show as “1–3, 5, 6”. +

    If you switch to Option 1 (replace \makeglossaries with \makenoidxglossaries and replace \printglossaries with \printnoidxglossaries), then the document build is simply: -

    
    +

    
        
    pdflatex sample-numberlist
    pdflatex sample-numberlist
    @@ -38621,7 +38477,7 @@ class="cmtt-10">\glsdisplaynumberlist
    hyperref, however there are no ranges, so the first list shows as “1, 2, 3, 5, & 6” and the second list shows as “1, 2, 3, 4, 5, 6”. -

    bib2glsIf you want to switch to bibbib2gls: -

    
    +

    
        
    convertgls2bib sample-numberlist.tex entries.bib

    @@ -38671,7 +38527,7 @@ class="cmtt-10">\newglossaryentry command from the document preamble. Fin class="cmtt-10">\printglossaries with \printunsrtglossaries. The build process is now: -

    
    +

    
        
    pdflatex sample-numberlist
    bib2gls sample-numberlist
    pdflatex sample-numberlist @@ -38688,7 +38544,7 @@ class="cmtt-10">\glsxtrfieldformatlist
    {sample}{loclist}
    which will show the complete list without ranges “1, 2, 3, 5 & 6”. -

    This method works much better than using the

    This method works much better than using the savenumberlist option because loclist internal field (which is also used by Option 1). -

    With Options 

    With Options 2 and 3, both \printglossary. This means that it’s quite hard to gather information obtained by the indexing application. -

    bib2gls, on the other hand, doesn’t write a file containing the glossary. It writes a file containing the entry @@ -38733,7 +38589,7 @@ definitions and uses internal fields to save the indexing information. The gloss class="cmtt-10">\printunsrtglossary, which simply iterates over all defined entries and fetches the required information from those internal fields. -

    The

    The \glsdisplaynumberlist and \glsentrynumberlist\glsxtrfieldformatlist{sample}{loclist}

    In this example, this produces “1, 2, 3, 5 & 6”. -

    Note the difference if you use the

    Note the difference if you use the record=namerefrecord. -

    +

    🔗sample-nomathhyper.tex

    -

    This document illustrates how to selectively enable and disable entry hyperlinks in

    This document illustrates how to selectively enable and disable entry hyperlinks in \glsentryfmt. The document build is: -

    
    +

    
        
    pdflatex sample-nomathhyper
    makeglossaries sample-nomathhyper
    pdflatex sample-nomathhyper @@ -38791,7 +38647,7 @@ been forced off (with the hyper=false key). -



    glossaries-extraIf you want to switch to  definition

    -

    +

    🔗sample-entryfmt.tex

    -

    This document illustrates how to change the way an entry is displayed in the text. (This is just a test document. +

    This document illustrates how to change the way an entry is displayed in the text. (This is just a test document. For a real document, I recommend you use the siunitx package to typeset units.) The document build is: -

    
    +

    
        
    pdflatex sample-entryfmt
    makeglossaries sample-entryfmt
    pdflatex sample-entryfmt @@ -38871,7 +38727,7 @@ class="cmti-10">not
    \glssymbol (which would result in nested link text). -



    glossaries-extraIf you want to switch to the symbol={km}}

    Note that in this case the symbol is now outside of the hyperlink. -

    +

    🔗sample-prefix.tex

    -

    This document illustrates the use of the

    This document illustrates the use of the glossaries-prefix package. An additional run is required to ensure the table of contents is up-to-date: -

    
    +

    
        
    pdflatex sample-prefix
    makeglossaries sample-prefix
    pdflatex sample-prefix @@ -38988,7 +38844,7 @@ class="cmtt-10">\space
    }}
    -



    glossaries-extraIf you want to convert this example to use glossaries package, unless you want to switch to using bib2gls. -

    bib2glsIf you want to switch to bibbib2gls: -

    
    +

    
        
    convertgls2bib --preamble-only sample-prefix.tex entries.bib

    @@ -39083,13 +38939,13 @@ class="cmtt-10">\printunsrtacronyms
    The document build is now: -

    
    +

    
        
    pdflatex sample-prefix
    bib2gls sample-prefix
    pdflatex sample-prefix

    -

    With

    With bib2gls v2.0+, you don’t need to manually insert the spaces at the end of the prefixes. Instead you @@ -39217,13 +39073,13 @@ class="cmtt-10">bib2gls -

    +

    🔗sampleaccsupp.tex

    -

    This document uses the

    This document uses the glossaries-accsupp package (see §18 -

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

    This provides additional keys that aren’t available with just the base package, which may be used to provide +

    This provides additional keys that aren’t available with just the base package, which may be used to provide replacement text. The replacement text is inserted using accsupp’s \EndAccSuppaccsupp package for further details of those commands. -

    Note that this example document is provided to demonstrate

    Note that this example document is provided to demonstrate glossaries-accsupp as succinctly as possible. The resulting document isn’t fully accessible as it’s not tagged. See the accessibilitytagpdf packages for further information about tagging documents. -

    It’s not essential to use

    It’s not essential to use glossaries-accsupp. You can simply insert the replacement text directly into the field values. For example:

    -
    +
    \newglossaryentry{Drive}{  
     name={\BeginAccSupp{Actual=Drive}Dr.\EndAccSupp{}},  
     description={Drive} @@ -39276,29 +39132,28 @@ values. For example:  
      [height=20pt]{example-image}\protect\EndAccSupp{}}  
    }
    -

    However, this can cause interference (especially with case-changing). With

    However, this can cause interference (especially with case-changing). With glossaries-accsupp it’s possible to obtain the field values without the accessibility information if required. (If in the future \includegraphics is given extra options to provide replacement text then the image example here won’t be necessary. However, the -example can be adapted for images created with TEX code.) -

    The acronym style is set using: +example can be adapted for images created with TeX code.) +

    The acronym style is set using:

    -
    +
    \setacronymstyle{long-short}
    -

    The first abbreviation is straightforward: +

    The first abbreviation is straightforward:

    -
    +
    \newacronym{eg}{e.g.}{for example}
    -

    The

    The shortaccess replacement text is automatically set to the long form. The next abbreviation is awkward as the long form contains formatting commands which can’t be included in the replacement text. This means that @@ -39321,7 +39176,7 @@ class="cmtt-10"> Zeichenprogramm}

    In the above two cases, the short form obtained in \gls will use the “E” PDF element. -

    By way of comparison, there are some entries that are technically abbreviations but are defined using +

    By way of comparison, there are some entries that are technically abbreviations but are defined using \newglossaryentry instead of access={Drive}}

    These will use PDF’s “ActualText” element (not “E”). -

    The next entry is a symbol (the integration symbol

    The next entry is a symbol (the integration symbol ). This could be defined simply as:

    -
    +
    \newglossaryentry{int}{name={int},description={integral},  
     symbol={\ensuremath{\int}}}
    -

    and then referenced in the text like this: +

    and then referenced in the text like this:

    -
    +
    Symbol: \gls{int} (\glssymbol{int}).
    -

    This results in the text “Symbol: integral (

    This results in the text “Symbol: integral ( ).” However if you copy and paste this from the PDF you will find the resulting text is “Symbol: int (R).” This is what’s actually read out by the text-to-speech system. -

    It would be better if the actual text was the Unicode character 0x222B. This would not only assist the +

    It would be better if the actual text was the Unicode character 0x222B. This would not only assist the text-to-speech system but also make it easier to copy and paste the text. The simplest method is to identify the character by its hexadecimal code, but in order to do this the \BeginAccSupp command needs to have the options adjusted. -

    In order to determine whether to use “E”, “ActualText” or “Alt” for a particular field,

    In order to determine whether to use “E”, “ActualText” or “Alt” for a particular field, glossaries-accsupp will check if the command shortaccess\glsaccsupp command is used instead. -

    This means that in order to simply set

    This means that in order to simply set symbolaccess to the hexadecimal character code, I need to provide a command called symbolaccess={222B} class="cmtt-10">}

    -

    The final entry has an image stored in the

    The final entry has an image stored in the user1 key. (The image file is provided with the mwe\glsnoexpandfields before defining the command. See §4.4 Expansion.) -

    If you try this example and inspect the +

    If you try this example and inspect the PDF19.4 then @@ -39496,7 +39351,7 @@ you will find content like:

    -
    +
    /Span << /ActualText (Doctor) >> BDC  
      BT  
        /F8 9.9626 Tf @@ -39505,7 +39360,7 @@ you will find content like:  
      ET  
    EMC
    -

    This shows that “ActualText” was used for

    This shows that “ActualText” was used for \gls{Doctor}. The integral symbol ( ) created with @@ -39514,7 +39369,7 @@ class="cmtt-10">\glssymbol{int} is:

    -
    +
    /Span << /ActualText (\376\377"+) >> BDC  
      BT  
        /F1 9.9626 Tf @@ -39523,13 +39378,13 @@ class="cmtt-10">\glssymbol{int} is:  
      ET  
    EMC
    -

    Again, “ActualText” has been used, but the character code has been supplied. The image created with +

    Again, “ActualText” has been used, but the character code has been supplied. The image created with \glsuseri{sampleimage} is:

    -
    +
    /Span << /Alt (a boilerplate image used in examples) >> BDC  
      1 0 0 1 106.588 618.391 cm  
      q @@ -39541,14 +39396,14 @@ class="cmtt-10">\glsuseri{sampleimage} is:  
      Q  
    EMC
    -

    This shows that “Alt” has been used. -

    The first use of

    This shows that “Alt” has been used. +

    The first use of \gls{eg} produces the long form (not reproduced here) followed by the short form:

    -
    +
    /Span << /E (for example) >> BDC  
      BT  
        /F8 9.9626 Tf @@ -39557,11 +39412,11 @@ form:  
      ET  
    EMC
    -

    The subsequent use also has the “E” element: +

    The subsequent use also has the “E” element:

    -
    +
    /Span << /E (for example) >> BDC  
      BT  
        /F8 9.9626 Tf @@ -39570,7 +39425,7 @@ form:  
      ET  
    EMC
    -

    Similarly for

    Similarly for \acrshort{eg}. You can also use the debug=showaccsupp\BeginAccSupp. -

    If the

    If the \setacronymstyle command is removed (or commented out) then the result would be different. The \setacronymstyle\setacronymstyle. -

    If you want to convert this example so that it uses

    If you want to convert this example so that it uses glossaries-extra, make sure you have at least version 1.42 of the extension package.
    -

    -


    +


    glossaries-extraIf you want to convert this example so that it uses makeglossaries-lite you don’t need to worry about it. However, if you’re not using those helper scripts then you will need to adjust the file extensions in your document build process. -

    The style command

    The style command \setacronymstyle{long-short} needs to be replaced with:

    \glsxtrlong\glsxtrfull. -

    You may notice a slight difference from the original example. The

    You may notice a slight difference from the original example. The shortaccess field now shows ⟨long⟩ (⟨glossaries-extra redefines \glsdefaultshortaccess to include the short form. -

    Now that the extension package is being used, there are some other modifications that would tidy up the +

    Now that the extension package is being used, there are some other modifications that would tidy up the code and fix a few issues. -

    The “Doctor” and “Drive” entries should really be defined as abbreviations but they shouldn’t be +

    The “Doctor” and “Drive” entries should really be defined as abbreviations but they shouldn’t be expanded on first use. The short-nolong style can achieve this and it happens to be the default style @@ -39719,22 +39574,22 @@ href="#glo:firstuse">first use of \gls{Doctor} is just “Dr”. This means that the “E” element will be used instead of “ActualText”. Now I don’t need to supply the accessibility text as its obtained from the long form. -

    The “Drive” entry can be similarly defined but it has the awkward terminating full stop. This means that I +

    The “Drive” entry can be similarly defined but it has the awkward terminating full stop. This means that I had to omit the end of sentence terminator in:

    -
    +
    \gls{Doctor} Smith lives at 2, Blueberry \gls{Drive}
    -

    This looks odd when reading the document source and it’s easy to forgot. This is very similar to the situation +

    This looks odd when reading the document source and it’s easy to forgot. This is very similar to the situation in the sample-dot-abbr.tex example. I can again use the discardperiod attribute, but I need to assign a different category so that it doesn’t interfere with the “Doctor” entry. -

    The category is simply a label that’s used in the construction of some internal command names. This means +

    The category is simply a label that’s used in the construction of some internal command names. This means that it must be fully expandable, but I can choose whatever label I like (general, number are used by various commands provided by glossaries-extra). -

    In this case, I’ve decided to have a category called

    In this case, I’ve decided to have a category called shortdotted to indicate an abbreviation that ends with a dot but only the short form is shown on first use:

    -

    To further illustrate categories, let’s suppose the symbol and image should be in the

    To further illustrate categories, let’s suppose the symbol and image should be in the name field instead of the \glssymbolaccsupp and \glsuseriaccsupp commands won’t be used. I can’t deal with both cases if I just provide \glsnameaccsupp. -

    I could provide category-field versions, such as

    I could provide category-field versions, such as \glsxtrsymbolnameaccsupp, but remember that this only covers accessing the nameaccsupp. -

    +

    🔗sample-ignored.tex

    -

    This document defines an ignored glossary for common terms that don’t need a definition. The document build +

    This document defines an ignored glossary for common terms that don’t need a definition. The document build is: -

    
    +

    
        
    pdflatex sample-ignored
    makeglossaries sample-ignored
    pdflatex sample-ignored @@ -39954,23 +39809,23 @@ class="cmtt-10">{common}
    type: -
    +
    \newglossaryentry{commonex}{type=common,name={common term}}
    -

    Note that the

    Note that the description key isn’t required. This term may be referenced with \gls (which is useful for consistent formatting) but it won’t be indexed. -

    +

    🔗sample-entrycount.tex

    -

    This document uses

    This document uses \glsenableentrycount and \cgls§14.1 Counting the Number of Times an Entry has been Used (First Use Flag Unset)) so that acronyms only used once don’t appear in the list of acronyms. The document build is: -

    
    +

    
        
    pdflatex sample-entrycount
    pdflatex sample-entrycount
    makeglossaries sample-entrycount
    pdflatex sample-entrycount

    -Note the need to call LATEX twice before makeglossaries, and then a final LATEX call is required at the + id="dx1-226003">, and then a final LaTeX call is required at the end. -

    The

    The glossaries-extra package has additions that extend this mechanism and comes with some other sample files related to entry counting.
    -

    -

    If you switch to

    +

    If you switch to bib2gls you can use record counting instead. See the bib2gls manual for further details.
    -

    +

    -

    -

    +

    Top

    20. Troubleshooting

    -

    In addition to the sample files listed in

    In addition to the sample files listed in §19 Sample Documents, the glossaries package comes with some @@ -40026,27 +39879,23 @@ class="cmtt-10">mwe-acr-desc.tex, which can be used for testing. These should be located in the samples subdirectory (folder) of the glossaries documentation -directory. The location varies according to your operating system and TEX installation. For example, on my +directory. The location varies according to your operating system and TeX installation. For example, on my Linux partition it can be found in /usr/local/texlive/2014/texmf-dist/doc/latex/glossaries/. The makeglossariesgui application can also be used to test for various problems. Further information on -debugging LATEX code is available at http://www.dickimaw-books.com/latex/minexample/. -

    If you have any problems, please first consult the

    If you have any problems, please first consult the glossaries FAQ. If that doesn’t help, try posting your query to somewhere like the comp.text.tex newsgroup, the LATEX Community Forum or TEX on StackExchange. +href="http://www.latex-community.org/" >LaTeX Community Forum or TeX on StackExchange. Bug reports can be submitted via my package bug report form. @@ -41228,9 +41077,9 @@ class="cmss-10">etoolbox package  735, 736, 737, 738, 739, 740, 738, 739, 740, 741, 742
    Extended Latin Alphabet  1487, 1488
    \glscurrentfieldvalue  1489, 1490, 1491
    @@ -42608,23 +42457,23 @@ href="glossaries-user.html#dx1-220039" >1559
    \glsdoifexists  1560
    \glsdoifexistsordo  1561
    \glsdoifexistsorwarn  1562
    \glsdoifnoexists  1563
    \glsdoifnoexistsordo  1564
    \glsdosanitizesort  2452
    \ifglsdescsuppressed  2453
    \ifglsentryexists  2454
    \ifglsfieldcseq  2455
    \ifglsfielddefeq  2456
    \ifglsfieldeq  2457, 2458
    \ifglshaschildren  2459, 2460
    \ifglshasdesc  2461
    \ifglshasfield  2462
    \ifglshaslong  2463, 2464, 2465, 2466, 2467
    \ifglshasparent  2468
    \ifglshasprefix  2472
    \ifglshasshort  2473, 2474, 2475
    \ifglshassymbol  2476, 2477, 2478
    \ifglsucmark  2482, 2483, 2484, 2485, 2486, 2487, 3067, 3068, 3069, 3070, 3071, 3072, 3071, 3072, 3073, 3074, 3075, 3181, 3182, 3183, 3184, 3185, 3186, 3185, 3186, 3187, 3188, 3189, 3258, 3259, 3260, 3261, 3262, 3262, 3263, 3264
        3439, 3440, 3441, 3442, 3443, 3443, 3444, 3445, 3446, 3541, 3542, 3543, 3544, 3545, 3545, 3546, 3547, 3548, 3608, 3609, 3610, 3611, 3612, 3613, 3612, 3613, 3614, 3615, 3616, 3654, 3655, 3656, 3657
    +href="glossaries-user.html#dx1-169002" >3657, 3658
    \newline  3658, 3659
    +href="glossaries-user.html#dx1-112023" >3659, 3660
    \newterm  3660, 3661
    +class="cmti-10">3661, 3662
    ngerman package  3662, 3663, 3664, 3665
    +href="glossaries-user.html#dx1-13029" >3663, 3664, 3665, 3666
    \nohyperpage  3666
    +href="glossaries-user.html#dx1-130013" >3667
    \noist  3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678
    +class="cmti-10">3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679
    Non-Latin Alphabet  3679
    +class="cmbx-10">3680
    non-Latin character  3680, 3681, 3681, 3682, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690
    +class="cmbx-10">3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691
    \nopostdesc  3691, 3692, 3692, 3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703
    +class="cmti-10">3693, 3694, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704
    \nopostdot  3704
    +href="glossaries-user.html#dx1-202034" >3705
    \null  3705, 3706
    +href="glossaries-user.html#dx1-141009" >3706, 3707
    \number  3707
    +href="glossaries-user.html#dx1-129027" >3708
    number list  3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795
    +class="cmbx-10">3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796
    \numberline  3796
    +href="glossaries-user.html#dx1-40002" >3797

    O \oldacronym  3797, 3798
    +class="cmti-10">3798, 3799

    P package options:
        abbreviations  3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806
    +href="glossaries-user.html#dx1-4011" >3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807
        accsupp  3807, 3808, 3809
    +href="glossaries-user.html#x1-1020002.8" >3808, 3809, 3810
        acronym  3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844
    +href="glossaries-user.html#dx1-14026" >3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845
            true  3845, 3846
    +href="glossaries-user.html#dx1-25002" >3846, 3847
        acronymlists  3847, 3848, 3849, 3850, 3851, 3852, 3853
    +href="glossaries-user.html#x1-930002.7" >3848, 3849, 3850, 3851, 3852, 3853, 3854
        acronyms  3854, 3855, 3856
    +href="glossaries-user.html#dx1-84003" >3855, 3856, 3857
        automake  3857, 3858, 3859, 3860
    +href="glossaries-user.html#dx1-7010" >3858, 3859, 3860, 3861
            false  3861
    +href="glossaries-user.html#dx1-79021" >3862
            immediate  3862, 3863, 3864
    +href="glossaries-user.html#dx1-79005" >3863, 3864, 3865
            true  3865, 3866
    +href="glossaries-user.html#dx1-79001" >3866, 3867
        autoseeindex  3867
    +href="glossaries-user.html#x1-660002.4" >3868
            false  3868, 3869
    +href="glossaries-user.html#dx1-204008" >3869, 3870
        compatible-2.07  3870, 3871, 3872
    +href="glossaries-user.html#x1-1050002.8" >3871, 3872, 3873
        compatible-3.07  3873, 3874, 3875
    +href="glossaries-user.html#dx1-90003" >3874, 3875, 3876
        counter  3876, 3877, 3878, 3879, 3880
    +href="glossaries-user.html#x1-570002.3" >3877, 3878, 3879, 3880, 3881
            equation  3881
    +href="glossaries-user.html#dx1-189002" >3882
            page  3882
    +href="glossaries-user.html#dx1-57001" >3883
        counterwithin  3883, 3884, 3885, 3886, 3887
    +href="glossaries-user.html#x1-470002.3" >3884, 3885, 3886, 3887, 3888
        debug  3888, 3889, 3890, 3891
    +href="glossaries-user.html#dx1-27002" >3889, 3890, 3891, 3892
            all  3892
    +href="glossaries-user.html#dx1-30004" >3893
            false  3893, 3894
    +href="glossaries-user.html#dx1-30001" >3894, 3895
            showaccsupp  3895, 3896, 3897
    +href="glossaries-user.html#dx1-30011" >3896, 3897, 3898
            showtargets  3898
    +href="glossaries-user.html#dx1-30007" >3899
            showwrgloss  3899
    +href="glossaries-user.html#dx1-30003" >3900
            true  3900
    +href="glossaries-user.html#dx1-30002" >3901
        description (deprecated)  3901, 3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909
    +href="glossaries-user.html#x1-960002.7.1" >3902, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910
        disablemakegloss  3910, 3911
    +href="glossaries-user.html#x1-800002.5" >3911, 3912
        docdef  3912
    +href="glossaries-user.html#x1-370002.1" >3913
            atom  3913, 3914
    +href="glossaries-user.html#dx1-23002" >3914, 3915
            false  3915
    +href="glossaries-user.html#dx1-5013" >3916
            restricted  3916, 3917, 3918, 3919
    +href="glossaries-user.html#dx1-5012" >3917, 3918, 3919, 3920
            true  3920, 3921
    +href="glossaries-user.html#dx1-5011" >3921, 3922
        dua (deprecated)  3922, 3923
    +href="glossaries-user.html#dx1-96009" >3923, 3924
        entrycounter  3924, 3925, 3926, 3927, 3928
    +href="glossaries-user.html#x1-460002.3" >3925, 3926, 3927, 3928, 3929
            false  3929
    +href="glossaries-user.html#dx1-46001" >3930
            true  3930
    +href="glossaries-user.html#dx1-47001" >3931
        equations  3931
    +href="glossaries-user.html#x1-680002.4" >3932
        esclocations  3932
    +href="glossaries-user.html#x1-630002.4" >3933
            false  3933, 3934, 3935
    +href="glossaries-user.html#dx1-63003" >3934, 3935, 3936
            true  3936
    +href="glossaries-user.html#dx1-63001" >3937
        floats  3937
    +href="glossaries-user.html#x1-690002.4" >3938
        footnote (deprecated)  3938, 3939, 3940, 3941, 3942, 3943
    +href="glossaries-user.html#dx1-96004" >3939, 3940, 3941, 3942, 3943, 3944
        hyperfirst  3944, 3945, 3946, 3947
    +href="glossaries-user.html#x1-340002.1" >3945, 3946, 3947, 3948
            false  3948, 3949, 3950, 3951, 3952, 3953, 3954
    +href="glossaries-user.html#dx1-34014" >3949, 3950, 3951, 3952, 3953, 3954, 3955
            true  3955, 3956
    +href="glossaries-user.html#dx1-34001" >3956, 3957
        index  3957, 3958, 3959, 3960, 3961, 3962, 3963
    +href="glossaries-user.html#dx1-84006" >3958, 3959, 3960, 3961, 3962, 3963, 3964
        indexcounter  3964
    +href="glossaries-user.html#x1-700002.4" >3965
        indexcrossrefs  3965
    +href="glossaries-user.html#x1-650002.4" >3966
        indexonlyfirst  3966, 3967, 3968, 3969
    +href="glossaries-user.html#x1-640002.4" >3967, 3968, 3969, 3970
            false  3970
    +href="glossaries-user.html#dx1-64001" >3971
        kernelglossredefs  3971
    +href="glossaries-user.html#x1-1070002.8" >3972
            false  3972
    +href="glossaries-user.html#dx1-107002" >3973
        makeindex  3973, 3974, 3975
    +href="glossaries-user.html#dx1-25004" >3974, 3975, 3976
        noglossaryindex  3976
    +href="glossaries-user.html#x1-880002.6" >3977
        nogroupskip  3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984
    +href="glossaries-user.html#x1-590002.3" >3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985
            false  3985
    +href="glossaries-user.html#dx1-59001" >3986
        nohyperfirst  3986
    +href="glossaries-user.html#dx1-34025" >3987
        nohypertypes  3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995
    +href="glossaries-user.html#dx1-34003" >3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996
            index  3996
    +href="glossaries-user.html#dx1-87013" >3997
        nolangwarn  3997, 3998
    +href="glossaries-user.html#dx1-3" >3998, 3999
        nolist  3999, 4000, 4001
    +href="glossaries-user.html#x1-520002.3" >4000, 4001, 4002
        nolong  4002, 4003, 4004, 4005, 4006
    +href="glossaries-user.html#x1-500002.3" >4003, 4004, 4005, 4006, 4007
        nomain  4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018
    +href="glossaries-user.html#x1-840002.6" >4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019
        nomissingglstext  4019
    +href="glossaries-user.html#x1-1040002.8" >4020
        nonumberlist  4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032
    +href="glossaries-user.html#dx1-3060" >4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033
        nopostdot  4033, 4034
    +href="glossaries-user.html#x1-580002.3" >4034, 4035
            false  4035, 4036, 4037, 4038, 4039, 4040
    +href="glossaries-user.html#dx1-58003" >4036, 4037, 4038, 4039, 4040, 4041
            true  4041, 4042, 4043, 4044
    +href="glossaries-user.html#dx1-58001" >4042, 4043, 4044, 4045
        noredefwarn  4045
    +href="glossaries-user.html#x1-290002.1" >4046
        nostyles  4046, 4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057
    +href="glossaries-user.html#dx1-11021" >4047, 4048, 4049, 4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058
        nosuper  4058, 4059, 4060, 4061, 4062
    +href="glossaries-user.html#x1-510002.3" >4059, 4060, 4061, 4062, 4063
        notranslate  4063, 4064, 4065
    +href="glossaries-user.html#dx1-14010" >4064, 4065, 4066
        notree  4066, 4067, 4068, 4069
    +href="glossaries-user.html#x1-530002.3" >4067, 4068, 4069, 4070
        nowarn  4070, 4071, 4072
    +href="glossaries-user.html#x1-270002.1" >4071, 4072, 4073
        numberedsection  4073, 4074, 4075, 4076, 4077, 4078
    +href="glossaries-user.html#dx1-41001" >4074, 4075, 4076, 4077, 4078, 4079
            autolabel  4079, 4080, 4081
    +href="glossaries-user.html#dx1-43004" >4080, 4081, 4082
            false  4082
    +href="glossaries-user.html#dx1-43002" >4083
            nameref  4083
    +href="glossaries-user.html#dx1-43010" >4084
            nolabel  4084
    +href="glossaries-user.html#dx1-43003" >4085
        numberline  4085, 4086
    +href="glossaries-user.html#x1-400002.2" >4086, 4087
        numbers  4087, 4088, 4089
    +href="glossaries-user.html#dx1-84005" >4088, 4089, 4090
        order  4090, 4091, 4092, 4093
    +href="glossaries-user.html#dx1-71002" >4091, 4092, 4093, 4094
            letter  4094, 4095, 4096, 4097, 4098, 4099
    +href="glossaries-user.html#dx1-7047" >4095, 4096, 4097, 4098, 4099, 4100
            word  4100, 4101
    +href="glossaries-user.html#dx1-16091" >4101, 4102
        postdot  4102, 4103, 4104, 4105, 4106, 4107
    +href="glossaries-user.html#dx1-4012" >4103, 4104, 4105, 4106, 4107, 4108
        postpunc  4108
    +href="glossaries-user.html#dx1-58007" >4109
        prefix  4109, 4110, 4111, 4112
    +href="glossaries-user.html#x1-1030002.8" >4110, 4111, 4112, 4113
        record  4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133
    +href="glossaries-user.html#dx1-9018" >4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134
            alsoindex  4134, 4135
    +href="glossaries-user.html#dx1-9021" >4135, 4136
            nameref  4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146
    +href="glossaries-user.html#dx1-9020" >4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147
            only  4147, 4148, 4149, 4150, 4151, 4152
    +href="glossaries-user.html#dx1-5016" >4148, 4149, 4150, 4151, 4152, 4153
        record  4153, 4154
    +href="glossaries-user.html#dx1-214045" >4154, 4155
        restoremakegloss  4155, 4156
    +href="glossaries-user.html#x1-810002.5" >4156, 4157
        sanitizesort  4157, 4158, 4159
    +href="glossaries-user.html#dx1-5006" >4158, 4159, 4160
            false  4160, 4161, 4162, 4163, 4164, 4165
    +href="glossaries-user.html#dx1-6005" >4161, 4162, 4163, 4164, 4165, 4166
            true  4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174
    +href="glossaries-user.html#dx1-6007" >4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175
        savenumberlist  4175, 4176, 4177, 4178, 4179
    +href="glossaries-user.html#x1-450002.3" >4176, 4177, 4178, 4179, 4180
            false  4180
    +href="glossaries-user.html#dx1-45002" >4181
        savewrites  4181, 4182, 4183
    +href="glossaries-user.html#x1-310002.1" >4182, 4183, 4184
            false  4184
    +href="glossaries-user.html#dx1-31001" >4185
        section  4185, 4186
    +href="glossaries-user.html#x1-410002.2" >4186, 4187
        seeautonumberlist  4187, 4188, 4189, 4190
    +href="glossaries-user.html#x1-560002.3" >4188, 4189, 4190, 4191
        seenoindex  4191, 4192
    +href="glossaries-user.html#x1-620002.4" >4192, 4193
            ignore  4193
    +href="glossaries-user.html#dx1-62005" >4194
            warn  4194
    +href="glossaries-user.html#dx1-62004" >4195
        shortcuts  4195, 4196
    +href="glossaries-user.html#x1-940002.7" >4196, 4197
        smallcaps (deprecated)  4197, 4198, 4199, 4200, 4201, 4202
    +href="glossaries-user.html#dx1-96002" >4198, 4199, 4200, 4201, 4202, 4203
        smaller (deprecated)  4203, 4204, 4205, 4206, 4207
    +href="glossaries-user.html#dx1-96003" >4204, 4205, 4206, 4207, 4208
        sort  4208, 4209
    +href="glossaries-user.html#dx1-71001" >4209, 4210
            def  4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220
    +href="glossaries-user.html#dx1-6010" >4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221
            none  4221, 4222, 4223, 4224, 4225, 4226
    +href="glossaries-user.html#dx1-5008" >4222, 4223, 4224, 4225, 4226, 4227
            standard  4227, 4228, 4229
    +href="glossaries-user.html#dx1-73005" >4228, 4229, 4230
            use  4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240
    +href="glossaries-user.html#dx1-6009" >4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241
        style  4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248
    +href="glossaries-user.html#x1-490002.3" >4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249
            index  4249
    +href="glossaries-user.html#dx1-49003" >4250
            list  4250
    +href="glossaries-user.html#dx1-49001" >4251
        stylemods  4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262
    +href="glossaries-user.html#dx1-4013" >4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263
        subentrycounter  4263, 4264, 4265, 4266, 4267, 4268
    +href="glossaries-user.html#x1-480002.3" >4264, 4265, 4266, 4267, 4268, 4269
            false  4269
    +href="glossaries-user.html#dx1-48001" >4270
        symbols  4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277
    +href="glossaries-user.html#dx1-4015" >4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278
        toc  4278, 4279, 4280, 4281, 4282, 4283, 4284
    +href="glossaries-user.html#dx1-7051" >4279, 4280, 4281, 4282, 4283, 4284, 4285
            false  4285
    +href="glossaries-user.html#dx1-39003" >4286
            true  4286, 4287
    +href="glossaries-user.html#dx1-39004" >4287, 4288
        translate  4288, 4289, 4290, 4291
    +href="glossaries-user.html#x1-320002.1" >4289, 4290, 4291, 4292
            babel  4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299
    +href="glossaries-user.html#dx1-14012" >4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300
            false  4300, 4301, 4302, 4303
    +href="glossaries-user.html#dx1-14011" >4301, 4302, 4303, 4304
            true  4304, 4305, 4306, 4307
    +href="glossaries-user.html#dx1-32001" >4305, 4306, 4307, 4308
        ucmark  4308, 4309, 4310
    +href="glossaries-user.html#dx1-41007" >4309, 4310, 4311
            false  4311
    +href="glossaries-user.html#dx1-42001" >4312
            true  4312
    +href="glossaries-user.html#dx1-42003" >4313
        undefaction  4313
    +href="glossaries-user.html#x1-360002.1" >4314
        writeglslabels  4314, 4315
    +href="glossaries-user.html#dx1-23001" >4315, 4316
        xindy  4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332
    +href="glossaries-user.html#dx1-8021" >4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333
        xindygloss  4333, 4334
    +href="glossaries-user.html#x1-770002.5" >4334, 4335
        xindynoglsnumbers  4335, 4336
    +href="glossaries-user.html#x1-780002.5" >4336, 4337
    page (counter)  4337, 4338
    +href="glossaries-user.html#dx1-144039" >4338, 4339
    page type precedence  4339
    +href="glossaries-user.html#dx1-131005" >4340
    \pagelistname  4340
    +href="glossaries-user.html#dx1-14030" >4341
    pdflatex  4341, 4342
    +href="glossaries-user.html#dx1-27" >4342, 4343
    \PGLS  4343
    +class="cmti-10">4344
    \Pgls  4344
    +class="cmti-10">4345
    \pgls  4345, 4346
    +class="cmti-10">4346, 4347
    \PGLSpl  4347
    +class="cmti-10">4348
    \Pglspl  4348
    +class="cmti-10">4349
    \pglspl  4349
    +class="cmti-10">4350
    \pi  4350
    +href="glossaries-user.html#dx1-202082" >4351
    polyglossia package  4351, 4352, 4353, 4354, 4355, 4356, 4357
    +href="glossaries-user.html#dx1-14002" >4352, 4353, 4354, 4355, 4356, 4357, 4358
    \primary  4358
    +href="glossaries-user.html#dx1-190020" >4359
    \printacronyms  4359, 4360, 4361
    +class="cmti-10">4360, 4361, 4362
    \printglossaries  4362, 4363, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370
    +class="cmti-10">4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371
    \printglossary  4371, 4372, 4373, 4374, 4375, 4376, 4377, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386
    +class="cmti-10">4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387
    \printglossary options
        entrycounter  4387
    +href="glossaries-user.html#dx1-141034" >4388
        label  4388
    +href="glossaries-user.html#dx1-141057" >4389
        nogroupskip  4389
    +href="glossaries-user.html#dx1-141032" >4390
        nonumberlist  4390
    +href="glossaries-user.html#dx1-141031" >4391
        nopostdot  4391
    +href="glossaries-user.html#dx1-141033" >4392
        numberedsection  4392
    +href="glossaries-user.html#dx1-141028" >4393
        prefix  4393
    +href="glossaries-user.html#dx1-141061" >4394
        style  4394, 4395, 4396, 4397, 4398
    +href="glossaries-user.html#dx1-54004" >4395, 4396, 4397, 4398, 4399
        subentrycounter  4399
    +href="glossaries-user.html#dx1-141036" >4400
        target  4400, 4401
    +href="glossaries-user.html#dx1-11081" >4401, 4402
        targetnameprefix  4402
    +href="glossaries-user.html#dx1-141063" >4403
        title  4403, 4404, 4405, 4406, 4407
    +href="glossaries-user.html#dx1-4" >4404, 4405, 4406, 4407, 4408
        toctitle  4408
    +href="glossaries-user.html#dx1-141022" >4409
        type  4409, 4410
    +href="glossaries-user.html#dx1-141018" >4410, 4411
    \printindex  4411
    +class="cmti-10">4412
    \printnoidxglossaries  4412, 4413
    +class="cmti-10">4413, 4414
    \printnoidxglossary  4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4422, 4423, 4424, 4425, 4426
    +class="cmti-10">4423, 4424, 4425, 4426, 4427
    \printnoidxglossary options
        sort  4427, 4428, 4429, 4430, 4431
    +href="glossaries-user.html#dx1-73001" >4428, 4429, 4430, 4431, 4432
    \printnumbers  4432
    +class="cmti-10">4433
    \printsymbols  4433
    +class="cmti-10">4434
    \printunsrtacronyms  4434
    +href="glossaries-user.html#dx1-223015" >4435
    \printunsrtglossaries  4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451
    +href="glossaries-user.html#dx1-4010" >4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452
    \printunsrtglossary  4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465
    +href="glossaries-user.html#dx1-9005" >4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466
    \providecommand  4466, 4467
    +href="glossaries-user.html#dx1-197022" >4467, 4468
    \provideglossaryentry  4468, 4469
    +class="cmti-10">4469, 4470
    \provideignoredglossary  4470
    +href="glossaries-user.html#dx1-146013" >4471

    R relsize package  4471, 4472, 4473
    +href="glossaries-user.html#dx1-3065" >4472, 4473, 4474
    \Roman  4474
    +href="glossaries-user.html#dx1-144035" >4475

    S \S  4475
    +href="glossaries-user.html#dx1-190045" >4476
    sanitize  4476, 4477, 4478, 4479, 4480
    +class="cmbx-10">4477, 4478, 4479, 4480, 4481
    scrwfile package  4481
    +href="glossaries-user.html#dx1-31007" >4482
    \section*  4482, 4483
    +href="glossaries-user.html#dx1-43013" >4483, 4484
    \seealsoname  4484, 4485
    +href="glossaries-user.html#dx1-112132" >4485, 4486
    \seename  4486, 4487, 4488
    +href="glossaries-user.html#dx1-138011" >4487, 4488, 4489
    \setabbreviationstyle  4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521
    +href="glossaries-user.html#dx1-4007" >4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522
    \setabbreviationstyle  4522
    +href="glossaries-user.html#dx1-224045" >4523
    \SetAcronymLists  4523
    +class="cmti-10">4524
    \setacronymstyle  4524, 4525, 4526, 4525, 4526, 4527, 4527, 4528, 4529, 4530, 4531, 4532, 4533
    +class="cmti-10">4528, 4529, 4530, 4531, 4532, 4533, 4534
    \setentrycounter  4534, 4535
    +href="glossaries-user.html#dx1-166053" >4535, 4536
    \setglossarypreamble  4536, 4537, 4537
    +class="cmti-10">4538
    \setglossarysection  4538, 4539
    +class="cmti-10">4539, 4540
    \setglossarystyle  4540, 4541, 4541, 4542, 4543, 4544, 4545, 4546
    +class="cmti-10">4542, 4543, 4544, 4545, 4546, 4547
    \setStyleFile  4547, 4548, 4548, 4549, 4549
    +class="cmti-10">4550
    \setupglossaries  4550
    +class="cmti-10">4551
    \Sigma  4551
    +href="glossaries-user.html#dx1-202081" >4552
    siunitx package  4552, 4553
    +href="glossaries-user.html#dx1-4006" >4553, 4554
    small caps  4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563
    +class="cmbx-10">4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564
    \space  4564
    +href="glossaries-user.html#dx1-178007" >4565
    +standard LaTeX extended Latin character  4566, 4567
    stix package  4565, 4566
    +href="glossaries-user.html#dx1-144038" >4568, 4569
    \subglossentry  4567
    +class="cmti-10">4570
    supertabular package  4568, 4569, 4570
    +href="glossaries-user.html#dx1-51002" >4571, 4572, 4573
    \symbolname  4571
    +href="glossaries-user.html#dx1-14029" >4574

    T tabularx package  4572, 4573, 4574, 4575
    +href="glossaries-user.html#dx1-133005" >4575, 4576, 4577, 4578
    tagpdf package  4576, 4577, 4578
    +href="glossaries-user.html#dx1-172058" >4579, 4580, 4581
    \texorpdfstring  4579, 4580
    +href="glossaries-user.html#dx1-11050" >4582, 4583
    \textbf  4581, 4582
    +href="glossaries-user.html#dx1-132046" >4584, 4585
    textcase package  4583, 4584, 4585
    +href="glossaries-user.html#dx1-9" >4586, 4587, 4588
    \textrm  4586
    +href="glossaries-user.html#dx1-144012" >4589
    \textsc  4587, 4588, 4589, 4590, 4591, 4592, 4593
    +href="glossaries-user.html#dx1-3064" >4590, 4591, 4592, 4593, 4594, 4595, 4596
    \textsmaller  4594, 4595, 4596, 4597
    +href="glossaries-user.html#dx1-3066" >4597, 4598, 4599, 4600
    \textulc  4598
    +href="glossaries-user.html#dx1-150037" >4601
    \textup  4599
    +href="glossaries-user.html#dx1-150038" >4602
    \the  4600, 4601
    +href="glossaries-user.html#dx1-129026" >4603, 4604
    theglossary (environment)  4602
    +class="cmti-10">4605
    \theHequation  4603
    +href="glossaries-user.html#dx1-188009" >4606
    \thepage  4604, 4605
    +href="glossaries-user.html#dx1-144051" >4607, 4608
    \toprule  4606
    +href="glossaries-user.html#dx1-160012" >4609
    tracklang package  4607, 4608, 4609
    +href="glossaries-user.html#dx1-5" >4610, 4611, 4612
    translator package  4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634
    +href="glossaries-user.html#dx1-14009" >4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637

    U \usepackage  4635
    +href="glossaries-user.html#dx1-193042" >4638

    W \write18  4636, 4637
    +href="glossaries-user.html#dx1-31012" >4639, 4640
    \writeist  4638
    +href="glossaries-user.html#dx1-131001" >4641

    X xfor package  4639
    +href="glossaries-user.html#dx1-10" >4642
    \xGlsXtrSetField  4640
    +href="glossaries-user.html#dx1-209011" >4643
    xindy  4641, 4642, 4643, 4644, 4644, 4645, 4646, 4647, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825
    +class="cmbx-10">4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828
        -C  4826, 4827, 4828, 4829, 4830
    +href="glossaries-user.html#dx1-8033" >4829, 4830, 4831, 4832, 4833
        -I  4831, 4832
    +href="glossaries-user.html#dx1-19007" >4834, 4835
        -L  4833, 4834, 4835, 4836
    +href="glossaries-user.html#dx1-8032" >4836, 4837, 4838, 4839
        -M  4837
    +href="glossaries-user.html#dx1-16090" >4840
    xindy attributes  4838, 4839, 4840, 4841, 4842
    +href="glossaries-user.html#dx1-16049" >4841, 4842, 4843, 4844, 4845
        :locref  4843
    +href="glossaries-user.html#dx1-129022" >4846
    xkeyval package  4844, 4845, 4846
    +href="glossaries-user.html#dx1-8" >4847, 4848, 4849
    \xspace  4847
    +href="glossaries-user.html#dx1-152018" >4850
    xspace package  4848, 4849, 4850, 4851, 4852, 4853, 4854
    +href="glossaries-user.html#dx1-152014" >4851, 4852, 4853, 4854, 4855, 4856, 4857

    @@ -47972,11 +47826,7 @@ class="cmr-8">is no longer fragile and doesn’t need protecting.

    href="#fn8x1-bk" id="fn8x1">1.8The batch file makeglossaries.bat has been removed since the TEXhas been removed since the TeX distributions for Windows provide makeglossaries.exe with the flowfram package.

    -

    17.1Single letter words, such as “a” and “I” should typically not appear at the end of a line, hence the non-breakable space after “a” in the prefix field.

    -

    17.2The earlier caveats about initial non-Latin characters apply.

    -

    19.1makeindex assumes that the location is a page number

    -

    19.2If you use babelbabelwith a language that makes the colon character : active you will need to change the prefix.

    -

    19.3Requires at least bib2gls v2.0.

    -

    19.4You can either uncompress the PDF file and view it in a text editor or you can use a tool such as the PDFDebugger \nopreamble\nopostamble" +% -setambles ".*\.tex=>\nopreamble\nopostamble" % -section "chapter" -% -macrocode ".*\.perl" -% -macrocode ".*\.tex" % -doc "glossaries-manual.tex" % -codetitle "Main Package Code" -% -author "Nicola Talbot" +% -comment ".*\.perl" +% -comment ".*\.tex" +% -macrocode ".*\.perl" +% -macrocode ".*\.tex" % -src "glossaries\.sty\Z=>glossaries.sty" % -src "glossaries-prefix.sty\Z=>glossaries-prefix.sty" % -src "(glossary-.+)\.(sty)\Z=>\1.\2" @@ -17,12 +20,9 @@ % -src "(glossaries-polyglossia)\.(sty)\Z=>\1.\2" % -src "(example-glossaries-.*\.tex)\Z=>\1" % -src "(.*\.perl)\Z=>\1" -% -comment ".*\.perl" -% -comment ".*\.tex" -% -setambles ".*\.perl=>\nopreamble\nopostamble" -% -setambles ".*\.tex=>\nopreamble\nopostamble" +% -author "Nicola Talbot" % glossaries -% Created on 2020/2/14 0:32 +% Created on 2020/3/19 17:03 %\fi %\iffalse %<*package> @@ -136,7 +136,7 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of \setcounter{IndexColumns}{2} -\CheckSum{20333} +\CheckSum{20358} \newcommand*{\ifirstuse}{\iterm{first use}} \newcommand*{\firstuse}{\gls{firstuse}} @@ -163,12 +163,12 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of %\fi %\MakeShortVerb{"} % -% \title{Documented Code For glossaries v4.45} +% \title{Documented Code For glossaries v4.46} % \author{Nicola L.C. Talbot\\[10pt] %Dickimaw Books\\ %\url{http://www.dickimaw-books.com/}} % -% \date{2020-02-13} +% \date{2020-03-19} % \maketitle % %This is the documented code for the \styfmt{glossaries} package. @@ -184,7 +184,7 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of %glossaries package}. % %\item[\url{glossaries-user.pdf}] -%For the main user guide, read \qt{glossaries.sty v4.45: +%For the main user guide, read \qt{glossaries.sty v4.46: %\LaTeX2e\ Package to Assist Generating Glossaries}. % %\item[\url{mfirstuc-manual.pdf}] @@ -239,7 +239,7 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of % This package requires \LaTeXe. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries}[2020/02/13 v4.45 (NLCT)] +\ProvidesPackage{glossaries}[2020/03/19 v4.46 (NLCT)] % \end{macrocode} %\changes{4.18}{2015-09-09}{split mfirstuc into separate bundle} % Required packages: @@ -3367,15 +3367,12 @@ false,nolabel,autolabel,nameref}[nolabel]{% %\end{definition} % Code provided by Michael Pock. %\changes{3.07}{2013-07-05}{new} +%\changes{4.46}{2020-03-19}{switched to starred form of \cs{ifglossaryexists}} % \begin{macrocode} \newcommand{\setglossarypreamble}[2][\glsdefaulttype]{% - \ifglossaryexists{#1}{% - \csgdef{@glossarypreamble@#1}{#2}% - }{% - \GlossariesWarning{% - Glossary `#1' is not defined% - }% - }% + \ifglossaryexists*{#1}% + {\csgdef{@glossarypreamble@#1}{#2}}% + {\GlossariesWarning{Glossary `#1' is not defined}}% } % \end{macrocode} %\end{macro} @@ -4159,6 +4156,8 @@ false,nolabel,autolabel,nameref}[nolabel]{% % Define a command that allows the user to set the language % for a given glossary type. The first argument indicates the % glossary type. If omitted the main glossary is assumed. +% This uses the unstarred form of \cs{ifglossaryexists} because +% ignored glossaries can't be used with xindy. % \begin{macrocode} \ifglsxindy \newcommand*\GlsSetXdyLanguage[2][\glsdefaulttype]{% @@ -4315,13 +4314,37 @@ false,nolabel,autolabel,nameref}[nolabel]{% %where \meta{type} is the glossary's label. %\changes{3.0}{2011-04-02}{replaced \cs{@ifundefined} with %\cs{ifcsundef}} +%\changes{4.46}{2020-03-19}{added starred form} +%The unstarred form will do \meta{false-text} for ignored +%glossaries. The starred form will do \meta{true-text} for ignored +%glossaries. +% \begin{macrocode} +\newcommand{\ifglossaryexists}{% + \@ifstar\s@ifglossaryexists\@ifglossaryexists +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@ifglossaryexists} +%\changes{4.46}{2020-03-19}{new} +% Unstarred form only tests the existence of non-ignored glossaries. % \begin{macrocode} -\newcommand{\ifglossaryexists}[3]{% +\newcommand{\@ifglossaryexists}[3]{% \ifcsundef{@glotype@#1@out}{#3}{#2}% } % \end{macrocode} %\end{macro} % +%\begin{macro}{\s@ifglossaryexists} +%\changes{4.46}{2020-03-19}{new} +% Starred form includes ignored glossaries. +% \begin{macrocode} +\newcommand{\s@ifglossaryexists}[3]{% + \ifcsundef{glolist@#1}{#3}{#2}% +} +% \end{macrocode} +%\end{macro} +% % Since the label is used to form the name of control sequences, by % default UTF8 etc characters can't be used in the label. A possible % workaround is to use \ics{scantokens}, but commands such as @@ -4455,9 +4478,10 @@ false,nolabel,autolabel,nameref}[nolabel]{% %\changes{4.19}{2015-11-22}{new} %If glossary given by \meta{label} doesn't exist do \meta{code} %otherwise generate an error and do \meta{else code}. +%\changes{4.46}{2020-03-19}{switched to starred form of \cs{ifglossaryexists}} % \begin{macrocode} \newcommand{\doifglossarynoexistsordo}[3]{% - \ifglossaryexists{#1}% + \ifglossaryexists*{#1}% {% \PackageError{glossaries}{Glossary type `#1' already exists}{}% #3% @@ -13100,6 +13124,8 @@ false,nolabel,autolabel,nameref}[nolabel]{% % file). The relevant glossary must be defined prior to using \cs{@makeglossary}. % \sty{glossaries-extra} allows for a hybrid approach. %\begin{macro}{\@makeglossary} +%Unstarred form of \cs{ifglossaryexists} is used as +%\cs{@makeglossary} can't be used with an ignored glossary. % \begin{macrocode} \newcommand*{\@makeglossary}[1]{% \ifglossaryexists{#1}% @@ -13149,6 +13175,8 @@ false,nolabel,autolabel,nameref}[nolabel]{% % %\begin{macro}{\@gls@automake} %\changes{4.08}{2014-07-30}{new} +%Unstarred form of \cs{ifglossaryexists} is used as +%\cs{@gls@automake} can't be used with an ignored glossary. % \begin{macrocode} \ifglsxindy \newcommand*{\@gls@automake}[1]{% @@ -13203,6 +13231,8 @@ false,nolabel,autolabel,nameref}[nolabel]{% % %\begin{macro}{\@gls@automake@immediate} %\changes{4.42}{2019-01-06}{new} +%Unstarred form of \cs{ifglossaryexists} is used as +%\cs{@gls@automake@immediate} can't be used with an ignored glossary. % \begin{macrocode} \ifglsxindy \newcommand*{\@gls@automake@immediate}[1]{% @@ -14557,11 +14587,51 @@ you \undef\printglossary } % \end{macrocode} +% Neither \cs{printglossary} nor \cs{printnoidxglossary} can work +% with an ignored glossary (since ignored glossaries normally +% suppress indexing and there's no associated file for +% \gls{makeindex}/\gls{xindy} to process). However \cs{printunsrtglossary} can be used +% with an ignored glossary, so provide a command to warn if the +% glossary doesn't exist or is an ignored glossary. +%\begin{macro}{\@printgloss@checkexists@noignored} +%\changes{4.46}{2020-03-19}{new} +% \begin{macrocode} +\newcommand*{\@printgloss@checkexists@noignored}[2]{% + \@ifglossaryexists{#1}% + {#2}% + {% + \ifignoredglossary{#1}% + {\GlossariesWarning{Glossary `#1' is an ignored glossary}}% + {\GlossariesWarning{Glossary `#1' doesn't exist}}% + }% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@printgloss@checkexists@allowignored} +%\changes{4.46}{2020-03-19}{new} +%For use with \cs{printunsrtglossary}. +% \begin{macrocode} +\newcommand*{\@printgloss@checkexists@allowignored}[2]{% + \s@ifglossaryexists{#1}% + {#2}% + {\GlossariesWarning{Glossary `#1' doesn't exist}}% +} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\@printgloss@checkexists} +%\changes{4.46}{2020-03-19}{new} +% \begin{macrocode} +\let\@printgloss@checkexists\@printgloss@checkexists@noignored +% \end{macrocode} +%\end{macro} +% +% % \cs{printglossary} has an optional argument. The default % value is to set the glossary type to the main glossary. %\changes{4.04}{2014-03-06}{changed to use new \cs{@printglossary}} % \begin{macrocode} \newcommand*{\printglossary}[1][type=\glsdefaulttype]{% + \let\@printgloss@checkexists\@printgloss@checkexists@noignored \@printglossary{#1}{\@print@glossary}% } % \end{macrocode} @@ -14593,6 +14663,7 @@ you % location list will be empty. % \begin{macrocode} \newcommand*{\printnoidxglossary}[1][type=\glsdefaulttype]{% + \let\@printgloss@checkexists\@printgloss@checkexists@noignored \@printglossary{#1}{\@print@noidx@glossary}% } % \end{macrocode} @@ -14629,7 +14700,9 @@ you % Sets up the glossary for either \cs{printglossary} or % \cs{printnoidxglossary}. The first argument is the options list, % the second argument is the handler macro that -% deals with the actual glossary. +% deals with the actual glossary. This is also used by +% \sty{glossaries-extra}'s \ics{printunsrtglossary} which may be +% used with an ignored glossary. % \begin{macrocode} \newcommand{\@printglossary}[2]{% % \end{macrocode} @@ -14675,8 +14748,10 @@ you \setkeys{printgloss}{#1}% % \end{macrocode} % Does the glossary exist? +%\changes{4.46}{2020-03-19}{replaced \cs{ifglossaryexists} with +%\cs{@printgloss@checkexists}} % \begin{macrocode} - \ifglossaryexists{\@glo@type}% + \@printgloss@checkexists{\@glo@type}% {% % \end{macrocode} % If title has been set, but toctitle hasn't, make toctitle the same @@ -14742,7 +14817,6 @@ you % \begin{macrocode} #2% }% - {\GlossariesWarning{Glossary `\@glo@type' doesn't exist}}% % \end{macrocode} % End the current scope % \begin{macrocode} @@ -19414,7 +19488,7 @@ you % \cs{gls}\marg{label}} on subsequent use. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-prefix}[2020/02/13 v4.45 (NLCT)] +\ProvidesPackage{glossaries-prefix}[2020/03/19 v4.46 (NLCT)] % \end{macrocode} % Pass all options to \sty{glossaries}: % \begin{macrocode} @@ -19879,7 +19953,7 @@ you %\label{sec:code:hypernav} % Package Definition: % \begin{macrocode} -\ProvidesPackage{glossary-hypernav}[2020/02/13 v4.45 (NLCT)] +\ProvidesPackage{glossary-hypernav}[2020/03/19 v4.46 (NLCT)] % \end{macrocode} % % The commands defined in this package are provided to @@ -20075,7 +20149,7 @@ you % This defines an in-line style where the entries are % comma-separated with just the name and description displayed. % \begin{macrocode} -\ProvidesPackage{glossary-inline}[2020/02/13 v4.45 (NLCT)] +\ProvidesPackage{glossary-inline}[2020/03/19 v4.46 (NLCT)] % \end{macrocode} % %\begin{style}{inline} @@ -20266,7 +20340,7 @@ you % \ics{item} command, it will appear in a bold font by % default. % \begin{macrocode} -\ProvidesPackage{glossary-list}[2020/02/13 v4.45 (NLCT)] +\ProvidesPackage{glossary-list}[2020/03/19 v4.46 (NLCT)] % \end{macrocode} %\begin{macro}{\indexspace} %\changes{4.13}{2015-02-03}{new} @@ -20548,7 +20622,7 @@ you % The glossary styles defined in the \isty{glossary-long} package % used the \env{longtable} environment in the glossary. % \begin{macrocode} -\ProvidesPackage{glossary-long}[2020/02/13 v4.45 (NLCT)] +\ProvidesPackage{glossary-long}[2020/03/19 v4.46 (NLCT)] % \end{macrocode} % Requires the \isty{longtable} package: % \begin{macrocode} @@ -21045,7 +21119,7 @@ you % \url{http://tex.stackexchange.com/a/56890} % % \begin{macrocode} -\ProvidesPackage{glossary-longbooktabs}[2020/02/13 v4.45 (NLCT)] +\ProvidesPackage{glossary-longbooktabs}[2020/03/19 v4.46 (NLCT)] % \end{macrocode} % Requires \sty{booktabs} package: % \begin{macrocode} @@ -21386,7 +21460,7 @@ you % used the \env{longtable} environment in the glossary and use % ragged right formatting for the multiline columns. % \begin{macrocode} -\ProvidesPackage{glossary-longragged}[2020/02/13 v4.45 (NLCT)] +\ProvidesPackage{glossary-longragged}[2020/03/19 v4.46 (NLCT)] % \end{macrocode} % Requires the \isty{array} package: % \begin{macrocode} @@ -21819,7 +21893,7 @@ you %use the \sty{multicol} package. These use the tree-like glossary %styles in a multicol environment. % \begin{macrocode} -\ProvidesPackage{glossary-mcols}[2020/02/13 v4.45 (NLCT)] +\ProvidesPackage{glossary-mcols}[2020/03/19 v4.46 (NLCT)] % \end{macrocode} % Required packages: % \begin{macrocode} @@ -22256,7 +22330,7 @@ you % The glossary styles defined in the \isty{glossary-super} package % use the \env{supertabular} environment. % \begin{macrocode} -\ProvidesPackage{glossary-super}[2020/02/13 v4.45 (NLCT)] +\ProvidesPackage{glossary-super}[2020/03/19 v4.46 (NLCT)] % \end{macrocode} % Requires the \isty{supertabular} package: % \begin{macrocode} @@ -22788,7 +22862,7 @@ you % are like those provided by the \isty{glossary-super} package, % except that the multiline columns have ragged right justification. % \begin{macrocode} -\ProvidesPackage{glossary-superragged}[2020/02/13 v4.45 (NLCT)] +\ProvidesPackage{glossary-superragged}[2020/03/19 v4.46 (NLCT)] % \end{macrocode} % Requires the \isty{array} package: % \begin{macrocode} @@ -23228,7 +23302,7 @@ you % that have a tree-like structure. These are designed for % hierarchical glossaries. % \begin{macrocode} -\ProvidesPackage{glossary-tree}[2020/02/13 v4.45 (NLCT)] +\ProvidesPackage{glossary-tree}[2020/03/19 v4.46 (NLCT)] % \end{macrocode} % %\begin{macro}{\indexspace} @@ -23949,7 +24023,7 @@ you % hyperlinks may not work properly. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-compatible-207}[2020/02/13 v4.45 (NLCT)] +\ProvidesPackage{glossaries-compatible-207}[2020/03/19 v4.46 (NLCT)] % \end{macrocode} %\begin{macro}{\GlsAddXdyAttribute} % Adds an attribute in old format. @@ -24310,7 +24384,7 @@ you %\section{glossaries-compatible-307} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-compatible-307}[2020/02/13 v4.45 (NLCT)] +\ProvidesPackage{glossaries-compatible-307}[2020/03/19 v4.46 (NLCT)] % \end{macrocode} % % Compatibility macros for predefined glossary styles: @@ -25118,7 +25192,7 @@ you % \end{macrocode} % Package version number now in line with main glossaries package number. % \begin{macrocode} -\ProvidesPackage{glossaries-accsupp}[2020/02/13 v4.45 (NLCT) +\ProvidesPackage{glossaries-accsupp}[2020/03/19 v4.46 (NLCT) Experimental glossaries accessibility] % \end{macrocode} % Pass all options to \sty{glossaries}: @@ -28424,7 +28498,7 @@ you % modules. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-babel}[2020/02/13 v4.45 (NLCT)] +\ProvidesPackage{glossaries-babel}[2020/03/19 v4.46 (NLCT)] % \end{macrocode} % Load \sty{tracklang} to obtain language settings. % \begin{macrocode} @@ -28468,7 +28542,7 @@ you % modules. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-polyglossia}[2020/02/13 v4.45 (NLCT)] +\ProvidesPackage{glossaries-polyglossia}[2020/03/19 v4.46 (NLCT)] % \end{macrocode} % Load \sty{tracklang} to obtain language settings. % \begin{macrocode} diff --git a/macros/latex/contrib/glossaries/glossaries.ins b/macros/latex/contrib/glossaries/glossaries.ins index ced7110daa..30d939a39e 100644 --- a/macros/latex/contrib/glossaries/glossaries.ins +++ b/macros/latex/contrib/glossaries/glossaries.ins @@ -1,4 +1,4 @@ -% glossaries.ins generated using makedtx version 1.2 2020/2/14 0:32 +% glossaries.ins generated using makedtx version 1.2 2020/3/19 17:03 \input docstrip \preamble diff --git a/macros/latex/contrib/glossaries/glossariesbegin.html b/macros/latex/contrib/glossaries/glossariesbegin.html index d9d639897e..91e6cd7014 100644 --- a/macros/latex/contrib/glossaries/glossariesbegin.html +++ b/macros/latex/contrib/glossaries/glossariesbegin.html @@ -18,32 +18,32 @@ .cmr-17{font-size:170%;} .cmr-12{font-size:120%;} .cmr-8{font-size:80%;} -.cmtt-12{font-size:120%;font-family: monospace;} -.cmtt-12{font-family: monospace;} -.cmtt-12{font-family: monospace;} -.cmtt-12{font-family: monospace;} +.cmtt-12{font-size:120%;font-family: monospace,monospace;} +.cmtt-12{font-family: monospace,monospace;} +.cmtt-12{font-family: monospace,monospace;} +.cmtt-12{font-family: monospace,monospace;} .cmr-9{font-size:90%;} .cmbx-9{font-size:90%; font-weight: bold;} .cmbx-9{ font-weight: bold;} .cmss-9{font-size:90%; font-family: sans-serif;} .cmss-9{ font-family: sans-serif;} .cmss-9{ font-family: sans-serif;} -.cmtt-10{font-family: monospace;} -.cmtt-10{font-family: monospace;} -.cmtt-10{font-family: monospace;} -.cmtt-10{font-family: monospace;} +.cmtt-10{font-family: monospace,monospace;} +.cmtt-10{font-family: monospace,monospace;} +.cmtt-10{font-family: monospace,monospace;} +.cmtt-10{font-family: monospace,monospace;} .cmss-10{ font-family: sans-serif;} .cmss-10{ font-family: sans-serif;} .cmss-10{ font-family: sans-serif;} .cmti-10{ font-style: italic;} -.cmtt-9{font-size:90%;font-family: monospace;} -.cmtt-9{font-family: monospace;} -.cmtt-9{font-family: monospace;} -.cmtt-9{font-family: monospace;} -.cmitt-10{font-family: monospace; font-style: italic;} +.cmtt-9{font-size:90%;font-family: monospace,monospace;} +.cmtt-9{font-family: monospace,monospace;} +.cmtt-9{font-family: monospace,monospace;} +.cmtt-9{font-family: monospace,monospace;} +.cmitt-10{font-family: monospace,monospace; font-style: italic;} .cmbx-10{ font-weight: bold;} .cmbx-10{ font-weight: bold;} -.cmsy-9{font-size:90%;} +.tcrm-0900{font-size:90%;} .cmss-8{font-size:80%; font-family: sans-serif;} .cmss-8{ font-family: sans-serif;} .cmss-8{ font-family: sans-serif;} @@ -114,11 +114,6 @@ table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } .hline td, .cline td{ padding: 0; } .hline hr, .cline hr{border:none;border-top:1px solid black;} .tabbing-right {text-align:right;} -span.TEX {letter-spacing: -0.125em; } -span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;} -a span.TEX span.E {text-decoration: none; } -span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;} -span.LATEX span.TEX{ position:relative; left: -0.4em; } div.float, div.figure {margin-left: auto; margin-right: auto;} div.float img {text-align:center;} div.figure img {text-align:center;} @@ -248,22 +243,22 @@ span#textcolor40{color:#00FF00} -

    -

    +

    -

    +

    -

    -

    The glossaries package v4.45: a guide for +

    +

    The glossaries package v4.46: a guide for beginners

    @@ -272,20 +267,25 @@ cellspacing="0" cellpadding="0" > Nicola L.C. Talbot +class="td11"> Nicola L.C. Talbot + dickimaw-books.com
    -

    2020-02-13

    +

    2020-03-19

    -

    -

    +

    Abstract

    -

    The glossaries package is very flexible, but this means that it has a…?” then it’s time to move on to the main user manual. -

    I’ve made some statements in this document that don’t actually tell you the full truth, but it would clutter the document and cause confusion @@ -342,12 +342,12 @@ href="#sec:xr" id="QQ2-1-10">Cross-References
    9 Further Information

    -

    +

    -

    Top

    1 Getting Started

    -

    As with all packages, you need to load

    As with all packages, you need to load glossaries with \usepackage, but there are certain packages that must be loaded before fontencglossaries.) -

    -

    This produces: +

    This produces:

    -

    Here’s my sample term.

    -

    Here’s another example: +

    Here’s my sample term.

    +

    Here’s another example: @@ -413,10 +413,10 @@ example:  
     First use: \gls{svm}. Second use: \gls{svm}.  
     \end{document}

    -

    This produces: +

    This produces:

    -

    First use: support vector machine (SVM). Second use: SVM.

    -

    In this case, the text produced by

    First use: support vector machine (SVM). Second use: SVM.

    +

    In this case, the text produced by \gls{svm} changed after the first use. The first use produced the long form followed by the short form in parentheses because I set the acronym style to .log file and search for the line that starts with Package: glossaries followed by a date and version.) -

    -

    If you still want to use

    Since long-short happens to be the default for \newabbreviation (if you haven’t +set the category key) you may omit the \setabbreviationstyle line in this +example. +

    If you still want to use \newacronym (rather than \newabbreviation) then you need -the optional argument of \newabbreviation) then you +need the optional argument of \setabbreviationstyle: @@ -471,13 +478,21 @@ class="cmtt-10">\setabbreviationstyle:  
     First use: \gls{svm}. Second use: \gls{svm}.  
     \end{document}

    -

    -

    You can’t use

    In this example, if you omit the \setabbreviationstyle line you will notice a +difference because the short-nolong style (not the long-short style) is the default +with \newacronym. With the short-nolong style the first use simply shows just the +short form. +

    -

    -

    If you like, you can put all your definitions in another file (for example, +

    +

    If you like, you can put all your definitions in another file (for example, defns.tex) and load that file in the preamble using \loadglsentries with the @@ -489,7 +504,7 @@ filename as the argument. For example:

    \loadglsentries{defns}
    -

    If you find you have a really large number of definitions that are hard to manage in a +

    If you find you have a really large number of definitions that are hard to manage in a .tex file, you might want to have a look at bib2glsbib2gls.bib format instead that can be managed by an application such as JabRef. -

    Don’t try inserting formatting commands into the definitions as they can interfere +

    Don’t try inserting formatting commands into the definitions as they can interfere with the underlying mechanism. Instead, the formatting should be done by the style. For example, suppose I want to replace SVM with  First use: \gls{svm}. Second use: \gls{svm}.  
     \end{document}

    -

    The abbreviation styles have a different naming scheme with

    The abbreviation styles have a different naming scheme with glossaries-extra: @@ -535,7 +550,7 @@ class="cmss-10">glossaries-extra First use: \gls{svm}. Second use: \gls{svm}.  
     \end{document}

    -

    With

    With glossaries-extra you can have multiple abbreviation styles for different categories. Many of these styles have their own associated formatting commands that @@ -570,22 +585,22 @@ can be redefined for minor adjustments. For example:  
     Next use: \gls{svm}, \gls{cbot}.  
     \end{document}

    -

    This produces: +

    This produces:

    -

    First use: support vector machine (

    First use: support vector machine (svm), Clostridium botulinum. -

    Next use:

    Next use: svm, C. botulinum.

    -

    As you can hopefully see from the above examples, there are two main ways of +

    As you can hopefully see from the above examples, there are two main ways of defining a term: as a general entry (\newglossaryentry) or as an abbreviation (\newacronym or, with glossaries-extra, \newabbreviation). -

    Regardless of the method of defining a term, the term is always given a label. In +

    Regardless of the method of defining a term, the term is always given a -the first example, the label was ex and in the other examples the label was svm (and -cbot in the last example). The label is used to uniquely identify the term (like the -standard ex and in the other examples the +label was svm (and cbot in the last example). The label is used to uniquely +identify the term (like the standard \label/\ref or \cite mechanism). It’s best to just use the following -alphanumerics in the labels: \cite mechanism). +It’s best to just use the following alphanumerics in the labels: a, …, z, A, …, A, …, +Z, 0, …, 9. Sometimes you can also use -punctuation characters but not if another package (such as 9. Sometimes you can also use punctuation characters but not if +another package (such as babel) meddles with -them. Don’t try using any characters outside of the basic Latin set with -) makes them active. Don’t try using any +characters outside of the basic Latin set with inputenc (for example, é or ß) or things will go horribly wrong. This warning -only applies to the label. It doesn’t apply to the text that appears in the -document. -

    Don’t use (for example, é or ß) +or things will go horribly wrong. This warning only applies to the label. +It doesn’t apply to the text that appears in the document. If you really +need UTF-8 characters in your labels then you’ll need to use XeLaTeX or +LuaLaTeX. +

    Don’t use \gls in chapter or section headings as it can have some unpleasant side-effects. Instead use \glsentrytext for regular entries and one of \glsentrylong or \glsentryfull for acronyms. Alternatively use glossaries-extra -which provides special commands for use in section headings, such as \glsfmtshort +which provides special commands for use in section headings and captions, such as {\glsfmtshort{label}.
    -

    -

    The above examples are reasonably straightforward. The difficulty comes if you +

    +

    The above examples are reasonably straightforward. The difficulty comes if you want to display a sorted list of all the entries you have used in the document. The  \printunsrtglossaries % list all entries  
     \end{document}

    -

    However this method doesn’t sort the entries (they’re listed in order of definition) +

    However this method doesn’t sort the entries (they’re listed in order of definition) and it will display all the defined entries, regardless of whether or not you’ve used them all in the document, so “turnip” appears in the glossary even though there’s no \gls{turnip} (or similar) in the document. -

    The

    The sort=none option isn’t essential in this case (there’s no other sort option available for this document), but it prevents the automatic construction of the sort value and so slightly improves the document build time. -

    Note that this example document uses the same command (

    Note that this example document uses the same command (\printunsrtglossaries) that’s used with bib2glsrecord package option and one or more instances of \GlsXtrLoadResources in the preamble (see below). -

    Most users prefer to have an automatically sorted list that only contains entries +

    Most users prefer to have an automatically sorted list that only contains entries that have been used in the document. The glossaries package provides three options: -use TEX to perform the sorting (glossaries package provides three +options: use TeX to perform the sorting (Option 1); use makeindex to perform @@ -711,17 +726,17 @@ class="cmtt-10">bib2gls (Option 4). -

    The first option (using TEX) is the simplest method, as it doesn’t require an -external tool, but it’s very inefficient and the sorting is done according to the English -alphabet. To use this method, add \makenoidxglossaries to the preamble and put -\printnoidxglossaries at the place where you want your glossary. For +

    The first option (using TeX) is the simplest method, as it doesn’t require an +external tool, but it’s very inefficient and the sorting is done according to lower case +character code (which matches basic Latin alphabets, such as English, but +not extended Latin alphabets, such as Icelandic). To use this method, add -example: +\makenoidxglossaries to the preamble and put \printnoidxglossaries at the +place where you want your glossary. For example: @@ -743,21 +758,21 @@ example:  
     \printnoidxglossaries  
     \end{document}

    -

    -

    The

    +

    The \makenoidxglossaries method is very slow, uses an ASCII comparator and often breaks if there are commands in the name key.
    -

    -

    Try this out and run LATEX (or pdfLATEX) name key. See Glossaries Performance for a +comparison.

    +

    +

    Try this out and run LaTeX (or pdfLaTeX) twice. The first run won’t show the glossary. It will only appear on the second run. This doesn’t include “turnip” in the glossary because that term hasn’t been used (with commands like \gls{turnip}) in the document. -

    The glossary has a vertical gap between the “carrot” term and the “potato” term. +

    The glossary has a vertical gap between the “carrot” term and the “potato” term. This is because the entries in the glossaries are grouped according to their first letter. If you don’t want this gap, just add nogroupskip \usepackage[nogroupskip]{glossaries}

    -

    or you may want to try out a style that shows the group headings: +

    or you may want to try out a style that shows the group headings: @@ -778,7 +793,7 @@ options:

    \usepackage[style=indexgroup]{glossaries}
    -

    If you try out this example you may also notice that the description is followed by a +

    If you try out this example you may also notice that the description is followed by a full stop (period) and a number. The number is the location in the document where the entry was used (page 1 in this case), so you can lookup the term in the glossary and be directed to the relevant pages. It may be that you don’t want this @@ -793,7 +808,7 @@ option:

    \usepackage[nonumberlist]{glossaries}
    -

    If you don’t like the terminating full stop, you can suppress that with the

    If you don’t like the terminating full stop, you can suppress that with the nopostdot package option: @@ -804,13 +819,13 @@ package option:

    \usepackage[nopostdot]{glossaries}
    -

    -

    If you tried out the previous example with

    +

    If you try out the earlier example with glossaries-extra and \printunsrtglossaries -the terminating full stop is missing and there are no number lists. You can add the -full stop back with +you may notice that the terminating full stop is missing and there are no number +lists. You can add the full stop back with @@ -818,7 +833,7 @@ full stop back with

    \usepackage[nopostdot=false]{glossaries-extra}
    -

    or +

    or @@ -826,15 +841,14 @@ full stop back with

    \usepackage[postdot]{glossaries-extra}
    -

    If you want the number lists then you need to use an indexing option. -

    You may have noticed that I’ve used another command in the above example: +

    If you want the number lists then you need to use an indexing option. +

    You may have noticed that I’ve used another command in the above examples: \glspl. This displays the plural form. By default, this is just the singular form with the letter “s” appended, but in the case of “potato” I had to specify the correct plural using the plural key. -

    As I mentioned earlier, using TEX to sort the entries is the simplest but least +

    As I mentioned earlier, using TeX to sort the entries is the simplest but least efficient method. If you have a large glossary or if your terms contain non-Latin or extended Latin characters, then you will have a much faster build time if you use bib2gls are the recommended methods. These methods are described in more detail in §4 §4 Displaying a List of Entries. -

    The rest of this document briefly describes the main commands provided by the +

    The rest of this document briefly describes the main commands provided by the glossaries package. (Most of these are also available with glossaries-extra but may behave slightly differently.) -

    +

    -

    Top

    2 Defining Terms

    -

    When you use the

    When you use the glossaries package, you need to define glossary entries in the document preamble. These entries could be a word, phrase, abbreviation or symbol. They’re usually accompanied by a description, which could be a short sentence or an in-depth explanation that spans multiple paragraphs. The simplest method of defining an entry is to use: -


    +


    \newglossaryentry{} -

    +

    where ⟨label⟩ is a unique label that identifies this entry. (Don’t include the angle brackets ⟨ ⟩. They just indicate the parts of the code you need to change when you use @@ -914,11 +928,11 @@ class="cmti-10">name⟩ is the word, phrase or symbol you are defining, and ⟨description⟩ is the description to be displayed in the glossary. -

    This command is a “short” command, which means that ⟨

    This command is a “short” command, which means that ⟨description⟩ can’t contain a paragraph break. If you have a long description, you can instead use: -


    +


    \longnewglossaryentry{description}

    -

    -

    Examples: +

    +

    Examples:

    1. Define the term “set” with the label set:  
        description={a collection of objects}  
      }
    -

    +

  • Define the symbol emptyset:  
      description={the empty set}  
    }
  • -

    (This will also need a

    (This will also need a sort key if you use Options 1 or 3, see below.) @@ -998,7 +1012,7 @@ class="cmtt-10">fishage:  
      fish species.  
    }

    -

    (The percent character discards the end of line character that would otherwise +

    (The percent character discards the end of line character that would otherwise cause an unwanted space to appear at the start of the description.)

  • é). This first letter must be placed in a g  
      description={select group or class}  
    }
  • -

    or

    +

    or

    \newglossaryentry{elite} @@ -1043,10 +1057,11 @@ class="cmtt-10"> class} class="cmtt-10">}
    -

    (For further details, see the section “UTF-8” of the

    (This isn’t necessary for UTF-8 characters with XeLaTeX or LuaLaTeX. For further +details, see the section “UTF-8” of the mfirstuc user manual.) -

    If you use

    If you use bib2gls with glossaries-extra the Silurian Period to + + +
      the of the Carboniferous Period. - - -

      \usepackage[record]{glossaries-extra}

    -

    and the

    and the .bib file is specified in the resource command. For example, if the .bib file is called \GlsXtrLoadResources[src={entries}]

    -

    You can have a comma-separated list. For example, if you also have entries defined +

    You can have a comma-separated list. For example, if you also have entries defined in the file entries2.bib: @@ -1226,10 +1241,10 @@ class="cmtt-10">entries2.bib:

    -\GlsXtrLoadResources[src={entries,entries2.bib}] +\GlsXtrLoadResources[src={entries,entries2}]
    -

    -

    There are other keys you can use when you define an entry. For example, the

    +

    There are other keys you can use when you define an entry. For example, the name key indicates how the term should appear in the list of entries (glossary), but if the term should appear differently when you reference it with label} in the document, you need to use the text key as well. -

    For example: +

    For example: @@ -1252,7 +1267,7 @@ class="cmtt-10">text key as well.  
      a, \ldots, z, A, \ldots, Z}  
    }

    -

    This will appear in the text as “Latin alphabet” but will be listed in the glossary +

    This will appear in the text as “Latin alphabet” but will be listed in the glossary as “Latin Alphabet”. With bib2gls this entry is defined in the   a, \ldots, z, A, \ldots, Z}  
    }

    -

    -

    Another commonly used key is

    +

    Another commonly used key is plural for specifying the plural of the term. This defaults to the value of the text key with an “s” appended, but if this is incorrect, @@ -1289,10 +1304,10 @@ class="cmtt-10">plural key to override it:  
      description={canal from mouth to stomach}  
    }

    -

    (Remember from earlier that the initial ligature

    (Remember from earlier that the initial ligature \oe needs to be grouped.) -

    Abbreviations can be defined using -


    Abbreviations can be defined using: +


    \newacronym[options]{short}{long}

    -

    +

    where ⟨label⟩ is the label (as per \newglossaryentry), ⟨long⟩ is the long form. For example, the following

    \newacronym{svm}{SVM}{support vector machine}
    -

    This internally uses

    This internally uses \newglossaryentry to define an entry with the label svm. By default, the  [description={statistical pattern recognition technique}]  
     {svm}{SVM}{support vector machine}

    -

    -

    Before you define your acronyms (or other types of abbreviations), you need to -specify which style to use with -


    +

    Before you define your acronyms (or other types of abbreviations), you need to +specify which style to use with: +


    \setacronymstyle{style name}

    -

    +

    where ⟨style name⟩ is the name of the style. There are a number of predefined styles, such as: \textsc to typeset the acronym or that use a footnote on first use. See the main user guide for further details. -

    The

    The glossaries-extra package provides improved abbreviation handling with a lot more predefined styles. With this extension package, abbreviations are defined using: -



    \newabbreviation[options]{short}{long}

    -

    +

    You can still use \newacronym but it’s redefined to use the new abbreviation interface. The style must now be set using: -



    \setabbreviationstyle[category]{style name}

    -

    +

    The default ⟨category⟩ is abbreviation. If you use } class="cmsy-10">}

    -

    The plural forms for abbreviations can be specified using the

    The plural forms for abbreviations can be specified using the longplural and shortplural keys. For example: @@ -1447,7 +1462,7 @@ class="cmtt-10">shortplural keys. For example:  
     [longplural={diagonal matrices}]  
     {dm}{DM}{diagonal matrix}

    -

    or (with

    or (with glossaries-extra): @@ -1459,7 +1474,7 @@ class="cmss-10">glossaries-extra [longplural={diagonal matrices}]  
     {dm}{DM}{diagonal matrix}

    -

    If omitted, the defaults are again obtained by appending an “s” to the singular +

    If omitted, the defaults are again obtained by appending an “s” to the singular versions. With bib2gls, the definition in the .bib file is:  
      longplural={diagonal matrices}  
    }

    -

    -

    It’s also possible to have both a name and a corresponding symbol. +

    +

    It’s also possible to have both a name and a corresponding symbol. Just use the name key for the name and the symbol key for the symbol. For @@ -1493,7 +1508,7 @@ example:  
      description={the set containing no elements}  
    }

    -

    or with

    or with bib2gls the definition in the .bib file is: @@ -1508,14 +1523,13 @@ class="cmtt-10">.bib file is:  
      description={the set containing no elements}  
    }

    -

    -

    If you want the symbol in the

    +

    If you want the symbol in the name field then you must supply a sort value with Options 1 and 3 otherwise you’ll end up with errors from TEX or 3 otherwise you’ll end up with errors from TeX or xindy. With   description={the set containing no elements}  
    }

    -

    This displays the symbol as

    This displays the symbol as but sorts according to “empty set”. You may want to consider using glossaries-extraglossaries-extrasymbols package option which provides -



    \glsxtrnewsymbol[options]{label}{symbol}

    -

    +

    This internally uses \newglossaryentry but automatically sets the sort key to the @@ -1574,8 +1588,8 @@ class="cmti-10">label⟩. For example:  
    \printglossaries  
    \end{document}

    -

    Now the sort value is “emptyset” rather than the previous “empty set”. -

    With

    Now the sort value is “emptyset” rather than the previous “empty set”. +

    With bib2gls you can define this in the .bib file as @@ -1589,7 +1603,7 @@ class="cmtt-10">.bib file as  
      description={the set containing no elements}  
    }

    -

    in which case

    in which case bib2gls will try to interpret the name field to determine the sort @@ -1604,7 +1618,7 @@ value. Alternatively you can use:  
      description={the set containing no elements}  
    }

    -

    which will use the label (

    which will use the label (emptyset) as the sort value. (You don’t need the symbols @@ -1625,20 +1639,34 @@ now:  
    \printunsrtglossaries  
    \end{document}

    -

    -

    +

    +

    Note that while the sort key is advised for symbols when using \makeglossaries or +\makenoidxglossaries it shouldn’t be used with bib2gls. Instead, bib2gls has its +own algorithm for determining the sort value based on the entry type (@entry, +@symbol etc). See bib2gls gallery: sorting for further details. +

    -

    Top

    3 Using Entries

    -

    Once you have defined your entries, as described above, you can reference them in +

    Once you have defined your entries, as described above, you can reference them in your document. There are a number of commands to do this, but the most common one is: -



    \gls{label}

    -

    +

    where ⟨label⟩ is the label you assigned to the entry when you defined it. For example, bib2gls\ref and \cite) until bib2gls has created the relevant files and LATEX is + id="dx1-4002"> has created the relevant files and LaTeX is rerun. -

    If you are using the

    If you are using the hyperref package (remember to load it before glossaries) \gls* for example, \gls*{fishage}. The other commands described in this section all have a similar starred form. -

    If the entry was defined as an acronym (using

    If the entry was defined as an acronym (using \newacronym with glossaries described above) or an abbreviation (using long-short, then \gls{svm} will display “support vector machine (SVM)” the first time + + + it’s used, but the next occurrence of \gls{svm} will just display “SVM”. (If you use glossaries-extra the default doesn’t show the long form on first use. You’ll need to change the style first, as described earlier.) - - - -

    If you want the plural form, you can use: -


    If you want the plural form, you can use: +


    \glspl{label}

    -

    +

    instead of \gls{label}. For example, \glspl{set} displays “sets”. -

    If the term appears at the start of a sentence, you can convert the first letter to +

    If the term appears at the start of a sentence, you can convert the first letter to upper case using: -



    \Gls{label}

    -

    +

    for the singular form or -



    \Glspl{label}

    -

    +

    for the plural form. For example: @@ -1720,23 +1747,23 @@ for the plural form. For example:

    \Glspl{set} are collections.
    -

    produces “Sets are collections”. -

    If you’ve specified a symbol using the

    produces “Sets are collections”. +

    If you’ve specified a symbol using the symbol key, you can display it using: -



    \glssymbol{label}

    -

    -

    +

    +

    -

    Top

    4 Displaying a List of Entries

    -

    In

    In §1 §1 Getting Started, I mentioned that there are three options you can choose from to create an automatically sorted glossary with the base glossaries @@ -1755,7 +1782,7 @@ build. -


    @@ -1773,7 +1800,7 @@ id="TBL-2-3" />

    OptionOption 4

    Requires +class="td11">

    Requires glossaries-extra?

    Requires +class="td11">

    Requires an external application?

    Requires +class="td11">

    Requires Perl?

    Requires +class="td11">

    Requires Java?

    Can +class="td11">

    Can sort extended Latin @@ -1861,7 +1888,7 @@ class="td11">

    Efficient +class="td11">

    Efficient sort algorithm?

    Can +class="td11">

    Can use different sort @@ -1892,7 +1919,7 @@ class="td11">

    Any +class="td11">

    Any problematic sort values?

    Can +class="td11">

    Can form ranges in @@ -1923,7 +1950,7 @@ class="td11">

    Can +class="td11">

    Can have non-standard locations?

    -

    Requires some setting up. @@ -1952,12 +1979,12 @@ class="description">Option 1: -

    This is the simplest option but it’s slow and if you want a sorted - list, it doesn’t work for non-Latin alphabets. The name mustn’t contain - commands (or, if it does, the sort value must be supplied) unless you - have the package option

    This is the simplest option but it’s slow and if you want a sorted list, + it doesn’t work for extended or non-Latin alphabets. The name mustn’t + contain commands (or, if it does, the sort value must be supplied) unless + you have the package option sanitizesort or sortuse\makenoidxglossaries to your preamble (before you start defining your entries, as described in §2 §2 Defining Terms).

  • Put -



    \printnoidxglossary[sort=order,other options]

    -

    +

    where you want your list of entries to appear. The sort ⟨order⟩ may be one of: case (case-sensitive class="cmtt-10">def (in order of definition) or use (in order of use). Alternatively, use -



    \printnoidxglossaries

    -

    +

    to display all your glossaries (if you have more than one). This command doesn’t have any arguments. -

    This option allows you to have different sort methods. For example: +

    This option allows you to have different sort methods. For example: @@ -2010,15 +2037,13 @@ class="cmtt-10">\printnoidxglossaries


    \printnoidxglossary[sort=word]% main glossary  
    \printnoidxglossary[type=symbols,sort=use]% symbols glossary
    -

    +

  • Run LATEX twice on your document. (As you would do to make a table + class="enumerate" id="x1-5011x3">Run LaTeX twice on your document. (As you would do to make a table of contents appear.) For example, click twice on the “typeset” or “build” - or “PDFLATEX” button in your editor.
  • -

    Here’s a complete document ( +

    Here’s a complete document (myDoc.tex): @@ -2035,7 +2060,7 @@ class="cmtt-10">myDoc.tex):  
    \printnoidxglossaries % iterate over all indexed entries  
    \end{document}

    -

    Document build: +

    Document build: @@ -2044,28 +2069,25 @@ class="cmtt-10">myDoc.tex): pdflatex myDoc  
    pdflatex myDoc

    -

    +

    Option 2: -

    This option uses an application called

    This option uses an application called makeindex to sort the entries. This - application comes with all modern TEX distributions, but it’s hard-coded for - the non-extended Latin alphabet. This process involves making LATEX write + application comes with all modern TeX distributions, but it’s hard-coded for + the non-extended Latin alphabet. This process involves making LaTeX write the glossary information to a temporary file which makeindex reads. Then makeindex writes a new file containing the code to typeset the - glossary. LATEX then reads this file on the next run. The makeindex application is automatically invoked by the helper \GlsSetQuote to change this to some other character.

    \GlsSetQuote{+}
    -

    Use this as soon as possible after you’ve loaded the

    Use this as soon as possible after you’ve loaded the glossaries package.

    @@ -2103,21 +2125,21 @@ class="cmtt-10">\makeglossaries to your preamble (before you start defini
  • Put -



    \printglossary[options]

    -

    +

    where you want your list of entries (glossary) to appear. (The sort key isn’t available in ⟨options⟩.) Alternatively, use -



    \printglossaries

    -

    +

    which will display all glossaries (if you have more than one). This command doesn’t have any arguments. -

    All glossaries are sorted using the same method which may be identified +

    All glossaries are sorted using the same method which may be identified with one of the package options: sort=sort=def.
    -

    +

  • Run LATEX on your document. This creates files with the extensions - .glo and .ist (for example, if your LATEX document is called - myDoc.tex, then you’ll have two extra files called myDoc.glo and - myDoc.ist). If you look at your document at this point, you won’t see the - glossary as it hasn’t been created yet. + class="enumerate" id="x1-5030x4">Run LaTeX on your document. This creates files with the extensions .glo + and .ist (for example, if your LaTeX document is called myDoc.tex, then + you’ll have two extra files called myDoc.glo and myDoc.ist). If you look + at your document at this point, you won’t see the glossary as it hasn’t + been created yet.
  • Run .tex) extension. If you have access to a terminal or a co
    makeglossaries myDoc
    -

    (Replace myDoc with the base name of your LATEX document file - without the .tex extension. Avoid spaces in the file name.) If you don’t - have Perl installed use

    (Replace myDoc with the base name of your LaTeX document file without + the .tex extension. Avoid spaces in the file name.) If you don’t have Perl + installed use makeglossaries-lite instead: @@ -2178,18 +2197,17 @@ class="cmtt-10">makeglossaries-lite makeglossaries-lite myDoc

  • -

    -

    Some beginners get confused by

    +

    Some beginners get confused by makeglossaries the application (run as a system command) and \makeglossaries the LATEX command +class="cmtt-10">\makeglossaries the LaTeX command which should be typed in the document preamble. These are two different concepts that happen to have similar looking names.
    -

    -

    If you don’t know how to use the command prompt, then you can +

    +

    If you don’t know how to use the command prompt, then you can probably configure your text editor to add makeglossaries (or @@ -2197,10 +2215,13 @@ class="cmtt-10">makeglossariesmakeglossaries-lite) as a build tool, but each editor has a different method of doing this, so I can’t give a general description. You will have - to check your editor’s manual. If you still have problems, try adding the - Incorporating + makeglossaries or makeglossaries-lite or bib2gls into the document + build.) If you still have problems, try adding the automake package option: + id="dx1-5038"> package + option: @@ -2208,8 +2229,8 @@ class="cmss-10">automake \usepackage[automake]{glossaries}

    -

    -

    The default sort is word order (“sea lion” comes before “seal”). If you +

    +

    The default sort is word order (“sea lion” comes before “seal”). If you want letter ordering you need to add the order=letter \usepackage[order=letter]{glossaries}

    -

    +

  • Once you have successfully completed the previous step, you can now run - LATEX on your document again.
  • -

    Here’s a complete document ( +

    Here’s a complete document (myDoc.tex): @@ -2246,7 +2266,7 @@ class="cmtt-10">myDoc.tex):  
    \printglossaries % input files created by makeindex  
    \end{document}

    -

    Document build: +

    Document build: @@ -2256,7 +2276,7 @@ class="cmtt-10">myDoc.tex):  
    makeglossaries myDoc  
    pdflatex myDoc

    -

    or +

    or @@ -2266,36 +2286,32 @@ class="cmtt-10">myDoc.tex):  
    makeglossaries-lite myDoc  
    pdflatex myDoc

    -

    +

    Option 3: -

    This option uses an application called

    This option uses an application called xindy to sort the entries. This application is more flexible than makeindex and is able to sort extended Latin - or non-Latin alphabets. It comes with both TEX Live and MiKTEX. + or non-Latin alphabets. It comes with both TeX Live and MiKTeX. Since xindy is a Perl script, you will also need to ensure that Perl is installed. In a similar way to Option 2, this option involves making - LATEX write the glossary information to a temporary file which xindy reads. Then xindy writes a new file containing the code to typeset - the glossary. LATEX then reads this file on the next run. The xindy application is automatically invoked by the helper glossaries \usepackage[xindy]{glossaries}

    -

    +

  • Add \makeglossaries to your preamble (before you start defini
  • Put -


  • Run LATEX on your document. This creates files with the extensions - .glo and .xdy (for example, if your LATEX document is called - myDoc.tex, then you’ll have two extra files called myDoc.glo and - myDoc.xdy). If you look at your document at this point, you won’t see the - glossary as it hasn’t been created yet. + class="enumerate" id="x1-5061x4">Run LaTeX on your document. This creates files with the extensions .glo + and .xdy (for example, if your LaTeX document is called myDoc.tex, then + you’ll have two extra files called myDoc.glo and myDoc.xdy). If you look + at your document at this point, you won’t see the glossary as it hasn’t + been created yet.
  • Run .tex extension). If you have access to a terminal or a co
    makeglossaries myDoc
    -

    (Replace myDoc with the base name of your LATEX document file - without the .tex extension. Avoid spaces in the file name. If you don’t - know how to use the command prompt, then as mentioned above, you may - be able to configure your text editor to add

    (Replace myDoc with the base name of your LaTeX document file without + the .tex extension. Avoid spaces in the file name. If you don’t know how + to use the command prompt, then as mentioned above, you may be able to + configure your text editor to add makeglossaries as a build tool. -

    The default sort is word order (“sea lion” comes before “seal”). If you +

    The default sort is word order (“sea lion” comes before “seal”). If you want letter ordering you need to add the order=letter package option: @@ -2405,14 +2418,13 @@ class="cmtt-10">order=letter package

    \usepackage[xindy,order=letter]{glossaries}
    -

    +

  • Once you have successfully completed the previous step, you can now run - LATEX on your document again. + LaTeX on your document again.
  • -

    Here’s a complete document (

    Here’s a complete document (myDoc.tex): @@ -2429,7 +2441,7 @@ class="cmtt-10">myDoc.tex):  
    \printglossaries % input files created by xindy  
    \end{document}

    -

    Document build: +

    Document build: @@ -2439,23 +2451,21 @@ class="cmtt-10">myDoc.tex):  
    makeglossaries myDoc  
    pdflatex myDoc

    -

    +

    Option 4: -

    This requires the extension package

    This requires the extension package glossaries-extra and an application called bib2gls. This application is able to sort extended Latin or non-Latin - alphabets. It comes with both TEX Live and MiKTEX but requires at least - Java 7. This method works differently to Options 2 and 3. Instead of creating a file containing the code to typeset the glossary it creates a @@ -2482,17 +2492,17 @@ class="cmss-10">glossaries-extra \usepackage[record]{glossaries-extra}

    -

    +

  • Add one or more -



    \GlsXtrLoadResources[src={bib list},options]

    -

    +

    to your preamble where ⟨bib list⟩ is the list of .bib files containing the @@ -2530,7 +2540,7 @@ class="cmtt-10">.bib files containing the  
      sort={double}% double-precision sort  
    ]

    -

    The last resource set assumes that the entries defined in the file +

    The last resource set assumes that the entries defined in the file constants.bib have a number stored in the user1 field. For @@ -2546,37 +2556,36 @@ class="cmtt-10">user1 field. For  
      user1={3.141592654}  
    }

  • -

    +

  • Put -



    \printunsrtglossary[type={type},options]

    -

    +

    where you want your list of entries (glossary) to appear. (The sort key isn’t available in ⟨options⟩. It needs to be used in \GlsXtrLoadResources instead.) Alternatively, use -



    \printunsrtglossaries

    -

    +

  • Run LATEX on your document. The Run LaTeX on your document. The record option adds information to - the option adds information to the + .aux file that provides bib2gls with all required details for each - resource set. For example, if the file is called with all required details for each resource + set. For example, if the file is called myDoc.tex: @@ -2584,7 +2593,7 @@ class="cmtt-10">myDoc.tex:
    pdflatex myDoc
    -

    +

  • Run bib2gls bib2gls myDoc
  • -

    or (if you need letter groups) +

    or (if you need letter groups) @@ -2604,12 +2613,11 @@ class="cmtt-10">bib2gls bib2gls --group myDoc

    -

    +

  • Run LATEX again.
  • -

    Here’s a complete document (Run LaTeX again. +

    Here’s a complete document (myDoc.tex): @@ -2630,7 +2638,7 @@ class="cmtt-10">myDoc.tex):  
    \printunsrtglossaries % iterate over all defined entries  
    \end{document}

    -

    The accompanying

    The accompanying entries.bib file: @@ -2642,7 +2650,7 @@ class="cmtt-10">entries.bib file:  
      description = {an example}  
    }

    -

    Document build: +

    Document build: @@ -2652,10 +2660,10 @@ class="cmtt-10">entries.bib file:  
    bib2gls myDoc  
    pdflatex myDoc

    -

    +

    -

    If you are having difficulty integrating

    If you are having difficulty integrating makeglossaries into your document build process, you may want to consider using myDoc.tex might start with:  
     \usepackage{glossaries}  
     \makeglossaries

    -

    then to build the document you just need the single system call: +

    then to build the document you just need the single system call: @@ -2686,20 +2694,17 @@ class="cmtt-10">myDoc.tex might start with:

     arara myDoc
    -

    (The currently pending version 4.0 of

    (As from version 4.0, arara has directives for also has directives for makeglossaries-lite -and and +bib2gls. These aren’t available in earlier versions, but you could try copying -and adapting the makeglossaries.yaml file and replace makeglossaries as -appropriate.) -

    When sorting the entries, the string comparisons are made according to each + id="dx1-5092">. See the arara manual for further details.) +

    When sorting the entries, the string comparisons are made according to each entry’s sort key. If this is omitted, the name key is used. For example, recall the @@ -2715,7 +2720,7 @@ earlier definition:  
       description={select group or class}  
     }

    -

    No

    No sort key was used, so it’s set to the same as the name key: {\’e}lite. How this @@ -2769,10 +2774,9 @@ class="cmbx-10"> 3:

    xindy disregards LATEX commands so it sorts on elite, which puts - this entry in the “E” group. If stripping all commands leads to an empty string + id="dx1-5096"> disregards LaTeX commands so it sorts on elite, which puts this + entry in the “E” group. If stripping all commands leads to an empty string (such as \ensuremath{\emptyset}) then xindysort value that xindy will accept. -

    xindy merges entries with duplicate sort values. xindyxindyxindy has stripped all commands and braces.
    -

    +

     4:
    bib2gls has a primitive LATEX parser that recognises a limited set of + id="dx1-5102"> has a primitive LaTeX parser that recognises a limited set of commands, which includes the standard accent commands and some maths commands, so it can convert {\’e}lite to lite. It disregards unknown class="cmtt-10">bib2gls doesn’t mind that. -

    Note that even if the name is given as

    Note that even if the name is given as {\’e}lite, the letter group heading (if the --group switch is used) may end up with the character É @@ -2822,14 +2825,18 @@ class="cmtt-10">--group switch is used) may end up with the will need to ensure the document can support this character either with inputenc or by switching to a LATEX engine with native UTF-8 + id="dx1-5104"> or by switching to a LaTeX engine with native UTF-8 support. +

    There’s more information on how bib2gls obtains the sort value in bib2gls + gallery: sorting.

    -

    If the

    If the inputenc package is used: + id="dx1-5106"> package is used: @@ -2837,7 +2844,7 @@ class="cmss-10">inputenc  \usepackage[utf8]{inputenc}

    -

    and the entry is defined as:

    +

    and the entry is defined as:

     elite so the entry class="cmss-10">sanitizesort=true package + id="dx1-5107"> package option, the sort value will be interpreted as élite where é has been @@ -2892,7 +2899,7 @@ class="cmbx-10"> 2:
    makeindex sees sees é as two octets (0xC3 0xA9) rather than a single character so it tries to put é 3:
    xindy will correctly recognise the sort value will correctly recognise the sort value élite and will place it in whatever letter group is appropriate for the given language setting. @@ -2920,16 +2927,16 @@ class="cmbx-10"> 4:
    The inputenc package doesn’t affect the encoding used with package doesn’t affect the encoding used with .bib entry definitions, since these are dependent on the encoding used to save the .bib file - (although the labels must still be ASCII). You can help bib2gls (and - JabRef) by putting an encoding comment at the start of the .bib file: -
    + id="dx1-5111"> (and JabRef) by putting an encoding comment at the + start of the .bib file:
    % UTF-8
    -

    With the correct encoding set up,

    With the correct encoding set up, bib2gls will determine that the sort value is + id="dx1-5112"> will determine that the sort value is élite and will place it in whatever letter group is appropriate for the given @@ -2955,21 +2962,21 @@ class="cmtt-10">lite in the group.

    -

    Therefore if you have extended Latin or non-Latin characters, your best option is +

    Therefore if you have extended Latin or non-Latin characters, your best option is to use either xindy ( (Option 3) or bib2gls ( (Option 4) with the inputenc or or fontspec + id="dx1-5116"> package. If you use makeindex ( (Option 2) you need to specify the sort key like this: @@ -2985,7 +2992,7 @@ this:  
      description={select group or class}  
    }

    -

    or

    +

    or

    \newglossaryentryname key if you don’t set the sort key. -

    If you use

    If you use Option 3 and the name only contains a command or commands (such as   description={paragraph symbol}}

    -

    +

    -

    Top

    5 Customising the Glossary

    -

    The default glossary style uses the

    The default glossary style uses the description environment to display the entry list. @@ -3069,14 +3076,14 @@ class="cmtt-10">\glsnamefont:

    \renewcommand*{\glsnamefont}[1]{\textmd{#1}}
    -

    Some classes and packages redefine the

    Some classes and packages redefine the description environment in such as way that’s incompatible with the glossaries package. In which case you’ll need to select a different glossary style (see below). -

    By default, a full stop is appended to the description (unless you use +

    By default, a full stop is appended to the description (unless you use glossaries-extra). To prevent this from happening use the \usepackage[nopostdot]{glossaries}

    -

    or to add it with

    or to add it with glossaries-extra: @@ -3099,8 +3106,8 @@ class="cmss-10">glossaries-extra:

    \usepackage[postdot]{glossaries-extra}
    -

    -

    By default, a location list is displayed for each entry (unless you use +

    +

    By default, a location list is displayed for each entry (unless you use \printunsrtglossary without bib2gls2 or 3 described in §4 §4 Displaying a List of Entries or Option 4 (with \usepackage[nonumberlist]{glossaries}

    -

    or with

    or with bib2gls use save-locations=false in the optional argument of the appropriate \GlsXtrLoadResources (it’s possible to have some resource sets with locations and some without). -

    Entries are grouped according to the first letter of each entry’s sort key. By -default a vertical gap is placed between letter groups. You can suppress this with the -

    Entries are grouped according to the first letter of each entry’s sort +key. By default a vertical gap is placed between letter groups for most of +the predefined styles. You can suppress this with the nogroupskip package option: + id="dx1-6012"> package +option: @@ -3155,14 +3163,14 @@ class="cmss-10">nogroupskip \usepackage[nogroupskip]{glossaries}

    -

    -

    If the default style doesn’t suit your document, you can change the style +

    +

    If the default style doesn’t suit your document, you can change the style using: -



    \setglossarystyle{style name}

    -

    +

    There are a number of predefined styles. Glossaries can vary from a list of symbols with a terse description to a list of words or phrases with descriptions that span @@ -3175,7 +3183,7 @@ a style that suits your document. For example:

    \setglossarystyle{index}
    -

    You can also use the

    You can also use the style package option for the preloaded styles. For example: @@ -3185,8 +3193,8 @@ class="cmss-10">style \usepackage[style=index]{glossaries}

    -

    -

    Examples: +

    +

    Examples:

    1. You have entries where the name is a symbol and the description is a brief @@ -3202,7 +3210,7 @@ class="cmss-10">glossary-mcols\usepackage{glossary-mcols}  
      \setglossarystyle{mcolindex}
    -

    or +

    or @@ -3210,7 +3218,7 @@ class="cmss-10">glossary-mcols \usepackage[stylemods={mcols},style=mcolindex]{glossaries-extra}

    -

    +

  • You have entries where the name is a word or phrase and the description spans @@ -3222,7 +3230,7 @@ class="cmss-10">glossary-mcols\setglossarystyle{altlist}
  • -

    or +

    or @@ -3230,7 +3238,7 @@ class="cmss-10">glossary-mcols \usepackage[stylemods,style=altlist]{glossaries-extra}

    -

    +

  • You have entries where the name is a single word, the description is @@ -3241,20 +3249,18 @@ class="cmss-10">glossary-mcols - \usepackage[nopostdot,nonumberlist]{glossaries} -  
    \setglossarystyle{long4col} + \usepackage[nopostdot,nonumberlist,style=long4col]{glossaries}
  • -

    or one of the “tree” styles: +

    or one of the “tree” styles:

    - \usepackage[nopostdot,nonumberlist]{glossaries} -  
    \setglossarystyle{tree} + \usepackage[nopostdot,nonumberlist,style=tree]{glossaries}
    -

    -

    If your glossary consists of a list of abbreviations and you also want to specify +

    +

    If your glossary consists of a list of abbreviations and you also want to specify a description as well as the long form, then you need to use an abbreviation style that will suit the glossary style. For example, use the long-short-desc acronym @@ -3266,7 +3272,7 @@ style:

    \setacronymstyle{long-short-desc}
    -

    Define the acronyms with a description: +

    Define the acronyms with a description: @@ -3276,7 +3282,7 @@ style:  
     [description={statistical pattern recognition technique}]  
     {svm}{SVM}{support vector machine}

    -

    Alternatively with

    Alternatively with glossaries-extra: @@ -3289,8 +3295,8 @@ class="cmss-10">glossaries-extra [description={statistical pattern recognition technique}]  
     {svm}{SVM}{support vector machine}

    -

    -

    Choose a glossary style that suits wide entry names. For example: +

    +

    Choose a glossary style that suits wide entry names. For example: @@ -3298,25 +3304,25 @@ class="cmss-10">glossaries-extra \setglossarystyle{altlist}

    -

    -

    +

    +

    -

    Top

    6 Multiple Glossaries

    -

    The

    The glossaries package predefines a default main glossary. When you define an entry (using one of the commands described in §2 §2 Defining Terms), that entry is automatically assigned to the default glossary, unless you indicate otherwise using the type key. However you first need to make sure the desired glossary has been defined. This is done using: -



    \newglossary[glg]{glo}{title}

    -

    +

    The ⟨label⟩ is a label that uniquely identifies this new glossary. As with other types of identifying labels, be careful not to use active characters in ⟨makeindexxindy (described in §4 §4 Displaying a List of Entries). If you use Option 1 described above (or \printunsrtglossaries), then the ⟨glg⟩, ⟨gls⟩ and ⟨glo⟩ -arguments are ignored, in which case you may prefer to use the starred version where -you don’t specify the extensions: -



    \newglossary*{label}{title}

    -

    -

    In the case of Options 

    +

    In the case of Options 2 or 3, all glossary definitions must come before \makeglossaries. (Entries definitions should come after \makeglossaries. (Entry definitions should come after \makeglossaries.) In the case of Option 4, all glossary definitions must come before any \GlsXtrLoadResources that requires them. -

    Since it’s quite common for documents to have both a list of terms and a list of +

    Since it’s quite common for documents to have both a list of terms and a list of abbreviations, the glossaries package provides the package option acronyms \newglossary[alg]{acronym}{acr}{acn}{\acronymname}

    -

    The option also changes the behaviour of

    The option also changes the behaviour of \newacronym so that acronyms are automatically put in the list of acronyms instead of the main glossary. The abbreviations to create a list of abbreviations for \newabbreviation. -

    There are some other package options for creating commonly used lists:

    There are some other package options for creating commonly used lists: symbols (lists of symbols), options]{label}). -

    For example, suppose you want a main glossary for terms, a list of acronyms and +

    For example, suppose you want a main glossary for terms, a list of acronyms and a list of notation: @@ -3425,7 +3432,7 @@ a list of notation:  \usepackage[acronyms]{glossaries}  
     \newglossary[nlg]{notation}{not}{ntn}{Notation}

    -

    After

    After \makeglossaries (or \makenoidxglossaries) you can define the entries in the preamble. For example: @@ -3448,7 +3455,7 @@ the preamble. For example:  
       description={A set},  
       sort={S}}

    -

    or if you don’t like using

    or if you don’t like using \ensuremath: @@ -3463,34 +3470,34 @@ class="cmtt-10">\ensuremath:  
       description={A set},  
       sort={S}}

    -

    -

    Each glossary is displayed using: -


    +

    Each glossary is displayed using: +


    \printnoidxglossary[type=type]

    -

    +

    (Option 1) or -



    \printglossary[type=type]

    -

    +

    (Options 2 and 3). Where ⟨type⟩ is the glossary label. If the type is omitted the default main glossary is assumed. -

    If you’re using

    If you’re using bib2gls then each glossary is displayed using: -



    \printunsrtglossary[type=type]

    -

    +

    With this method you don’t use \makeglossaries or \makenoidxglossaries. @@ -3514,7 +3521,7 @@ Instead you can assign the entry type with the resource command. For example:  
      type={symbols}% put in symbols glossary  
     ]

    -

    Later in the document: +

    Later in the document: @@ -3524,26 +3531,26 @@ Instead you can assign the entry type with the resource command. For example:  
     \printunsrtglossary[type=abbreviations]  
     \printunsrtglossary[type=symbols]

    -

    -

    There’s a convenient shortcut that will display all the defined glossaries +

    +

    There’s a convenient shortcut that will display all the defined glossaries depending on the indexing method: -



    \printnoidxglossaries

    -

    +

    (Option 1) or -



    \printglossaries

    -

    +

    (Options 2 and 3) or (glossaries-extra only) -



    \printunsrtglossaries

    -

    -

    If you use

    +

    If you use Option 1, you don’t need to do anything else. If you use Options 2 or 3 with the makeglossaries Perl script or the makeglossaries-lite Lua script, -you similarly don’t need to do anything else. If you use Options 2 or 3 without the - Lua +script, you similarly don’t need to do anything else. If you use Options 2 +or 3 without the makeglossaries Perl script then you need to make sure you run Perl script or makeglossaries-lite +Lua script then you need to make sure you run makeindex//xindy + id="dx1-7020"> for each for each defined glossary. The ⟨defined glossary. The ⟨gls⟩ and ⟨glo⟩ arguments of \newglossary specify the file @@ -3574,11 +3585,11 @@ class="cmti-10">glg⟩ is the file extension for the transcript file. This should be different for each glossary in case you need to check for makeindex//xindy errors or warnings if things go + id="dx1-7022"> errors or warnings if things go wrong. -

    For example, suppose you have three glossaries in your document (

    For example, suppose you have three glossaries in your document (main, acronym and notation), specified using: \usepackage[acronyms]{glossaries}  
    \newglossary[nlg]{notation}{not}{ntn}{Notation}

    -

    Then (assuming your LATEX document is in a file called

    Then (assuming your LaTeX document is in a file called myDoc.tex): -

    +

    Option 2 Either use one makeglossaries or or makeglossaries-lite call: + id="dx1-7024"> call:
    makeglossaries myDoc
    -

    or +

    or @@ -3617,9 +3627,9 @@ class="cmtt-10">makeglossaries-lite makeglossaries-lite myDoc

    -

    Or you need to run

    Or you need to run makeindex three times: + id="dx1-7025"> three times: @@ -3629,22 +3639,22 @@ class="cmtt-10">makeindexmakeindex -t myDoc.alg -s myDoc.ist -o myDoc.acr myDoc.acn  
    makeindex -t myDoc.nlg -s myDoc.ist -o myDoc.not myDoc.ntn

    -

    +

    Option 3 Either use one makeglossaries call: + id="dx1-7026"> call:
    makeglossaries myDoc
    -

    Or you need to run

    Or you need to run xindy three times (be careful not to insert line breaks + id="dx1-7027"> three times (be careful not to insert line breaks where the line has wrapped.) @@ -3658,13 +3668,13 @@ class="cmtt-10">xindyxindy  -L english -C utf8 -I xindy -M myDoc -t myDoc.nlg  
    -o myDoc.not myDoc.ntn

    -

    +

    Option 4 With bib2gls only one call is required: + id="dx1-7028"> only one call is required: @@ -3673,16 +3683,16 @@ class="cmtt-10">bib2glsbib2gls --group myDoc  
    pdflatex myDoc
    -

    (Omit

    (Omit --group if you don’t need letter groups.)

    -

    +

    -

    Top

    7 glossaries and hyperref

    -

    Take care if you use the

    Take care if you use the glossaries package with hyperrefhyperref\usepackage{glossaries}

    -

    If you use

    If you use hyperref make sure you use PDFLATEX rather than the LATEX to DVI + id="dx1-8007"> make sure you use PDFLaTeX rather than the LaTeX to DVI engine. The DVI format can’t break hyperlinks across a line so long glossary entries (such as the full form of acronyms) won’t line wrap with the DVI engine. Also, hyperlinks in sub- or superscripts aren’t correctly sized with the DVI format. -

    By default, if the

    By default, if the hyperref package has been loaded, commands like \gls will form -a hyperlink to the relevant entry in the glossary. If you to disable this for all your -glossaries, then use -


    all +your glossaries, then use: +


    \glsdisablehyper

    -

    +

    If you want hyperlinks suppressed for entries in specific glossaries, then use the nohypertypes\usepackage[acronym,nohypertypes={acronym,notation}]{glossaries}  
    \newglossary[nlg]{notation}{not}{ntn}{Notation}

    -

    -

    If you want the hyperlinks suppressed the first time an entry is used, but you +

    +

    If you want the hyperlinks suppressed the first time an entry is used, but you want hyperlinks for subsequence references then use the hyperfirst=\usepackage[hyperfirst=false]{glossaries}

    -

    -

    Take care not to use non-expandable commands in PDF bookmarks. This isn’t +

    The glossaries-extra extension package provides another method using category +attributes. See the glossaries-extra user manual for further details. +

    Take care not to use non-expandable commands in PDF bookmarks. This isn’t specific to the glossaries package but is a limitation of PDF bookmarks. + id="dx1-8013"> package but is a limitation of PDF bookmarks. Non-expandable commands include commands like \gls, \glspl, \Gls and \Glspl. The hyperref package provides a way of specifying alternative text for the PDF + id="dx1-8014"> package provides a way of specifying alternative text for the PDF bookmarks via \texorpdfstring. For example: @@ -3781,15 +3794,15 @@ class="cmtt-10">\texorpdfstring. For example:

    \section{The \texorpdfstring{\gls{fishage}}{Fish Age}}
    -

    However, it’s not a good idea to use commands like

    However, it’s not a good idea to use commands like \gls in a section heading as -you’ll end up with the table of contents in your location list. Instead you can +you’ll end up with the table of contents page in your location list. Instead you can use -



    \glsentrytext{label}

    -

    +

    This is expandable provided that the text key doesn’t contain non-expandable code. For example, the following works: @@ -3800,10 +3813,10 @@ For example, the following works:

    \section{The \glsentrytext{fishage}}
    -

    and it doesn’t put the table of contents in the location list. -

    If you use

    and it doesn’t put the table of contents in the location list. +

    If you use glossaries-extra then use the commands that are provided specifically for + id="dx1-8015"> then use the commands that are provided specifically for use in section headers. For example: @@ -3812,19 +3825,19 @@ use in section headers. For example:

    \section{The \glsfmttext{fishage}}
    -

    -

    +

    +

    -

    Top

    8 Cross-References

    -

    You can add a reference to another entry in a location list using the

    You can add a reference to another entry in a location list using the see={label list} key when you define an entry. The referenced entry (or entries) must also be defined. -

    For example: +

    For example: @@ -3844,7 +3857,7 @@ defined.  
      see={devonian}  
    }

    -

    The cross-reference will appear as “

    The cross-reference will appear as “see Devonian”. You can change the “see” tag using the format see=[label⟩. For example:  
       other letters such as ligatures or diacritics.}  
    }

    -

    If you use the

    If you use the see key in the optional argument of \newacronym, make sure you enclose the value in braces. For example: @@ -3884,7 +3897,7 @@ enclose the value in braces. For example:  
     [see={[see also]{ksvm}}]  
     {svm}{svm}{support vector machine}

    -

    The

    The glossaries-extra package provides a seealso key. This doesn’t allow a tag but @@ -3905,8 +3918,8 @@ class="cmsy-10">}. For example:  
     [seealso={ksvm}]  
     {svm}{svm}{support vector machine}

    -

    -

    Since the cross-reference appears in the location list, if you suppress the +

    +

    Since the cross-reference appears in the location list, if you suppress the location list using the nonumberlist package option, then the cross-reference @@ -3938,10 +3951,10 @@ example:  
     type={symbols}% put in symbols glossary  
    ]

    -

    -

    +

    +

    -

    Top

    9 Further Information

      @@ -3969,12 +3982,14 @@ class="cmss-10">glossaries-extra package.
    • The bib2gls application.
    -

    The Dickimaw Books Gallery provides additional example documents. +

    1deprecated, use babel instead

    +class="cmr-8">instead

    diff --git a/macros/latex/contrib/glossaries/glossariesbegin.pdf b/macros/latex/contrib/glossaries/glossariesbegin.pdf index bfdff9d737..b3fb491273 100644 Binary files a/macros/latex/contrib/glossaries/glossariesbegin.pdf and b/macros/latex/contrib/glossaries/glossariesbegin.pdf differ diff --git a/macros/latex/contrib/glossaries/glossariesbegin.tex b/macros/latex/contrib/glossaries/glossariesbegin.tex index e0793626a8..c84ff3074e 100644 --- a/macros/latex/contrib/glossaries/glossariesbegin.tex +++ b/macros/latex/contrib/glossaries/glossariesbegin.tex @@ -2,11 +2,15 @@ \usepackage[utf8]{inputenc} \ifpdf -\usepackage[T1]{fontenc} -\usepackage{mathpazo} -\usepackage[scaled=.88]{helvet} -\usepackage{courier} -\usepackage{xr-hyper} + \usepackage[T1]{fontenc} + \usepackage{mathpazo} + \usepackage[scaled=.88]{helvet} + \usepackage{courier} + \usepackage{metalogo} + \usepackage{xr-hyper} +\else + \providecommand{\XeLaTeX}{XeLaTeX} + \providecommand{\LuaLaTeX}{LuaLaTeX} \fi \usepackage{alltt} @@ -31,10 +35,10 @@ \texorpdfstring{{\frenchspacing\obeyspaces\ttfamily#1}}{#1}} \newcommand*{\file}[1]{\texorpdfstring{\texttt{#1}}{#1}} -\title{The glossaries package v4.45: +\title{The glossaries package v4.46: a guide for beginners} -\author{Nicola L.C. Talbot} -\date{2020-02-13} +\author{Nicola L.C. Talbot\\\href{https://www.dickimaw-books.com/}{\nolinkurl{dickimaw-books.com}}} +\date{2020-03-19} \ifpdf \externaldocument{glossaries-user} @@ -162,6 +166,10 @@ Abbreviations are slightly different if you use the extension package First use: \gls{svm}. Second use: \gls{svm}. \end{document} \end{verbatim} +Since \code{long-short} happens to be the default for +\cs{newabbreviation} (if you haven't set the \code{category} key) +you may omit the \cs{setabbreviationstyle} line in this example. + If you still want to use \cs{newacronym} (rather than \cs{newabbreviation}) then you need the optional argument of \cs{setabbreviationstyle}: @@ -178,6 +186,12 @@ argument of \cs{setabbreviationstyle}: First use: \gls{svm}. Second use: \gls{svm}. \end{document} \end{verbatim} +In this example, if you omit the \cs{setabbreviationstyle} line you +will notice a difference because the \code{short-nolong} style (not +the \code{long-short} style) is the default with \cs{newacronym}. +With the \code{short-nolong} style the first use simply shows just +the short form. + \begin{important} You can't use \cs{setacronymstyle} with \sty{glossaries-extra}. \end{important} @@ -288,11 +302,13 @@ label is used to uniquely identify the term (like the standard following alphanumerics in the labels: \code{a}, \ldots, \code{z}, \code{A}, \ldots, \code{Z}, \code{0}, \ldots, \code{9}. Sometimes you can also use punctuation characters but -not if another package (such as \sty{babel}) meddles with them. +not if another package (such as \sty{babel}) makes them active. Don't try using any characters outside of the basic Latin set with \sty{inputenc} (for example, \'e or \ss) or things will go horribly wrong. This warning only applies to the label. It doesn't apply to -the text that appears in the document. +the text that appears in the document. If you really need UTF-8 +characters in your labels then you'll need to use \XeLaTeX\ or +\LuaLaTeX. \begin{important} Don't use \cs{gls} in chapter or section headings as it can have @@ -300,7 +316,7 @@ some unpleasant side-effects. Instead use \cs{glsentrytext} for regular entries and one of \cs{glsentryshort}, \cs{glsentrylong} or \cs{glsentryfull} for acronyms. Alternatively use \sty{glossaries-extra} which provides special commands for use in -section headings, such as \cs{glsfmtshort}\marg{label}. +section headings and captions, such as \cs{glsfmtshort}\marg{label}. \end{important} The above examples are reasonably straightforward. The difficulty @@ -357,7 +373,9 @@ provides a fourth method: use \app{bib2gls} (\opt4). The first option (using \TeX) is the simplest method, as it doesn't require an external tool, but it's very inefficient and the sorting -is done according to the English alphabet. To use this method, add +is done according to lower case character code (which matches basic Latin +alphabets, such as English, but not extended Latin alphabets, such +as Icelandic). To use this method, add \cs{makenoidxglossaries} to the preamble and put \cs{printnoidxglossaries} at the place where you want your glossary. For example: @@ -390,7 +408,9 @@ For example: \begin{important} The \cs{makenoidxglossaries} method is very slow, uses an ASCII comparator and often breaks if there are commands in the -\code{name} key. +\code{name} key. See +\href{https://www.dickimaw-books.com/gallery/glossaries-performance.shtml}{Glossaries +Performance} for a comparison. \end{important} Try this out and run \LaTeX\ (or pdf\LaTeX) \emph{twice}. The first @@ -425,8 +445,8 @@ with the \pkgopt{nopostdot} package option: \usepackage[nopostdot]{glossaries} \end{verbatim} -If you tried out the previous example with \sty{glossaries-extra} -and \cs{printunsrtglossaries} the terminating full stop is missing +If you try out the earlier example with \sty{glossaries-extra} +and \cs{printunsrtglossaries} you may notice that the terminating full stop is missing and there are no number lists. You can add the full stop back with \begin{verbatim} \usepackage[nopostdot=false]{glossaries-extra} @@ -437,8 +457,7 @@ or \end{verbatim} If you want the number lists then you need to use an indexing option. - -You may have noticed that I've used another command in the above example: +You may have noticed that I've used another command in the above examples: \cs{glspl}. This displays the plural form. By default, this is just the singular form with the letter \qt{s} appended, but in the case of \qt{potato} I had to specify the correct plural using the @@ -561,7 +580,8 @@ or \verb|}| \end{alltt} \end{enumerate} -(For further details, see the section \qt{UTF-8} of the +(This isn't necessary for UTF-8 characters with \XeLaTeX\ or +\LuaLaTeX. For further details, see the section \qt{UTF-8} of the \href{https://ctan.org/pkg/mfirstuc}{\styfmt{mfirstuc}} user manual.) If you use \app{bib2gls} with \sty{glossaries-extra} then the @@ -611,7 +631,7 @@ then put the following line in the document preamble: You can have a comma-separated list. For example, if you also have entries defined in the file \file{entries2.bib}: \begin{verbatim} -\GlsXtrLoadResources[src={entries,entries2.bib}] +\GlsXtrLoadResources[src={entries,entries2}] \end{verbatim} There are other keys you can use when you define an entry. For @@ -658,7 +678,7 @@ key with an \qt{s} appended, but if this is incorrect, just use the (Remember from earlier that the initial ligature \cs{oe} needs to be grouped.) -Abbreviations can be defined using +Abbreviations can be defined using: \begin{definition} \cs{newacronym}\oarg{options}\marg{label}\marg{short}\marg{long} \end{definition} @@ -683,7 +703,7 @@ argument: \end{verbatim} Before you define your acronyms (or other types of abbreviations), you -need to specify which style to use with +need to specify which style to use with: \begin{definition} \cs{setacronymstyle}\marg{style name} \end{definition} @@ -846,6 +866,14 @@ unless you want a separate symbols list.) The corresponding document \end{document} \end{verbatim} +Note that while the \code{sort} key is advised for symbols when +using \cs{makeglossaries} or \cs{makenoidxglossaries} it shouldn't +be used with \app{bib2gls}. Instead, \app{bib2gls} has its own +algorithm for determining the sort value based on the entry type +(\code{@entry}, \code{@symbol} etc). See +\href{https://www.dickimaw-books.com/gallery/index.php?label=bib2gls-sorting}{bib2gls +gallery: sorting} for further details. + \section{Using Entries} \label{sec:useterm} @@ -960,7 +988,7 @@ disadvantages. (There's a more detailed summary in the main \item[]\optionlabel1: This is the simplest option but it's slow and if - you want a sorted list, it doesn't work for non-Latin alphabets. + you want a sorted list, it doesn't work for extended or non-Latin alphabets. The \code{name} mustn't contain commands (or, if it does, the \code{sort} value must be supplied) unless you have the package option \pkgopt{sanitizesort} or \pkgopt[def]{sort} @@ -1105,6 +1133,10 @@ similar looking names. as a build tool, but each editor has a different method of doing this, so I~can't give a~general description. You will have to check your editor's manual. + (There are some guidelines in +\href{https://www.dickimaw-books.com/latex/buildglossaries/}{Incorporating +makeglossaries or makeglossaries-lite or bib2gls into the document +build}.) If you still have problems, try adding the \pkgopt{automake} package option: \begin{verbatim} @@ -1259,7 +1291,7 @@ pdflatex myDoc This requires the extension package \sty{glossaries-extra} and an application called \app{bib2gls}. This application is able to sort extended Latin or non-Latin alphabets. It comes with both - \TeX~Live and MiK\TeX\ but requires at least Java~7. This method + \TeX~Live and MiK\TeX\ but requires at least Java~8. This method works differently to \optsand23. Instead of creating a file containing the code to typeset the glossary it creates a \file{.glstex} file containing the entry definitions fetched @@ -1410,11 +1442,9 @@ then to build the document you just need the single system call: \begin{verbatim} arara myDoc \end{verbatim} -(The currently pending version 4.0 of \app{arara} has -directives for \app{makeglossaries-lite} and \app{bib2gls}. -These aren't available in earlier versions, but you could try -copying and adapting the \file{makeglossaries.yaml} file and -replace \app{makeglossaries} as appropriate.) +(As from version 4.0, \app{arara} also has +directives for \app{makeglossaries-lite} and \app{bib2gls}. See the +\app{arara} manual for further details.) When sorting the entries, the string comparisons are made according to each entry's \code{sort} key. If this is omitted, the @@ -1473,8 +1503,12 @@ comparator. In this case you will need to ensure the document can support this character either with \sty{inputenc} or by switching to a \LaTeX\ engine with native UTF-8 support. -\end{description} +There's more information on how \app{bib2gls} obtains the sort value +in +\href{https://www.dickimaw-books.com/gallery/index.php?label=bib2gls-sorting}{bib2gls +gallery: sorting}. +\end{description} If the \sty{inputenc} package is used: \begin{verbatim} @@ -1513,7 +1547,7 @@ might put it in the \qt{\'E} letter group.) \item[\opt4:] The \sty{inputenc} package doesn't affect the encoding used with \file{.bib} entry definitions, since these are dependent on the encoding used to save the \file{.bib} file (although the -labels must still be ASCII). You can help \app{bib2gls} (and +labels must still be ASCII unless you use \XeLaTeX/\LuaLaTeX). You can help \app{bib2gls} (and JabRef) by putting an encoding comment at the start of the \file{.bib} file: \begin{alltt} \% Encoding: UTF-8 @@ -1610,7 +1644,7 @@ without). Entries are grouped according to the first letter of each entry's \code{sort} key. By default a~vertical gap is placed -between letter groups. You can suppress this with the +between letter groups for most of the predefined styles. You can suppress this with the \pkgopt{nogroupskip} package option: \begin{verbatim} \usepackage[nogroupskip]{glossaries} @@ -1667,13 +1701,11 @@ or Use one of the styles that display the symbol (not all of them do). For example, one of the tabular styles: \begin{verbatim} -\usepackage[nopostdot,nonumberlist]{glossaries} -\setglossarystyle{long4col} +\usepackage[nopostdot,nonumberlist,style=long4col]{glossaries} \end{verbatim} or one of the \qt{tree} styles: \begin{verbatim} -\usepackage[nopostdot,nonumberlist]{glossaries} -\setglossarystyle{tree} +\usepackage[nopostdot,nonumberlist,style=tree]{glossaries} \end{verbatim} \end{enumerate} @@ -1725,15 +1757,15 @@ indicate the file extensions used by \app{makeindex}\slash\app{xindy} (described in \sectionref{sec:printglossaries}). If you use \opt1 described above (or \app{bib2gls} and \cs{printunsrtglossaries}), -then the \meta{glg}, \meta{gls} and \meta{glo} arguments are -ignored, in which case you may prefer to use the starred version +then the \meta{glg}, \meta{gls} and \meta{glo} arguments aren't +relevant, in which case you may prefer to use the starred version where you don't specify the extensions: \begin{definition} \cs{newglossary*}\marg{label}\marg{title} \end{definition} In the case of \optsor23, all glossary definitions must come before -\cs{makeglossaries}. (Entries definitions should come after +\cs{makeglossaries}. (\emph{Entry} definitions should come after \cs{makeglossaries}.) In the case of \opt4, all glossary definitions must come before any \cs{GlsXtrLoadResources} that requires them. @@ -1852,7 +1884,8 @@ If you use \opt1, you don't need to do anything else. If you use \optsor23 with the \app{makeglossaries} Perl script or the \app{makeglossaries-lite} Lua script, you similarly don't need to do anything else. If you use \optsor23 -without the \app{makeglossaries} Perl script then you need to +without the \app{makeglossaries} Perl script or +\app{makeglossaries-lite} Lua script then you need to make sure you run \app{makeindex}\slash\app{xindy} \emph{for each defined glossary}. The \meta{gls} and \meta{glo} arguments of \cs{newglossary} specify the file extensions to use instead of @@ -1936,8 +1969,8 @@ superscripts aren't correctly sized with the DVI format. By default, if the \sty{hyperref} package has been loaded, commands like \cs{gls} will form a~hyperlink to the relevant entry in the -glossary. If you to disable this for \emph{all} your -glossaries, then use +glossary. If you want to disable this for \emph{all} your +glossaries, then use: \begin{definition} \cs{glsdisablehyper} \end{definition} @@ -1959,6 +1992,9 @@ the \pkgopt[false]{hyperfirst} package option: \usepackage[colorlinks]{hyperref} \usepackage[hyperfirst=false]{glossaries} \end{verbatim} +The \sty{glossaries-extra} extension package provides another method +using category attributes. See the \sty{glossaries-extra} user +manual for further details. Take care not to use non-expandable commands in PDF bookmarks. This isn't specific to the \sty{glossaries} package but is a~limitation @@ -1970,7 +2006,7 @@ bookmarks via \cs{texorpdfstring}. For example: \section{The \texorpdfstring{\gls{fishage}}{Fish Age}} \end{verbatim} However, it's not a~good idea to use commands like \cs{gls} in -a~section heading as you'll end up with the table of contents in +a~section heading as you'll end up with the table of contents page in your location list. Instead you can use \begin{definition} \cs{glsentrytext}\marg{label} @@ -2089,4 +2125,6 @@ build}. \item The \href{https://ctan.org/pkg/bib2gls}{\appfmt{bib2gls}} application. \end{itemize} +The \href{https://www.dickimaw-books.com/gallery}{Dickimaw Books +Gallery} provides additional example documents. \end{document} diff --git a/macros/latex/contrib/glossaries/glossary2glossaries.html b/macros/latex/contrib/glossaries/glossary2glossaries.html index e733386eb1..409159bbde 100644 --- a/macros/latex/contrib/glossaries/glossary2glossaries.html +++ b/macros/latex/contrib/glossaries/glossary2glossaries.html @@ -18,42 +18,42 @@ .cmr-17{font-size:170%;} .cmr-12{font-size:120%;} .cmr-8{font-size:80%;} -.cmtt-12{font-size:120%;font-family: monospace;} -.cmtt-12{font-family: monospace;} -.cmtt-12{font-family: monospace;} -.cmtt-12{font-family: monospace;} -.cmtt-12{font-family: monospace;} +.cmtt-12{font-size:120%;font-family: monospace,monospace;} +.cmtt-12{font-family: monospace,monospace;} +.cmtt-12{font-family: monospace,monospace;} +.cmtt-12{font-family: monospace,monospace;} +.cmtt-12{font-family: monospace,monospace;} .cmr-9{font-size:90%;} .cmbx-9{font-size:90%; font-weight: bold;} .cmbx-9{ font-weight: bold;} .cmss-9{font-size:90%; font-family: sans-serif;} .cmss-9{ font-family: sans-serif;} .cmss-9{ font-family: sans-serif;} -.cmtt-10{font-family: monospace;} -.cmtt-10{font-family: monospace;} -.cmtt-10{font-family: monospace;} -.cmtt-10{font-family: monospace;} -.cmtt-10{font-family: monospace;} +.cmtt-10{font-family: monospace,monospace;} +.cmtt-10{font-family: monospace,monospace;} +.cmtt-10{font-family: monospace,monospace;} +.cmtt-10{font-family: monospace,monospace;} +.cmtt-10{font-family: monospace,monospace;} .cmti-10{ font-style: italic;} .cmss-10{ font-family: sans-serif;} .cmss-10{ font-family: sans-serif;} .cmss-10{ font-family: sans-serif;} -.cmtt-8{font-size:80%;font-family: monospace;} -.cmtt-8{font-family: monospace;} -.cmtt-8{font-family: monospace;} -.cmtt-8{font-family: monospace;} -.cmtt-8{font-family: monospace;} +.cmtt-8{font-size:80%;font-family: monospace,monospace;} +.cmtt-8{font-family: monospace,monospace;} +.cmtt-8{font-family: monospace,monospace;} +.cmtt-8{font-family: monospace,monospace;} +.cmtt-8{font-family: monospace,monospace;} .cmbx-10{ font-weight: bold;} .cmbx-10{ font-weight: bold;} .cmssbx-10{ font-family: sans-serif; font-weight: bold;} .cmssbx-10{ font-family: sans-serif; font-weight: bold;} .cmssbx-10{ font-family: sans-serif; font-weight: bold;} -.cmitt-10{font-family: monospace; font-style: italic;} -.cmtt-9{font-size:90%;font-family: monospace;} -.cmtt-9{font-family: monospace;} -.cmtt-9{font-family: monospace;} -.cmtt-9{font-family: monospace;} -.cmtt-9{font-family: monospace;} +.cmitt-10{font-family: monospace,monospace; font-style: italic;} +.cmtt-9{font-size:90%;font-family: monospace,monospace;} +.cmtt-9{font-family: monospace,monospace;} +.cmtt-9{font-family: monospace,monospace;} +.cmtt-9{font-family: monospace,monospace;} +.cmtt-9{font-family: monospace,monospace;} .cmti-8{font-size:80%; font-style: italic;} p{margin-top:0;margin-bottom:0} p.indent{text-indent:0;} @@ -121,11 +121,6 @@ table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } .hline td, .cline td{ padding: 0; } .hline hr, .cline hr{border:none;border-top:1px solid black;} .tabbing-right {text-align:right;} -span.TEX {letter-spacing: -0.125em; } -span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;} -a span.TEX span.E {text-decoration: none; } -span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;} -span.LATEX span.TEX{ position:relative; left: -0.4em; } div.float, div.figure {margin-left: auto; margin-right: auto;} div.float img {text-align:center;} div.figure img {text-align:center;} @@ -205,7 +200,7 @@ class="td11">Nicola L.C. Talbot

    2020-02-13

    +class="cmr-12">2020-03-19

    @@ -217,13 +212,7 @@ class="cmbx-9">Abstract

    The purpose of this document is to provide advice if you want to convert a LATEXconvert a LaTeX document from using the obsolete glossary package to @@ -715,7 +704,7 @@ only used \glossary, then see §6.4 §6.4 \glossary.

    Substitute all instances of @@ -943,7 +932,7 @@ The mapping from ⟨old options⟩ to ⟨new options⟩ is the same as that given §6.1 +class="tcrm-1000">§6.1 \useglosentry. @@ -1247,8 +1236,7 @@ class="cmss-10">glossaries


    You can then continue to use \SVM. However, remember that LATEX generally +class="cmtt-10">\SVM. However, remember that LaTeX generally ignores spaces after command names that consist of alphabetical characters. You will therefore need to force a space after \