Dickimaw Books - Gallery (All Predefined Glossary Styles)
This is a list of all the styles provided by the glossaries package and the glossaries-extra extension package. You can download the test file used to generate the documents below. The samples here used the test files example-glossaries-brief.tex, example-glossaries-symbols.tex, example-glossaries-childnoname.tex, example-glossaries-parent.tex or example-glossaries-multipar.tex provided with the glossaries package. If you have the glossaries package installed, they should already be on your path. If you get any undefined control sequence or undefined style errors, you probably need to update your version of glossaries (or glossaries-extra, where appropriate). You can click on the sample images below to view the PDF.
The bookindex
, longextra
and topic
styles
require the glossaries-extra
extension package. The bib2gls examples in those
sections use entries defined in sample .bib files provided by the
glossaries-extra package and the
testidx-glossaries package.
The number 1 appearing in red after the description indicates the
position of the location (number) list. The locations are all page 1 in
these examples, as the entries were all indexed on the first page of
the sample document. In general, the location list will typically
contain a comma-separated list of page numbers or number ranges. The
number list can be suppressed using the nonumberlist
option. (The number appears in red because the hyperref
package has been loaded with internal hyperlinks set to that
colour.)
Package options that affect the appearance of predefined styles are listed in section 2.3 Glossary Appearance Options of the glossaries user manual.
The glossary is typically divided into groups: symbols, numbers and
then each letter group. In the case of the letter groups, the
identifying group is given by the initial letter of the sort
key. Most of the styles provide a visual separation between the
letter groups. This may be either just a vertical gap or a group
heading. If your glossary hasn’t been sorted alphabetically,
then don’t have a visual indicator between groups, as the grouping
no longer makes sense. Most of the basic predefined styles allow you
to suppress the vertical gap between groups with the
nogroupskip
option.
Note that some styles use the post description hook
\glspostdescription
. This displays a full stop and adjusts
the space factor if nopostdot=false
and does nothing if
nopostdot=true
. The hook can be suppressed on an individual
basis by using \nopostdesc
in the entry’s description. The glossaries-extra
package modifies \glspostdescription
so that it first does
\glsxtrpostdescription
, which allows further customization
according to the entry’s category. Version 1.02 of
glossaries-extra provides patches to all the predefined
styles that are missing \glspostdescription
through the
glossaries-extra-stylemods package. For example, to patch
the styles in the glossary-longbooktabs package:
\usepackage{glossaries-extra} \usepackage{glossary-longbooktabs} \usepackage{glossaries-extra-stylemods}or, more simply:
\usepackage[stylemods=longbooktabs]{glossaries-extra}
For other examples of glossary styles, see the main gallery.
glossary-inline
The glossary-inline package must be explicitly loaded using\usepackage{glossary-inline}This package only provides one style.
inline 🔗
Theinline
style is for in-line glossaries. This by
default suppresses the location list (regardless of the
nonumberlist
setting) and the symbol (if provided). The chances
are that you will probably also need to suppress the section header,
which you can do using
\renewcommand*{\glossarysection}[2][]{}or change it to a non-sectioning tag, for example:
\renewcommand*{\glossarysection}[2][]{\textbf{#2}: }Note that the post description hook is done just once at the end of the glossary rather than after each entry. The glossaries-extra-stylesmods package changes this style to use just the
\glsxtrpostdescription
hook after each description, and
doesn’t use the \glspostdescription
hook.
The name is formatted using \glsinlinenameformat
. The
default definition is:
\newcommand*{\glsinlinenameformat}[2]{\glstarget{#1}{#2}}This can be redefined as required. For example, to make the name appear in small caps:
\renewcommand*{\glsinlinenameformat}[2]{\glstarget{#1}{\textsc{#2}}}
One-level sub-entries are supported, but the child name won’t be
displayed. For example, using the
example-glossaries-childnoname.tex dummy entries and the
subentrycounter
option, which automatically numbers the
sub-entries:
Note that this inserts a colon between the top-level description and the sub-level entry.
glossary-list
The glossary-list package is automatically loaded by the glossaries package, unless explicitly excluded using the package optionnolist
or nostyles
. The list
styles use a description
environment, and the style of that
may be changed by the document class. All the list styles ignore
the symbol field. You may prefer one of the
tree-like styles instead.
Most of the list styles are incompatible with
classicthesis. If you are using the classicthesis
package with glossaries, you will need to change the
default style (unless you are using glossaries v4.26+ which checks for
classicthesis and switches the default style to
index
).
list 🔗
Thelist
style puts the name in the optional argument
of \item
and so is not generally suitable for glossaries
with long entry names. It works best with long descriptions. If you
have short names and short descriptions, consider using one of the
mcol
styles. For long names and long
descriptions, consider using one of the altlist
styles
instead. An extra vertical gap is inserted between letter groups, so
use the nogroupskip
option if your entries haven’t been
sorted alphabetically.
Note that the list
style doesn’t display the names of
sub-entries, and generally doesn’t work well with child entries. If
I change the test file to
example-glossaries-childnoname.tex then the glossary is as
shown below. The space before the location list and the dot after it
are hard-coded into the sub-entry style, so this style isn’t
suitable for sub-entries with the location lists suppressed.
If you have sub-entries, consider one of the other styles
instead. (Versions below 4.22 were missing the space before the
sub-entry descriptions, which made the location lists run into the
next description, but even with that fixed, it’s still not a good
style for glossaries with child entries.)
listgroup 🔗
Thelistgroup
style is like the list
style but
adds a heading to each letter group. This style is inappropriate for
entries that haven’t been sorted alphabetically.
listhypergroup 🔗
Thelisthypergroup
style is like the
listgroup
style but
also adds a navigation line at the start of the list. There’s no
point using this style if your document doesn’t have hyperlinks.
altlist 🔗
Thealtlist
style is like the list
style but
inserts a paragraph break after the name. This style is best suited
for entries with long names and long descriptions. As with the
list
style, an extra vertical gap occurs between letter
groups.
The altlist
style allows one-level child entries and will
start a new paragraph for each child entry, but the child name won’t
be displayed. In the sample below I’ve used the
example-glossaries-childnoname.tex file with the
subentrycounter
package option, which automatically numbers
the sub-entries. This just makes them a bit easier to see in the
sample and distinguishes them from the parent entry’s
description.
altlistgroup 🔗
Thealtlistgroup
style is like the
altlist
style but
adds a heading to each letter group. This style is inappropriate for
entries that haven’t been sorted alphabetically.
altlisthypergroup 🔗
Thealtlisthypergroup
style is like the
altlistgroup
style but
also adds a navigation line at the start of the list. There’s no
point using this style if your document doesn’t have hyperlinks.
listdotted 🔗
Thelistdotted
style leaves the optional argument of
\item
empty and after it places a box whose horizontal width
is given by \glslistdottedwidth
.
(This length may be adjusted using \newlength
as required.)
This box contains the name and dotted leaders. The description
is placed after the box. The location list is ignored regardless of the
nonumberlist
setting. The post description hook is also
ignored. This style is only suitable for
glossaries with both short entry names and short descriptions.
This style inserts an extra vertical gap between groups, so use
nogroupskip
if you haven’t sorted your entries.
This style is inappropriate for child entries. In the sample below,
I’ve used the example-glossaries-parent.tex file with the
subentrycounter
option on, which automatically numbers the
child entries.
The numbering helps to highlight the sub-entries but the hierarchy has been flattened to just the top-level and one sub-level.
sublistdotted 🔗
Thesublistdotted
style is only suitable for one sub-level
hierarchical entries. The parent (top-level) entry only has the name
displayed (not the description). The top-level name is placed in the
optional argument of \item
and so will typically appear
bold. This style is not suitable for documents where entries haven’t been
sorted alphabetically. The post description hook isn’t used.
The above sample image shows how poorly this style performs for glossaries with only top-level entries. If the sample file switches from example-glossaries-brief.tex to example-glossaries-parent.tex for the dummy entries, the result is much better:
glossary-tree
The glossary-tree package is automatically loaded by the glossaries package unless you have used thenotree
or nostyles
options. If you have short
descriptions, you might want to consider one of the mcol
styles that wrap the tree styles in the
multicols
environment. Alternatively, the bookindex
style can be used if no descriptions
are required.
index 🔗
Theindex
style is like a standard index except that
the entry name appears in bold (adjust by redefining
\glstreenamefmt
) and the symbol, if present, is placed in
parentheses. A vertical gap appears between each letter group, so
use nogroupskip
for documents where the entries haven’t
been sorted alphabetically. As with the standard
theindex
environment, this only allows for up to three
levels (\item
, \subitem
and \subsubitem
).
To illustrate the way this style displays symbols, the test file can
be modified to use
example-glossaries-symbols.tex instead of
example-glossaries-brief.tex. This will also require the
package option nopostdot
as the symbol dummy entries
contain the required sentence terminators.
To illustrate the way this style displays child entries, the test file can be modified to use example-glossaries-parent.tex.
Note that the index
style isn’t well-suited for
multi-paragraph descriptions. To illustrate this, the test
file can be modified to use
example-glossaries-multipar.tex.
Only the first paragraph of the description for each entry obeys the hanging indent. The subsequent paragraphs have lost the left indent.
This can be overcome for multi-paragraph descriptions in top-level entries with glossaries v4.26 and the following adjustment:
\renewcommand{\glstreeitem}{% \parindent0pt\par\hangindent40pt \everypar{\parindent50pt\hangindent40pt}}This now produces:
This provides a convenient alternative to the list
style. An alternative to
altlist
can be achieved
by adding:
\renewcommand{\glstreepredesc}{\par \glstreeitem\parindent\hangindent}
indexgroup 🔗
Theindexgroup
style is like the index
group
style but it inserts group headers. This style is not
appropriate for documents where the entries haven’t been sorted
alphabetically.
indexhypergroup 🔗
Theindexhypergroup
style is like the
indexgroup
group
style but it also has a navigation line at the start of the list.
This is only of any use if your document has hyperlinks enabled.
tree 🔗
Thetree
style is like the index
style except that
there’s no maximum depth for sub-levels (to within the limits of the
line width, naturally). Note that the more sub-levels that you have,
the more confusing it can be to the reader. As with the
index
style, a vertical gap is inserted between the letter
groups so use nogroupskip
if your document doesn’t sort the
entries alphabetically.
To illustrate the way this style displays child entries, the test file can be modified to use example-glossaries-parent.tex.
treegroup 🔗
Thetreegroup
style is like the tree
style but it inserts group headers. This style is not
appropriate for documents where the entries haven’t been sorted
alphabetically.
treehypergroup 🔗
Thetreehypergroup
style is like the
treegroup
style but it also has a navigation line at the start of the list.
This is only of any use if your document has hyperlinks enabled.
treenoname 🔗
Thetreenoname
style is like the tree
style except that,
as it’s designed for homographs, the sub-entries don’t have the name
displayed. If you don’t have any sub-entries, it appears the same as
the tree
style, so for the sample below I switched the
dummy entry file from example-glossaries-brief.tex to
example-glossaries-childnoname.tex. As with the
tree
style, a vertical gap is inserted between the letter
groups, but even with the nogroupskip
option, this style is
still inappropriate for entries that haven’t been sorted
alphabetically as sub-entries are likely to become separated
from their parent entry.
treenonamegroup 🔗
Thetreenonamegroup
style is like the
treenoname
style but it inserts group headers. As with the treenoname
example, the sample below uses the
example-glossaries-childnoname.tex
test file.
treenonamehypergroup 🔗
Thetreenonamehypergroup
style is like the
treenonamegroup
style but it also has a navigation line at the start of the list.
This is only of any use if your document has hyperlinks enabled. As
with the treenoname
example, the sample below uses the
example-glossaries-childnoname.tex
test file.
alttree 🔗
Thealttree
style is like the tree
style except
that the width available for the entry names must be supplied by the
user. This can be a useful alternative to the tabular-like styles, such
as the long
style.
The widest name can be specified with the command:
\glssetwidest[level]{widest name}where widest name is the widest entry name. For example, for the test file example-glossaries-brief.tex:
\glssetwidest{consectetuer}The optional argument can be used to set the name width for sub-levels. (The default value is 0 for the top-level.) If you forget to set the widest entry, the description will overlap the name. If no widest name has been specified for a particular sub-level, then the top-level name is used.
The drawback with this is that it means you need to know the widest name or work it out programmatically by looping over all entries. As from v4.22, the glossary-tree package provides
\glsfindwidesttoplevelname[glossary list]which iterates over all the glossaries listed in the optional argument and finds the widest name over all entries that don’t have a parent. If the optional argument is omitted, the list contains all defined glossaries. For example:
\glsfindwidesttoplevelname \setglossarystyle{alttree} \printglossariesThis ensures that all the glossaries have the same width available for the name. Alternatively, you can redefine
\glossarypreamble
to compute the widest entry just for the
current glossary. For example:
\renewcommand{\glossarypreamble}{\glsfindwidesttoplevelname[\currentglossary]} \setglossarystyle{alttree} \printglossaries
As with the
tree
style, a
vertical gap is inserted between letter groups, so use the
nogroupskip
option if your entries aren’t sorted
alphabetically.
If the widest name for any sub-entry level hasn’t been specified, the child names are given the same width box as the top-level names. This can lead to strange results. In the sample below I’ve used the example-glossaries-parent.tex file with:
\renewcommand{\glossarypreamble}{% \glsfindwidesttoplevelname[\currentglossary]% }Since this only sets the widest name for the top-level, the second sub-level isn’t wide enough for “nonummy quis” and the third level has excess space.
This can be corrected with:
\glssetwidest[1]{nonummy quis} \glssetwidest[2]{duisnibh}
alttreegroup 🔗
Thealttreegroup
style is like the
alttree
style but it inserts group headers. This style is not
appropriate for documents where the entries haven’t been sorted
alphabetically. As with the alttree
style, you need to
indicate the widest entry name.
alttreehypergroup 🔗
Thealttreehypergroup
style is like the
alttreegroup
style but it also has a navigation line at the start of the list.
This is only of any use if your document has hyperlinks enabled.
glossary-mcols
The glossary-mcols package must be explicitly loaded using:\usepackage{glossary-mcols}This automatically loads the multicol package and the glossary-tree package (if not already loaded). The styles provided by this package are analogous to the
tree
styles above but the multicols
environment is also used. The number of columns is given by
\glsmcols
, which defaults to 2. For example, to have a
three column glossary:
\renewcommand{\glsmcols}{3} \setglossarystyle{mcolindex}Take care not to confuse this with the columns within the tabular-like styles, such as the
long
style.
If you don’t want the description displayed, you may prefer the
bookindex
style provided with the
glossaries-extra extension package (which can adapted to
show the descriptions and so can be used as an alternative to the
mcolindexgroup
style).
mcolindex 🔗
Themcolindex
style is like the index
style but
contained within a multicols
environment. As with the
index
style, a vertical gap is inserted between the letter
groups so use nogroupskip
if your document doesn’t sort the
entries alphabetically.
mcolindexgroup 🔗
Themcolindexgroup
style is like the
indexgroup
style but
contained within a multicols
environment. As with the
indexgroup
style, this style is inappropriate for entries
that haven’t been alphabetically sorted. (An alternative to this
style is the bookindex
style provided with the
glossaries-extra extension package.)
mcolindexhypergroup 🔗
Themcolindexhypergroup
style is like the
indexhypergroup
style but
contained within a multicols
environment. As with the
indexhypergroup
style, this style is inappropriate for
documents that don’t have hyperlinks enabled.
Note that this style bunches up the navigation line at the start of
the first column. If you feel this is inappropriate, the next style
mcolindexspannav
may look better.
mcolindexspannav 🔗
Themcolindexspannav
style (new to v4.22) is like the
mcolindexhypergroup
style but the navigation line is placed
inside the optional argument of the multicols
environment.
This allows it to span across the columns.
mcoltree 🔗
Themcoltree
style is like the tree
style but
contained within a multicols
environment. As with the
tree
style, a vertical gap is inserted between the letter
groups so use nogroupskip
if your document doesn’t sort the
entries alphabetically.
mcoltreegroup 🔗
Themcoltreegroup
style is like the
treegroup
style but
contained within a multicols
environment. As with the
treegroup
style, this style isn’t suitable for documents
that don’t sort the entries alphabetically.
mcoltreehypergroup 🔗
Themcoltreehypergroup
style is like the
treehypergroup
style but
contained within a multicols
environment. As with the
treehypergroup
style, this style is inappropriate for
documents that don’t have hyperlinks enabled.
Note that this style bunches up the navigation line at the start of
the first column. If you feel this is inappropriate, the next style
mcoltreespannav
may look better.
mcoltreespannav 🔗
Themcoltreespannav
style (new to v4.22) is like the
mcoltreehypergroup
style but the navigation line is placed
inside the optional argument of the multicols
environment.
This allows it to span across the columns.
mcoltreenoname 🔗
Themcoltreenoname
style is like the treenoname
style but
contained within a multicols
environment. As with the
treenoname
example above, the sample below uses the
example-glossaries-childnoname.tex test file.
mcoltreenonamegroup 🔗
Themcoltreenonamegroup
style is like the treenonamegroup
style but
contained within a multicols
environment. As with the
treenonamegroup
example above, the sample below uses the
example-glossaries-childnoname.tex test file.
mcoltreenonamehypergroup 🔗
Themcoltreenonamehypergroup
style is like the treenonamehypergroup
style but
contained within a multicols
environment. As with the
treenonamegroup
example above, the sample below uses the
example-glossaries-childnoname.tex test file.
Note that this style bunches up the navigation line at the start of
the first column. If you feel this is inappropriate, the next style
mcoltreenonamespannav
may look better.
mcoltreenonamespannav 🔗
Themcoltreenonamespannav
style (new to v4.22) is like the
mcoltreenonamehypergroup
style but the navigation line is placed
inside the optional argument of the multicols
environment.
This allows it to span across the columns.
mcolalttree 🔗
Themcolalttree
style is like the alttree
style but
contained within a multicols
environment. As with the
alttree
style, the widest name must be specified using
\glssetwidest
or \glsfindwidesttoplevelname
, as
described above for the alttree
style.
mcolalttreegroup 🔗
Themcolalttreegroup
style is like the alttreegroup
style but
contained within a multicols
environment. Again, the widest
name must be specified.
mcolalttreehypergroup 🔗
Themcolalttreehypergroup
style is like the alttreehypergroup
style but
contained within a multicols
environment. Again, the widest
name must be specified.
Note that this style bunches up the navigation line at the start of
the first column. If you feel this is inappropriate, the next style
mcolalttreespannav
may look better.
mcolalttreespannav 🔗
Themcolalttreespannav
style (new to v4.22) is like the
mcolalttreehypergroup
style but the navigation line is placed
inside the optional argument of the multicols
environment.
This allows it to span across the columns.
glossary-long
The glossary-long package is automatically loaded by the glossaries package, unless explicitly excluded using the package optionnolong
or nostyles
. The
long
styles use the longtable
environment, so the
glossary-long package automatically loads the
longtable package.
Take care not to confuse these table styles with the
mcols
styles.
long 🔗
Thelong
style starts the longtable
environment with:
\begin{longtable}{lp{\glsdescwidth}}The first column (left-aligned) is used for the entry name and the second column (a paragraph column whose width is given by
\glsdescwidth
) is used for the description and location
list. The symbol field is ignored. If you want to change the
horizontal alignment of the entire table, you can redefine the
theglossary
environment after you’ve set the style. For
example:
\setglossarystyle{long} \renewenvironment{theglossary}% {\begin{longtable}[l]{lp{\glsdescwidth}}}% {\end{longtable}}(see the longtable documentation for further details). Note that the default is to centre the table, but this may not be apparent with brief descriptions. If you temporarily switch to the
longborder
,
style you will be able to see the table bounds.
An extra vertical gap is inserted between letter groups, so
use the nogroupskip
option if your entries haven’t been
sorted alphabetically.
This style omits the name for sub-entries and is unsuitable for
deeper than one-level sub-entries. The sample below uses the
example-glossaries-childnoname.tex file with the
subentrycounter
option set, which automatically numbers the
sub-entries.
longborder 🔗
Thelongborder
style is like the long
style, but includes vertical
and horizontal rules. Note that the long-booktabs
style looks better, but this style can be useful for testing
purposes if you’re not sure how much space the table is occupying.
longheader 🔗
Thelongheader
style is like the long
style, but includes a header
row.
longheaderborder 🔗
Thelongheaderborder
style is like a combination of the longheader
and longborder
styles. Note that
the long-booktabs
style looks better.
long3col 🔗
Thelong3col
style is like the long
style, but has three columns
instead of two. In this style, the longtable
environment is
begun with:
\begin{longtable}{lp{\glsdescwidth}p{\glspagelistwidth}}The first column contains the name field, the second column contains the description and the third column contains the location list. Note that, as with the
long
style, the symbol isn’t
displayed. Also, this style doesn’t use the post description hook,
so the nopostdot
option is ignored. A vertical gap is
inserted between letter groups, so
use the nogroupskip
option if your entries haven’t been
sorted alphabetically.
As with the long
style, this style omits the name for sub-entries and is unsuitable for
deeper than one-level sub-entries. The sample below uses the
example-glossaries-childnoname.tex file with the
subentrycounter
option set, which automatically numbers the
sub-entries.
long3colborder 🔗
Thelong3colborder
style is like the longborder
style, but with three
columns.
long3colheader 🔗
Thelong3colheader
style is like the longheader
style, but with three
columns.
long3colheaderborder 🔗
Thelong3colheaderborder
style is like the longheaderborder
style, but with three
columns. Note that if you want rules, the long3col-booktabs
style looks
better.
long4col 🔗
Thelong4col
style is similar the long
style, but has four columns
instead of two. In this style, the longtable
environment is
begun with:
\begin{longtable}{llll}The first column contains the name field, the second column contains the description, the third column contains the symbol, and the final column contains the location list. Note that that all four columns are specified using
l
which means that no line-breaking is
permitted. Therefore this style is only suitable for entries with
brief descriptions and an accompanying symbol. A vertical gap is
inserted between letter groups, so
use the nogroupskip
option if your entries haven’t been
sorted alphabetically. This style doesn’t use the post description
hook.
Note that the test file loads example-glossaries-brief.tex, which doesn’t provide symbols for any of the dummy entries, so the symbol column is blank in the sample below. (The example-glossaries-symbols.tex test file has descriptions that are too long for this style.)
As with the long
style, this style omits the name for sub-entries and is unsuitable for
deeper than one-level sub-entries. The sample below uses the
example-glossaries-childnoname.tex file with the
subentrycounter
option set, which automatically numbers the
sub-entries.
long4colborder 🔗
Thelong4colborder
style is like the long4col
style, but includes vertical
and horizontal rules. The empty symbol column is more noticeable
with this style.
long4colheader 🔗
Thelong4colheader
style is like the long4col
style, but includes a
header row.
long4colheaderborder 🔗
Thelong4colheaderborder
style is like the long4col
style, but includes a
header row and rules. Note that the long4col-booktabs
style
is preferable.
altlong4col 🔗
Thealtlong4col
style is similar the long4col
style, but in this style, the longtable
environment is
begun using:
\begin{longtable}{lp{\glsdescwidth}lp{\glspagelistwidth}}This means that multi-lined descriptions and long location lists may be present.
To illustrate the way this style displays symbols, the test file can
be modified to use
example-glossaries-symbols.tex instead of
example-glossaries-brief.tex. A vertical gap is
inserted between letter groups, so
use the nogroupskip
option if your entries haven’t been
sorted alphabetically. This style doesn’t use the post description
hook.
As with the long
style, this style omits the name for sub-entries and is unsuitable for
deeper than one-level sub-entries. The sample below uses the
example-glossaries-childnoname.tex file with the
subentrycounter
option set, which automatically numbers the
sub-entries. Since this set of test entries don’t have symbols, the
symbol column is empty.
altlong4colborder 🔗
Thealtlong4colborder
style is like the altlong4col
style, but includes vertical
and horizontal rules.
altlong4colheader 🔗
Thealtlong4colheader
style is like the altlong4col
style, but
includes a header row.
altlong4colheaderborder 🔗
Thealtlong4colheaderborder
style is like the altlong4col
style, but
includes a header row and vertical and horizontal rules.
Note that the altlong4col-booktabs
style is preferable.
glossary-longragged
The glossary-longragged package is not automatically loaded by the glossaries package, but is loaded by the glossary-longbooktabs package, so you either need\usepackage{glossary-longragged}or
\usepackage{glossary-longbooktabs}The glossary-longragged package will automatically load the longtable and array packages. The styles provided in this package are analogous to the styles in the glossary-long package that have paragraph columns. The corresponding styles in this package use
\raggedright
to
make the paragraph columns have ragged-right formatting. With narrow
columns, this can look better than forcing normal paragraph
justification. Note that there are no equivalent styles to the
styles in the glossary-long package that don’t have
paragraph columns (such as the long4col
style).
longragged 🔗
Thelongragged
style is similar the long
style, but in this style, the longtable
environment is
begun using:
\begin{longtable}{l>{\raggedright}p{\glsdescwidth}}As with the
long
style,
an extra vertical gap is inserted between letter groups, so
use the nogroupskip
option if your entries haven’t been
sorted alphabetically. With brief one-line descriptions, this
appears the same as the long
style, so the sample images
here use the example-glossaries-symbol.tex test file with the
nopostdot
package option. Note that the symbol isn’t
displayed with this style.
longraggedborder 🔗
Thelongraggedborder
style is like the longragged
style, but includes vertical
and horizontal rules.
longraggedheader 🔗
Thelongraggedheader
style is like the longragged
style, but includes a header row.
longraggedheaderborder 🔗
Thelongraggedheaderborder
style is like the longragged
style, but includes
a header row and vertical and horizontal rules. Note that the
longragged-booktabs
style is preferable.
longragged3col 🔗
Thelongragged3col
style is similar the long3col
style, but in this style, the longtable
environment is
begun with:
\begin{longtable}{l>{\raggedright}p{\glsdescwidth}% >{\raggedright}p{\glspagelistwidth}}As with the
long3col
style,
an extra vertical gap is inserted between letter groups, so
use the nogroupskip
option if your entries haven’t been
sorted alphabetically. Again the symbol isn’t displayed. Note that
this style doesn’t use the post description hook so the
nopostdot
setting has no effect.
longragged3colborder 🔗
Thelongragged3colborder
style is like the longragged3col
style, but includes vertical
and horizontal rules.
longragged3colheader 🔗
Thelongragged3colheader
style is like the longragged3col
style, but
includes a header row.
longragged3colheaderborder 🔗
Thelongragged3colheaderborder
style is like the longragged3col
style, but
includes a header row and vertical and horizontal rules. Note that the
longragged3col-booktabs
style is preferable.
altlongragged4col 🔗
Thealtlongragged4col
style is similar the altlong4col
style, but in this style, the longtable
environment is
begun with:
\begin{longtable}{l>{\raggedright}p{\glsdescwidth}l% >{\raggedright}p{\glspagelistwidth}}As with the
altlong4col
style,
an extra vertical gap is inserted between letter groups, so
use the nogroupskip
option if your entries haven’t been
sorted alphabetically. Note that this style does use the post
description hook, so the nopostdot
setting has no effect.
altlongragged4colborder 🔗
Thealtlongragged4colborder
style is like the altlongragged4col
style, but includes vertical
and horizontal rules.
altlongragged4colheader 🔗
Thealtlongragged4colheader
style is like the altlongragged4col
style, but
includes a header row.
altlongragged4colheaderborder 🔗
Thealtlongragged4colheaderborder
style is like the altlongragged4col
style, but
includes a header row and vertical and horizontal rules. Note that the
altlongragged4col-booktabs
style is preferable.
glossary-longbooktabs
Theglossary-longbooktabs
style needs to be loaded
explicitly, if required, using
\usepackage{glossary-longbooktabs}This package automatically loads the booktabs package as well as the glossary-long and glossary-longragged packages. The glossary-longbooktabs package applies a patch to the
longtable
environment when any of the booktabs
glossary styles are set. If the style setting is localised (for
example, through the style
key in \printglossary
),
then the patch is also localised. Most of the examples below all use the
example-glossaries-symbols.tex test file, which has entries
defined with an associated symbol.
If you are using glossaries-extra.sty, the longextra
styles can be used to provide more
flexibility.
long-booktabs 🔗
Thelong-booktabs
style is similar the long
style, but there is also a
header row, and the horizontal rules \toprule
, \midrule
and \bottomrule
provided by the booktabs
package are used. As with the long
style,
an extra vertical gap is inserted between letter groups, so
use the nogroupskip
option if your entries haven’t been
sorted alphabetically. Note that the symbol isn’t
displayed with this style.
long3col-booktabs 🔗
Thelong3col-booktabs
style is similar the long3col
style, but there is also a
header row, and the horizontal rules \toprule
, \midrule
and \bottomrule
provided by the booktabs
package are used. As with the long3col
style,
an extra vertical gap is inserted between letter groups, so
use the nogroupskip
option if your entries haven’t been
sorted alphabetically. Note that the symbol isn’t
displayed with this style nor is the post description hook used.
long4col-booktabs 🔗
Thelong4col-booktabs
style is similar the long4col
style, but there is also a
header row, and the horizontal rules \toprule
, \midrule
and \bottomrule
provided by the booktabs
package are used. As with the long4col
style,
an extra vertical gap is inserted between letter groups, so
use the nogroupskip
option if your entries haven’t been
sorted alphabetically. The test file
example-glossaries-symbols.tex can’t be used with this
example as some of the descriptions are too long, so the
example-glossaries-brief.tex file has been used instead.
Since none of the entries in that file have symbols, the third
column is empty (except for the header). The post description hook
isn’t used by this style.
altlong4col-booktabs 🔗
Thealtlong4col-booktabs
style is similar the altlong4col
style, but there is also a
header row, and the horizontal rules \toprule
, \midrule
and \bottomrule
provided by the booktabs
package are used. As with the altlong4col
style,
an extra vertical gap is inserted between letter groups, so
use the nogroupskip
option if your entries haven’t been
sorted alphabetically. The post description hook
isn’t used by this style.
longragged-booktabs 🔗
Thelongragged-booktabs
style is similar the longragged
style, but there is also a
header row, and the horizontal rules \toprule
, \midrule
and \bottomrule
provided by the booktabs
package are used. As with the longragged
style,
an extra vertical gap is inserted between letter groups, so
use the nogroupskip
option if your entries haven’t been
sorted alphabetically. Note that the symbol isn’t
displayed with this style.
longragged3col-booktabs 🔗
Thelongragged3col-booktabs
style is similar the longragged3col
style, but there is also a
header row, and the horizontal rules \toprule
, \midrule
and \bottomrule
provided by the booktabs
package are used. As with the longragged3col
style,
an extra vertical gap is inserted between letter groups, so
use the nogroupskip
option if your entries haven’t been
sorted alphabetically. Note that the symbol isn’t
displayed with this style nor is the post description hook used.
If you are using glossaries-extra you may want to consider
the long-name-desc-loc
style instead.
altlongragged4col-booktabs 🔗
Thealtlongragged4col-booktabs
style is similar the altlongragged4col
style, but there is also a
header row, and the horizontal rules \toprule
, \midrule
and \bottomrule
provided by the booktabs
package are used. As with the altlongragged4col
style,
an extra vertical gap is inserted between letter groups, so
use the nogroupskip
option if your entries haven’t been
sorted alphabetically. This style doesn’t use the post description
hook.
If you are using glossaries-extra you may want to consider
the long-name-desc-sym-loc
style instead.
glossary-super
The glossary-super package is automatically loaded by the glossaries package, unless explicitly excluded using the package optionnosuper
or nostyles
. The
super
styles use the supertabular environment, so the
glossary-super package automatically loads the
supertabular package.
Take care not to confuse these table styles with the
mcols
styles.
These styles are all analogous to the long
styles.
super 🔗
Thesuper
style starts the supertabular
environment with:
\tablehead{}\tabletail{}% \begin{supertabular}{lp{\glsdescwidth}}The first column (left-aligned) is used for the entry name and the second column (a paragraph column whose width is given by
\glsdescwidth
) is used for the description and location
list. The symbol field is ignored. Note that, unlike the
long
style, the glossary isn’t
centred. The alignment can be changed by redefining the
theglossary
environment after the super
style has been set.
For example:
\setglossarystyle{super} \renewenvironment{theglossary}% {\centering\tablehead{}\tabletail{}% \begin{supertabular}{lp{\glsdescwidth}}}% {\end{supertabular}}%
This style omits the name for sub-entries and is unsuitable for
deeper than one-level sub-entries. The sample below uses the
example-glossaries-childnoname.tex file with the
subentrycounter
option set, which automatically numbers the
sub-entries.
Note that this example has problematic page breaks. The
long
style performs much better.
superborder 🔗
Thesuperborder
style is like the super
style, but includes vertical
and horizontal rules.
superheader 🔗
Thesuperheader
style is like the super
style, but includes a header
row.
superheaderborder 🔗
Thesuperheaderborder
style is like a combination of the superheader
and superborder
styles.
super3col 🔗
Thesuper3col
style is like the super
style, but has three columns
instead of two. In this style, the supertabular
environment is
begun using:
\tablehead{}\tabletail{}% \begin{supertabular}{lp{\glsdescwidth}p{\glspagelistwidth}}The first column contains the name field, the second column contains the description and the third column contains the location list. Note that, as with the
super
style, the symbol isn’t
displayed. Also, this style doesn’t use the post description hook,
so the nopostdot
option is ignored. A vertical gap is
inserted between letter groups, so
use the nogroupskip
option if your entries haven’t been
sorted alphabetically.
This style omits the name for sub-entries and is unsuitable for
deeper than one-level sub-entries. The sample below uses the
example-glossaries-childnoname.tex file with the
subentrycounter
option set, which automatically numbers the
sub-entries.
Note that this example has problematic page breaks. The
long3col
style performs much better.
super3colborder 🔗
Thesuper3colborder
style is like the superborder
style, but with three
columns.
super3colheader 🔗
Thesuper3colheader
style is like the superheader
style, but with three
columns.
super3colheaderborder 🔗
Thesuper3colheaderborder
style is like the superheaderborder
style, but with three
columns.
super4col 🔗
Thesuper4col
style is similar the super
style, but has four columns
instead of two. In this style, the supertabular
environment is
begun with:
\tablehead{}\tabletail{}% \begin{supertabular}{llll}The first column contains the name field, the second column contains the description, the third column contains the symbol, and the final column contains the location list. Note that that all four columns are specified using
l
which means that no line-breaking is
permitted. Therefore this style is only suitable for entries with
brief descriptions and an accompanying symbol. A vertical gap is
inserted between letter groups, so
use the nogroupskip
option if your entries haven’t been
sorted alphabetically. This style doesn’t use the post description
hook so the nopostdot
option has no effect.
Note that the test file loads example-glossaries-brief.tex, which doesn’t provide symbols for any of the dummy entries, so the symbol column is blank in the sample below. (The example-glossaries-symbols.tex test file has descriptions that are too long for this style.)
This style omits the name for sub-entries and is unsuitable for
deeper than one-level sub-entries. The sample below uses the
example-glossaries-childnoname.tex file with the
subentrycounter
option set, which automatically numbers the
sub-entries.
super4colborder 🔗
Thesuper4colborder
style is like the super4col
style, but includes vertical
and horizontal rules. The empty symbol column is more noticeable
with this style.
super4colheader 🔗
Thesuper4colheader
style is like the super4col
style, but includes a
header row.
super4colheaderborder 🔗
Thesuper4colheaderborder
style is like the super4col
style, but includes a
header row and rules.
altsuper4col 🔗
Thealtsuper4col
style is similar the super4col
style, but in this
style, the supertabular
environment is
begun with:
\tablehead{}\tabletail{}% \begin{supertabular}{lp{\glsdescwidth}lp{\glspagelistwidth}}This means that multi-lined descriptions and super location lists may be present. Note that this style doesn’t use the post description hook, so the
nopostdot
setting has no effect.
To illustrate the way this style displays symbols, the test file can
be modified to use
example-glossaries-symbols.tex instead of
example-glossaries-brief.tex. A vertical gap is
inserted between letter groups, so
use the nogroupskip
option if your entries haven’t been
sorted alphabetically.
This style omits the name for sub-entries and is unsuitable for
deeper than one-level sub-entries. The sample below uses the
example-glossaries-childnoname.tex file with the
subentrycounter
option set, which automatically numbers the
sub-entries.
Note that this example has problematic page breaks. The
altlong4col
style performs much better.
altsuper4colborder 🔗
Thealtsuper4colborder
style is like the altsuper4col
style, but includes vertical
and horizontal rules.
altsuper4colheader 🔗
Thealtsuper4colheader
style is like the altsuper4col
style, but
includes a header row.
altsuper4colheaderborder 🔗
Thealtsuper4colheaderborder
style is like the altsuper4col
style, but
includes a header row and vertical and horizontal rules.
glossary-superragged
The glossary-superragged package is not automatically loaded by the glossaries package, so you need to use\usepackage{glossary-superragged}The glossary-superragged package will automatically load the supertabular and array packages. The styles provided in this package are analogous to the styles in the glossary-super package that define paragraph columns. The corresponding styles in this package use
\raggedright
to
make the paragraph columns have ragged-right formatting. With narrow
columns, this can look better than forcing normal paragraph
justification. Note that there are no equivalent styles to the
styles in the glossary-super package that don’t have
paragraph columns (such as the super4col
style).
superragged 🔗
Thesuperragged
style is similar the super
style, but in this style, the
supertabular
environment is
begun with:
\tablehead{}\tabletail{}% \begin{supertabular}{l>{\raggedright}p{\glsdescwidth}}As with the
super
style,
an extra vertical gap is inserted between letter groups, so
use the nogroupskip
option if your entries haven’t been
sorted alphabetically. With brief one-line descriptions, this
appears the same as the super
style, so the sample images
here use the example-glossaries-symbol.tex test file (which
have longer descriptions than the brief dummy entries) with the
nopostdot
package option. Note that the symbol isn’t
displayed with this style.
superraggedborder 🔗
Thesuperraggedborder
style is like the superragged
style, but includes vertical
and horizontal rules.
superraggedheader 🔗
Thesuperraggedheader
style is like the superragged
style, but includes vertical
and horizontal rules.
superraggedheaderborder 🔗
Thesuperraggedheaderborder
style is like the superragged
style, but includes
a header row and vertical and horizontal rules.
superragged3col 🔗
Thesuperragged3col
style is similar the super3col
style, but in this
style, the supertable
environment is
begun with:
\tablehead{}\tabletail{}% \begin{supertabular}{l>{\raggedright}p{\glsdescwidth}% >{\raggedright}p{\glspagelistwidth}}As with the
super3col
style,
an extra vertical gap is inserted between letter groups, so
use the nogroupskip
option if your entries haven’t been
sorted alphabetically. Again the symbol isn’t displayed. Note that
this style doesn’t use the post description hook so the
nopostdot
setting has no effect.
superragged3colborder 🔗
Thesuperragged3colborder
style is like the superragged3col
style, but includes vertical
and horizontal rules.
superragged3colheader 🔗
Thesuperragged3colheader
style is like the superragged3col
style, but
includes a header row.
superragged3colheaderborder 🔗
Thesuperragged3colheaderborder
style is like the superragged3col
style, but
includes a header row and vertical and horizontal rules.
altsuperragged4col 🔗
Thealtsuperragged4col
style is similar the altsuper4col
style, but in
this style, the supertabular
environment is
begun with:
\tablehead{}\tabletail{}% \begin{supertabular}{l>{\raggedright}p{\glsdescwidth}l% >{\raggedright}p{\glspagelistwidth}}As with the
altsuper4col
style,
an extra vertical gap is inserted between letter groups, so
use the nogroupskip
option if your entries haven’t been
sorted alphabetically. Note that this style doesn’t use the post
description hook, so the nopostdot
setting has no effect.
altsuperragged4colborder 🔗
Thealtsuperragged4colborder
style is like the altsuperragged4col
style, but includes vertical
and horizontal rules.
altsuperragged4colheader 🔗
Thealtsuperragged4colheader
style is like the altsuperragged4col
style, but
includes a header row.
altsuperragged4colheaderborder 🔗
Thealtsuperragged4colheaderborder
style is like the altsuperragged4col
style, but
includes a header row and vertical and horizontal rules.
glossary-bookindex
The glossary-bookindex package is provided with the glossaries-extra extension package. It needs to be explicitly loaded either with:\usepackage{glossary-bookindex}or with the
stylemods
package option:
\usepackage[stylemods=bookindex]{glossaries-extra}This package only provides one style, which is based on the
index
style, so this package
automatically loads the glossary-tree package.
The multicol
package is also loaded to provide multiple columns, but the
glossary-mcols package isn’t loaded as the
provided style is more complex than the mcol
styles and is
not based on any of them.
bookindex 🔗
Thebookindex
style is designed for indexes
rather than glossaries, so it only displays the name and location
list by default. It’s designed for use with bib2gls (with the
--group
switch). It may also be used with the other
indexing methods, but some features won’t be available. In
particular, you may have problems with UTF-8 support with this style
if you don’t use it with bib2gls (unless you use XeLaTeX or LuaLaTeX).
There are a number of hooks that can be used to
adjust the style. You can also use the post-name hook, but you can’t
use the post-description hook as the description isn’t shown.
The default number of columns is 2, but this may be
changed by redefining \glsxtrbookindexcols
. Each letter
group is headed by default and, if hyperref has been loaded, the
letter group will also be added to the PDF bookmarks.
The following glossary was created with the test file used to generate the documents in the above examples, which uses makeindex rather than bib2gls:
The test entries are all ASCII, so in this case there are no problems caused by extended characters in the letter group headings. The PDF bookmarks (as displayed in Okular) are shown below:
The location lists in the above document all simply contain “1”
because each entry was indexed on page one by the command
\glsaddall
, which iterates over all the defined entries
and performs \glsadd
for each one. This just indexes
without producing any text. Although this is useful in the test
document to show where the location appears, the locations aren’t
usually desired when using \glsaddall
as it’s not
helpful to the reader to have the same page appearing in every
location list.
These types of iterative commands aren’t available with bib2gls as they require all the entries to be defined
first. However, with bib2gls, the required entries
aren’t defined on the first LaTeX run so the iterative commands have nothing to
loop over. Instead, bib2gls can be instructed to select all entries defined in
the designated .bib file with the
selection
option:
\GlsXtrLoadResources[ selection=all, % select all entries in the given .bib file(s) src={entries1,entries2}% data given in entries1.bib and entries2.bib ]In real documents, this is better than
\glsaddall
as it
doesn’t automatically add an unnecessary location. This means that
the closest matching test file (test-styles-bib2gls.tex) to the
above doesn’t show any locations:
If I add the following line to the test file’s
document
environment:
\Gls{lorem} and \gls{ac}.then the difference in the style can now be observed:
Another way of demonstrating the position of the locations is to fake a location for each entry with:
\forglsentries{\thisentry}{% \GlsXtrSetField{\thisentry}{location}{\glsnoidxdisplayloc{}{page}{glsnumberformat}{1}}% }(This is used for the longextra samples shown later.)
With the standard \makeglossaries
method, there is
simply a space between the name and the location, but with bib2gls a
comma is inserted if the location list is non-empty. If you are
using bib2gls and don’t want any locations visible, then use the
resource option save-locations=false
rather than the
package option nonumberlist
.
The name is displayed using
\glsxtrbookindexname{label}
, which is simply
defined as:
\newcommand*{\glsxtrbookindexname}[1]{\glossentryname{#1}}You can redefine this to show the description as well, if required. For example:
\renewcommand*{\glsxtrbookindexname}[1]{% \glossentryname{#1} (\glsentrydesc{#1})% }
To test if the entry has a description and to allow for the post-description hook and description-related category attributes, you can instead use:
\renewcommand*{\glsxtrbookindexname}[1]{% \glossentryname{#1}% \ifglshasdesc{#1}{ (\glossentrydesc{#1}\glspostdescription)}{}% }(This will also provide accessibility support, if enabled.)
You can add other fields in a similar manner. Alternatively, you can use the post-name hook to make minor adjustments according to the entry’s category.
A more comprehensive view of the
bookindex
style can be obtained with the
testidx-glossaries package (provided with testidx). The
test file now implicitly loads
glossaries-extra with the record
option, so
\usepackage[bib2gls]{testidx-glossaries}internally does:
\usepackage[record]{glossaries-extra}The
bookindex
style is then loaded and set using:
\usepackage{glossary-bookindex} \setglossarystyle{bookindex}The testidx-glossaries package provides
\tstidxmakegloss[options]
which implements
\makeglossaries
or \makenoidxglossaries
or
a series of \GlsXtrLoadResources
instructions,
depending on the package setup. In this case, the document is setup
to use bib2gls, so this command uses
\GlsXtrLoadResources
. The optional argument is applied
to the final \GlsXtrLoadResources
instance. For
example, you can change the sort method for the alphabetical entries
using:
\tstidxmakegloss[sort=sv](You can find the actual
\GlsXtrLoadResources
commands
in the .log file if you use testidx-glossaries’s
verbose
package option.)
The dummy text (which includes commands like \gls
)
is generated with \testidx
and the glossary is
displayed with:
\tstidxprintglossary[title=Index]
which, in this case, does
\printunsrtglossary[title=Index]
Since this page is about the way the glossary is displayed (the style) rather than how the glossary is sorted and collated, the testidx commands aren’t particularly important.
This example uses the fancyhdr package to display the first and last word in the page footer. The page style is switched on with:
\fancypagestyle{plain}{% \fancyhead{}% \lfoot{\glsxtrbookindexfirstmark}% \cfoot{\thepage}% \rfoot{\glsxtrbookindexlastmark}% }% \pagestyle{fancy}% \lhead{\thepage}% \lfoot{\glsxtrbookindexfirstmark}% \cfoot{}% \rfoot{\glsxtrbookindexlastmark}%
(See the fancyhdr documentation for more information about the
page style commands.) The two commands provided by the
glossary-bookindex package used in the page style are
\glsxtrbookindexfirstmark
(which displays the first
marked word for that page) and \glsxtrbookindexlastmark
(which displays the last marked word for that page).
The top-level entries need to have the name added to the list of page marks (for access with the two commands described above):
\renewcommand{\glsxtrbookindexname}[1]{% \glsxtrbookindexmarkentry{#1}% \glossentryname{#1}% }The sub-entries are omitted from the page marks:
\renewcommand{\glsxtrbookindexsubname}[1]{% \glossentryname{#1}% }
These adjustments to the style require an extra LaTeX run, so the complete document build is:
pdflatex test-bookindex bib2gls --group test-bookindex pdflatex test-bookindex pdflatex test-bookindex
The locations are in different colours to test the location
encapsulator mechanism (the format
key used in the
optional argument of commands like \gls
) and are not
relevant to the style.
If you want to include descriptions in the style, you need to
instruct the testidx-glossaries package to provide descriptions for
the dummy entries with the desc
option:
\usepackage[desc,bib2gls]{testidx-glossaries}
The name hook can be modified to include the description, as in the earlier example:
\renewcommand{\glsxtrbookindexname}[1]{% \glsxtrbookindexmarkentry{#1}% \glossentryname{#1}% \ifglshasdesc{#1}{: \glsentrydesc{#1}}{}% }
If the sub-entries also need descriptions, then add similar code
to \glsxtrbookindexsubname
.
The indentation is governed by \glstreeitem
(defined
in glossary-tree.sty) and is also used by the
index style. You can alter the
indentation by redefining this command. For example:
\renewcommand{\glstreeitem}{\par\hangindent 20pt\relax}
glossary-longextra
The glossary-longextra package is provided with the glossaries-extra extension package. It needs to be explicitly loaded either with:\usepackage{glossary-longextra}or with the
stylemods
package option:
\usepackage[stylemods=longextra]{glossaries-extra}This package automatically loads the glossary-longbooktabs package.
The styles in this package use longtable
by default. If you
have a single-paged glossary and you’d rather use tabular
then you can switch with \GlsLongExtraUseTabulartrue
before you set the style. If you switch, you can
change the default vertical alignment for the tabular
environment by redefining \glslongextraTabularVAlign
.
There are four types of columns that may be displayed by these
styles: name, description, symbol and location. The style name
indicates which columns are shown by that style and their order. For
example, long-name-desc
has just two columns: name and
description (no symbol or location list).
The column alignments are given by the commands:
\glslongextraNameAlign
(defaults to l
),
\glslongextraDescAlign
(defaults to >{\raggedright}p{\glsdescwidth}
),
\glslongextraSymbolAlign
(defaults to c
), and
\glslongextraLocationAlign
(defaults to >{\raggedright}p{\glspagelistwidth}
).
These may be redefined as required.
Unlike the base long
styles, these styles have hooks to
calculate the value of \glsdescwidth
(the width of the
description column). To take advantage of these hooks, it’s necessary
to provide the widest entry name. This can simply be done with
the set-widest
resource option when using bib2gls.
Alternatively, you can use
\glslongextraSetWidest{
text}
, where
text is the widest name. If you don’t do this, the table
may end up too wide or too narrow.
The column headers are encapsulated with
\glslongextraHeaderFmt
, which just uses \textbf
by
default to give bold headers. As with the base long
styles,
the header text is given by: \entryname
(for the name
column), \descriptionname
(for the description column),
\symbolname
(for the symbol column) and \pagelistname
(for the location list column).
Unlike the other long
styles provided with just the base
glossaries package, these styles have a hook to format the
group headings, but it does nothing by default. It’s defined as:
\newcommand{\glslongextraGroupHeading}[2]{}The first argument is the number of columns provided by the style and the second is the group label (not title). The following simply adds the group header to the first column, without checking how many columns are available:
\renewcommand*{\glslongextraGroupHeading}[2]{% \glsxtrgetgrouptitle{#2}{\thisgrptitle}% \glslongextraHeaderFmt\thisgrptitle \tabularnewline*\noalign{\vskip\normalbaselineskip}% }Note that this uses
\glsxtrgetgrouptitle
to fetch the group
title from the supplied label. The title is stored in my custom
\thisgrptitle
command, which I then format in the same way
as the column headers. This doesn’t span the columns so be careful
of long group titles, as they can interfere with the column width.
There are commands that govern the way the name, description, symbol
and location are displayed. The name is formatted with
\glslongextraNameFmt{
label}
. There’s a bug in version 1.37
that’s been corrected in v1.38. The correct definition is:
\newcommand{\glslongextraNameFmt}[1]{% \glsentryitem{#1}\glstarget{#1}{\glossentryname{#1}}% }This picks up the
entrycounter
package option (if given),
sets the hypertarget (if hyperlinks are supported), checks the
glossname
and glossnamefont
attributes, includes
accessibility support (if enabled), and
applies the post-name hook (if set).
The description is formatted with \glslongextraDescFmt{
label}
which is defined as:
\newcommand{\glslongextraDescFmt}[1]{% \glossentrydesc{#1}\glspostdescription }This checks the
glossdesc
and glossdescfont
attributes, includes accessibility support (if enabled), and applies
the post-description hook.
The symbol is formatted with \glslongextraSymbolFmt{
label}
which is defined as:
\newcommand{\glslongextraSymbolFmt}[1]{\glossentrysymbol{#1}}This includes accessibility support (if enabled).
The location is formatted with
\glslongextraLocationFmt{
label}{
location
list}
which is defined as:
\newcommand{\glslongextraLocationFmt}[2]{#2}The location list supplied in the second argument may include a prefix, suffix or cross-reference list, depending on the document settings.
As with the base long styles, child entries are assumed to be homographs. The helper commands can be redefined to change this, but the tabular style will mask the hierarchical structure.
The name column for child entries is formatted with
\glslongextraSubNameFmt{
level}{
label}
but this just does the sub-entry counter
(if enabled) and the hypertarget (if supported):
\newcommand{\glslongextraSubNameFmt}[2]{% \glssubentryitem{#2}\glstarget{#2}{\strut}% }
The description column for child entries is formatted with
\glslongextraSubDescFmt{
level}{
label}
which defaults to the same as the top-level:
\newcommand{\glslongextraSubDescFmt}[2]{% \glslongextraDescFmt{#2}% }Similarly for the child symbols:
\newcommand{\glslongextraSubSymbolFmt}[2]{% \glslongextraSymbolFmt{#2}% }
The location for child entries is formatted with
\glslongextraSubLocationFmt{
level}{
label}{
location
list}
which is defined as:
\newcommand{\glslongextraSubLocationFmt}[3]{#3}
long-name-desc 🔗
Thelong-name-desc
style just has two columns: the name in
the first column and the description in the second column. Neither
the symbol nor the location list is displayed.
I’ve used the example-glossaries-brief.bib example file
for the sample document shown below.
If the following code is added, then the group headings appear. If
you are using bib2gls remember that you will need the
--group
(or -g
) switch.
\renewcommand*{\glslongextraGroupHeading}[2]{% \glsxtrgetgrouptitle{#2}{\thisgrptitle}% \glslongextraHeaderFmt\thisgrptitle \tabularnewline*\noalign{\vskip\normalbaselineskip}% }
The following example has the subentrycounter
package
option and uses the example-glossaries-childnoname.bib
sample file. Note that all child entries are treated the same way,
regardless of their hierarchical level.
I haven’t used the set-widest
resource option in any of the
above, but the default setting produces a fairly reasonable width. In the
next example below, I’ve included the geometry package with
the showframe
option to show the table in relation to the
available text area:
\usepackage[a4paper,showframe]{geometry}This demonstrates that the table is actually slightly too wide for the page:
If I add the set-widest
option to
\GlsXtrLoadResources
then the result shows a better fit:
long-name-desc-loc 🔗
Thelong-name-desc-loc
style has three columns: the name in
the first column, the description in the second column and the
location list in the third column. The symbol isn’t displayed.
long-desc-name 🔗
Thelong-desc-name
style just has two columns: the
description in the first column and the name in the second column. Neither
the symbol nor the location list is displayed.
long-loc-desc-name 🔗
Thelong-loc-desc-name
style has three columns: the
location list in the first column, the description in the second
column and the name in the third column. The symbol isn’t displayed.
long-name-desc-sym 🔗
Thelong-name-desc-sym
style has three columns: the name in
the first column, the description in the second column and the
symbol in the third column. The location list isn’t displayed.
I’ve used the example-glossaries-symbols.bib example file
for the sample document shown below.
long-name-desc-sym-loc 🔗
Thelong-name-desc-sym-loc
style has four columns: the name in
the first column, the description in the second column, the symbol
in the third column and the location list in the fourth column.
long-name-sym-desc 🔗
Thelong-name-sym-desc
style has three columns: the name in
the first column, the symbol in the second column and the
description in the third column. The location list isn’t displayed.
long-name-sym-desc-loc 🔗
Thelong-name-sym-desc-loc
style has four columns: the name in
the first column, the symbol in the second column, the description
in the third column and the location list in the fourth column.
long-sym-desc-name 🔗
Thelong-sym-desc-name
style has three columns: the symbol
in the first column, the description in the second column and the
name in the third column. The location list isn’t displayed.
long-loc-sym-desc-name 🔗
Thelong-loc-sym-desc-name
style has four columns: the
location list in the first column, the symbol in the second column,
the description in the third column and the name in the fourth
column.
long-desc-sym-name 🔗
Thelong-desc-sym-name
style just has three columns: the
description in the first column, the symbol in the second column and
the name in the third column. The location list isn’t displayed.
long-loc-desc-sym-name 🔗
Thelong-loc-desc-sym-name
style has four columns: the
location list in the first column, the description in the second column,
the symbol in the third column and the name in the fourth
column.
glossary-topic
The glossary-topic package is provided with the glossaries-extra extension package. (New to version 1.40.) It needs to be explicitly loaded either with:\usepackage{glossary-topic}or with the
stylemods
package option:
\usepackage[stylemods=topic]{glossaries-extra}
If you want to use this package with the set-widest
resource option in bib2gls you will also need the
glossary-tree package:
\usepackage[stylemods={tree,topic}]{glossaries-extra}
This package provides styles designed for glossaries that are
lists of topics. That is, the top-level entries are considered topic
titles (which may or may not have an associated symbol or
description) and the sub-entries are items within that topic. By
default the number list isn’t shown for the top-level entries but is
shown after the description for sub-entries (unless suppressed with
nonumberlist
or save-locations=false
).
The glossary-topic package automatically loads the multicol package.
topic 🔗
Thetopic
style displays the name with the first letter
converted to upper case in a large, bold font
(\glstopicTitleFont
). This includes the symbol in
parentheses if supplied. A paragraph break follows.
There’s a hook \glstopicMarker
before the name,
which does nothing by default, but can be redefined to add the topic
to the PDF bookmarks or the table of contents. For example:
\renewcommand*{\glstopicMarker}[1]{% \pdfbookmark[1]{topic.#1}{\glsentryname{#1}}}
If the description is set, this is shown with the first letter converted to upper case and is followed by the post-description hook.
The sub-entries are indented from the second level onwards in a
similar manner to the tree
style.
If you want an effect like the alttree
style then you need to
load the glossary-tree package to provide
\glssetwidest
.
There are no letter group separators with this style by default
so the nogroupskip
option has no effect. If you want
letter groups as well, you can redefine
\glstopicGroupHeading
. For example:
\renewcommand*{\glstopicGroupHeading}[1]{% \glsxtrgetgrouptitle{#1}{\thisgrptitle}% \section*{\thisgrptitle}% }
The example below was created with:
\usepackage [ record,% using bib2gls stylemods={topic},% load glossary-topic.sty postdot% add post-description dot ] {glossaries-extra}and uses the hierarchical test set example-glossaries-parent.bib.
Adding glossary-tree.sty and the set-widest
option
produces a different result:
topicmcols 🔗
Thetopicmcols
style is very similar to the topic
style but the child entries are placed inside a multicol
environment. The default number of columns is 2. This can be changed
by redefining \glstopicCols
. If you prefer the starred
form you can redefine \glstopicColsEnv
:
\renewcommand*{\glstopicColsEnv}{multicols*}
As with the topic style, the formatting
changes if the set-widest
option is used.
Example without set-widest
:
Example with set-widest
: