Latest news 2021-06-05: New blog post: Dickimaw Books Site Account.


The LaTeX glossaries package has three methods of generating a glossary (list of abbreviations, terms or symbols): directly using LaTeX, using makeindex or using xindy. The first option requires two LaTeX runs (as with cross-references), the last two options requires a LaTeX run followed by running the indexing application (makeindex or xindy), followed by another LaTeX run. The glossaries-extra package provides two more methods (just using \printunsrtglossary or using \printunsrtglossary with bib2gls). These last two methods aren't supported by MakeGlossariesGUI (although it will flag documents that require bib2gls if detected, as part of its diagnostics). Your document may require additional applications, such as bibtex, but that's outside of the scope of MakeGlossariesGUI.

The glossaries package provides a Perl script called makeglossaries that's intended to simplify this step for options 2 and 3. However, sometimes things can go wrong and users may not be able to work out why. The makeglossaries script tries to diagnose problems, but not everyone wants to install Perl for some reason (which is a shame, as there are some useful TeX-related Perl scripts, including xindy). The glossaries package also provides a light-weight Lua alternative, makeglossaries-lite.lua, but that doesn't provide any diagnostics. MakeGlossariesGUI is a Java application that (when run in batch mode) can be used instead of makeglossaries or makeglossaries-lite.lua however its primary purpose is a graphical user interface (GUI) tool for determining what's gone wrong when the glossary doesn't appear or is incomplete.

Since MakeGlossariesGUI is written in Java, you'll need the Java Runtime Environment installed. If your document build process supports the conditional execution of commands, then you can test if MakeGlossariesGUI, makeglossaries or makeglossaries-lite.lua are required by searching the log file for the presence of the command \@istfilename. (The argument is the style file. The extension determines whether makeindex or xindy is required.)

The MakeGlossariesGUI application runs in GUI mode by default, but can be run in batch mode using the --batch command line option. Command line invocation:

makeglossariesgui [⟨options⟩] [⟨filename⟩]

The ⟨filename⟩ must be supplied when run in batch mode (the .aux extension may be omitted), but is optional in GUI mode. The ⟨filename⟩ should be the auxiliary file produced by the LaTeX run, but may also be the .tex or .log file if it has the same basename as the auxiliary file and is located in the same directory. Unlike makeglossaries and makeglossaries-lite.lua, ⟨filename⟩ may include the directory path.

Available options:

--batch (or -b)
Invoke MakeGlossariesGUI in batch mode (⟨filename⟩ must be supplied). Note that the extra checks that parse the log file aren't performed in batch mode.
Invoke MakeGlossariesGUI in GUI mode (default).
Suppress (non-error) messages that would otherwise have been written to STDOUT.
--dry-run (or -n)
Dry run mode (don't run the indexing application).
Not dry run mode (default).
Print debug messages to STDOUT.
--version (or -v)
Print the version details to STDOUT and exit.
--help (or -h)
Print a brief summary of available options to STDOUT and exit.

When run in batch mode, MakeGlossariesGUI behaves much like makeglossaries. It reads the auxiliary file to determine whether to use makeindex or xindy and what options to pass to them. The GUI Settings will be honoured.