summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-11-10 03:01:41 +0000
committerNorbert Preining <norbert@preining.info>2022-11-10 03:01:41 +0000
commit7ffc72f568b89a4914168cd6921510d226a48620 (patch)
treea5a1bfc5ecf8332877d82472c767a9db0b29fc15 /macros/latex/contrib/glossaries-extra/glossaries-extra-manual.tex
parent5de83ec843cdc88e6adc42b1fe3f0ec48c52b7f3 (diff)
CTAN sync 202211100301
Diffstat (limited to 'macros/latex/contrib/glossaries-extra/glossaries-extra-manual.tex')
-rw-r--r--macros/latex/contrib/glossaries-extra/glossaries-extra-manual.tex2144
1 files changed, 1962 insertions, 182 deletions
diff --git a/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.tex b/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.tex
index 925ff20f05..af8ee2c81c 100644
--- a/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.tex
+++ b/macros/latex/contrib/glossaries-extra/glossaries-extra-manual.tex
@@ -483,6 +483,9 @@ First plural: \gls{glspl}\oarg{prereset}\marg{ex}[-insert].^^J%
% example-glossaries-images.bib
\gfile{example\dhyphen glossaries\dhyphen images.bib}%
{\providedby{\sty{glossaries-extra} v1.19+}}%
+ % example-glossaries-user.bib
+ \gfile{example\dhyphen glossaries\dhyphen user.bib}%
+ {\providedby{\sty{glossaries-extra} v1.50+}}%
% packages:
\gpkg{glossaries}% glossaries.sty
{%
@@ -3779,6 +3782,14 @@ between the name and description. The \idx{locationlist} isn't shown}
(provided by the \sty{longtable} package). Symbols and
sub-entry names are not shown}
}
+ % glossary style: longheader
+ \gglosty{longheader}%
+ {%
+ \providedby{\sty{glossary-long}}%
+ \desc{this style uses the \env{longtable} environment
+ (provided by the \sty{longtable} package) with a header row. Symbols and
+ sub-entry names are not shown}
+ }
% glossary style: long-name-desc
\gglosty{long\dhyphen name\dhyphen desc}%
{%
@@ -3907,6 +3918,104 @@ between the name and description. The \idx{locationlist} isn't shown}
(either \env{longtable} or \env{tabular}) with two columns: the
long form and the short form}
}
+ % glossary style: long-name-custom1
+ \gglosty{long\dhyphen name\dhyphen custom1}%
+ {%
+ \providedby{\sty{glossary-longextra} v1.50+}%
+ \desc{this style displays the \idx{glossary} in a table for
+ (either \env{longtable} or \env{tabular}) with two columns: the
+ name and the custom 1 field}
+ }
+ % glossary style: long-name-custom2
+ \gglosty{long\dhyphen name\dhyphen custom2}%
+ {%
+ \providedby{\sty{glossary-longextra} v1.50+}%
+ \desc{this style displays the \idx{glossary} in a table for
+ (either \env{longtable} or \env{tabular}) with three columns: the
+ name, custom 1 field and custom 2 field}
+ }
+ % glossary style: long-name-custom3
+ \gglosty{long\dhyphen name\dhyphen custom3}%
+ {%
+ \providedby{\sty{glossary-longextra} v1.50+}%
+ \desc{this style displays the \idx{glossary} in a table for
+ (either \env{longtable} or \env{tabular}) with four columns: the
+ name, custom 1 field, custom 2 field and custom 3 field}
+ }
+ % glossary style: long-name-custom1-desc
+ \gglosty{long\dhyphen name\dhyphen custom1\dhyphen desc}%
+ {%
+ \providedby{\sty{glossary-longextra} v1.50+}%
+ \desc{this style displays the \idx{glossary} in a table for
+ (either \env{longtable} or \env{tabular}) with three columns: the
+ name, the custom 1 field and the description}
+ }
+ % glossary style: long-name-custom2-desc
+ \gglosty{long\dhyphen name\dhyphen custom2\dhyphen desc}%
+ {%
+ \providedby{\sty{glossary-longextra} v1.50+}%
+ \desc{this style displays the \idx{glossary} in a table for
+ (either \env{longtable} or \env{tabular}) with four columns: the
+ name, the custom 1 field, the custom 2 field and the description}
+ }
+ % glossary style: long-name-custom3-desc
+ \gglosty{long\dhyphen name\dhyphen custom3\dhyphen desc}%
+ {%
+ \providedby{\sty{glossary-longextra} v1.50+}%
+ \desc{this style displays the \idx{glossary} in a table for
+ (either \env{longtable} or \env{tabular}) with five columns: the
+ name, the custom 1 field, the custom 2 field, the custom 3
+ field and the description}
+ }
+ % glossary style: long-custom1-name
+ \gglosty{long\dhyphen custom1\dhyphen name}%
+ {%
+ \providedby{\sty{glossary-longextra} v1.50+}%
+ \desc{this style displays the \idx{glossary} in a table for
+ (either \env{longtable} or \env{tabular}) with two columns: the
+ custom 1 field and the name}
+ }
+ % glossary style: long-custom2-name
+ \gglosty{long\dhyphen custom2\dhyphen name}%
+ {%
+ \providedby{\sty{glossary-longextra} v1.50+}%
+ \desc{this style displays the \idx{glossary} in a table for
+ (either \env{longtable} or \env{tabular}) with three columns:
+ the custom 1 field, custom 2 field, and the name}
+ }
+ % glossary style: long-custom3-name
+ \gglosty{long\dhyphen custom3\dhyphen name}%
+ {%
+ \providedby{\sty{glossary-longextra} v1.50+}%
+ \desc{this style displays the \idx{glossary} in a table for
+ (either \env{longtable} or \env{tabular}) with four columns: the
+ custom 1 field, custom 2 field, custom 3 field, and the name}
+ }
+ % glossary style: long-desc-custom1-name
+ \gglosty{long\dhyphen desc\dhyphen custom1\dhyphen name}%
+ {%
+ \providedby{\sty{glossary-longextra} v1.50+}%
+ \desc{this style displays the \idx{glossary} in a table for
+ (either \env{longtable} or \env{tabular}) with three columns: the
+ description, the custom 1 field and the name}
+ }
+ % glossary style: long-desc-custom2-name
+ \gglosty{long\dhyphen desc\dhyphen custom2\dhyphen name}%
+ {%
+ \providedby{\sty{glossary-longextra} v1.50+}%
+ \desc{this style displays the \idx{glossary} in a table for
+ (either \env{longtable} or \env{tabular}) with four columns: the
+ description, the custom 1 field, the custom 2 field and the name}
+ }
+ % glossary style: long-desc-custom3-name
+ \gglosty{long\dhyphen desc\dhyphen custom3\dhyphen name}%
+ {%
+ \providedby{\sty{glossary-longextra} v1.50+}%
+ \desc{this style displays the \idx{glossary} in a table for
+ (either \env{longtable} or \env{tabular}) with five columns: the
+ description, the custom 1 field, the custom 2 field, the custom 3
+ field and the name}
+ }
% glossary style: long-booktabs
\gglosty{long\dhyphen booktabs}
{%
@@ -6283,6 +6392,279 @@ unless you have reverted \gls{newacronym} back to the base
\desc{computes the value of \gls{glsdescwidth} according to the
widest name for styles that show the name, symbol, \idx{locationlist} and description}
}
+ % \glslongextraCustomIField
+ \gcmd{gls\-long\-extra\-Custom\-I\-Field}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \initval{\glosfield{useri}}
+ \desc{expands to the \idx{internalfieldname} of the first custom field}
+ }
+ % \glslongextraCustomIIField
+ \gcmd{gls\-long\-extra\-Custom\-II\-Field}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \initval{\glosfield{userii}}
+ \desc{expands to the \idx{internalfieldname} of the second custom field}
+ }
+ % \glslongextraCustomIIIField
+ \gcmd{gls\-long\-extra\-Custom\-III\-Field}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \initval{\glosfield{useriii}}
+ \desc{expands to the \idx{internalfieldname} of the third custom field}
+ }
+ % \glslongextraCustomIHeader
+ \gcmd{gls\-long\-extra\-Custom\-I\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{expands to the header name of the first custom column}
+ }
+ % \glslongextraCustomIIHeader
+ \gcmd{gls\-long\-extra\-Custom\-II\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{expands to the header name of the second custom column}
+ }
+ % \glslongextraCustomIIIHeader
+ \gcmd{gls\-long\-extra\-Custom\-III\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{expands to the header name of the third custom column}
+ }
+ % \glslongextraCustomIFmt
+ \gcmd{gls\-long\-extra\-Custom\-I\-Fmt}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \syntax{\margm{entry-label}}
+ \desc{the format of the first custom entry}
+ }
+ % \glslongextraCustomIIFmt
+ \gcmd{gls\-long\-extra\-Custom\-II\-Fmt}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \syntax{\margm{entry-label}}
+ \desc{the format of the second custom entry}
+ }
+ % \glslongextraCustomIIIFmt
+ \gcmd{gls\-long\-extra\-Custom\-III\-Fmt}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \syntax{\margm{entry-label}}
+ \desc{the format of the third custom entry}
+ }
+ % \glslongextraSubCustomIFmt
+ \gcmd{gls\-long\-extra\-Sub\-Custom\-I\-Fmt}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \syntax{\margm{level}\margm{entry-label}}
+ \desc{the format of the first custom sub-entry}
+ }
+ % \glslongextraSubCustomIIFmt
+ \gcmd{gls\-long\-extra\-Sub\-Custom\-II\-Fmt}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \syntax{\margm{level}\margm{entry-label}}
+ \desc{the format of the second custom sub-entry}
+ }
+ % \glslongextraSubCustomIIIFmt
+ \gcmd{gls\-long\-extra\-Sub\-Custom\-III\-Fmt}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \syntax{\margm{level}\margm{entry-label}}
+ \desc{the format of the third custom sub-entry}
+ }
+ % \glslongextraCustomIAlign
+ \gcmd{gls\-long\-extra\-Custom\-I\-Align}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \initval{l}
+ \desc{expands to the column alignment for the first custom field}
+ }
+ % \glslongextraCustomIIAlign
+ \gcmd{gls\-long\-extra\-Custom\-II\-Align}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \initval{l}
+ \desc{expands to the column alignment for the second custom field}
+ }
+ % \glslongextraCustomIIIAlign
+ \gcmd{gls\-long\-extra\-Custom\-III\-Align}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \initval{l}
+ \desc{expands to the column alignment for the third custom field}
+ }
+ % \glslongextraCustomTabularFooter
+ \gcmd{gls\-long\-extra\-Custom\-Tabular\-Footer}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the footer for the custom styles}
+ }
+ % \glslongextraNameCustomIHeader
+ \gcmd{gls\-long\-extra\-Name\-Custom\-I\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \env{longtable} \glostyle{long-name-custom1} style}
+ }
+ % \glslongextraNameCustomITabularHeader
+ \gcmd{gls\-long\-extra\-Name\-Custom\-I\-Tabular\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \glostyle{long-name-custom1} style}
+ }
+ % \glslongextraNameCustomIIHeader
+ \gcmd{gls\-long\-extra\-Name\-Custom\-II\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \env{longtable} \glostyle{long-name-custom2} style}
+ }
+ % \glslongextraNameCustomIITabularHeader
+ \gcmd{gls\-long\-extra\-Name\-Custom\-II\-Tabular\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \glostyle{long-name-custom2} style}
+ }
+ % \glslongextraNameCustomIIIHeader
+ \gcmd{gls\-long\-extra\-Name\-Custom\-III\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \env{longtable} \glostyle{long-name-custom3} style}
+ }
+ % \glslongextraNameCustomIIITabularHeader
+ \gcmd{gls\-long\-extra\-Name\-Custom\-III\-Tabular\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \glostyle{long-name-custom3} style}
+ }
+ % \glslongextraCustomINameHeader
+ \gcmd{gls\-long\-extra\-Custom\-I\-Name\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \env{longtable} \glostyle{long-custom1-name} style}
+ }
+ % \glslongextraCustomINameTabularHeader
+ \gcmd{gls\-long\-extra\-Custom\-I\-Name\-Tabular\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \glostyle{long-custom1-name} style}
+ }
+ % \glslongextraCustomIINameHeader
+ \gcmd{gls\-long\-extra\-Custom\-II\-Name\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \env{longtable} \glostyle{long-custom2-name} style}
+ }
+ % \glslongextraCustomIINameTabularHeader
+ \gcmd{gls\-long\-extra\-Custom\-II\-Name\-Tabular\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \glostyle{long-custom2-name} style}
+ }
+ % \glslongextraCustomIIINameHeader
+ \gcmd{gls\-long\-extra\-Custom\-III\-Name\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \env{longtable} \glostyle{long-custom3-name} style}
+ }
+ % \glslongextraCustomIIINameTabularHeader
+ \gcmd{gls\-long\-extra\-Custom\-III\-Name\-Tabular\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \glostyle{long-custom3-name} style}
+ }
+ % \glslongextraCustomISetDescWidth
+ \gcmd{gls\-long\-extra\-Custom\-I\-Set\-Desc\-Width}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{used to set the length \gls{glsdescwidth} for
+ \glostyle{long-name-custom1-desc} style}
+ }
+ % \glslongextraCustomIISetDescWidth
+ \gcmd{gls\-long\-extra\-Custom\-II\-Set\-Desc\-Width}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{used to set the length \gls{glsdescwidth} for
+ \glostyle{long-name-custom2-desc} style}
+ }
+ % \glslongextraCustomIIISetDescWidth
+ \gcmd{gls\-long\-extra\-Custom\-III\-Set\-Desc\-Width}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{used to set the length \gls{glsdescwidth} for
+ \glostyle{long-name-custom3-desc} style}
+ }
+ % \glslongextraNameCustomIDescHeader
+ \gcmd{gls\-long\-extra\-Name\-Custom\-I\-Desc\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \env{longtable} \glostyle{long-name-custom1-desc} style}
+ }
+ % \glslongextraNameCustomIDescTabularHeader
+ \gcmd{gls\-long\-extra\-Name\-Custom\-I\-Desc\-Tabular\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \glostyle{long-name-custom1-desc} style}
+ }
+ % \glslongextraNameCustomIIDescHeader
+ \gcmd{gls\-long\-extra\-Name\-Custom\-II\-Desc\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \env{longtable} \glostyle{long-name-custom2-desc} style}
+ }
+ % \glslongextraNameCustomIIDescTabularHeader
+ \gcmd{gls\-long\-extra\-Name\-Custom\-II\-Desc\-Tabular\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \glostyle{long-name-custom2-desc} style}
+ }
+ % \glslongextraNameCustomIIIDescHeader
+ \gcmd{gls\-long\-extra\-Name\-Custom\-III\-Desc\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \env{longtable} \glostyle{long-name-custom3-desc} style}
+ }
+ % \glslongextraNameCustomIIIDescTabularHeader
+ \gcmd{gls\-long\-extra\-Name\-Custom\-III\-Desc\-Tabular\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \glostyle{long-name-custom3-desc} style}
+ }
+ % \glslongextraDescCustomINameHeader
+ \gcmd{gls\-long\-extra\-Desc\-Custom\-I\-Name\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \env{longtable} \glostyle{long-desc-custom1-name} style}
+ }
+ % \glslongextraDescCustomINameTabularHeader
+ \gcmd{gls\-long\-extra\-Desc\-Custom\-I\-Name\-Tabular\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \glostyle{long-desc-custom1-name} style}
+ }
+ % \glslongextraDescCustomIINameHeader
+ \gcmd{gls\-long\-extra\-Desc\-Custom\-II\-Name\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \env{longtable} \glostyle{long-desc-custom2-name} style}
+ }
+ % \glslongextraDescCustomIINameTabularHeader
+ \gcmd{gls\-long\-extra\-Desc\-Custom\-II\-Name\-Tabular\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \glostyle{long-desc-custom2-name} style}
+ }
+ % \glslongextraDescCustomIIINameHeader
+ \gcmd{gls\-long\-extra\-Desc\-Custom\-III\-Name\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \env{longtable} \glostyle{long-desc-custom3-name} style}
+ }
+ % \glslongextraDescCustomIIINameTabularHeader
+ \gcmd{gls\-long\-extra\-Desc\-Custom\-III\-Name\-Tabular\-Header}
+ {
+ \providedby{\sty{glossary-longextra} v1.50+}
+ \desc{the header for the \glostyle{long-desc-custom3-name} style}
+ }
% COMMANDS: bookindex
% \glsxtrbookindexname
\gcmd{gls\-xtr\-book\-index\-name}
@@ -6658,6 +7040,279 @@ unless you have reverted \gls{newacronym} back to the base
\desc{internally uses \gls{printunsrtglossary} with the
\glostyle{table} style}
}
+ % \glstablesetstyle
+ \gcmd{gls\-table\-set\-style}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \syntax{\margm{style-name}}
+ \desc{sets the default block style}
+ }
+ % \glstablenewline
+ \gcmd{gls\-table\-new\-line}
+ {
+ \providedby{\sty{glossary-table} v1.50+}
+ \desc{used to start a new row}
+ }
+ % \glstablecaption
+ \gcmd{gls\-table\-caption}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \syntax{\margm{lot title}\margm{title}\margm{label code}}
+ \desc{produces the caption for the first page of the table}
+ }
+ % \glstablenextcaption
+ \gcmd{gls\-table\-next\-caption}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \syntax{\margm{lot title}\margm{title}}
+ \desc{produces the caption for following pages of the table}
+ }
+ % \glstablepostnextcaption
+ \gcmd{gls\-table\-post\-next\-caption}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \initval{\textvisiblespace Cont./}
+ \desc{appended to the caption in \gls{glstablenextcaption}}
+ }
+ % \glstableiffilter
+ \gcmd{gls\-table\-if\-filter}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \syntax{\margm{entry-label}\margm{true}\margm{false}}
+ \desc{internally used by the custom handler in \gls{printunsrttable}
+ to perform additional filtering. This command should do \meta{true} if the
+ entry identified by \meta{entry-label} should be filtered and
+ \meta{false} otherwise}
+ }
+ % \glstableiffilterchild
+ \gcmd{gls\-table\-if\-filter\-child}
+ {
+ \providedby{\sty{glossary-table} v1.50+}
+ \syntax{\margm{entry-label}\margm{true}\margm{false}}
+ \desc{internally used by \gls{glstableChildEntries} to filter
+ child entries. This command should do \meta{true} if the child
+ entry identified by \meta{entry-label} should be filtered and
+ \meta{false} otherwise}
+ }
+ % \glstableblocksubentrysep
+ \gcmd{gls\-table\-block\-sub\-entry\-sep}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \desc{separator used by \gls{glstableChildEntries} between child
+ entries}
+ }
+ % \glstableblocksubentry
+ \gcmd{gls\-table\-block\-sub\-entry}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \syntax{\margm{entry-label}}
+ \desc{displays the child entry identified by \meta{entry-label}.
+ This command is redefined by block styles}
+ }
+ % glstablesubentries ENVIRONMENT
+ \genv{gls\-table\-sub\-entries}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \desc{encapsulates the child list}
+ }
+ % \glstablesubentryalign
+ \gcmd{gls\-table\-sub\-entry\-align}
+ {
+ \providedby{\sty{glossary-table} v1.50+}
+ \desc{expands to the column alignment used by \env{glstablesubentries}}
+ }
+ % \glstableleftalign
+ \gcmd{gls\-table\-left\-align}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \syntax{\margm{width}}
+ \desc{expands to \code{l} or \code{p\margm{width}}
+ or \code{>{\cmd{protect}\cmd{raggedright}p\margm{width}}},
+ depending on the \glstableopt{par} setting}
+ }
+ % \glstablerightalign
+ \gcmd{gls\-table\-right\-align}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \syntax{\margm{width}}
+ \desc{expands to \code{r} or \code{p\margm{width}}
+ or \code{>{\cmd{protect}\cmd{raggedleft}p\margm{width}}},
+ depending on the \glstableopt{par} setting}
+ }
+ % \glstablecenteralign
+ \gcmd{gls\-table\-center\-align}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \syntax{\margm{width}}
+ \desc{expands to \code{c} or \code{p\margm{width}}
+ or \code{>{\cmd{protect}\cmd{centering}p\margm{width}}},
+ depending on the \glstableopt{par} setting}
+ }
+ % \glstablenamecolalign
+ \gcmd{gls\-table\-name\-col\-align}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \desc{expands to the alignment of the name column}
+ }
+ % \glstabledesccolalign
+ \gcmd{gls\-table\-desc\-col\-align}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \desc{expands to the alignment of the description column}
+ }
+ % \glstableothercolalign
+ \gcmd{gls\-table\-other\-col\-align}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \desc{expands to the alignment of the other column}
+ }
+ % \glstablesymbolcolalign
+ \gcmd{gls\-table\-symbol\-col\-align}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \desc{expands to the alignment of the symbol column}
+ }
+ % \glstablenamewidth
+ \gcmd{gls\-table\-name\-width}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \desc{length register used for the width of the name column with
+ \glstableoptval{par}{justified} or \glstableoptval{par}{ragged}.
+ Set by the block style}
+ }
+ % \glstabledescwidth
+ \gcmd{gls\-table\-desc\-width}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \desc{length register used for the width of the description column with
+ \glstableoptval{par}{justified} or \glstableoptval{par}{ragged}.
+ Set by the block style}
+ }
+ % \glstablesymbolwidth
+ \gcmd{gls\-table\-symbol\-width}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \desc{length register used for the width of the symbol column with
+ \glstableoptval{par}{justified} or \glstableoptval{par}{ragged}.
+ Set by the block style}
+ }
+ % \glstableotherwidth
+ \gcmd{gls\-table\-other\-width}
+ {
+ \providedby{\sty{glossary-table} v1.50+}
+ \desc{length register used for the width of the other column with
+ \glstableoptval{par}{justified} or \glstableoptval{par}{ragged}.
+ Set by the block style}
+ }
+ % \glstableblockwidth
+ \gcmd{gls\-table\-block\-width}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \desc{length register used for the width of each block with
+ \glstableoptval{par}{justified} or \glstableoptval{par}{ragged}.
+ Set by the block style}
+ }
+ % \glstablepostpreambleskip
+ \gcmd{gls\-table\-post\-pre\-amble\-skip}
+ {
+ \providedby{\sty{glossary-table} v1.50+}
+ \initval{5pt}
+ \desc{length register that specifies the vertical skip after
+ the preamble}
+ }
+ % \glstableprepostambleskip
+ \gcmd{gls\-table\-pre\-post\-amble\-skip}
+ {
+ \providedby{\sty{glossary-table} v1.50+}
+ \initval{5pt}
+ \desc{length register that specifies the vertical skip before
+ the postamble}
+ }
+ % \glstableNameFmt
+ \gcmd{gls\-table\-Name\-Fmt}
+ {
+ \providedby{\sty{glossary-table} v1.50+}
+ \syntax{\margm{text}}
+ \desc{formatting applied to the name}
+ }
+ % \glstableSubNameFmt
+ \gcmd{gls\-table\-Sub\-Name\-Fmt}
+ {
+ \providedby{\sty{glossary-table} v1.50+}
+ \syntax{\margm{text}}
+ \desc{formatting applied to the child name}
+ }
+ % \glstableSymbolFmt
+ \gcmd{gls\-table\-Symbol\-Fmt}
+ {
+ \providedby{\sty{glossary-table} v1.50+}
+ \syntax{\margm{text}}
+ \desc{formatting applied to the symbol}
+ }
+ % \glstableSubSymbolFmt
+ \gcmd{gls\-table\-Sub\-Symbol\-Fmt}
+ {
+ \providedby{\sty{glossary-table} v1.50+}
+ \syntax{\margm{text}}
+ \desc{formatting applied to the child symbol}
+ }
+ % \glstableDescFmt
+ \gcmd{gls\-table\-Desc\-Fmt}
+ {
+ \providedby{\sty{glossary-table} v1.50+}
+ \syntax{\margm{text}}
+ \desc{formatting applied to the description}
+ }
+ % \glstableSubDescFmt
+ \gcmd{gls\-table\-Sub\-Desc\-Fmt}
+ {
+ \providedby{\sty{glossary-table} v1.50+}
+ \syntax{\margm{text}}
+ \desc{formatting applied to the child description}
+ }
+ % \glstableotherfield
+ \gcmd{gls\-table\-other\-field}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \initvalempty
+ \desc{expands to the \idx{internalfieldlabel} of the other field}
+ }
+ % \glstableOtherFmt
+ \gcmd{gls\-table\-Other\-Fmt}
+ {
+ \providedby{\sty{glossary-table} v1.50+}
+ \syntax{\margm{text}}
+ \desc{formatting applied to the other field}
+ }
+ % \glstableSubOtherFmt
+ \gcmd{gls\-table\-Sub\-Other\-Fmt}
+ {
+ \providedby{\sty{glossary-table} v1.50+}
+ \syntax{\margm{text}}
+ \desc{formatting applied to the other field}
+ }
+ % \glstableOther
+ \gcmd{gls\-table\-Other}
+ {
+ \providedby{\sty{glossary-table} v1.50+}
+ \syntax{\margm{entry-label}}
+ \desc{used to display the other field}
+ }
+ % \glstableSubOther
+ \gcmd{gls\-table\-Sub\-Other}
+ {
+ \providedby{\sty{glossary-table} v1.50+}
+ \syntax{\margm{entry-label}}
+ \desc{used to display the sub-entry other field}
+ }
+ % \glstableifhasotherfield
+ \gcmd{gls\-table\-if\-has\-other\-field}
+ {
+ \providedby{\sty{glossary-table} v1.50+}
+ \syntax{\margm{entry-label}\margm{true}\margm{false}}
+ \desc{expands to \meta{true} if the other field is non-void for
+the given entry otherwise expands to \meta{false}}
+ }
% \glstablenameheader
\gcmd{gls\-table\-name\-header}
{
@@ -6682,12 +7337,43 @@ unless you have reverted \gls{newacronym} back to the base
\providedby{\sty{glossary-table} v1.49+}
\desc{header for the other column}
}
+ % \glstableHeaderFmt
+ \gcmd{gls\-table\-Header\-Fmt}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \syntax{\margm{text}}
+ \desc{formats the header}
+ }
+ % \glstableChildEntries
+ \gcmd{gls\-table\-Child\-Entries}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \syntax{\margm{entry-label}}
+ \desc{iterates over the \glosfield{childlist} field and formats
+ each child entry in the list for use in the block styles. Does
+ nothing if the list is empty}
+ }
+ % \glstablePreChildren
+ \gcmd{glstablePreChildren}
+ {
+ \providedby{\sty{glossary-table} v1.49+}
+ \desc{code performed by \gls{glstableChildEntries} before the child list}
+ }
+ % \printunsrttable OPTIONS
\gprintunsrttableopt{blocks}%
{%
\syntax{\meta{n}}
\initval{2}
\desc{number of blocks per row}
}
+ \gprintunsrttableopt{caption}%
+ {%
+ \providedby{\sty{glossary-table} v1.50+}
+ \syntax{\meta{boolean}}
+ \initval{true}
+ \defval{true}
+ \desc{include a caption}
+ }
\gprintunsrttableopt{header}%
{%
\syntax{\meta{boolean}}
@@ -6733,25 +7419,58 @@ specifier}
\initvalempty
\desc{initialisation code}
}
- \gtableblockstyle{name\dhyphen desc}{}% name-desc
- \gtableblockstyle{name}{}
- \gtableblockstyle{name\dhyphen symbol}{}% name-symbol
- \gtableblockstyle{desc\dhyphen name}{}% desc-name
- \gtableblockstyle{symbol\dhyphen name}{}% symbol-name
- \gtableblockstyle{name\dhyphen symbol\dhyphen desc}{}% name-symbol-desc
- \gtableblockstyle{name\dhyphen desc\dhyphen symbol}{}% name-desc-symbol
- \gtableblockstyle{name\dhyphen other}{}% name-other
- \gtableblockstyle{symbol\dhyphen other}{}% symbol-other
- \gtableblockstyle{other\dhyphen name}{}% other-name
- \gtableblockstyle{other\dhyphen symbol}{}% other-symbol
- % \glstableiffilter
- \gcmd{gls\-table\-if\-filter}
- {
- \providedby{\sty{glossary-table} v1.49+}
- \syntax{\margm{entry-label}\margm{true}\margm{false}}
- \desc{internally used by the custom handler in \gls{printunsrttable}
- to perform additional filtering}
- }
+ % \printunsrttable BLOCK STYLES
+ % name-desc
+ \gtableblockstyle{name\dhyphen desc}%
+ {\providedby{\sty{glossary-table} v1.49+}}
+ % name
+ \gtableblockstyle{name}%
+ {\providedby{\sty{glossary-table} v1.49+}}
+ % name-symbol
+ \gtableblockstyle{name\dhyphen symbol}%
+ {\providedby{\sty{glossary-table} v1.49+}}
+ % desc-name
+ \gtableblockstyle{desc\dhyphen name}%
+ {\providedby{\sty{glossary-table} v1.49+}}
+ % symbol-name
+ \gtableblockstyle{symbol\dhyphen name}%
+ {\providedby{\sty{glossary-table} v1.49+}}
+ % name-symbol-desc
+ \gtableblockstyle{name\dhyphen symbol\dhyphen desc}%
+ {\providedby{\sty{glossary-table} v1.49+}}
+ % name-desc-symbol
+ \gtableblockstyle{name\dhyphen desc\dhyphen symbol}%
+ {\providedby{\sty{glossary-table} v1.49+}}
+ % name-other
+ \gtableblockstyle{name\dhyphen other}%
+ {\providedby{\sty{glossary-table} v1.49+}}
+ % symbol-other
+ \gtableblockstyle{symbol\dhyphen other}%
+ {\providedby{\sty{glossary-table} v1.49+}}
+ % other-name
+ \gtableblockstyle{other\dhyphen name}%
+ {\providedby{\sty{glossary-table} v1.49+}}
+ % other-symbol
+ \gtableblockstyle{other\dhyphen symbol}%
+ {\providedby{\sty{glossary-table} v1.49+}}
+ % name-symbol-other-desc
+ \gtableblockstyle{name\dhyphen symbol\dhyphen other\dhyphen desc}%
+ {\providedby{\sty{glossary-table} v1.50+}}
+ % name-other-symbol-desc
+ \gtableblockstyle{name\dhyphen other\dhyphen symbol\dhyphen desc}%
+ {\providedby{\sty{glossary-table} v1.50+}}
+ % desc-symbol-other-name
+ \gtableblockstyle{desc\dhyphen symbol\dhyphen other\dhyphen name}%
+ {\providedby{\sty{glossary-table} v1.50+}}
+ % desc-other-symbol-name
+ \gtableblockstyle{desc\dhyphen other\dhyphen symbol\dhyphen name}%
+ {\providedby{\sty{glossary-table} v1.50+}}
+ % name-other-desc
+ \gtableblockstyle{name\dhyphen other\dhyphen desc}%
+ {\providedby{\sty{glossary-table} v1.50+}}
+ % desc-other-name
+ \gtableblockstyle{desc\dhyphen other\dhyphen name}%
+ {\providedby{\sty{glossary-table} v1.50+}}
% COMMANDS: long
% \glsdescwidth
\gcmd{gls\-desc\-width}
@@ -6767,6 +7486,22 @@ specifier}
\desc{a length register used to set the width of the
\idx{locationlist} column for \env{tabular}-like styles}
}
+ % COMMANDS: longbooktabs style
+ % \glspatchLToutput
+ \gcmd{gls\-patch\-LT\-output}
+ {
+ \providedby{\sty{glossary-longbooktabs} v4.21+}
+ \desc{applies a patch to \env{longtable} to check for instances
+ of the group skip occurring at a page break}
+ }
+ % \glspenaltygroupskip
+ \gcmd{gls\-penalty\-group\-skip}
+ {
+ \providedby{\sty{glossary-longbooktabs} v4.21+}
+ \desc{the definition of \gls{glsgroupskip} with
+ \optval{nogroupskip}{false} for the \sty{glossary-longbooktabs}
+ styles}
+ }
% COMMANDS: tree
% \glstreepredesc
\gcmd{gls\-tree\-pre\-desc}
@@ -7718,6 +8453,50 @@ label}\margm{group label}\margm{group title}}
\desc{may be used within
\gls{printunsrtglossaryentryprocesshook} to skip the current entry}
}
+ % \printunsrtglossarypreentryprocesshook
+ \gcmd{print\-unsrt\-glossary\-pre\-entry\-process\-hook}
+ {
+ \providedby{\sty{glossaries-extra} v1.50+}
+ \syntax{\margm{internal cs}}
+ \desc{hook used within the \idx{unsrtfam} while the
+ \idx{glossary} is being constructed before the entry line has
+been added}
+ }
+ % \printunsrtglossarypostentryprocesshook
+ \gcmd{print\-unsrt\-glossary\-post\-entry\-process\-hook}
+ {
+ \providedby{\sty{glossaries-extra} v1.50+}
+ \syntax{\margm{internal cs}}
+ \desc{hook used within the \idx{unsrtfam} while the
+ \idx{glossary} is being constructed after the entry line has
+been added}
+ }
+ % \printunsrtglossarygrouphook
+ \gcmd{print\-unsrt\-glossary\-group\-hook}
+ {
+ \providedby{\sty{glossaries-extra} v1.50+}
+ \syntax{\margm{internal cs}}
+ \desc{hook used within the \idx{unsrtfam} while the
+ \idx{group} header is being constructed}
+ }
+ % \printunsrtglossarypostbegin
+ \gcmd{print\-unsrt\-glossary\-post\-begin}
+ {
+ \providedby{\sty{glossaries-extra} v1.50+}
+ \syntax{\margm{internal cs}}
+ \desc{hook used within the \idx{unsrtfam} while the
+ \idx{glossary} is being constructed just after
+ \code{\cbeg{theglossary}} is added}
+ }
+ % \printunsrtglossarypreend
+ \gcmd{print\-unsrt\-glossary\-pre\-end}
+ {
+ \providedby{\sty{glossaries-extra} v1.50+}
+ \syntax{\margm{internal cs}}
+ \desc{hook used within the \idx{unsrtfam} while the
+ \idx{glossary} is being constructed just before
+ \code{\cend{theglossary}} is added}
+ }
% \glscurrenttoplevelentry
\gcmd{gls\-current\-top\-level\-entry}
{
@@ -7856,7 +8635,9 @@ but not \printglossopt{leveloffset})}
\providedby{\sty{glossaries-extra} v1.39+}
\syntax{\meta{label}}
\desc{adds \code{\gls{label}\margm{label}} to the start of the
- \idx{glossary} (after the title)}}
+ \idx{glossary} (after the title). Not available with
+ \gls{printunsrtinnerglossary}}
+ }
% printgloss preamble
\gprintglossopt{preamble}{%
\providedby{\sty{glossaries-extra} v1.49+}
@@ -7876,7 +8657,7 @@ but not \printglossopt{leveloffset})}
\defval{true}%
\desc{suppress the \gls{locationlist}. Note that
\printglossoptval{nonumberlist}{false}
- will have no effect with the \resourceopt{save-locations}{false}
+ will have no effect with the \resourceoptval{save-locations}{false}
\idx{resourceopt} as there won't be any \glspl{locationlist} to
display}
}
@@ -7943,6 +8724,7 @@ but not \printglossopt{leveloffset})}
}
% printgloss nopostdot
\gprintglossopt{no\-post\-dot}{%
+ \providedby{\sty{glossaries} v4.08+}
\syntax{\meta{boolean}}
\initval{false}%
\defval{true}%
@@ -8844,6 +9626,7 @@ but not \printglossopt{leveloffset})}
\desc{these are internal fields that don't have a corresponding
\idxc{gloskey}{key}}
}
+ \gidx{internalfieldname}{\name{internal field name}\field{alias}{idx.glosfield}}
% field loclist
\gglosfield{loc\-list}%
{%
@@ -8919,6 +9702,21 @@ but not \printglossopt{leveloffset})}
\desc{used by \app{bib2gls} to store the \idx{group} label
obtained from the secondary sort}
}
+ % internal field useri
+ \gglosfield{useri}
+ {
+ \desc{corresponds to \gloskey{user1} key}
+ }
+ % internal field userii
+ \gglosfield{userii}
+ {
+ \desc{corresponds to \gloskey{user2} key}
+ }
+ % internal field useriii
+ \gglosfield{useriii}
+ {
+ \desc{corresponds to \gloskey{user3} key}
+ }
% \glscategory
\gcmd{gls\-category}
{
@@ -16230,6 +17028,25 @@ by \meta{multi-label}}
\desc{does \code{\gls{glsadd}\oargm{options}\margm{entry-label}} for each label
in the supplied comma-separated list}
}
+ % \glsstartrange
+ \gcmd{gls\-start\-range}
+ {
+ \providedby{\sty{glossaries-extra} v1.50+}
+ \syntax{\oargm{options}\margm{entry label list}}
+ \desc{essentially does
+\code{\gls{glsaddeach}\oarg{\meta{options},\glsoptval{format}{\sym{startrange}\meta{encap}}}\margm{entry label
+list}}
+where \meta{encap} can either be provided by the \glsopt{format} key
+in \meta{options} or will default to the format given in \gls{GlsXtrSetDefaultRangeFormat}}
+ }
+ % \glsendrange
+ \gcmd{gls\-end\-range}
+ {
+ \providedby{\sty{glossaries-extra} v1.50+}
+ \syntax{\oargm{options}\margm{entry label list}}
+ \desc{as \gls{glsstartrange} but with the end range marker
+ \sym{endrange}}
+ }
% \GlsXtrAutoAddOnFormat
\gcmd{Gls\-Xtr\-Auto\-Add\-On\-Format}
{
@@ -16699,6 +17516,15 @@ commands}
\desc{sets the default \glsopt{format} to \meta{encap} (without
the leading backslash)}
}
+ % \GlsXtrSetDefaultRangeFormat
+ \gcmd{Gls\-Xtr\-Set\-Default\-Range\-Format}
+ {
+ \providedby{\sty{glossaries-extra} v1.50+}
+ \syntax{\margm{encap}}
+ \desc{sets the default \glsopt{format} to \meta{encap} (without
+ the leading backslash) for \gls{glsstartrange} and
+ \gls{glsendrange}}
+ }
% \GlsXtrSetDefaultGlsOpts
\gcmd{Gls\-Xtr\-Set\-Default\-Gls\-Opts}
{%
@@ -20194,6 +21020,10 @@ now takes additional values}
\gcmd{char}{}% \char
\gcmd{null}{}% \null
\gcmd{relax}{}% \relax
+ \gcmd{tab\-u\-lar\-new\-line}{}% \tabularnewline
+ \gcmd{top\-rule}{}% \toprule
+ \gcmd{mid\-rule}{}% \midrule
+ \gcmd{bottom\-rule}{}% \bottomrule
\gcmd{par\-indent}{}% \parindent
\gcmd{line\-width}{}% \linewidth
\gcmd{tab\-col\-sep}{}% \tabcolsep
@@ -20235,6 +21065,7 @@ now takes additional values}
\gcmd{foreign\-language}{}% \foreignlanguage
\gpunccmd{amp}{\&}{}% \&
\gpunccmd{dollar}{\$}{}% \$
+ \gpunccmd{bksl}{\glsbackslash}{}% \\
\gcmd{new\-command}{}% \newcommand
\gcmd{re\-new\-command}{}% \renewcommand
\gcmd{provide\-command}{}% \providecommand
@@ -20720,15 +21551,25 @@ now takes additional values}
\gidx{nbsp}{\name{non-breaking space (\code{\textasciitilde})}
\field{symbol}{\code{\textasciitilde}}
}
+ \gidx{tab}{\name{tabulation (\code{\&})}
+ \field{symbol}{\code{\&}}
+ }
+ \gidx{amp}{\name{\code{\&}}\field{alias}{idx.tab}}
+ \gpunc{sym.startrange}{\name{\code{\nlctopenparen} (range start)}
+ \field{symbol}{\code{\nlctopenparen}}
+ }
+ \gpunc{sym.endrange}{\name{\code{\nlctcloseparen} (range end)}
+ \field{symbol}{\code{\nlctcloseparen}}
+ }
}
-\title{\styfmt{glossaries-extra.sty} v1.49:
+\title{\styfmt{glossaries-extra.sty} v1.50:
an extension to the \styfmt{glossaries} package}
\author{Nicola L.C. Talbot\\[10pt]
Dickimaw Books\\
\href{https://www.dickimaw-books.com/}{\nolinkurl{dickimaw-books.com}}}
-\date{2022-10-14
+\date{2022-11-08
}
\begin{document}
\maketitle
@@ -26886,7 +27727,7 @@ Whereas \glsopt{types} is only available with \gls{glsaddall}.
\section{Options}
\label{sec:glsopts}
-\glsadd[format=(]{idx.glsopt}%
+\glsstartrange{idx.glsopt}%
Some options are provided by the base \sty{glossaries} package, but
there are some additional options provided by
\sty{glossaries-extra}, which are listed in \sectionref{sec:xtrglsopts}.
@@ -27394,7 +28235,7 @@ This option is intended for use with the \idx{unsrtfam} and
\gls{glsxtrcopytoglossary} (which is used by \app{bib2gls}).
The other \idx{indexing} methods don't support repeated lists.
\end{information}
-\glsadd[format=)]{idx.glsopt}%
+\glsendrange{idx.glsopt}%
\section{Case Changing}
\label{sec:casechange}
@@ -30332,6 +31173,80 @@ each entry in the comma-separated \meta{entry label list}. This
command may be used with \app{bib2gls}, although it may be simpler
to adjust the selection criteria or use filtering.
+Explicit ranges can be formed by including \idx{sym.startrange} and
+\idx{sym.endrange} at the start of the \glsopt{format} value. For
+example:
+\begin{codebox}
+\gls{glsadd}\oarg{\glsoptval{format}{\sym{startrange}}}\marg{example}
+\ldots
+\gls{glsadd}\oarg{\glsoptval{format}{\sym{endrange}}}\marg{example}
+\end{codebox}
+(See the \sty{glossaries} manual for further details.) However, the
+isolated open and close parentheses can upset syntax highlighting.
+So the \sty{glossaries-extra} package provides the following
+commands, which automatically add \sym{startrange} and
+\sym{endrange}.
+
+\cmddef{glsstartrange}
+This effectively does:
+\begin{compactcodebox}
+\gls{glsaddeach}\oarg{\meta{options},\glsoptval{format}{\sym{startrange}\meta{encap}}}\margm{entry-label
+list}
+\end{compactcodebox}
+
+\cmddef{glsendrange}
+This effectively does:
+\begin{compactcodebox}
+\gls{glsaddeach}\oarg{\meta{options},\glsoptval{format}{\sym{endrange}\meta{encap}}}\margm{entry-label
+list}
+\end{compactcodebox}
+The default value of \meta{encap} will be the same as the default
+number format (which can be changed with
+\gls{GlsXtrSetDefaultNumberFormat}). If you want a different default
+for ranges, use:
+\cmddef{GlsXtrSetDefaultRangeFormat}
+This sets the default format for \gls{glsstartrange} and
+\gls{glsendrange}. Note that this format won't be applied if you
+explicitly create a range with \gls{glsadd} or \gls{glsaddeach}.
+
+Alternatively, you can use \glsoptval{format}{encap} in
+\meta{options}, but remember that this will need to be the same in
+both \gls{glsstartrange} and \gls{glsendrange}. For example:
+\begin{codebox}
+\gls{glsstartrange}\oarg{\glsoptval{format}{\encap{hyperbf}}}\marg{example}
+\ldots
+\gls{glsendrange}\oarg{\glsoptval{format}{\encap{hyperbf}}}\marg{example}
+\end{codebox}
+This is the same as:
+\begin{codebox}
+\gls{GlsXtrSetDefaultRangeFormat}\marg{\encap{hyperbf}}
+\gls{glsstartrange}\marg{example}
+\ldots
+\gls{glsendrange}\marg{example}
+\end{codebox}
+which is the same as:
+\begin{codebox}
+\gls{glsadd}\oarg{\glsoptval{format}{\sym{startrange}\encap{hyperbf}}}\marg{example}
+\ldots
+\gls{glsadd}\oarg{\glsoptval{format}{\sym{endrange}\encap{hyperbf}}}\marg{example}
+\end{codebox}
+
+The mandatory argument of \gls{glsstartrange} and \gls{glsendrange}
+may be a comma-separated list of entry labels. For example:
+\begin{codebox}
+\gls{glsstartrange}\marg{duck,goose}
+\ldots
+\gls{glsendrange}\marg{duck,goose}
+\end{codebox}
+This is essentially the same as:
+\begin{codebox}
+\gls{glsadd}\oarg{\glsoptval{format}{\sym{startrange}}}\marg{duck}\comment{}
+\gls{glsadd}\oarg{\glsoptval{format}{\sym{startrange}}}\marg{goose}
+\ldots
+\gls{glsadd}\oarg{\glsoptval{format}{\sym{endrange}}}\marg{duck}\comment{}
+\gls{glsadd}\oarg{\glsoptval{format}{\sym{endrange}}}\marg{goose}
+\end{codebox}
+
\cmddef{GlsXtrAutoAddOnFormat}
This will make the \idx{glslike} and \idx{glstextlike} commands
automatically use \code{\gls{glsadd}\oargm{gls\-add
@@ -32451,6 +33366,10 @@ The default definition is:
\begin{codebox}
\cmd{space}\gls{andname}\cmd{space}
\end{codebox}
+(\gls{andname} is provided by \sty{glossaries}, if not already
+defined, and simply expands to \gls{amp} but it may be defined to
+expand to something else by another package before \sty{glossaries}
+is loaded.)
With \sty{glossaries-extra}, if there are at least three elements in
the list, the separator between the final two elements will be given by:
@@ -35915,11 +36834,17 @@ This option is provided by \sty{glossaries-extra} to add
essentially like \optval{numberedsection}{nameref} but you supply
the label. This option is not available for
\gls{printunsrtinnerglossary}. Alternatively, you can use:
-\cmddef*{glsxtrsetglossarylabel} This will need to be scoped or
+\cmddef*{glsxtrsetglossarylabel}
+This will need to be scoped or
changed between \idxpl{glossary} or use a command in \meta{label}
that expands differently for each \idx{glossary} to avoid duplicate
labels.
+\begin{information}
+If the supplied value is empty, the label is suppressed (without
+otherwise altering the \opt{numberedsection} setting).
+\end{information}
+
\optiondef{printgloss.leveloffset}
This option sets or increments the \idx{hierarchicallevel} offset. If
\meta{offset} starts with \code{++} then the current offset is
@@ -36547,6 +37472,23 @@ always do \meta{code}, which means that all entries will have the
If no group label has been provided no header will be added.
\end{important}
+The following hook is used just before the header information is
+appended:
+\cmddef{printunsrtglossarygrouphook}
+The argument is the internal command used to build the group header
+(which will then be appended to main internal command containing the
+glossary code). This
+hook may be redefined to insert any additional code before the
+heading.
+Use \code{\gls{preto}\#1\margm{content}} if you want to insert
+\meta{content} before the header and \code{\gls{appto}\#1\margm{content}}
+if you want to insert \meta{content} after the header.
+(You can reference the entry label with \gls{glscurrententrylabel} and the
+current \idx{hierarchicallevel} with \gls{glscurrententrylevel} but
+make sure they are expanded if they occur in \meta{content}.) For example,
+\gls{printunsrttable} redefines this hook to finish off the current
+row before the \idx{group} header is added.
+
The above document can be modified to show the sub-\idx{group}
headings:
\begin{codebox}
@@ -36898,11 +37840,47 @@ entry labels (in the order in which they were added to the
(\inlineglsdef{@glsxtr@doglossary}), which ends up
containing:
\begin{codebox}
-\cbeg{\env{theglossary}}\gls{glossaryheader}\gls{glsresetentrylist}
+\cbeg{\env{theglossary}}\gls{glossaryheader}
+\meta{begin code}
\meta{content}
+\meta{end code}
\cend{\env{theglossary}}
\end{codebox}
+\begin{warning}
+Note that \gls{glsresetentrylist} has been removed in v1.50 since
+it's generally unnecessary with \app{bib2gls} and causes
+interference with tabular styles.
+\end{warning}
+
+The \meta{begin code} can be inserted just after
+\code{\cbeg{theglossary}} by the command:
+\cmddef{printunsrtglossarypostbegin}
+This does nothing by default (so \meta{begin code} will be omitted).
+If you still need to have \gls{glsresetentrylist} at the start, you
+can redefine this hook as follows:
+\begin{codebox}
+\cmd{renewcommand}*\marg{\gls{printunsrtglossarypostbegin}}[1]\marg{\comment{}
+ \gls{appto}\#1\marg{\gls{glsresetentrylist}}\comment{}
+}
+\end{codebox}
+
+The \meta{end code} can be inserted just before
+\code{\cend{theglossary}} by the command:
+\cmddef{printunsrtglossarypreend}
+This does nothing by default (so \meta{end code} will be omitted).
+(These two hooks are only used in \gls{printunsrtglossary} not in
+by \gls{printunsrtinnerglossary} or \env{printunsrtglossarywrap}.)
+For example,
+\gls{printunsrttable} redefines the end hook to finish off the final
+row.
+
+In both hooks, the argument will be \gls{@glsxtr@doglossary} and, in
+both cases, you need to use \gls{appto} within the definition in order
+to insert \meta{begin code} and \meta{end code} in the correct place.
+If you use \gls{preto}, the code will end up at the start, before
+\code{\cbeg{theglossary}}
+
The \meta{content} in this case is different as it doesn't
explicitly contain \gls{glossentry} and \gls{subglossentry} but
instead uses an internal handler that just takes the entry label as
@@ -36931,7 +37909,9 @@ At each iteration (while the \idx{glossary} content is being
constructed), the following steps are performed:
\begin{enumerate}
\item Store the current entry label in \gls{glscurrententrylabel}.
+
\item If \gls{glscurrententrylabel} is empty, skip this iteration.
+
\item Define placeholder commands:
\cmddef{glscurrententrylevel}
This is set to the current entry's \idx{hierarchicallevel} (taking
@@ -36946,6 +37926,7 @@ This is set to the current entry label if
\printglossoptval{flatten}{true} or if the current entry doesn't have
a parent (that is, it expands to the most recent top-level entry,
allowing for \printglossopt{flatten} but not \printglossopt{leveloffset}).
+
\item Perform the entry process hook:
\cmddef{printunsrtglossaryentryprocesshook}
This does nothing by default. Within the definition of this hook,
@@ -36954,12 +37935,35 @@ you may use:
This will cause the remainder of the current iteration to be
skipped, which will prevent the current entry from being shown in
the \idx{glossary}.
+
\item If \printglossoptval{groups}{true}, use \gls{glsxtraddgroup}
(see \sectionref{sec:printunsrtgroups}) to append the top-level group heading
(\gls{glsgroupheading}) or the sub-group heading
(\gls{glssubgroupheading}) to \gls{@glsxtr@doglossary}.
+
+\item Perform the pre-entry process hook:
+\cmddef{printunsrtglossarypreentryprocesshook}
+The argument will be \gls{@glsxtr@doglossary}. This may be used to
+insert any additional content before the entry (use
+\code{\gls{appto}\#1\margm{content}}). (The
+entry label can be referenced with \gls{glscurrententrylabel} but
+make sure it's expanded if it occurs in \meta{content}.) For example,
+\gls{printunsrttable} redefines this hook to insert \sym{amp} and
+\gls{tabularnewline} between blocks.
+
\item Append
\code{\cmd{\meta{internal cs handler}}\margm{entry label}} to \gls{@glsxtr@doglossary}.
+
+\item Perform the post-entry process hook:
+\cmddef{printunsrtglossarypostentryprocesshook}
+The argument will be \gls{@glsxtr@doglossary}. This may be used to
+append any additional content after the entry (use
+\code{\gls{appto}\#1\margm{content}}). (The
+entry label can be referenced with \gls{glscurrententrylabel} but
+make sure it's expanded if it occurs in \meta{content}.) For example,
+\gls{printunsrttable} redefines this hook to reset the block index
+if the end of a row has been reached.
+
\end{enumerate}
\begin{warning}
@@ -37100,6 +38104,8 @@ The end of this wrapper environment ends \env{theglossary} and does the postambl
\begin{codebox}
\cend{\env{theglossary}}\gls{glossarypostamble}
\end{codebox}
+Note that the \gls{printunsrtglossarypostbegin}, \gls{printunsrtglossarypreend} and
+\gls{printunsrtglossarypredoglossary} hooks aren't used.
For example, the following has two \idxpl{glossary} but displays
them as inner \idxpl{glossary}:
@@ -38544,7 +39550,7 @@ package if it the style builds on an existing one).
\subsection{\stytext{glossary-bookindex} package}
\label{sec:bookindex}
-\glsaddeach[format=(]{opt.glostyle.bookindex,pkg.glossary-bookindex}%
+\glsstartrange{opt.glostyle.bookindex,pkg.glossary-bookindex}%
The \inlineglsdef{pkg.glossary-bookindex} package provides the glossary style
\inlineglsdef{opt.glostyle.bookindex}. This is very similar to the
\glostyle{mcolindexgroup} style but is designed for indexes, so by
@@ -38803,12 +39809,12 @@ to show the first and last entry for the current page with:
\cmd{cfoot}\marg{}\comment{}
\cmd{rfoot}\marg{\gls{glsxtrbookindexlastmark}}\comment{}
\end{codebox}
-\glsaddeach[format=)]{opt.glostyle.bookindex,pkg.glossary-bookindex}%
+\glsendrange{opt.glostyle.bookindex,pkg.glossary-bookindex}%
\subsection{\stytext{glossary-longextra} package}
\label{sec:longextra}
-\glsadd[format=(]{pkg.glossary-longextra}%
+\glsstartrange{pkg.glossary-longextra}%
The \inlineglsdef{pkg.glossary-longextra} package provides additional
\env{tabular}-like styles similar to those provided by
\sty{glossary-longbooktabs} (which is automatically loaded). These don't support
@@ -39226,7 +40232,20 @@ content of the symbol column isn't wider than the column header.
If you want to set \gls{glsdescwidth} to a specific value, then redefine
\gls{glslongextraSymNoNameSetDescWidth} with the desired length assignment.
-
+For example, if you have a mixture of entries with symbols and some
+without, which means that there will be a name shown that's wider
+than the symbol column header, then set the widest name (for
+example, with the \resourceopt{set-widest} resource option) and add
+the following redefinition:
+\begin{codebox}
+\cmd{renewcommand}\marg{\gls{glslongextraSymNoNameSetDescWidth}}\marg{\comment{}
+ \gls{glslongextraSetDescWidth}
+}
+\end{codebox}
+Note that, in this case, if you don't set the widest name then the
+description column will end up even wider (and therefore cause the
+table to be even wider) if the name header is narrower than the
+symbol header.
\optiondef{glostyle.long-sym-desc}
The symbol is in the left column (or the name, if the symbol isn't
@@ -39369,12 +40388,320 @@ With \env{longtable}, the table header and footer are set with:
\cmddef{glslongextraLongShortHeader}
which uses the above header and footer commands.
-\glsadd[format=)]{pkg.glossary-longextra}%
+\subsubsection{Custom Fields}
+\label{sec:longextracustom}
+
+These styles allow one, two or three custom columns in addition to
+the name column. The \qt{custom1} styles indicate one custom column,
+the \qt{custom2} styles indicate two custom columns, and the
+\qt{custom3} styles indicate three custom columns. Some styles also
+include the description column. These styles don't display the
+location. However, if you are using \app{bib2gls} you can set one of
+the custom fields to \gloskey{location}, but if you have long
+\idxpl{locationlist} you may need to change the corresponding
+alignment command to switch to a paragraph column.
+
+\begin{information}
+The \qt{first custom column} means the first of the custom columns,
+which may not be the first column in the table. Similarly the
+\qt{second custom column} means the second of the custom columns (if
+supported by the style), and the \qt{third custom column} means the
+third of the custom columns (if supported by the style).
+\end{information}
+
+\cmddef{glslongextraCustomIField}
+Expands to the \idx{internalfieldlabel} for the first custom column.
+This will be used in the \qt{custom1}, \qt{custom2} and \qt{custom3}
+styles.
+
+\cmddef{glslongextraCustomIIField}
+Expands to the \idx{internalfieldlabel} for the second custom column.
+This will be used in the \qt{custom2} and \qt{custom3} styles.
+
+\cmddef{glslongextraCustomIIIField}
+Expands to the \idx{internalfieldlabel} for the third custom column.
+This will be used in the \qt{custom3} style.
+
+\cmddef{glslongextraCustomIHeader}
+Expands to the header text for the first custom column. The default
+definition is:
+\begin{compactcodebox}
+\gls{MFUsentencecase}\marg{\gls{glslongextraCustomIField}}
+\end{compactcodebox}
+which means that it will be \qt{Useri} by default, which is unlikely
+to be appropriate, but it may be suitable if you change the first
+custom field.
+
+\cmddef{glslongextraCustomIIHeader}
+Expands to the header text for the second custom column. The default
+likewise simply applies \idx{sentencecase} to the
+\idx{internalfieldlabel}.
+
+\cmddef{glslongextraCustomIIIHeader}
+Expands to the header text for the third custom column. The default
+likewise simply applies \idx{sentencecase} to the
+\idx{internalfieldlabel}.
+
+\cmddef{glslongextraCustomIFmt}
+This is used to format each top-level entry in the first custom column. The
+default definition is:
+\begin{compactcodebox}
+\gls{glsxtrusefield}\margm{entry-label}\marg{\gls{glslongextraCustomIField}}
+\end{compactcodebox}
+
+\cmddef{glslongextraSubCustomIFmt}
+This is used to format each sub-entry in the first custom column. The
+default definition is:
+\begin{compactcodebox}
+\gls{glslongextraCustomIFmt}\margm{entry-label}
+\end{compactcodebox}
+
+\cmddef{glslongextraCustomIIFmt}
+This is used to format each top-level entry in the second custom column. The
+default definition is:
+\begin{compactcodebox}
+\gls{glsxtrusefield}\margm{entry-label}\marg{\gls{glslongextraCustomIIField}}
+\end{compactcodebox}
+
+\cmddef{glslongextraSubCustomIIFmt}
+This is used to format each sub-entry in the second custom column. The
+default definition is:
+\begin{compactcodebox}
+\gls{glslongextraCustomIIFmt}\margm{entry-label}
+\end{compactcodebox}
+
+\cmddef{glslongextraCustomIIIFmt}
+This is used to format each top-level entry in the third custom column. The
+default definition is:
+\begin{compactcodebox}
+\gls{glsxtrusefield}\margm{entry-label}\marg{\gls{glslongextraCustomIIIField}}
+\end{compactcodebox}
+
+\cmddef{glslongextraSubCustomIIIFmt}
+This is used to format each sub-entry in the third custom column. The
+default definition is:
+\begin{compactcodebox}
+\gls{glslongextraCustomIIIFmt}\margm{entry-label}
+\end{compactcodebox}
+
+\cmddef{glslongextraCustomIAlign}
+Expands to the alignment specifier for the first custom column.
+
+\cmddef{glslongextraCustomIIAlign}
+Expands to the alignment specifier for the second custom column.
+
+\cmddef{glslongextraCustomIIIAlign}
+Expands to the alignment specifier for the third custom column.
+
+\cmddef{glslongextraCustomTabularFooter}
+The footer used for all the custom styles. The default definition
+simply does \gls{bottomrule}.
+
+\cmddef{glslongextraNameCustomITabularHeader}
+The table header for the \glostyle{long-name-custom1} style (which has two columns).
+This command and the previous command are used in the following.
+
+\cmddef{glslongextraNameCustomIHeader}
+The \env{longtable} header and footer markup for the
+\glostyle{long-name-custom1} style.
+
+\cmddef{glslongextraCustomINameTabularHeader}
+The table header for the \glostyle{long-custom1-name} style (which has two columns).
+Used in the following.
+
+\cmddef{glslongextraCustomINameHeader}
+The \env{longtable} header and footer markup for the
+\glostyle{long-custom1-name} style.
+
+\cmddef{glslongextraNameCustomIITabularHeader}
+The table header for the \glostyle{long-name-custom2} style (which
+has three columns). Used in the following.
+
+\cmddef{glslongextraNameCustomIIHeader}
+The \env{longtable} header and footer markup for the
+\glostyle{long-name-custom2} style.
+
+\cmddef{glslongextraCustomIINameTabularHeader}
+The table header for the \glostyle{long-custom2-name} style (which
+has three columns). Used in the following.
+
+\cmddef{glslongextraCustomIINameHeader}
+The \env{longtable} header and footer markup for the
+\glostyle{long-custom2-name} style.
+
+\cmddef{glslongextraNameCustomIIITabularHeader}
+The table header for the \glostyle{long-name-custom3} style (which
+has four columns). Used in the following.
+
+\cmddef{glslongextraNameCustomIIIHeader}
+The \env{longtable} header and footer markup for the
+\glostyle{long-name-custom3} style.
+
+\cmddef{glslongextraCustomIIINameTabularHeader}
+The table header for the \glostyle{long-custom3-name} style (which
+has four columns). Used in the following.
+
+\cmddef{glslongextraCustomIIINameHeader}
+The \env{longtable} header and footer markup for the
+\glostyle{long-custom3-name} style.
+
+\optiondef{glostyle.long-name-custom1}
+A two column style with the name in the first column and the first
+custom field in the second. For top-level entries, the name is formatted with
+\gls{glslongextraNameFmt} and the custom field is formatted with
+\gls{glslongextraCustomIFmt}. Sub-entries use
+\gls{glslongextraSubNameFmt} and \gls{glslongextraSubCustomIFmt}.
+
+\optiondef{glostyle.long-custom1-name}
+As \glostyle{long-name-custom1} but with the name in the last
+column.
+
+\optiondef{glostyle.long-name-custom2}
+A three column style with the name in the first column, the first
+custom field in the second and the second custom field in the third.
+As \glostyle{long-name-custom1}, but additionally the second custom
+field is formatted with \gls{glslongextraCustomIIFmt} for top-level
+entries and with \gls{glslongextraSubCustomIIFmt} for child-entries.
+
+\optiondef{glostyle.long-custom2-name}
+As \glostyle{long-name-custom2} but with the name in the last
+column.
+
+\optiondef{glostyle.long-name-custom3}
+A four column style with the name in the first column, the first
+custom field in the second, the second custom field in the third,
+and the third custom field in the fourth.
+As \glostyle{long-name-custom2}, but additionally the third custom
+field is formatted with \gls{glslongextraCustomIIIFmt} for top-level
+entries and with \gls{glslongextraSubCustomIIIFmt} for child-entries.
+
+\optiondef{glostyle.long-custom3-name}
+As \glostyle{long-name-custom3} but with the name in the last
+column.
+
+The following styles also have a description column, which uses
+\gls{glslongextraDescAlign} for the column alignment. These styles
+attempt to calculate an appropriate width for \gls{glsdescwidth}.
+
+\cmddef{glslongextraCustomISetDescWidth}
+Sets \gls{glsdescwidth} for the \glostyle{long-name-custom1-desc} style.
+This first uses \gls{glslongextraSetDescWidth} to calculate the
+width $W$ if there were only a name and description column. It then
+measures the width of the first custom column header $w$ and sets
+\gls{glsdescwidth} to $w - 2\gls{tabcolsep} - w$. This assumes that
+the first custom column header is wider than the value of each entry's
+first custom field. If this isn't the case, then you will need to
+redefined this command as appropriate.
+
+\cmddef{glslongextraCustomIISetDescWidth}
+Sets \gls{glsdescwidth} for the \glostyle{long-name-custom2-desc} style.
+This first uses \gls{glslongextraCustomISetDescWidth} to calculate
+the width $W$ if there were only a name column, first custom column,
+and description column. It then measures the width of the second
+custom column header $w$ and sets \gls{glsdescwidth} to
+$w - 2\gls{tabcolsep} - w$. This assumes that the second custom column header is
+wider than the value of each entry's second custom field. If this
+isn't the case, then you will need to redefined this command as
+appropriate.
+
+\cmddef{glslongextraCustomIIISetDescWidth}
+Sets \gls{glsdescwidth} for the \glostyle{long-name-custom3-desc} style.
+This first uses \gls{glslongextraCustomIISetDescWidth} to calculate
+the width $W$ if there were only a name column, first custom column,
+second custom column, and description column. It then measures the
+width of the third custom column header $w$ and sets \gls{glsdescwidth} to
+$w - 2\gls{tabcolsep} - w$. This assumes that the third custom column header is
+wider than the value of each entry's third custom field. If this
+isn't the case, then you will need to redefined this command as
+appropriate.
+
+\cmddef{glslongextraNameCustomIDescTabularHeader}
+The table header for the \glostyle{long-name-custom1-desc} style
+(which has three columns). Used in the following.
+
+\cmddef{glslongextraNameCustomIDescHeader}
+The \env{longtable} header and footer markup for the
+\glostyle{long-name-custom1-desc} style.
+
+\cmddef{glslongextraDescCustomINameTabularHeader}
+The table header for the \glostyle{long-desc-custom1-name} style
+(which has three columns). Used in the following.
+
+\cmddef{glslongextraDescCustomINameHeader}
+The \env{longtable} header and footer markup for the
+\glostyle{long-desc-custom1-name} style.
+
+\cmddef{glslongextraNameCustomIIDescTabularHeader}
+The table header for the \glostyle{long-name-custom2-desc} style
+(which has four columns). Used in the following.
+
+\cmddef{glslongextraNameCustomIIDescHeader}
+The \env{longtable} header and footer markup for the
+\glostyle{long-name-custom2-desc} style.
+
+\cmddef{glslongextraDescCustomIINameTabularHeader}
+The table header for the \glostyle{long-desc-custom2-name} style
+(which has four columns). Used in the following.
+
+\cmddef{glslongextraDescCustomIINameHeader}
+The \env{longtable} header and footer markup for the
+\glostyle{long-desc-custom2-name} style.
+
+\cmddef{glslongextraNameCustomIIIDescTabularHeader}
+The table header for the \glostyle{long-name-custom3-desc} style
+(which has five columns). Used in the following.
+
+\cmddef{glslongextraNameCustomIIIDescHeader}
+The \env{longtable} header and footer markup for the
+\glostyle{long-name-custom3-desc} style.
+
+\cmddef{glslongextraDescCustomIIINameTabularHeader}
+The table header for the \glostyle{long-desc-custom3-name} style
+(which has five columns). Used in the following.
+
+\cmddef{glslongextraDescCustomIIINameHeader}
+The \env{longtable} header and footer markup for the
+\glostyle{long-desc-custom3-name} style.
+
+\optiondef{glostyle.long-name-custom1-desc}
+A three column style with the name in the first column, the first
+custom field in the second, and the description in the third. This is
+like \glostyle{long-name-custom1} but additionally has the
+description column formatted as per \glostyle{long-name-desc}.
+
+\optiondef{glostyle.long-desc-custom1-name}
+As \glostyle{long-name-custom1-desc} but the name and description
+columns are swapped.
+
+\optiondef{glostyle.long-name-custom2-desc}
+A four column style with the name in the first column, the first
+custom field in the second, the second custom field in the third,
+and the description in the fourth. This is
+like \glostyle{long-name-custom2} but additionally has the
+description column formatted as per \glostyle{long-name-desc}.
+
+\optiondef{glostyle.long-desc-custom2-name}
+As \glostyle{long-name-custom2-desc} but the name and description
+columns are swapped.
+
+\optiondef{glostyle.long-name-custom3-desc}
+A five column style with the name in the first column, the first
+custom field in the second, the second custom field in the third,
+the third custom field in the fourth, and the description in the
+fifth. This is like \glostyle{long-name-custom3} but additionally
+has the description column formatted as per
+\glostyle{long-name-desc}.
+
+\optiondef{glostyle.long-desc-custom3-name}
+As \glostyle{long-name-custom3-desc} but the name and description
+columns are swapped.
+
+\glsendrange{pkg.glossary-longextra}%
\subsection{\stytext{glossary-topic} package}
\label{sec:topic}
-\glsadd[format=(]{pkg.glossary-topic}%
+\glsstartrange{pkg.glossary-topic}%
The \inlineglsdef{pkg.glossary-topic} package provides glossary
styles designed for hierarchical \idxpl{glossary} where the top-level
entries are topic titles. This package automatically loads the
@@ -39645,37 +40972,109 @@ displayed followed by:
Finally the location list is displayed using:
\cmddef{glstopicSubLoc}
which just does \meta{location} by default.
-\glsadd[format=)]{pkg.glossary-topic}%
+\glsendrange{pkg.glossary-topic}%
\subsection{\stytext{glossary-table} package}
\label{sec:table}
-\glsadd[format=(]{pkg.glossary-table}%
-The \inlineglsdef{pkg.glossary-table} package is new to version 1.49
-and is still experimental. It automatically loads
-\sty{glossary-longbooktabs}.
+\glsstartrange{pkg.glossary-table}%
+The \inlineglsdef{pkg.glossary-table} package is new to version 1.49.
+It automatically loads the \sty{longtable}, \sty{array} and
+\sty{booktabs} packages. If you want to use
+\gls{glspenaltygroupskip} for the group skip, you will need to also
+load \sty{glossary-longbooktabs}.
-It doesn't provide any general purpose
+\begin{important}
+This package is designed specifically for use with \app{bib2gls}.
+It can be used to create a supplemental \idx{glossary} with other
+\idx{indexing} options, but the entries will be listed in order of definition
+and no child entries will be shown.
+\end{important}
+
+The \sty{glossary-table} package doesn't provide any general purpose
styles, but instead provides one highly customized style
-\inlineglsdef{opt.glostyle.table} designed to
+(\inlineglsdef{opt.glostyle.table}), which is designed to
work with a supplied command:
\cmddef{printunsrttable}
-The aim of this command is to show the glossary as a
-\env{longtable}, where the caption is what would normally be the
-glossary header (\printglossopt{title}). What's normally the
-table of contents title (\printglossopt{toctitle}) will be
-added to the list of tables instead.
-
-This internally uses \gls{printunsrtglossary} with the style set to
-\glostyle{table} and is intended for use with \app{bib2gls}.
-It supports up to 1 \idx{hierarchicallevel}, but you will need the
+The \glostyle{table} style should not be set with the \opt{style}
+package option, \gls{setglossarystyle} or the \printglossopt{style}
+option, as it's only intended for use within \gls{printunsrttable},
+which sets up the appropriate hooks to allow the style to work with
+\gls{printunsrtglossary} (which is used implicitly).
+
+Tabular styles such as \gloskey{long} create a \env{longtable} with one entry
+per row and no caption. The \glostyle{longheader} style is similar
+but adds a header row, and the \glostyle{long-booktabs} style includes
+rules above and below the header row and at the end of the table.
+In all these \env{longtable} styles, the glossary title is outside of the style,
+and is typically put in a sectioning command. Similarly, the
+glossary preamble \gls{glossarypreamble} and postamble
+\gls{glossarypostamble} are outside of \env{longtable}.
+
+The \glostyle{table} style, on the other hand, allows multiple
+entries per row. The glossary title (\printglossopt{title}) is the table caption
+with what's normally the table of contents title (\printglossopt{toctitle})
+as the caption title for the list of tables.
+Similarly, the preamble and postamble are included in the table
+header and footer, instead of being outside of the table.
+
+This means that \gls{glossarysection}, \gls{glossarypreamble} and
+\gls{glossarypostamble} are redefined by \gls{printunsrttable} to do
+nothing so that they aren't shown outside of the \env{longtable} by
+\gls{printunsrtglossary}, otherwise there would be a duplication of
+the information in the header and footer of the table.
+The \gls{printunsrtglossary} hooks are used to insert the
+inter-block \idx{tab} character and new row command in the construction performed
+outside of \env{longtable}, which would otherwise cause issues
+if used directly in the \glostyle{table} style.
+
+The block styles (see \sectionref{sec:blockstyles}) alter the way
+the \glostyle{table} style sets up the \env{longtable} environment
+and the way that the entries are formatted. The top level
+\idx{glossarystyle} command \gls{glossentry} is defined to do the
+block according to the designated block style, which includes the
+child entries, if the \glosfield{childcount} field has been set and
+is non-zero.
+
+\begin{information}
+The \gls{subglossentry} command is redefined to do nothing, but it
+won't be used as the child entries are all filtered out. If you
+don't use the \resourceopt{save-child-count} resource option, no
+child entries will be shown. There's no recursive descent down the
+\idxpl{hierarchicallevel}.
+\end{information}
+
+This means that the child entries will be listed in one of the
+columns in the block, according to the style. This can make the column quite wide.
+The child names aren't displayed by default but the block styles support the
+\opt{subentrycounter} option. The child entries are
+listed in a \env{tabular} environment, which means they are
+contained in the same row as their parent and can't be broken across
+a page.
+
+A \qt{block} indicates a block of columns used to format one entry
+(and, optionally, its children). One row of
+the table may contain multiple blocks. For example, a block may consist
+of two columns with the name in the first column and the description
+in the second, or may consist of three columns with the name in the
+first column, the symbol in the second, and the description in the
+third. So if a block style has 3 columns, and the desired number
+of blocks is set to 2, then the table will have a total of
+$3\times2=6$ columns.
+
+The style supports up to 1 \idx{hierarchicallevel}, but you will need the
\resourceopt{save-child-count} resource option if you want the
level~1 sub-entries to show. Deeper level entries are omitted.
-If you want any additional filtering, you can redefine:
-\cmddef*{glstableiffilter}
+Sub-entries are automatically filtered by a custom hook that
+\gls{printunsrtglossaryentryprocesshook} is assigned to within
+\gls{printunsrttable}. This custom hook allows additional filtering
+to be employed with the command:
+\cmddef{glstableiffilter}
This command should do \meta{true} if the entry identified by
\meta{entry-label} should be skipped, otherwise it should do
-\meta{false}. For example, the following will filter entries that
+\meta{false}. The default definition simply does \meta{false}.
+
+For example, the following will filter entries that
have the category set to \cat{general}:
\begin{codebox}
\cmd{renewcommand}\marg{\gls{glstableiffilter}}[1]{\comment{}
@@ -39686,27 +41085,179 @@ Note that if this command is redefined to do neither \meta{true} nor
calculations if \glstableopt{par} isn't set to the default
\glstableoptval{par}{false}.
-Styles like \gloskey{long} create a \env{longtable} with one entry
-per row. The \glostyle{table} style allows multiple entries per row.
-A \qt{block} indicates a block of columns used to format one entry. One row of
-the table contains multiple blocks.
+You can use the \glstableopt{init} option to locally redefine
+commands within \gls{printunsrttable}. For example:
+\begin{codebox}
+\gls{printunsrttable}\oarg{\glstableoptvalm{init}{\comment{}
+ \cmd{renewcommand}\marg{\gls{glstableiffilter}}[1]{\comment{}
+ \gls{glsifcategory}\marg{\#\#1}\marg{general}}\comment{}
+}}
+\end{codebox}
-An extra field may be added with the \glstableopt{other}
+An extra field (the \qt{other} field) may be added with the \glstableopt{other}
key. If this value is empty, then no extra field will be added.
-Block styles that show the description will put this other field in
-before the description, in the same column as the description.
-Block styles that don't show the description, will put the other
-field after the name, in the same column as the name.
-Some block styles, such as \glstableblockstyle{symbol-name}
+Some block styles, such as \glstableblockstyle{other-name}
and \glstableblockstyle{symbol-other} put
-the other field in its own column.
+the other field in its own column. If the other field isn't set,
+this will lead to an empty column.
+
+If there isn't a designated column for the other field, then
+block styles that show the description will put the other field in
+before the description, but in the same column as the description.
+Otherwise, block styles that don't show the description, will put the other
+field after the name, but in the same column as the name.
+
+The following example uses the \glstableblockstyle{name} block style,
+which only has one column per block. The name is followed by the
+description in parentheses (if set), which is then followed by the
+child list. I redefined \gls{glstableNameFmt} to make the name appear in
+bold, to highlight it.
+I've used the \glstableoptval{par}{ragged} option,
+otherwise the table will be too wide to fit the page.
+\begin{codebox}
+\cmd{usepackage}
+ [\opt{record},\optval{stylemods}{table},\opt{subentrycounter}]
+ \marg{glossaries-extra}
+\codepar
+\gls{GlsXtrLoadResources}\oarg{
+ \comment{entries in \file{example-glossaries-childnoname.bib}:}
+ \resourceoptval{src}{example-glossaries-childnoname},
+ \resourceoptval{selection}{all},
+ \resourceoptval{save-child-count}}
+\cbeg{document}
+\gls{printunsrttable}
+ \oarg{
+ \glstableoptval{block-style}{name},\glstableoptval{par}{ragged},
+ \printglossoptvalm{preamble}{Some preamble text},
+ \printglossoptvalm{postamble}{Some postamble text},
+ \glstableoptvalm{init}{\comment{}
+ \cmd{let}\gls{glstableNameFmt}\cmd{textbf}
+ \cmd{def}\gls{glstablenameheader}\marg{Summary}\comment{}
+ }
+ }
+\cend{document}
+\end{codebox}
+This creates a table with two entries per row.
+\begin{resultbox}
+\createexample*[label={ex:table},
+title={Two entries per row with \cmd{printunsrttable}},
+description={Example document with a tabular glossary with two
+entries per row. The child list is in the same cell as the parent.},
+arara={pdflatex,bib2gls,pdflatex,pdfcrop}
+]
+{%
+\cmd{usepackage}[record,stylemods=table,subentrycounter]\marg{glossaries-extra}
+\codepar
+\gls{GlsXtrLoadResources}\oarg{^^J
+ \comment{entries in example-glossaries-childnoname.bib:}
+ \resourceoptval{src}{example-glossaries-childnoname},^^J
+ \resourceoptval{selection}{all},^^J
+ \resourceoptval{save-child-count}}^^J%
+}
+{%
+\gls{printunsrttable}^^J%
+ \oarg{^^J
+ block-style=name,par=ragged,^^J
+ preamble=\marg{Some preamble text},^^J
+ postamble=\marg{Some postamble text},^^J
+ init=\marg{\comment{}
+ \cmd{let}\gls{glstableNameFmt}\cmd{textbf}
+ \cmd{def}\gls{glstablenameheader}\marg{Summary}\comment{}
+ }^^J%
+ }
+}
+\end{resultbox}
+Note that each row is as deep as the entry with the most children.
+So where a row has one column with two children and another with
+seven, the row is deep enough to accommodate the seven child
+entries, which leaves a gap below the smaller list of two children.
-The optional argument may have the options that can typically be
-passed to \gls{printunsrtglossary}, except that the
-\printglossopt{nogroupskip},
-\printglossopt{nonumberlist} and \printglossopt{style} options won't
-have an effect. If you want the \idx{locationlist}, it can simply be
-obtained from the \gloskey{location} field in the appropriate style hook.
+\subsubsection{Child Entries}
+\label{sec:tablechildren}
+
+Entries with a \idx{hierarchicallevel} greater
+than 0 are filtered out (see above). This takes the \printglossopt{leveloffset}
+option into account. Child entries can be included, but only by
+checking if the \glosfield{childcount} field has been set and is non-zero.
+This is done by:
+\cmddef{glstableChildEntries}
+Note that \gls{glstableiffilter} filters top-level entries, and
+their child entries will also be filtered. Child
+entries for non-filtered top-level entries can be filtered by
+redefining:
+\cmddef{glstableiffilterchild}
+where \meta{entry-label} is the child entry label. This command
+should do \meta{true} if the child entry should be filtered and
+\meta{false} otherwise.
+
+If the child count is non-zero, taking both \glosfield{childcount}
+and child filtering into account, then \gls{glstableChildEntries}
+command will display the non-filtered children in the form:
+\begin{compactcodebox}
+\gls{glstablePreChildren}
+\cbeg{glstablesubentries}
+\gls{glstableblocksubentry}\margm{child-1-label}
+\gls{glstableblocksubentrysep}
+\gls{glstableblocksubentry}\margm{child-2-label}
+\ldots
+\gls{glstableblocksubentrysep}
+\gls{glstableblocksubentry}\margm{child-n-label}
+\cend{glstablesubentries}
+\end{compactcodebox}
+This consists of the following.
+\cmddef{glstablePreChildren}
+Occurs at the start. If \glstableoptval{par}{justified} or
+\glstableoptval{par}{ragged}, this will do \cmd{par} otherwise it
+does nothing.
+
+\begin{warning}
+In general, it's best not to list children with
+\glstableoptval{par}{false}, except with a style like
+\glstableblockstyle{name} or \glstableblockstyle{name-desc} with no
+description, as the table can end up too wide for the page.
+\end{warning}
+
+\envdef{glstablesubentries}
+This environment encapsulates the child list. By default, this does:
+\begin{compactcodebox}
+\cbeg{tabular}[t]\margm{align}
+\meta{content}
+\cend{tabular}
+\end{compactcodebox}
+The \meta{align} argument is obtained by expanding:
+\cmddef{glstablesubentryalign}
+which takes the \glstableopt{par} setting into account.
+
+Each child item is display using \gls{glstableblocksubentry}
+which is redefined by the block style.
+
+The separator between each child item is given by:
+\cmddef{glstableblocksubentrysep}
+This just expands to \gls{glstablenewline}.
+
+\subsubsection{Options}
+\label{sec:tableoptions}
+
+The optional argument of \gls{printunsrttable} may have the options
+that can typically be passed to \gls{printunsrtglossary}, except
+that the \printglossopt{nonumberlist} and \printglossopt{style}
+options won't have an effect. If you want the \idx{locationlist}, it
+can simply be obtained from the \gloskey{location} field in the
+appropriate style hook.
+
+Some default settings are changed:
+\printglossoptval{groups}{false} and
+\printglossopt{nogroupskip}{true}. If you want letter \idx{group}
+headings, you will need to both add \printglossoptval{groups}{true} to
+the options list and invoke \app{bib2gls} with the \switch{group}
+switch. The group headings will span the entire width of the table.
+This may result in empty blocks at the end of the previous row.
+If you want a vertical gap before the group heading (but not before the
+first group), you will need to add
+\printglossopt{nogroupskip}{false}, but you will also need to load
+\sty{glossary-longbooktabs}. Note that this option is designed to be
+used with group headings and will have no effect with
+\printglossoptval{groups}{false}.
Additionally, the following options may also be used.
@@ -39715,11 +41266,55 @@ The value is the number of blocks in the table.
The total number of columns in the table will be this value
multiplied by the number of columns per block, which is determined
by the block style. For example, the \glstableblockstyle{name-desc}
-has two columns, so if there are three blocks then there will be a
+block style has two columns, so if there are three blocks then there will be a
total of six columns.
+\optiondef{printunsrttab.caption}
+A boolean option that determines whether or not to include a
+caption. The caption on the first page of the table is produced
+with:
+\cmddef*{glstablecaption}
+where \meta{label code} is the code to create the label, if one has
+been supplied (either by an option such as \optval{numberedsection}{autolabel}
+or by the \printglossopt{label} option). The \meta{title} argument
+will be \gls{glossarytitle}, which can be changed with the
+\printglossopt{title} option. The \meta{lot title} argument is the
+title for the list of tables and is actually what would normally be
+the title for the table of contents, which
+can be set with the \printglossopt{toctitle} option. The default
+definition simply does:
+\begin{compactcodebox}
+\gls{caption}\oargm{lot title}\marg{\meta{label code}\meta{title}}
+\end{compactcodebox}
+An empty \meta{lot title} (\printglossoptvalm{toctitle}{}) will prevent
+the caption from being added to the list of tables.
+
+\begin{important}
+The \opt{numberedsection} option will only influence the
+label, not the table numbering. If you don't want the table
+numbered, redefine \gls{glstablecaption} to use \starredcs{caption}.
+\end{important}
+
+If the table spans across multiple pages, the caption for subsequent pages
+will be produced with:
+\cmddef*{glstablenextcaption}
+This ignores the \meta{lot title} argument by default and does:
+\begin{compactcodebox}
+\gls{caption}\oarg{}\marg{\meta{title}\gls{glstablepostnextcaption}}
+\end{compactcodebox}
+This has an empty optional argument to prevent the caption from
+being repeatedly added to the list of tables. The title is followed
+by:
+\cmddef*{glstablepostnextcaption}
+You can either redefine this command to adjust the content after the
+title or redefine \gls{glstablenextcaption}, as appropriate.
+
\optiondef{printunsrttab.header}
A boolean option to determine whether or not to show the header row.
+Note that a header with three column block styles, such as
+\glstableblockstyle{name-symbol-desc}, can result in overfull lines.
+You may need to shorten the header text to fit.
+
The header text is produced with one of the following commands:
\cmddef*{glstablenameheader}
Expands to the header for the name column. Just uses \gls{entryname}
@@ -39773,150 +41368,331 @@ The \meta{code} will be added shortly before
scoped.
\optiondef{printunsrttab.block-style}
-The block style, which may be one of the following:
+The block style. Available styles are listed in
+\sectionref{sec:blockstyles}.
+
+\subsubsection{Block Styles}
+\label{sec:blockstyles}
+
+The block style may be set with the \glstableopt{block-style} option
+or with:
+\cmddef{glstablesetstyle}
+
+\begin{warning}
+The block styles are still under development, so the underlying
+commands are not yet documented and liable to change.
+\end{warning}
+
+The following block styles are predefined.
+
+\glstableblockstyledef{name}
+Blocks have one column with the name, which is followed by the symbol and
+the description, if they have been set, in parentheses. The child list
+follows at the end of the column (if \glosfield{childcount} is set
+and non-zero).
\glstableblockstyledef{name-desc}
+This is the default style.
Blocks have two columns with the name in the first column of the
-block and the description in the second. This is the default style.
+block and the description in the second. If the other field is set,
+it will follow the description. The child entries will be at the end
+of the second column (if \glosfield{childcount} is set and
+non-zero).
\glstableblockstyledef{desc-name}
-Blocks have two columns with the description in the first column of the
-block and the name in the second.
+As \glstableblockstyle{name-desc} but with the columns swapped.
+The child entries (if \glosfield{childcount} is set and
+non-zero) will be at the end of the first column.
\glstableblockstyledef{name-symbol}
Blocks have two columns with the name in the first column of the
block and the symbol in the second.
+If the other field is set, it will be placed after the name in the
+first column. The child entries are at the end
+of the first column (if \glosfield{childcount} is set and non-zero).
\glstableblockstyledef{symbol-name}
-Blocks have two columns with the symbol in the first column of the
-block and the name in the second.
-
-\glstableblockstyledef{name-symbol-desc}
-Blocks have three columns with the name in the first column of the
-block, the symbol in the second, and the description in the third.
-
-\glstableblockstyledef{name-desc-symbol}
-Blocks have three columns with the name in the first column of the
-block, the description in the second, and the symbol in the third.
-
-\glstableblockstyledef{name}
-Blocks have one column with the name followed by the symbol and
-description in parentheses, if they have been set.
+As \glstableblockstyle{name-symbol} but with the columns swapped.
+The child entries (if \glosfield{childcount} is set and
+non-zero) will be at the end of the second column.
\glstableblockstyledef{name-other}
This is like \glstableblockstyle{name-desc} but puts the other field
in the second column. The description and symbol aren't shown.
-Note that you will need to set the \glstableopt{other} key to the
-required field, otherwise you will end up with an empty column.
+The child entries (if \glosfield{childcount} is set and
+non-zero) will be at the end of the second column.
\glstableblockstyledef{other-name}
This is like \glstableblockstyle{desc-name} but puts the other field
in the second column. The description and symbol aren't shown.
-Note that you will need to set the \glstableopt{other} key to the
-required field, otherwise you will end up with an empty column.
+The child entries (if \glosfield{childcount} is set and
+non-zero) will be at the end of the first column.
\glstableblockstyledef{symbol-other}
This is like \glstableblockstyle{name-other} but shows the
symbol instead of the name.
+The child entries (if \glosfield{childcount} is set and
+non-zero) will be at the end of the second column.
\glstableblockstyledef{other-symbol}
This is like \glstableblockstyle{other-name} but shows the
symbol instead of the name.
+The child entries (if \glosfield{childcount} is set and
+non-zero) will be at the end of the first column.
-The block styles alter the way the \glostyle{table} style sets up
-the \env{longtable} environment and the way that the entries are
-formatted. The top level \idx{glossarystyle} command
-\gls{glossentry} is defined to do the block according to the
-designated block style and then it will follow the block with the
-child entries, if the \glosfield{childlist} field has been set.
+\glstableblockstyledef{name-symbol-desc}
+Blocks have three columns with the name in the first column of the
+block, the symbol in the second, and the description in the third,
+preceded by the other field, if set.
+The child entries are at the end
+of the third column (if \glosfield{childcount} is set and non-zero).
-\begin{information}
-The \gls{subglossentry} command is redefined to do nothing, but it
-won't be used as the child entries are all filtered out. If you
-don't use the \resourceopt{save-child-count} resource option, no
-child entries will be shown. There's no recursive descent down the
-\idxpl{hierarchicallevel}.
-\end{information}
+\glstableblockstyledef{name-desc-symbol}
+Blocks have three columns with the name in the first column of the
+block, the description in the second, preceded by the other field,
+if set, and the symbol in the third.
+The child entries are at the end
+of the second column (if \glosfield{childcount} is set and non-zero).
-This means that the child entries will be listed at the end of the
-last column in the block. This can make the column quite wide.
-The child names aren't displayed by default but supports the
-\opt{subentrycounter} option. The child entries are
-listed in a \env{tabular} environment, which means they are
-contained in the same row as their parent and can't be broken across
-a page.
+\glstableblockstyledef{name-other-desc}
+Blocks have three columns with the name in the first column of the
+block, the other in the second, and the description in the third.
+The child entries are at the end
+of the third column (if \glosfield{childcount} is set and non-zero).
+
+\glstableblockstyledef{desc-other-name}
+Blocks have three columns with the description in the first column of the
+block, the other in the second, and the name in the third.
+The child entries are at the end
+of the first column (if \glosfield{childcount} is set and non-zero).
+
+\glstableblockstyledef{name-symbol-other-desc}
+Blocks have four columns with the name in the first column of the
+block, the symbol in the second, the other in the third, and the
+description in the fourth.
+The child entries are at the end
+of the fourth column (if \glosfield{childcount} is set and non-zero).
+
+\glstableblockstyledef{name-other-symbol-desc}
+Blocks have four columns with the name in the first column of the
+block, the other in the second, the symbol in the third, and the
+description in the fourth.
+The child entries are at the end
+of the fourth column (if \glosfield{childcount} is set and non-zero).
+
+\glstableblockstyledef{desc-symbol-other-name}
+Blocks have four columns with the description in the first column of the
+block, the symbol in the second, the other in the third, and the
+name in the fourth.
+The child entries are at the end
+of the first column (if \glosfield{childcount} is set and non-zero).
+
+\glstableblockstyledef{desc-other-symbol-name}
+Blocks have four columns with the description in the first column of the
+block, the other in the second, the symbol in the third, and the
+name in the fourth.
+The child entries are at the end
+of the first column (if \glosfield{childcount} is set and non-zero).
+
+\subsubsection{Associated Commands}
+\label{sec:tablecommands}
+
+The rows are separated with:
+\cmddef{glstablenewline}
+This simply does \gls{tabularnewline} (not \gls{bksl} which has a
+different action in paragraph columns).
+
+The following commands are used in the column specifier where a
+left, right or centred column is required, taking the
+\glstableopt{par} option into account. Note that with
+\glstableoptval{par}{justified}, the result will always be
+\code{p\margm{width}}, whereas with \glstableoptval{par}{ragged}
+the paragraph will be ragged right or ragged left or have centring
+applied.
+
+\cmddef{glstableleftalign}
+Expands to \code{l} or \code{p\margm{width}}
+or \code{>{\cmd{protect}\cmd{raggedright}p\margm{width}}},
+depending on the \glstableopt{par} setting.
+
+This command is used in the column specifier where a left-justified
+column is required.
+
+\cmddef{glstablerightalign}
+Expands to \code{r} or \code{p\margm{width}}
+or \code{>{\cmd{protect}\cmd{raggedleft}p\margm{width}}},
+depending on the \glstableopt{par} setting.
+
+This command is used in the column specifier where a right-justified
+column is required.
+
+\cmddef{glstablecenteralign}
+Expands to \code{c} or \code{p\margm{width}}
+or \code{>{\cmd{protect}\cmd{centering}p\margm{width}}},
+depending on the \glstableopt{par} setting.
+
+This command is used in the column specifier where a centred
+column is required.
+
+\cmddef{glstablenamecolalign}
+Expands to the alignment for the name column. The default definition
+uses left alignment:
+\begin{compactcodebox}
+\gls{glstableleftalign}\marg{\gls{glstablenamewidth}}
+\end{compactcodebox}
+
+\cmddef{glstabledesccolalign}
+Expands to the alignment for the description column. The default definition
+uses left alignment:
+\begin{compactcodebox}
+\gls{glstableleftalign}\marg{\gls{glstabledescwidth}}
+\end{compactcodebox}
+
+\cmddef{glstablesymbolcolalign}
+Expands to the alignment for the symbol column, in block styles where
+the symbol has its own column. The default definition
+uses centred alignment:
+\begin{compactcodebox}
+\gls{glstablecenteralign}\marg{\gls{glstablesymbolwidth}}
+\end{compactcodebox}
+
+\cmddef{glstableothercolalign}
+Expands to the alignment for the other column, in block styles where
+the other field has its own column. The default definition
+uses left alignment:
+\begin{compactcodebox}
+\gls{glstableleftalign}\marg{\gls{glstableotherwidth}}
+\end{compactcodebox}
+
+If \glstableoptval{par}{justified} or \glstableoptval{par}{ragged},
+the column widths will be calculated. The following length
+registers will be set, where applicable to the block style.
+
+\cmddef{glstablenamewidth}
+The width of the name column.
+
+\cmddef{glstabledescwidth}
+The width of the description column.
+
+\cmddef{glstablesymbolwidth}
+The width of the symbol column.
+
+\cmddef{glstableotherwidth}
+The width of the other column.
+
+Unless \glstableoptval{par}{false}, the table will be the width of a
+line and each block will have equal width.
+\cmddef{glstableblockwidth}
+
+Note that in all the above, the width doesn't include the
+inter-column space given by \gls{tabcolsep}.
+The length registers below are initialise to 5pt, and can be
+redefined as appropriate.
+
+\cmddef{glstablepostpreambleskip}
+The vertical skip after the preamble.
+
+\cmddef{glstableprepostambleskip}
+The vertical skip before the postamble.
+
+Formatting for the name, symbol, description and other field values
+are applied by the following commands.
+
+\cmddef{glstableNameFmt}
+Formatting applied to the name. Simply does \meta{text} by default.
+Note that the argument \meta{text}
+will \code{\gls{glossentryname}\margm{label}}, so any formatting applied
+by that command will also be in effect.
+
+\cmddef{glstableSubNameFmt}
+Formatting applied to the child name. Does nothing by default, which
+means that the child name won't show.
+
+\cmddef{glstableSymbolFmt}
+Formatting applied to the symbol. Simply does \meta{text} by default.
+Note that the argument \meta{text}
+will \code{\gls{glossentrysymbol}\margm{label}}, so any formatting applied
+by that command will also be in effect.
+
+\cmddef{glstableSubSymbolFmt}
+Formatting applied to the child symbol. Just does
+\gls{glstableSymbolFmt} by default.
+
+\cmddef{glstableDescFmt}
+Formatting applied to the description. Simply does \meta{text} by default.
+Note that the argument \meta{text}
+will be:
+\begin{compactcodebox}
+\gls{glossentrydesc}\margm{label}\gls{glspostdescription}
+\end{compactcodebox}
+so any formatting applied by \gls{glossentrydesc} will also be in effect.
+Note that the \gls{postdeschook} is included in the formatted.
+
+\cmddef{glstableSubDescFmt}
+Formatting applied to the child description. Just does
+\gls{glstableDescFmt} by default.
+
+The other field's \idxc{internalfieldlabel}{internal label} is
+provided by expanding:
+\cmddef{glstableotherfield}
+This is redefined by the \glstableopt{other} option, but
+it may be redefined before \gls{printunsrttable} if a default
+field is required.
+
+\cmddef{glstableOtherFmt}
+The formatting applied to the other field. This just does
+\meta{text} by default. The field value itself is displayed with:
+\cmddef{glstableOther}
+The default definition does:
+\begin{compactcodebox}
+\gls{glstableOtherFmt}\marg{\comment{}
+ \gls{glsxtrusefield}\margm{entry-label}\marg{\gls{glstableotherfield}}}
+\end{compactcodebox}
+
+The value for the child entries is displayed with:
+\cmddef{glstableSubOther}
+The default definition simply does
+\gls{glstableOther}\margm{entry-label}
+
+You can test whether or not the other field is set for a given entry
+with:
+\cmddef{glstableifhasotherfield}
+This does \meta{true} of the other field is non-void
+(according to \gls{ifglsfieldvoid}) otherwise it does
+\meta{false}. This will always do \meta{false} if
+\gls{glstableotherfield} is void.
+
+The column headers are supplied by the following commands, where
+applicable.
+
+\cmddef{glstablenameheader}
+The header for the name column. The default definition is
+\gls{entryname}.
+
+\cmddef{glstabledescheader}
+The header for the description column. The default definition is
+\gls{descriptionname}.
+
+\cmddef{glstablesymbolheader}
+The header for the symbol column. The default definition is
+\gls{symbolname}.
+
+\cmddef{glstableotherheader}
+The header for the other column. The default definition is:
+\begin{compactcodebox}
+\gls{MFUsentencecase}\marg{\gls{glstableotherfield}}
+\end{compactcodebox}
+
+The column headers are formatted according to:
+\cmddef{glstableHeaderFmt}
+The default definition is \code{\gls{textbf}\margm{text}}.
\begin{warning}
The remaining commands are undocumented as they are liable to
change.
\end{warning}
-The following example uses the \glstableblockstyle{name} block style,
-which only has one column per block. The name is followed by the
-description in parentheses (if set), which is then followed by the
-child list. I redefined \gls{glsnamefont} to make the name appear in
-bold, to highlight it.
-I've used the \glstableoptval{par}{ragged} option,
-otherwise the table will be too wide to fit the page.
-\begin{codebox}
-\cmd{usepackage}
- [\opt{record},\optval{stylemods}{table},\opt{subentrycounter}]
- \marg{glossaries-extra}
-\codepar
-\gls{GlsXtrLoadResources}\oarg{
- \comment{entries in \file{example-glossaries-childnoname.bib}:}
- \resourceoptval{src}{example-glossaries-childnoname},
- \resourceoptval{selection}{all},
- \resourceoptval{save-child-count}}
-\cbeg{document}
-\gls{printunsrttable}
- \oarg{
- \glstableoptval{block-style}{name},\glstableoptval{par}{ragged},
- \printglossoptvalm{preamble}{Some preamble text},
- \printglossoptvalm{postamble}{Some postamble text},
- \glstableoptvalm{init}{\comment{}
- \cmd{let}\gls{glsnamefont}\cmd{textbf}
- \cmd{def}\gls{glstablenameheader}\marg{Summary}\comment{}
- }
- }
-\cend{document}
-\end{codebox}
-This creates a table with two entries per row.
-\begin{resultbox}
-\createexample*[label={ex:table},
-title={Two entries per row with \cmd{printunsrttable}},
-description={Example document with a tabular glossary with two
-entries per row. The child list is in the same cell as the parent.},
-arara={pdflatex,bib2gls,pdflatex,pdfcrop}
-]
-{%
-\cmd{usepackage}[record,stylemods=table,subentrycounter]\marg{glossaries-extra}
-\codepar
-\gls{GlsXtrLoadResources}\oarg{^^J
- \comment{entries in example-glossaries-childnoname.bib:}
- \resourceoptval{src}{example-glossaries-childnoname},^^J
- \resourceoptval{selection}{all},^^J
- \resourceoptval{save-child-count}}^^J%
-}
-{%
-\gls{printunsrttable}^^J%
- \oarg{^^J
- block-style=name,par=ragged,^^J
- preamble=\marg{Some preamble text},^^J
- postamble=\marg{Some postamble text},^^J
- init=\marg{\comment{}
- \cmd{let}\gls{glsnamefont}\cmd{textbf}
- \cmd{def}\gls{glstablenameheader}\marg{Summary}\comment{}
- }^^J%
- }
-}
-\end{resultbox}
-Note that each row is as deep as the entry with the most children.
-So where a row has one column with two children and another with
-seven, the row is deep enough to accommodate the seven child
-entries, which leaves a gap below the smaller list of two children.
-
-\glsadd[format=)]{pkg.glossary-table}%
+\glsendrange{pkg.glossary-table}%
\chapter{Accessibility Support}
\label{sec:accsupp}
@@ -41127,7 +42903,7 @@ perform the test.
\chapter{\apptext{bib2gls}: Managing Reference Databases}
-\label{sec:bib2gls}\glsadd[format=(]{app.bib2gls}
+\label{sec:bib2gls}\glsstartrange{app.bib2gls}
The command line application \app{bib2gls} performs two functions in
one:
@@ -42391,7 +44167,7 @@ arara={pdflatex,bib2gls: { recordcountunit: on },pdflatex,pdfcrop}
\label{sec:bib2glssty}
\pkgdef{glossaries-extra-bib2gls}
-\glsadd[format=(]{pkg.glossaries-extra-bib2gls}%
+\glsstartrange{pkg.glossaries-extra-bib2gls}%
The package options \opteqvalref{record}{only} (or simply
\opt{record}) and \opteqvalref{record}{nameref} automatically
loads the supplementary package \sty{glossaries-extra-bib2gls},
@@ -44099,8 +45875,10 @@ Greek commands are also provided: \inlineglsdef{Upalpha},
\inlineglsdef{Upomicron}, \inlineglsdef{Uprho},
\inlineglsdef{Uptau}, \inlineglsdef{Upchi}, \inlineglsdef{upomicron}.
-\glsadd[format=)]{pkg.glossaries-extra-bib2gls}%
-\glsadd[format=)]{app.bib2gls}% end of bib2gls chapter
+\glsendrange{%
+pkg.glossaries-extra-bib2gls,% end of glossaries-extra-bib2gls.sty
+app.bib2gls% end of bib2gls chapter
+}
\chapter{Auto-Indexing}
\label{sec:autoindex}
@@ -44415,6 +46193,8 @@ Corresponds to \filefmt{example-glossaries-symbolnames.tex}
Corresponds to \filefmt{example-glossaries-symbols.tex}
\filedef{example-glossaries-url.bib}
Corresponds to \filefmt{example-glossaries-url.tex}
+\filedef{example-glossaries-user.bib}
+Corresponds to \filefmt{example-glossaries-user.tex}
\filedef{example-glossaries-xr.bib}
Corresponds to \filefmt{example-glossaries-xr.tex}