Latest news 2019-10-04: Competition to win a copy of the children’s illustrated book “Quack, Quack, Quack. Give My Hat Back!”. Closing date: 1st Nov 2019 23:59 +00:00.

# glossaries package FAQ

FAQ Search Tips

This is the FAQ for the glossaries package. See also the glossaries user manual, the guide for beginners and the bug tracker (glossaries category). Related: glossaries-extra FAQ and bib2gls FAQ.

## Error Messages

I get an error when using a fragile command in my glossary entry 🔗

As from version 4.0, use \glssetnoexpandfield to suppress expansion for a particular field. For older versions, use \protect. See also Why must I protect fragile commands in the name key when the documentation says the name key is sanitized? (Pre version 4.0). Remember that the new \makenoidxglossaries method of creating glossaries makes the default sanitizesort option false so you may need to set the sort key manually if the name contains a fragile command.

Top

I get an error when using one of the commands that convert the first letter to upper case 🔗

As from version 4.0, commands such as \Glsentryname are robust. (Although, as they aren't expandable, they can't be used in PDF bookmarks.) For earlier versions of glossaries commands like \Glsentryname were fragile and therefore need to be protected when used in a moving argument.

Top

I get the error: "perl not found" or "The Perl interpreter could not be found" when I use makeglossaries on Windows 🔗

You don't have Perl installed or your path is not set up correctly. Note that TeX Live on Windows comes with its own internal Perl interpreter so makeglossaries.exe should run on TeX Live. If you are using MikTeX have a look at MiKTeX and Perl Scripts.

If the above doesn't help or for some reason you don't want to install Perl, you can run makeindex on each of your glossaries. For example, to create the main glossary (assuming your file is called myfile.tex):

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

If you have used the acronym package option, you will need to create the list of acronyms file as follows:
makeindex -s myfile.ist -t myfile.alg -o myfile.acr myfile.acn

Repeat this procedure for each glossary that you have defined.

Alternatively you could try using the MakeGlossariesGUI Java application. Note that xindy is also a Perl script, so if you don't have Perl you're stuck with just makeindex.

Top

I get the message: ! pdfTeX warning (dest): name{...} has been referenced but does not exist 🔗

This is not an error, but a warning. This just means that PDFLaTeX can't find the given target. Since all the targets defined by the glossaries package will be placed in the files created when you use makeglossaries, you will always get these messages the first time you LaTeX your document. Once you have successfully run makeglossaries, these warnings should go away. If you still get them, then it's possible that one or more of your glossary entries had an error which prevented them from being written to the .glo (or equivalent) file. Check the makeindex transcript file (.glg or equivalent) for errors.

Top

I get an error when using a glossary entry in a chapter/section heading or caption 🔗

With older versions of glossaries this occurs when you try to do something like:

\section{\gls{sample}}

If you are not using the hyperref package, you can fix this with \protect:
\section{\protect\gls{sample}}

With newer versions, \gls is now robust. However, it's generally not a good idea to use commands like \gls or \glslink (or \acrshort etc) in chapter or section titles:
1. If you have a table of contents, the relevant line in the TOC will also have a link to the glossary, and the entry's page list will include the table of contents page. (Same applies for \caption and the list of figures/tables.)
2. If you are using a page style that adds the chapter/section title to the page header, then each page header for that section will generate a link to the glossary.
3. If you are using the hyperref package, you will have a nested link in the table of contents and you will also cause a problem for the bookmarks.
It is therefore better to use the non-link creating commands, such as \glsentryname instead of \gls. For example:
\section{\glsentryname{sample}}

Alternatively, if you extend the glossaries package with glossaries-extra then you can use one of the commands listed in the section Entries in Sectioning Titles, Headers and Contents of the glossaries-extra user manual. For example:
\section{\glsfmttext{sample}}

but check the advisory notes in the manual.

If you don't want to use glossaries-extra and you really want \gls in your chapter/section title, then use the optional argument to supply an alternative for the table of contents and page headers:

\section[\glsentryname{sample}]{\gls{sample}}

The same applies for captions. For versions prior to v4.0, if you get unexpected output in your page headers (e.g. something like ACRONYMNAME SAMPLE), then use the package option sanitize=none and protect fragile commands. Note that prior to version 4.0, the commands that convert the first letter to upper case were all fragile and so required \protect:
\section{\protect\Glsentryname{sample}}

If you use the hyperref package, you'll need to use \texorpdfstring:
\section{\texorpdfstring{\protect\Glsentryname{sample}}{Sample}}

For version 4.0 and above, you don't need \protect, but you still need to provide an alternative for the PDF bookmarks:
\section{\texorpdfstring{\Glsentryname{sample}}{Sample}}


Top

makeindex complains that the entry is too long 🔗

As from glossaries version 4.0, this should no longer be an issue. For earlier versions, if you have a very long description, it is possible that you may exceed makeindex's buffer. In which case, try defining a command that stores the long description, and use that when you define the entry. For example:

\newcommand{\mylongdescription}{A very long description}
\newglossaryentry{example}{name={example},
description={\mylongdescription}}

For pre v4.0: note that if you've used sanitize=description=false (which automatically occurs with certain acronym styles), then you need to use \protect:
\newcommand{\mylongdescription}{A very long description}
\newglossaryentry{example}{name={example},
description={\protect\mylongdescription}}

Alternative, try using xindy instead of makeindex. See the section on xindy in the glossaries documentation.

Top

I get a "missing }" error with v1.17 when using babel with the glossaries package 🔗

This was fixed in v1.18.

Top

I get an error saying that \glspagewidthlist is undefined 🔗

This was fixed in v1.18.

Top

I get an error when using glossaries with fancyhdr 🔗

This is a problem with xfor v1.04. You need to upgrade to at least xfor v1.05.

Top

I get an error saying that \glossarymark is already defined 🔗

As from version 2.03, the glossaries package checks to see if \glossarymark is already defined, and now just prints a warning message that \glossarymark is being redefined. As from version 4.0, \glossarymark has been replace by \glsglossarymark to avoid conflict with memoir.

Top

I get the error ! Argument of \hyper@link has an extra }. 🔗

This was a problem with hyperref rather than glossaries. It was fixed in hyperref 6.83g.

Top

I get the error File datatool-base.sty' not found. after updating glossaries 🔗

Upgrade the datatool package.

Top

I get the Xindy error PROGN: variable FILENAME.XDY has no value 🔗

This seems to be a bug that's appeared in a new release of xindy and is therefore out of my control. (See [tex-live] xindy with "-I xindy" broke with the latest update on linux for a fix.)

Top

I get an error using glossaries with the new version of babel 🔗

Please upgrade to at least glossaries version 3.07 (2013/06/17).

Top

I get the message "Token not allowed in a PDF string (PDFDocEncoding)" 🔗

Example:

Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref)                removing \Glsentrytext'

This is a warning from the hyperref package not an error. As mentioned in Using Glossary Terms Without Links, you can't use non-expandable commands in PDF bookmarks. The command gets ignored (hyperref tells you this in the "removing \Glsentrytext'" part of the warning) so you end up with just the expandable part (the label) in the bookmark. Remember that, as stated in the user manual, the commands that convert the first letter to upper case are non-expandable and therefore can't be used in the bookmarks. Use \texorpdfstring to provide alternative text for the bookmark or you can use hyperref's \pdfstringdefDisableCommands to temporarily disable the command while the bookmark is written. (See the hyperref manual for further details.)

Top

I get the error: "no room for a new \write" 🔗

TeX has a limited number of write registers. If you exceed this number, you will get this error. The glossaries package by default assigns a new write register for the .ist / .xdy file and one new write register per glossary. Other packages also assign new write registers, so if you load a lot of packages that write to external files, you may end up with this error.

You can reduced the number of write registers by one if you ensure you define all your entries in the preamble instead of the document environment. You can also reduce the write registers if you use the savewrites package option. However this will slow down the document build.

As from version 4.04, the write register used for the .ist / .xdy is only defined if \makeglossaries is used. If you use \makenoidxglossaries no write registers will be created by glossaries. (However, this is a much slower approach than using \makeglossaries.)

If the above doesn't help, the simplest solution is to use the scrwfile package (comes with the KOMA-Script bundle).

\usepackage{scrwfile}

Alternative solutions and a more detailed explanation of the problem are given in my answer on TeX.SX.

Note that if you switch to glossaries-extra and bib2gls, no new write registers are required.

Top

makeglossaries can't find the style file when file name has spaces 🔗

More detailed description of problem: You are using MiKTeX, your .tex file has spaces in it (for example, "my doc.tex") and you run

makeglossaries "my doc"

but makeglossaries reads the style name as my*doc.ist. (That is, the space has been replaced with an asterisk.)

This is caused by MiKTeX bug #2301.

Workarounds:

1. Remove the spaces in your file name. (Optimal solution.)
2. Upgrade to at least makeglossaries version 2.13 (glossaries version 4.03 and above).

Top

When I use 'savewrites' I get an error that \glswritefiles is undefined 🔗

This has been fixed in version 4.03.

Top

! LaTeX Error: Something's wrong--perhaps a missing \item 🔗

Check if your log file contains the message:

Package glossaries Warning: Deprecated use of \glossaryentryfield.
I recommend you change to \glossentry.
If you've just upgraded, try removing your gls auxiliary files
and recompile

If so, follow the above instructions, remove all the temporary glossary files (.gls etc) and try recompiling.

Top

What does makeglossaries mean by "Unable to fork [...] Retrying without redirection"? 🔗

When makeglossaries tries to run makeindex or xindy, it's preferred method of running the process is to use piped redirection (using 2>&1 | ). This enables makeglossaries to read both the standard output and standard error streams. There are two reasons for doing this:

1. makeglossaries can pick up messages that don't get written to the transcript file;
2. the -q option works correctly.
Unfortunately not all operating systems support this method of running a process. In which case, makeglossaries prints this warning and retries using a platform independent method instead. This means the -q switch won't be as effective and, if something goes wrong, makeglossaries has less information available to determine the cause.

If all goes well and you're not bothered about the -q setting, then you don't need to worry about it. As from makeglossaries version 2.14 (distributed with glossaries version 4.04), you can suppress this warning using the -Q switch. Alternatively you can use the new -k switch to prevent makeglossaries from attempting the piped redirection and it will just use the platform-independent method.

Top

What does the xindy error "CHAR: index 0 should be less than the length of the string" mean? 🔗

xindy discards all commands and braces from the sort string. If your sort string (either specified by the sort key or the name key) only consists of commands, this will be treated by xindy as an empty sort string, which produces an error message in newer versions of xindy. For example, the following will cause a problem:

\newglossaryentry{alpha}{name={\ensuremath{\alpha}},
description=alpha}

Either use a different sort key for the entry, for example:
\newglossaryentry{alpha}{sort=alpha,
name={\ensuremath{\alpha}},
description=alpha}

or, if all entries are like this, you may prefer to use the sort=use or sort=def package options. See the Sorting Options section of the user manual for further details of the sort option.

Top

The mfirstuc package has been split from glossaries so they are now two separate bundles and both need to be installed in order to use glossaries. This needs to be done using your TeX distribution update manager. If you have any problems with your update manager you'll need to contact the support for your TeX distribution.

The reason for the split is that mfirstuc is a useful package in its own right and can be used without glossaries. It's also much easier to maintain as a standalone package, rather than as part of a much larger bundle. Additionally, mfirstuc has a separate version number from glossaries and already had its own entry in the CTAN catalogue, which caused complications to the CTAN upload.

Top

glossaries "noidx" commands break with datatool-base v2.26 🔗

Upgrade to at least v2.27 (2016-07-28) of datatool.

Top

Unescaped left brace in regex is illegal here in regex 🔗

If you get this message from the Perl interpreter when you run makeglossaries you have an out of date version of makeglossaries. Update your glossaries installation.

Top

## Translating Fixed Names

I've used the babel/polyglossia package, but the fixed names haven't been translated. 🔗

As from version 4.12, the language support has been split off into separate independently-maintained modules. The required language module needs to be installed in addition to installing/updating glossaries.

Top

How do I change the default translations provided by the glossaries package? 🔗

If you load the babel package before, by default the translator package will be loaded by the glossaries package. You then need to use the translator package's interface to change the fixed names. Alternatively, use the glossaries "translate=babel" package option which will load glossaries-babel.sty instead. You can then use babel's interface to change the fixed names. If you are using polyglossia, the glossaries will load glossaries-polyglossia.sty and you need to use polyglossia's interface to change the fixed names. See the section Multi-Lingual Support in the glossaries user manual for further details. If you have any queries regarding the babel, polyglossia or translator packages, please address them to the authors of those packages (after first checking the UK TeX FAQ and comp.text.tex archives).

Top

## Unexpected Output in the Main Document Text

When I display an entry's description using \glsentrydesc it doesn't come out right 🔗

This should no longer be an issue with glossaries version 4.0. For older versions, if your description contains commands, you will have to switch off the sanitization for the description, using the package option sanitize={description=false}. You must then protect any fragile commands using \protect.

Top

When I display an entry's symbol using \glsentrysymbol it doesn't come out right 🔗

This should no longer be an issue with glossaries version 4.0. For earlier versions, you will have to switch off the sanitization for the symbol, using the package option sanitize={symbol=false}. You must then protect any fragile commands using \protect. If you need to do the same for the description, you will need to use the package option sanitize={description=false,symbol=false}.

Top

I've used the smallcaps/smaller option but the long form in the list of acronyms is always the long form of the last defined acronym 🔗

This has been fixed in version 1.15. Earlier versions can fix this by using the package option sanitize={description=false}.

Top

\Gls doesn't work with the smaller option (everything is converted to uppercase) 🔗

Redefine \acronymfont to use \textsmaller instead of \smaller:

\renewcommand{\acronymfont}[1]{\textsmaller{#1}}

This has been fixed in version 1.19. Note that if your acronym starts with a capital letter, \Gls will produce the same text as \gls.

Top

\Gls doesn't work when \acronymfont uses a declaration 🔗

This is similar to the previous problem. Using a declaration instead of a text block command confuses \makefirstuc. So use a text block command instead. If there is no text block equivalent, you will have to define one. For example:

\newcommand{\textlarge}[1]{{\large #1}}
\renewcommand{\acronymfont}[1]{\textlarge{#1}}


Top

The long form of acronyms won't break across a line 🔗

This can occur when you are using hyperref and latex (rather than pdflatex) which won't break a hyperlink across a line. Either use pdflatex or you can suppress the hyperlink on first use (see How do I suppress the hyperlink for the first use just for acronyms?).

Top

Acronyms are displayed as "acronymfont" followed by the label in certain situations (such as page headers) 🔗

This should no longer be an issue with glossaries version 4.0. For earlier versions, use the package option sanitize=none and protect fragile commands in acronym and glossary definitions.

Top

I changed the definition of an entry, but it's still using the old definition 🔗

This can occur if you define your entries in the document environment instead of in the preamble. (See the section Technical Issues in the user guide.) Try removing the .glsdefs file and rerun.

Top

## Unexpected Output in the Glossaries

One or more of my glossaries haven't appeared 🔗

Check the following:

1. You have used \makeglossaries in the preamble.
2. You have used either \printglossaries or \printglossary at the point in the document where you want the glossary to appear. Remember that if you have multiple glossaries and you use \printglossary, you must specify the glossary name in the optional argument for the additional glossaries (this includes the list of acronyms when you have used the acronym option). The name is not required for the main glossary.
3. Make sure you have used one or more of: \glslink, \glsdisp, \glsadd, \glsaddall, \gls or \glspl (or the uppercase variants).
4. Remember that once you have saved your .tex file, you must follow the three step process:
1. latex filename

This creates the .glo file that contains the glossary information for makeindex to collate, but there is no glossary in the document yet. Any hyperlinks to glossary entries will be undefined because the glossary doesn't exist yet.

2. makeglossaries filename

Note there is no extensionmakeglossaries reads filename.aux to determine the relevant glossary information, but passes filename.glo to makeindex, which in turn creates filename.gls which contains the glossary.

3. latex filename

This reads filename.gls (created in the previous step). The document should now contain the glossary, and the hyperlinks to glossary entries should now be defined. If not, check the makeindex transcript file (filename.glg) for errors.

If you don't have Perl installed or are otherwise unable to run makeglossaries, you can run makeindex on each of your glossaries. For example, to create the main glossary (assuming your file is called myfile.tex):
makeindex -s myfile.ist -t myfile.glg -o myfile.gls myfile.glo

If you have used the acronym package option, you will need to create the list of acronyms file as follows:
makeindex -s myfile.ist -t myfile.alg -o myfile.acr myfile.acn

Repeat this procedure for each glossary that you have defined.

Top

All my glossary entries have appeared in the same glossary instead of in separate glossaries 🔗

If you are using makeindex directly instead of via makeglossaries, you must remember to call makeindex separately for each glossary. For example, if you have both a main glossary and a list of acronyms you will need to do (assuming your file is called myfile.tex):

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

If you have Perl installed, I would strongly recommend that you use makeglossaries instead, as then all you need do is:
makeglossaries myfile

which significantly reduces the chance of errors. Also try checking the makeindex transcript files to see if there were any errors in the makeindex run.

Top

Entries that appear in the first paragraph of a page have the wrong page number in the glossary 🔗

This has been fixed in version 1.07.

Top

Why have numbers appeared after my glossary entries? 🔗

These are the page numbers on which that glossary entry has been used. You can suppress the number list using the package option nonumberlist.

Top

Why have my glossary terms appeared in bold in the glossary? 🔗

The most likely reason is that you are using one of the list-type glossary styles which put the term in the optional argument of \item which sets its argument in bold. The tree-like glossary styles also make the term bold. You can override this by redefining \glsnamefont. For example:

\renewcommand{\glsnamefont}[1]{\mdseries #1}


Top

I have used the smallcaps option, but the entry names appear in lowercase bold in the glossary 🔗

See Why have my glossary terms appeared in bold in the glossary? for the reason why the entry is in bold. It is most likely in lowercase because you are using a set of fonts that don't support bold small caps, so the closest match has been used instead. Try using a different font encoding. For example:

\usepackage[T1]{fontenc}

Or change \glsnamefont to use a medium weight font instead of bold.

Top

Why is there a larger vertical gap between some glossary entries? 🔗

The glossary is divided into 28 groups corresponding to the initial character: symbols, digits, a, ..., z. Each group is separated by \glsgroupskip which is set to \indexspace when using one of the list styles or is set to a blank row when using one of the tabular styles. This can be suppressed by using the package option nogroupskip or by redefining \glsgroupskip to do nothing:

\renewcommand{\glsgroupskip}{}

However note that \glsgroupskip is redefined each time the glossary style is changed, so make sure you either redefine it after you set the glossary style or define your own custom glossary style.

Top

When I use the hyperlink to take me to an entry in the glossary, the relevant line is just above the top edge of the viewer. 🔗

As from glossaries v1.16, this shouldn't occur. For earlier versions use:

\newlength\mylen
\makeatletter
\renewcommand{\@glstarget}[2]{%
\settoheight{\mylen}{#2}\raisebox{\mylen}{\hypertarget{#1}{}}#2}
\makeatother

(\@glstarget is an internal command, so it should go between \makeatletter and \makeatother in the .tex file. If you put the above code into a style file, remember to remove the \makeatletter and \makeatother commands.) Note that this fix is only required for the glossary styles that use lists.

Top

I redefined one or more of the commands governing the glossary style, but it hasn't had an effect 🔗

Remember that these commands are overridden whenever \setglossarystyle is used (or \glossarystyle for versions prior to v4.0), so make sure the new definitions are placed after \setglossarystyle. In particular, remember that if you use the style key in the optional argument of \printglossary, it will override any previous definitions.

Top

I've used the smallcaps option, but the acronyms are displayed in normal sized upper case letters. 🔗

The smallcaps package option (or the sc acronym styles, such as long-sc-short) uses \textsc to typeset the acronyms. This command converts lower case letters to small capitals, while upper case letters remain their usual size. Therefore you need to specify the acronym in lower case letters.

Top

I've redefined \acronymfont but the acronyms are still displayed in the surrounding font. 🔗

For pre version 4.02: \acronymfont is only used by the package options that redefine \newacronym (e.g. description, smallcaps, footnote). Try using the smaller package option and redefine \acronymfont in the preamble. For v4.02 onwards: set the acronym style to one of the predefined styles via \setacronymstyle and then redefine \acronymfont as required.

Top

Glossary terms at the start of a cell in tabularx don't align properly on the row 🔗

This has been fixed in version 2.03.

Top

I deleted an entry but it's still showing up in the glossary 🔗

Try removing the associated .gls etc files (including .glsdefs, if present) and then rebuild your document.

Top

The glossary entry in the TOC is not aligned with the numbered chapter/section titles 🔗

By default, the glossary entry in the table of contents is aligned with the chapter/section numbers. As from version 1.1, you can use the package option numberline (in addition to the toc option) to align the title with the other TOC titles. If you are using an older version, you can achieve the same effect by redefining \@gls@toc:

\renewcommand*{\@gls@toc}[2]{%

Note that this contains internal commands (commands that have an @ character in the name) so it either needs to go in a style file or it must be placed within \makeatletter and \makeatother in a .tex file.

Top

The glossaries haven't appeared in the table of contents 🔗

Remember to use the toc package option and to re-run LaTeX.

Top

Commands such as \Glsentrytext only display their label in the PDF bookmark 🔗

Top

## Defining Terms

Why must I protect fragile commands in the name key when the documentation says the name key is sanitized? (Pre version 4.0) 🔗

By default, the glossaries package sanitizes the values of the name, description, symbol and sort keys, but not any of the other keys. This means that you can use fragile commands in the name, description and symbol keys, but not the other keys. However, if you don't specify the text key, it will obtain its value from the name key (before it is sanitize), so if you have only specified the name key and not the text key, you must protect fragile commands using \protect.

Top

Is it possible for an entry to have a name and an associated symbol? 🔗

Yes, just use the name key for the term and the symbol key for the symbol. If you want the symbol to also appear in the text when you use commands such as \gls, then you can redefine \glsentryfmt or use \defglsentryfmt (those two commands are new to version 4.0).

Top

My term has multiple plural forms, how can I deal with this? 🔗

Use the plural key for the plural term you are most likely to use, and use one of the user keys for the other plurals. For example:

\newglossaryentry{cow}{name=cow,
description={a fully grown female of any bovine animal (plural
cows, archaic plural kine)},
user1={kine}}

\let\glsaltpl\glsuseri

You can now use \glspl for the first plural and \glsaltpl for the second plural. There are six user keys, so this method can be used for other grammatical constructs as well. As from version 4.0, you can also define your own keys via \glsaddkey.

Top

How do I cross-reference entries? 🔗

As from v1.17, you can use \glssee or use the see key when you define the entry. See the section Cross-Referencing Entries in the manual for further details.

Top

Why does glossaries create a file with the extension .glsdefs? 🔗

See the section Drawbacks With Defining Entries in the Document Environment in the user manual.

Top

Why shouldn't I use \include to include my glossary definitions? 🔗

Suppose you've defined all your glossary entries in a file called glossary-defs.tex and you want to use some or all of these entries in your document. The glossaries user guide says that you can use:

to load the file. For example:

\loadglsentries{glossary-defs}

You can also use \input{filename} (e.g., \input{glossary-defs}) but you shouldn't use \include{filename}, despite the number of web pages that suggest you can or should.

Although both \input and \include make TeX read the named file, these two commands aren't equivalent. The first, \input, acts as though the contents of the file were written directly in your document in place of the \input command. The other one, \include, does a lot more than this. It

• checks it hasn't been nested;
• issues a \clearpage;
• writes a line to the main .aux file;
• checks if the file should be included or excluded. (See \includeonly and \excludeonly). If it should be included, then it:
• creates an associated .aux file that's used instead of the main .aux file while the included contents are being read;
• reads the included file;
• issues another \clearpage;
• sets the values of various counters.
Therefore, if you want to just input the contents of a file, \include is far less efficient than \input, can cause a spurious page break and creates a redundant extra file. So always use either \input or \loadglsentries to load your glossary definitions and only do this in the preamble.

Top

What's the best way of managing a file containing many entry definitions? 🔗

The best solution is to switch to using glossaries-extra and bib2gls. The terms can then all be defined in one or more .bib files and managed in an application such as JabRef.

Top

## Glossary Formatting

How do I get rid of the full stop after the description in the glossary? 🔗

If you are using version 3.03 or above, use the package option nopostdot. Alternatively (version 1.03 or above) just redefine \glspostdescription to do nothing:

\renewcommand{\glspostdescription}{}

As from v1.17, if you want to remove it for a particular entry, use \nopostdesc in that entry's description.

Top

Can I suppress the page lists in the glossary? 🔗

Yes. Use the nonumberlist package option or as an option in \printglossary. As from v1.17, you can suppress the number list for a particular entry using the nonumberlist option when defining the entry.

Top

How do I make my glossaries appear in numbered chapters/sections? 🔗

As from version 1.1, you can use the package option numberedsection. This option takes one of the following values: false (unnumbered), nolabel (glossaries are numbered but not labelled) and autolabel (glossaries are numbered and automatically labelled). As from v4.02 there is also: nameref (glossaries are unnumbered but labelled so they can be reference via \nameref defined by the nameref package). If numbersection=autolabel (or numberedsection=nameref), the labels are taken from the glossary type, so the main (default) glossary is given the label main, the list of acronyms (when using the acronym option) is given the label acronym and additional glossaries are given the same label as used in the first argument to \newglossary. So you can refer to each glossary in the text using \ref. For example:

See chapter~\ref{main} for the main glossary and
chapter~\ref{acronym} for a list of acronyms.

For earlier versions, you can do something like:
\let\glossarysection=\chapter

or
\let\glossarysection=\section

to produce a numbered glossary. Note that with the package option numbersection=nolabel, you will need to add your own label to the glossary preamble if you want to reference it. For example:
\renewcommand{\glossarypreamble}{\label{glossary}}
\printglossary

However take care if you have multiple glossaries. For example:
\renewcommand{\glossarypreamble}{\label{glossary}}
\printglossary
\renewcommand{\glossarypreamble}{\label{acronyms}}
\printglossary[type=acronym]

Alternatively, upgrade to v4.02 and use numberedsection=nameref instead.

Top

How do I have some of my glossaries in numbered sections and some in unnumbered sections? 🔗

As from version 1.14, you can use the key numberedsection in the optional argument to \printglossary. For example, to put the main glossary in an unnumbered section and the list of acronyms in a numbered section:

\printglossary[numberedsection=false]
\printglossary[type=acronym,numberedsection]


Top

How do I make my glossaries appear in different sectional units? 🔗

Suppose you want the main glossary to appear in a chapter, but you want the list of acronyms to appear in a section, then use the package option section=chapter (which is actually the default if your document class defines chapters) and then change the document sectioning unit to section at the place where you want the change to occur. Version 1.1 introduced an easy interface to do this: \setglossarysection{<section name>}, where <section name> is the name of a sectional unit. For example:

\printglossary % print the main glossary
% change the glossary sectional unit to section
\setglossarysection{section}
\printglossary[type=acronym] % print the list of acronyms

For earlier versions, you need to redefine \@@glossarysec, but remember that this is an internal command so it needs to be placed inside \makeatletter and \makeatother. For example:
\printglossary % print the main glossary
\makeatletter
% change the glossary sectional unit to section
\renewcommand*{\@@glossarysec}{section}
\makeatother
\printglossary[type=acronym] % print the list of acronyms


Top

How do I prevent my glossaries from starting a new section/chapter? 🔗

Redefine \glossarysection to ignore its arguments:

\renewcommand{\glossarysection}[2][]{}

(Remember to do this before using \printglossaries or \printglossary.)

Top

Can I have sub-entries? 🔗

As from v1.17, hierarchical glossaries are supported. See the section Sub-Entries in the user guide for further details.

Top

How do I define my own glossary style? 🔗

See section Defining your own glossary style in the user manual.

Top

Is it possible to prevent the glossaries package from loading longtable/supertabular? 🔗

As from v1.18, you can use the package options nolong or nosuper to prevent the glossaries package from automatically loading the glossary-long or glossary-super packages. Note, however, that if you use these options, you won't be able to use any of the glossary styles defined in those packages.

Top

Is it possible to make the long/super styles use ragged right formatting? 🔗

As from v2.01, you can use the styles defined in glossary-longragged or glossary-superragged, but note that these packages have to be loaded explicitly after loading the glossaries package so you can use the style package option.

Top

How do I apply a different font to a particular page in a number list? 🔗

The location encapsulator (encap) is given by the format key in the optional argument of commands like \gls. The value should be the name of the associated command (which should only take a single argument) without the initial backslash. For example, \gls[format={textbf}]{sample}.

Note that if your document has hyperlinks, then the formatting command will cause the hyperlink to be lost unless it uses \glshypernumber. So format=textbf or format=emph will format the location in bold or italic but the location won't have a hyperlink. For convenience, the glossaries package provides alternatives that internally use \glshypernumber. For example, format=hyperbf or format=hyperem.

For a complete list of available location formats that support hyperlinks, see Table 6.1 of the glossaries user manual.

Top

How do I make each letter group start with a title? 🔗

You need to use a glossary style that supports this. For the predefined styles provided with the base glossaries package, these are the styles whose name ends with "group". For example, listgroup or treegroup. The glossaries-extra package provides an additional style bookindex in the accompanying glossary-bookindex package that also supports letter group titles. See the gallery of all predefined styles for examples.

If you are using glossaries-extra with bib2gls, you additionally need to remember to call bib2gls with the --group (or -g) switch.

Top

## Referencing Terms

How do I change the way the glossary term is formatted in the document (when using \gls etc)? 🔗

The font can be changed by redefining \glstextformat which takes one argument (the text to be displayed). For example, if you want all your glossary terms to appear in bold, you can do:

\renewcommand{\glstextformat}[1]{\textbf{#1}}

(See also How do I change the way the text appears when I use commands like \gls?.)

Top

How do I change the way the text appears when I use commands like \gls? 🔗

As from version 4.0, commands like \gls and \glspl use \glsentryfmt to display the relevant information. Within the definition of this commands, you may use \glslabel to access the entry's label, \ifglsused to determine if the entry has been used, \glsifplural to determine if the plural form is required, \glscapscase to determine if a case change is required, \glsinsert to access the additional text provided by the final optional argument of commands like \gls, and \glscustomtext to access the text provided by \glsdisp. If you want different glossaries to have different formats, you can use \defglsentryfmt instead of redefining \glsentryfmt. See the section Changing the format of the link text in the user manual for further information.

Versions prior to v4.0

Commands like \gls and \glspl use \glsdisplayfirst and \glsdisplay to display the relevant information. The former command is used on first use and the latter command is used subsequently. Both commands take four arguments: the first is either the singular or plural form given by the text, plural, first or firstplural keys (used when the term was defined) depending on context. The second argument is the term's description (as supplied by the description key), the third argument is the symbol associated with the term (as supplied by the symbol key) and the fourth argument is the additional text supplied in the final optional argument to \gls or \glspl (or their uppercase variants). The default simply prints the first argument immediately followed by the fourth argument and ignores the remaining arguments.

For example, suppose you want a glossary of measurements and units, you can use the symbol key to store the unit:

\newglossaryentry{distance}{name=distance,
description={The length between two points},
symbol={km}}

and now suppose you want \gls{distance} to produce "distance (km)" on first use, then you can redefine \glsdisplayfirst as follows:
\renewcommand{\glsdisplayfirst}[4]{#1#4 (#3)}

Note that the additional text is placed after #1, so \gls{distance}['s] will produce "distance's (km)" rather than "distance (km)'s" which looks a bit odd (even though it may be in the context of "the distance (km) is measured between the two points" -- but in this instance it may be better not to use a contraction).

Caveat: care needs to be taken if you want to use the symbol within the text as the symbol key is sanitized by default. This means that any commands within the symbol will not be interpreted which can lead to strange results. If you do want to redefine \glsdisplay or \glsdisplayfirst so that the symbol is used, you need to use the package option sanitize={symbol=false} and protect fragile commands within the symbol key.

Remember that you need to use a glossary style that displays the symbol if you use the symbol key as many of the styles ignore it.

Top

How do I change the way the text appears when I use commands like \gls for a given glossary? 🔗

As from version 4.0, you can use \defglsentryfmt (see How do I change the way the text appears when I use commands like \gls?) to change the way glossary entries appear when using commands like \gls or \glsdisp. See the section Changing the format of the link text in the user manual for further information.

Versions prior to v4.0

If you have multiple glossaries, changing \glsdisplayfirst and \glsdisplay (see How do I change the way the text appears when I use commands like \gls?) will change the way all glossary entries appear when using commands like \gls. If you only want the change to affect entries for a given glossary, then you need to use \defglsdisplay and \defglsdisplayfirst instead of redefining \glsdisplay and \glsdisplayfirst.

Both \defglsdisplay and \defglsdisplayfirst take two arguments: the first is the glossary name and the second is how the term should be displayed when it is invoked using commands like \gls and \glspl. This is similar to the way \glsdisplayfirst was redefined in the previous section except that you must use ##1, ##2, ##3 and ##4 instead of #1, #2, #3 and #4.

For example, suppose you have created a new glossary called notation and you want to change the way the entry is displayed on first use so that it includes the symbol, you can do:

\defglsdisplayfirst{notation}{##1##4 (denoted ##3)}

Now suppose you have defined an entry as follows:
\newglossaryentry{set}{type=notation,
name=set,
description={A collection of objects},
symbol={$S$},
}

The first time you reference this entry using \gls it will be displayed as: "set (denoted S)" (similarly for \glspl and the other variants).

Top

How do I define my own custom acronym style? 🔗

As from version 4.02, you can define your own acronym style using \newacronymstyle. For example, suppose you want the long form to appear in the margin on first use. You could define the style from scratch, but you might find it easier to base the new style on an existing style. For example, let's define a new style called "margin" that's based on the "short-long" style:

\newacronymstyle{margin}
{%
\GlsUseAcrEntryDispStyle{short-long}%
}%
{%
\GlsUseAcrStyleDefs{short-long}%
\renewcommand*{\genacrfullformat}[2]{%
\protect\firstacronymfont{\glsentryshort{##1}}##2%
\protect\marginpar{\glsentrylong{##1}}%
}%
\renewcommand*{\Genacrfullformat}[2]{%
\firstacronymfont{\Glsentryshort{##1}}##2%
\protect\marginpar{\glsentrylong{##1}}%
}%
\renewcommand*{\genplacrfullformat}[2]{%
\protect\firstacronymfont{\glsentryshortpl{##1}}##2%
\protect\marginpar{\glsentrylongpl{##1}}%
}%
\renewcommand*{\Genplacrfullformat}[2]{%
\protect\firstacronymfont{\Glsentryshortpl{##1}}##2%
\protect\marginpar{\glsentrylongpl{##1}}%
}%
}

Now you can set the style:
\setacronymstyle{margin}

Pre version 4.02: A new style can be set by redefining \CustomAcronymFields and using \SetCustomStyle.
\DeclareRobustCommand{\MARGINPAR}[1]{\marginpar{#1}}

\renewcommand*{\CustomAcronymFields}{%
name={\the\glsshorttok},% name is abbreviated form
description={\the\glslongtok},% description is long form
first={\the\glsshorttok\MARGINPAR{\the\glslongtok}},%
firstplural={\the\glsshorttok\noexpand\acrpluralsuffix\MARGINPAR{\the\glslongtok}},%
text={\the\glsshorttok},%
plural={\the\glsshorttok\noexpand\acrpluralsuffix}%
}

\SetCustomStyle % Switch to custom style

Note that this method gets more complicated if the plural forms can't be derived by appending the singular form with the plural suffix ("s" by default). If you find this a problem, then upgrade to the latest version and use \newacronymstyle as described above.

Top

How do I set the font for just the long form when using \newacronym? 🔗

As from version 4.02 you can define your own custom acronym style (see How do I define my own custom acronym style?). For example, suppose you want the long form in italic followed by the short form in parentheses on first use, then you can define a new style called, say, em-long-short that's based on the long-short style:

\newacronymstyle{em-long-short}
{%
\GlsUseAcrEntryDispStyle{long-short}%
}%
{%
\GlsUseAcrStyleDefs{long-short}%
\renewcommand*{\genacrfullformat}[2]{%
\emph{\glsentrylong{##1}}##2\space
(\firstacronymfont{\glsentryshort{##1}})%
}%
\renewcommand*{\Genacrfullformat}[2]{%
\emph{\Glsentrylong{##1}}##2\space
(\firstacronymfont{\glsentryshort{##1}})%
}%
\renewcommand*{\genplacrfullformat}[2]{%
\emph{\glsentrylongpl{##1}}##2\space
(\firstacronymfont{\glsentryshortpl{##1}})%
}%
\renewcommand*{\Genplacrfullformat}[2]{%
\emph{\Glsentrylongpl{##1}}##2\space
(\firstacronymfont{\Glsentryshortpl{##1}})%
}%
}

Now you can set the style:
\setacronymstyle{em-long-short}

You may prefer to move the insert part (##2) into the \emph argument:
\newacronymstyle{em-long-short}
{%
\GlsUseAcrEntryDispStyle{long-short}%
}%
{%
\GlsUseAcrStyleDefs{long-short}%
\renewcommand*{\genacrfullformat}[2]{%
\emph{\glsentrylong{##1}##2}\space
(\firstacronymfont{\glsentryshort{##1}})%
}%
\renewcommand*{\Genacrfullformat}[2]{%
\emph{\Glsentrylong{##1}##2}\space
(\firstacronymfont{\glsentryshort{##1}})%
}%
\renewcommand*{\genplacrfullformat}[2]{%
\emph{\glsentrylongpl{##1}##2}\space
(\firstacronymfont{\glsentryshortpl{##1}})%
}%
\renewcommand*{\Genplacrfullformat}[2]{%
\emph{\Glsentrylongpl{##1}##2}\space
(\firstacronymfont{\Glsentryshortpl{##1}})%
}%
}


Pre version 4.02:

You can use the custom acronym format, as described in How do I define my own custom acronym style?. For example, suppose you want the long form to be emphasized using \emph, you can do the following:

\renewcommand*{\CustomAcronymFields}{%
name={\the\glsshorttok},% name is abbreviated form
description={\the\glslongtok},% description is long form
first={\noexpand\emph{\the\glslongtok}\space(\the\glsshorttok)},%
firstplural={\noexpand\emph{\the\glslongtok\noexpand\acrpluralsuffix}\space(\the\glsshorttok)},%
text={\the\glsshorttok},%
plural={\the\glsshorttok\noexpand\acrpluralsuffix}%
}

\SetCustomStyle

This displays long (short). You can swap, add or remove \glslongtok and \glsshorttok, as required. Remember to use \SetCustomStyle to switch to this acronym style. (If you get an error saying that \CustomAcronymFields can't be redefined as it doesn't exist or an "Undefined control sequence" error for \SetCustomStyle, then you need to update your version of glossaries.)

Note, however, that this solution doesn't work for plurals that aren't formed by simply prefixing the singular term with \acrpluralsuffix. If this causes a problem, upgrade to the latest version and use \newacronymstyle as described above.

Top

How do I make the acronym on first use display the short form followed by the long form in brackets? 🔗

As from version 4.02, use one of the predefined acronym styles short-long, sc-short-long or sm-short-long. For example:

\setacronymstyle{short-long}

Pre Version 4.02:

1. If you are using the default definition of \newacronym, you can change the definition of \acrfullformat:
\renewcommand{\acrfullformat}[2]{#2\space(#1)}

2. If you are using the description, smaller or smallcaps options (but neither the dua or footnote options) you can do:
\defglsdisplayfirst[\acronymtype]{\firstacronymfont{#3}#4 (#1)}

3. Use the custom acronym format described in How do I define my own custom acronym style?.

Top

How do I make acronyms appear in a different font (but not the long form)? 🔗

As from version 4.02, use one of the predefined acronym formats and redefine \acronymfont as required. For example, if you want the short form displayed in sans-serif using the long-short format:

\setacronymstyle{long-short}
\renewcommand*{\acronymfont}[1]{\textsf{#1}}

or you can define you own custom style called, say, long-sf-short:
\newacronymstyle{long-sf-short}%
{%
\GlsUseAcrEntryDispStyle{long-short}%
}%
{%
\GlsUseAcrStyleDefs{long-short}%
\renewcommand{\acronymfont}[1]{\textsf{##1}}%
}

and use that:
\setacronymstyle{long-sf-short}

Pre Version 4.02:

If you are just using the default definition of \newacronym, then use the package option \smaller and redefine \acronymfont to use the required font. If you are using any of the package options that redefine \newacronym (such as description), then just redefine \acronymfont to use the required font.

Top

How do I make the short form of the acronyms appear in a different font for the first use? 🔗

As from version 1.14, follow the instructions for How do I make acronyms appear in a different font (but not the long form)?, but redefine \firstacronymfont instead of \acronymfont.

Top

As from version 2.03, you can also use the package option hyperfirst=false to suppress the first use link for all terms (including acronyms). If you also have non-acronym glossaries where the term on first use is identical to that used subsequently (that is, where the first and text keys have identical values), you can use \glsunsetall for just those glossaries to counteract the effect of hyperfirst=false.

Pre version 2.03

Use the footnote package option and do:

\defglsdisplayfirst[\acronymtype]{#2#4 (\firstacronymfont{#1})}

Note that this won't work for acronyms that belong to a glossary not given by \acronymtype.

Top

Is it possible to reset acronyms so that they can be fully expanded again? 🔗

Yes. To reset an acronym you can use \glsreset{label} or \glslocalreset{label} where label is the label identifying the acronym. (These commands also work with glossary entries in general, but you will only see a difference if you set different values for first and subsequent use.)

To reset all entries for a given glossary type use \glsresetall[glossary list] or \glslocalresetall[glossary list]. If the optional argument is omitted, all entries for all defined glossaries will be reset.

Top

Is it possible to set an acronym so that it uses the short form on first use? 🔗

Yes, this is basically the reverse of Is it possible to reset acronyms so that they can be fully expanded again? To unset an acronym you can use \glsunset{label} or \glslocalunset{label} where label is the label identifying the acronym. (These commands also work with glossary entries in general, but you will only see a difference if you set different values for first and subsequent use.)

To unset all entries for a given glossary type use \glsunsetall[glossary list] or \glslocalunsetall[glossary list]. If the optional argument is omitted, all entries for all defined glossaries will be unset.

Top

How can I make just the short form a hyperlink? 🔗

If you switch off the hyperlink on first use (using the "hyperfirst=false" package option), you can create a custom acronym style that inserts the link around just the short form:

\documentclass{article}

\usepackage[hyperfirst=false]{glossaries}

\makeglossaries

{%
% use the "long-short" display style:
\GlsUseAcrEntryDispStyle{long-short}%
}
{%
% use the "long-short" style definitions:
\GlsUseAcrStyleDefs{long-short}%
% adjust the full form so that it has a hyperlink for the short part:
\renewcommand*{\genacrfullformat}[2]{%
\glsentrylong{##1}##2\space
}%
% same for the plural form:
\renewcommand*{\genplacrfullformat}[2]{%
\glsentrylongpl{##1}##2\space
}%
}

% apply this new style

% now define the acronyms
\newacronym{gnu}{GNU}{Gnu is Not Unix}

\begin{document}

First use: \gls{gnu}. Next use: \gls{gnu}.

Full form: \acrfull*{gnu}.

\printglossaries
\end{document}



Top

Why shouldn't I use commands like \gls in \section, \chapter, \caption etc? 🔗

The User Manual cautions against using commands like \gls in the argument of sectioning commands (\chapter, \section, etc) or in \caption. The reason for this warning is that there are multiple issues, some more serious than others, that can occur if you ignore this warning.

• If your document uses hyperref you will have nested hyperlinks. This can have serious implications, although it may not appear to when you view your PDF. Commands like \gls internally use \hyperlink (when hyperlinks are enabled) where the destination/target in the glossary is created using \hypertarget so the following example document illustrates a simplistic representation of what the glossaries package does:
\documentclass{report}

\begin{document}
\tableofcontents

Test chapter.

Test chapter.

\chapter*{List of Targets}

\begin{itemize}
\item \hypertarget{target1}{target1}
\item \hypertarget{target2}{target2}
\end{itemize}
\end{document}

Since this has a table of contents, two pdflatex calls are required. The second run causes a load of warnings from hyperref such as:
Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref)                removing \-command' on input line 13.

This is because the PDF bookmarks aren't typeset. They should merely be text that can be understood by the PDF viewer. In this case \hyperlink can't be expanded to a simple string (piece of text) which is what's causing all the problems. This can be overcome using \texorpdfstring:
\chapter{Test \texorpdfstring{\link{target1}}{target1}}

However a more serious issue still remains and that's the nested hyperlinks in the table of contents. If you build the above example using pdflatex the table of contents will look a bit like:

1. Test target1 2
2. Test target2 3

where "Test target1" is a hyperlink to chapter 1 on page 2, but within that "target1" is a hyperlink to the "target1" entry on page 4. Similarly "Test target2" is a hyperlink to chapter 2 on page 3, but within that "target2" is a hyperlink to the "target2" entry on page 4.

So, if you click on "target1" where do you expect the PDF viewer to send you? Should it take you to page 2 or page 4? This is ambiguous and PDF viewers treat the nested link in different ways. For example, if I view the PDF in okular the link will take me to page 2 but if I view the same PDF in evince the link will take me to page 4. Another PDF viewer may have different behaviour, perhaps even produce an error. If you plan to distribute your PDF, people won't be particularly impressed if you say "but you have to use xxx application to view it", especially if they don't have that application installed.

• The first use flag is unset the first time commands like \gls are used. If any of these commands are placed in the argument of \caption or \chapter, \section etc then they will be first used in the list of figures/tables or table of contents. This may not make a difference for a general entry where the "first"/"firstplural" and "text"/"plural" values are identical but for abbreviations this means that the term will be fully expanded in the front matter but not in the main matter.
• Each time a command like \gls is used, a line is written to the corresponding glossary file (which is later input by makeindex or xindy). If any of these commands appear in the front matter then that front matter location will also be added to the location list for that entry, which isn't particularly helpful for the reader, especially if you're only indexing the first use.
So what should you do if you want to use a term in a caption or sectioning command? It's best to do as the user guide suggests and use one of the expandable commands such as \glsentrytext or \glsentrylong or \glsentryfull. Alternatively, have a look at the extension package glossaries-extra.

Top

Why don't commands like \gls and \glslink use implicit grouping? 🔗

The glossaries and glossaries-extra manuals warn against using nested links. One of the associated problems is caused by a lack of scope. This can be illustrated in the following:

\documentclass{article}

\usepackage{glossaries}

\setacronymstyle{long-short}

\newacronym{html}{HTML}{hypertext markup language}
\newacronym{xhtml}{XHTML}{extensible \acrlong{html}}

\begin{document}
\gls{xhtml}.
\end{document}

Instead of displaying the expected "extensible hypertext markup language (XHTML)" it displays "extensible hypertext markup language (HTML)". The short form in parentheses is incorrect. The problem is caused by the nested link text (\acrlong{html} is inside the link text for \gls{xhtml}). The problem appears to be fixed if grouping is added:
\newacronym{xhtml}{XHTML}{extensible {\acrlong{html}}}

So why doesn't the glossaries package automatically include grouping?

The problem is the post-link hook, which is always used right at the end of all the \gls-like and \glstext-like commands. This hook needs to be able to both look ahead and look behind. For example, the postfootnote abbreviation style needs to look ahead to see if there's a punctuation character, but it also needs to know which abbreviation has just been referenced and if it was the first use. If grouping is added internally, it will break either the look ahead or the look behind function. If the hook is inside the group, it can't look ahead beyond the group, but if the hook is outside the group, it can no longer find out the information about the entry that's just been referenced. Since the user is free to redefine the hook to whatever they want, they can't really be expected to remember to close a group that they haven't opened, and suddenly requiring this would break older documents.

Although this lack of scope causes the most common and visible problem, it's not the only problem resulting from nested links. There are other, more subtle, problems that can cause inconsistent behaviour, odd warnings and obscure error messages that are difficult to diagnose and are unrelated to the lack of scope. So even if there was a way to add implicit grouping that didn't break the post-link hook, it still wouldn't fix all the other problems.

Top

## Upgrading from the glossary package

Can you help me upgrade my document from using the old glossary package to the new glossaries package? 🔗

Top

Why doesn't the new glossaries package create command names for the acronyms like the old glossary package? 🔗

There are a number of reasons:

1. The new way of accessing terms using commands like \gls is more compatible with standard LaTeX syntax.
2. Each term would require a command for the single as well as plural term, as well as commands to generate the upper case versions. For a large glossary that can amount to a lot of extra commands.
3. Provision would also be needed to allow for the optional arguments, which is awkward as commands such as \gls have 2 optional arguments, one before and one after the mandatory argument. Without the mandatory argument, you would need to use an empty optional first argument if you want to use the second argument, which is a nuisance.
4. You need to explicitly add a space after a command name that doesn't have a mandatory argument. (Don't rely on xspace, there are issues with that package that have led David Carlisle, the package author, to deprecate its use.)
If you really want to, as from v1.18, you can use \oldacronym which emulates the old glossary package's syntax. See the section Upgrading From the glossaries Package in the glossaries documentation.

Top

## Sorting and Collating Entries

How do I get TeXnicCenter to use makeglossaries? 🔗

Top

How do I get WinEdt to make the glossaries? 🔗

This is explained in a thread on comp.text.tex.

Top

Do I have to use makeglossaries? 🔗

No, you can use makeindex or xindy directly, but you will need to remember to use it for each glossary that has been defined, and you will need to remember all the relevant switches. If you want to use xindy, you must remember to use the xindy option when loading the glossaries package. See Generating the associated glossary files for further details. Alternatively, you can use the MakeGlossariesGUI Java application.

Top

How do I change the way entries are sorted? 🔗

There are three package options that change the sort order: sort=standard (default alphabetical sort), sort=def (sort in order of definition) and sort=use (sort in order of use). As from version 4.0, you can also redefine \glsprestandardsort to hook into the standard sort mechanism to modify its behaviour. See the section Sorting Options in the user manual for further details.

Alternatively, if you want to override the sort for an individual entry, then you can use the entry's sort key to sort it according to a different term. If it's for the entire alphabet, then you will need to use xindy (instead of makeindex) and use an appropriate xindy language module. I'm sorry, I can't give any assistance with writing or adapting xindy modules or styles. If you want help, try the xindy mailing list on the Xindy Web Site.

Version 4.04 introduced a new way of generating glossaries that doesn't use external indexing applications (via \makenoidxglossaries and \printnoidxglossary / \printnoidxglossaries). Although this is a slower method that can't sort non-Latin alphabets, it does allow you to use independent sorting methods for each glossary. For example, you might want to sort the main glossary alphabetically, but sort the list of notations in order of use or definition.

Top

## Documentation

The manual is very long, is there an introductory guide? 🔗

There is now a separate beginners guide distributed with the glossaries package. There is also a section on glossaries in Using LaTeX to Write a PhD Thesis and an introductory guide in the LaTeX Community's Know How section.