% Encoding: UTF-8

% Custom entry types will need aliasing.
%
% @bibglscommand       -> \bibgls... command provided by bib2gls
% @glscommand          -> command provided by glossaries.sty,
%                        glossaries-extra.sty or supplemental glossary packages.
% @mainglscommand      -> glossary-related command with formal syntax described
%                        in the main matter.
% @abbrvstylecommand   -> command used by abbreviation styles.
% @glostylecommand     -> command used by glossary styles.
% @resourceoption      -> \GlsXtrLoadResources option
% @command             -> command provided by kernel or other package
% @examplecommand      -> custom command defined in the examples
% @fileformat          -> file format
% @application         -> application
% @package             -> package
% @specialchar         -> special character
% @environment         -> environment
% @glsenvironment      -> environment provided by glossaries.sty
% @abbreviationstyle   -> abbreviation style
% @glossarystyle       -> glossary style
% @categoryattribute   -> category attribute
% @counter             -> counter
% @labelprefix         -> label prefix
% @packageoption       -> package option
% @field               -> field
% @entrytype           -> entry type
% @switch              -> command line switch
% @xmltag              -> tag in XML language resource file
% @unicodecategory     -> Unicode category
% @texmfcnf            -> texmf.cnf setting
% @file                -> file
% @samplefile          -> sample file
% @printglossoption    -> \printunsrtglossary option
% @glslinkoption       -> \glslink option
% @glsaddoption        -> \glsadd option
% @exampleentry        -> example entry
% @examplesymbol       -> example symbol
% @exampleindex        -> example term
% @exampleabbreviation -> example abbreviation
% @topic               -> topic

@preamble{"\providecommand{\dhyphen}{-}
\providecommand{\longargfmt}[1]{-{}-#1}
\providecommand{\csfmt}[1]{\texttt{\glsbackslash #1}}
\providecommand{\derivfn}[1]{f'(#1)}
\providecommand{\rangestartmark}{\symbol{40}}
\providecommand{\rangeendmark}{\symbol{41}}
\providecommand{\abbrvword}[1]{\textup{#1}}"}

@abbreviation{IETF,
 short = {IETF},
 long = {Internet Engineering Task Force}
}

@abbreviation{JVM,
 short = {JVM},
 long = {Java Virtual Machine}
}

@abbreviation{JRE,
 short = {JRE},
 long = {Java Runtime Environment}
}

@abbreviation{TUG,
 short = {TUG},
 long = {{}\TeX\ Users Group}
}

@abbreviation{CLDR,
 short = {CLDR},
 long = {Unicode Common Locale Data Repository}
}

@abbreviation{SIunit,
 short = {SI \abbrvword{unit}},
 long = {International System of Units},
 longplural = {International System of Units},
 category={common}
}

@abbreviation{ASCII,
  short = {ASCII},
  long = {American Standard Code for Information Interchange},
  category={common}
}

@abbreviation{CJK,
  short = {CJK},
  long = {Chinese, Japanese, Korean languages},
  category={common}
}

@abbreviation{encap,
  short = {encap},
  long = {encapsulating command}
}

@abbreviation{toc,
  short = {TOC},
  long = {table of contents}
}

@topic{definingterms,
  name={defining terms}
}

@topic{convertercommands,
  name={converter commands},
  text={converter command}
}

@topic{formattingcommands,
  name={formatting commands},
  text={formatting command}
}

@topic{abbreviationcommands,
  name={abbreviation commands (general)},
  text={abbreviation command},
  seealso={abbreviationstyles}
}

@topic{glossarystylecommands,
  name={glossary style commands (general)},
  text={glossary style command},
  seealso={glossarystyle}
}

@topic{separatorcommands,
  name={separator commands}
}

@topic{crossrefcommands,
  name={cross-referencing commands}
}

@topic{loclistcommands,
  name={location list commands (records)}
}

@topic{fixedtextcommands,
  name={fixed text commands}
}

@topic{fieldrefcommands,
  name={field reference commands}
}

@topic{entryrefcommands,
  name={entry reference commands}
}

@topic{glossrefs,
  name={glossary lists (\fieldfmt{type})}
}

@topic{standalonestyles,
  name={standalone styles}
}

@topic{providingcommands,
  name={defining or redefining commands}
}

@topic{linkcommands,
  name={hyperlink-capable commands or targets}
}

@topic{supplementalrefs,
  name={supplemental document references}
}

@topic{assigncommands,
  name={assignment commands},
  text={assignment command}
}

@topic{groupcommands,
  name={glossary group commands}
}

@topic{charcommands,
  name={character or symbol commands}
}

@topic{casecommands,
  name={case-changing commands},
  text={case-changing command}
}

@topic{quark,
  name={quarks (\bibgls)},
  text={quark},
  description={Quarks are special types of escape sequences that
  look like \LaTeX\ commands but actually markup special tokens in 
  resource options. See \sectionref{sec:quarks} for further details.}
}

@topic{internalcommands,
  name={internal commands}
}

@topic{auxcommands,
  name={auxiliary file commands},
  text={auxiliary file command}
}

@topic{capheadcommands,
  name={caption or heading commands},
  text={caption or heading command}
}

@topic{listcommands,
  name={list commands (internal or comma-separated)},
  text={list command}
}

@topic{collationsubrules,
  name={collation sub-rules}
}

@topic{catattrcommands,
  name={categories and attributes}
}

@index{regexp,
  name={regexp (or regex)},
  text={regexp},
  alias={regex}
}

@index{regex,
  name={regular expressions},
  text={regular expression},
}

@topic{access-support,
  name={accessibility support}
}

@topic{conditional,
  name={conditionals and boolean values},
  text={conditional},
  plural={conditionals}
}
@indexplural{booleanvals,
  text={boolean value},
  alias={conditional}
}

@topic{debugging,
  name={debugging commands},
  text={debugging command}
}

@topic{shortcutcommands,
  name={shortcut commands},
  text={shortcut command}
}

@topic{hooks,name={hooks},text={hook}}
@topic{loop,name={loops},text={loop}}
@index{iteration,see={loop}}
@indexplural{handler,seealso={loop}}
@topic{indexing}

@bibglscommand{bibglsnewentry,
  name={\csfmt{bib\-gls\-new\-entry}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines terms provided with \atentry{entry}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewsymbol,
  name={\csfmt{bib\-gls\-new\-symbol}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines terms provided with \atentry{symbol}},
  topics={definingterms},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsnewnumber,
  name={\csfmt{bib\-gls\-new\-number}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines terms provided with \atentry{number}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewindex,
  name={\csfmt{bib\-gls\-new\-index}},
  user1={\margm{label}\margm{options}},
  description={defines terms provided with \atentry{index}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewindexplural,
  name={\csfmt{bib\-gls\-new\-index\-plural}},
  user1={\margm{label}\margm{options}\margm{name}},
  description={defines terms provided with \atentry{index}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewabbreviation,
  name={\csfmt{bib\-gls\-new\-abbreviation}},
  user1={\margm{label}\margm{options}\margm{short}\margm{long}},
  description={defines terms provided with \atentry{abbreviation}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewacronym,
  name={\csfmt{bib\-gls\-new\-acronym}},
  user1={\margm{label}\margm{options}\margm{short}\margm{long}},
  description={defines terms provided with \atentry{acronym}},
  topics={definingterms},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsnewdualentry,
  name={\csfmt{bib\-gls\-new\-dual\-entry}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines terms provided with \atentry{dualentry}},
  topics={definingterms},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsnewdualindexentry,
  name={\csfmt{bib\-gls\-new\-dual\-index\-entry}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines primary terms provided with
\atentry{dualindexentry}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewdualindexentrysecondary,
  name={\csfmt{bib\-gls\-new\-dual\-index\-entry\-secondary}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines secondary terms provided with
\atentry{dualindexentry}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewdualindexsymbol,
  name={\csfmt{bib\-gls\-new\-dual\-index\-symbol}},
  user1={\margm{label}\margm{options}\margm{name}\margm{symbol}\margm{description}},
  description={defines primary terms provided with
\atentry{dualindexsymbol}},
  topics={definingterms},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsnewdualindexsymbolsecondary,
  name={\csfmt{bib\-gls\-new\-dual\-index\-symbol\-secondary}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines secondary terms provided with
\atentry{dualindexsymbol}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewdualindexnumber,
  name={\csfmt{bib\-gls\-new\-dual\-index\-number}},
  user1={\margm{label}\margm{options}\margm{name}\margm{symbol}\margm{description}},
  description={defines primary terms provided with
\atentry{dualindexnumber}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewdualindexnumbersecondary,
  name={\csfmt{bib\-gls\-new\-dual\-index\-number\-secondary}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines secondary terms provided with
\atentry{dualindexnumber}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewdualindexabbreviation,
  name={\csfmt{bib\-gls\-new\-dual\-index\-abbre\-via\-tion}},
  user1={\margm{label}\margm{dual-label}\margm{options}\margm{name}\margm{short}\margm{long}\margm{description}},
  description={defines primary terms provided with
\atentry{dualindexabbreviation}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewdualindexabbreviationsecondary,
  name={\csfmt{bib\-gls\-new\-dual\-index\-abbre\-via\-tion\-sec\-ond\-ary}},
  user1={\margm{label}\margm{options}\margm{name}\margm{short}\margm{long}\margm{description}},
  description={defines secondary terms provided with
\atentry{dualindexabbreviation}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewdualabbreviationentry,
  name={\csfmt{bib\-gls\-new\-dual\-abbre\-via\-tion\-entry}},
  user1={\margm{label}\margm{options}\margm{short}\margm{long}\margm{description}},
  description={defines primary terms provided with
\atentry{dualabbreviationentry}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewdualabbreviationentrysecondary,
  name={\csfmt{bib\-gls\-new\-dual\-abbre\-via\-tion\-entry\-sec\-ond\-ary}},
  user1={\margm{label}\margm{options}\margm{short}\margm{long}\margm{description}},
  description={defines secondary terms provided with
\atentry{dualabbreviationentry}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewdualentryabbreviation,
  name={\csfmt{bib\-gls\-new\-dual\-entry\-abbre\-via\-tion}},
  user1={\margm{label}\margm{options}\margm{short}\margm{long}\margm{description}},
  description={defines primary terms provided with (deprecated)
\atentry{dualentryabbreviation}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewdualentryabbreviationsecondary,
  name={\csfmt{bib\-gls\-new\-dual\-entry\-abbre\-via\-tion\-sec\-ond\-ary}},
  user1={\margm{label}\margm{options}\margm{short}\margm{long}\margm{description}},
  description={defines secondary terms provided with (deprecated)
\atentry{dualentryabbreviation}},
  topics={definingterms},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsnewdualsymbol,
  name={\csfmt{bib\-gls\-new\-dual\-symbol}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines terms provided with \atentry{dualsymbol}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewdualnumber,
  name={\csfmt{bib\-gls\-new\-dual\-number}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines terms provided with \atentry{dualnumber}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewdualabbreviation,
  name={\csfmt{bib\-gls\-new\-dual\-abbre\-via\-tion}},
  user1={\margm{label}\margm{options}\margm{short}\margm{long}},
  description={defines terms provided with
\atentry{dualabbreviation}},
  topics={definingterms},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsnewdualacronym,
  name={\csfmt{bib\-gls\-new\-dual\-acronym}},
  user1={\margm{label}\margm{options}\margm{short}\margm{long}},
  description={defines terms provided with \atentry{dualacronym}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewtertiaryindexabbreviationentry,
  name={\csfmt{bib\-gls\-new\-tert\-iary\-index\-abbre\-via\-tion\-entry}},
  user1={\margm{label}\margm{dual-label}\margm{options}\margm{name}\margm{short}\margm{long}\margm{description}},
  description={defines primary terms provided with
\atentry{tertiaryindexabbreviationentry}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewtertiaryindexabbreviationentrysecondary,
  name={\csfmt{bib\-gls\-new\-tert\-iary\-index\-abbre\-via\-tion\-entry\-sec\-ond\-ary}},
  user1={\margm{label}\margm{tertiary-label}\margm{options}\margm{tertiary-opts}\margm{primary-name}\margm{short}\margm{long}\margm{description}},
  description={defines secondary and tertiary terms provided with
\atentry{tertiaryindexabbreviationentry}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewbibtexentry,
  name={\csfmt{bib\-gls\-new\-bib\-tex\-entry}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines terms provided with \atentry{bibtexentry}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewcontributor,
  name={\csfmt{bib\-gls\-new\-con\-trib\-u\-tor}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines terms provided with
   \atentry{contributor}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewprogenitor,
  name={\csfmt{bib\-gls\-new\-progenitor}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines terms provided with \atentry{progenitor}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewspawnindex,
  name={\csfmt{bib\-gls\-new\-spawn\-index}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines terms provided with \atentry{spawnindex}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewspawndualindexentry,
  name={\csfmt{bib\-gls\-new\-spawn\-dual\-index\-entry}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines terms provided with \atentry{spawndualindexentry}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewspawndualindexentrysecondary,
  name={\csfmt{bib\-gls\-new\-spawn\-dual\-index\-entry\-secondary}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines secondary terms provided with \atentry{spawndualindexentry}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewspawnedindex,
  name={\csfmt{bib\-gls\-new\-spawned\-index}},
  user1={\margm{label}\margm{options}},
  description={defines terms spawned from \atentry{progenitor}
   or \atentry{spawnindex}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewspawnindexplural,
  name={\csfmt{bib\-gls\-new\-spawn\-index\-plural}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines terms provided with \atentry{spawnindexplural}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewspawnedindexplural,
  name={\csfmt{bib\-gls\-new\-spawned\-index\-plural}},
  user1={\margm{label}\margm{options}\margm{name}},
  description={defines terms spawned from \atentry{spawnindexplural}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewspawnentry,
  name={\csfmt{bib\-gls\-new\-spawn\-entry}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines terms provided with \atentry{spawnentry}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewspawnedentry,
  name={\csfmt{bib\-gls\-new\-spawned\-entry}},
  user1={\margm{label}\margm{options}},
  description={defines terms spawned from \atentry{spawnentry}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewspawnabbreviation,
  name={\csfmt{bib\-gls\-new\-spawn\-abbreviation}},
  user1={\margm{label}\margm{options}\margm{short}\margm{long}},
  description={defines terms provided with \atentry{spawnabbreviation}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewspawnedabbreviation,
  name={\csfmt{bib\-gls\-new\-spawned\-abbreviation}},
  user1={\margm{label}\margm{options}\margm{short}\margm{long}},
  description={defines terms spawned from \atentry{spawnabbreviation}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewspawnacronym,
  name={\csfmt{bib\-gls\-new\-spawn\-acronym}},
  user1={\margm{label}\margm{options}\margm{short}\margm{long}},
  description={defines terms provided with \atentry{spawnacronym}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewspawnedacronym,
  name={\csfmt{bib\-gls\-new\-spawned\-acronym}},
  user1={\margm{label}\margm{options}\margm{short}\margm{long}},
  description={defines terms spawned from \atentry{spawnacronym}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewspawnsymbol,
  name={\csfmt{bib\-gls\-new\-spawn\-symbol}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines terms provided with \atentry{spawnsymbol}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewspawnedsymbol,
  name={\csfmt{bib\-gls\-new\-spawned\-symbol}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines terms spawned from \atentry{spawnsymbol}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewspawnnumber,
  name={\csfmt{bib\-gls\-new\-spawn\-number}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines terms provided with \atentry{spawnnumber}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsnewspawnednumber,
  name={\csfmt{bib\-gls\-new\-spawned\-number}},
  user1={\margm{label}\margm{options}\margm{name}\margm{description}},
  description={defines terms spawned from \atentry{spawnnumber}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsdefcompoundset,
  name={\csfmt{bib\-gls\-def\-compound\-set}},
  user1={\margm{options}\margm{label}\margm{main}\margm{elements}},
  description={defines a \gls{ext1.compoundentry} provided with \atentry{compoundset}},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglscopytoglossary,
  name={\csfmt{bib\-gls\-copy\-to\-glossary}},
  user1={\margm{entry-label}\margm{glossary-type}},
  description={copies the entry identified by \meta{entry-label} to
  the glossary identified by \meta{glossary-type} after the entry is
  defined (if the \csopt{copy-to-glossary} option is set)},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@bibglscommand{bibglsuselongfont,
  name={\csfmt{bib\-gls\-use\-long\-font}},
  user1={\margm{text}\margm{category}},
  description={ensures that the given text is formatted according to
    the given category's long format},
  note={\bibgls},
  topics={definingterms},
  category={command}
}

@glscommand{glsuselongfont,
  name={\csfmt{gls\-use\-long\-font}},
  user1={\margm{text}\margm{category}},
  description={applies the formatting command used for the long
   form for the abbreviation style associated with the given category},
  note={\styfmt{glossaries-extra} v1.21+},
  topics={formattingcommands,abbreviationcommands},
  category={command}
}

@glscommand{ifglsxtrinsertinside,
  name={\csfmt{if\-gls\-xtr\-insert\-inside}},
  description={switch that determines whether or not inserted text
  (provided in the final optional argument of commands like \cs{gls})
  is inside or outside of the font changing commands in the predefined
  abbreviation styles. The default is \optfmt{false}},
  topics={abbreviationcommands,conditional},
  note={\styfmt{glossaries-extra} v1.02+},
  category={command}
}

@glscommand{glsxtrinsertinsidefalse,
  name={\csfmt{gls\-xtr\-insert\-inside\-false}},
  description={sets the \cs{ifglsxtrinsertinside} switch to \optfmt{false}},
  topics={abbreviationcommands,conditional},
  note={\styfmt{glossaries-extra} v1.02+},
  category={command}
}

@glscommand{glsxtrinsertinsidetrue,
  name={\csfmt{gls\-xtr\-insert\-inside\-true}},
  description={sets the \cs{ifglsxtrinsertinside} switch to \optfmt{true}},
  topics={abbreviationcommands,conditional},
  note={\styfmt{glossaries-extra} v1.02+},
  category={command}
}

@glscommand{glsxtrfullsep,
  name={\csfmt{gls\-xtr\-full\-sep}},
  user1={\margm{label}},
  description={the separator used in the full format for the
  parenthetical abbreviation styles or for inline parenthetical
  styles. This just does a space by default},
  topics={formattingcommands,abbreviationcommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{GlsXtrAutoAddOnFormat,
  name={\csfmt{GlsXtrAutoAddOnFormat}},
  user1={\oargm{label}\margm{format list}\margm{glsadd options}},
  description={makes commands like \cs{gls} and \cs{glslink}
   (but not \cs{glsadd}) automatically insert \cs{glsadd}\oargm{glsadd
   options}\margm{label} if the format (supplied in the optional
   argument of the invoking \cs{gls}, \cs{glslink} etc) matches any in the given
   comma-separated elements of \meta{format list}. The format isn't automatically
   applied to the \cs{glsadd} options},
  note={\styfmt{glossaries-extra} v1.37+},
  topics={hooks,indexing},
  category={command}
}

@bibglscommand{bibglsuseabbrvfont,
  name={\csfmt{bib\-gls\-use\-abbrv\-font}},
  user1={\margm{text}\margm{category}},
  description={ensures that the given text is formatted according to
    the given category's short format},
  note={\bibgls},
  topics={formattingcommands,abbreviationcommands},
  category={command}
}

@glscommand{glsuseabbrvfont,
  name={\csfmt{gls\-use\-abbrv\-font}},
  user1={\margm{text}\margm{category}},
  description={applies the formatting command used for the short
   form for the abbreviation style associated with the given category},
  note={\styfmt{glossaries-extra} v1.21+},
  topics={formattingcommands,abbreviationcommands},
  category={command}
}

@bibglscommand{bibglsseesep,
  name={\csfmt{bib\-gls\-see\-sep}},
  user1={},
  description={separator between \field{see} 
   cross-references and location list},
  note={\bibgls},
  topics={glossarystylecommands,separatorcommands,crossrefcommands,loclistcommands},
  category={command}
}

@bibglscommand{bibglsaliassep,
  name={\csfmt{bib\-gls\-alias\-sep}},
  user1={},
  description={separator between \field{alias} 
   cross-reference and location list},
  note={\bibgls},
  topics={glossarystylecommands,separatorcommands,crossrefcommands,loclistcommands},
  category={command}
}

@bibglscommand{bibglsseealsosep,
  name={\csfmt{bib\-gls\-see\-also\-sep}},
  user1={},
  description={separator between \field{seealso} 
   cross-references and location list},
  note={\bibgls},
  topics={glossarystylecommands,separatorcommands,crossrefcommands,loclistcommands},
  category={command}
}

@bibglscommand{bibglscompact,
  name={\csfmt{bib\-gls\-compact}},
  user1={\margm{pattern}\margm{part1}\margm{part2}},
  description={compaction used on the end range location},
  note={\bibgls},
  topics={glossarystylecommands,loclistcommands},
  category={command}
}

@bibglscommand{bibglspassim,
  name={\csfmt{bib\-gls\-passim}},
  user1={},
  description={passim range suffix},
  note={\bibgls},
  topics={glossarystylecommands,loclistcommands},
  category={command}
}

@bibglscommand{bibglspassimname,
  name={\csfmt{bib\-gls\-passim\-name}},
  user1={},
  description={name used by passim range suffix},
  note={\bibgls},
  topics={glossarystylecommands,loclistcommands,fixedtextcommands},
  category={command}
}

@bibglscommand{bibglsusesee,
  name={\csfmt{bib\-gls\-use\-see}},
  user1={\margm{label}},
  description={display \field{see} cross-reference list for given entry},
  note={\bibgls},
  topics={glossarystylecommands,crossrefcommands,loclistcommands,fieldrefcommands},
  category={command}
}

@bibglscommand{bibglsusealias,
  name={\csfmt{bib\-gls\-use\-alias}},
  user1={\margm{label}},
  description={display the \field{alias} cross-reference for given entry},
  topics={glossarystylecommands,crossrefcommands,loclistcommands,fieldrefcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsuseseealso,
  name={\csfmt{bib\-gls\-use\-see\-also}},
  user1={\margm{label}},
  description={display the \field{seealso} cross-reference list for given entry},
  topics={glossarystylecommands,crossrefcommands,loclistcommands,fieldrefcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsdelimN,
  name={\csfmt{bib\-gls\-delimN}},
  user1={},
  description={separator for individual locations (except last)},
  seealso={bibglslastDelimN},
  note={\bibgls},
  topics={glossarystylecommands,loclistcommands,separatorcommands},
  category={command}
}

@bibglscommand{bibglslastDelimN,
  name={\csfmt{bib\-gls\-last\-DelimN}},
  user1={},
  description={separator before the last location (where there is
    more than one location)},
  seealso={bibglsdelimN},
  topics={glossarystylecommands,loclistcommands,separatorcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsrange,
  name={\csfmt{bib\-gls\-range}},
  user1={\marg{\meta{start}\cs{delimR} \meta{end}}},
  description={Explicit range format},
  note={\bibgls},
  topics={glossarystylecommands,loclistcommands},
  category={command}
}

@bibglscommand{bibglsinterloper,
  name={\csfmt{bib\-gls\-inter\-loper}},
  user1={\margm{location}},
  description={interloper location format},
  note={\bibgls},
  topics={glossarystylecommands,loclistcommands},
  category={command}
}

@bibglscommand{bibglspostlocprefix,
  name={\csfmt{bib\-gls\-post\-loc\-prefix}},
  user1={},
  description={location list post prefix},
  note={\bibgls},
  topics={glossarystylecommands,loclistcommands},
  category={command}
}

@bibglscommand{bibglslocprefix,
  name={\csfmt{bib\-gls\-loc\-prefix}},
  user1={\margm{n}},
  description={location list prefix},
  topics={glossarystylecommands,loclistcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsprimary,
  name={\csfmt{bib\-gls\-primary}},
  user1={\margm{n}\margm{locations}},
  description={location list encapsulator used in the
\field{primarylocations} field},
  topics={loclistcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglspagename,
  name={\csfmt{bib\-gls\-page\-name}},
  user1={},
  description={name used for single page},
  topics={glossarystylecommands,loclistcommands,fixedtextcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglspagesname,
  name={\csfmt{bib\-gls\-pages\-name}},
  user1={},
  description={name used for multiple pages},
  topics={glossarystylecommands,loclistcommands,fixedtextcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglslocsuffix,
  name={\csfmt{bib\-gls\-loc\-suffix}},
  user1={\margm{n}},
  description={location list suffix},
  topics={glossarystylecommands,loclistcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglshyperlink,
  name={\csfmt{bib\-gls\-hyper\-link}},
  user1={\margm{text}\margm{label}},
  description={displays \meta{text} with a hyperlink to the entry
   given by \meta{label}, if supported},
  topics={linkcommands,fieldrefcommands},
  note={\bibgls\texparserdefnote},
  category={command}
}

@bibglscommand{bibglssettotalrecordcount,
  name={\csfmt{bib\-gls\-set\-total\-record\-count}},
  user1={\margm{entry-label}\margm{value}},
  description={sets the total record count for the given entry},
  topics={assigncommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetrecordcount,
  name={\csfmt{bib\-gls\-set\-record\-count}},
  user1={\margm{entry-label}\margm{counter}\margm{value}},
  description={sets the \meta{counter} record count for the given entry},
  topics={assigncommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetlocationrecordcount,
  name={\csfmt{bib\-gls\-set\-location\-record\-count}},
  user1={\margm{entry-label}\margm{counter}\margm{location}\margm{value}},
  description={sets the location record count for the given entry},
  topics={assigncommands},
  note={\bibgls},
  category={command}
}

@glscommand{glsxtrdetoklocation,
  name={\csfmt{gls\-xtr\-de\-tok\-location}},
  user1={\margm{location}},
  description={may be used to detokenize problematic locations, but
just does its argument by default},
  note={\styfmt{glossaries-extra} v1.21+},
  topics={assigncommands},
  category={command}
}

@bibglscommand{bibglslocationgroup,
  name={\csfmt{bib\-gls\-location\-group}},
  user1={\margm{n}\margm{counter}\margm{list}},
  description={location group encapsulator},
  topics={glossarystylecommands,loclistcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglslocationgroupsep,
  name={\csfmt{bib\-gls\-location\-group\-sep}},
  user1={},
  description={location group separator},
  topics={glossarystylecommands,loclistcommands,separatorcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsprimarylocationgroup,
  name={\csfmt{bib\-gls\-primary\-location\-group}},
  user1={\margm{n}\margm{counter}\margm{list}},
  description={primary location group encapsulator},
  topics={glossarystylecommands,loclistcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsprimarylocationgroupsep,
  name={\csfmt{bib\-gls\-primary\-location\-group\-sep}},
  user1={},
  description={primary location group separator},
  topics={glossarystylecommands,loclistcommands,separatorcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssupplemental,
  name={\csfmt{bib\-gls\-supple\-mental}},
  user1={\margm{n}\margm{list}},
  description={supplemental list encapsulator},
  note={\bibgls},
  topics={glossarystylecommands,loclistcommands,supplementalrefs},
  category={command}
}

@bibglscommand{bibglssupplementalsep,
  name={\csfmt{bib\-gls\-supple\-mental\-sep}},
  user1={},
  description={separator between main and supplementary locations},
  topics={glossarystylecommands,loclistcommands,supplementalrefs,separatorcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssupplementalsublist,
  name={\csfmt{bib\-gls\-supple\-mental\-sub\-list}},
  user1={\margm{n}\margm{external document}\margm{list}},
  description={supplemental sub-list encapsulator},
  topics={glossarystylecommands,loclistcommands,supplementalrefs},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssupplementalsubsep,
  name={\csfmt{bib\-gls\-supple\-mental\-sub\-sep}},
  user1={},
  description={separator between supplementary sub-lists},
  topics={glossarystylecommands,loclistcommands,supplementalrefs,separatorcommands},
  note={\bibgls},
  category={command}
}

@mainglscommand{glsgroupheading,
  name={\csfmt{gls\-group\-heading}},
  user1={\margm{label}},
  description={formats the heading for the group identified by the
given label},
  topics={glossarystylecommands,formattingcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@mainglscommand{glssubgroupheading,
  name={\csfmt{gls\-sub\-group\-heading}},
  user1={\margm{previous level}\margm{level}\margm{parent-label}\margm{group-label}},
  description={formats the heading for the \idx{sub-group} identified by the
given label},
  topics={glossarystylecommands,formattingcommands},
  note={\styfmt{glossaries-extra} v1.49+},
  category={command}
}

@bibglscommand{bibglssetlastgrouptitle,
  name={\csfmt{bib\-gls\-set\-last\-group\-title}},
  user1={\margm{cs}\margm{specs}},
  description={sets the last group title},
  topics={glossarystylecommands,assigncommands,groupcommands},
  note={\bibgls},
  category={command}
}

@mainglscommand{glsxtrsetgrouptitle,
  name={\csfmt{gls\-xtr\-set\-group\-title}},
  user1={\margm{group label}\margm{group title}},
  description={globally sets the title for the group identified by the given label},
  topics={glossarystylecommands,assigncommands,groupcommands},
  note={\styfmt{glossaries-extra} v1.14+},
  category={command}
}

@glscommand{glsxtrlocalsetgrouptitle,
  name={\csfmt{gls\-xtr\-local\-set\-group\-title}},
  user1={\margm{group label}\margm{group title}},
  description={locally sets the title for the group identified by the given label},
  topics={glossarystylecommands,assigncommands,groupcommands},
  note={\styfmt{glossaries-extra} v1.24+},
  category={command}
}

@bibglscommand{bibglsgrouplevel,
  name={\csfmt{bib\-gls\-group\-level}},
  user1={\margm{label}{n}},
  description={expands to the \idx{sub-group} label for hierarchical level \meta{n}
  where \meta{label} is the label that would normally be applied to
  level~0},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglshiersubgrouptitle,
  name={\csfmt{bib\-gls\-hier\-sub\-group\-title}},
  user1={\marg{level}\marg{parent}\marg{title}},
  description={formats the title for a \idx{hiergroup} where the
   normal non-hierarchical title would be \meta{title}},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetlettergrouptitle,
  name={\csfmt{bib\-gls\-set\-letter\-group\-title}},
  user1={\marg{\margm{title}\margm{letter}\margm{id}\margm{type}}},
  description={sets the letter group title},
  topics={glossarystylecommands,assigncommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglslettergroup,
  name={\csfmt{bib\-gls\-letter\-group}},
  user1={\margm{title}\margm{letter}\margm{id}\margm{type}},
  description={expands to the letter group label},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglslettergrouptitle,
  name={\csfmt{bib\-gls\-letter\-group\-title}},
  user1={\margm{title}\margm{letter}\margm{id}\margm{type}},
  description={expands to the letter group title},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetlettergrouptitlehier,
  name={\csfmt{bib\-gls\-set\-letter\-group\-title\-hier}},
  user1={\marg{\margm{title}\margm{letter}\margm{id}\margm{type}\margm{parent}\margm{level}}},
  description={sets the hierarchical letter group title},
  topics={glossarystylecommands,assigncommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglslettergrouphier,
  name={\csfmt{bib\-gls\-letter\-group\-hier}},
  user1={\margm{title}\margm{letter}\margm{id}\margm{type}\margm{parent}\margm{level}},
  description={expands to the hierarchical letter group label},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglslettergrouptitlehier,
  name={\csfmt{bib\-gls\-letter\-group\-title\-hier}},
  user1={\margm{title}\margm{letter}\margm{id}\margm{type}\margm{parent}\margm{level}},
  description={expands to the hierarchical letter group title},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetothergrouptitle,
  name={\csfmt{bib\-gls\-set\-other\-group\-title}},
  user1={\marg{\margm{character}\margm{id}\margm{type}}},
  description={sets the non-letter group title},
  topics={glossarystylecommands,assigncommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsothergroup,
  name={\csfmt{bib\-gls\-other\-group}},
  user1={\margm{character}\margm{id}\margm{type}},
  description={expands to the non-letter group label},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsothergrouptitle,
  name={\csfmt{bib\-gls\-other\-group\-title}},
  user1={\margm{character}\margm{id}\margm{type}},
  description={expands to the non-letter group title},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetothergrouptitlehier,
  name={\csfmt{bib\-gls\-set\-other\-group\-title\-hier}},
  user1={\marg{\margm{character}\margm{id}\margm{type}\margm{parent}\margm{level}}},
  description={sets the hierarchical non-letter group title},
  topics={glossarystylecommands,assigncommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsothergrouphier,
  name={\csfmt{bib\-gls\-other\-group\-hier}},
  user1={\margm{character}\margm{id}\margm{type}\margm{parent}\margm{level}},
  description={expands to the hierarchical non-letter group label},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsothergrouptitlehier,
  name={\csfmt{bib\-gls\-other\-group\-title\-hier}},
  user1={\margm{character}\margm{id}\margm{type}\margm{parent}\margm{level}},
  description={expands to the hierarchical non-letter group title},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetemptygrouptitle,
  name={\csfmt{bib\-gls\-set\-empty\-group\-title}},
  user1={\marg{\margm{type}}},
  description={sets the empty group title},
  topics={glossarystylecommands,assigncommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsemptygroup,
  name={\csfmt{bib\-gls\-empty\-group}},
  user1={\margm{type}},
  description={expands to the empty group label},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsemptygrouptitle,
  name={\csfmt{bib\-gls\-empty\-group\-title}},
  user1={\margm{type}},
  description={expands to the empty group title},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetemptygrouptitlehier,
  name={\csfmt{bib\-gls\-set\-empty\-group\-title\-hier}},
  user1={\marg{\margm{type}\margm{parent}\margm{level}}},
  description={sets the hierarchical empty group title},
  topics={glossarystylecommands,assigncommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsemptygrouphier,
  name={\csfmt{bib\-gls\-empty\-group\-hier}},
  user1={\margm{type}\margm{parent}\margm{level}},
  description={expands to the hierarchical empty group label},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsemptygrouptitlehier,
  name={\csfmt{bib\-gls\-empty\-group\-title\-hier}},
  user1={\margm{type}\margm{parent}\margm{level}},
  description={expands to the hierarchical empty group title},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetunicodegrouptitle,
  name={\csfmt{bib\-gls\-set\-unicode\-group\-title}},
  user1={\marg{\margm{label}\margm{character}\margm{id}\margm{type}}},
  description={sets the Unicode script, category or character code
group title},
  topics={glossarystylecommands,assigncommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsunicodegroup,
  name={\csfmt{bib\-gls\-unicode\-group}},
  user1={\margm{label}\margm{character}\margm{id}\margm{type}},
  description={expands to the Unicode script or category or
character code group label},
  note={\bibgls},
  topics={glossarystylecommands,groupcommands},
  category={command}
}

@bibglscommand{bibglsunicodegrouptitle,
  name={\csfmt{bib\-gls\-unicode\-group\-title}},
  user1={\margm{label}\margm{character}\margm{id}\margm{type}},
  description={expands to the Unicode script or category or
character code group label},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetunicodegrouptitlehier,
  name={\csfmt{bib\-gls\-set\-unicode\-group\-title\-hier}},
  user1={\marg{\margm{label}\margm{character}\margm{id}\margm{type}\margm{parent}\margm{level}}},
  description={sets the Unicode script, category or character code
 hierarchical group title},
  topics={glossarystylecommands,assigncommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsunicodegrouphier,
  name={\csfmt{bib\-gls\-unicode\-group\-hier}},
  user1={\margm{label}\margm{character}\margm{id}\margm{type}\margm{parent}\margm{level}},
  description={expands to the Unicode script or category or
character code hierarchical group label},
  note={\bibgls},
  topics={glossarystylecommands,groupcommands},
  category={command}
}

@bibglscommand{bibglsunicodegrouptitlehier,
  name={\csfmt{bib\-gls\-unicode\-group\-title\-hier}},
  user1={\margm{label}\margm{character}\margm{id}\margm{type}\margm{parent}\margm{level}},
  description={expands to the Unicode script or category or
character code hierarchical group label},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetnumbergrouptitle,
  name={\csfmt{bib\-gls\-set\-number\-group\-title}},
  user1={\marg{\margm{value}\margm{id}\margm{type}}},
  description={sets the number group title},
  topics={glossarystylecommands,assigncommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsnumbergroup,
  name={\csfmt{bib\-gls\-number\-group}},
  user1={\margm{value}\margm{id}\margm{type}},
  description={expands to the number group label},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsnumbergrouptitle,
  name={\csfmt{bib\-gls\-number\-group\-title}},
  user1={\margm{value}\margm{id}\margm{type}},
  description={expands to the number group title},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetnumbergrouptitlehier,
  name={\csfmt{bib\-gls\-set\-number\-group\-title\-hier}},
  user1={\marg{\margm{value}\margm{id}\margm{type}\margm{parent}\margm{level}}},
  description={sets the hierarchical number group title},
  topics={glossarystylecommands,assigncommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsnumbergrouphier,
  name={\csfmt{bib\-gls\-number\-group\-hier}},
  user1={\margm{value}\margm{id}\margm{type}\margm{parent}\margm{level}},
  description={expands to the hierarchical number group label},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsnumbergrouptitlehier,
  name={\csfmt{bib\-gls\-number\-group\-title\-hier}},
  user1={\margm{value}\margm{id}\margm{type}\margm{parent}\margm{level}},
  description={expands to the hierarchical number group title},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetmergedgrouptitle,
  name={\csfmt{bib\-gls\-set\-merged\-group\-title}},
  user1={\marg{\margm{id}\margm{type}\margm{n}\margm{g$_1$}\marg{\meta{g$_2$}\ldots\marg{g$_{n-1}$}}\margm{g$_n$}}},
  description={sets the merged group title},
  topics={glossarystylecommands,assigncommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsmergedgroup,
  name={\csfmt{bib\-gls\-merged\-group}},
  user1={\margm{id}\margm{type}\margm{n}\margm{g$_1$}\marg{\meta{g$_2$}\ldots\marg{g$_{n-1}$}}\margm{g$_n$}},
  description={expands to the merged group label},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsmergedgrouptitle,
  name={\csfmt{bib\-gls\-merged\-group\-title}},
  user1={\margm{id}\margm{type}\margm{n}\margm{g$_1$}\marg{\meta{g$_2$}\ldots\marg{g$_{n-1}$}}\margm{g$_n$}},
  description={expands to the merged group title},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsmergedgroupfmt,
  name={\csfmt{bib\-gls\-merged\-group\-fmt}},
  user1={\margm{n}\margm{g$_1$}\marg{\meta{g$_2$}\ldots\marg{g$_{n-1}$}}\margm{g$_n$}},
  description={used by \gls{bibglsmergedgrouptitle} and
    \gls{bibglsmergedgrouphierfmt} to format the title},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsmergedgrouphierfmt,
  name={\csfmt{bib\-gls\-merged\-group\-hier\-fmt}},
  user1={\margm{n}\margm{g$_1$}\marg{\meta{g$_2$}\ldots\marg{g$_{n-1}$}}\margm{g$_n$}},
  description={used by \gls{bibglsmergedgrouptitlehier} to format the title},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetmergedgrouptitlehier,
  name={\csfmt{bib\-gls\-set\-merged\-group\-title\-hier}},
  user1={\marg{\margm{id}\margm{type}\margm{n}\margm{g$_1$}\marg{\meta{g$_2$}\ldots\marg{g$_{n-1}$}}\margm{g$_n$}\margm{parent}\margm{level}}},
  description={sets the merged  hierarchicalgroup title},
  topics={glossarystylecommands,assigncommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsmergedgrouphier,
  name={\csfmt{bib\-gls\-merged\-group\-hier}},
  user1={\margm{id}\margm{type}\margm{n}\margm{g$_1$}\marg{\meta{g$_2$}\ldots\marg{g$_{n-1}$}}\margm{g$_n$}\margm{parent}\margm{level}},
  description={expands to the merged hierarchical group label},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsmergedgrouptitlehier,
  name={\csfmt{bib\-gls\-merged\-group\-title\-hier}},
  user1={\margm{id}\margm{type}\margm{n}\margm{g$_1$}\marg{\meta{g$_2$}\ldots\marg{g$_{n-1}$}}\margm{g$_n$}\margm{parent}\margm{level}},
  description={expands to the merged hierarchical group title},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetdatetimegrouptitle,
  name={\csfmt{bib\-gls\-set\-date\-time\-group\-title}},
  user1={\marg{\margm{YYYY}\margm{MM}\margm{DD}\margm{hh}\margm{mm}\margm{ss}\margm{zone}\margm{title}\margm{group\dhyphen id}\margm{type}}},
  description={sets the date-time group title},
  topics={glossarystylecommands,assigncommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsdatetimegroup,
  name={\csfmt{bib\-gls\-date\-time\-group}},
  user1={\margm{YYYY}\margm{MM}\margm{DD}\margm{hh}\margm{mm}\margm{ss}\margm{zone}\margm{title}\margm{group\dhyphen id}\margm{type}},
  description={expands to the date-time group label},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsdatetimegrouptitle,
  name={\csfmt{bib\-gls\-date\-time\-group\-title}},
  user1={\margm{YYYY}\margm{MM}\margm{DD}\margm{hh}\margm{mm}\margm{ss}\margm{zone}\margm{title}\margm{group\dhyphen id}\margm{type}},
  description={expands to the date-time group title},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetdatetimegrouptitlehier,
  name={\csfmt{bib\-gls\-set\-date\-time\-group\-title\-hier}},
  user1={\marg{\margm{YYYY}\margm{MM}\margm{DD}\margm{hh}\margm{mm}\margm{ss}\margm{zone}\margm{title}\margm{group\dhyphen id}\margm{type}\margm{parent}\margm{level}}},
  description={sets the hierarchical date-time group title},
  topics={glossarystylecommands,assigncommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsdatetimegrouphier,
  name={\csfmt{bib\-gls\-date\-time\-group\-hier}},
  user1={\margm{YYYY}\margm{MM}\margm{DD}\margm{hh}\margm{mm}\margm{ss}\margm{zone}\margm{title}\margm{group\dhyphen id}\margm{type}\margm{parent}\margm{level}},
  description={expands to the hierarchical date-time group label},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsdatetimegrouptitlehier,
  name={\csfmt{bib\-gls\-date\-time\-group\-title\-hier}},
  user1={\margm{YYYY}\margm{MM}\margm{DD}\margm{hh}\margm{mm}\margm{ss}\margm{zone}\margm{title}\margm{group\dhyphen id}\margm{type}\margm{parent}\margm{level}},
  description={expands to the hierarchical date-time group title},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsdatetimegrouphierfinalargs,
  name={\csfmt{bib\-gls\-date\-time\-group\-hier\-final\-args}},
  user1={\margm{type}\margm{parent}\margm{level}},
  description={used as a supporting command for
\gls{bibglsdatetimegrouphier} to pick up the final arguments},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsdatetimegrouptitlehierfinalargs,
  name={\csfmt{bib\-gls\-date\-time\-group\-title\-hier\-final\-args}},
  user1={\marg{date}\margm{type}\margm{parent}\margm{level}},
  description={used as a supporting command for
\gls{bibglsdatetimegrouptitlehier} to pick up the final arguments},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetdategrouptitle,
  name={\csfmt{bib\-gls\-set\-date\-group\-title}},
  user1={\marg{\margm{YYYY}\margm{MM}\margm{DD}\margm{G}\margm{title}\margm{group\dhyphen id}\margm{type}}},
  description={sets the date (no time) group title},
  topics={glossarystylecommands,assigncommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsdategroup,
  name={\csfmt{bib\-gls\-date\-group}},
  user1={\margm{YYYY}\margm{MM}\margm{DD}\margm{G}\margm{title}\margm{group\dhyphen id}\margm{type}},
  description={expands to the date group label},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsdategrouptitle,
  name={\csfmt{bib\-gls\-date\-group\-title}},
  user1={\margm{YYYY}\margm{MM}\margm{DD}\margm{G}\margm{title}\margm{group\dhyphen id}\margm{type}},
  description={expands to the date group title},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetdategrouptitlehier,
  name={\csfmt{bib\-gls\-set\-date\-group\-title\-hier}},
  user1={\marg{\margm{YYYY}\margm{MM}\margm{DD}\margm{G}\margm{title}\margm{group\dhyphen id}\margm{type}\margm{parent}\margm{level}}},
  description={sets the hierarchical date (no time) group title},
  topics={glossarystylecommands,assigncommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsdategrouphier,
  name={\csfmt{bib\-gls\-date\-group\-hier}},
  user1={\margm{YYYY}\margm{MM}\margm{DD}\margm{G}\margm{title}\margm{group\dhyphen id}\margm{type}\margm{parent}\margm{level}},
  description={expands to the hierarchical date group label},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsdategrouptitlehier,
  name={\csfmt{bib\-gls\-date\-group\-title\-hier}},
  user1={\margm{YYYY}\margm{MM}\margm{DD}\margm{G}\margm{title}\margm{group\dhyphen id}\margm{type}\margm{parent}\margm{level}},
  description={expands to the hierarchical date group title},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssettimegrouptitle,
  name={\csfmt{bib\-gls\-set\-time\-group\-title}},
  user1={\marg{\margm{hh}\margm{mm}\margm{ss}\margm{zone}\margm{title}\margm{group\dhyphen id}\margm{type}}},
  description={sets the time (no date) group title},
  topics={glossarystylecommands,assigncommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglstimegroup,
  name={\csfmt{bib\-gls\-time\-group}},
  user1={\margm{hh}\margm{mm}\margm{ss}\margm{zone}\margm{title}\margm{group\dhyphen id}\margm{type}},
  description={expands to the time group label},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglstimegrouptitle,
  name={\csfmt{bib\-gls\-time\-group\-title}},
  user1={\margm{hh}\margm{mm}\margm{ss}\margm{zone}\margm{title}\margm{group\dhyphen id}\margm{type}},
  description={expands to the time group title},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssettimegrouptitlehier,
  name={\csfmt{bib\-gls\-set\-time\-group\-title\-hier}},
  user1={\marg{\margm{hh}\margm{mm}\margm{ss}\margm{zone}\margm{title}\margm{group\dhyphen id}\margm{type}\margm{parent}\margm{level}}},
  description={sets the hierarchical time (no date) group title},
  topics={glossarystylecommands,assigncommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglstimegrouphier,
  name={\csfmt{bib\-gls\-time\-group\-hier}},
  user1={\margm{hh}\margm{mm}\margm{ss}\margm{zone}\margm{title}\margm{group\dhyphen id}\margm{type}\margm{parent}\margm{level}},
  description={expands to the hierarchical time group label},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglstimegrouptitlehier,
  name={\csfmt{bib\-gls\-time\-group\-title\-hier}},
  user1={\margm{hh}\margm{mm}\margm{ss}\margm{zone}\margm{title}\margm{group\dhyphen id}\margm{type}\margm{parent}\margm{level}},
  description={expands to the hierarchical time group title},
  topics={glossarystylecommands,groupcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglshypergroup,
  name={\csfmt{bib\-gls\-hyper\-group}},
  user1={\margm{type}\margm{group\dhyphen id}},
  description={creates group navigation information},
  topics={glossarystylecommands,groupcommands,linkcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsflattenedhomograph,
  name={\csfmt{bib\-gls\-flattened\-homograph}},
  user1={\margm{name}\margm{parent label}},
  description={expands to the flattened entry's new name},
  topics={glossarystylecommands,formattingcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsflattenedchildpresort,
  name={\csfmt{bib\-gls\-flattened\-child\-pre\-sort}},
  user1={\margm{child name}\margm{parent name}},
  description={expands to the pre-sort flattened child entry's new name},
  topics={glossarystylecommands,formattingcommands},
  note={\bibgls\texparserdefnote},
  category={command}
}

@bibglscommand{bibglsflattenedchildpostsort,
  name={\csfmt{bib\-gls\-flattened\-child\-post\-sort}},
  user1={\margm{parent name}\margm{child name}},
  description={expands to the post-sort flattened child entry's new
name},
  topics={glossarystylecommands,formattingcommands},
  note={\bibgls\texparserdefnote},
  category={command}
}

@bibglscommand{bibglssetwidest,
  name={\csfmt{bib\-gls\-set\-widest}},
  user1={\margm{level}\margm{name}},
  description={sets the widest name},
  topics={glossarystylecommands,assigncommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetwidestfortype,
  name={\csfmt{bib\-gls\-set\-widest\-for\-type}},
  user1={\margm{type}\margm{level}\margm{name}},
  description={sets the widest name for the given glossary type},
  topics={glossarystylecommands,assigncommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetwidesttoplevelfallback,
  name={\csfmt{bib\-gls\-set\-widest\-top\-level\-fallback}},
  user1={\margm{glossary list}},
  description={fallback used instead of \csref{bibglssetwidest}
   in the event that \bibgls\ can't determine the widest name
   where there are only top level entries,
   where \meta{glossary list} is a comma-separated list
   of glossary labels},
  topics={glossarystylecommands,assigncommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetwidestfallback,
  name={\csfmt{bib\-gls\-set\-widest\-fallback}},
  user1={\margm{glossary list}},
  description={fallback used instead of \csref{bibglssetwidest}
   in the event that \bibgls\ can't determine the widest name,
   where \meta{glossary list} is a comma-separated list
   of glossary labels},
  topics={glossarystylecommands,assigncommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetwidestfortypefallback,
  name={\csfmt{bib\-gls\-set\-widest\-for\-type\-fallback}},
  user1={\margm{type}},
  description={fallback used instead of \csref{bibglssetwidestfortype}
   in the event that \bibgls\ can't determine the widest name},
  topics={glossarystylecommands,assigncommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglssetwidesttoplevelfortypefallback,
  name={\csfmt{bib\-gls\-set\-widest\-top\-level\-for\-type\-fallback}},
  user1={\margm{type}},
  description={fallback used instead of \csref{bibglssetwidestfortype}
   in the event that \bibgls\ can't determine the widest name
   where there are only top-level entries},
  topics={glossarystylecommands,assigncommands},
  note={\bibgls},
  category={command}
}


@bibglscommand{bibglscontributorlist,
  name={\csfmt{bib\-gls\-contributor\-list}},
  user1={\margm{list}\margm{number}},
  description={used to markup a list of names from a field 
   that was converted from \BibTeX's contributor syntax},
  topics={formattingcommands},
  note={\bibgls\texparserdefnote},
  category={command}
}

@bibglscommand{bibglscontributor,
  name={\csfmt{bib\-gls\-contributor}},
  user1={\margm{forenames}\margm{von-part}\margm{surname}\margm{suffix}},
  description={used to markup a contributor's name that was converted from
   \BibTeX's contributor syntax},
  topics={formattingcommands},
  note={\bibgls\texparserdefnote},
  category={command}
}

@bibglscommand{bibglsdate,
  name={\csfmt{bib\-gls\-date}},
  user1={\margm{year}\margm{month}\margm{day-of-month}\margm{day-of-week}\margm{day-of-year}\margm{era}\margm{original}},
  description={used to markup a date converted from a field value},
  topics={formattingcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsdatetime,
  name={\csfmt{bib\-gls\-date\-time}},
  user1={\margm{year}\margm{month}\margm{day-of-month}\margm{day-of-week}\margm{day-of-year}\margm{era}\margm{hour}\margm{minute}\margm{second}\margm{millisec}\margm{dst}\margm{zone}\margm{original}},
  description={used to markup a date-time instance converted from a field value},
  topics={formattingcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsdatetimeremainder,
  name={\csfmt{bib\-gls\-date\-time\-remainder}},
  user1={\margm{millisec}\margm{dst}\margm{zone}\margm{original}},
  description={used internally to pick up the final four arguments of
   \csref{bibglsdatetime}},
  topics={formattingcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglstime,
  name={\csfmt{bib\-gls\-time}},
  user1={\margm{hour}\margm{minute}\margm{second}\margm{millisec}\margm{dst}\margm{zone}\margm{original}},
  description={used to markup a time converted from a field value},
  topics={formattingcommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglshashchar,
  name={\csfmt{bib\-gls\-hash\-char}},
  user1={},
  description={expands to a literal hash character \idx{hashchar}},
  topics={charcommands},
  note={\bibgls\texparserdefnote},
  category={command}
}

@bibglscommand{bibglsaposchar,
  name={\csfmt{bib\-gls\-apos\-char}},
  user1={},
  description={expands to a single-quote (\idx{aposchar}) character},
  topics={charcommands},
  note={\bibgls\texparserdefnote},
  category={command}
}

@bibglscommand{bibglsdoublequotechar,
  name={\csfmt{bib\-gls\-double\-quote\-char}},
  user1={},
  description={expands to a double-quote (\idx{doublequotechar}) character},
  topics={charcommands},
  note={\bibgls\texparserdefnote},
  category={command}
}

@bibglscommand{bibglsunderscorechar,
  name={\csfmt{bib\-gls\-under\-score\-char}},
  user1={},
  description={expands to a literal underscore character},
  topics={charcommands},
  note={\bibgls\texparserdefnote},
  category={command}
}

@bibglscommand{bibglsdollarchar,
  name={\csfmt{bib\-gls\-dollar\-char}},
  user1={},
  description={expands to a literal dollar character},
  topics={charcommands},
  note={\bibgls\texparserdefnote},
  category={command}
}

@bibglscommand{bibglsampersandchar,
  name={\csfmt{bib\-gls\-amper\-sand\-char}},
  user1={},
  description={expands to a literal ampersand character},
  topics={charcommands},
  note={\bibgls\texparserdefnote},
  category={command}
}

@bibglscommand{bibglscircumchar,
  name={\csfmt{bib\-gls\-circum\-char}},
  user1={},
  description={expands to a literal circumflex character},
  topics={charcommands},
  note={\bibgls\texparserdefnote},
  category={command}
}

@bibglscommand{bibglshrefchar,
  name={\csfmt{bib\-gls\-href\-char}},
  user1={\margm{hex}\margm{char}},
  description={expands to a literal percent character followed by
\meta{hex}},
  topics={charcommands},
  note={\bibgls\texparserdefnote},
  category={command}
}

@bibglscommand{bibglshrefunicode,
  name={\csfmt{bib\-gls\-href\-unicode}},
  user1={\margm{hex}\margm{char}},
  description={expands to \meta{char} by default},
  topics={charcommands},
  note={\bibgls\texparserdefnote},
  category={command}
}

@bibglscommand{bibglshexunicodechar,
  name={\csfmt{bib\-gls\-hex\-unicode\-char}},
  user1={\margm{hex}},
  description={produces the character with the given hexadecimal code},
  topics={charcommands},
  note={\bibgls\texparserdefnote},
  category={command}
}

@bibglscommand{bibglsprimaryprefixlabel,
  name={\csfmt{bib\-gls\-primary\-prefix\-label}},
  user1={\margm{prefix}},
  description={hook provided to pick up the primary prefix, if
   required},
  topics={hooks},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsdualprefixlabel,
  name={\csfmt{bib\-gls\-dual\-prefix\-label}},
  user1={\margm{prefix}},
  description={hook provided to pick up the dual prefix, if
   required},
  topics={hooks},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglstertiaryprefixlabel,
  name={\csfmt{bib\-gls\-tertiary\-prefix\-label}},
  user1={\margm{prefix}},
  description={hook provided to pick up the tertiary prefix, if
   required},
  topics={hooks},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsexternalprefixlabel,
  name={\csfmt{bib\-gls\-external\-prefix\-label}},
  user1={\margm{n}\margm{prefix}},
  description={hook provided to pick up the \meta{n}th external prefix, if
   required},
  topics={hooks},
  note={\bibgls},
  category={command}
}

@bibglscommand{BibGlsNoCaseChange,
  name={\csfmt{Bib\-Gls\-No\-Case\-Change}},
  user1={\margm{text}},
  description={behaves as \cs{NoCaseChange} within \bibgls, but
  the definition provided in the \ext{glstex} file simply expands 
  to \meta{text} in the document without adding the command to the 
  case-changing exclusion list},
  topics={formattingcommands,casecommands},
  note={\bibgls\texparserdefnote},
  category={command}
}

@bibglscommand{bibglsuppercase,
  name={\csfmt{bib\-gls\-upper\-case}},
  user1={\margm{text}},
  description={converts \meta{text} to \idx{uppercase}},
  topics={formattingcommands,casecommands},
  note={\bibgls\texparserdefnote},
  category={command}
}

@bibglscommand{bibglslowercase,
  name={\csfmt{bib\-gls\-lower\-case}},
  user1={\margm{text}},
  description={converts \meta{text} to \idx{lowercase}},
  topics={formattingcommands,casecommands},
  note={\bibgls\texparserdefnote},
  category={command}
}

@bibglscommand{bibglstitlecase,
  name={\csfmt{bib\-gls\-title\-case}},
  user1={\margm{text}},
  description={converts \meta{text} to \idx{titlecase}},
  topics={formattingcommands,casecommands},
  note={\bibgls\texparserdefnote},
  category={command}
}

@bibglscommand{bibglsfirstuc,
  name={\csfmt{bib\-gls\-first\-uc}},
  user1={\margm{text}},
  description={converts the first letter of \meta{text} to \idx{uppercase}},
  topics={formattingcommands,casecommands},
  note={\bibgls},
  category={command}
}

@bibglscommand{bibglsdefinitionindex,
  name={\csfmt{bib\-gls\-definition\-index}},
  user1={\margm{label}},
  description={expands to the definition index of the entry
  identified \meta{label} if \csopt{save-definition-index} is set
  otherwise expands to empty},
  topics={fieldrefcommands},
  note={\bibgls\texparserdefnote},
  category={command}
}

@bibglscommand{bibglsuseindex,
  name={\csfmt{bib\-gls\-use\-index}},
  user1={\margm{label}},
  description={expands to the order of use index of the entry
  identified \meta{label} if \csopt{save-use-index} is set and
  the entry has records otherwise expands to empty},
  topics={fieldrefcommands},
  note={\bibgls\texparserdefnote},
  category={command}
}

@mainglscommand{glsexpandfields,
  name={\csfmt{gls\-expand\-fields}},
  user1={},
  description={switches on field expansion},
  topics={assigncommands,definingterms},
  note={\styfmt{glossaries}},
  category={command}
}

@mainglscommand{glsnoexpandfields,
  name={\csfmt{gls\-no\-expand\-fields}},
  user1={},
  description={switches off field expansion},
  topics={assigncommands,definingterms},
  note={\styfmt{glossaries}},
  category={command}
}

@mainglscommand{glssetexpandfield,
  name={\csfmt{gls\-set\-expand\-field}},
  user1={\margm{field}},
  description={switches on field expansion for the given field,
identified by its internal label},
  topics={assigncommands,definingterms},
  note={\styfmt{glossaries}},
  category={command}
}

@mainglscommand{glssetnoexpandfield,
  name={\csfmt{gls\-set\-no\-expand\-field}},
  user1={\margm{field}},
  description={switches off field expansion for the given field},
  topics={assigncommands,definingterms},
  note={\styfmt{glossaries}},
  category={command}
}

@mainglscommand{newglossaryentry,
  name={\csfmt{new\-glossary\-entry}},
  user1={\margm{label}\margm{\keyvallist}},
  description={defines a new glossary entry},
  topics={definingterms},
  note={\styfmt{glossaries}},
  category={command}
}

@mainglscommand{longnewglossaryentry,
  name={\csfmt{long\-new\-glossary\-entry}},
  user1={\margm{label}\margm{\keyvallist}\margm{description}},
  description={defines a new glossary entry and appends
   \csfmt{leavemode}\csfmt{unskip}\cs{nopostdesc} at the end of
\meta{description}},
  topics={definingterms},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{longnewglossaryentry*,
  name={\csfmt{long\-new\-glossary\-entry*}},
  user1={\margm{label}\margm{\keyvallist}\margm{description}},
  description={defines a new glossary entry without appending any
extra code to the end of \meta{description}},
  topics={definingterms},
  note={\styfmt{glossaries-extra} v1.12+},
  category={command}
}

@mainglscommand{provideglossaryentry,
  name={\csfmt{provide\-glossary\-entry}},
  user1={\margm{label}\margm{\keyvallist}},
  description={defines a new glossary entry if one doesn't
    already exist with the given label},
  topics={definingterms},
  note={\styfmt{glossaries}},
  category={command}
}

@mainglscommand{longprovideglossaryentry,
  name={\csfmt{long\-provide\-glossary\-entry}},
  user1={\margm{label}\margm{\keyvallist}\margm{description}},
  description={defines a new glossary entry if one doesn't
    already exist with the given label},
  topics={definingterms},
  note={\styfmt{glossaries}},
  category={command}
}

@mainglscommand{newterm,
  name={\csfmt{new\-term}},
  user1={\oargm{\keyvallist}\margm{label}},
  description={defines a new glossary entry where the
   \field{description} field defaults to empty},
  topics={definingterms},
  note={\styfmt{glossaries}'s \styopt{index} package option},
  category={command}
}

@mainglscommand{newabbreviation,
  name={\csfmt{new\-abbre\-vi\-a\-tion}},
  user1={\oargm{\keyvallist}\margm{label}\margm{short}\margm{long}},
  description={defines a new abbreviation},
  topics={definingterms},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@mainglscommand{newacronym,
  name={\csfmt{new\-acronym}},
  user1={\oargm{\keyvallist}\margm{label}\margm{short}\margm{long}},
  description={defines a new abbreviation. The
    \styfmt{glossaries-extra} package redefines this to use
    \csref{newabbreviation} with the \field{category} set to 
    \code{acronym}},
  topics={definingterms},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{oldacronym,
  name={\csfmt{old\-acronym}},
  user1={\oargm{label}\margm{short}\margm{long}\margm{options}},
  description={Emulates the way the old \styfmt{glossary} package
    defined acronyms},
  topics={definingterms},
  note={\styfmt{glossaries}},
  seealso={newacronym},
  category={command}
}

@mainglscommand{glsxtrnewsymbol,
  name={\csfmt{gls\-xtr\-new\-symbol}},
  user1={\oargm{\keyvallist}\margm{label}\margm{symbol}},
  description={defines a new symbol},
  topics={definingterms},
  note={\styfmt{glossaries-extra} \styopt{symbols}},
  category={command}
}

@mainglscommand{glsxtrnewnumber,
  name={\csfmt{gls\-xtr\-new\-number}},
  user1={\oargm{\keyvallist}\margm{label}},
  description={defines a new number},
  topics={definingterms},
  note={\styfmt{glossaries-extra} \styopt{numbers}},
  category={command}
}

@mainglscommand{newdualentry,
  name={\csfmt{new\-dual\-entry}},
  user1={\oargm{\keyvallist}\margm{label}\margm{short}\margm{long}\margm{description}},
  description={example given in \styfmt{glossaries} user manual},
  topics={definingterms},
  category={command}
}

@mainglscommand{@gls@hypergroup,
  name={\csfmt{@gls@hypergroup}},
  user1={\margm{type}\margm{group id}},
  description={command written to the \ext{aux} file that identifies that the given group was used in the
   glossary on the previous run},
  topics={groupcommands,internalcommands,auxcommands},
  note={\styfmt{glossary-hypernav}},
  category={command}
}

@mainglscommand{glsxtr@resource,
  name={\csfmt{glsxtr@resource}},
  user1={\margm{options}\margm{filename}},
  description={this internal command is written to the \ext{aux}
file by \csref{GlsXtrLoadResources}
   to provide \bibgls\ with the resource information},
  topics={internalcommands,auxcommands},
  note={\styfmt{glossaries-extra} v1.08+},
  category={command}
}

@mainglscommand{glsxtr@wrglossarylocation,
  name={\csfmt{gls\-xtr\-@wr\-glossary\-location}},
  user1={\margm{n}\margm{page}},
  description={This command simply expands to \meta{n}, the value of
the \counter{wrglossary} counter for the given page},
  topics={internalcommands,loclistcommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.29+},
  category={command}
}

@mainglscommand{GlsXtrIndexCounterLink,
  name={\csfmt{Gls\-Xtr\-Index\-Counter\-Link}},
  user1={\margm{text}\margm{label}},
  description={Creates a hyperlink to the \counter{wrglossary}
location obtained from the \field{indexcounter} field},
  topics={linkcommands,loclistcommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.29+},
  category={command}
}

@mainglscommand{GlsXtrDualBackLink,
  name={\csfmt{Gls\-Xtr\-Dual\-Back\-Link}},
  user1={\margm{text}\margm{label}},
  description={Creates a hyperlink to the dual entry whose label is
   obtained from the field given by \csref{GlsXtrDualField}},
  topics={linkcommands,fieldrefcommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.30+},
  category={command}
}

@mainglscommand{GlsXtrDualField,
  name={\csfmt{Gls\-Xtr\-Dual\-Field}},
  user1={},
  description={The field used to store the dual label. This defaults 
   to \field{dual} but will need to be redefined if a different
   value is given by \csopt{dual-field}},
  topics={fieldrefcommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.30+},
  category={command}
}

@mainglscommand{glsxtrfmt,
  name={\csfmt{gls\-xtr\-fmt}},
  user1={\oargm{options}\margm{label}\margm{text}},
  description={formats the given text according to the formatting 
   command identified by the value of the field obtained 
   from \cs{GlsXtrFmtField}},
  topics={fieldrefcommands,linkcommands,formattingcommands},
  note={\styfmt{glossaries-extra} v1.12+},
  seealso={glsxtrfmtdisplay},
  category={command}
}

@mainglscommand{glsxtrfmt*,
  name={\csfmt{gls\-xtr\-fmt*}},
  user1={\oargm{options}\margm{label}\margm{text}\oargm{insert}},
  description={like \csref{glsxtrfmt} but inserts extra
   material into the link text but outside of the formatting command},
  topics={fieldrefcommands,linkcommands,formattingcommands},
  seealso={glsxtrfmtdisplay},
  note={\styfmt{glossaries-extra} v1.23+},
  category={command}
}

@mainglscommand{glsxtrentryfmt,
  name={\csfmt{gls\-xtr\-entry\-fmt}},
  user1={\margm{label}\margm{text}},
  description={alternative to \csref{glsxtrfmt} for use in
    section headings},
  topics={fieldrefcommands,formattingcommands},
  note={\styfmt{glossaries-extra} v1.12+},
  category={command}
}

@glscommand{glsxtrfmtdisplay,
  name={\csfmt{gls\-xtr\-fmt\-display}},
  user1={\margm{cs-name}\margm{text}\margm{insert}},
  description={used by \csref{glsxtrfmt} to format the given
\meta{text} where \meta{cs-name} is obtained from the field
identified by \cs{GlsXtrFmtField} and \meta{insert} is empty for the
unstarred \csref{glsxtrfmt} and the final optional argument of the
starred version \csref{glsxtrfmt*}},
  topics={formattingcommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@mainglscommand{BibGlsOptions,
  name={\csfmt{Bib\-Gls\-Options}},
  user1={\margm{options}},
  description={simply writes global \bibgls\ \meta{options} to the
\ext{aux} file},
  topics={indexing},
  note={\styfmt{glossaries-extra} v1.54+},
  category={command}
}

@mainglscommand{glsxtrresourcefile,
  name={\csfmt{gls\-xtr\-resource\-file}},
  user1={\oargm{options}\margm{basename}},
  description={input the \ext{glstex} file created by \bibgls\ and
   write resource instructions to the \ext{aux} file.
   This command is deprecated as from \sty{glossaries-extra} v1.55
    (use \gls{glsbibdata} instead)},
  topics={indexing},
  note={\styfmt{glossaries-extra} v1.08+ (deprecated)},
  seealso={resourceoptions,GlsXtrLoadResources},
  category={command}
}

@mainglscommand{GlsXtrLoadResources,
  name={\csfmt{Gls\-Xtr\-Load\-Resources}},
  user1={\oargm{options}},
  description={input the \ext{glstex} file created by \bibgls\ and
   write resource instructions to the \ext{aux} file},
  topics={indexing,shortcutcommands},
  note={\styfmt{glossaries-extra} v1.11+},
  seealso={resourceoptions,glsbibdata},
  category={command}
}

@mainglscommand{glsbibdata,
  name={\csfmt{gls\-bib\-data}},
  user1={\oargm{options}\margm{bib-list}},
  description={a shortcut command that uses
   \csref{GlsXtrLoadResources} with \csopt[\margm{bib-list}]{src}},
  topics={indexing,shortcutcommands},
  note={\styfmt{glossaries-extra} v1.55+},
  seealso={resourceoptions,GlsXtrLoadResources},
  category={command}
}


@index{resourceoptions,
  name={resource options},
  text={resource option}
}

@resourceoption{opt.charset,
   name={\csoptfmt{charset}},
   user1={\meta{encoding-name}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.interpret-preamble,
   name={\csoptfmt{interpret\dhyphen preamble}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.interpret-label-fields,
   name={\csoptfmt{interpret\dhyphen label\dhyphen fields}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.primary-dual-dependency,
   name={\csoptfmt{primary\dhyphen dual\dhyphen dependency}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.strip-missing-parents,
   name={\csoptfmt{strip\dhyphen missing\dhyphen parents}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.missing-parents,
   name={\csoptfmt{missing\dhyphen parents}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.missing-parent-category,
   name={\csoptfmt{missing\dhyphen parent\dhyphen category}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.copy-alias-to-see,
   name={\csoptfmt{copy\dhyphen alias\dhyphen to\dhyphen see}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.write-preamble,
   name={\csoptfmt{write\dhyphen preamble}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.set-widest,
   name={\csoptfmt{set\dhyphen widest}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.duplicate-label-suffix,
   name={\csoptfmt{duplicate\dhyphen label\dhyphen suffix}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.entry-type-aliases,
   name={\csoptfmt{entry\dhyphen type\dhyphen aliases}},
   user1={\meta{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.unknown-entry-alias,
   name={\csoptfmt{unknown\dhyphen entry\dhyphen alias}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.field-aliases,
   name={\csoptfmt{field\dhyphen aliases}},
   user1={\meta{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.replicate-fields,
   name={\csoptfmt{replicate\dhyphen fields}},
   user1={\meta{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.replicate-override,
   name={\csoptfmt{replicate\dhyphen override}},
   user1={\margm{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.replicate-missing-field-action,
   name={\csoptfmt{replicate\dhyphen missing\dhyphen field\dhyphen action}},
   user1={\margm{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.locale,
   name={\csoptfmt{locale}},
   user1={\meta{lang tag}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.assign-fields,
   name={\csoptfmt{assign\dhyphen fields}},
   user1={\meta{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.assign-override,
   name={\csoptfmt{assign\dhyphen override}},
   user1={\margm{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.assign-missing-field-action,
   name={\csoptfmt{assign\dhyphen missing\dhyphen field\dhyphen action}},
   user1={\margm{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.copy-to-glossary,
   name={\csoptfmt{copy\dhyphen to\dhyphen glossary}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.copy-to-glossary-missing-field-action,
   name={\csoptfmt{copy\dhyphen to\dhyphen glossary\dhyphen missing\dhyphen field\dhyphen action}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.compound-options-global,
   name={\csoptfmt{compound\dhyphen options\dhyphen global}},
   user1={\margm{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.compound-dependent,
   name={\csoptfmt{compound\dhyphen dependent}},
   user1={\margm{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.compound-add-hierarchy,
   name={\csoptfmt{compound\dhyphen add\dhyphen hierarchy}},
   user1={\margm{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.compound-has-records,
   name={\csoptfmt{compound\dhyphen has\dhyphen records}},
   user1={\margm{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.compound-adjust-name,
   name={\csoptfmt{compound\dhyphen adjust\dhyphen name}},
   user1={\margm{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.compound-write-def,
   name={\csoptfmt{compound\dhyphen write\dhyphen def}},
   user1={\margm{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.compound-main-type,
   name={\csoptfmt{compound\dhyphen main\dhyphen type}},
   user1={\margm{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.compound-other-type,
   name={\csoptfmt{compound\dhyphen other\dhyphen type}},
   user1={\margm{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.compound-type-override,
   name={\csoptfmt{compound\dhyphen type\dhyphen override}},
   user1={\margm{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.labelify,
   name={\csoptfmt{labelify}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.labelify-list,
   name={\csoptfmt{labelify\dhyphen list}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dependency-fields,
   name={\csoptfmt{dependency\dhyphen fields}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.labelify-replace,
   name={\csoptfmt{labelify\dhyphen replace}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.wordify-math-greek,
   name={\csoptfmt{wordify\dhyphen math\dhyphen greek}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.wordify-math-symbol,
   name={\csoptfmt{wordify\dhyphen math\dhyphen symbol}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.sort-replace,
   name={\csoptfmt{sort\dhyphen replace}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-sort-replace,
   name={\csoptfmt{dual\dhyphen sort\dhyphen replace}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-sort-replace,
   name={\csoptfmt{secondary\dhyphen sort\dhyphen replace}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.action,
   name={\csoptfmt{action}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.copy-action-group-field,
   name={\csoptfmt{copy\dhyphen action\dhyphen group\dhyphen field}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.src,
   name={\csoptfmt{src}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.selection,
   name={\csoptfmt{selection}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.match,
   name={\csoptfmt{match}},
   user1={\meta{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.match-op,
   name={\csoptfmt{match\dhyphen op}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.match-action,
   name={\csoptfmt{match\dhyphen action}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.not-match,
   name={\csoptfmt{not\dhyphen match}},
   user1={\meta{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-match,
   name={\csoptfmt{secondary\dhyphen match}},
   user1={\meta{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-match-op,
   name={\csoptfmt{secondary\dhyphen match\dhyphen op}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-match-action,
   name={\csoptfmt{secondary\dhyphen match\dhyphen action}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-not-match,
   name={\csoptfmt{secondary\dhyphen not\dhyphen match}},
   user1={\meta{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.limit,
   name={\csoptfmt{limit}},
   user1={\meta{number}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.flatten,
   name={\csoptfmt{flatten}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.flatten-lonely,
   name={\csoptfmt{flatten\dhyphen lonely}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.flatten-lonely-rule,
   name={\csoptfmt{flatten\dhyphen lonely\dhyphen rule}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.flatten-lonely-condition,
   name={\csoptfmt{flatten\dhyphen lonely\dhyphen condition}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.flatten-lonely-missing-field-action,
   name={\csoptfmt{flatten\dhyphen lonely\dhyphen missing\dhyphen field\dhyphen action}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.master,
   name={\csoptfmt{master}},
   user1={\meta{name}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.master-resources,
   name={\csoptfmt{master\dhyphen resources}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.ignore-fields,
   name={\csoptfmt{ignore\dhyphen fields}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.omit-fields,
   name={\csoptfmt{omit\dhyphen fields}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.omit-fields-missing-field-action,
   name={\csoptfmt{omit\dhyphen fields\dhyphen missing\dhyphen field\dhyphen action}},
   user1={\margm{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.gather-parsed-dependencies,
   name={\csoptfmt{gather\dhyphen parsed\dhyphen dependencies}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.date-time-fields,
   name={\csoptfmt{date\dhyphen time\dhyphen fields}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.date-fields,
   name={\csoptfmt{date\dhyphen fields}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.time-fields,
   name={\csoptfmt{time\dhyphen fields}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.date-time-field-format,
   name={\csoptfmt{date\dhyphen time\dhyphen field\dhyphen format}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-date-time-field-format,
   name={\csoptfmt{dual\dhyphen date\dhyphen time\dhyphen field\dhyphen format}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.date-field-format,
   name={\csoptfmt{date\dhyphen field\dhyphen format}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-date-field-format,
   name={\csoptfmt{dual\dhyphen date\dhyphen field\dhyphen format}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.time-field-format,
   name={\csoptfmt{time\dhyphen field\dhyphen format}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-time-field-format,
   name={\csoptfmt{dual\dhyphen time\dhyphen field\dhyphen format}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.date-time-field-locale,
   name={\csoptfmt{date\dhyphen time\dhyphen field\dhyphen locale}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-date-time-field-locale,
   name={\csoptfmt{dual\dhyphen date\dhyphen time\dhyphen
field\dhyphen locale}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.date-field-locale,
   name={\csoptfmt{date\dhyphen field\dhyphen locale}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-date-field-locale,
   name={\csoptfmt{dual\dhyphen date\dhyphen field\dhyphen locale}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.time-field-locale,
   name={\csoptfmt{time\dhyphen field\dhyphen locale}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-time-field-locale,
   name={\csoptfmt{date\dhyphen time\dhyphen field\dhyphen locale}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.bibtex-contributor-fields,
   name={\csoptfmt{bibtex\dhyphen contributor\dhyphen fields}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.contributor-order,
   name={\csoptfmt{contributor\dhyphen order}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.category,
   name={\csoptfmt{category}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.type,
   name={\csoptfmt{type}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.counter,
   name={\csoptfmt{counter}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.label-prefix,
   name={\csoptfmt{label\dhyphen prefix}},
   user1={\meta{tag}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.cs-label-prefix,
   name={\csoptfmt{cs\dhyphen label\dhyphen prefix}},
   user1={\meta{tag}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.record-label-prefix,
   name={\csoptfmt{record\dhyphen label\dhyphen prefix}},
   user1={\meta{tag}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.ext-prefixes,
   name={\csoptfmt{ext\dhyphen prefixes}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.save-original-id,
   name={\csoptfmt{save\dhyphen original\dhyphen id}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.save-original-id-action,
   name={\csoptfmt{save\dhyphen original\dhyphen id\dhyphen action}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.save-definition-index,
   name={\csoptfmt{save\dhyphen definition\dhyphen index}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.save-use-index,
   name={\csoptfmt{save\dhyphen use\dhyphen index}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.format-integer-fields,
   name={\csoptfmt{format\dhyphen integer\dhyphen fields}},
   user1={\margm{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.format-decimal-fields,
   name={\csoptfmt{format\dhyphen decimal\dhyphen fields}},
   user1={\margm{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.short-case-change,
   name={\csoptfmt{short\dhyphen case\dhyphen change}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.long-case-change,
   name={\csoptfmt{long\dhyphen case\dhyphen change}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.name-case-change,
   name={\csoptfmt{name\dhyphen case\dhyphen change}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.description-case-change,
   name={\csoptfmt{description\dhyphen case\dhyphen change}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.field-case-change,
   name={\csoptfmt{field\dhyphen case\dhyphen change}},
   user1={\margm{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.word-boundaries,
   name={\csoptfmt{word\dhyphen boundaries}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.no-case-change-cs,
   name={\csoptfmt{no\dhyphen case\dhyphen change\dhyphen cs}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.encapsulate-fields,
   name={\csoptfmt{encapsulate\dhyphen fields}},
   user1={\margm{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.encapsulate-fields*,
   name={\csoptfmt{encapsulate\dhyphen fields*}},
   user1={\margm{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.encapsulate-sort,
   name={\csoptfmt{encapsulate\dhyphen sort}},
   user1={\marg{csname}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.prefix-fields,
   name={\csoptfmt{prefix\dhyphen fields}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.append-prefix-field,
   name={\csoptfmt{append\dhyphen prefix\dhyphen field}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.append-prefix-field-cs,
   name={\csoptfmt{append\dhyphen prefix\dhyphen field\dhyphen cs}},
   user1={\meta{cs}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.append-prefix-field-exceptions,
   name={\csoptfmt{append\dhyphen prefix\dhyphen field\dhyphen exceptions}},
   user1={\meta{sequence}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.append-prefix-field-cs-exceptions,
   name={\csoptfmt{append\dhyphen prefix\dhyphen field\dhyphen cs\dhyphen exceptions}},
   user1={\meta{sequence}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.append-prefix-field-nbsp-match,
   name={\csoptfmt{append\dhyphen prefix\dhyphen field\dhyphen nbsp\dhyphen match}},
   user1={\meta{pattern}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.interpret-fields,
   name={\csoptfmt{interpret\dhyphen fields}},
   user1={\margm{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.interpret-fields-action,
   name={\csoptfmt{interpret\dhyphen fields\dhyphen action}},
   user1={\margm{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.hex-unicode-fields,
   name={\csoptfmt{hex\dhyphen unicode\dhyphen fields}},
   user1={\margm{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.post-description-dot,
   name={\csoptfmt{post\dhyphen description\dhyphen dot}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.post-description-dot-exclude,
   name={\csoptfmt{post\dhyphen description\dhyphen dot\dhyphen exclude}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.strip-trailing-nopost,
   name={\csoptfmt{strip\dhyphen trailing\dhyphen nopost}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.check-end-punctuation,
   name={\csoptfmt{check\dhyphen end\dhyphen punctuation}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.sort-label-list,
   name={\csoptfmt{sort\dhyphen label\dhyphen list}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.group,
   name={\csoptfmt{group}},
   user1={\meta{label}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.group-level,
   name={\csoptfmt{group\dhyphen level}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.merge-small-groups,
   name={\csoptfmt{merge\dhyphen small\dhyphen groups}},
   user1={\meta{n}},
   category={resourceoption},
   parent={resourceoptions}
}


@resourceoption{opt.group-formation,
   name={\csoptfmt{group\dhyphen formation}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-group-formation,
   name={\csoptfmt{secondary\dhyphen group\dhyphen formation}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-group-formation,
   name={\csoptfmt{dual\dhyphen group\dhyphen formation}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.save-child-count,
   name={\csoptfmt{save\dhyphen child\dhyphen count}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.save-sibling-count,
   name={\csoptfmt{save\dhyphen sibling\dhyphen count}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.save-root-ancestor,
   name={\csoptfmt{save\dhyphen root\dhyphen ancestor}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.save-original-entrytype,
   name={\csoptfmt{save\dhyphen original\dhyphen entrytype}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.save-original-entrytype-action,
   name={\csoptfmt{save\dhyphen original\dhyphen entrytype\dhyphen action}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.short-plural-suffix,
   name={\csoptfmt{short\dhyphen plural\dhyphen suffix}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-short-plural-suffix,
   name={\csoptfmt{dual\dhyphen short\dhyphen plural\dhyphen suffix}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.save-locations,
   name={\csoptfmt{save\dhyphen locations}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.save-loclist,
   name={\csoptfmt{save\dhyphen loclist}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.save-primary-locations,
   name={\csoptfmt{save\dhyphen primary\dhyphen locations}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.save-principal-locations,
   name={\csoptfmt{save\dhyphen principal\dhyphen locations}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.primary-location-formats,
   name={\csoptfmt{primary\dhyphen location\dhyphen formats}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.principal-location-formats,
   name={\csoptfmt{principal\dhyphen location\dhyphen formats}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.primary-loc-counters,
   name={\csoptfmt{primary\dhyphen loc\dhyphen counters}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.principal-loc-counters,
   name={\csoptfmt{principal\dhyphen loc\dhyphen counters}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.merge-ranges,
   name={\csoptfmt{merge\dhyphen ranges}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.min-loc-range,
   name={\csoptfmt{min\dhyphen loc\dhyphen range}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.max-loc-diff,
   name={\csoptfmt{max\dhyphen loc\dhyphen diff}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.suffixF,
   name={\csoptfmt{suffixF}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.suffixFF,
   name={\csoptfmt{suffixFF}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.compact-ranges,
   name={\csoptfmt{compact-ranges}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.see,
   name={\csoptfmt{see}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.seealso,
   name={\csoptfmt{seealso}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.alias,
   name={\csoptfmt{alias}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.prune-xr,
   name={\csoptfmt{prune\dhyphen xr}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.prune-see-op,
   name={\csoptfmt{prune\dhyphen see\dhyphen op}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.prune-seealso-op,
   name={\csoptfmt{prune\dhyphen seealso\dhyphen op}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.prune-see-match,
   name={\csoptfmt{prune\dhyphen see\dhyphen match}},
   user1={\meta{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.prune-seealso-match,
   name={\csoptfmt{prune\dhyphen seealso\dhyphen match}},
   user1={\meta{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.prune-iterations,
   name={\csoptfmt{prune\dhyphen iterations}},
   user1={\meta{number}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.alias-loc,
   name={\csoptfmt{alias\dhyphen loc}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.loc-prefix,
   name={\csoptfmt{loc\dhyphen prefix}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.loc-prefix-def,
   name={\csoptfmt{loc\dhyphen prefix\dhyphen def}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.loc-suffix,
   name={\csoptfmt{loc\dhyphen suffix}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.loc-suffix-def,
   name={\csoptfmt{loc\dhyphen suffix\dhyphen def}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.loc-counters,
   name={\csoptfmt{loc\dhyphen counters}},
   user1={\meta{list}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.save-index-counter,
   name={\csoptfmt{save\dhyphen index\dhyphen counter}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.save-from-alias,
   name={\csoptfmt{save\dhyphen from\dhyphen alias}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.save-from-seealso,
   name={\csoptfmt{save\dhyphen from\dhyphen seealso}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.save-from-see,
   name={\csoptfmt{save\dhyphen from\dhyphen see}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.save-crossref-tail,
   name={\csoptfmt{save\dhyphen crossref\dhyphen tail}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.supplemental-locations,
   name={\csoptfmt{supplemental\dhyphen locations}},
   user1={\meta{basename}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.supplemental-selection,
   name={\csoptfmt{supplemental\dhyphen selection}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.supplemental-category,
   name={\csoptfmt{supplemental\dhyphen category}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.sort,
   name={\csoptfmt{sort}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.shuffle,
   name={\csoptfmt{shuffle}},
   user1={\meta{seed}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.sort-field,
   name={\csoptfmt{sort\dhyphen field}},
   user1={\meta{field}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.custom-sort-fallbacks,
   name={\csoptfmt{custom\dhyphen sort\dhyphen fallbacks}},
   user1={\margm{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.entry-sort-fallback,
   name={\csoptfmt{entry\dhyphen sort\dhyphen fallback}},
   user1={\meta{field}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.symbol-sort-fallback,
   name={\csoptfmt{symbol\dhyphen sort\dhyphen fallback}},
   user1={\meta{field}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.abbreviation-sort-fallback,
   name={\csoptfmt{abbreviation\dhyphen sort\dhyphen fallback}},
   user1={\meta{field}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.abbreviation-name-fallback,
   name={\csoptfmt{abbreviation\dhyphen name\dhyphen fallback}},
   user1={\meta{field}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.abbreviation-text-fallback,
   name={\csoptfmt{abbreviation\dhyphen text\dhyphen fallback}},
   user1={\meta{field}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.bibtexentry-sort-fallback,
   name={\csoptfmt{bibtexentry\dhyphen sort\dhyphen fallback}},
   user1={\meta{field}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.field-concat-sep,
   name={\csoptfmt{field\dhyphen concat\dhyphen sep}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.trim-sort,
   name={\csoptfmt{trim\dhyphen sort}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.missing-sort-fallback,
   name={\csoptfmt{missing\dhyphen sort\dhyphen fallback}},
   user1={\meta{field}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-missing-sort-fallback,
   name={\csoptfmt{dual\dhyphen missing\dhyphen sort\dhyphen fallback}},
   user1={\meta{field}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-missing-sort-fallback,
   name={\csoptfmt{secondary\dhyphen missing\dhyphen sort\dhyphen fallback}},
   user1={\meta{field}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.sort-rule,
   name={\csoptfmt{sort\dhyphen rule}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.break-at,
   name={\csoptfmt{break\dhyphen at}},
   user1={\meta{option}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.break-marker,
   name={\csoptfmt{break\dhyphen marker}},
   user1={\meta{marker}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.break-at-match,
   name={\csoptfmt{break\dhyphen at\dhyphen match}},
   user1={\meta{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.break-at-not-match,
   name={\csoptfmt{break\dhyphen at\dhyphen not\dhyphen match}},
   user1={\meta{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.break-at-match-op,
   name={\csoptfmt{break\dhyphen at\dhyphen match\dhyphen op}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-break-at-match,
   name={\csoptfmt{dual\dhyphen break\dhyphen at\dhyphen match}},
   user1={\meta{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-break-at-not-match,
   name={\csoptfmt{dual\dhyphen break\dhyphen at\dhyphen not\dhyphen match}},
   user1={\meta{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-break-at-match-op,
   name={\csoptfmt{dual\dhyphen break\dhyphen at\dhyphen match\dhyphen op}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-break-at-match,
   name={\csoptfmt{secondary\dhyphen break\dhyphen at\dhyphen match}},
   user1={\meta{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-break-at-not-match,
   name={\csoptfmt{secondary\dhyphen break\dhyphen at\dhyphen not\dhyphen match}},
   user1={\meta{\keyvallist}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-break-at-match-op,
   name={\csoptfmt{secondary\dhyphen break\dhyphen at\dhyphen match\dhyphen op}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.identical-sort-action,
   name={\csoptfmt{identical\dhyphen sort\dhyphen action}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-identical-sort-action,
   name={\csoptfmt{dual\dhyphen identical\dhyphen sort\dhyphen action}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-identical-sort-action,
   name={\csoptfmt{secondary\dhyphen identical\dhyphen sort\dhyphen action}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.sort-suffix,
   name={\csoptfmt{sort\dhyphen suffix}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.sort-suffix-marker,
   name={\csoptfmt{sort\dhyphen suffix\dhyphen marker}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.strength,
   name={\csoptfmt{strength}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.decomposition,
   name={\csoptfmt{decomposition}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.letter-number-rule,
   name={\csoptfmt{letter\dhyphen number\dhyphen rule}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.letter-number-punc-rule,
   name={\csoptfmt{letter\dhyphen number\dhyphen punc\dhyphen rule}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.numeric-sort-pattern,
   name={\csoptfmt{numeric\dhyphen sort\dhyphen pattern}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.numeric-locale,
   name={\csoptfmt{numeric\dhyphen locale}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.date-sort-locale,
   name={\csoptfmt{date\dhyphen sort\dhyphen locale}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.date-sort-format,
   name={\csoptfmt{date\dhyphen sort\dhyphen format}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.trigger-type,
   name={\csoptfmt{trigger\dhyphen type}},
   user1={\meta{type}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.ignored-type,
   name={\csoptfmt{ignored\dhyphen type}},
   user1={\meta{type}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.progenitor-type,
   name={\csoptfmt{progenitor\dhyphen type}},
   user1={\meta{type}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.progeny-type,
   name={\csoptfmt{progeny\dhyphen type}},
   user1={\meta{type}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.adopted-parent-field,
   name={\csoptfmt{adopted\dhyphen parent\dhyphen field}},
   user1={\meta{type}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary,
   name={\csoptfmt{secondary}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-trim-sort,
   name={\csoptfmt{secondary\dhyphen trim\dhyphen sort}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-sort-rule,
   name={\csoptfmt{secondary\dhyphen sort\dhyphen rule}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-break-at,
   name={\csoptfmt{secondary\dhyphen break\dhyphen at}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-break-marker,
   name={\csoptfmt{secondary\dhyphen break\dhyphen marker}},
   user1={\meta{marker}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-sort-suffix,
   name={\csoptfmt{secondary\dhyphen sort\dhyphen suffix}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-sort-suffix-marker,
   name={\csoptfmt{secondary\dhyphen sort\dhyphen suffix\dhyphen
marker}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-strength,
   name={\csoptfmt{secondary\dhyphen strength}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-decomposition,
   name={\csoptfmt{secondary\dhyphen decomposition}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-letter-number-rule,
   name={\csoptfmt{secondary\dhyphen letter\dhyphen number\dhyphen
rule}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-letter-number-punc-rule,
   name={\csoptfmt{secondary\dhyphen letter\dhyphen number\dhyphen
punc\dhyphen rule}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-numeric-sort-pattern,
   name={\csoptfmt{secondary\dhyphen numeric\dhyphen sort\dhyphen
pattern}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-numeric-locale,
   name={\csoptfmt{secondary\dhyphen numeric\dhyphen locale}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-date-sort-locale,
   name={\csoptfmt{secondary\dhyphen date\dhyphen sort\dhyphen
locale}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-date-sort-format,
   name={\csoptfmt{secondary\dhyphen date\dhyphen sort\dhyphen
format}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.prefix-only-existing,
   name={\csoptfmt{prefix\dhyphen only\dhyphen existing}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-prefix,
   name={\csoptfmt{dual\dhyphen prefix}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.combine-dual-locations,
   name={\csoptfmt{combine\dhyphen dual\dhyphen locations}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-type,
   name={\csoptfmt{dual\dhyphen type}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-category,
   name={\csoptfmt{dual\dhyphen category}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-counter,
   name={\csoptfmt{dual\dhyphen counter}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-short-case-change,
   name={\csoptfmt{dual\dhyphen short\dhyphen case\dhyphen change}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-long-case-change,
   name={\csoptfmt{dual\dhyphen long\dhyphen case\dhyphen change}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-field,
   name={\csoptfmt{dual\dhyphen field}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-sort,
   name={\csoptfmt{dual\dhyphen sort}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-sort-field,
   name={\csoptfmt{dual\dhyphen sort\dhyphen field}},
   user1={\meta{field}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-trim-sort,
   name={\csoptfmt{dual\dhyphen trim\dhyphen sort}},
   user1={\meta{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-sort-rule,
   name={\csoptfmt{dual\dhyphen sort\dhyphen rule}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-break-at,
   name={\csoptfmt{dual\dhyphen break\dhyphen at}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-break-marker,
   name={\csoptfmt{dual\dhyphen break\dhyphen marker}},
   user1={\meta{marker}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-sort-suffix,
   name={\csoptfmt{dual\dhyphen sort\dhyphen suffix}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-sort-suffix-marker,
   name={\csoptfmt{dual\dhyphen sort\dhyphen suffix\dhyphen marker}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-strength,
   name={\csoptfmt{dual\dhyphen strength}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-decomposition,
   name={\csoptfmt{dual\dhyphen decomposition}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-letter-number-rule,
   name={\csoptfmt{dual\dhyphen letter\dhyphen number\dhyphen rule}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-letter-number-punc-rule,
   name={\csoptfmt{dual\dhyphen letter\dhyphen number\dhyphen punc\dhyphen rule}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-numeric-sort-pattern,
   name={\csoptfmt{dual\dhyphen numeric\dhyphen sort\dhyphen
pattern}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-numeric-locale,
   name={\csoptfmt{dual\dhyphen numeric\dhyphen locale}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-date-sort-locale,
   name={\csoptfmt{dual\dhyphen date\dhyphen sort\dhyphen locale}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-date-sort-format,
   name={\csoptfmt{dual\dhyphen date\dhyphen sort\dhyphen format}},
   user1={\meta{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-entry-map,
   name={\csoptfmt{dual\dhyphen entry\dhyphen map}},
   user1={\marg{\margm{list1},\margm{list2}}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-abbrv-map,
   name={\csoptfmt{dual\dhyphen abbrv\dhyphen map}},
   user1={\marg{\margm{list1},\margm{list2}}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-abbrventry-map,
   name={\csoptfmt{dual\dhyphen abbrventry\dhyphen map}},
   user1={\marg{\margm{list1},\margm{list2}}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-symbol-map,
   name={\csoptfmt{dual\dhyphen symbol\dhyphen map}},
   user1={\marg{\margm{list1},\margm{list2}}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-indexentry-map,
   name={\csoptfmt{dual\dhyphen indexentry\dhyphen map}},
   user1={\marg{\margm{list1},\margm{list2}}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-indexsymbol-map,
   name={\csoptfmt{dual\dhyphen indexsymbol\dhyphen map}},
   user1={\marg{\margm{list1},\margm{list2}}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-indexabbrv-map,
   name={\csoptfmt{dual\dhyphen indexabbrv\dhyphen map}},
   user1={\marg{\margm{list1},\margm{list2}}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-entry-backlink,
   name={\csoptfmt{dual\dhyphen entry\dhyphen backlink}},
   user1={\margm{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-abbrv-backlink,
   name={\csoptfmt{dual\dhyphen abbrv\dhyphen backlink}},
   user1={\margm{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-entryabbrv-backlink,
   name={\csoptfmt{dual\dhyphen entryabbrv\dhyphen backlink}},
   user1={\margm{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-abbrventry-backlink,
   name={\csoptfmt{dual\dhyphen abbrventry\dhyphen backlink}},
   user1={\margm{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-symbol-backlink,
   name={\csoptfmt{dual\dhyphen symbol\dhyphen backlink}},
   user1={\margm{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-indexentry-backlink,
   name={\csoptfmt{dual\dhyphen indexentry\dhyphen backlink}},
   user1={\margm{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-indexsymbol-backlink,
   name={\csoptfmt{dual\dhyphen indexsymbol\dhyphen backlink}},
   user1={\margm{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-indexabbrv-backlink,
   name={\csoptfmt{dual\dhyphen indexabbrv\dhyphen backlink}},
   user1={\margm{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-backlink,
   name={\csoptfmt{dual\dhyphen backlink}},
   user1={\margm{boolean}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.tertiary-prefix,
   name={\csoptfmt{tertiary\dhyphen prefix}},
   user1={\margm{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.tertiary-type,
   name={\csoptfmt{tertiary\dhyphen type}},
   user1={\margm{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.tertiary-category,
   name={\csoptfmt{tertiary\dhyphen category}},
   user1={\margm{value}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.sort-number-pad,
   name={\csoptfmt{sort\dhyphen number\dhyphen pad}},
   user1={\meta{number}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-sort-number-pad,
   name={\csoptfmt{dual\dhyphen sort\dhyphen number\dhyphen pad}},
   user1={\meta{number}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-sort-number-pad,
   name={\csoptfmt{secondary\dhyphen sort\dhyphen number\dhyphen pad}},
   user1={\meta{number}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.sort-pad-plus,
   name={\csoptfmt{sort\dhyphen pad\dhyphen plus}},
   user1={\meta{marker}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-sort-pad-plus,
   name={\csoptfmt{dual\dhyphen sort\dhyphen pad\dhyphen plus}},
   user1={\meta{marker}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-sort-pad-plus,
   name={\csoptfmt{secondary\dhyphen sort\dhyphen pad\dhyphen plus}},
   user1={\meta{marker}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.sort-pad-minus,
   name={\csoptfmt{sort\dhyphen pad\dhyphen minus}},
   user1={\meta{marker}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.dual-sort-pad-minus,
   name={\csoptfmt{dual\dhyphen sort\dhyphen pad\dhyphen minus}},
   user1={\meta{marker}},
   category={resourceoption},
   parent={resourceoptions}
}

@resourceoption{opt.secondary-sort-pad-minus,
   name={\csoptfmt{secondary\dhyphen sort\dhyphen pad\dhyphen minus}},
   user1={\meta{marker}},
   category={resourceoption},
   parent={resourceoptions}
}

@mainglscommand{glsxtrcopytoglossary,
  name={\csfmt{gls\-xtr\-copy\-to\-glossary}},
  user1={\margm{label}\margm{type}},
  description={copies the entry given by \meta{label} to the
glossary given by \meta{type}},
  topics={assigncommands,definingterms},
  note={\styfmt{glossaries-extra} v1.12+},
  category={command}
}

@mainglscommand{glsxtrnewglslike,
  name={\csfmt{gls\-xtr\-new\-gls\-like}},
  user1={\oargm{options}\margm{prefix}\margm{gls-like
cs}\margm{glspl-like cs}\margm{Gls-like
cs}\margm{Glspl-like cs}},
  description={defines commands to behave like \ics{gls}, \ics{glspl},
   \ics{Gls} and \ics{Glspl} with the given label prefix},
  topics={entryrefcommands,providingcommands},
  note={\styfmt{glossaries-extra} v1.21+},
  seealso={glsxtrnewgls},
  category={command}
}

@mainglscommand{glsxtrnewgls,
  name={\csfmt{gls\-xtr\-new\-gls}},
  user1={\oargm{options}\margm{prefix}\margm{cs}},
  description={defines the command \meta{cs} to behave like 
  \ics{gls} with the given label prefix},
  topics={entryrefcommands,providingcommands},
  note={\styfmt{glossaries-extra} v1.21+},
  seealso={gls},
  category={command}
}

@mainglscommand{glsnoidxdisplayloc,
  name={\csfmt{gls\-no\-idx\-display\-loc}},
  user1={\margm{prefix}\margm{counter}\margm{format}\margm{location}},
  description={used to display a regular location in the
  \field{location} field (with a hyperlink, if enabled)},
  topics={loclistcommands,linkcommands},
  note={\styfmt{glossaries} v4.04+},
  category={command}
}

@mainglscommand{glsxtrdisplaylocnameref,
  name={\csfmt{gls\-xtr\-display\-loc\-name\-ref}},
  user1={\margm{prefix}\margm{counter}\margm{format}\margm{location}\margm{title}\margm{href}\margm{hcounter}\margm{file}},
  description={used to display a \code{nameref} location in the
  \field{location} field (with a hyperlink, if enabled)},
  topics={loclistcommands,linkcommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.37+},
  category={command}
}

@mainglscommand{glsxtrdisplaysupploc,
  name={\csfmt{gls\-xtr\-display\-supp\-loc}},
  user1={\margm{prefix}\margm{counter}\margm{format}\margm{src}\margm{location}},
  description={used to display an external location in the
   supplementary list (with a hyperlink, if enabled)},
  topics={loclistcommands,linkcommands,supplementalrefs},
  note={\styfmt{glossaries-extra-bib2gls} v1.36+},
  category={command}
}

@mainglscommand{glsxtrmultisupplocation,
  name={\csfmt{gls\-xtr\-multi\-supp\-location}},
  user1={\margm{location}\margm{src}\margm{format}},
  description={used by \csref{glsxtrdisplaysupploc} to format the
  external location (with a hyperlink, if enabled)},
  topics={loclistcommands,linkcommands,formattingcommands,supplementalrefs},
  note={\styfmt{glossaries-extra-bib2gls} v1.36+},
  category={command}
}

@glscommand{glsxtrsupplocationurl,
  name={\csfmt{gls\-xtr\-supp\-loc\-a\-tion\-url}},
  description={set by \cs{glsxtrsupphypernumber}
  and \csref{glsxtrmultisupplocation} to the
   URL of the supplemental document for use by
    \cs{glshypernumber}},
  topics={loclistcommands,supplementalrefs},
  note={\styfmt{glossaries-extra} v1.14+},
  seealso={glshypernumber,glsxtrsupphypernumber,glsxtrmultisupplocation,glsxtrlocationhyperlink},
  category={command}
}

@glscommand{glsxtrlocationhyperlink,
  name={\csfmt{gls\-xtr\-loc\-a\-tion\-hyper\-link}},
  user1={\margm{counter}\margm{prefix}\margm{location}},
  description={used to create the location hyperlink,
   this tests if an internal or external link is required
   depending on the definition of \cs{glsxtrsupplocationurl}},
  topics={loclistcommands,linkcommands,supplementalrefs},
  note={\styfmt{glossaries-extra} v1.14+},
  seealso={glsxtrsupphypernumber,glsxtrsupplocationurl},
  category={command}
}

@glscommand{glsxtrsupphypernumber,
  name={\csfmt{gls\-xtr\-supp\-hyper\-num\-ber}},
  user1={\margm{location}},
  description={uses \cs{glshypernumber} to create a hyperlink
   to the given location (if hyperlinks are supported) but
   first checks the \catattr{externallocation} attribute to determine
   if an external link is required},
  topics={loclistcommands,linkcommands,supplementalrefs},
  note={\styfmt{glossaries-extra} v1.14+},
  seealso={glsxtrlocationhyperlink,glsxtrsupplocationurl},
  category={command}
}

@mainglscommand{glsxtr@record,
  name={\csfmt{glsxtr@record}},
  user1={\margm{label}\margm{prefix}\margm{counter}\margm{format}\margm{location}},
  description={this command is written to the \ext{aux} file each
   time an entry is indexed to provide \bibgls\ with the record information},
  topics={internalcommands,auxcommands,indexing},
  note={\styfmt{glossaries-extra} v1.08+},
  category={command}
}

@mainglscommand{glsxtr@record@nameref,
  name={\csfmt{glsxtr@record@name\-ref}},
  user1={\margm{label}\margm{prefix}\margm{counter}\margm{format}\margm{location}\margm{title}\margm{href}\margm{hcounter}},
  description={used instead of \csref{glsxtr@record} when the
   \styopt[nameref]{record} option is used},
  topics={internalcommands,auxcommands,indexing},
  note={\styfmt{glossaries-extra} v1.37+},
  category={command}
}

@mainglscommand{@bibgls@input,
  name={\csfmt{@bibgls@input}},
  user1={\margm{filename}},
  description={this command is written to the \ext{aux} file by the
\styopt{bibglsaux} option (or by \gls{glsxtrsetbibglsaux})},
  topics={internalcommands,auxcommands,indexing},
  seealso={switch.aux-input-action,glsxtrsetbibglsaux,styopt.bibglsaux},
  note={\styfmt{glossaries-extra} v1.49+\texparserdefnote},
  category={command}
}

@mainglscommand{glsxtrsetbibglsaux,
  name={\csfmt{gls\-xtr\-set\-bib\-gls\-aux}},
  user1={\margm{basename}},
  description={an alternative to the \styopt{bibglsaux} option, this creates a separate \ext{aux} file containing all
records, which is input using \cs{@bibgls@input} instead of
\cs{@input}},
  note={\styfmt{glossaries-extra} v1.49+},
  seealso={switch.aux-input-action,styopt.bibglsaux},
  topics={indexing},
  category={command}
}

@mainglscommand{glsxtrfieldlistadd,
  name={\csfmt{gls\-xtr\-field\-list\-add}},
  user1={\margm{label}\margm{field}\margm{item}},
  description={adds the given item to the given field that contains
   an \styfmt{etoolbox} internal list},
  topics={listcommands,assigncommands,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.12+},
  seealso={glsxtrfieldifinlist,glsxtrfieldforlistloop,glsxtrfielddolistloop},
  category={command}
}

@glscommand{glsxtrfieldifinlist,
  name={\csfmt{gls\-xtr\-field\-if\-in\-list}},
  user1={\margm{label}\margm{field}\margm{item}\margm{true}\margm{false}},
  description={tests if the given item is in the given field that contains
   an \styfmt{etoolbox} internal list},
  topics={listcommands,conditional,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.12+},
  seealso={glsxtrfieldxifinlist,glsxtrfieldlistadd,glsxtrfieldforlistloop,glsxtrfielddolistloop},
  category={command}
}

@glscommand{glsxtrfieldxifinlist,
  name={\csfmt{gls\-xtr\-field\-x\-if\-in\-list}},
  user1={\margm{label}\margm{field}\margm{item}\margm{true}\margm{false}},
  description={tests if the expansion of the given item is in the given field that contains
   an \styfmt{etoolbox} internal list},
  topics={listcommands,conditional,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.12+},
  seealso={glsxtrfieldifinlist},
  category={command}
}

@glscommand{glsxtrcontrolrules,
  name={\csfmt{gls\-xtr\-control\-rules}},
  user1={},
  description={collation sub-rule for control characters usually
placed at the start of a rule in the \qt{ignored characters} section
(although there typically won't be any control codes in sort fields)},
  topics={collationsubrules},
  note={\styfmt{glossaries-extra-bib2gls} v1.27+},
  category={command}
}

@glscommand{glsxtrcontrolIrules,
  name={\csfmt{gls\-xtr\-control\-I\-rules}},
  user1={},
  description={as \cs{glsxtrcontrolrules} but omits control codes
   \hex{0}, \hex{1C}, \hex{1D}, \hex{1E}, \hex{1F} and \hex{7F}},
  topics={collationsubrules},
  note={\styfmt{glossaries-extra-bib2gls} v1.54+},
  category={command}
}

@glscommand{glsxtrcontrolIIrules,
  name={\csfmt{gls\-xtr\-control\-II\-rules}},
  user1={},
  description={expands to the ordered set of \qt{information separator} control codes
   \hex{1C}, \hex{1D}, \hex{1E}, and \hex{1F}},
  topics={collationsubrules},
  note={\styfmt{glossaries-extra-bib2gls} v1.54+},
  category={command}
}

@glscommand{glsxtrspacerules,
  name={\csfmt{gls\-xtr\-space\-rules}},
  user1={},
  description={collation sub-rule for space characters},
  topics={collationsubrules},
  note={\styfmt{glossaries-extra-bib2gls} v1.27+},
  category={command}
}

@glscommand{glsxtrnonprintablerules,
  name={\csfmt{gls\-xtr\-non\-printable\-rules}},
  user1={},
  description={collation sub-rule for non-printable characters},
  topics={collationsubrules},
  note={\styfmt{glossaries-extra-bib2gls} v1.27+},
  category={command}
}

@glscommand{glsxtrcombiningdiacriticrules,
  name={\csfmt{gls\-xtr\-combining\-diacritic\-rules}},
  user1={},
  description={collation sub-rule for combining diacritic characters},
  topics={collationsubrules},
  note={\styfmt{glossaries-extra-bib2gls} v1.27+},
  category={command}
}

@glscommand{glsxtrhyphenrules,
  name={\csfmt{gls\-xtr\-hyphen\-rules}},
  user1={},
  description={collation sub-rule for hyphen characters},
  topics={collationsubrules},
  note={\styfmt{glossaries-extra-bib2gls} v1.27+},
  category={command}
}

@glscommand{glsxtrgeneralpuncrules,
  name={\csfmt{gls\-xtr\-general\-punc\-rules}},
  user1={},
  description={collation sub-rule for general punctuation characters},
  topics={collationsubrules},
  note={\styfmt{glossaries-extra-bib2gls} v1.27+},
  category={command}
}

@glscommand{glsxtrdigitrules,
  name={\csfmt{gls\-xtr\-digit\-rules}},
  user1={},
  description={collation sub-rule for digits from the basic Latin
set (0, \ldots, 9) as well as their subscript and superscript variants},
  topics={collationsubrules},
  note={\styfmt{glossaries-extra-bib2gls} v1.27+},
  category={command}
}

@glscommand{glsxtrfractionrules,
  name={\csfmt{gls\-xtr\-fraction\-rules}},
  user1={},
  description={collation sub-rule for vulgar fraction characters},
  topics={collationsubrules},
  note={\styfmt{glossaries-extra-bib2gls} v1.27+},
  category={command}
}

@glscommand{glsxtrMathItalicGreekIrules,
  name={\csfmt{gls\-xtr\-Math\-Italic\-Greek\-I\-rules}},
  user1={},
  description={collation sub-rule for math-Greek characters
(includes upright digamma between epsilon and zeta)},
  topics={collationsubrules},
  note={\styfmt{glossaries-extra-bib2gls} v1.27+},
  category={command}
}

@glscommand{glsxtrGeneralLatinIrules,
  name={\csfmt{gls\-xtr\-General\-Latin\-I\-rules}},
  user1={},
  description={collation sub-rule for Latin characters
(basic Latin set plus subscript and superscript Latin
characters)},
  topics={collationsubrules},
  note={\styfmt{glossaries-extra-bib2gls} v1.27+},
  seealso={glsxtrGeneralLatinIIrules,glsxtrGeneralLatinIIIrules,glsxtrGeneralLatinIVrules,glsxtrGeneralLatinVrules,glsxtrGeneralLatinVIrules,glsxtrGeneralLatinVIIrules,glsxtrGeneralLatinVIIIrules},
  category={command}
}

@glscommand{glsxtrGeneralLatinIIrules,
  name={\csfmt{gls\-xtr\-General\-Latin\-II\-rules}},
  user1={},
  description={collation sub-rule for Latin characters
(as \cs{glsxtrGeneralLatinIrules} but includes \DH/\dh\ between D/d
and E/e
and \ss\ treated as \qt{ss})},
  topics={collationsubrules},
  note={\styfmt{glossaries-extra-bib2gls} v1.27+},
  category={command}
}

@glscommand{glsxtrGeneralLatinIIIrules,
  name={\csfmt{gls\-xtr\-General\-Latin\-III\-rules}},
  user1={},
  description={collation sub-rule for Latin characters
(as \cs{glsxtrGeneralLatinIrules} but includes \DH/\dh\ between D/d
and E/e
and \ss\ treated as \qt{sz})},
  topics={collationsubrules},
  note={\styfmt{glossaries-extra-bib2gls} v1.27+},
  category={command}
}

@glscommand{glsxtrGeneralLatinIVrules,
  name={\csfmt{gls\-xtr\-General\-Latin\-IV\-rules}},
  user1={},
  description={collation sub-rule for Latin characters
(as \cs{glsxtrGeneralLatinIrules} but includes \DH/\dh\ between D/d
and E/e
and \AE/\ae\ treated as AE/ae, \OE/\oe\ treated
as OE/oe, \TH/\th\ treated as TH/th and \ss\ treated as \qt{ss})},
  topics={collationsubrules},
  note={\styfmt{glossaries-extra-bib2gls} v1.27+},
  category={command}
}

@glscommand{glsxtrGeneralLatinVrules,
  name={\csfmt{gls\-xtr\-General\-Latin\-V\-rules}},
  user1={},
  description={collation sub-rule for Latin characters
(as \cs{glsxtrGeneralLatinIrules} but includes \DH/\dh\ between D/d
and E/e
and \TH/\th\ treated as TH/th and \ss\ treated as \qt{ss})},
  topics={collationsubrules},
  note={\styfmt{glossaries-extra-bib2gls} v1.27+},
  category={command}
}

@glscommand{glsxtrGeneralLatinVIrules,
  name={\csfmt{gls\-xtr\-General\-Latin\-VI\-rules}},
  user1={},
  description={collation sub-rule for Latin characters
(as \cs{glsxtrGeneralLatinIrules} but includes \DH/\dh\ between D/d
and E/e
and \TH/\th\ treated as TH/th and \ss\ treated as \qt{sz})},
  topics={collationsubrules},
  note={\styfmt{glossaries-extra-bib2gls} v1.27+},
  category={command}
}

@glscommand{glsxtrGeneralLatinVIIrules,
  name={\csfmt{gls\-xtr\-General\-Latin\-VII\-rules}},
  user1={},
  description={collation sub-rule for Latin characters:
as \cs{glsxtrGeneralLatinIrules} but includes \AE/\ae\ between A/a
and B/b,
\DH/\dh\ between D/d and E/e, \insularG/\insularg\ (insular G) as
G/g, \OE/\oe\
between O/o and P/p, \longs\ (long S)
equivalent to S/s, \TH/\th\ between T/t and U/u and \Wynn/\wynn\
(wynn) as W/w},
  topics={collationsubrules},
  note={\styfmt{glossaries-extra-bib2gls} v1.27+},
  category={command}
}

@glscommand{glsxtrGeneralLatinVIIIrules,
  name={\csfmt{gls\-xtr\-General\-Latin\-VIII\-rules}},
  user1={},
  description={collation sub-rule for Latin characters:
as \cs{glsxtrGeneralLatinIrules} but includes \AE/\ae\ treated as
A/a, \OE/\oe\ treated as OE/oe, \TH/\th\ treated as TH/th, \ss\
treated as \qt{ss}, \DH/\dh\ treated as D/d, \O/\o\ treated as O/o
and \L/\l\ treated as L/l},
  topics={collationsubrules},
  note={\styfmt{glossaries-extra-bib2gls} v1.27+},
  category={command}
}

@glscommand{glsxtrLatinAA,
  name={\csfmt{gls\-xtr\-Latin\-AA}},
  user1={},
  description={collation sub-rule for \AA/\aa},
  topics={collationsubrules},
  note={\styfmt{glossaries-extra-bib2gls} v1.27+},
  category={command}
}

@glscommand{glsxtrLatinOslash,
  name={\csfmt{gls\-xtr\-Latin\-O\-slash}},
  user1={},
  description={collation sub-rule for \O/\o},
  topics={collationsubrules},
  note={\styfmt{glossaries-extra-bib2gls} v1.27+},
  category={command}
}

@command{alpha,
  name={\csfmt{alpha}},
  user1={},
  description={Greek letter alpha $\alpha$},
  note={kernel command\texparserdefnote\ (maths mode)},
  category={command}
}

@command{pi,
  name={\csfmt{pi}},
  user1={},
  description={Greek letter pi $\pi$},
  note={kernel command\texparserdefnote\ (maths mode)},
  category={command}
}

@command{sigma,
  name={\csfmt{sigma}},
  user1={},
  description={Greek letter sigma $\sigma$},
  note={kernel command\texparserdefnote\ (maths mode)},
  category={command}
}

@glscommand{omicron,
  name={\csfmt{omicron}},
  user1={},
  description={Greek letter omicron $\omicron$},
  topics={charcommands},
  note={\styfmt{glossaries-extra-bib2gls}\texparserdefnote},
  category={command}
}

@glscommand{Alpha,
  name={\csfmt{Alpha}},
  user1={},
  description={Greek letter alpha $\Alpha$},
  topics={charcommands},
  note={\styfmt{glossaries-extra-bib2gls}\texparserdefnote},
  category={command}
}

@command{approx,
  name={\csfmt{approx}},
  user1={},
  description={approximate symbol $\approx$},
  note={kernel command\texparserdefnote\ (maths mode)},
  category={command}
}

@command{surd,
  name={\csfmt{surd}},
  user1={},
  description={surd symbol $\surd$},
  note={kernel command\texparserdefnote\ (maths mode)},
  category={command}
}

@command{triangleright,
  name={\csfmt{triangle\-right}},
  user1={},
  description={right-pointing triangle $\triangleright$},
  note={kernel command\texparserdefnote\ (maths mode)},
  category={command}
}

@command{vert,
  name={\csfmt{vert}},
  user1={},
  description={vertical bar delimiter $\vert$},
  note={kernel command\texparserdefnote\ (maths mode)},
  category={command}
}

@command{Vert,
  name={\csfmt{Vert}},
  user1={},
  description={double vertical bar delimiter $\Vert$},
  note={kernel command\texparserdefnote\ (maths mode)},
  category={command}
}

@command{lvert,
  name={\csfmt{lvert}},
  user1={},
  description={left vertical bar delimiter $\lvert$},
  note={\styfmt{amsmath}\texparserdefnote\ (maths mode)},
  category={command}
}

@command{rvert,
  name={\csfmt{rvert}},
  user1={},
  description={right vertical bar delimiter $\rvert$},
  note={\styfmt{amsmath}\texparserdefnote\ (maths mode)},
  category={command}
}

@command{lVert,
  name={\csfmt{lVert}},
  user1={},
  description={left double vertical bar delimiter $\lVert$},
  note={\styfmt{amsmath}\texparserdefnote\ (maths mode)},
  category={command}
}

@command{rVert,
  name={\csfmt{rVert}},
  user1={},
  description={right double vertical bar delimiter $\rVert$},
  note={\styfmt{amsmath}\texparserdefnote\ (maths mode)},
  category={command}
}

@command{textstyle,
  name={\csfmt{text\-style}},
  user1={},
  description={switch to in-line maths style (vertically compact)},
  note={kernel command (maths mode)},
  category={command}
}

@command{displaystyle,
  name={\csfmt{display\-style}},
  user1={},
  description={switch to display maths style},
  note={kernel command (maths mode)},
  category={command}
}

@examplecommand{bigoperatornamefmt,
  name={\csfmt{big\-operator\-name\-fmt}},
  user1={\margm{text}},
  description={example command},
  category={command}
}

@examplecommand{nary,
  name={\csfmt{nary}},
  user1={\margm{text}},
  description={example command},
  category={command}
}

@examplecommand{strong,
  name={\csfmt{strong}},
  user1={\margm{text}},
  description={example command},
  category={command}
}

@examplecommand{parenswap,
  name={\csfmt{parenswap}},
  user1={\margm{text1}\margm{text2}},
  description={example command},
  category={command}
}

@examplecommand{sortop,
  name={\csfmt{sortop}},
  user1={\margm{text1}\margm{text2}},
  description={example command},
  category={command}
}

@examplecommand{sortname,
  name={\csfmt{sortname}},
  user1={\margm{first name(s)}\margm{surname}},
  description={example command},
  category={command}
}

@examplecommand{sortvonname,
  name={\csfmt{sort\-von\-name}},
  user1={\margm{first name(s)}\margm{von}\margm{surname}},
  description={example command},
  category={command}
}

@examplecommand{sortart,
  name={\csfmt{sortart}},
  user1={\margm{article}\margm{text}},
  description={example command},
  category={command}
}

@examplecommand{sortmediacreator,
  name={\csfmt{sort\-media\-creator}},
  user1={\margm{first name(s)}\margm{surname}},
  description={example command},
  category={command}
}

@examplecommand{setfmt,
  name={\csfmt{setfmt}},
  user1={\margm{symbol}},
  description={example command},
  category={command}
}

@examplecommand{setcontentsfmt,
  name={\csfmt{setcontentsfmt}},
  user1={\margm{contents}},
  description={example command},
  category={command}
}

@examplecommand{setmembershipfmt,
  name={\csfmt{setmembershipfmt}},
  user1={\margm{variable(s)}\margm{condition}},
  description={example command},
  category={command}
}

@examplecommand{setmembershiponeargfmt,
  name={\csfmt{setmembershiponeargfmt}},
  user1={\marg{\margm{variable(s)}\margm{condition}}},
  description={example command},
  category={command}
}

@examplecommand{setcardfmt,
  name={\csfmt{setcardfmt}},
  user1={\margm{maths}},
  description={example command},
  category={command}
}

@examplecommand{numspacefmt,
  name={\csfmt{numspacefmt}},
  user1={\margm{symbol}},
  description={example command},
  category={command}
}

@examplecommand{transposefmt,
  name={\csfmt{transposefmt}},
  user1={\margm{maths}},
  description={example command},
  category={command}
}

@examplecommand{invfmt,
  name={\csfmt{invfmt}},
  user1={\margm{maths}},
  description={example command},
  category={command}
}

@examplecommand{vecfmt,
  name={\csfmt{vecfmt}},
  user1={\margm{symbol}},
  description={example command},
  category={command}
}

@examplecommand{mtxfmt,
  name={\csfmt{mtxfmt}},
  user1={\margm{symbol}},
  description={example command},
  category={command}
}

@index{fileformats,
  name={file formats},
  text={file format}
}

@fileformat{ext.tex,
  name={\extfmt{tex}},
  category={fileformat},
  parent={fileformats}
}

@fileformat{ext.bib,
  name={\extfmt{bib}},
  category={fileformat},
  parent={fileformats}
}

@fileformat{ext.aux,
  name={\extfmt{aux}},
  category={fileformat},
  parent={fileformats}
}

@fileformat{ext.out,
  name={\extfmt{out}},
  category={fileformat},
  parent={fileformats}
}

@fileformat{ext.sh,
  name={\extfmt{sh}},
  category={fileformat},
  parent={fileformats}
}

@fileformat{ext.bat,
  name={\extfmt{bat}},
  category={fileformat},
  parent={fileformats}
}

@fileformat{ext.jar,
  name={\extfmt{jar}},
  category={fileformat},
  parent={fileformats}
}

@fileformat{ext.glg,
  name={\extfmt{glg}},
  category={fileformat},
  parent={fileformats}
}

@fileformat{ext.log,
  name={\extfmt{log}},
  category={fileformat},
  parent={fileformats}
}

@fileformat{ext.toc,
  name={\extfmt{toc}},
  category={fileformat},
  parent={fileformats}
}

@fileformat{ext.glstex,
  name={\extfmt{glstex}},
  category={fileformat},
  parent={fileformats}
}

@fileformat{ext.gls,
  name={\extfmt{gls}},
  category={fileformat},
  parent={fileformats}
}

@fileformat{ext.bbl,
  name={\extfmt{bbl}},
  category={fileformat},
  parent={fileformats}
}

@fileformat{ext.dbtex,
  name={\extfmt{dbtex}},
  category={fileformat},
  parent={fileformats}
}

@fileformat{ext.dtltex,
  name={\extfmt{dtltex}},
  category={fileformat},
  parent={fileformats}
}

@fileformat{ext.csv,
  name={\extfmt{csv}},
  category={fileformat},
  parent={fileformats}
}

@fileformat{ext.tsv,
  name={\extfmt{tsv}},
  category={fileformat},
  parent={fileformats}
}

@index{applications,
  name={applications},
  text={applications}
}

@application{bibtex,
  name={\appfmt{bibtex}},
  category={application},
  parent={applications}
}

@application{biber,
  name={\appfmt{biber}},
  category={application},
  parent={applications}
}

@application{makeindex,
  name={\appfmt{make\-index}},
  category={application},
  parent={applications}
}

@application{xindy,
  name={\appfmt{xindy}},
  category={application},
  parent={applications}
}

@application{makeglossaries,
  name={\appfmt{make\-glos\-saries}},
  category={application},
  parent={applications}
}

@application{makeglossaries-lite,
  name={\appfmt{make\-glos\-saries\dhyphen lite}},
  category={application},
  parent={applications}
}

@application{kpsewhich,
  name={\appfmt{kpsewhich}},
  category={application},
  parent={applications}
}

@application{arara,
  name={\appfmt{arara}},
  category={application},
  parent={applications}
}

@application{convertgls2bib,
  name={\appfmt{convert\-gls2bib}},
  category={application},
  parent={applications}
}

@application{datatool2bib,
  name={\appfmt{data\-tool2bib}},
  category={application},
  parent={applications}
}

@index{packages,
   name={packages},
   text={package}
}

@package{glossaries,
  name={\styfmt{glossaries}},
  category={package},
  parent={packages}
}

@package{glossaries-extra,
  name={\styfmt{glossaries-extra}},
  category={package},
  parent={packages}
}

@package{pifont,
  name={\styfmt{pifont}},
  category={package},
  parent={packages}
}

@package{upgreek,
  name={\styfmt{upgreek}},
  category={package},
  parent={packages}
}

@package{xspace,
  name={\styfmt{xspace}},
  category={package},
  parent={packages}
}

@package{fourier,
  name={\styfmt{fourier}},
  category={package},
  parent={packages}
}

@package{lipsum,
  name={\styfmt{lipsum}},
  category={package},
  parent={packages}
}

@package{natbib,
  name={\styfmt{natbib}},
  category={package},
  parent={packages}
}

@package{xkeyval,
  name={\styfmt{xkeyval}},
  category={package},
  parent={packages}
}

@package{textcomp,
  name={\styfmt{textcomp}},
  category={package},
  parent={packages}
}

@package{MnSymbol,
  name={\styfmt{MnSymbol}},
  category={package},
  parent={packages}
}

@package{wasysym,
  name={\styfmt{wasysym}},
  category={package},
  parent={packages}
}

@package{amssymb,
  name={\styfmt{amssymb}},
  category={package},
  parent={packages}
}

@package{stix,
  name={\styfmt{stix}},
  category={package},
  parent={packages}
}

@package{mhchem,
  name={\styfmt{mhchem}},
  category={package},
  parent={packages}
}

@package{bpchem,
  name={\styfmt{bpchem}},
  category={package},
  parent={packages}
}

@package{siunitx,
  name={\styfmt{siunitx}},
  category={package},
  parent={packages}
}

@package{tipa,
  name={\styfmt{tipa}},
  category={package},
  parent={packages}
}

@package{mfirstuc,
  name={\styfmt{mfirstuc}},
  category={package},
  parent={packages}
}

@package{mfirstuc-english,
  name={\styfmt{mfirstuc-english}},
  category={package},
  parent={packages}
}

@package{hyperref,
  name={\styfmt{hyperref}},
  category={package},
  parent={packages}
}

@package{glossary-hypernav,
  name={\styfmt{glossary\dhyphen hypernav}},
  category={package},
  parent={packages}
}

@package{glossaries-prefix,
  name={\styfmt{glossaries\dhyphen prefix}},
  category={package},
  parent={packages}
}

@package{glossaries-accsupp,
  name={\styfmt{glossaries\dhyphen accsupp}},
  category={package},
  parent={packages}
}

@package{glossaries-extra-stylemods,
  name={\styfmt{glossaries\dhyphen extra\dhyphen stylemods}},
  category={package},
  parent={packages}
}

@package{glossaries-extra-bib2gls,
  name={\styfmt{glossaries\dhyphen extra\dhyphen bib2gls}},
  category={package},
  parent={packages}
}

@package{glossary-list,
  name={\styfmt{glossary\dhyphen list}},
  category={package},
  parent={packages}
}

@package{glossary-tree,
  name={\styfmt{glossary\dhyphen tree}},
  category={package},
  parent={packages}
}

@package{glossary-topic,
  name={\styfmt{glossary\dhyphen topic}},
  category={package},
  parent={packages}
}

@package{glossary-mcols,
  name={\styfmt{glossary\dhyphen mcols}},
  category={package},
  parent={packages}
}

@package{glossary-long,
  name={\styfmt{glossary\dhyphen long}},
  category={package},
  parent={packages}
}

@package{glossary-super,
  name={\styfmt{glossary\dhyphen super}},
  category={package},
  parent={packages}
}

@package{glossary-longbooktabs,
  name={\styfmt{glossary\dhyphen longbooktabs}},
  category={package},
  parent={packages}
}

@package{glossary-bookindex,
  name={\styfmt{glossary\dhyphen bookindex}},
  category={package},
  parent={packages}
}

@package{glossary-longextra,
  name={\styfmt{glossary\dhyphen longextra}},
  category={package},
  parent={packages}
}

@package{booktabs,
  name={\styfmt{booktabs}},
  category={package},
  parent={packages}
}

@package{color,
  name={\styfmt{color}},
  category={package},
  parent={packages}
}

@package{graphics,
  name={\styfmt{graphics}},
  category={package},
  parent={packages}
}

@package{graphicx,
  name={\styfmt{graphicx}},
  category={package},
  parent={packages}
}

@package{ifthen,
  name={\styfmt{ifthen}},
  category={package},
  parent={packages}
}

@package{probsoln,
  name={\styfmt{probsoln}},
  category={package},
  parent={packages}
}

@package{shortvrb,
  name={\styfmt{shortvrb}},
  category={package},
  parent={packages}
}

@package{jmlrutils,
  name={\styfmt{jmlrutils}},
  category={package},
  parent={packages}
}

@package{inputenc,
  name={\styfmt{inputenc}},
  category={package},
  parent={packages}
}

@package{fontenc,
  name={\styfmt{fontenc}},
  category={package},
  parent={packages}
}

@package{slantsc,
  name={\styfmt{slantsc}},
  category={package},
  parent={packages}
}

@package{relsize,
  name={\styfmt{relsize}},
  category={package},
  parent={packages}
}

@package{babel,
  name={\styfmt{babel}},
  category={package},
  parent={packages}
}

@package{polyglossia,
  name={\styfmt{poly\-glossia}},
  category={package},
  parent={packages}
}

@package{fontspec,
  name={\styfmt{font\-spec}},
  category={package},
  parent={packages}
}

@package{amsmath,
  name={\styfmt{amsmath}},
  category={package},
  parent={packages}
}

@package{textcase,
  name={\styfmt{text\-case}},
  category={package},
  parent={packages}
}

@package{datetime2,
  name={\styfmt{date\-time2}},
  category={package},
  parent={packages}
}

@package{datatool-base,
  name={\styfmt{data\-tool\dhyphen base}},
  category={package},
  parent={packages}
}

@package{datatool,
  name={\styfmt{data\-tool}},
  category={package},
  parent={packages}
}

@package{datagidx,
  name={\styfmt{data\-gidx}},
  category={package},
  parent={packages}
}

@package{etoolbox,
  name={\styfmt{etool\-box}},
  category={package},
  parent={packages}
}

@package{soul,
  name={\styfmt{soul}},
  category={package},
  parent={packages}
}

@package{xcolor,
  name={\styfmt{xcolor}},
  category={package},
  parent={packages}
}

@package{tracklang,
  name={\styfmt{track\-lang}},
  category={package},
  parent={packages}
}

@package{accsupp,
  name={\styfmt{acc\-supp}},
  category={package},
  parent={packages}
}

@index{field-reference,
  name={field reference (string concatenation)},
  text={field reference}
}

@index{stringconcatenation,
  name={string concatenation}
}

@index{concatenation,
 alias={stringconcatenation}
}

@symbol{stringconcat,
  name={\code{\#} (\extfmt{bib} string concatenation)},
  text={\code{\#}}
}

@symbol{atchar,
  name={\code{@} (bib entry identifier)},
  text={\code{@}}
}

@specialchar{param,
  name={\code{\#} (parameter)},
  text={\code{\#}}
}

@symbol{hashchar,
  name={\code{\#} (literal)},
  text={\code{\#}}
}

@command{cs.hash,
  name={\csfmt{\#}},
  description={produces the hash symbol \#},
  note={kernel command\texparserdefnote},
  category={command}
}

@specialchar{colsep,
  name={\code{\&} (alignment)},
  text={\code{\&}}
}

@symbol{ampchar,
  name={\code{\&} (literal)},
  text={\code{\&}}
}

@symbol{ampand,
  name={\code{\&} (boolean AND)},
  text={\code{\&}}
}

@command{cs.amp,
  name={\csfmt{\&}},
  description={produces the ampersand symbol \&},
  note={kernel command\texparserdefnote},
  category={command}
}

@specialchar{bgroupchar,
  name={\code{\glsopenbrace} (begin group)},
  text={\code{\glsopenbrace}}
}

@symbol{openbracechar,
  name={\code{\glsopenbrace} (literal)},
  text={\code{\glsopenbrace}}
}

@command{cs.openbrace,
  name={\csfmt{\glsopenbrace}},
  description={produces the open brace symbol \glsopenbrace},
  note={kernel command\texparserdefnote},
  category={command}
}

@specialchar{egroupchar,
  name={\code{\glsclosebrace} (end group)},
  text={\code{\glsclosebrace}}
}

@symbol{closebracechar,
  name={\code{\glsclosebrace} (literal)},
  text={\code{\glsclosebrace}}
}

@command{cs.closebrace,
  name={\csfmt{\glsclosebrace}},
  description={produces the close brace symbol \glsclosebrace},
  note={kernel command\texparserdefnote},
  category={command}
}

@specialchar{commentchar,
  name={\code{\%} (comment)},
  text={\code{\%}}
}

@symbol{percentchar,
  name={\code{\%} (literal)},
  text={\code{\%}}
}

@command{cs.percent,
  name={\csfmt{\%}},
  description={produces the percent symbol \%},
  note={kernel command\texparserdefnote},
  category={command}
}

@specialchar{sbchar,
  name={\code{\_} (subscript)},
  text={\code{\_}}
}

@symbol{underscorechar,
  name={\code{\_} (literal)},
  text={\code{\_}}
}

@command{cs.underscore,
  name={\csfmt{\_}},
  description={produces the underscore symbol \_},
  note={kernel command\texparserdefnote},
  category={command}
}

@specialchar{spchar,
  name={\code{\char`\^} (superscript)},
  text={\code{\char`\^}}
}

@symbol{circumchar,
  name={\code{\char`\^} (literal)},
  text={\code{\char`\^}}
}

@command{cs.circum,
  name={\csfmt{\char`\^}},
  user1={\margm{character}},
  description={puts a circumflex accent over \meta{character}},
  note={kernel command\texparserdefnote},
  category={command}
}

@symbol{regex.circum,
  name={\code{\char`\^} (regular expression)},
  text={\code{\char`\^}}
}

@symbol{regex.dollar,
  name={\code{\char`\$} (regular expression)},
  text={\code{\char`\$}}
}

@specialchar{mshiftchar,
  name={\code{\$} (maths shift)},
  text={\code{\$}}
}

@symbol{dollarchar,
  name={\code{\$} (literal)},
  text={\code{\$}}
}

@command{cs.dollar,
  name={\csfmt{\$}},
  description={produces the dollar symbol \$},
  note={kernel command\texparserdefnote},
  category={command}
}

@specialchar{escchar,
  name={\code{\glsbackslash} (escape)},
  text={\code{\glsbackslash}}
}

@symbol{backslashchar,
  name={\code{\glsbackslash} (literal)},
  text={\code{\glsbackslash}}
}

% See QUARKS for literal \\ in regular expression

@command{cs.backslash,
  name={\csfmt{\glsbackslash}},
  user1={\oargm{len}},
  description={starts a new row in a tabular or array context
with an extra vertical space of length \meta{len} above it
(starred form prohibits a page break)},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{tabularnewline,
  name={\csfmt{tabular\-new\-line}},
  user1={\oargm{len}},
  description={tabular version of \idx{cs.backslash} (avoids conflict
with forced line breaks in paragraph column formats)},
  note={kernel command},
  category={command}
}

@specialchar{nbspchar,
  name={\code{\glstildechar} (non-breakable space)},
  text={\code{\glstildechar}}
}

@symbol{tildechar,
  name={\code{\glstildechar} (literal)},
  text={\code{\glstildechar}}
}

@symbol{doublequotechardelim,
  name = {\code{"} (delimiter)},
  text = {\code{"}}
}

@symbol{doublequotecharhex,
  name = {\code{"} (hexadecimal identifier)},
  text = {\code{"}}
}

@specialchar{doublequoteactivechar,
  name = {\code{"} (active)},
  text = {\code{"}}
}

@symbol{doublequotechar,
  name = {\code{"} (literal)},
  text = {\code{"}}
}

@symbol{openrange,
  name = {\code{\rangestartmark} (start range)},
  text = {\code{\rangestartmark}}
}

@symbol{regexp.startgroup,
  name={\code{\rangestartmark} (regular expression, start group)},
  text={\code{\rangestartmark}}
}

@symbol{openparenchar,
  name = {\code{\rangestartmark} (literal open parenthesis)},
  text = {\code{\rangestartmark}}
}

@symbol{closerange,
  name = {\code{\rangeendmark} (end range)},
  text = {\code{\rangeendmark}}
}

@symbol{regexp.endgroup,
  name={\code{\rangeendmark} (regular expression, end group)},
  text={\code{\rangeendmark}}
}

@symbol{closeparenchar,
  name = {\code{\rangeendmark} (literal close parenthesis)},
  text = {\code{\rangeendmark}}
}

@symbol{regexp.startclass,
  name={\code{[} (regular expression, start class)},
  text={\code{[}}
}

@symbol{regexp.endclass,
  name={\code{]} (regular expression, end class)},
  text={\code{]}}
}

@symbol{opensqchar,
  name = {\code{[} (literal open square bracket)},
  text = {\code{[}}
}

@symbol{closesqchar,
  name = {\code{]} (literal close square bracket)},
  text = {\code{]}}
}

@symbol{startoptional,
  name = {\code{[} (optional)},
  text = {\code{[}}
}

@symbol{endoptional,
  name = {\code{]} (optional)},
  text = {\code{]}}
}

@command{cs.tilde,
  name={\csfmt{\glstildechar}},
  user1={\margm{character}},
  description={puts tilde accent over \meta{character}},
  note={kernel command\texparserdefnote},
  category={command}
}

@symbol{slashchar,
  name={\code{/}}
}

@symbol{equalschar,
  name={\code{=} (literal)},
  text={\code{=}}
}

@symbol{equalsassign,
  name={\code{=} (assignment)},
  text={\code{=}}
}

@symbol{equalscmp,
  name={\code{=} (comparison)},
  text={\code{=}}
}

@symbol{notequalscmp,
  name={\code{<>} (comparison)},
  text={\code{<>}}
}

@symbol{ltcmp,
  name={\code{<} (comparison)},
  text={\code{<}}
}

@symbol{ltchar,
  name={\code{<} (literal)},
  text={\code{<}}
}

@symbol{regex.lt,
  name={\code{<} (regular expression)},
  text={\code{<}}
}

@symbol{lecmp,
  name={\code{<=} (comparison)},
  text={\code{<=}}
}

@symbol{gtcmp,
  name={\code{>} (comparison)},
  text={\code{>}}
}

@symbol{gtchar,
  name={\code{>} (literal)},
  text={\code{>}}
}

@symbol{regex.gt,
  name={\code{>} (regular expression)},
  text={\code{>}}
}

@symbol{gecmp,
  name={\code{>=} (comparison)},
  text={\code{>=}}
}

@symbol{hyphenchar,
  name={\code{-} (literal)},
  text={\code{-}}
}

@symbol{follow,
  name={\code{->} (field ref)},
  text={\code{->}}
}

@command{comma,
  name={\csfmt{,}},
  description={thin space},
  note={kernel command\texparserdefnote},
  category={command}
}

@symbol{commasep,
  name={\code{,} (separator)},
  text={\code{,}}
}

@command{vec,
  name={\csfmt{vec}},
  user1={\margm{character}},
  description={puts right arrow accent over \meta{character}},
  note={kernel command\texparserdefnote\ (maths mode)},
  category={command}
}

@symbol{zeroormore,
  name={\code{*} (regular expression, zero or more)},
  text={\code{*}}
}

@symbol{starchar,
  name={\code{*} (literal)},
  text={\code{*}}
}

@symbol{oneormore,
  name={\code{+} (regular expression, one or more)},
  text={\code{+}}
}

@symbol{pluschar,
  name={\code{+} (literal)},
  text={\code{+}}
}

@symbol{concat-plus,
  name={\code{+} (resource option concatenation)},
  text={\code{+}}
}

@symbol{regex.question,
  name={\code{?} (regular expression, zero or one)},
  text={\code{?}}
}

@symbol{questionchar,
  name={\code{?} (literal)},
  text={\code{?}}
}

@symbol{regexpor,
  name={\code{|} (regular expression or)},
  text={\code{|}}
}

@symbol{pipechar,
  name={\code{|}}
}

@symbol{pipeor,
  name={\code{|} (boolean OR)},
  text={\code{|}}
}

@symbol{colonchar,
  name={\code{:} (literal)},
  text={\code{:}}
}

@symbol{exclamnot,
  name={\code{!} (boolean NOT)},
  text={\code{!}}
}

@symbol{matchanydot,
  name={\code{.}\ (regular expression, match any)},
  text={\code{.}}
}

@symbol{periodchar,
  name={\code{.}\ (end of sentence)},
  text={\code{.}},
  alias={full-stop}
}

@command{cs.period,
  name={\csfmt{.}},
  user1={\margm{character}},
  description={puts a dot accent over \meta{character}},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{cs.space,
  name={\csfmt{\textvisiblespace}},
  description={produces an inter-word space},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{space,
  name={\csfmt{space}},
  description={produces a space},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{nobreakspace,
  name={\csfmt{no\-break\-space}},
  description={produces a non-breakable space},
  note={kernel command\texparserdefnote},
  category={command}
}

@symbol{aposchar,
  name={\code{'} (apostrophe)},
  text={\code{'}},
  alias={apostrophe}
}

@command{def,
  name={\csfmt{def}},
  user1={\margm{cs}\meta{syntax}\margm{definition}},
  description={defines the control sequence \meta{cs}, without checking if the command
   already exists},
  note={\TeX\ primitive\texparserdefnote},
  category={command}
}

@command{edef,
  name={\csfmt{edef}},
  user1={\margm{cs}\meta{syntax}\margm{definition}},
  description={defines the control sequence \meta{cs} to the full
expansion of \meta{definition}, without checking if the command
   already exists},
  note={\TeX\ primitive\texparserdefnote},
  category={command}
}

@command{ifstrempty,
  name={\csfmt{if\-str\-empty}},
  user1={\margm{string}\margm{true}\margm{false}},
  description={tests if \meta{string} is empty},
  note={\styfmt{etoolbox}},
  category={command}
}

@command{ifstrequal,
  name={\csfmt{if\-str\-equal}},
  user1={\margm{string1}\margm{string2}\margm{true}\margm{false}},
  description={tests if \meta{string1} equals \meta{string2}},
  note={\styfmt{etoolbox}},
  category={command}
}

@command{ifcsstring,
  name={\csfmt{if\-cs\-string}},
  user1={\margm{cs-name}\margm{string}\margm{true}\margm{false}},
  description={tests if the replacement text of the command
  given by the control sequence name \meta{cs-name} equals \meta{string}},
  note={\styfmt{etoolbox}},
  category={command}
}

@command{ifdefstrequal,
  name={\csfmt{if\-def\-str\-equal}},
  user1={\margm{cs1}\margm{cs2}\margm{true}\margm{false}},
  description={tests if the replacement text of the command
  \meta{cs1} equals the replacement text of the command \meta{cs2}},
  note={\styfmt{etoolbox}},
  category={command}
}

@command{ifcsstrequal,
  name={\csfmt{if\-cs\-str\-equal}},
  user1={\margm{cs-name1}\margm{cs-name2}\margm{true}\margm{false}},
  description={tests if the replacement text of the command given by
  the control sequence name \meta{cs-name1} equals the replacement text 
  of the command given by the control sequence name \meta{cs-name2}},
  note={\styfmt{etoolbox}},
  category={command}
}

@command{undef,
  name={\csfmt{undef}},
  user1={\meta{cs}},
  description={undefines the control sequence \meta{cs}},
  note={\styfmt{etoolbox}\texparserdefnote},
  category={command}
}

@command{csdef,
  name={\csfmt{csdef}},
  user1={\margm{cs-name}\meta{syntax}\margm{definition}},
  description={defines the control sequence whose name
   is given by \meta{cs-name}, without checking if the command
   already exists},
  note={\styfmt{etoolbox}\texparserdefnote},
  category={command}
}

@command{csuse,
  name={\csfmt{csuse}},
  user1={\margm{cs-name}},
  description={uses the control sequence whose name
   is given by \meta{cs-name} or does nothing if the command
   isn't defined},
  note={\styfmt{etoolbox}\texparserdefnote},
  category={command}
}

@command{newrobustcmd,
  name={\csfmt{new\-robust\-cmd}},
  user1={\margm{cs}\oargm{n}\oargm{def}\margm{code}},
  description={behaves like \cs{newcommand} but the newly defined
command will be robust},
  note={\styfmt{etoolbox}},
  category={command}
}

@command{ifdefempty,
  name={\csfmt{if\-def\-empty}},
  user1={\margm{cs}\margm{true}\margm{false}},
  description={tests if the control sequence \meta{cs} is empty},
  note={\styfmt{etoolbox}\texparserdefnote},
  category={command}
}

@command{ifcsundef,
  name={\csfmt{if\-cs\-un\-def}},
  user1={\margm{cs-name}\margm{true}\margm{false}},
  description={tests if the control sequence given by \meta{cs-name}
is undefined},
  note={\styfmt{etoolbox}},
  category={command}
}

@command{ifcsdef,
  name={\csfmt{if\-cs\-def}},
  user1={\margm{cs-name}\margm{true}\margm{false}},
  description={tests if the control sequence given by \meta{cs-name}
is defined},
  note={\styfmt{etoolbox}},
  category={command}
}

@command{ifdef,
  name={\csfmt{if\-def}},
  user1={\margm{cs}\margm{true}\margm{false}},
  description={tests if the control sequence \meta{cs} is defined},
  note={\styfmt{etoolbox}\texparserdefnote},
  category={command}
}

@command{xifinlist,
  name={\csfmt{xifinlist}},
  user1={\margm{element}\margm{list cs}\margm{true}\margm{false}},
  description={tests if the expansion of \meta{element} is in the list stored
   in the control sequence \meta{list cs}},
  note={\styfmt{etoolbox}},
  category={command}
}

@command{ifinlist,
  name={\csfmt{ifinlist}},
  user1={\margm{element}\margm{list cs}\margm{true}\margm{false}},
  description={tests if \meta{element} is in the list stored
   in the control sequence \meta{list cs}},
  note={\styfmt{etoolbox}},
  category={command}
}

@command{listxadd,
  name={\csfmt{listxadd}},
  user1={\margm{list cs}\margm{element}},
  description={globally adds (expanded) \meta{element} to the list stored
   in the control sequence \meta{list cs}},
  note={\styfmt{etoolbox}},
  category={command}
}

@command{listgadd,
  name={\csfmt{listgadd}},
  user1={\margm{list cs}\margm{element}},
  description={globally adds \meta{element} to the list stored
   in the control sequence \meta{list cs}},
  note={\styfmt{etoolbox}},
  category={command}
}

@command{appto,
  name={\csfmt{appto}},
  user1={\margm{cs}\margm{code}},
  description={appends \meta{code} to the definition of
   the control sequence \meta{cs}},
  note={\styfmt{etoolbox}\texparserdefnote},
  category={command}
}

@command{forlistloop,
  name={\csfmt{for\-list\-loop}},
  user1={\margm{handler cs}\margm{list cs}},
  description={iterates over the internal list given by the command 
   \meta{list cs} and performs \meta{handler cs}\margm{element} for
   each element},
  note={\styfmt{etoolbox}},
  category={command}
}

@command{foreignlanguage,
  name={\csfmt{foreign\-language}},
  user1={\margm{language name}\margm{text}},
  description={typesets \meta{text} according to the rules of the
given language},
  note={\styfmt{babel}},
  category={command}
}

@command{selectlanguage,
  name={\csfmt{select\-language}},
  user1={\margm{language name}},
  description={switch to the rules of the given language},
  note={\styfmt{babel} and \styfmt{polyglossia}},
  category={command}
}

@command{setmainlanguage,
  name={\csfmt{set\-main\-language}},
  user1={\oargm{options}\margm{language name}},
  description={load the main document language},
  note={\styfmt{polyglossia}},
  category={command}
}

@command{setotherlanguage,
  name={\csfmt{set\-other\-language}},
  user1={\oargm{options}\margm{language name}},
  description={load a secondary document language},
  note={\styfmt{polyglossia}},
  category={command}
}

@command{textlanguage,
  name={\csfmt{text\-\meta{language}}},
  user1={\oargm{options}\margm{text}},
  description={typeset \meta{text} according to \meta{language}},
  note={\styfmt{polyglossia}},
  category={command}
}

@package{marvosym,
  name={\styfmt{marvosym}},
  category={package},
  parent={packages}
}

@package{ifsym,
  name={\styfmt{ifsym}},
  category={package},
  parent={packages}
}

@package{CJKutf8,
  name={\styfmt{CJKutf8}},
  category={package},
  parent={packages}
}

@environment{env.CJK,
  name={\envfmt{CJK}},
  user1={\oargm{font encoding}\margm{encoding}\margm{family}},
  description={sets up support for \idx{CJK} content},
  note={\styfmt{CJK}},
  category={environment}
}

@environment{env.document,
  name={\envfmt{document}},
  description={contains the entire document text},
  note={kernel command\texparserdefnote},
  category={environment}
}

@environment{env.description,
  name={\envfmt{description}},
  description={list-like environment},
  note={provided by most classes},
  category={environment}
}

@package{longtable,
  name={\styfmt{longtable}},
  category={package},
  parent={packages}
}

@environment{env.longtable,
  name={\envfmt{longtable}},
  user1={\oargm{halign}\margm{column specs}},
  description={a tabular-like environment that can span multiple
pages (not available in multi-column or certain other contexts)},
  note={\styfmt{longtable}},
  category={environment}
}

@environment{env.tabular,
  name={\envfmt{tabular}},
  user1={\oargm{valign}\margm{column specs}},
  description={aligns material in rows and columns with \idx{colsep}
to separate columns and \cs{cs.backslash} to separate rows},
  note={kernel environment},
  category={environment}
}

@package{tabularx,
  name={\styfmt{tabularx}},
  category={package},
  parent={packages}
}

@environment{env.tabularx,
  name={\envfmt{tabularx}},
  user1={\margm{width}\oargm{valign}\margm{column specs}},
  description={a tabular-like environment that's designed to fit the
   given \meta{width})},
  note={\styfmt{tabularx}},
  category={environment}
}

@package{supertabular,
  name={\styfmt{supertabular}},
  category={package},
  parent={packages}
}

@index{env.supertabular,
  name={\envfmt{supertabular}},
  user1={\margm{column specs}},
  description={a tabular-like environment that can span multiple
pages (not available in multi-column or certain other contexts)},
  note={\styfmt{supertabular}},
  category={environment}
}

@glsenvironment{env.theglossary,
  name={\envfmt{theglossary}},
  category={environment}
}

@glsenvironment{env.printunsrtglossarywrap,
  name={\envfmt{print\-unsrt\-glossary\-wrap}},
  category={environment}
}

@topic{abbreviationstyles,
  name={abbreviation styles},
  text={abbreviation style},
  description={abbreviation styles are set using
  \ics{newabbreviation} and govern the format of commands like \ics{gls}
  (display style) and \ics{glsxtrfull} (inline style). The inline
   style may or may not match the first use format of the display
   style. To allow for greater flexibility in abbreviation styles,
   \cs{gls} (and its variants) normally treat abbreviations
   differently to other terms, but some abbreviation styles can work better 
   if the abbreviation is treated as a general term so in those cases the 
   style sets the \catattr{regular} attribute to \qt{true} for
   the entry's category. The \styfmt{glossaries-extra} package comes with the file
\href{http://mirrors.ctan.org/macros/latex/contrib/glossaries-extra/samples/sample-abbr-styles.pdf}{\filefmt{sample-abbr-styles.pdf}}
  that demonstrates all predefined styles}
}

@abbreviationstyle{abbrstyle.long-short,
  name={\abbrstylefmt{long\dhyphen short}},
  description={this abbreviation style displays the long form on
  \idx{firstuse} of the \cs{gls}-like commands followed by the 
  short form in parentheses (formatted with \cs{glsxtrparen}). 
  Only the short form is shown on subsequent use. The
  \field{description} field is set to the long form},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbrvstylecommand{glsxtrlongshortname,
  name={\csfmt{gls\-xtr\-long\-short\-name}},
  description={hook for the \abbrstyle{long-short} abbreviation
  styles that expands to the value that the \field{name} field is
  assigned to when the abbreviation is defined with
  \cs{newabbreviation} (defaults to the short form)},
  topics={abbrstyle.long-short,abbrstyle.long-short-sc,abbrstyle.long-short-sm,abbrstyle.long-short-em,abbrstyle.long-em-short-em,abbrstyle.long-short-user,abbrstyle.long-postshort-user,abbrstyle.long-hyphen-short-hyphen,abbrstyle.long-hyphen-postshort-hyphen},
  note={\styfmt{glossaries-extra} v1.25+},
  category={command}
}

@abbrvstylecommand{glslongdefaultfont,
  name={\csfmt{gls\-long\-default\-font}},
  user1={\margm{text}},
  description={used by the abbreviation styles that don't have a
   specific font to format the long form. The default definition
just does its argument without any formatting},
  topics={abbrstyle.long-short,abbrstyle.short-long,abbrstyle.short-nolong,abbrstyle.nolong-short,abbrstyle.nolong-short-noreg,abbrstyle.short-nolong-desc,abbrstyle.long-noshort-desc,abbrstyle.long-noshort-desc-noreg,abbrstyle.long-short-sc,abbrstyle.long-short-sc-desc,abbrstyle.short-sc-long,abbrstyle.short-sc-long-desc,abbrstyle.short-sc-nolong,abbrstyle.short-sc-nolong-desc,abbrstyle.nolong-short-sc,abbrstyle.long-noshort-sc,abbrstyle.long-noshort-sc-desc,abbrstyle.long-short-sm,abbrstyle.long-short-sm-desc,abbrstyle.short-sm-long,abbrstyle.short-sm-long-desc,abbrstyle.short-sm-nolong,abbrstyle.short-sm-nolong-desc,abbrstyle.nolong-short-sm,abbrstyle.long-noshort-sm,abbrstyle.long-noshort-sm-desc,abbrstyle.long-short-em,abbrstyle.long-short-em-desc,abbrstyle.short-em-long,abbrstyle.short-em-long-desc,abbrstyle.short-em-nolong,abbrstyle.short-em-nolong-desc,abbrstyle.nolong-short-em,abbrstyle.long-noshort-em,abbrstyle.long-noshort-em-desc,abbrstyle.long-noshort,abbrstyle.long-noshort-noreg,abbrstyle.long-short-desc},
  note={\styfmt{glossaries-extra} v1.04+},
  category={command}
}

@abbrvstylecommand{glsfirstlongdefaultfont,
  name={\csfmt{gls\-first\-long\-default\-font}},
  user1={\margm{text}},
  description={used by the abbreviation styles that don't have a
   specific font to format the long form on \idx{firstuse}. The
   default definition uses \cs{glslongdefaultfont}},
  topics={abbrstyle.long-short,abbrstyle.short-long,abbrstyle.short-nolong,abbrstyle.nolong-short,abbrstyle.nolong-short-noreg,abbrstyle.short-nolong-desc,abbrstyle.long-noshort-desc,abbrstyle.long-noshort-desc-noreg,abbrstyle.long-short-sc,abbrstyle.long-short-sc-desc,abbrstyle.short-sc-long,abbrstyle.short-sc-long-desc,abbrstyle.short-sc-nolong,abbrstyle.short-sc-nolong-desc,abbrstyle.nolong-short-sc,abbrstyle.long-noshort-sc,abbrstyle.long-noshort-sc-desc,abbrstyle.long-short-sm,abbrstyle.long-short-sm-desc,abbrstyle.short-sm-long,abbrstyle.short-sm-long-desc,abbrstyle.short-sm-nolong,abbrstyle.short-sm-nolong-desc,abbrstyle.nolong-short-sm,abbrstyle.long-noshort-sm,abbrstyle.long-noshort-sm-desc,abbrstyle.long-short-em,abbrstyle.long-short-em-desc,abbrstyle.short-em-long,abbrstyle.short-em-long-desc,abbrstyle.short-em-nolong,abbrstyle.short-em-nolong-desc,abbrstyle.nolong-short-em,abbrstyle.long-noshort-em,abbrstyle.long-noshort-em-desc,abbrstyle.long-noshort,abbrstyle.long-noshort-noreg,abbrstyle.long-short-desc},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@abbrvstylecommand{glsabbrvdefaultfont,
  name={\csfmt{gls\-abbrv\-default\-font}},
  user1={\margm{text}},
  description={used by the abbreviation styles that don't have a
   specific font to format the short form. The default definition
just does its argument without any formatting},
  topics={abbrstyle.long-short,abbrstyle.short-long,abbrstyle.short-footnote,abbrstyle.short-postfootnote,abbrstyle.short-nolong,abbrstyle.nolong-short,abbrstyle.nolong-short-noreg,abbrstyle.short-nolong-desc,abbrstyle.long-noshort-desc,abbrstyle.long-noshort-desc-noreg,abbrstyle.long-hyphen-noshort-desc-noreg,abbrstyle.long-hyphen-noshort-noreg,abbrstyle.long-noshort,abbrstyle.long-noshort-noreg,abbrstyle.long-short-desc},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@abbrvstylecommand{glsfirstabbrvdefaultfont,
  name={\csfmt{gls\-first\-abbrv\-default\-font}},
  user1={\margm{text}},
  description={used by the abbreviation styles that don't have a
   specific font to format the short form on \idx{firstuse}. The
   default definition uses \cs{glsabbrvdefaultfont}},
  topics={abbrstyle.long-short,abbrstyle.short-long,abbrstyle.short-footnote,abbrstyle.short-postfootnote,abbrstyle.short-nolong,abbrstyle.nolong-short,abbrstyle.nolong-short-noreg,abbrstyle.short-nolong-desc,abbrstyle.long-noshort-desc,abbrstyle.long-noshort-desc-noreg,abbrstyle.long-hyphen-noshort-desc-noreg,abbrstyle.long-hyphen-noshort-noreg,abbrstyle.long-noshort,abbrstyle.long-noshort-noreg,abbrstyle.long-short-desc},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@abbreviationstyle{abbrstyle.long-short-desc,
  name={\abbrstylefmt{long\dhyphen short\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{long-short} style but the \field{description}
   field must be provided in the entry definition},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbrvstylecommand{glsxtrlongshortdescname,
  name={\csfmt{gls\-xtr\-long\-short\-desc\-name}},
  description={hook for the \abbrstyle{long-short-desc} abbreviation
  styles that expands to the value that the \field{name} field is
  assigned to when the abbreviation is defined with
  \cs{newabbreviation} (defaults to the long form followed by the
  short form in parentheses)},
  topics={abbrstyle.long-short-desc,abbrstyle.long-short-sc-desc,abbrstyle.long-short-sm-desc,abbrstyle.long-short-em-desc,abbrstyle.long-em-short-em-desc,abbrstyle.long-hyphen-short-hyphen-desc,abbrstyle.long-hyphen-postshort-hyphen-desc},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbreviationstyle{abbrstyle.short-long,
  name={\abbrstylefmt{short\dhyphen long}},
  description={this abbreviation style displays the short form on
  \idx{firstuse} of the \cs{gls}-like commands followed by the 
  long form in parentheses (formatted with \cs{glsxtrparen}). 
  Only the short form is shown on subsequent use. The
  \field{description} field is set to the long form},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbrvstylecommand{glsxtrshortlongname,
  name={\csfmt{gls\-xtr\-short\-long\-name}},
  description={hook for the \abbrstyle{short-long} abbreviation styles
  that expands to the value that the \field{name} field is assigned
  to when the abbreviation is defined with \cs{newabbreviation} 
  (defaults to the short form)},
  topics={abbrstyle.short-long,abbrstyle.short-sc-long,abbrstyle.short-sm-long,abbrstyle.short-em-long,abbrstyle.short-em-long-em,abbrstyle.short-postlong-user,abbrstyle.short-long-user,abbrstyle.short-hyphen-long-hyphen,abbrstyle.short-hyphen-postlong-hyphen},
  note={\styfmt{glossaries-extra} v1.25+},
  category={command}
}

@abbreviationstyle{abbrstyle.short-long-desc,
  name={\abbrstylefmt{short\dhyphen long\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{short-long} style but the \field{description}
   field must be provided in the entry definition},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbrvstylecommand{glsxtrshortlongdescname,
  name={\csfmt{gls\-xtr\-short\-long\-desc\-name}},
  description={hook for the \abbrstyle{short-long-desc} abbreviation
  styles that expands to the value that the \field{name} field is
  assigned to when the abbreviation is defined with
  \cs{newabbreviation} (defaults to the long form followed by the
  short form in parentheses)},
  topics={abbrstyle.short-long-desc,abbrstyle.short-sc-long-desc,abbrstyle.short-sm-long-desc,abbrstyle.short-em-long-desc,abbrstyle.short-em-long-em-desc,abbrstyle.short-hyphen-long-hyphen-desc,abbrstyle.short-hyphen-postlong-hyphen-desc},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbreviationstyle{abbrstyle.short-footnote,
  name={\abbrstylefmt{short\dhyphen footnote}},
  description={this abbreviation style displays the short form on
  \idx{firstuse} of the \cs{gls}-like commands with the long form as
  a footnote.  Only the short form is shown on subsequent use. The
  \field{description} field is set to the long form. The inline full
  form obtained with commands like \cs{glsxtrfull} uses a
  parenthetical style. Since this can result in nested hyperlinks
  (from the \idx{link-text} to the glossary and from the footnote
  marker to the footnote) this style automatically sets the
  \catattr{nohyperfirst} category attribute to \optfmt{true} for
  the entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.footnote,
  name={\abbrstylefmt{footnote}},
  description={an alias for \abbrstyle{short-footnote}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbrvstylecommand{glslongfootnotefont,
  name={\csfmt{gls\-long\-foot\-note\-font}},
  user1={\margm{text}},
  description={used with the \qt{footnote} abbreviation styles to
   format the long form},
  topics={abbrstyle.short-footnote,abbrstyle.short-postfootnote,abbrstyle.short-sc-footnote,abbrstyle.short-sc-postfootnote,abbrstyle.short-sm-footnote,abbrstyle.short-sm-postfootnote,abbrstyle.short-em-footnote,abbrstyle.short-em-postfootnote},
  note={\styfmt{glossaries-extra} v1.05+},
  category={command}
}

@abbrvstylecommand{glsfirstlongfootnotefont,
  name={\csfmt{gls\-first\-long\-foot\-note\-font}},
  user1={\margm{text}},
  description={used with the \qt{footnote} abbreviation styles to
   format the long form on first use},
  topics={abbrstyle.short-footnote,abbrstyle.short-postfootnote,abbrstyle.short-sc-footnote,abbrstyle.short-sc-postfootnote,abbrstyle.short-sm-footnote,abbrstyle.short-sm-postfootnote,abbrstyle.short-em-footnote,abbrstyle.short-em-postfootnote},
  note={\styfmt{glossaries-extra} v1.05+},
  category={command}
}

@abbrvstylecommand{glsxtrabbrvfootnote,
  name={\csfmt{gls\-xtr\-abbrv\-foot\-note}},
  user1={\margm{label}\margm{long form}},
  description={used with the \qt{footnote} abbreviation styles to
   do the footnote. The \meta{label} is ignored by default. The
   \meta{long form} includes the font changing command. This just
   does \code{\cs{footnote}\margm{long form}}},
  topics={abbrstyle.short-footnote,abbrstyle.short-postfootnote,abbrstyle.short-sc-footnote,abbrstyle.short-sc-postfootnote,abbrstyle.short-sm-footnote,abbrstyle.short-sm-postfootnote,abbrstyle.short-em-footnote,abbrstyle.short-em-postfootnote},
  note={\styfmt{glossaries-extra} v1.07+},
  category={command}
}

@abbrvstylecommand{glsxtrfootnotename,
  name={\csfmt{gls\-xtr\-foot\-note\-name}},
  description={hook for the \qt{footnote} abbreviation styles
  that expands to the value that the \field{name} field is assigned
  to when the abbreviation is defined with \cs{newabbreviation} 
  (defaults to the short form)},
  topics={abbrstyle.short-footnote,abbrstyle.short-postfootnote,abbrstyle.short-sc-footnote,abbrstyle.short-sc-postfootnote,abbrstyle.short-sm-footnote,abbrstyle.short-sm-postfootnote,abbrstyle.short-em-footnote,abbrstyle.short-em-postfootnote},
  note={\styfmt{glossaries-extra} v1.25+},
  category={command}
}

@abbreviationstyle{abbrstyle.short-postfootnote,
  name={\abbrstylefmt{short\dhyphen postfootnote}},
  description={this abbreviation style is like
  \abbrstyle{short-footnote} but the footnote is moved to the
  \idx{postlinkhook} (outside of the hyperlink, if enabled) to
  prevent nested hyperlinks. This means that, unlike
  \abbrstyle{short-footnote} the \catattr{nohyperfirst} attribute
  isn't changed},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.postfootnote,
  name={\abbrstylefmt{postfootnote}},
  description={an alias for \abbrstyle{short-postfootnote}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-nolong,
  name={\abbrstylefmt{short\dhyphen nolong}},
  description={this abbreviation style only displays the \field{short} form 
   with the \cs{gls}-like commands (regardless of the \idx{firstuseflag}). 
   The \field{long} form can be accessed with \cs{glsxtrlong}. 
   The \field{name} field is set to \cs{glsxtrshortnolongname} and the 
   \field{description} field is set to the \field{long} form (unless 
   overridden in the entry definition). The inline full form
   displays the short form followed by the long form in parentheses. 
   This style sets the \catattr{regular} attribute to \optfmt{true} 
   for the entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short,
  name={\abbrstylefmt{short}},
  description={an alias for \abbrstyle{short-nolong}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-nolong-noreg,
  name={\abbrstylefmt{short\dhyphen nolong\dhyphen noreg}},
  description={this abbreviation style is like \abbrstyle{short-nolong} 
   but doesn't set the \catattr{regular} attribute to \optfmt{true}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.17+},
  parent={abbreviationstyles}
}

@abbrvstylecommand{glsxtrshortnolongname,
  name={\csfmt{gls\-xtr\-short\-no\-long\-name}},
  description={hook for the \abbrstyle{short-nolong} abbreviation styles
  that expands to the value that the \field{name} field is assigned
  to when the abbreviation is defined with \cs{newabbreviation} 
  (defaults to the short form)},
  topics={abbrstyle.short-nolong,abbrstyle.short-nolong-noreg,abbrstyle.short-sc-nolong,abbrstyle.short-sm-nolong,abbrstyle.short-em-nolong},
  note={\styfmt{glossaries-extra} v1.25+},
  category={command}
}

@abbreviationstyle{abbrstyle.short-nolong-desc,
  name={\abbrstylefmt{short\dhyphen nolong\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{short-nolong} style but the \field{description}
   field must be provided in the entry definition. This style sets
  the \catattr{regular} attribute to \optfmt{true} for the entry's
  category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-desc,
  name={\abbrstylefmt{short-desc}},
  description={an alias for \abbrstyle{short-nolong-desc}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-nolong-desc-noreg,
  name={\abbrstylefmt{short\dhyphen nolong\dhyphen desc\dhyphen noreg}},
  description={this abbreviation style is like \abbrstyle{short-nolong-desc} 
   but doesn't set the \catattr{regular} attribute to \optfmt{true}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.17+},
  parent={abbreviationstyles}
}

@abbrvstylecommand{glsxtrshortdescname,
  name={\csfmt{gls\-xtr\-short\-desc\-name}},
  description={hook for the \abbrstyle{short-nolong-desc} abbreviation styles
  that expands to the value that the \field{name} field is assigned
  to when the abbreviation is defined with \cs{newabbreviation} 
  (defaults to the short form followed by long form in parentheses)},
  topics={abbrstyle.short-nolong-desc,abbrstyle.short-nolong-desc-noreg,abbrstyle.short-sc-nolong-desc,abbrstyle.short-sm-nolong-desc,abbrstyle.short-em-nolong-desc},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbreviationstyle{abbrstyle.nolong-short,
  name={\abbrstylefmt{nolong\dhyphen short}},
  description={this abbreviation style only displays the \field{short} form 
   with the \cs{gls}-like commands (regardless of the \idx{firstuseflag}). 
   The \field{long} form can be accessed with \cs{glsxtrlong}. 
   The \field{name} field is set to \cs{glsxtrshortnolongname} and the 
   \field{description} field is set to the \field{long} form (unless 
   overridden in the entry definition). The inline full form
   displays the long form followed by the short form in parentheses. 
   This style sets the \catattr{regular} attribute to \optfmt{true}
   for the entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.21+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.nolong-short-noreg,
  name={\abbrstylefmt{nolong\dhyphen short\dhyphen noreg}},
  description={this abbreviation style is like \abbrstyle{nolong-short} 
   but doesn't set the \catattr{regular} attribute to \optfmt{true}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.21+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-noshort-desc,
  name={\abbrstylefmt{long\dhyphen noshort\dhyphen desc}},
  description={this abbreviation style only displays the \field{long} 
   form with the \cs{gls}-like commands (regardless of the 
   \idx{firstuseflag}). The \field{short}
   form can be accessed with \cs{glsxtrshort}. The \field{name}
   field is set to \cs{glsxtrlongnoshortdescname} and the \field{description}
   field must be provided in the entry definition. The inline full
   form displays the long form followed by the short form in
   parentheses. This style sets the \catattr{regular} attribute to 
   \optfmt{true} for the entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-desc,
  name={\abbrstylefmt{long-desc}},
  description={an alias for \abbrstyle{long-noshort-desc}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbrvstylecommand{glsxtrlongnoshortdescname,
  name={\csfmt{gls\-xtr\-long\-no\-short\-desc\-name}},
  description={hook for the \abbrstyle{long-noshort-desc} abbreviation styles
  that expands to the value that the \field{name} field is assigned
  to when the abbreviation is defined with \cs{newabbreviation} 
  (defaults to the long form)},
  topics={abbrstyle.long-noshort-desc,abbrstyle.long-noshort-desc-noreg,abbrstyle.long-em-noshort-em-desc,abbrstyle.long-hyphen-noshort-desc-noreg,abbrstyle.long-noshort-sc-desc,abbrstyle.long-noshort-sm-desc,abbrstyle.long-noshort-em-desc,abbrstyle.long-em-noshort-em-desc-noreg},
  note={\styfmt{glossaries-extra} v1.25+},
  category={command}
}

@abbreviationstyle{abbrstyle.long-noshort-desc-noreg,
  name={\abbrstylefmt{long\dhyphen noshort\dhyphen desc\dhyphen noreg}},
  description={this abbreviation style is like \abbrstyle{long-noshort-desc} 
   but doesn't set the \catattr{regular} attribute to \optfmt{true}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.17+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-noshort,
  name={\abbrstylefmt{long\dhyphen noshort}},
  description={this abbreviation style only displays the \field{long} form 
   with the \cs{gls}-like commands (regardless of the \idx{firstuseflag}). 
   The \field{short} form can be accessed with \cs{glsxtrshort}. 
   The \field{name} field is set to \cs{glsxtrlongnoshortname} and the 
   \field{description} field is set to the \field{long} form (unless 
   overridden in the entry definition). The inline full form
   displays the long form followed by the short form in parentheses. 
   This style sets the \catattr{regular} attribute to \optfmt{true} 
   for the entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long,
  name={\abbrstylefmt{long}},
  description={an alias for \abbrstyle{long-noshort}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-noshort-noreg,
  name={\abbrstylefmt{long\dhyphen noshort\dhyphen noreg}},
  description={this abbreviation style is like \abbrstyle{long-noshort} 
   but doesn't set the \catattr{regular} attribute to \optfmt{true}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.17+},
  parent={abbreviationstyles}
}

@abbrvstylecommand{glsxtrlongnoshortname,
  name={\csfmt{gls\-xtr\-long\-no\-short\-name}},
  description={hook for the \abbrstyle{long-noshort} abbreviation styles
  that expands to the value that the \field{name} field is assigned
  to when the abbreviation is defined with \cs{newabbreviation} 
  (defaults to the short form)},
  topics={abbrstyle.long-noshort,abbrstyle.long-noshort-noreg,abbrstyle.long-noshort-sc,abbrstyle.long-noshort-sm,abbrstyle.long-noshort-em,abbrstyle.long-em-noshort-em,abbrstyle.long-em-noshort-em-noreg,abbrstyle.long-hyphen-noshort-noreg},
  note={\styfmt{glossaries-extra} v1.25+},
  category={command}
}

@abbreviationstyle{abbrstyle.long-short-sc,
  name={\abbrstylefmt{long\dhyphen short\dhyphen sc}},
  description={this abbreviation style is like \abbrstyle{long-short}
  but the short form is displayed in small-caps (so it needs to be
  in \idx{lowercase})},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbrvstylecommand{glsxtrscsuffix,
  name={\csfmt{gls\-xtr\-sc\-suffix}},
  user1={},
  description={the suffix used to construct the plural for
   the short form of abbreviations with the small-cap
   \qt{sc} styles. This counteracts the effect of \cs{textsc}
   using \ics{glstextup}},
  topics={abbrstyle.long-short-sc,abbrstyle.long-short-sc-desc,abbrstyle.short-sc-long,abbrstyle.short-sc-long-desc,abbrstyle.short-sc-nolong,abbrstyle.short-sc-nolong-desc,abbrstyle.nolong-short-sc,abbrstyle.short-sc-footnote,abbrstyle.short-sc-postfootnote,abbrstyle.long-noshort-sc,abbrstyle.long-noshort-sc-desc},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@abbrvstylecommand{glsabbrvscfont,
  name={\csfmt{gls\-abbrv\-sc\-font}},
  user1={\margm{text}},
  description={used with \qt{sc} abbreviation styles to format the
short form using \cs{textsc}},
  topics={abbrstyle.long-short-sc,abbrstyle.long-short-sc-desc,abbrstyle.short-sc-long,abbrstyle.short-sc-long-desc,abbrstyle.short-sc-nolong,abbrstyle.short-sc-nolong-desc,abbrstyle.nolong-short-sc,abbrstyle.short-sc-footnote,abbrstyle.short-sc-postfootnote,abbrstyle.long-noshort-sc,abbrstyle.long-noshort-sc-desc},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbrvstylecommand{glsfirstabbrvscfont,
  name={\csfmt{gls\-first\-abbrv\-sc\-font}},
  user1={\margm{text}},
  description={used with \qt{sc} abbreviation styles to format the
   short form on \idx{firstuse}. This defaults to \cs{glsabbrvscfont}},
  topics={abbrstyle.long-short-sc,abbrstyle.long-short-sc-desc,abbrstyle.short-sc-long,abbrstyle.short-sc-long-desc,abbrstyle.short-sc-nolong,abbrstyle.short-sc-nolong-desc,abbrstyle.nolong-short-sc,abbrstyle.short-sc-footnote,abbrstyle.short-sc-postfootnote,abbrstyle.long-noshort-sc,abbrstyle.long-noshort-sc-desc},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbreviationstyle{abbrstyle.long-short-sc-desc,
  name={\abbrstylefmt{long\dhyphen short\dhyphen sc\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{long-short-sc} style but the \field{description}
   field must be provided in the entry definition},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-sc-long,
  name={\abbrstylefmt{short\dhyphen sc\dhyphen long}},
  description={this abbreviation style is like \abbrstyle{short-long}
  but the short form is displayed in small-caps (so it needs to be
  in \idx{lowercase})},
  category={abbreviationstyle},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-sc-long-desc,
  name={\abbrstylefmt{short\dhyphen sc\dhyphen long\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{short-sc-long} style but the \field{description}
   field must be provided in the entry definition},
  category={abbreviationstyle},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-sc-nolong,
  name={\abbrstylefmt{short\dhyphen sc\dhyphen nolong}},
  description={this abbreviation style is like \abbrstyle{short-nolong}
  but the short form is displayed in small-caps (so it needs to be
  in \idx{lowercase}). This style sets the \catattr{regular}
  attribute to \optfmt{true} for the entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-sc,
  name={\abbrstylefmt{short\dhyphen sc}},
  description={an alias for \abbrstyle{short-sc-nolong}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-sc-nolong-desc,
  name={\abbrstylefmt{short\dhyphen sc\dhyphen nolong\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{short-sc-nolong} style but the \field{description}
   field must be provided in the entry definition. This style 
   sets the \catattr{regular} attribute to \optfmt{true} for the 
   entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-sc-desc,
  name={\abbrstylefmt{short\dhyphen sc\dhyphen desc}},
  description={an alias for \abbrstyle{short-sc-nolong-desc}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.nolong-short-sc,
  name={\abbrstylefmt{nolong\dhyphen short\dhyphen sc}},
  description={this abbreviation style is like \abbrstyle{nolong-short}
  but the short form is displayed in small-caps (so it needs to be
  in \idx{lowercase}). This style 
   sets the \catattr{regular} attribute to \optfmt{true} for the 
   entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.21+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-noshort-sc,
  name={\abbrstylefmt{long\dhyphen noshort\dhyphen sc}},
  description={this abbreviation style is like \abbrstyle{long-noshort}
  but the short form is displayed in small-caps (so it needs to be
  in \idx{lowercase}). This style 
   sets the \catattr{regular} attribute to \optfmt{true} for the 
   entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-noshort-sc-desc,
  name={\abbrstylefmt{long\dhyphen noshort\dhyphen sc\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{long-noshort-sc} style but the \field{description}
   field must be provided in the entry definition. This style 
   sets the \catattr{regular} attribute to \optfmt{true} for the 
   entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-sc-footnote,
  name={\abbrstylefmt{short\dhyphen sc\dhyphen footnote}},
  description={this abbreviation style is like \abbrstyle{short-footnote}
  but the short form is displayed in small-caps (so it needs to be
  in \idx{lowercase})},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-sc-postfootnote,
  name={\abbrstylefmt{short\dhyphen sc\dhyphen postfootnote}},
  description={this abbreviation style is like \abbrstyle{short-postfootnote}
  but the short form is displayed in small-caps (so it needs to be
  in \idx{lowercase})},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-short-sm,
  name={\abbrstylefmt{long\dhyphen short\dhyphen sm}},
  description={this abbreviation style is like \abbrstyle{long-short}
  but the short form is displayed using a smaller font. The
  \sty{relsize} package is required with this style},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbrvstylecommand{glsabbrvsmfont,
  name={\csfmt{gls\-abbrv\-sm\-font}},
  user1={\margm{text}},
  description={used with \qt{sm} abbreviation styles to format the
short form using \ics{textsmaller}},
  topics={abbrstyle.long-short-sm,abbrstyle.long-short-sm-desc,abbrstyle.short-sm-long,abbrstyle.short-sm-long-desc,abbrstyle.short-sm-nolong,abbrstyle.short-sm-nolong-desc,abbrstyle.nolong-short-sm,abbrstyle.short-sm-footnote,abbrstyle.short-sm-postfootnote,abbrstyle.long-noshort-sm,abbrstyle.long-noshort-sm-desc},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbrvstylecommand{glsfirstabbrvsmfont,
  name={\csfmt{gls\-first\-abbrv\-sm\-font}},
  user1={\margm{text}},
  description={used with \qt{sm} abbreviation styles to format the
   short form on \idx{firstuse}. This defaults to \cs{glsabbrvsmfont}},
  topics={abbrstyle.long-short-sm,abbrstyle.long-short-sm-desc,abbrstyle.short-sm-long,abbrstyle.short-sm-long-desc,abbrstyle.short-sm-nolong,abbrstyle.short-sm-nolong-desc,abbrstyle.nolong-short-sm,abbrstyle.short-sm-footnote,abbrstyle.short-sm-postfootnote,abbrstyle.long-noshort-sm,abbrstyle.long-noshort-sm-desc},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbrvstylecommand{glsxtrsmsuffix,
  name={\csfmt{gls\-xtr\-sm\-suffix}},
  user1={},
  description={the suffix used to construct the plural for
   the short form of abbreviations with the \qt{sm} styles. This
   defaults to \cs{glsxtrabbrvpluralsuffix}},
  topics={abbrstyle.long-short-sm,abbrstyle.long-short-sm-desc,abbrstyle.short-sm-long,abbrstyle.short-sm-long-desc,abbrstyle.short-sm-nolong,abbrstyle.short-sm-nolong-desc,abbrstyle.nolong-short-sm,abbrstyle.short-sm-footnote,abbrstyle.short-sm-postfootnote,abbrstyle.long-noshort-sm,abbrstyle.long-noshort-sm-desc},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@abbreviationstyle{abbrstyle.long-short-sm-desc,
  name={\abbrstylefmt{long\dhyphen short\dhyphen sm\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{long-short-sm} style but the \field{description}
   field must be provided in the entry definition},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-sm-long,
  name={\abbrstylefmt{short\dhyphen sm\dhyphen long}},
  description={this abbreviation style is like \abbrstyle{short-long}
  but the short form is displayed using a smaller font},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-sm-long-desc,
  name={\abbrstylefmt{short\dhyphen sm\dhyphen long\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{long-short-sm} style but the \field{description}
   field must be provided in the entry definition},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-sm-nolong,
  name={\abbrstylefmt{short\dhyphen sm\dhyphen nolong}},
  description={this abbreviation style is like \abbrstyle{short-nolong}
  but the short form is displayed using a smaller font. This style 
   sets the \catattr{regular} attribute to \optfmt{true} for the 
   entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-sm,
  name={\abbrstylefmt{short\dhyphen sm}},
  description={an alias for \abbrstyle{short-sm-nolong}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-sm-nolong-desc,
  name={\abbrstylefmt{short\dhyphen sm\dhyphen nolong\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{short-sm-nolong} style but the \field{description}
   field must be provided in the entry definition. This style 
   sets the \catattr{regular} attribute to \optfmt{true} for the 
   entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-sm-desc,
  name={\abbrstylefmt{short\dhyphen sm\dhyphen desc}},
  description={an alias for \abbrstyle{short-sm-nolong-desc}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.nolong-short-sm,
  name={\abbrstylefmt{nolong\dhyphen short\dhyphen sm}},
  description={this abbreviation style is like \abbrstyle{nolong-short}
  but the short form is displayed using a smaller font. This style 
   sets the \catattr{regular} attribute to \optfmt{true} for the 
   entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.21+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-noshort-sm,
  name={\abbrstylefmt{long\dhyphen noshort\dhyphen sm}},
  description={this abbreviation style is like \abbrstyle{long-noshort}
  but the short form is displayed using a smaller font. This style 
   sets the \catattr{regular} attribute to \optfmt{true} for the 
   entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-noshort-sm-desc,
  name={\abbrstylefmt{long\dhyphen noshort\dhyphen sm\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{long-noshort-sm} style but the \field{description}
   field must be provided in the entry definition. This style 
   sets the \catattr{regular} attribute to \optfmt{true} for the 
   entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-sm-footnote,
  name={\abbrstylefmt{short\dhyphen sm\dhyphen footnote}},
  description={this abbreviation style is like \abbrstyle{short-footnote}
  but the short form is displayed in a smaller font},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-sm-postfootnote,
  name={\abbrstylefmt{short\dhyphen sm\dhyphen postfootnote}},
  description={this abbreviation style is like \abbrstyle{short-postfootnote}
  but the short form is displayed in a smaller font},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-short-em,
  name={\abbrstylefmt{long\dhyphen short\dhyphen em}},
  description={this abbreviation style is like \abbrstyle{long-short}
  but the short form is displayed using an emphasized font},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbrvstylecommand{glsabbrvemfont,
  name={\csfmt{gls\-abbrv\-em\-font}},
  user1={\margm{text}},
  description={used with \qt{em} abbreviation styles to format the
short form using \ics{emph}},
  topics={abbrstyle.long-em-short-em,abbrstyle.long-short-em,abbrstyle.long-short-em-desc,abbrstyle.short-em-long,abbrstyle.short-em-long-desc,abbrstyle.short-em-nolong,abbrstyle.short-em-nolong-desc,abbrstyle.nolong-short-em,abbrstyle.short-em-footnote,abbrstyle.short-em-postfootnote,abbrstyle.long-em-noshort-em,abbrstyle.long-em-noshort-em-desc,abbrstyle.long-em-noshort-em-desc-noreg,abbrstyle.long-em-noshort-em-noreg,abbrstyle.long-em-short-em-desc,abbrstyle.long-noshort-em,abbrstyle.long-noshort-em-desc},
  note={\styfmt{glossaries-extra} v1.04+},
  category={command}
}

@abbrvstylecommand{glsfirstabbrvemfont,
  name={\csfmt{gls\-first\-abbrv\-em\-font}},
  user1={\margm{text}},
  description={used with \qt{em} abbreviation styles to format the
   short form on \idx{firstuse}. This defaults to \cs{glsabbrvemfont}},
  topics={abbrstyle.long-em-short-em,abbrstyle.long-short-em,abbrstyle.long-short-em-desc,abbrstyle.short-em-long,abbrstyle.short-em-long-desc,abbrstyle.short-em-nolong,abbrstyle.short-em-nolong-desc,abbrstyle.nolong-short-em,abbrstyle.short-em-footnote,abbrstyle.short-em-postfootnote,abbrstyle.long-em-short-em-desc,abbrstyle.long-em-noshort-em,abbrstyle.long-em-noshort-em-desc,abbrstyle.long-em-noshort-em-desc-noreg,abbrstyle.long-em-noshort-em-noreg,abbrstyle.long-noshort-em,abbrstyle.long-noshort-em-desc},
  note={\styfmt{glossaries-extra} v1.04+},
  category={command}
}

@abbrvstylecommand{glsxtremsuffix,
  name={\csfmt{gls\-xtr\-em\-suffix}},
  description={the suffix used to construct the plural for
   the short form of abbreviations with the \qt{em} styles. This
   defaults to \cs{glsxtrabbrvpluralsuffix}},
  topics={abbrstyle.long-em-short-em,abbrstyle.long-short-em,abbrstyle.long-short-em-desc,abbrstyle.short-em-long,abbrstyle.short-em-long-desc,abbrstyle.short-em-nolong,abbrstyle.short-em-nolong-desc,abbrstyle.nolong-short-em,abbrstyle.short-em-footnote,abbrstyle.short-em-postfootnote,abbrstyle.long-em-noshort-em,abbrstyle.long-em-noshort-em-desc,abbrstyle.long-em-noshort-em-desc-noreg,abbrstyle.long-em-noshort-em-noreg,abbrstyle.long-noshort-em,abbrstyle.long-noshort-em-desc},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@abbrvstylecommand{glslongemfont,
  name={\csfmt{gls\-long\-em\-font}},
  user1={\margm{text}},
  description={used with \qt{long-em} abbreviation styles to format the
long form using \ics{emph}},
  topics={abbrstyle.long-em-short-em,abbrstyle.long-em-short-em-desc,abbrstyle.short-em-long-em,abbrstyle.short-em-long-em-desc,abbrstyle.long-em-noshort-em,abbrstyle.long-em-noshort-em-desc,abbrstyle.long-em-noshort-em-desc-noreg,abbrstyle.long-em-noshort-em-noreg},
  note={\styfmt{glossaries-extra} v1.04+},
  category={command}
}

@abbrvstylecommand{glsfirstlongemfont,
  name={\csfmt{gls\-first\-long\-em\-font}},
  user1={\margm{text}},
  description={used with \qt{long-em} abbreviation styles to format the
   long form on \idx{firstuse}. This defaults to \cs{glslongemfont}},
  topics={abbrstyle.long-em-short-em,abbrstyle.long-em-short-em-desc,abbrstyle.short-em-long-em,abbrstyle.short-em-long-em-desc,abbrstyle.long-em-noshort-em,abbrstyle.long-em-noshort-em-desc,abbrstyle.long-em-noshort-em-desc-noreg,abbrstyle.long-em-noshort-em-noreg},
  note={\styfmt{glossaries-extra} v1.04+},
  category={command}
}

@abbreviationstyle{abbrstyle.long-short-em-desc,
  name={\abbrstylefmt{long\dhyphen short\dhyphen em\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{long-short-em} style but the \field{description}
   field must be provided in the entry definition},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-em-short-em,
  name={\abbrstylefmt{long\dhyphen em\dhyphen short\dhyphen em}},
  description={this abbreviation style is like \abbrstyle{long-short}
  but the short and long forms are displayed using an emphasized font},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-em-short-em-desc,
  name={\abbrstylefmt{long\dhyphen em\dhyphen short\dhyphen em\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{long-em-short-em} style but the \field{description}
   field must be provided in the entry definition},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-em-long,
  name={\abbrstylefmt{short\dhyphen em\dhyphen long}},
  description={this abbreviation style is like \abbrstyle{short-long}
  but the short form is displayed using an emphasized font},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-em-long-desc,
  name={\abbrstylefmt{short\dhyphen em\dhyphen long\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{short-em-long} style but the \field{description}
   field must be provided in the entry definition},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-em-long-em,
  name={\abbrstylefmt{short\dhyphen em\dhyphen long\dhyphen em}},
  description={this abbreviation style is like \abbrstyle{short-long}
  but the short and long forms are displayed using an emphasized font},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-em-long-em-desc,
  name={\abbrstylefmt{short\dhyphen em\dhyphen long\dhyphen em\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{short-em-long-em} style but the \field{description}
   field must be provided in the entry definition},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-em-nolong,
  name={\abbrstylefmt{short\dhyphen em\dhyphen nolong}},
  description={this abbreviation style is like \abbrstyle{short-nolong}
  but the short form is displayed using an emphasized font. This style 
   sets the \catattr{regular} attribute to \optfmt{true} for the 
   entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-em,
  name={\abbrstylefmt{short\dhyphen em}},
  description={an alias for \abbrstyle{short-em-nolong}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-em-nolong-desc,
  name={\abbrstylefmt{short\dhyphen em\dhyphen nolong\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{short-em-nolong} style but the \field{description}
   field must be provided in the entry definition. This style 
   sets the \catattr{regular} attribute to \optfmt{true} for the 
   entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-em-desc,
  name={\abbrstylefmt{short\dhyphen em\dhyphen desc}},
  description={an alias for \abbrstyle{short-em-nolong-desc}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra}},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.nolong-short-em,
  name={\abbrstylefmt{nolong\dhyphen short\dhyphen em}},
  description={this abbreviation style is like \abbrstyle{nolong-short}
  but the short form is displayed using an emphasized font. This style 
   sets the \catattr{regular} attribute to \optfmt{true} for the 
   entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.21+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-noshort-em,
  name={\abbrstylefmt{long\dhyphen noshort\dhyphen em}},
  description={this abbreviation style is like \abbrstyle{long-noshort}
  but the short form is displayed using an emphasized font. This style 
   sets the \catattr{regular} attribute to \optfmt{true} for the 
   entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-em-noshort-em,
  name={\abbrstylefmt{long\dhyphen em\dhyphen noshort\dhyphen em}},
  description={this abbreviation style is like \abbrstyle{long-noshort}
  but the long and short forms are displayed using an emphasized font.
  This style sets the \catattr{regular} attribute to \optfmt{true} for the 
  entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-em-noshort-em-noreg,
  name={\abbrstylefmt{long\dhyphen em\dhyphen noshort\dhyphen em\dhyphen noreg}},
  description={this abbreviation style is like \abbrstyle{long-noshort-noreg}
  but the long and short forms are displayed using an emphasized font},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.17+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-noshort-em-desc,
  name={\abbrstylefmt{long\dhyphen noshort\dhyphen em\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{long-noshort-em} style but the \field{description}
   field must be provided in the entry definition. This style 
   sets the \catattr{regular} attribute to \optfmt{true} for the 
   entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-em-noshort-em-desc,
  name={\abbrstylefmt{long\dhyphen em\dhyphen noshort\dhyphen em\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{long-em-noshort-em} style but the \field{description}
   field must be provided in the entry definition. This style 
   sets the \catattr{regular} attribute to \optfmt{true} for the 
   entry's category},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-em-noshort-em-desc-noreg,
  name={\abbrstylefmt{long\dhyphen em\dhyphen noshort\dhyphen em\dhyphen desc\dhyphen noreg}},
  description={this abbreviation style is like the
   \abbrstyle{long-em-noshort-em-noreg} style but the \field{description}
   field must be provided in the entry definition},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.17+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-em-footnote,
  name={\abbrstylefmt{short\dhyphen em\dhyphen footnote}},
  description={this abbreviation style is like \abbrstyle{short-footnote}
  but the short form is displayed in an emphasized font},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-em-postfootnote,
  name={\abbrstylefmt{short\dhyphen em\dhyphen postfootnote}},
  description={this abbreviation style is like \abbrstyle{short-postfootnote}
  but the short form is displayed in an emphasized font},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-short-user,
  name={\abbrstylefmt{long\dhyphen short\dhyphen user}},
  description={this abbreviation style is like \abbrstyle{long-short}
  but the parenthetical material is governed by \cs{glsxtruserparen}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbrvstylecommand{glsxtruserfield,
  name={\csfmt{gls\-xtr\-user\-field}},
  description={used by the parenthetical abbreviation styles, this
   expands to the internal label of the field used to store the additional parenthetical
   material. The default value is \field{useri}},
  topics={abbrstyle.long-short-user,abbrstyle.short-long-user,abbrstyle.long-postshort-user,abbrstyle.long-postshort-user-desc,abbrstyle.short-postlong-user-desc,abbrstyle.long-short-user-desc,abbrstyle.short-long-user-desc},
  note={\styfmt{glossaries-extra} v1.04+},
  category={command}
}

@abbrvstylecommand{glsxtruserparen,
  name={\csfmt{gls\-xtr\-user\-paren}},
  user1={\margm{text}\margm{label}},
  description={used by the \qt{user} abbreviation styles
   to format the parenthetical material where \meta{text}
   is the default parenthetical text and \meta{label}
   is the entry's label. This checks the field given
   by \cs{glsxtruserfield} and, if set, the \meta{text} is
   followed by a comma and the user value},
  topics={abbrstyle.long-short-user,abbrstyle.short-long-user,abbrstyle.long-postshort-user,abbrstyle.long-postshort-user-desc,abbrstyle.short-postlong-user-desc,abbrstyle.long-short-user-desc,abbrstyle.short-long-user-desc},
  note={\styfmt{glossaries-extra} v1.04+},
  category={command}
}

@abbrvstylecommand{glsabbrvuserfont,
  name={\csfmt{gls\-abbrv\-user\-font}},
  user1={\margm{text}},
  description={used with \qt{user} abbreviation styles to
   format the short form. The default definition just uses \cs{glsabbrvdefaultfont}},
  topics={abbrstyle.long-short-user,abbrstyle.short-long-user,abbrstyle.long-postshort-user,abbrstyle.long-postshort-user-desc,abbrstyle.short-postlong-user-desc,abbrstyle.long-short-user-desc,abbrstyle.short-long-user-desc},
  note={\styfmt{glossaries-extra} v1.04+},
  category={command}
}

@abbrvstylecommand{glsfirstabbrvuserfont,
  name={\csfmt{gls\-first\-abbrv\-user\-font}},
  user1={\margm{text}},
  description={used with \qt{user} abbreviation styles to
   format the short form on \idx{firstuse}. The default definition just uses
\cs{glsabbrvuserfont}},
  topics={abbrstyle.long-short-user,abbrstyle.short-long-user,abbrstyle.long-postshort-user,abbrstyle.long-postshort-user-desc,abbrstyle.short-postlong-user-desc,abbrstyle.long-short-user-desc,abbrstyle.short-long-user-desc},
  note={\styfmt{glossaries-extra} v1.04+},
  category={command}
}

@abbrvstylecommand{glslonguserfont,
  name={\csfmt{gls\-long\-user\-font}},
  user1={\margm{text}},
  description={used with \qt{user} abbreviation styles to
   format the long form. The default definition just uses \cs{glslongdefaultfont}},
  topics={abbrstyle.long-short-user,abbrstyle.short-long-user,abbrstyle.long-postshort-user,abbrstyle.long-postshort-user-desc,abbrstyle.short-postlong-user-desc,abbrstyle.long-short-user-desc,abbrstyle.short-long-user-desc},
  note={\styfmt{glossaries-extra} v1.04+},
  category={command}
}

@abbrvstylecommand{glsfirstlonguserfont,
  name={\csfmt{gls\-first\-long\-user\-font}},
  user1={\margm{text}},
  description={used with \qt{user} abbreviation styles to
   format the long form on first use. The default definition just uses
\cs{glslonguserfont}},
  topics={abbrstyle.long-short-user,abbrstyle.short-long-user,abbrstyle.long-postshort-user,abbrstyle.long-postshort-user-desc,abbrstyle.short-postlong-user-desc,abbrstyle.long-short-user-desc,abbrstyle.short-long-user-desc},
  note={\styfmt{glossaries-extra} v1.04+},
  category={command}
}

@abbrvstylecommand{glsxtrusersuffix,
  name={\csfmt{gls\-xtr\-user\-suffix}},
  description={the suffix used to construct the plural for
   the short form of abbreviations with the \qt{user} styles.
   The default definition just uses \cs{glsxtrabbrvpluralsuffix}},
  topics={abbrstyle.long-short-user,abbrstyle.short-long-user,abbrstyle.long-postshort-user,abbrstyle.long-postshort-user-desc,abbrstyle.short-postlong-user-desc,abbrstyle.long-short-user-desc,abbrstyle.short-long-user-desc},
  note={\styfmt{glossaries-extra} v1.04+},
  category={command}
}

@abbrvstylecommand{glsuserdescription,
  name={\csfmt{gls\-user\-description}},
  user1={\margm{description}\margm{label}},
  description={used with \qt{user} abbreviation styles to
   encapsulate the description. Just does
  \code{\cs{glslonguserfont}\margm{description}} by default},
  topics={abbrstyle.long-short-user,abbrstyle.short-long-user,abbrstyle.long-postshort-user,abbrstyle.long-postshort-user-desc,abbrstyle.short-postlong-user-desc,abbrstyle.long-short-user-desc,abbrstyle.short-long-user-desc},
  note={\styfmt{glossaries-extra} v1.30+},
  category={command}
}

@abbreviationstyle{abbrstyle.long-postshort-user,
  name={\abbrstylefmt{long\dhyphen postshort\dhyphen user}},
  description={this abbreviation style is like \abbrstyle{long-short-user}
  but the parenthetical material is moved to the \idx{postlinkhook}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.12+},
  parent={abbreviationstyles}
}

@abbrvstylecommand{glsxtrlongshortuserdescname,
  name={\csfmt{gls\-xtr\-long\-short\-user\-desc\-name}},
  description={hook for the \abbrstyle{long-short-user-desc} abbreviation
  styles that expands to the value that the \field{name} field is
  assigned to when the abbreviation is defined with
  \cs{newabbreviation} (defaults to the long form followed by the
  parenthetical material)},
  topics={abbrstyle.long-postshort-user-desc,abbrstyle.long-short-user-desc},
  note={\styfmt{glossaries-extra} v1.25+},
  category={command}
}

@abbreviationstyle{abbrstyle.long-postshort-user-desc,
  name={\abbrstylefmt{long\dhyphen postshort\dhyphen user\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{long-postshort-user} style but the \field{description}
   field must be provided in the entry definition},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.12+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-postlong-user,
  name={\abbrstylefmt{short\dhyphen postlong\dhyphen user}},
  description={this abbreviation style is like \abbrstyle{short-long-user}
  but the parenthetical material is moved to the \idx{postlinkhook}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.12+},
  parent={abbreviationstyles}
}

@abbrvstylecommand{glsxtrshortlonguserdescname,
  name={\csfmt{gls\-xtr\-short\-long\-user\-desc\-name}},
  description={hook for the \abbrstyle{short-long-user-desc} abbreviation
  styles that expands to the value that the \field{name} field is
  assigned to when the abbreviation is defined with
  \cs{newabbreviation} (defaults to the short form followed by the
  parenthetical material)},
  topics={abbrstyle.short-postlong-user-desc,abbrstyle.short-long-user-desc},
  note={\styfmt{glossaries-extra} v1.25+},
  category={command}
}

@abbreviationstyle{abbrstyle.short-postlong-user-desc,
  name={\abbrstylefmt{short\dhyphen postlong\dhyphen user\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{short-postlong-user} style but the \field{description}
   field must be provided in the entry definition},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.12+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-short-user-desc,
  name={\abbrstylefmt{long\dhyphen short\dhyphen user\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{long-short-user} style but the \field{description}
   field must be provided in the entry definition},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-long-user,
  name={\abbrstylefmt{short\dhyphen long\dhyphen user}},
  description={this abbreviation style is like \abbrstyle{short-long}
  but the parenthetical material is governed by \cs{glsxtruserparen}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-long-user-desc,
  name={\abbrstylefmt{short\dhyphen long\dhyphen user\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{short-long-user} style but the \field{description}
   field must be provided in the entry definition},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.04+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-hyphen-short-hyphen,
  name={\abbrstylefmt{long\dhyphen hyphen\dhyphen short\dhyphen
hyphen}},
  description={this abbreviation style is like \abbrstyle{long-short}
  but is designed to work with the \catattr{markwords} attribute. If
  the attribute is set, the style will check if the inserted
  material (provided by the final optional argument of commands like
  \cs{gls}) starts with a hyphen. If it does, the insert is added to
  the parenthetical material},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.17+},
  parent={abbreviationstyles}
}

@abbrvstylecommand{glsxtrifhyphenstart,
  name={\csfmt{gls\-xtr\-if\-hyphen\-start}},
  user1={\margm{text}\margm{true}\margm{false}},
  description={used by the \qt{hyphen} abbreviation styles, this
   checks if \meta{text} starts with a hyphen},
  topics={abbrstyle.long-hyphen-short-hyphen,abbrstyle.long-hyphen-short-hyphen-desc,abbrstyle.long-hyphen-noshort-desc-noreg,abbrstyle.long-hyphen-noshort-noreg,abbrstyle.long-hyphen-postshort-hyphen,abbrstyle.long-hyphen-postshort-hyphen-desc,abbrstyle.short-hyphen-long-hyphen,abbrstyle.short-hyphen-long-hyphen-desc,abbrstyle.short-hyphen-postlong-hyphen,abbrstyle.short-hyphen-postlong-hyphen-desc},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbrvstylecommand{glsxtrlonghyphenshort,
  name={\csfmt{gls\-xtr\-long\-hyphen\-short}},
  user1={\margm{label}\margm{long}\margm{short}\margm{insert}},
  description={used by the \qt{long\dhyphen hyphen\dhyphen
  short\dhyphen hyphen} abbreviation styles to format the full form},
  topics={abbrstyle.long-hyphen-short-hyphen,abbrstyle.long-hyphen-short-hyphen-desc},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbrvstylecommand{glsabbrvhyphenfont,
  name={\csfmt{gls\-abbrv\-hyphen\-font}},
  user1={\margm{text}},
  description={used by the \qt{hyphen} abbreviation styles to format
   the short form},
  topics={abbrstyle.long-hyphen-short-hyphen,abbrstyle.long-hyphen-short-hyphen-desc,abbrstyle.long-hyphen-postshort-hyphen,abbrstyle.long-hyphen-postshort-hyphen-desc,abbrstyle.short-hyphen-long-hyphen,abbrstyle.short-hyphen-long-hyphen-desc,abbrstyle.short-hyphen-postlong-hyphen,abbrstyle.short-hyphen-postlong-hyphen-desc},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbrvstylecommand{glsfirstabbrvhyphenfont,
  name={\csfmt{gls\-first\-abbrv\-hyphen\-font}},
  user1={\margm{text}},
  description={used by the \qt{hyphen} abbreviation styles to format
   the short form on \idx{firstuse}},
  topics={abbrstyle.long-hyphen-short-hyphen,abbrstyle.long-hyphen-postshort-hyphen,abbrstyle.long-hyphen-postshort-hyphen-desc,abbrstyle.long-hyphen-short-hyphen-desc},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbrvstylecommand{glslonghyphenfont,
  name={\csfmt{gls\-long\-hyphen\-font}},
  user1={\margm{text}},
  description={used by the \qt{hyphen} abbreviation styles to format
   the long form},
  topics={abbrstyle.long-hyphen-short-hyphen,abbrstyle.long-hyphen-noshort-desc-noreg,abbrstyle.long-hyphen-noshort-noreg,abbrstyle.long-hyphen-postshort-hyphen,abbrstyle.long-hyphen-postshort-hyphen-desc,abbrstyle.long-hyphen-short-hyphen-desc},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbrvstylecommand{glsfirstlonghyphenfont,
  name={\csfmt{gls\-first\-long\-hyphen\-font}},
  user1={\margm{text}},
  description={used by the \qt{hyphen} abbreviation styles to format
   the long form on \idx{firstuse}},
  topics={abbrstyle.long-hyphen-short-hyphen,abbrstyle.long-hyphen-noshort-desc-noreg,abbrstyle.long-hyphen-noshort-noreg,abbrstyle.long-hyphen-postshort-hyphen,abbrstyle.long-hyphen-postshort-hyphen-desc,abbrstyle.long-hyphen-short-hyphen-desc},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbrvstylecommand{glsxtrhyphensuffix,
  name={\csfmt{gls\-xtr\-hyphen\-suffix}},
  description={the suffix used to construct the plural for
   the short form of abbreviations with the \qt{hyphen} styles},
  topics={abbrstyle.long-hyphen-short-hyphen,abbrstyle.long-hyphen-postshort-hyphen,abbrstyle.long-hyphen-postshort-hyphen-desc,abbrstyle.long-hyphen-short-hyphen-desc},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbreviationstyle{abbrstyle.long-hyphen-short-hyphen-desc,
  name={\abbrstylefmt{long\dhyphen hyphen\dhyphen short\dhyphen
hyphen\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{long-hyphen-short-hyphen} style but the \field{description}
   field must be provided in the entry definition},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.17+},
  parent={abbreviationstyles}
}

@abbrvstylecommand{glsxtrlonghyphennoshort,
  name={\csfmt{gls\-xtr\-long\-hyphen\-noshort}},
  user1={\margm{label}\margm{long}\margm{insert}},
  description={used by the \qt{long-hyphen-noshort} styles
  to format the \idx{firstuse} form. This checks if the inserted
  material starts with a hyphen and makes the appropriate
  modifications},
  topics={abbrstyle.long-hyphen-noshort-desc-noreg,abbrstyle.long-hyphen-noshort-noreg},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbreviationstyle{abbrstyle.long-hyphen-noshort-desc-noreg,
  name={\abbrstylefmt{long\dhyphen hyphen\dhyphen noshort\dhyphen desc\dhyphen noreg}},
  description={this abbreviation style is like the
   \abbrstyle{long-hyphen-noshort-noreg} style but the \field{description}
   field must be provided in the entry definition. This
  style won't work with the \catattr{regular} attribute set, as the
  regular form isn't flexible enough},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.17+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-hyphen-noshort-noreg,
  name={\abbrstylefmt{long\dhyphen hyphen\dhyphen noshort\dhyphen noreg}},
  description={this abbreviation style is like \abbrstyle{long-noshort}
  but is designed to work with the \catattr{markwords} attribute and 
  the \catattr{regular} attribute isn't set to \optfmt{true}. This
  style won't work with the \catattr{regular} attribute set, as the
  regular form isn't flexible enough},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.17+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-hyphen-postshort-hyphen,
  name={\abbrstylefmt{long\dhyphen hyphen\dhyphen postshort\dhyphen hyphen}},
  description={this abbreviation style is like the
   \abbrstyle{long-hyphen-short-hyphen} style but the insert and
   parenthetical material are moved into the \idx{postlinkhook}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.17+},
  parent={abbreviationstyles}
}

@abbrvstylecommand{glsxtrlonghyphen,
  name={\csfmt{gls\-xtr\-long\-hyphen}},
  user1={\margm{long}\margm{label}\margm{insert}},
  description={used by the \abbrstyle{long-hyphen-postshort-hyphen} abbreviation 
  to format the long form and check if the \meta{insert} starts with
  a hyphen},
  topics={abbrstyle.long-hyphen-postshort-hyphen},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbrvstylecommand{glsxtrposthyphenshort,
  name={\csfmt{gls\-xtr\-post\-hyphen\-short}},
  user1={\margm{label}\margm{insert}},
  description={used by the \abbrstyle{long-hyphen-postshort-hyphen}
  style in the \idx{postlinkhook}},
  topics={abbrstyle.long-hyphen-postshort-hyphen},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbrvstylecommand{glsxtrposthyphensubsequent,
  name={\csfmt{gls\-xtr\-post\-hyphen\-sub\-sequent}},
  user1={\margm{label}\margm{insert}},
  description={used by the \abbrstyle{long-hyphen-postshort-hyphen} abbreviation 
  in the \idx{postlinkhook} for subsequent use},
  topics={abbrstyle.long-hyphen-postshort-hyphen},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbreviationstyle{abbrstyle.long-hyphen-postshort-hyphen-desc,
  name={\abbrstylefmt{long\dhyphen hyphen\dhyphen postshort\dhyphen
hyphen\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{long-hyphen-postshort-hyphen} style but the \field{description}
   field must be provided in the entry definition},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.17+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-hyphen-long-hyphen,
  name={\abbrstylefmt{short\dhyphen hyphen\dhyphen long\dhyphen hyphen}},
  description={this abbreviation style is like \abbrstyle{short-long}
  but is designed to work with the \catattr{markwords} attribute. If
  the attribute is set, the style will check if the inserted
  material (provided by the final optional argument of commands like
  \cs{gls}) starts with a hyphen. If it does, the insert is added to
  the parenthetical material},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.17+},
  parent={abbreviationstyles}
}

@abbrvstylecommand{glsxtrshorthyphenlong,
  name={\csfmt{gls\-xtr\-short\-hyphen\-long}},
  user1={\margm{label}\margm{short}\margm{long}\margm{insert}},
  description={used by the \abbrstyle{short-hyphen-long-hyphen} style
  to format the full form},
  topics={abbrstyle.short-hyphen-long-hyphen,abbrstyle.short-hyphen-long-hyphen-desc},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbreviationstyle{abbrstyle.short-hyphen-long-hyphen-desc,
  name={\abbrstylefmt{short\dhyphen hyphen\dhyphen long\dhyphen
hyphen\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{short-hyphen-long-hyphen} style but the \field{description}
   field must be provided in the entry definition},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.17+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.short-hyphen-postlong-hyphen,
  name={\abbrstylefmt{short\dhyphen hyphen\dhyphen postlong\dhyphen hyphen}},
  description={this abbreviation style is like the
   \abbrstyle{short-hyphen-long-hyphen} style but the insert and
   parenthetical material are moved into the \idx{postlinkhook}},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.17+},
  parent={abbreviationstyles}
}

@abbrvstylecommand{glsxtrshorthyphen,
  name={\csfmt{gls\-xtr\-short\-hyphen}},
  user1={\margm{short}\margm{label}\margm{insert}},
  description={used by the \qt{postlong-hyphen} styles
  to format the short form and check if \meta{insert} starts with a hyphen},
  topics={abbrstyle.short-hyphen-postlong-hyphen},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbrvstylecommand{glsxtrposthyphenlong,
  name={\csfmt{gls\-xtr\-post\-hyphen\-long}},
  user1={\margm{label}\margm{insert}},
  description={used by the \qt{postlong-hyphen}
  styles in the \idx{postlinkhook}},
  topics={abbrstyle.short-hyphen-postlong-hyphen},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbreviationstyle{abbrstyle.short-hyphen-postlong-hyphen-desc,
  name={\abbrstylefmt{short\dhyphen hyphen\dhyphen postlong\dhyphen
hyphen\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{short-hyphen-postlong-hyphen} style but the \field{description}
   field must be provided in the entry definition},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.17+},
  parent={abbreviationstyles}
}

@abbreviationstyle{abbrstyle.long-only-short-only,
  name={\abbrstylefmt{long\dhyphen only\dhyphen short\dhyphen only}},
  description={this abbreviation style only displays the long form
  on \idx{firstuse} and only the short form on subsequent use. The
  inline full form shows the long form followed by the short form in
  parentheses},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.17+},
  parent={abbreviationstyles}
}

@abbrvstylecommand{glsabbrvonlyfont,
  name={\csfmt{gls\-abbrv\-only\-font}},
  user1={\margm{text}},
  description={used with \qt{only} abbreviation styles to format the
short form. The default definition just uses \cs{glsabbrvdefaultfont}},
  topics={abbrstyle.long-only-short-only,abbrstyle.long-only-short-only-desc},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbrvstylecommand{glsfirstabbrvonlyfont,
  name={\csfmt{gls\-first\-abbrv\-only\-font}},
  user1={\margm{text}},
  description={used with \qt{only} abbreviation styles to format the
short form on \idx{firstuse}. The default definition just uses
\cs{glsabbrvonlyfont}},
  topics={abbrstyle.long-only-short-only,abbrstyle.long-only-short-only-desc},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbrvstylecommand{glslongonlyfont,
  name={\csfmt{gls\-long\-only\-font}},
  user1={\margm{text}},
  description={used with \qt{only} abbreviation styles to format the
long form. The default definition just uses \cs{glslongdefaultfont}},
  topics={abbrstyle.long-only-short-only,abbrstyle.long-only-short-only-desc},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbrvstylecommand{glsfirstlongonlyfont,
  name={\csfmt{gls\-first\-long\-only\-font}},
  user1={\margm{text}},
  description={used with \qt{only} abbreviation styles to format the
long form on \idx{firstuse}. The default definition just uses
\cs{glslongonlyfont}},
  topics={abbrstyle.long-only-short-only,abbrstyle.long-only-short-only-desc},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbrvstylecommand{glsxtronlysuffix,
  name={\csfmt{gls\-xtr\-only\-suffix}},
  description={the suffix used to construct the plural for
   the short form of abbreviations with the \qt{only} styles.
   The default definition just uses \cs{glsxtrabbrvpluralsuffix}},
  topics={abbrstyle.long-only-short-only},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbrvstylecommand{glsxtronlyname,
  name={\csfmt{gls\-xtr\-only\-name}},
  description={hook for the \abbrstyle{long-only-short-only} style
  that expands to the value that the \field{name} field is assigned
  to when the abbreviation is defined with \cs{newabbreviation} 
  (defaults to the short form)},
  topics={abbrstyle.long-only-short-only},
  note={\styfmt{glossaries-extra} v1.25+},
  category={command}
}

@abbrvstylecommand{glsxtronlydescname,
  name={\csfmt{gls\-xtr\-only\-desc\-name}},
  description={hook for the \abbrstyle{long-only-short-only-desc} style
  that expands to the value that the \field{name} field is assigned
  to when the abbreviation is defined with \cs{newabbreviation} 
  (defaults to the long form)},
  topics={abbrstyle.long-only-short-only-desc},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@abbreviationstyle{abbrstyle.long-only-short-only-desc,
  name={\abbrstylefmt{long\dhyphen only\dhyphen short\dhyphen only\dhyphen desc}},
  description={this abbreviation style is like the
   \abbrstyle{long-only-short-only} style but the \field{description}
   field must be provided in the entry definition},
  category={abbreviationstyle},
  note={\styfmt{glossaries-extra} v1.17+},
  parent={abbreviationstyles}
}

@topic{glossarystyle,
  name={glossary styles},
  text={glossary style},
  description={glossary styles are set using \ics{setglossarystyle} 
  or with the \styopt{style} package option or the
  \printglossopt{style} option in \cs{printunsrtglossary}. 
  There are a number of styles provided in the supplementary packages. See the
\href{https://www.dickimaw-books.com/gallery/glossaries-styles/}{\styfmt{glossaries}
  gallery of predefined styles}~\cite{glossarystylesgallery} for
  samples of each style}
}

@glossarystyle{glostyle.inline,
  name={\glostylefmt{inline}},
  description={this style is designed for inline glossaries. The
  \field{symbol}, \idx{locationlist} and child \field{name} are omitted 
  by default, but associated style commands may be redefined to
  change this},
  category={glossarystyle},
  note={\styfmt{glossary-inline} v3.03+},
  parent={glossarystyle}
}

@glostylecommand{glsinlinedopostchild,
  name={\csfmt{gls\-in\-line\-do\-post\-child}},
  description={group headings aren't supported by default, but if
  they are required, this command should be added to start of the definition
  of \cs{glsgroupheading} in case a heading follows a child entry},
  category={command},
  note={\styfmt{glossary-inline} v3.03+},
  topics={glostyle.inline}
}

@glostylecommand{glsinlineseparator,
  name={\csfmt{gls\-in\-line\-separator}},
  description={separator between entries},
  category={command},
  note={\styfmt{glossary-inline} v3.03+},
  topics={glostyle.inline}
}

@glostylecommand{glsinlinesubseparator,
  name={\csfmt{gls\-in\-line\-sub\-separator}},
  description={separator between sub-entries},
  category={command},
  note={\styfmt{glossary-inline} v3.03+},
  topics={glostyle.inline}
}

@glostylecommand{glsinlineparentchildseparator,
  name={\csfmt{gls\-in\-line\-parent\-child\-separator}},
  description={separator between parent and child entries},
  category={command},
  note={\styfmt{glossary-inline} v3.03+},
  topics={glostyle.inline}
}

@glostylecommand{glsinlinepostchild,
  name={\csfmt{gls\-in\-line\-post\-child}},
  description={hook between child and next entry},
  category={command},
  note={\styfmt{glossary-inline} v3.03+},
  topics={glostyle.inline}
}

@glostylecommand{glspostinline,
  name={\csfmt{gls\-post-in\-line}},
  description={glossary terminator},
  category={command},
  note={\styfmt{glossary-inline} v3.03+},
  topics={glostyle.inline}
}

@glostylecommand{glsinlinenameformat,
  name={\csfmt{gls\-in\-line\-name\-format}},
  user1={\margm{label}\margm{name}},
  description={format's the entry's name including target, if
  supported},
  category={command},
  note={\styfmt{glossary-inline} v3.03+},
  topics={glostyle.inline}
}

@glostylecommand{glsinlinedescformat,
  name={\csfmt{gls\-in\-line\-desc\-format}},
  user1={\margm{description}\margm{symbol}\margm{location list}},
  description={format's the entry's description, symbol and location
  list. This ignores the symbol and location by default},
  category={command},
  note={\styfmt{glossary-inline} v3.03+},
  topics={glostyle.inline}
}

@glossarystyle{glostyle.indexgroup,
  name={\glostylefmt{indexgroup}},
  description={},
  category={glossarystyle},
  note={\styfmt{glossary-tree}},
  parent={glossarystyle}
}

@glossarystyle{glostyle.mcolindexgroup,
  name={\glostylefmt{mcolindexgroup}},
  category={glossarystyle},
  note={\styfmt{glossary-mcols}},
  parent={glossarystyle}
}

@glossarystyle{glostyle.indexhypergroup,
  name={\glostylefmt{indexhypergroup}},
  category={glossarystyle},
  note={\styfmt{glossary-tree}},
  parent={glossarystyle}
}

@glossarystyle{glostyle.tree,
  name={\glostylefmt{tree}},
  category={glossarystyle},
  note={\styfmt{glossary-tree}},
  parent={glossarystyle}
}

@glossarystyle{glostyle.treegroup,
  name={\glostylefmt{treegroup}},
  category={glossarystyle},
  note={\styfmt{glossary-tree}},
  parent={glossarystyle}
}

@glossarystyle{glostyle.treenoname,
  name={\glostylefmt{treenoname}},
  category={glossarystyle},
  note={\styfmt{glossary-tree}},
  parent={glossarystyle}
}

@glossarystyle{glostyle.treenonamegroup,
  name={\glostylefmt{treenonamegroup}},
  category={glossarystyle},
  note={\styfmt{glossary-tree}},
  parent={glossarystyle}
}

@glossarystyle{glostyle.alttree,
  name={\glostylefmt{alttree}},
  category={glossarystyle},
  note={\styfmt{glossary-tree}},
  parent={glossarystyle}
}

@glossarystyle{glostyle.alttreegroup,
  name={\glostylefmt{alttreegroup}},
  category={glossarystyle},
  note={\styfmt{glossary-tree}},
  parent={glossarystyle}
}

@glossarystyle{glostyle.mcolalttree,
  name={\glostylefmt{mcolalttree}},
  category={glossarystyle},
  note={\styfmt{glossary-mcols}},
  parent={glossarystyle}
}

@glossarystyle{glostyle.mcolalttreegroup,
  name={\glostylefmt{mcolalttreegroup}},
  category={glossarystyle},
  note={\styfmt{glossary-mcols}},
  parent={glossarystyle}
}

@glossarystyle{glostyle.topic,
  name={\glostylefmt{topic}},
  category={glossarystyle},
  note={\styfmt{glossary-topic} v1.40+},
  parent={glossarystyle}
}

@glossarystyle{glostyle.topicmcols,
  name={\glostylefmt{topicmcols}},
  category={glossarystyle},
  note={\styfmt{glossary-topic} v1.40+},
  parent={glossarystyle}
}

@glossarystyle{glostyle.list,
  name={\glostylefmt{list}},
  category={glossarystyle},
  note={\styfmt{glossary-list}},
  parent={glossarystyle}
}

@glossarystyle{glostyle.altlist,
  name={\glostylefmt{altlist}},
  category={glossarystyle},
  note={\styfmt{glossary-list}},
  parent={glossarystyle}
}

@glossarystyle{glostyle.altlistgroup,
  name={\glostylefmt{altlistgroup}},
  category={glossarystyle},
  note={\styfmt{glossary-list}},
  parent={glossarystyle}
}

@glossarystyle{glostyle.index,
  name={\glostylefmt{index}},
  category={glossarystyle},
  note={\styfmt{glossary-tree}},
  parent={glossarystyle}
}

@glossarystyle{glostyle.bookindex,
  name={\glostylefmt{bookindex}},
  category={glossarystyle},
  note={\styfmt{glossary-bookindex}},
  parent={glossarystyle}
}

@glossarystyle{glostyle.long,
  name={\glostylefmt{long}},
  category={glossarystyle},
  note={\styfmt{glossary-long}},
  parent={glossarystyle}
}

@glossarystyle{glostyle.super,
  name={\glostylefmt{super}},
  category={glossarystyle},
  note={\styfmt{glossary-long}},
  parent={glossarystyle}
}

@glossarystyle{glostyle.long3col,
  name={\glostylefmt{long3col}},
  category={glossarystyle},
  note={\styfmt{glossary-long}},
  parent={glossarystyle}
}

@glossarystyle{glostyle.long3col-booktabs,
  name={\glostylefmt{long3col\dhyphen booktabs}},
  category={glossarystyle},
  note={\styfmt{glossary-longbooktabs}},
  parent={glossarystyle}
}

@index{categoryattribute,
  name={category attributes},
  text={category attribute}
}

@index{attribute,
  name = {attributes},
  text = {attribute},
  alias = {categoryattribute}
}

@categoryattribute{catattr.recordcount,
  name={\catattrfmt{record\-count}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.glossname,
  name={\catattrfmt{gloss\-name}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.glossnamefont,
  name={\catattrfmt{gloss\-name\-font}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.glossdesc,
  name={\catattrfmt{gloss\-desc}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.glossdescfont,
  name={\catattrfmt{gloss\-desc\-font}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.glosssymbolfont,
  name={\catattrfmt{gloss\-symbol\-font}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.textformat,
  name={\catattrfmt{text\-format}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.headuc,
  name={\catattrfmt{headuc}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.aposplural,
  name={\catattrfmt{apos\-plural}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.accessaposplural,
  name={\catattrfmt{access\-apos\-plural}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.noshortplural,
  name={\catattrfmt{no\-short\-plural}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.accessnoshortplural,
  name={\catattrfmt{access\-no\-short\-plural}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.nameshortaccess,
  name={\catattrfmt{name\-short\-access}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.firstshortaccess,
  name={\catattrfmt{first\-short\-access}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.textshortaccess,
  name={\catattrfmt{text\-short\-access}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.markwords,
  name={\catattrfmt{mark\-words}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.markshortwords,
  name={\catattrfmt{mark\-short\-words}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.targeturl,
  name={\catattrfmt{target\-url}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.targetname,
  name={\catattrfmt{target\-name}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.externallocation,
  name={\catattrfmt{external\-location}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.discardperiod,
  name={\catattrfmt{discard\-period}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.pluraldiscardperiod,
  name={\catattrfmt{plural\-discard\-period}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.retainfirstuseperiod,
  name={\catattrfmt{retain\-first\-use\-period}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.insertdots,
  name={\catattrfmt{insert\-dots}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.accessinsertdots,
  name={\catattrfmt{access\-insert\-dots}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.tagging,
  name={\catattrfmt{tagging}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.nohyperfirst,
  name={\catattrfmt{no\-hyper\-first}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.nohyper,
  name={\catattrfmt{no\-hyper}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.entrycount,
  name={\catattrfmt{entry\-count}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.hyperoutside,
  name={\catattrfmt{hyper\-outside}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.regular,
  name={\catattrfmt{regular}},
  category={categoryattribute},
  parent={categoryattribute}
}

@categoryattribute{catattr.wrgloss,
  name={\catattrfmt{wrgloss}},
  category={categoryattribute},
  parent={categoryattribute}
}

@counter{ctr.equation,
  name={\counterfmt{equation}},
  category={counter}
}

@counter{ctr.page,
  name={\counterfmt{page}},
  category={counter}
}

@counter{ctr.section,
  name={\counterfmt{section}},
  category={counter}
}

@counter{ctr.chapter,
  name={\counterfmt{chapter}},
  category={counter}
}

@counter{ctr.wrglossary,
  name={\counterfmt{wrglossary}},
  category={counter}
}

@counter{ctr.glossaryentry,
  name={\counterfmt{glossaryentry}},
  category={counter}
}

@counter{ctr.glossarysubentry,
  name={\counterfmt{glossarysubentry}},
  category={counter}
}

@index{labelprefixes,
  name={label prefixes},
  text={label prefix},
  plural={label prefixes}
}

@labelprefix{idprefix.dual,
  name={\idprefixfmt{dual}},
  category={idprefix},
  parent={labelprefixes}
}

@labelprefix{idprefix.tertiary,
  name={\idprefixfmt{tertiary}},
  category={idprefix},
  parent={labelprefixes}
}

@labelprefix{idprefix.extn,
  name={\idprefixfmt{ext\meta{n}}},
  category={idprefix},
  parent={labelprefixes}
}

@index{packageoptions,
  name={package options},
  text={package option}
}

@packageoption{styopt.record,
  name={\styoptfmt{record}},
  user1={\meta{value}},
  description={unless the value is \styoptfmt{off}, this option sets
  up \styfmt{glossaries-extra} for use with \bibgls: \styoptfmt{only}
  (assumed if no \meta{value} supplied) indexing is performed by
  \bibgls; \styoptfmt{nameref} (\sty{glossaries-extra} v1.37+) 
  like \styoptfmt{only} but includes extra information in the records; 
  \styoptfmt{alsoindex} (hybrid method) \bibgls\ is used to provide
  the entry definitions but \idx{makeindex} or \idx{xindy} is used
  for the indexing},
  package={glossaries-extra},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.bibglsaux,
  name={\styoptfmt{bib\-gls\-aux}},
  user1={\meta{basename}},
  description={creates a separate \ext{aux} file containing all
records, which is input using \cs{@bibgls@input} instead of
\cs{@input}},
  package={glossaries-extra},
  category={packageoption},
  seealso={switch.aux-input-action,glsxtrsetbibglsaux,@bibgls@input},
  parent={packageoptions}
}

@packageoption{styopt.accsupp,
  name={\styoptfmt{accsupp}},
  description={load the \sty{glossaries-accsupp} package to provide
   accessibility support},
  package={glossaries,glossaries-extra},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.abbreviations,
  name={\styoptfmt{abbreviations}},
  description={creates the \code{abbreviations} glossary},
  package={glossaries-extra},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.symbols,
  name={\styoptfmt{symbols}},
  package={glossaries,glossaries-extra},
  description={defines the \code{symbols} glossary; with 
   \styfmt{glossaries-extra} additionally defines
   \csref{glsxtrnewsymbol}},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.numbers,
  name={\styoptfmt{numbers}},
  package={glossaries,glossaries-extra},
  description={defines the \code{numbers} glossary; with 
   \styfmt{glossaries-extra} additionally defines
   \csref{glsxtrnewnumber}},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.undefaction,
  name={\styoptfmt{undefaction}},
  user1={\meta{value}},
  description={indicates what to do if an undefined entry is
  referenced: \styoptfmt{warn} (generate a warning and show ?? in
  the text, default with \styopt{record}), \styoptfmt{error}
  (generate an error)},
  package={glossaries-extra},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.indexcrossrefs,
  name={\styoptfmt{indexcrossrefs}},
  user1={\meta{boolean}},
  package={glossaries-extra},
  category={packageoption},
  parent={packageoptions},
  description={if true, at the end of
  the document automatically index cross-referenced entries that 
  haven't been marked as used},
  note={not relevant with \bibgls}
}

@packageoption{styopt.autoseeindex,
  name={\styoptfmt{autoseeindex}},
  user1={\meta{boolean}},
  package={glossaries-extra},
  category={packageoption},
  parent={packageoptions},
  note={not relevant with \bibgls},
  description={if true, the \field{see} and \field{seealso} keys 
   automatically indexes the cross-referenced term}
}

@packageoption{styopt.nopostdot,
  name={\styoptfmt{nopostdot}},
  user1={\meta{boolean}},
  package={glossaries,glossaries-extra},
  description={if true, suppresses the automatic post-description 
   punctuation. With \styfmt{glossaries-extra} you can also use
   \styopt[none]{postpunc} instead of \styopt[true]{nopostdot} and
   \styopt{postdot} or \styopt[dot]{postpunc} instead of 
   \styopt[false]{nopostdot}},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.postdot,
  name={\styoptfmt{postdot}},
  package={glossaries-extra},
  description={equivalent to \styopt[dot]{postpunc}},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.postpunc,
  name={\styoptfmt{postpunc}},
  user1={\meta{value}},
  package={glossaries-extra},
  category={packageoption},
  parent={packageoptions},
  description={controls the automatic post-description punctuation;
  the value may be one of: \styoptfmt{none} (not required, 
  the \field{description} or glossary style already supplies the 
  terminating punctuation), \styoptfmt{comma} (use a comma),
  \styoptfmt{dot} (use a \idx{full-stop} with the space factor
   adjusted), \meta{punctuation} (use \meta{punctuation})}
}

@packageoption{styopt.indexcounter,
  name={\styoptfmt{index\-counter}},
  description={creates the \counter{wrglossary} counter, which is
  incremented every time an entry is indexed with that counter, and sets
  that as the default location counter},
  package={glossaries-extra},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.docdef,
  name={\styoptfmt{docdef}},
  user1={\meta{value}},
  package={glossaries-extra},
  category={packageoption},
  parent={packageoptions},
  note={not relevant with \bibgls},
  description={determines whether
  entries can be defined in the \envfmt{document} environment; the
  \meta{value} may be one of: \styoptfmt{false} (entries must be 
  defined in the preamble), \styoptfmt{true} (entries may be defined
  in the \envfmt{document} environment), \styoptfmt{restricted}
  (entries may only be defined in the \envfmt{document} environment
  if the definition comes before all glossaries and before any
  reference to the entry)}
}

@packageoption{styopt.nomissingglstext,
  name={\styoptfmt{nomissingglstext}},
  user1={\meta{boolean}},
  package={glossaries-extra},
  category={packageoption},
  parent={packageoptions},
  note={not relevant with \bibgls},
  description={if true, suppress the
  warning text that appears in the document with \cs{printglossary}
  if the associated external file doesn't exist}
}

@packageoption{styopt.stylemods,
  name={\styoptfmt{stylemods}},
  user1={\meta{value}},
  description={load the \sty{glossaries-extra-stylemods} package with the
  supplied options (which should be a list of suffix parts
  identifying glossary style packages \styfmt{glossary-}\meta{suffix}); 
  there are two keyword values: \styoptfmt{default}
  (equivalent to omitting \meta{value}) and \styoptfmt{all}, which
  loads all predefined styles},
  package={glossaries-extra},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.nowarn,
  name={\styoptfmt{nowarn}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={suppresses all \styfmt{glossaries}-related warnings}
}

@packageoption{styopt.nolangwarn,
  name={\styoptfmt{nolangwarn}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={suppresses warnings generated by missing language modules}
}

@packageoption{styopt.noredefwarn,
  name={\styoptfmt{noredefwarn}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={suppresses warnings if overriding glossary commands
   provided by another class or package}
}

@packageoption{styopt.debug,
  name={\styoptfmt{debug}},
  user1={\meta{value}},
  package={glossaries,glossaries-extra},
  category={packageoption},
  parent={packageoptions},
  description={add debugging information; allowed values: 
  \styoptfmt{false} (default), \styoptfmt{true} (info added to
   transcript), \styoptfmt{showtargets} (info added to transcript
   and show target name in the document for glossary-related 
   hyperlinks), \styoptfmt{showwrgloss}\extstyopt\ show mark in
   document where indexing occurs and \styoptfmt{all}\extstyopt\
   (implement both \styoptfmt{showtargets} and
   \styoptfmt{showwrgloss})}
}

@packageoption{styopt.seenoindex,
  name={\styoptfmt{seenoindex}},
  user1={\meta{value}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  note={not relevant with \bibgls},
  description={determines whether the 
  \field{see} key automatically indexes the entry using \cs{glsadd}; 
  allowed values: \styoptfmt{error} (attempts indexing but triggers
  an error if used before \cs{cs.makeglossaries}); \styoptfmt{warn}
  (attempts indexing but triggers a warning if used before
  \cs{cs.makeglossaries}); \styoptfmt{ignore} (attempts indexing but
  does nothing if used before \cs{cs.makeglossaries})}
}

@packageoption{styopt.nomain,
  name={\styoptfmt{nomain}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={suppresses the creation of the default \code{main}
  glossary. If used an alternative glossary must be created}
}

@packageoption{styopt.sanitizesort,
  name={\styoptfmt{sanitizesort}},
  user1={\meta{boolean}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  note={not relevant with \bibgls},
  description={determines whether or not
   to sanitize the \field{sort} key (not relevant with \bibgls)}
}

@packageoption{styopt.savewrites,
  name={\styoptfmt{savewrites}},
  user1={\meta{boolean}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  note={not relevant with \bibgls},
  description={if true, indexing
  information is stored in token registers that are only written at
  the end of the document to save creating a write register per
  glossary indexing file}
}

@packageoption{styopt.translate,
  name={\styoptfmt{translate}},
  user1={\meta{value}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={determines the multilingual support provided by
   \styfmt{glossaries}; allowed values: \styoptfmt{true} (default
   with just base \styfmt{glossaries}; if
   \styfmt{babel} has been loaded and \styfmt{translator} is
   installed, use \styfmt{translator} interface), \styoptfmt{false}
   (don't provide translations), \styoptfmt{babel} (default with
   \styfmt{glossaries-extra}; don't load the 
   \styfmt{translator} package, just load \styfmt{glossaries-babel})}
}

@packageoption{styopt.notranslate,
  name={\styoptfmt{notranslate}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={equivalent to \styopt[false]{translate}}
}

@packageoption{styopt.nohypertypes,
  name={\styoptfmt{nohypertypes}},
  user1={\meta{list}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={suppress hyperlinks for the listed glossary types}
}

@packageoption{styopt.hyperfirst,
  name={\styoptfmt{hyperfirst}},
  user1={\meta{boolean}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={if false, terms on first use don't have hyperlinks
  unless explicitly set (with \styfmt{glossaries-extra}, the 
  \catattr{nohyperfirst} category attribute can selectively apply this)}
}

@packageoption{styopt.indexonlyfirst,
  name={\styoptfmt{indexonlyfirst}},
  user1={\meta{boolean}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={if true, only performs indexing on first use}
}

@packageoption{styopt.savenumberlist,
  name={\styoptfmt{savenumberlist}},
  user1={\meta{boolean}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={if true, stores the number list for each entry (with
  \bibgls\ use the \csopt{save-locations} resource option instead)}
}

@packageoption{styopt.toc,
  name={\styoptfmt{toc}},
  user1={\meta{boolean}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={if true (default for \styfmt{glossaries-extra}), 
  automatically add each glossary to the \glsxtrlong{toc}}
}

@packageoption{styopt.numberline,
  name={\styoptfmt{numberline}},
  user1={\meta{boolean}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={when used with \styopt[true]{toc}, this will add 
  \code{\csfmt{numberline}\marg{}} to the start of the \idx{toc} entry}
}

@packageoption{styopt.section,
  name={\styoptfmt{section}},
  user1={\meta{value}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={indicates the sectional unit to use for the glossary
  heading (the value should be the name of the section command without
  the leading backslash, for example \styopt[subsection]{section}).
  If no value is supplied then \styopt[section]{section} is assumed.
  If this option is omitted, then the default is either
  \styopt[chapter]{section} or \styopt[section]{section}, depending
  on whether or not \cs{chapter} has been defined. The starred or 
  unstarred version is determined by \styopt{numberedsection}}
}

@packageoption{styopt.ucmark,
  name={\styoptfmt{ucmark}},
  user1={\meta{boolean}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={if true, converts the glossary mark (used in page
  headings) to \idx{uppercase} with \cs{MakeTextUppercase}}
}

@packageoption{styopt.numberedsection,
  name={\styoptfmt{numberedsection}},
  user1={\meta{value}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={determines whether to use numbered or unnumbered 
  section units, and whether or not to automatically add
  \cs{label}; the value may be one of: \styoptfmt{false} (default, no
  numbering and no label), \styoptfmt{nolabel} (numbered but no
  label), \styoptfmt{autolabel} (numbered with automatic label), 
  \styoptfmt{nameref} (unnumbered but labelled). If no value is
  given \styoptfmt{nolabel} is assumed}
}

@packageoption{styopt.entrycounter,
  name={\styoptfmt{entrycounter}},
  user1={\meta{boolean}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={if true, creates the \counter{glossaryentry} counter
  and each main (level 0) glossary entry will be
  numbered (which can be referenced with \cs{glsrefentry} or 
  \cs{glsxtrpageref})}
}

@packageoption{styopt.counterwithin,
  name={\styoptfmt{counterwithin}},
  user1={\meta{counter name}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={automatically sets the option \styopt[true]{entrycounter} 
  and indicates the master counter for \counter{glossaryentry}}
}

@packageoption{styopt.subentrycounter,
  name={\styoptfmt{subentrycounter}},
  user1={\meta{boolean}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={if true, creates the \counter{glossarysubentry} counter
  and each level~1 glossary entry will be
  numbered (which can be referenced with \cs{glsrefentry} or 
  \cs{glsxtrpageref}); this option and associated counter are
  independent of \styopt{entrycounter} and \counter{glossaryentry}}
}

@packageoption{styopt.style,
  name={\styoptfmt{style}},
  user1={\meta{name}},
  package={glossaries},
  description={sets the default glossary style to \meta{name}},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.nolong,
  name={\styoptfmt{nolong}},
  package={glossaries},
  description={prevents the \sty{glossary-long} package (which
   provides the \glostyle{long} styles) from being
   automatically loaded},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.nosuper,
  name={\styoptfmt{nosuper}},
  package={glossaries},
  description={prevents the \isty{glossary-super} package (which
   provides the \glostyle{super} styles) from being
   automatically loaded},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.nolist,
  name={\styoptfmt{nolist}},
  package={glossaries},
  description={prevents the \sty{glossary-list} package (which
   provides the \glostyle{list} styles) from being
   automatically loaded},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.notree,
  name={\styoptfmt{notree}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={prevents the \sty{glossary-tree} package (which
   provides the \glostyle{tree} styles) from being
   automatically loaded}
}

@packageoption{styopt.nostyles,
  name={\styoptfmt{nostyles}},
  package={glossaries},
  description={prevents all the default styles from being loaded. If
   this option is used a style must be defined in the document or a package
   providing a style needs to be loaded (either 
   through \styopt{stylemods} or with \ics{usepackage})},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.esclocations,
  name={\styoptfmt{esclocations}},
  user1={\meta{boolean}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  note={not relevant with \bibgls},
  description={if true,
  \styfmt{glossaries} tries to escape special characters from the
  locations}
}

@packageoption{styopt.nonumberlist,
  name={\styoptfmt{nonumberlist}},
  package={glossaries},
  description={suppresses the location lists from being
  displayed in the glossary lists (the package
  option isn't boolean, but the option of the same name for
  \cs{printglossary}, \cs{printunsrtglossary} and
  \cs{printnoidxglossary} is boolean); with \bibgls\ you can use
  \csopt[false]{save-locations} instead},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.seeautonumberlist,
  name={\styoptfmt{seeautonumberlist}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  note={not relevant with \bibgls},
  description={if \styopt{nonumberlist}
  is used, this allows the \field{see} key to override the setting
  for the associated entry}
}

@packageoption{styopt.counter,
  name={\styoptfmt{counter}},
  user1={\meta{value}},
  description={sets the default location counter to \meta{value}
  (which must be the name of a counter). May be overridden on 
  an individual basis using the
   \glsopt{counter} option in commands like \cs{gls} and \cs{glsadd}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.nogroupskip,
  name={\styoptfmt{nogroupskip}},
  user1={\meta{boolean}},
  description={if true, suppresses the visual separation between
  letter groups in glossary styles that support this option},
  package={glossaries},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.sort,
  name={\styoptfmt{sort}},
  user1={\meta{value}},
  note={not relevant with \bibgls, use the \csopt{sort}
   resource option instead},
  description={indicates how to assign the \field{sort} key if not
   explicitly set, the value may be one of: \styoptfmt{none} (don't
   automatically assign the \field{sort} field), \styoptfmt{standard}
   (obtain the \field{sort} value from the \field{name} field),
   \styoptfmt{def} (assign the \field{sort} field to a numerical value 
   that represents the order of definition), \styoptfmt{user}
   (assign the \field{sort} field to a numerical value that
   represents the order of first use)},
  package={glossaries},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.order,
  name={\styoptfmt{order}},
  user1={\meta{value}},
  note={not relevant with \bibgls, use the \csopt{break-at}
   resource option instead},
  description={sets whether to use word or letter ordering},
  package={glossaries},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.makeindex,
  name={\styoptfmt{makeindex}},
  note={not relevant with \bibgls},
  description={write the indexing
   information using \idx{makeindex}'s format},
  package={glossaries},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.xindy,
  name={\styoptfmt{xindy}},
  user1={\meta{settings}},
  note={not relevant with \bibgls},
  description={write the indexing
   information using \idx{xindy}'s format where the optional
   \meta{settings} may supply the language and code page and whether
   or not to define the default number group},
  package={glossaries},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.xindygloss,
  name={\styoptfmt{xindygloss}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  note={not relevant with \bibgls},
  description={equivalent to \styopt[\empty]{xindy}}
}

@packageoption{styopt.xindynoglsnumbers,
  name={\styoptfmt{xindynoglsnumbers}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  note={not relevant with \bibgls},
  description={equivalent to \styopt[glsnumbers=false]{xindy}}
}

@packageoption{styopt.automake,
  name={\styoptfmt{automake}},
  user1={\meta{boolean}},
  description={if true, tries to use \TeX's shell escape to
   automatically run the required indexing application (may not
   be permitted by \TeX's security settings)},
  package={glossaries},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.acronym,
  name={\styoptfmt{acronym}},
  user1={\meta{boolean}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={if true, creates a new glossary with the label \code{acronym}}
}

@packageoption{styopt.acronyms,
  name={\styoptfmt{acronyms}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={equivalent to \styopt[true]{acronym}}
}

@packageoption{styopt.acronymlists,
  name={\styoptfmt{acronymlists}},
  user1={\meta{list}},
  package={glossaries},
  category={packageoption},
  parent={packageoptions},
  description={identifies the glossaries that are lists of acronyms
  (don't use with \sty{glossaries-extra})}
}

@packageoption{styopt.shortcuts,
  name={\styoptfmt{shortcuts}},
  package={glossaries,glossaries-extra},
  user1={\meta{value}},
  description={sets up short cut commands; the value may be one of
  \styoptfmt{false} (default), \styoptfmt{true} (assumed if no value
   supplied, implements 
   \styopt[ac]{shortcuts}, \styopt[abbreviations]{shortcuts} and
   \styopt[other]{shortcuts}), \styoptfmt{acronyms}\extstyopt\ 
   (equivalent to base \styopt[true]{shortcuts}, synonym
   \styoptfmt{acro}), \styoptfmt{ac}\extstyopt\ (provides \cs{ac}
   shortcuts that use \styfmt{glossaries-extra}'s new abbreviation
   commands), \styoptfmt{abbreviations}\extstyopt\ (provides \cs{ab}
   shortcuts), \styoptfmt{other}\extstyopt\ (provides other shortcut
   commands), \styoptfmt{all}\extstyopt\ (synonym for
   \styopt[true]{shortcuts}) and \styoptfmt{none}\extstyopt\ (synonym 
   for \styopt[false]{shortcuts})},
  category={packageoption},
  parent={packageoptions}
}

@packageoption{styopt.index,
  name={\styoptfmt{index}},
  package={glossaries},
  description={defines the \code{index} glossary and \csref{newterm}},
  category={packageoption},
  parent={packageoptions}
}

@index{fields,
  name={fields},
  text={field}
}

@field{field.alias,
  name={\fieldfmt{alias}},
  description={The entry with this field set is a synonym of the 
    entry whose label is given by this field.},
  note={\styfmt{glossaries-extra}},
  category={extrafield},
  parent={fields}
}

@field{field.category,
  name={\fieldfmt{category}},
  description={The entry's category label.},
  note={\styfmt{glossaries-extra}},
  category={extrafield},
  parent={fields}
}

@field{field.description,
  name={\fieldfmt{description}},
  description={The description displayed in the glossary.},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.descriptionplural,
  name={\fieldfmt{descriptionplural}},
  description={The plural form of the description.},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.first,
  name={\fieldfmt{first}},
  description={The text to display on first use with \cs{gls}\margm{label}.},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.firstplural,
  name={\fieldfmt{firstplural}},
  description={The text to display on first use with \cs{glspl}\margm{label}.},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.long,
  name={\fieldfmt{long}},
  description={The long form of an abbreviation. (Set internally
  by commands like \csref{newabbreviation}.)},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.longplural,
  name={\fieldfmt{longplural}},
  description={The plural long form of an abbreviation.},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.name,
  name={\fieldfmt{name}},
  description={The name displayed in the glossary.},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.parent,
  name={\fieldfmt{parent}},
  description={The parent entry's label. See 
   \sectionref{sec:logicaldivisions}.},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.plural,
  name={\fieldfmt{plural}},
  description={The text to display on subsequent use of
    \cs{glspl}\margm{label}.},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.see,
  name={\fieldfmt{see}},
  description={General purpose cross-reference
   (syntax: \code{see=\marg{\oargm{tag}\meta{xr-list}}}).},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.seealso,
  name={\fieldfmt{seealso}},
  description={Cross-reference related entries
     (syntax: \code{seealso=\margm{xr-list}}).},
  note={\styfmt{glossaries-extra}},
  category={extrafield},
  parent={fields}
}

@field{field.short,
  name={\fieldfmt{short}},
  description={The short form of an abbreviation. (Set internally
  by commands like \csref{newabbreviation}.)},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.shortplural,
  name={\fieldfmt{shortplural}},
  description={The plural short form of an abbreviation.},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.symbol,
  name={\fieldfmt{symbol}},
  description={The associated symbol.},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.symbolplural,
  name={\fieldfmt{symbolplural}},
  description={The plural form of the associated symbol.},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.text,
  name={\fieldfmt{text}},
  description={The text to display on subsequent use of 
    \cs{gls}\margm{label}.},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.user1,
  name={\fieldfmt{user1}},
  description={A general purpose user field.},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.user2,
  name={\fieldfmt{user2}},
  description={A general purpose user field.},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.user3,
  name={\fieldfmt{user3}},
  description={A general purpose user field.},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.user4,
  name={\fieldfmt{user4}},
  description={A general purpose user field.},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.user5,
  name={\fieldfmt{user5}},
  description={A general purpose user field.},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.user6,
  name={\fieldfmt{user6}},
  description={A general purpose user field.},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.duallong,
  name={\fieldfmt{duallong}},
  description={The long form of a dual
    abbreviation mapped by \atentry{dualabbreviation}.},
  note={\appfmt{bib2gls}},
  category={bib2glsfield},
  parent={fields}
}

@field{field.duallongplural,
  name={\fieldfmt{dual\-long\-plural}},
  description={The plural long form of a dual
    abbreviation mapped by \atentry{dualabbreviation}.},
  note={\appfmt{bib2gls}},
  category={bib2glsfield},
  parent={fields}
}

@field{field.dualshort,
  name={\fieldfmt{dualshort}},
  description={The short form of a dual
    abbreviation mapped by \atentry{dualabbreviation}.},
  note={\appfmt{bib2gls}},
  category={bib2glsfield},
  parent={fields}
}

@field{field.dualshortplural,
  name={\fieldfmt{dual\-short\-plural}},
  description={The plural short form of a dual abbreviation
    mapped by \atentry{dualabbreviation}.},
  note={\appfmt{bib2gls}},
  category={bib2glsfield},
  parent={fields}
}

@field{field.adoptparents,
  name={\fieldfmt{adopt\-parents}},
  description={The list of adopted parents for entries spawned by
    \atentry{progenitor}. (Field only available for use in 
    \ext{bib} file within \atentry{progenitor}-like entries.)},
  note={\appfmt{bib2gls}},
  category={bib2glsfield},
  parent={fields}
}

@field{field.prefix,
  name={\fieldfmt{prefix}},
  description={The prefix associated with the \field{text}
    field.},
  note={\styfmt{glossaries-prefix}},
  category={prefixfield},
  parent={fields}
}

@field{field.prefixfirst,
  name={\fieldfmt{prefixfirst}},
  description={The prefix associated with the \field{first}
field.},
  note={\styfmt{glossaries-prefix}},
  category={prefixfield},
  parent={fields}
}

@field{field.prefixfirstplural,
  name={\fieldfmt{prefixfirstplural}},
  description={The prefix associated with the
    \field{firstplural} field.},
  note={\styfmt{glossaries-prefix}},
  category={prefixfield},
  parent={fields}
}

@field{field.prefixplural,
  name={\fieldfmt{prefixplural}},
  description={The prefix associated with the
    \field{plural} field.},
  note={\styfmt{glossaries-prefix}},
  category={prefixfield},
  parent={fields}
}

@field{field.dualprefix,
  name={\fieldfmt{dual\-prefix}},
  description={The dual of the \field{prefix} field. This field
   isn't provided with a key or associated command, but can be
   accessed as an internal field},
  note={\appfmt{bib2gls}},
  category={bib2glsfield},
  parent={fields}
}

@field{field.dualprefixplural,
  name={\fieldfmt{dual\-prefix\-plural}},
  description={The dual of the \field{prefixplural} field. This field
   isn't provided with a key or associated command, but can be
   accessed as an internal field},
  note={\appfmt{bib2gls}},
  category={bib2glsfield},
  parent={fields}
}

@field{field.dualprefixfirst,
  name={\fieldfmt{dual\-prefix\-first}},
  description={The dual of the \field{prefixfirst} field. This field
   isn't provided with a key or associated command, but can be
   accessed as an internal field},
  note={\appfmt{bib2gls}},
  category={bib2glsfield},
  parent={fields}
}

@field{field.dualprefixfirstplural,
  name={\fieldfmt{dual\-prefix\-first\-plural}},
  description={The dual of the \field{prefixfirstplural} field. This field
   isn't provided with a key or associated command, but can be
   accessed as an internal field},
  note={\appfmt{bib2gls}},
  category={bib2glsfield},
  parent={fields}
}

@field{field.dualdescription,
  name={\fieldfmt{dual\-description}},
  description={May be used to identify a dual description},
  note={\appfmt{bib2gls}},
  category={bib2glsfield},
  parent={fields}
}

@field{field.access,
  name={\fieldfmt{access}},
  description={The replacement text for the \field{name} field.},
  note={\styfmt{glossaries-accsupp}},
  category={accessfield},
  parent={fields}
}

@field{field.descriptionaccess,
  name={\fieldfmt{descriptionaccess}},
  description={The replacement text for the
    \field{description} field.},
  note={\styfmt{glossaries-accsupp}},
  category={accessfield},
  parent={fields}
}

@field{field.descriptionpluralaccess,
  name={\fieldfmt{descriptionpluralaccess}},
  description={The replacement text for the
    \field{descriptionplural} field.},
  note={\styfmt{glossaries-accsupp}},
  category={accessfield},
  parent={fields}
}

@field{field.firstaccess,
  name={\fieldfmt{firstaccess}},
  description={The replacement text for the \field{first} field.},
  note={\styfmt{glossaries-accsupp}},
  category={accessfield},
  parent={fields}
}

@field{field.firstpluralaccess,
  name={\fieldfmt{firstpluralaccess}},
  description={The replacement text for the
   \field{firstplural} field.},
  note={\styfmt{glossaries-accsupp}},
  category={accessfield},
  parent={fields}
}

@field{field.longaccess,
  name={\fieldfmt{longaccess}},
  description={The replacement text for the \field{long} field.},
  note={\styfmt{glossaries-accsupp}},
  category={accessfield},
  parent={fields}
}

@field{field.longpluralaccess,
  name={\fieldfmt{longpluralaccess}},
  description={The replacement text for the
    \field{longplural} field.},
  note={\styfmt{glossaries-accsupp}},
  category={accessfield},
  parent={fields}
}

@field{field.pluralaccess,
  name={\fieldfmt{pluralaccess}},
  description={The replacement text for the \field{plural} field.},
  note={\styfmt{glossaries-accsupp}},
  category={accessfield},
  parent={fields}
}

@field{field.shortaccess,
  name={\fieldfmt{shortaccess}},
  description={The replacement text for the \field{short} field.},
  note={\styfmt{glossaries-accsupp}},
  category={accessfield},
  parent={fields}
}

@field{field.shortpluralaccess,
  name={\fieldfmt{shortpluralaccess}},
  description={The replacement text for the
   \field{shortplural} field.},
  note={\styfmt{glossaries-accsupp}},
  category={accessfield},
  parent={fields}
}

@field{field.symbolaccess,
  name={\fieldfmt{symbolaccess}},
  description={The replacement text for the \field{symbol} field.},
  note={\styfmt{glossaries-accsupp}},
  category={accessfield},
  parent={fields}
}

@field{field.symbolpluralaccess,
  name={\fieldfmt{symbolpluralaccess}},
  description={The replacement text for the
    \field{symbolplural} field.},
  note={\styfmt{glossaries-accsupp}},
  category={accessfield},
  parent={fields}
}

@field{field.textaccess,
  name={\fieldfmt{textaccess}},
  description={The replacement text for the
     \field{text} field.},
  note={\styfmt{glossaries-accsupp}},
  category={accessfield},
  parent={fields}
}

@index{internalfields,
  name={fields, internal},
  text={internal fields}
}

@field{field.childcount,
  name={\fieldfmt{childcount}},
  description={Stores the number of children this entry has
    had selected.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.childlist,
  name={\fieldfmt{childlist}},
  description={A list of labels (in \sty{etoolbox}'s internal list
   format) of the children this entry has had selected.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.siblingcount,
  name={\fieldfmt{siblingcount}},
  description={Stores the number of siblings this entry has
    had selected.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.siblinglist,
  name={\fieldfmt{siblinglist}},
  description={A list of labels (in \sty{etoolbox}'s internal list
   format) of the siblings this entry has had selected.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.rootancestor,
  name={\fieldfmt{rootancestor}},
  description={Stores the label of this entry's root ancestor.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.definitionindex,
  name={\fieldfmt{definitionindex}},
  description={Stores the definition index.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.useindex,
  name={\fieldfmt{useindex}},
  description={Stores the order of use index.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.originalentrytype,
  name={\fieldfmt{original\-entry\-type}},
  description={The original entry type before any aliasing was
  applied or the actual entry type if no aliasing.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.originalid,
  name={\fieldfmt{original\-id}},
  description={The original label as given in the \ext{bib} file.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.primarylocations,
  name={\fieldfmt{primarylocations}},
  description={Stores the locations that use one of the designated
primary formats, if enabled.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.indexcounter,
  name={\fieldfmt{index\-counter}},
  description={Stores the location corresponding to the matching
\counter{wrglossary} reference.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.counter,
  name={\fieldfmt{counter}},
  description={The default counter used for indexing (assigned by
   the \csopt{counter} option).},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.group,
  name={\fieldfmt{group}},
  description={The letter group determined by the comparator
   (or assigned by the \csopt{group} option). See 
   \sectionref{sec:logicaldivisions}.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.location,
  name={\fieldfmt{location}},
  description={The typeset location list.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.loclist,
  name={\fieldfmt{loclist}},
  description={The internal list of locations.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.recordcount,
  name={\fieldfmt{recordcount}},
  description={Used with record counting to store the
    total record count.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.recordcount.counter,
  name={\fieldfmt{recordcount.\discretionary{}{}{}\meta{counter}}},
  description={Used with record counting to store the
   total number of records for a given counter.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.recordcount.counter.location,
  name={\fieldfmt{recordcount.\discretionary{}{}{}\meta{counter}.\discretionary{}{}{}\meta{location}}},
  description={Used with record counting to store the
   total number of records for a given location.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.secondarygroup,
  name={\fieldfmt{secondarygroup}},
  description={The letter group determined by the
    comparator used with the \csopt{secondary} sort.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.secondarysort,
  name={\fieldfmt{secondarysort}},
  description={The sort value determined by the
   comparator used with the \csopt{secondary} sort.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.dual,
  name={\fieldfmt{dual}},
  description={Created by \csopt{dual-field} if set with no value,
   this field is used to store the dual label.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.sort,
  name={\fieldfmt{sort}},
  description={The sort value obtained by the comparator.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.type,
  name={\fieldfmt{type}},
  description={The glossary this entry belongs to (assigned by
   the \csopt{type} option). See 
   \sectionref{sec:logicaldivisions}.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.fieldendpunc,
  name={\meta{field}\fieldfmt{endpunc}},
  description={Used with the \csopt{check-end-punctuation}
  option.},
  note={internal field set by \appfmt{bibgls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.bibtextype,
  name={\fieldfmt{bib\-tex\-type}},
  description={Used by \bibgls\ as a substitution for \BibTeX's
   \fieldfmt{type} field when parsing \atentry{bibtexentry}. Needs
   to be defined or aliased to make it available in the document.},
  note={internal field set by \bibgls},
  category={internalfield},
  parent={internalfields}
}

@field{field.bibtexcontributor,
  name={\fieldfmt{bib\-tex\-con\-trib\-u\-tor}},
  description={An internal list field provided when a
  \atentry{contributor} entry is automatically
  created by \atentry{bibtexentry}.},
  note={internal field set by \bibgls},
  category={internalfield},
  parent={internalfields}
}

@field{field.bibtexentry,
  name={\fieldfmt{bib\-tex\-entry}},
  description={An internal list field created by \atentry{bibtexentry}.},
  note={internal field set by \bibgls},
  category={internalfield},
  parent={internalfields}
}

@field{field.bibtexentry@entrytype,
  name={\fieldfmt{bib\-tex\-entry\-@\meta{entry-type}}},
  description={An internal list field created by \atentry{bibtexentry}.},
  note={internal field set by \bibgls},
  category={internalfield},
  parent={internalfields}
}

@field{field.progeny,
  name={\fieldfmt{progeny}},
  description={A comma-separated list of labels identifying
   the entries spawned by \atentry{progenitor}.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.progenitor,
  name={\fieldfmt{progenitor}},
  description={The label identifying the \atentry{progenitor} 
   that spawned this entry.},
  note={internal field set by \appfmt{bib2gls}},
  category={internalfield},
  parent={internalfields}
}

@field{field.currcount,
  name={\fieldfmt{currcount}},
  description={Used with entry counting to store the current total.},
  note={internal field set by \styfmt{glossaries}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.currcountunit,
  name={\fieldfmt{currcount@}\meta{value}},
  description={Used with unit entry counting (\styfmt{glossaries-extra}).},
  note={internal field set by \styfmt{glossaries-extra}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.indexed,
  name={\fieldfmt{indexed}},
  description={The value is incremented everytime the entry is indexed.},
  note={internal field set by \styfmt{glossaries-extra} v1.49+},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.desc,
  name={\fieldfmt{desc}},
  description={Corresponds to \field{description} key.},
  note={internal field set by \styfmt{glossaries}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.descplural,
  name={\fieldfmt{descplural}},
  description={Corresponds to \field{descriptionplural} key.},
  note={internal field set by \styfmt{glossaries}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.firstpl,
  name={\fieldfmt{firstpl}},
  description={Corresponds to \field{firstplural} key.},
  note={internal field set by \styfmt{glossaries}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.flag,
  name={\fieldfmt{flag}},
  description={Boolean that determines if an entry has been used.},
  note={internal field set by \styfmt{glossaries}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.index,
  name={\fieldfmt{index}},
  description={The main part of the indexing code
    (\appfmt{makeindex} or \appfmt{xindy}).},
  note={internal field set by \styfmt{glossaries}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.level,
  name={\fieldfmt{level}},
  description={Hierarchical level.},
  note={internal field set by \styfmt{glossaries}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.longpl,
  name={\fieldfmt{longpl}},
  description={Corresponds to \field{longplural} key.},
  note={internal field set by \styfmt{glossaries}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.nonumberlist,
  name={\fieldfmt{nonumberlist}},
  description={Used to suppress the location list for a specific entry.
  Its value may only be \code{true} or \code{false}.
  Technically this isn't actually a field as its value isn't saved
  so it can't be referenced or modified after the entry has been
  defined.},
  note={\styfmt{glossaries}},
  category={basefield},
  parent={fields}
}

@field{field.prenumberlist,
  name={\fieldfmt{prenumberlist}},
  description={set by the \field{nonumberlist} entry key with \cs{makenoidxglossaries}},
  note={internal field set by \styfmt{glossaries}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.prevcount,
  name={\fieldfmt{prevcount}},
  description={Used with entry counting to store the total 
   from the previous run.},
  note={internal field set by \styfmt{glossaries}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.prevcountunit,
  name={\fieldfmt{prevcount@}\meta{value}},
  description={Used with unit entry counting
    (\styfmt{glossaries-extra}).},
  note={internal field set by \styfmt{glossaries-extra}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.prevunitmax,
  name={\fieldfmt{prevunitmax}},
  description={Used with unit entry counting
    (\styfmt{glossaries-extra}).},
  note={internal field set by \styfmt{glossaries-extra}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.prevunittotal,
  name={\fieldfmt{prevunittotal}},
  description={Used with unit entry counting
   (\styfmt{glossaries-extra}).},
  note={internal field set by \styfmt{glossaries-extra}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.shortpl,
  name={\fieldfmt{shortpl}},
  description={Corresponds to \field{shortplural} key.},
  note={internal field set by \styfmt{glossaries}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.sortvalue,
  name={\fieldfmt{sortvalue}},
  description={Original \field{sort} value 
   (before sanitizing and escaping special characters).},
  note={internal field set by \styfmt{glossaries}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.unitlist,
  name={\fieldfmt{unitlist}},
  description={Used with unit entry counting
   (\styfmt{glossaries-extra}).},
  note={internal field set by \styfmt{glossaries-extra}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.useri,
  name={\fieldfmt{useri}},
  description={Corresponds to \field{user1} key.},
  note={internal field set by \styfmt{glossaries}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.userii,
  name={\fieldfmt{userii}},
  description={Corresponds to \field{user2} key.},
  note={internal field set by \styfmt{glossaries}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.useriii,
  name={\fieldfmt{useriii}},
  description={Corresponds to \field{user3} key.},
  note={internal field set by \styfmt{glossaries}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.useriv,
  name={\fieldfmt{useriv}},
  description={Corresponds to \field{user4} key.},
  note={internal field set by \styfmt{glossaries}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.userv,
  name={\fieldfmt{userv}},
  description={Corresponds to \field{user5} key.},
  note={internal field set by \styfmt{glossaries}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.uservi,
  name={\fieldfmt{uservi}},
  description={Corresponds to \field{user6} key.},
  note={internal field set by \styfmt{glossaries}},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.bib2gls@sort,
  name={\fieldfmt{bib2gls@sort}},
  description={Used by \bibgls\ to store the actual sort value.},
  note={internal field set by \bibgls},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.bib2gls@sortfallback,
  name={\fieldfmt{bib2gls@sortfallback}},
  description={Used by \bibgls\ to store the sort fallback value.},
  note={internal field set by \bibgls},
  category={baseinternalfield},
  parent={internalfields}
}

@field{field.elements,
  name={\fieldfmt{elements}},
  description={Only available for \atentry{compoundset} this
   required field should contain a comma-separated list of labels.},
  note={specific to \atentry{compoundset}},
  category={compoundsetfield},
  parent={fields}
}

@field{field.main,
  name={\fieldfmt{main}},
  description={Only available for \atentry{compoundset} this
   optional field should contain the \gls{ext1.compmainlabel}.
   If omitted, the final element from the \field{elements} field is
   assumed.},
  note={specific to \atentry{compoundset}},
  category={compoundsetfield},
  parent={fields}
}

@field{field.options,
  name={\fieldfmt{option}},
  description={Only available for \atentry{compoundset} this
   optional field should contain the default options that govern the set
   (which override conflicting options set with
   \cs{multiglossaryentrysetup} and can be overridden by options to
   commands like \cs{mgls}).},
  note={specific to \atentry{compoundset}},
  category={compoundsetfield},
  parent={fields}
}

@index{entrytypes,
  name={entry types},
  text={entry type}
}

@entrytype{entry.string,
  name={\atentryfmt{string}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.preamble,
  name={\atentryfmt{preamble}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.comment,
  name={\atentryfmt{comment}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.compoundset,
  name={\atentryfmt{compoundset}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.entry,
  name={\atentryfmt{entry}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.symbol,
  name={\atentryfmt{symbol}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.number,
  name={\atentryfmt{number}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.index,
  name={\atentryfmt{index}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.indexplural,
  name={\atentryfmt{indexplural}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.abbreviation,
  name={\atentryfmt{abbreviation}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.acronym,
  name={\atentryfmt{acronym}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.dualentry,
  name={\atentryfmt{dual\-entry}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.dualindexentry,
  name={\atentryfmt{dual\-index\-entry}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.dualindexabbreviation,
  name={\atentryfmt{dual\-index\-abbre\-via\-tion}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.dualindexsymbol,
  name={\atentryfmt{dual\-index\-symbol}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.dualindexnumber,
  name={\atentryfmt{dual\-index\-number}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.dualabbreviationentry,
  name={\atentryfmt{dual\-abbre\-via\-tion\-entry}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.dualentryabbreviation,
  name={\atentryfmt{dual\-entry\-abbre\-via\-tion}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.dualsymbol,
  name={\atentryfmt{dual\-symbol}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.dualnumber,
  name={\atentryfmt{dual\-number}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.dualabbreviation,
  name={\atentryfmt{dual\-abbre\-via\-tion}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.dualacronym,
  name={\atentryfmt{dual\-acronym}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.tertiaryindexabbreviationentry,
  name={\atentryfmt{tert\-iary\-index\-abbre\-via\-tion\-entry}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.bibtexentry,
  name={\atentryfmt{bib\-tex\-entry}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.contributor,
  name={\atentryfmt{contributor}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.progenitor,
  name={\atentryfmt{progenitor}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.spawnindex,
  name={\atentryfmt{spawn\-index}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.spawnindexplural,
  name={\atentryfmt{spawn\-index\-plural}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.spawnentry,
  name={\atentryfmt{spawn\-entry}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.spawnsymbol,
  name={\atentryfmt{spawn\-symbol}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.spawnnumber,
  name={\atentryfmt{spawn\-number}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.spawnabbreviation,
  name={\atentryfmt{spawn\-abbreviation}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.spawnacronym,
  name={\atentryfmt{spawn\-acronym}},
  category={entrytype},
  parent={entrytypes}
}

@entrytype{entry.spawndualindexentry,
  name={\atentryfmt{spawn\-dual\-index\-entry}},
  category={entrytype},
  parent={entrytypes}
}

@index{switches,
  name={switches},
  text={switch},
  plural={switches},
  see={commandlineoptions,commandlineoptionsconverter,commandlineoptionsgls2bib,commandlineoptionsdatatool2bib}
}

@index{--switch,
  name={\longargfmt{\meta{switch}}},
  see={commandlineoptions,commandlineoptionsconverter,commandlineoptionsgls2bib,commandlineoptionsdatatool2bib}
}

@index{commandlineoptions,
  name={command line options (\appfmt{bib2gls})},
  text={command line option}
}

@index{commandlineoptionscommon,
  name={command line options (common)},
  text={command line option}
}

@index{commandlineoptionsconverter,
  name={command line options (conversion tools)},
  text={command line option}
}

@index{commandlineoptionsgls2bib,
  name={command line options (\appfmt{convertgls2bib})},
  text={command line option}
}

@index{commandlineoptionsdatatool2bib,
  name={command line options (\appfmt{datatool2bib})},
  text={command line option}
}

@switch{switch.common.help,
  name={\longargfmt{help}},
  symbol={\shortargfmt{h}},
  user1={},
  category={switch},
  parent={commandlineoptionscommon}
}

@switch{switch.common.version,
  name={\longargfmt{version}},
  symbol={\shortargfmt{v}},
  user1={},
  category={switch},
  parent={commandlineoptionscommon}
}

@switch{switch.common.debug,
  name={\longargfmt{debug}},
  user1={\oargm{n}},
  category={switch},
  parent={commandlineoptionscommon}
}

@switch{switch.common.debug-mode,
  name={\longargfmt{debug\dhyphen mode}},
  user1={\meta{setting}},
  category={switch},
  parent={commandlineoptionscommon}
}

@switch{switch.common.no-debug,
  name={\longargfmt{no\dhyphen debug}},
  symbol={\longargfmt{nodebug}},
  user1={},
  category={switch},
  parent={commandlineoptionscommon}
}

@switch{switch.common.verbose,
  name={\longargfmt{verbose}},
  user1={},
  category={switch},
  parent={commandlineoptionscommon}
}

@switch{switch.common.no-verbose,
  name={\longargfmt{no\dhyphen verbose}},
  symbol={\longargfmt{noverbose}},
  user1={},
  category={switch},
  parent={commandlineoptionscommon}
}

@switch{switch.common.silent,
  name={\longargfmt{silent}},
  user1={},
  category={switch},
  parent={commandlineoptionscommon}
}

@switch{switch.common.quiet,
  name={\longargfmt{quiet}},
  symbol={\shortargfmt{q}},
  user1={},
  category={switch},
  parent={commandlineoptionscommon}
}

@switch{switch.common.locale,
  name={\longargfmt{locale}},
  symbol={\shortargfmt{l}},
  user1={\meta{lang}},
  category={switch},
  parent={commandlineoptionscommon}
}

@switch{switch.log-file,
  name={\longargfmt{log\dhyphen file}},
  symbol={\shortargfmt{t}},
  user1={\meta{filename}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.converter.log-file,
  name={\longargfmt{log\dhyphen file}},
  symbol={\shortargfmt{t}},
  user1={\meta{filename}},
  category={switch},
  parent={commandlineoptionsconverter}
}

@switch{switch.dir,
  name={\longargfmt{dir}},
  symbol={\shortargfmt{d}},
  user1={\meta{dirname}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.interpret,
  name={\longargfmt{interpret}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-interpret,
  name={\longargfmt{no\dhyphen interpret}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.warn-non-bib-fields,
  name={\longargfmt{warn\dhyphen non\dhyphen bib\dhyphen fields}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-warn-non-bib-fields,
  name={\longargfmt{no\dhyphen warn\dhyphen non\dhyphen bib\dhyphen fields}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.warn-unknown-entry-types,
  name={\longargfmt{warn\dhyphen unknown\dhyphen entry\dhyphen types}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-warn-unknown-entry-types,
  name={\longargfmt{no\dhyphen warn\dhyphen unknown\dhyphen entry\dhyphen types}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.break-space,
  name={\longargfmt{break\dhyphen space}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-break-space,
  name={\longargfmt{no\dhyphen break\dhyphen space}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.obey-aux-catcode,
  name={\longargfmt{obey\dhyphen aux\dhyphen catcode}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-obey-aux-catcode,
  name={\longargfmt{no\dhyphen obey\dhyphen aux\dhyphen catcode}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.cite-as-record,
  name={\longargfmt{cite\dhyphen as\dhyphen record}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-cite-as-record,
  name={\longargfmt{no\dhyphen cite\dhyphen as\dhyphen record}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.collapse-same-location-range,
  name={\longargfmt{collapse\dhyphen same\dhyphen location\dhyphen range}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-collapse-same-location-range,
  name={\longargfmt{no\dhyphen collapse\dhyphen same\dhyphen location\dhyphen range}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.merge-wrglossary-records,
  name={\longargfmt{merge\dhyphen wrglossary\dhyphen records}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-merge-wrglossary-records,
  name={\longargfmt{no\dhyphen merge\dhyphen wrglossary\dhyphen records}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.merge-nameref-on,
  name={\longargfmt{merge\dhyphen nameref\dhyphen on}},
  user1={\meta{rule}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.datatool-sort-markers,
  name={\longargfmt{datatool\dhyphen sort\dhyphen markers}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-datatool-sort-markers,
  name={\longargfmt{no\dhyphen datatool\dhyphen sort\dhyphen markers}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.force-cross-resource-refs,
  name={\longargfmt{force\dhyphen cross\dhyphen resource\dhyphen refs}},
  symbol={\shortargfmt{x}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-force-cross-resource-refs,
  name={\longargfmt{no\dhyphen force\dhyphen cross\dhyphen resource\dhyphen refs}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.support-unicode-script,
  name={\longargfmt{support\dhyphen unicode\dhyphen script}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-support-unicode-script,
  name={\longargfmt{no\dhyphen support\dhyphen unicode\dhyphen script}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.replace-quotes,
  name={\longargfmt{replace\dhyphen quotes}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-replace-quotes,
  name={\longargfmt{no\dhyphen replace\dhyphen quotes}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.packages,
  name={\longargfmt{packages}},
  symbol={\shortargfmt{p}},
  user1={\meta{list}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.ignore-packages,
  name={\longargfmt{ignore-packages}},
  symbol={\shortargfmt{k}},
  user1={\meta{list}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.custom-packages,
  name={\longargfmt{custom\dhyphen packages}},
  user1={\meta{list}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.list-known-packages,
  name={\longargfmt{list\dhyphen known\dhyphen packages}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.mfirstuc-protection,
  name={\longargfmt{mfirstuc\dhyphen protection}},
  symbol={\shortargfmt{u}},
  user1={\meta{list}\argor\code{all}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-mfirstuc-protection,
  name={\longargfmt{no\dhyphen mfirstuc\dhyphen protection}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.mfirstuc-math-protection,
  name={\longargfmt{mfirstuc\dhyphen math\dhyphen protection}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-mfirstuc-math-protection,
  name={\longargfmt{no\dhyphen mfirstuc\dhyphen math\dhyphen protection}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.nested-link-check,
  name={\longargfmt{nested\dhyphen link\dhyphen check}},
  user1={\meta{list}\argor\code{none}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-nested-link-check,
  name={\longargfmt{no\dhyphen nested\dhyphen link\dhyphen check}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.shortcuts,
  name={\longargfmt{shortcuts}},
  user1={\meta{value}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.map-format,
  name={\longargfmt{map\dhyphen format}},
  symbol={\shortargfmt{m}},
  user1={\meta{map:value list}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.retain-formats,
  name={\longargfmt{retain\dhyphen formats}},
  user1={\meta{list}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-retain-formats,
  name={\longargfmt{no\dhyphen retain\dhyphen formats}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.group,
  name={\longargfmt{group}},
  symbol={\shortargfmt{g}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-group,
  name={\longargfmt{no\dhyphen group}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.tex-encoding,
  name={\longargfmt{tex\dhyphen encoding}},
  user1={\meta{name}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.log-encoding,
  name={\longargfmt{log\dhyphen encoding}},
  user1={\meta{name}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.default-encoding,
  name={\longargfmt{default\dhyphen encoding}},
  user1={\meta{name}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-date-in-header,
  name={\longargfmt{no\dhyphen date\dhyphen in\dhyphen header}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.date-in-header,
  name={\longargfmt{date\dhyphen in\dhyphen header}},
  symbol={\shortargfmt{D}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-expand-fields,
  name={\longargfmt{no\dhyphen expand\dhyphen fields}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.expand-fields,
  name={\longargfmt{expand\dhyphen fields}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.record-count-rule,
  name={\longargfmt{record\dhyphen count\dhyphen rule}},
  symbol={\shortargfmt{r}},
  user1={\marg{rule}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.record-count,
  name={\longargfmt{record\dhyphen count}},
  symbol={\shortargfmt{c}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-record-count,
  name={\longargfmt{no\dhyphen record\dhyphen count}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.record-count-unit,
  name={\longargfmt{record\dhyphen count\dhyphen unit}},
  symbol={\shortargfmt{n}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-record-count-unit,
  name={\longargfmt{no\dhyphen record\dhyphen count\dhyphen unit}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.trim-fields,
  name={\longargfmt{trim\dhyphen fields}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.trim-only-fields,
  name={\longargfmt{trim\dhyphen only\dhyphen fields}},
  user1={\meta{list}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.trim-except-fields,
  name={\longargfmt{trim\dhyphen except\dhyphen fields}},
  user1={\meta{list}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-trim-fields,
  name={\longargfmt{no\dhyphen trim\dhyphen fields}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.provide-glossaries,
  name={\longargfmt{provide\dhyphen glossaries}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.no-provide-glossaries,
  name={\longargfmt{no\dhyphen provide\dhyphen glossaries}},
  user1={},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.aux-input-action,
  name={\longargfmt{aux\dhyphen input\dhyphen action}},
  user1={\meta{setting}},
  category={switch},
  parent={commandlineoptions}
}

@switch{switch.converter.texenc,
  name={\longargfmt{texenc}},
  user1={\meta{encoding}},
  category={switch},
  parent={commandlineoptionsconverter}
}

@switch{switch.converter.bibenc,
  name={\longargfmt{bibenc}},
  user1={\meta{encoding}},
  category={switch},
  parent={commandlineoptionsconverter}
}

@switch{switch.converter.overwrite,
  name={\longargfmt{overwrite}},
  user1={},
  category={switch},
  parent={commandlineoptionsconverter}
}

@switch{switch.converter.no-overwrite,
  name={\longargfmt{no\dhyphen overwrite}},
  user1={},
  category={switch},
  parent={commandlineoptionsconverter}
}

@switch{switch.converter.preamble-only,
  name={\longargfmt{preamble\dhyphen only}},
  symbol={\shortargfmt{p}},
  user1={},
  category={switch},
  parent={commandlineoptionsconverter}
}

@switch{switch.converter.no-preamble-only,
  name={\longargfmt{no\dhyphen preamble\dhyphen only}},
  user1={},
  category={switch},
  parent={commandlineoptionsconverter}
}

@switch{switch.converter.space-sub,
  name={\longargfmt{space\dhyphen sub}},
  symbol={\shortargfmt{s}},
  user1={\meta{replacement}},
  category={switch},
  parent={commandlineoptionsconverter}
}

@switch{switch.gls2bib.ignore-sort,
  name={\longargfmt{ignore\dhyphen sort}},
  user1={},
  category={switch},
  parent={commandlineoptionsgls2bib}
}

@switch{switch.gls2bib.no-ignore-sort,
  name={\longargfmt{no\dhyphen ignore\dhyphen sort}},
  user1={},
  category={switch},
  parent={commandlineoptionsgls2bib}
}

@switch{switch.gls2bib.ignore-type,
  name={\longargfmt{ignore\dhyphen type}},
  user1={},
  category={switch},
  parent={commandlineoptionsgls2bib}
}

@switch{switch.gls2bib.no-ignore-type,
  name={\longargfmt{no\dhyphen ignore\dhyphen type}},
  user1={},
  category={switch},
  parent={commandlineoptionsgls2bib}
}

@switch{switch.gls2bib.split-on-type,
  name={\longargfmt{split\dhyphen on\dhyphen type}},
  symbol={\shortargfmt{t}},
  user1={},
  category={switch},
  parent={commandlineoptionsgls2bib}
}

@switch{switch.gls2bib.no-split-on-type,
  name={\longargfmt{no\dhyphen split\dhyphen on\dhyphen type}},
  user1={},
  category={switch},
  parent={commandlineoptionsgls2bib}
}

@switch{switch.gls2bib.ignore-category,
  name={\longargfmt{ignore\dhyphen category}},
  user1={},
  category={switch},
  parent={commandlineoptionsgls2bib}
}

@switch{switch.gls2bib.no-ignore-category,
  name={\longargfmt{no\dhyphen ignore\dhyphen category}},
  user1={},
  category={switch},
  parent={commandlineoptionsgls2bib}
}

@switch{switch.converter.ignore-fields,
  name={\longargfmt{ignore\dhyphen fields}},
  symbol={\shortargfmt{f}},
  user1={\meta{list}},
  category={switch},
  parent={commandlineoptionsconverter}
}

@switch{switch.converter.no-ignore-fields,
  name={\longargfmt{no\dhyphen ignore\dhyphen fields}},
  category={switch},
  parent={commandlineoptionsconverter}
}

@switch{switch.converter.field-map,
  name={\longargfmt{field\dhyphen map}},
  symbol={\shortargfmt{m}},
  user1={\meta{src=dest list}},
  category={switch},
  parent={commandlineoptionsconverter}
}

@switch{switch.converter.no-field-map,
  name={\longargfmt{no\dhyphen field\dhyphen map}},
  category={switch},
  parent={commandlineoptionsconverter}
}

@switch{switch.converter.field-case,
  name={\longargfmt{field\dhyphen case}},
  user1={\meta{setting}},
  category={switch},
  parent={commandlineoptionsconverter}
}

@switch{switch.gls2bib.internal-field-map,
  name={\longargfmt{internal\dhyphen field\dhyphen map}},
  user1={\meta{src=dest list}},
  category={switch},
  parent={commandlineoptionsgls2bib}
}

@switch{switch.gls2bib.split-on-category,
  name={\longargfmt{split\dhyphen on\dhyphen category}},
  symbol={\shortargfmt{c}},
  user1={},
  category={switch},
  parent={commandlineoptionsgls2bib}
}

@switch{switch.gls2bib.no-split-on-category,
  name={\longargfmt{no\dhyphen split\dhyphen on\dhyphen category}},
  user1={},
  category={switch},
  parent={commandlineoptionsgls2bib}
}

@switch{switch.converter.index-conversion,
  name={\longargfmt{index\dhyphen conversion}},
  symbol={\shortargfmt{i}},
  category={switch},
  user1={},
  parent={commandlineoptionsconverter}
}

@switch{switch.converter.no-index-conversion,
  name={\longargfmt{no\dhyphen index\dhyphen conversion}},
  category={switch},
  user1={},
  parent={commandlineoptionsconverter}
}

@switch{switch.gls2bib.absorb-see,
  name={\longargfmt{absorb\dhyphen see}},
  category={switch},
  user1={},
  parent={commandlineoptionsgls2bib}
}

@switch{switch.gls2bib.no-absorb-see,
  name={\longargfmt{no\dhyphen absorb\dhyphen see}},
  category={switch},
  user1={},
  parent={commandlineoptionsgls2bib}
}

@switch{switch.datatool2bib.detect-symbols,
  name={\longargfmt{detect\dhyphen symbols}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.no-detect-symbols,
  name={\longargfmt{no\dhyphen detect\dhyphen symbols}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.numeric-locale,
  name={\longargfmt{numeric\dhyphen locale}},
  category={switch},
  user1={\meta{lang-tag}},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.label,
  name={\longargfmt{label}},
  symbol={\shortargfmt{L}},
  category={switch},
  user1={\meta{column-key}},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.auto-label,
  name={\longargfmt{auto\dhyphen label}},
  symbol={\shortargfmt{a}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.no-auto-label,
  name={\longargfmt{no\dhyphen auto\dhyphen label}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.auto-label-prefix,
  name={\longargfmt{auto\dhyphen label\dhyphen prefix}},
  category={switch},
  user1={\meta{prefix}},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.read,
  name={\longargfmt{read}},
  symbol={\shortargfmt{r}},
  category={switch},
  user1={\meta{options}},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.no-read,
  name={\longargfmt{no\dhyphen read}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.setup,
  name={\longargfmt{setup}},
  category={switch},
  user1={\meta{options}},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.save-datum,
  name={\longargfmt{save\dhyphen datum}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.no-save-datum,
  name={\longargfmt{no\dhyphen save\dhyphen datum}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.save-value,
  name={\longargfmt{save\dhyphen value}},
  category={switch},
  user1={\meta{suffix}},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.no-save-value,
  name={\longargfmt{no\dhyphen save\dhyphen value}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.save-currency,
  name={\longargfmt{save\dhyphen currency}},
  category={switch},
  user1={\meta{suffix}},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.no-save-currency,
  name={\longargfmt{no\dhyphen save\dhyphen currency}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.split,
  name={\longargfmt{split}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.no-split,
  name={\longargfmt{no\dhyphen split}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.adjust-gls,
  name={\longargfmt{adjust\dhyphen gls}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.no-adjust-gls,
  name={\longargfmt{no\dhyphen adjust\dhyphen gls}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.strip,
  name={\longargfmt{strip}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.no-strip,
  name={\longargfmt{no\dhyphen strip}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.dependency-field,
  name={\longargfmt{dependency\dhyphen field}},
  user1 = {\meta{field}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.no-dependency-field,
  name={\longargfmt{no\dhyphen dependency\dhyphen field}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.strip-glsadd,
  name={\longargfmt{strip\dhyphen glsadd}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.no-strip-glsadd,
  name={\longargfmt{no\dhyphen strip\dhyphen glsadd}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.strip-acronym-font,
  name={\longargfmt{strip\dhyphen acronym\dhyphen font}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.no-strip-acronym-font,
  name={\longargfmt{no\dhyphen strip\dhyphen acronym\dhyphen font}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.strip-case-change,
  name={\longargfmt{strip\dhyphen case\dhyphen change}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@switch{switch.datatool2bib.no-strip-case-change,
  name={\longargfmt{no\dhyphen strip\dhyphen case\dhyphen change}},
  category={switch},
  parent={commandlineoptionsdatatool2bib}
}

@index{lettergroup,
  name={letter group}
}

@index{nonlettergroup,
  name={non-letter group}
}

@index{symbolgroup,
  name={symbol group},
  alias={nonlettergroup}
}

@index{emptygroup,
  name={empty group (unknown commands)},
  text={empty group}
}

@index{numbergroup,
  name={number group}
}

@index{datetimegroup,
  name={date-time group}
}

@index{dategroup,
  name={date group}
}

@index{timegroup,
  name={time group}
}

@index{customgroup,
  name={custom group}
}

@index{sub-group}
@index{hiergroup,
 name={hierarchical group},
 alias={sub-group}
}
@index{smallgroup,
 name={small group}
}

@indexplural{group}
@index{groups.letter,
 parent={group},
 name={letter},
 text={letter group},
 alias={lettergroup}}
@index{groups.nonletter,
 parent={group},
 name={non-letter},
 text={non-letter group},
 alias={nonlettergroup}
}
@index{groups.symbol,
 parent={group},
 name={symbol},
 text={symbol group},
 alias={symbolgroup}}
@index{groups.empty,
 parent={group},
 name={empty},
 text={empty group},
 alias={emptygroup}}
@index{groups.number,
 parent={group},
 name={number},
 text={number group},
 alias={numbergroup}}
@index{groups.datetime,
 parent={group},
 name={datetime},
 text={datetime group},
 alias={datetimegroup}}
@index{groups.date,
 parent={group},
 name={date},
 text={date group},
 alias={dategroup}}
@index{groups.time,
 parent={group},
 name={time},
 text={time group},
 alias={timegroup}}
@index{groups.custom,
 parent={group},
 name={custom},
 text={custom group},
 alias={customgroup}}
@index{groups.sub,
 parent={group},
 name={hierarchical},
 text={hierarchical group},
 alias={sub-group}}
@index{groups.small,
 parent={group},
 name={small},
 text={small group},
 alias={smallgroup}}

@index{localeprovider,
  name={locale provider}
}

@index{ignoredglossary,
  name={ignored glossary},
  plural={ignored glossaries}
}

@index{ignoredrecord,
  name={ignored record}
}

@index{record,
  seealso={ignoredrecord}
}

@index{locationlist,
  name = {location list}
}

@index{range}
@index{explicit-range,
 parent={range},
 name={explicit},
 text={explicit range}
}
@index{implicit-range,
 parent={range},
 name={implicit},
 text={implicit range}
}
@index{interloper,parent={range}}
@index{locationrange,
 parent={locationlist},
 name={ranges},
 alias={range}
}

@index{postlinkhook,
  name={post-link hook}
}

@index{postnamehook,
  name={post-name hook}
}

@index{postdescriptionhook,
  name={post-description hook}
}

@index{languagexml,
  name={language resource file (\extfmt{xml})}
}

@xmltag{tag.page,
  name={\xmltagfmt{tag.page}},
  parent={languagexml}
}

@xmltag{tag.pages,
  name={\xmltagfmt{tag.pages}},
  parent={languagexml}
}

@xmltag{tag.passim,
  name={\xmltagfmt{tag.passim}},
  parent={languagexml}
}

@xmltag{sentence.terminators,
  name={\xmltagfmt{sentence.terminators}},
  parent={languagexml}
}

@xmltag{grouptitle.case.lc,
  name={\xmltagfmt{grouptitle.case.}\meta{lc}},
  parent={languagexml}
}

@index{xmlsee,
  name={XML resource file},
  see={languagexml}
}

@index{encoding}

@index{digraph}

@index{trigraph}

@index{primary}

@index{dual}

@index{secondary,
 seealso={dual}}

@index{tertiary}

@index{non-ASCII}

@index{full-stop,
  name={full stop (\code{.})},
  text={full stop}
}

@index{period,
  alias={full-stop}
}

@index{apostrophe,
  name={apostrophe (\code{'})},
  text={apostrophe}
}

@index{resourceset,
  name={resource set}
}

@index{crossresourceref,
  name={cross-resource reference}
}

@index{locale}

@index{locale-resource,
  parent={locale},
  name={resource}
}

@index{locale-doc,
  parent={locale},
  name={document}
}

@index{locale-Java,
  parent={locale},
  name={Java}
}

@index{firstuse,
  name={first use}
}

@index{subsequentuse,
  name={subsequent use}
}

@index{firstuseflag,
  name={first use flag}
}

@index{link-text,
 name={link text}
}

@index{parent-entry,
  name={parent entry},
  plural={parent entries}
}

@index{child-entry,
  name={child entry},
  plural={child entries}
}

@index{hierarchical-entry,
  name={hierarchical entry},
  plural={hierarchical entries}
}

@index{robust}
@index{fragile}
@index{expandable}
@index{regular}
@index{non-regular}
@index{variant}
@index{homograph}
@index{progeny}
@index{progenitor}

@index{StackOverflowError,
  name={\code{Stack\-Over\-flow\-Error}}
}

@index{moving-argument,
  name={moving argument}
}

@index{uppercase,
 name={upper case}
}

@index{lowercase,
 name={lower case}
}

@index{titlecase,
 name={title case}
}

@index{sentencecase,
 name={sentence case}
}

@index{case-change,
  name = {case-change},
  seealso = {uppercase,lowercase,titlecase,sentencecase}
}

@index{unicodecategories,
  name={Unicode categories},
  text={Unicode category},
  plural={Unicode categories}
}

@unicodecategory{numberdecimaldigit,
  name={\unicodecategoryfmt{Number, Decimal Digit}},
  parent={unicodecategories}
}

@unicodecategory{separatorspace,
  name={\unicodecategoryfmt{Separator, Space}},
  parent={unicodecategories}
}

@unicodecategory{letteruppercase,
  name={\unicodecategoryfmt{Letter, Uppercase}},
  parent={unicodecategories}
}

@unicodecategory{letterlowercase,
  name={\unicodecategoryfmt{Letter, Lowercase}},
  parent={unicodecategories}
}

@unicodecategory{lettertitlecase,
  name={\unicodecategoryfmt{Letter, Titlecase}},
  parent={unicodecategories}
}

@unicodecategory{lettermodifier,
  name={\unicodecategoryfmt{Letter, Modifier}},
  parent={unicodecategories}
}

@unicodecategory{letterother,
  name={\unicodecategoryfmt{Letter, Other}},
  parent={unicodecategories}
}

@unicodecategory{punctuationclose,
  name={\unicodecategoryfmt{Punctuation, Close}},
  parent={unicodecategories}
}

@unicodecategory{punctuationfinalquote,
  name={\unicodecategoryfmt{Punctuation, Final quote}},
  parent={unicodecategories}
}

@unicodecategory{punctuationother,
  name={\unicodecategoryfmt{Punctuation, Other}},
  parent={unicodecategories}
}

@unicodecategory{punctuationdash,
  name={\unicodecategoryfmt{Punctuation, Dash}},
  parent={unicodecategories}
}

@texmfcnf{texmfcnf.openinany,
  name={\texmfcnffmt{openin\_any}}
}

@texmfcnf{texmfcnf.openoutany,
  name={\texmfcnffmt{openout\_any}}
}

@file{file.bib2gls-en.xml,
  name={\filefmt{bib2gls-en.xml}}
}

@file{file.bib2gls.sh,
  name={\filefmt{bib2gls.sh}}
}

@file{file.convertgls2bib.sh,
  name={\filefmt{convert\-gls2bib.sh}}
}

@file{file.datatool2bib.sh,
  name={\filefmt{datatool2bib.sh}}
}

@file{file.texparserlib.jar,
  name={\filefmt{texparserlib.jar}}
}

@file{file.bib2gls.jar,
  name={\filefmt{bib2gls.jar}}
}

@file{file.convertgls2bib.jar,
  name={\filefmt{convert\-gls2bib.jar}}
}

@file{file.datatool2bib.jar,
  name={\filefmt{datatool2bib.jar}}
}

@file{file.bib2gls.bat,
  name={\filefmt{bib2gls.bat}}
}

@file{file.xampl.bib,
  name={\filefmt{xampl.bib}}
}

@file{file.sample-dual.tex,
  name={\filefmt{sample\dhyphen dual.tex}}
}

@samplefile{file.no-interpret-preamble.bib,
  name={\filefmt{no\dhyphen interpret\dhyphen preamble.bib}}
}

@samplefile{file.interpret-preamble.bib,
  name={\filefmt{interpret\dhyphen preamble.bib}}
}

@samplefile{file.interpret-preamble2.bib,
  name={\filefmt{interpret\dhyphen preamble2.bib}}
}

@samplefile{file.people.bib,
  name={\filefmt{people.bib}}
}

@samplefile{file.sample-people.tex,
  name={\filefmt{sample\dhyphen people.tex}}
}

@samplefile{file.sample-authors.tex,
  name={\filefmt{sample\dhyphen authors.tex}}
}

@samplefile{file.sample-citations.tex,
  name={\filefmt{sample\dhyphen citations.tex}}
}

@samplefile{file.citations.bib,
  name={\filefmt{citations.bib}}
}

@samplefile{file.bacteria.bib,
  name={\filefmt{bacteria.bib}}
}

@samplefile{file.sample-bacteria.tex,
  name={\filefmt{sample\dhyphen bacteria.tex}}
}

@samplefile{file.chemicalformula.bib,
  name={\filefmt{chemicalformula.bib}}
}

@samplefile{file.sample-chemical.tex,
  name={\filefmt{sample\dhyphen chemical.tex}}
}

@samplefile{file.constants.bib,
  name={\filefmt{constants.bib}}
}

@samplefile{file.sample-hierarchical.tex,
  name={\filefmt{sample\dhyphen hierarchical.tex}}
}

@samplefile{file.sample-nested.tex,
  name={\filefmt{sample\dhyphen nested.tex}}
}

@samplefile{file.sample-constants.tex,
  name={\filefmt{sample\dhyphen constants.tex}}
}

@samplefile{file.baseunits.bib,
  name={\filefmt{baseunits.bib}}
}

@samplefile{file.derivedunits.bib,
  name={\filefmt{derivedunits.bib}}
}

@samplefile{file.sample-units1.tex,
  name={\filefmt{sample-units1.tex}}
}

@samplefile{file.sample-units2.tex,
  name={\filefmt{sample-units2.tex}}
}

@samplefile{file.sample-units3.tex,
  name={\filefmt{sample-units3.tex}}
}

@samplefile{file.books.bib,
  name={\filefmt{books.bib}}
}

@samplefile{file.films.bib,
  name={\filefmt{films.bib}}
}

@samplefile{file.sample-media.tex,
  name={\filefmt{sample\dhyphen media.tex}}
}

@samplefile{file.bigmathsymbols.bib,
  name={\filefmt{bigmathsymbols.bib}}
}

@samplefile{file.mathgreek.bib,
  name={\filefmt{mathgreek.bib}}
}

@samplefile{file.mathsrelations.bib,
  name={\filefmt{mathsrelations.bib}}
}

@samplefile{file.binaryoperators.bib,
  name={\filefmt{binaryoperators.bib}}
}

@samplefile{file.unaryoperators.bib,
  name={\filefmt{unaryoperators.bib}}
}

@samplefile{file.mathsobjects.bib,
  name={\filefmt{mathsobjects.bib}}
}

@samplefile{file.sample-msymbols.tex,
  name={\filefmt{sample\dhyphen msymbols.tex}}
}

@samplefile{file.sample-maths.tex,
  name={\filefmt{sample\dhyphen maths.tex}}
}

@samplefile{file.miscsymbols.bib,
  name={\filefmt{miscsymbols.bib}}
}

@samplefile{file.sample-textsymbols.tex,
  name={\filefmt{sample\dhyphen textsymbols.tex}}
}

@samplefile{file.sample-textsymbols2.tex,
  name={\filefmt{sample\dhyphen textsymbols2.tex}}
}

@samplefile{file.markuplanguages.bib,
  name={\filefmt{markuplanguages.bib}}
}

@samplefile{file.sample-markuplanguages.tex,
  name={\filefmt{sample\dhyphen markuplanguages.tex}}
}

@samplefile{file.usergroups.bib,
  name={\filefmt{usergroups.bib}}
}

@samplefile{file.sample-usergroups.tex,
  name={\filefmt{sample\dhyphen usergroups.tex}}
}

@samplefile{file.animals.bib,
  name={\filefmt{animals.bib}}
}

@samplefile{file.vegetables.bib,
  name={\filefmt{vegetables.bib}}
}

@samplefile{file.minerals.bib,
  name={\filefmt{minerals.bib}}
}

@samplefile{file.terms.bib,
  name={\filefmt{terms.bib}}
}

@samplefile{file.topics.bib,
  name={\filefmt{topics.bib}}
}

@samplefile{file.sample-multi1.tex,
  name={\filefmt{sample\dhyphen multi1.tex}}
}

@samplefile{file.sample-multi2.tex,
  name={\filefmt{sample\dhyphen multi2.tex}}
}

@glscommand{glshyperlink,
  name={\csfmt{gls\-hyper\-link}},
  user1={\oargm{link text}\margm{label}},
  description={creates a hyperlink to the entry information in the
   glossary},
  topics={linkcommands,entryrefcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsxtrfielddolistloop,
  name={\csfmt{gls\-xtr\-field\-do\-list\-loop}},
  user1={\margm{label}\margm{field}},
  description={iterates over the items the given field, which contains
   an \styfmt{etoolbox} internal list},
  topics={listcommands,loop,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.12+},
  seealso={glsxtrfieldforlistloop,glsxtrfieldifinlist,glsxtrfieldlistadd,listbreak},
  category={command}
}

@glscommand{glsxtrfieldforlistloop,
  name={\csfmt{gls\-xtr\-field\-for\-list\-loop}},
  user1={\margm{label}\margm{field}\margm{handler}},
  description={iterates over the items the given field, which contains
   an \styfmt{etoolbox} internal list, using the given handler},
  topics={listcommands,loop,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.29+},
  seealso={glsxtrfielddolistloop,glsxtrfieldifinlist,glsxtrfieldlistadd,listbreak},
  category={command}
}

@glscommand{glsxtrfieldformatlist,
  name={\csfmt{gls\-xtr\-field\-format\-list}},
  user1={\margm{label}\margm{field}},
  description={formats the items in the given field, which contains
   an \styfmt{etoolbox} internal list, using the same handler as
   \ics{DTLformatlist}},
  topics={listcommands,loop,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.42+},
  seealso={glsxtrfieldforlistloop,glsxtrfielddolistloop,DTLformatlist,glsxtrfieldformatcsvlist},
  category={command}
}

@glscommand{glsxtrfieldformatcsvlist,
  name={\csfmt{gls\-xtr\-field\-format\-csv\-list}},
  user1={\margm{label}\margm{field}},
  description={formats the items in the given field, which contains
   a comma-separated list, using the same handler as
   \ics{DTLformatlist}},
  topics={listcommands,loop,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.42+},
  seealso={glsxtrfieldforlistloop,glsxtrfielddolistloop,DTLformatlist,glsxtrfieldformatlist},
  category={command}
}

@glscommand{glsfieldfetch,
  name={\csfmt{gls\-field\-fetch}},
  user1={\margm{label}\margm{field}\margm{cs}},
  description={fetches the value of the given field for the given
   label and stores it in the command \meta{cs}},
  topics={fieldrefcommands},
  note={\styfmt{glossaries} v4.16+},
  category={command}
}

@glscommand{glsxtrautoindexassignsort,
  name={\csfmt{gls\-xtr\-auto\-index\-assign\-sort}},
  user1={\margm{cs}\margm{label}},
  description={assigns the sort value for \cs{index} when
   using auto-indexing},
  topics={hooks,indexing},
  note={\styfmt{glossaries-extra} v1.16+},
  category={command}
}

@glscommand{glsxtrautoindexentry,
  name={\csfmt{gls\-xtr\-auto\-index\-entry}},
  user1={\margm{label}},
  description={used for the actual value in \cs{index} when
   using auto-indexing},
  topics={hooks,indexing},
  note={\styfmt{glossaries-extra} v1.16+},
  category={command}
}

@glscommand{glsseeformat,
  name={\csfmt{gls\-see\-format}},
  user1={\margm{tag}\margm{labels}\margm{location (ignored)}},
  description={formats the entries identified in the comma separated
   list of labels as a set of cross-references. This just does
   the tag (emphasized) followed by \cs{glsseelist}\margm{labels}},
  topics={formattingcommands,crossrefcommands,loclistcommands},
  note={\styfmt{glossaries}},
  seealso={glsseeitem,glsseeitemformat,glsseesep,glsseelastsep},
  category={command}
}

@glscommand{glsseeitem,
  name={\csfmt{gls\-see\-item}},
  user1={\margm{label}},
  description={formats an element of the cross-reference list.
   The default behaviour is to create a hyperlink (if enabled) to the 
   referenced entry with the link text given by
   \code{\cs{glsseeitemformat}\margm{label}}},
  topics={formattingcommands,crossrefcommands,loclistcommands,linkcommands},
  note={\styfmt{glossaries}},
  seealso={glsseeformat,glsseeitemformat},
  category={command}
}

@glscommand{glsseefirstitem,
  name={\csfmt{gls\-see\-first\-item}},
  user1={\margm{label}},
  description={as \cs{glsseeitem} but is used for the first label in 
  the list. This just does \cs{glsseeitem} by default},
  topics={formattingcommands,crossrefcommands,loclistcommands,linkcommands},
  note={\styfmt{glossaries-extra} v1.47+},
  seealso={glsseeformat,glsseeitemformat},
  category={command}
}

@glscommand{glsseeitemformat,
  name={\csfmt{gls\-see\-item\-format}},
  user1={\margm{label}},
  description={formats an element of the cross-reference list.
   With the base \styfmt{glossaries} package this just does
   \code{\cs{glsentrytext}\margm{label}}. With
   \styfmt{glossaries-extra} this uses either \cs{glsentryshort}
   or \cs{glsentryname} depending on whether or not the
   \field{short} field has been set},
  topics={formattingcommands,crossrefcommands,loclistcommands},
  note={\styfmt{glossaries} v3.0+},
  seealso={glsseeformat,glsseeitem},
  category={command}
}

@glscommand{glsseesep,
  name={\csfmt{gls\-see\-sep}},
  description={the separator used between all but the last 
  entries of a cross-reference list},
  note={\styfmt{glossaries}},
  topics={separatorcommands,crossrefcommands,loclistcommands},
  seealso={glsseeformat,glsseelastsep},
  category={command}
}

@glscommand{glsseelastsep,
  name={\csfmt{gls\-see\-last\-sep}},
  description={the separator used between the penultimate and
   ultimate entries of a cross-reference list},
  topics={separatorcommands,crossrefcommands,loclistcommands},
  note={\styfmt{glossaries}},
  seealso={glsseeformat,glsseesep},
  category={command}
}

@glscommand{glsseelastoxfordsep,
  name={\csfmt{gls\-see\-last\-oxford\-sep}},
  description={used instead of \cs{glsseelastsep} if the list
   contains three or more labels. This defaults to \cs{glsseelastsep}},
  topics={separatorcommands,crossrefcommands,loclistcommands},
  note={\styfmt{glossaries-extra} v1.47+},
  seealso={glsseeformat,glsseesep},
  category={command}
}

@glscommand{glsxtruseseeformat,
  name={\csfmt{gls\-xtr\-use\-see\-format}},
  user1={\margm{tag}\margm{labels}},
  description={formats the entries identified in the comma separated
   list of labels as a set of cross-references},
  topics={separatorcommands,crossrefcommands,loclistcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsxtrhiername,
  name={\csfmt{gls\-xtr\-hier\-name}},
  user1={\margm{label}},
  description={Displays the hierarchical name for the entry
   identified by \meta{label} with each level separated by
   \cs{glsxtrhiernamesep}},
  topics={formattingcommands,entryrefcommands},
  note={\styfmt{glossaries-extra}\texparserdefnote\ v1.37+},
  seealso={glsxtrhiernamesep},
  category={command}
}

@glscommand{glsxtrhiernamesep,
  name={\csfmt{gls\-xtr\-hier\-name\-sep}},
  description={Separator between hierarchical levels displayed with
   \cs{glsxtrhiername} (and case-changing variants). This defaults
   to \qt{\glsxtrhiernamesep} with the \styfmt{glossaries-extra}
   package, but the \bibgls\ interpreter has a different definition
   to assist sorting},
  topics={separatorcommands},
  note={\styfmt{glossaries-extra}\texparserdefnote\ v1.37+},
  seealso={glsxtrhiername},
  category={command}
}

@glscommand{Glsxtrhiername,
  name={\csfmt{Gls\-xtr\-hier\-name}},
  user1={\margm{label}},
  description={Displays the hierarchical name for the entry
   identified by \meta{label} with each level separated by
   \cs{glsxtrhiernamesep} where the top-most name has the
   first letter converted to \idx{uppercase}},
  topics={formattingcommands,entryrefcommands,casecommands},
  note={\styfmt{glossaries-extra}\texparserdefnote\ v1.37+},
  seealso={glsxtrhiername,glsxtrhiernamesep},
  category={command}
}

@glscommand{GlsXtrhiername,
  name={\csfmt{Gls\-Xtr\-hier\-name}},
  user1={\margm{label}},
  description={Displays the hierarchical name for the entry
   identified by \meta{label} with each level separated by
   \cs{glsxtrhiernamesep} where each name has the
   first letter converted to \idx{uppercase}},
  topics={formattingcommands,entryrefcommands,casecommands},
  note={\styfmt{glossaries-extra}\texparserdefnote\ v1.37+},
  seealso={glsxtrhiername,glsxtrhiernamesep},
  category={command}
}

@glscommand{GLSxtrhiername,
  name={\csfmt{GLS\-xtr\-hier\-name}},
  user1={\margm{label}},
  description={Displays the hierarchical name for the entry
   identified by \meta{label} with each level separated by
   \cs{glsxtrhiernamesep} where the top-most name is converted to \idx{uppercase}},
  topics={formattingcommands,entryrefcommands,casecommands},
  note={\styfmt{glossaries-extra}\texparserdefnote\ v1.37+},
  seealso={glsxtrhiername,glsxtrhiernamesep},
  category={command}
}

@glscommand{GLSXTRhiername,
  name={\csfmt{GLS\-XTR\-hier\-name}},
  user1={\margm{label}},
  description={Displays the hierarchical name for the entry
   identified by \meta{label} with each level separated by
   \cs{glsxtrhiernamesep} where each name is converted 
   to \idx{uppercase}},
  topics={formattingcommands,entryrefcommands,casecommands},
  note={\styfmt{glossaries-extra}\texparserdefnote\ v1.37+},
  seealso={glsxtrhiername,glsxtrhiernamesep},
  category={command}
}

@glscommand{glsextrapostnamehook,
  name={\csfmt{gls\-extra\-post\-name\-hook}},
  user1={\margm{label}},
  description={additional category-independent code for the
post-name hook},
  topics={hooks},
  note={\styfmt{glossaries-extra} v1.25+},
  category={command}
}

@glscommand{glsentrytext,
  name={\csfmt{gls\-entry\-text}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{text} field},
  topics={fieldrefcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{Glsentrytext,
  name={\csfmt{Gls\-entry\-text}},
  user1={\margm{label}},
  description={displays the value of the \field{text} field with 
  the first letter converted to \idx{uppercase}},
  topics={fieldrefcommands,casecommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsentryplural,
  name={\csfmt{gls\-entry\-plural}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{plural} field},
  topics={fieldrefcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{Glsentryplural,
  name={\csfmt{Gls\-entry\-plural}},
  user1={\margm{label}},
  description={displays the value of the
    \field{plural} field with the first letter converted to
\idx{uppercase}},
  topics={fieldrefcommands,casecommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsentryfirst,
  name={\csfmt{gls\-entry\-first}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{first} field},
  topics={fieldrefcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{Glsentryfirst,
  name={\csfmt{Gls\-entry\-first}},
  user1={\margm{label}},
  description={displays the value of the
    \field{first} field with the first letter converted to
    \idx{uppercase}},
  topics={fieldrefcommands,casecommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsentryfirstplural,
  name={\csfmt{gls\-entry\-first\-plural}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{firstplural} field},
  topics={fieldrefcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{Glsentryfirstplural,
  name={\csfmt{Gls\-entry\-first\-plural}},
  user1={\margm{label}},
  description={displays the value of the
    \field{firstplural} field with the first letter converted to
    \idx{uppercase}},
  topics={fieldrefcommands,casecommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsentryname,
  name={\csfmt{gls\-entry\-name}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{name} field},
  topics={fieldrefcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{Glsentryname,
  name={\csfmt{Gls\-entry\-name}},
  user1={\margm{label}},
  description={displays the value of the
    \field{name} field with the first character
     converted to \idx{uppercase}},
  topics={fieldrefcommands,casecommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsentrydesc,
  name={\csfmt{gls\-entry\-desc}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{description} field},
  topics={fieldrefcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsentrydescplural,
  name={\csfmt{gls\-entry\-desc\-plural}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{descriptionplural} field},
  topics={fieldrefcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{Glsentrydesc,
  name={\csfmt{Gls\-entry\-desc}},
  user1={\margm{label}},
  description={displays the value of the
    \field{description} field with the first letter converted to
    \idx{uppercase}},
  topics={fieldrefcommands,casecommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{Glsentrydescplural,
  name={\csfmt{Gls\-entry\-desc\-plural}},
  user1={\margm{label}},
  description={displays the value of the
    \field{descriptionplural} field with the first letter converted to
    \idx{uppercase}},
  topics={fieldrefcommands,casecommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsentrysymbol,
  name={\csfmt{gls\-entry\-symbol}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{symbol} field},
  topics={fieldrefcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{Glsentrysymbol,
  name={\csfmt{Gls\-entry\-symbol}},
  user1={\margm{label}},
  description={displays the value of the
    \field{symbol} field with the first letter converted to
\idx{uppercase}},
  topics={fieldrefcommands,casecommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsentrysymbolplural,
  name={\csfmt{gls\-entry\-symbol\-plural}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{symbolplural} field},
  topics={fieldrefcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{Glsentrysymbolplural,
  name={\csfmt{Gls\-entry\-symbol\-plural}},
  user1={\margm{label}},
  description={displays the value of the
    \field{symbolplural} field with the first letter converted to
\idx{uppercase}},
  topics={fieldrefcommands,casecommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsentrylong,
  name={\csfmt{gls\-entry\-long}},
  user1={\margm{label}},
  description={expands to the value of the \field{long} field 
  without any formatting or indexing},
  topics={fieldrefcommands,abbreviationcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsentrylongpl,
  name={\csfmt{gls\-entry\-long\-pl}},
  user1={\margm{label}},
  description={expands to the value of the \field{longplural} field 
  without any formatting or indexing},
  topics={fieldrefcommands,abbreviationcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{Glsentrylong,
  name={\csfmt{Gls\-entry\-long}},
  user1={\margm{label}},
  description={displays the value of the
    \field{long} field without any formatting or indexing but 
    with the first letter converted to \idx{uppercase}},
  topics={fieldrefcommands,abbreviationcommands,casecommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{Glsentrylongpl,
  name={\csfmt{Gls\-entry\-long\-pl}},
  user1={\margm{label}},
  description={displays the value of the
    \field{longplural} field without any formatting or indexing but 
    with the first letter converted to \idx{uppercase}},
  topics={fieldrefcommands,abbreviationcommands,casecommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsentryshort,
  name={\csfmt{gls\-entry\-short}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{short} field without any formatting or indexing},
  topics={fieldrefcommands,abbreviationcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsentryshortpl,
  name={\csfmt{gls\-entry\-short\-pl}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{shortplural} field without any formatting or indexing},
  topics={fieldrefcommands,abbreviationcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{Glsentryshort,
  name={\csfmt{Gls\-entry\-short}},
  user1={\margm{label}},
  description={displays the value of the
    \field{short} field without any formatting or indexing but 
    with the first letter converted to \idx{uppercase}},
  topics={fieldrefcommands,abbreviationcommands,casecommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{Glsentryshortpl,
  name={\csfmt{Gls\-entry\-short\-pl}},
  user1={\margm{label}},
  description={displays the value of the
    \field{shortplural} field without any formatting or indexing 
    but with the first letter converted to \idx{uppercase}},
  topics={fieldrefcommands,abbreviationcommands,casecommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsentryuseri,
  name={\csfmt{gls\-entry\-useri}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{user1} field},
  topics={fieldrefcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsentryuserii,
  name={\csfmt{gls\-entry\-userii}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{user2} field},
  topics={fieldrefcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsentryuseriii,
  name={\csfmt{gls\-entry\-useriii}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{user3} field},
  topics={fieldrefcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsentryuseriv,
  name={\csfmt{gls\-entry\-useriv}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{user4} field},
  topics={fieldrefcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsentryuserv,
  name={\csfmt{gls\-entry\-userv}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{user5} field},
  topics={fieldrefcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsentryuservi,
  name={\csfmt{gls\-entry\-uservi}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{user6} field},
  topics={fieldrefcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{Glsentryuseri,
  name={\csfmt{Gls\-entry\-useri}},
  user1={\margm{label}},
  description={displays the value of the
    \field{user1} field with the first letter converted to
\idx{uppercase}},
  topics={fieldrefcommands,casecommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{Glsentryuserii,
  name={\csfmt{Gls\-entry\-userii}},
  user1={\margm{label}},
  description={displays the value of the
    \field{user2} field with the first letter converted to
\idx{uppercase}},
  topics={fieldrefcommands,casecommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{Glsentryuseriii,
  name={\csfmt{Gls\-entry\-useriii}},
  user1={\margm{label}},
  description={displays the value of the
    \field{user3} field with the first letter converted to
\idx{uppercase}},
  topics={fieldrefcommands,casecommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{Glsentryuseriv,
  name={\csfmt{Gls\-entry\-useriv}},
  user1={\margm{label}},
  description={displays the value of the
    \field{user4} field with the first letter converted to
\idx{uppercase}},
  topics={fieldrefcommands,casecommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{Glsentryuserv,
  name={\csfmt{Gls\-entry\-userv}},
  user1={\margm{label}},
  description={displays the value of the
    \field{user5} field with the first letter converted to
\idx{uppercase}},
  topics={fieldrefcommands,casecommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{Glsentryuservi,
  name={\csfmt{Gls\-entry\-uservi}},
  user1={\margm{label}},
  description={displays the value of the
    \field{user6} field with the first letter converted to
\idx{uppercase}},
  topics={fieldrefcommands,casecommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsaccessname,
  name={\csfmt{gls\-access\-name}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{name} field with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{glsentryname})},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{Glsaccessname,
  name={\csfmt{Gls\-access\-name}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{name} field with the first letter converted to
    \idx{uppercase} and with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{Glsentryname})},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{glsaccesstext,
  name={\csfmt{gls\-access\-text}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{text} field with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{glsentrytext})},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{Glsaccesstext,
  name={\csfmt{Gls\-access\-text}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{text} field with the first letter converted to
    \idx{uppercase} and with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{Glsentrytext})},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{glsaccessplural,
  name={\csfmt{gls\-access\-plural}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{plural} field with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{glsentryplural})},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{Glsaccessplural,
  name={\csfmt{Gls\-access\-plural}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{plural} field with the first letter converted to
    \idx{uppercase} and with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{Glsentryplural})},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{glsaccessfirst,
  name={\csfmt{gls\-access\-first}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{first} field with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{glsentryfirst})},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{Glsaccessfirst,
  name={\csfmt{Gls\-access\-first}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{first} field with the first letter converted to
    \idx{uppercase} and with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{Glsentryfirst})},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{glsaccessfirstplural,
  name={\csfmt{gls\-access\-first\-plural}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{firstplural} field with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{glsentryfirstplural})},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{Glsaccessfirstplural,
  name={\csfmt{Gls\-access\-first\-plural}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{firstplural} field with the first letter converted to
    \idx{uppercase} and with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{Glsentryfirstplural})},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{glsaccesssymbol,
  name={\csfmt{gls\-access\-symbol}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{symbol} field with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{glsentrysymbol})},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{Glsaccesssymbol,
  name={\csfmt{Gls\-access\-symbol}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{symbol} field with the first letter converted to
    \idx{uppercase} and with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{Glsentrysymbol})},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{glsaccesssymbolplural,
  name={\csfmt{gls\-access\-symbol\-plural}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{symbolplural} field with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{glsentrysymbolplural})},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{Glsaccesssymbolplural,
  name={\csfmt{Gls\-access\-symbol\-plural}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{symbolplural} field with the first letter converted to
    \idx{uppercase} and with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{Glsentrysymbolplural})},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{glsaccessdesc,
  name={\csfmt{gls\-access\-desc}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{description} field with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{glsentrydesc})},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{Glsaccessdesc,
  name={\csfmt{Gls\-access\-desc}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{description} field with the first letter converted to
    \idx{uppercase} and with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{Glsentrydesc})},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{glsaccessdescplural,
  name={\csfmt{gls\-access\-desc\-plural}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{descriptionplural} field with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{glsentrydescplural})},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{Glsaccessdescplural,
  name={\csfmt{Gls\-access\-desc\-plural}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{descriptionplural} field with the first letter converted to
    \idx{uppercase} and with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{Glsentrydescplural})},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{glsaccessshort,
  name={\csfmt{gls\-access\-short}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{short} field with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{glsentryshort})},
  topics={fieldrefcommands,access-support,abbreviationcommands},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{Glsaccessshort,
  name={\csfmt{Gls\-access\-short}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{short} field with the first letter converted to
    \idx{uppercase} and with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{Glsentryshort})},
  topics={fieldrefcommands,access-support,abbreviationcommands},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{glsaccessshortpl,
  name={\csfmt{gls\-access\-shortpl}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{shortplural} field with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{glsentryshortpl})},
  topics={fieldrefcommands,access-support,abbreviationcommands},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{Glsaccessshortpl,
  name={\csfmt{Gls\-access\-shortpl}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{shortplural} field with the first letter converted to
    \idx{uppercase} and with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{Glsentryshortpl})},
  topics={fieldrefcommands,access-support,abbreviationcommands},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{glsaccesslong,
  name={\csfmt{gls\-access\-long}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{long} field with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{glsentrylong})},
  topics={fieldrefcommands,access-support,abbreviationcommands},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{Glsaccesslong,
  name={\csfmt{Gls\-access\-long}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{long} field with the first letter converted to
    \idx{uppercase} and with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{Glsentrylong})},
  topics={fieldrefcommands,access-support,abbreviationcommands},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{glsaccesslongpl,
  name={\csfmt{gls\-access\-longpl}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{longplural} field with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{glsentrylongpl})},
  topics={fieldrefcommands,access-support,abbreviationcommands},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{Glsaccesslongpl,
  name={\csfmt{Gls\-access\-longpl}},
  user1={\margm{label}},
  description={expands to the value of the
    \field{longplural} field with the first letter converted to
    \idx{uppercase} and with the accessibility support 
    for that field, if provided (otherwise behaves the same as
    \cs{Glsentrylongpl})},
  topics={fieldrefcommands,access-support,abbreviationcommands},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{glsxtrentryparentname,
  name={\csfmt{gls\-xtr\-entry\-parent\-name}},
  user1={\margm{label}},
  description={expands to the entry's parent's name},
  topics={fieldrefcommands},
  note={\styfmt{glossaries-extra}\texparserdefnote\ v1.39+},
  category={command}
}

@glscommand{glsentryprefix,
  name={\csfmt{gls\-entry\-prefix}},
  user1={\margm{label}},
  description={expands to the value of the \field{prefix} field},
  topics={fieldrefcommands},
  note={\styfmt{glossaries-prefix}},
  category={command}
}

@glscommand{glsentryprefixplural,
  name={\csfmt{gls\-entry\-prefix\-plural}},
  user1={\margm{label}},
  description={expands to the value of the \field{prefixplural} field},
  topics={fieldrefcommands},
  note={\styfmt{glossaries-prefix}},
  category={command}
}

@glscommand{glsentryprefixfirst,
  name={\csfmt{gls\-entry\-prefix\-first}},
  user1={\margm{label}},
  description={expands to the value of the \field{prefixfirst} field},
  topics={fieldrefcommands},
  note={\styfmt{glossaries-prefix}},
  category={command}
}

@glscommand{glsentryprefixfirstplural,
  name={\csfmt{gls\-entry\-prefix\-first\-plural}},
  user1={\margm{label}},
  description={expands to the value of the \field{prefixfirstplural} field},
  topics={fieldrefcommands},
  note={\styfmt{glossaries-prefix}},
  category={command}
}

@glscommand{Glsentryprefix,
  name={\csfmt{Gls\-entry\-prefix}},
  user1={\margm{label}},
  description={expands to the value of the \field{prefix} field
  with the first letter converted to \idx{uppercase}},
  topics={fieldrefcommands,casecommands},
  note={\styfmt{glossaries-prefix}},
  category={command}
}

@glscommand{Glsentryprefixplural,
  name={\csfmt{Gls\-entry\-prefix\-plural}},
  user1={\margm{label}},
  description={expands to the value of the \field{prefixplural} field
  with the first letter converted to \idx{uppercase}},
  topics={fieldrefcommands,casecommands},
  note={\styfmt{glossaries-prefix}},
  category={command}
}

@glscommand{Glsentryprefixfirst,
  name={\csfmt{Gls\-entry\-prefix\-first}},
  user1={\margm{label}},
  description={expands to the value of the \field{prefixfirst} field
  with the first letter converted to \idx{uppercase}},
  topics={fieldrefcommands,casecommands},
  note={\styfmt{glossaries-prefix}},
  category={command}
}

@glscommand{Glsentryprefixfirstplural,
  name={\csfmt{Gls\-entry\-prefix\-first\-plural}},
  user1={\margm{label}},
  description={expands to the value of the \field{prefixfirstplural} field
  with the first letter converted to \idx{uppercase}},
  topics={fieldrefcommands,casecommands},
  note={\styfmt{glossaries-prefix}},
  category={command}
}

@glscommand{glssetcategoryattribute,
  name={\csfmt{gls\-set\-cat\-e\-gory\-at\-tribute}},
  user1={\margm{category}\margm{attribute}\margm{value}},
  description={sets the value of the attribute for the given
category},
  topics={assigncommands,catattrcommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glsentryaccess,
  name={\csfmt{gls\-entry\-access}},
  user1={\margm{label}},
  description={expands to the value of the \field{access} field},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glsentrytextaccess,
  name={\csfmt{gls\-entry\-text\-access}},
  user1={\margm{label}},
  description={expands to the value of the \field{textaccess} field},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glsentryfirstaccess,
  name={\csfmt{gls\-entry\-first\-access}},
  user1={\margm{label}},
  description={expands to the value of the \field{firstaccess} field},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glsentrypluralaccess,
  name={\csfmt{gls\-entry\-plural\-access}},
  user1={\margm{label}},
  description={expands to the value of the \field{pluralaccess} field},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glsentryfirstpluralaccess,
  name={\csfmt{gls\-entry\-first\-plural\-access}},
  user1={\margm{label}},
  description={expands to the value of the \field{firstpluralaccess} field},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glsentrysymbolaccess,
  name={\csfmt{gls\-entry\-symbol\-access}},
  user1={\margm{label}},
  description={expands to the value of the \field{symbolaccess} field},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glsentrysymbolpluralaccess,
  name={\csfmt{gls\-entry\-symbol\-plural\-access}},
  user1={\margm{label}},
  description={expands to the value of the \field{symbolpluralaccess} field},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glsentrydescaccess,
  name={\csfmt{gls\-entry\-desc\-access}},
  user1={\margm{label}},
  description={expands to the value of the \field{descriptionaccess} field},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glsentrydescpluralaccess,
  name={\csfmt{gls\-entry\-desc\-plural\-access}},
  user1={\margm{label}},
  description={expands to the value of the \field{descriptionpluralaccess} field},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glsentryshortaccess,
  name={\csfmt{gls\-entry\-short\-access}},
  user1={\margm{label}},
  description={expands to the value of the \field{shortaccess} field},
  topics={fieldrefcommands,access-support,abbreviationcommands},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glsentryshortpluralaccess,
  name={\csfmt{gls\-entry\-short\-plural\-access}},
  user1={\margm{label}},
  description={expands to the value of the \field{shortpluralaccess} field},
  topics={fieldrefcommands,access-support,abbreviationcommands},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glsentrylongaccess,
  name={\csfmt{gls\-entry\-long\-access}},
  user1={\margm{label}},
  description={expands to the value of the \field{longaccess} field},
  topics={fieldrefcommands,access-support,abbreviationcommands},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glsentrylongpluralaccess,
  name={\csfmt{gls\-entry\-long\-plural\-access}},
  user1={\margm{label}},
  description={expands to the value of the \field{longpluralaccess} field},
  topics={fieldrefcommands,access-support,abbreviationcommands},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glsnameaccessdisplay,
  name={\csfmt{gls\-name\-access\-display}},
  user1={\margm{text}\margm{label}},
  description={displays \meta{text} with the accessibility support
   provided by \code{\cs{glsentryaccess}\margm{label}}},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glstextaccessdisplay,
  name={\csfmt{gls\-text\-access\-display}},
  user1={\margm{text}\margm{label}},
  description={displays \meta{text} with the accessibility support
   provided by \code{\cs{glsentrytextaccess}\margm{label}}},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glspluralaccessdisplay,
  name={\csfmt{gls\-plural\-access\-display}},
  user1={\margm{text}\margm{label}},
  description={displays \meta{text} with the accessibility support
   provided by \code{\cs{glsentrypluralaccess}\margm{label}}},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glsfirstaccessdisplay,
  name={\csfmt{gls\-first\-access\-display}},
  user1={\margm{text}\margm{label}},
  description={displays \meta{text} with the accessibility support
   provided by \code{\cs{glsentryfirstaccess}\margm{label}}},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glsfirstpluralaccessdisplay,
  name={\csfmt{gls\-first\-plural\-access\-display}},
  user1={\margm{text}\margm{label}},
  description={displays \meta{text} with the accessibility support
   provided by \code{\cs{glsentryfirstpluralaccess}\margm{label}}},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glssymbolaccessdisplay,
  name={\csfmt{gls\-symbol\-access\-display}},
  user1={\margm{text}\margm{label}},
  description={displays \meta{text} with the accessibility support
   provided by \code{\cs{glsentrysymbolaccess}\margm{label}}},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glssymbolpluralaccessdisplay,
  name={\csfmt{gls\-symbol\-plural\-access\-display}},
  user1={\margm{text}\margm{label}},
  description={displays \meta{text} with the accessibility support
   provided by \code{\cs{glsentrysymbolpluralaccess}\margm{label}}},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glsdescriptionaccessdisplay,
  name={\csfmt{gls\-descrip\-tion\-access\-display}},
  user1={\margm{text}\margm{label}},
  description={displays \meta{text} with the accessibility support
   provided by \code{\cs{glsentrydescaccess}\margm{label}}},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glsdescriptionpluralaccessdisplay,
  name={\csfmt{gls\-descrip\-tion\-plural\-access\-display}},
  user1={\margm{text}\margm{label}},
  description={displays \meta{text} with the accessibility support
   provided by \code{\cs{glsentrydescpluralaccess}\margm{label}}},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glsshortaccessdisplay,
  name={\csfmt{gls\-short\-access\-display}},
  user1={\margm{text}\margm{label}},
  description={displays \meta{text} with the accessibility support
   provided by \code{\cs{glsentryshortaccess}\margm{label}}},
  topics={fieldrefcommands,access-support,abbreviationcommands},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glsshortpluralaccessdisplay,
  name={\csfmt{gls\-short\-plural\-access\-display}},
  user1={\margm{text}\margm{label}},
  description={displays \meta{text} with the accessibility support
   provided by \code{\cs{glsentryshortpluralaccess}\margm{label}}},
  topics={fieldrefcommands,access-support,abbreviationcommands},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glslongaccessdisplay,
  name={\csfmt{gls\-long\-access\-display}},
  user1={\margm{text}\margm{label}},
  description={displays \meta{text} with the accessibility support
   provided by \code{\cs{glsentrylongaccess}\margm{label}}},
  topics={fieldrefcommands,access-support,abbreviationcommands},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glslongpluralaccessdisplay,
  name={\csfmt{gls\-long\-plural\-access\-display}},
  user1={\margm{text}\margm{label}},
  description={displays \meta{text} with the accessibility support
   provided by \code{\cs{glsentrylongpluralaccess}\margm{label}}},
  topics={fieldrefcommands,access-support,abbreviationcommands},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glsaccessdisplay,
  name={\csfmt{gls\-access\-display}},
  user1={\margm{field}\margm{text}\margm{label}},
  description={displays \meta{text} with the accessibility support
   provided by \code{\csfmt{glsentry\meta{field}access}\margm{label}}},
  topics={fieldrefcommands,access-support},
  note={\styfmt{glossaries-access}},
  category={command}
}

@glscommand{glsxtrpostlinkAddDescOnFirstUse,
  name={\csfmt{gls\-xtr\-post\-link\-Add\-Desc\-On\-First\-Use}},
  description={only for use in the post-link hooks,
   this appends a space and the value of the 
   \field{description} field in parentheses
   if the entry that was just referenced was used for the
   first time},
  topics={hooks},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glsxtrpostlinkAddSymbolOnFirstUse,
  name={\csfmt{gls\-xtr\-post\-link\-Add\-Symbol\-On\-First\-Use}},
  description={only for use in the post-link hooks,
   this appends a space and the value of the 
   \field{symbol} field in parentheses
   if the entry that was just referenced was used for the
   first time and has the \field{symbol} field set},
  topics={hooks},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glsxtrpostlinkAddSymbolDescOnFirstUse,
  name={\csfmt{gls\-xtr\-post\-link\-Add\-Symbol\-Desc\-On\-First\-Use}},
  description={only for use in the post-link hooks, if the 
   entry that was just referenced was used for the first time,
   this appends a space and, in parentheses, the value of the 
   \field{symbol} field (if set)
   followed by the value of the \field{description} field},
  topics={hooks},
  note={\styfmt{glossaries-extra} v1.31+},
  category={command}
}

@glscommand{glspluralsuffix,
  name={\csfmt{gls\-plural\-suffix}},
  user1={},
  description={the suffix used to construct the default plural},
  topics={fixedtextcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{acrpluralsuffix,
  name={\csfmt{acr\-plural\-suffix}},
  user1={},
  description={the suffix used to construct the default plural for
   the short form of acronyms using the base \sty{glossaries}
   package's acronym mechanism (not used with the
   \sty{glossaries-extra} enhanced abbreviation mechanism)},
  topics={fixedtextcommands,abbreviationcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{abbrvpluralsuffix,
  name={\csfmt{abbrv\-plural\-suffix}},
  user1={},
  description={the style sensitive suffix used to construct the 
   default plural for the short form of abbreviations},
  topics={fixedtextcommands,abbreviationcommands},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  seealso={glsxtrabbrvpluralsuffix},
  category={command}
}

@abbrvstylecommand{glsxtrabbrvpluralsuffix,
  name={\csfmt{gls\-xtr\-abbrv\-plural\-suffix}},
  user1={},
  description={the default suffix used to construct the plural for
   the short form of abbreviations. This just uses
   \cs{glspluralsuffix}. If you don't want a plural suffix, you can
   use the \catattr{noshortplural} attribute},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  topics={abbrstyle.long-short,abbrstyle.short-long,abbrstyle.short-footnote,abbrstyle.short-postfootnote,abbrstyle.short-nolong,abbrstyle.nolong-short,abbrstyle.nolong-short-noreg,abbrstyle.short-nolong-desc,abbrstyle.long-noshort-desc,abbrstyle.long-noshort-desc-noreg,abbrstyle.long-hyphen-noshort-desc-noreg,abbrstyle.long-hyphen-noshort-noreg,abbrstyle.long-noshort,abbrstyle.long-noshort-noreg,abbrstyle.long-short-desc},
  category={command}
}

@glscommand{glsdefpostlink,
  name={\csfmt{gls\-def\-post\-link}},
  user1={\margm{category}\margm{definition}},
  description={define the post-link hook 
  \cs{glsxtrpostlinkcategory} for the given category},
  topics={hooks,providingcommands},
  note={\styfmt{glossaries-extra} v1.31+},
  category={command}
}

@glscommand{glsdefpostname,
  name={\csfmt{gls\-def\-post\-name}},
  user1={\margm{category}\margm{definition}},
  description={define the post-name hook 
  \cs{glsxtrpostnamecategory} for the given category},
  topics={hooks,providingcommands},
  note={\styfmt{glossaries-extra} v1.31+},
  category={command}
}

@glscommand{glsdefpostdesc,
  name={\csfmt{gls\-def\-post\-desc}},
  user1={\margm{category}\margm{definition}},
  description={define the post-description hook
  \csfmt{glsxtrpostdesc}\meta{category} for the given category},
  topics={hooks,providingcommands},
  note={\styfmt{glossaries-extra} v1.31+},
  category={command}
}

@glscommand{glsxtrifwasfirstuse,
  name={\csfmt{glsxtr\-if\-was\-first\-use}},
  user1={\margm{true}\margm{false}},
  description={only for use in the post-link hooks this
  tests if the entry just referenced was used for the first time},
  topics={hooks,conditional},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{ifglsused,
  name={\csfmt{if\-gls\-used}},
  user1={\margm{label}\margm{true}\margm{false}},
  description={does \meta{true} if the entry given by \meta{label} has been
  used, \meta{false} if the entry hasn't been used and neither
  if the entry doesn't exist (an error or warning message will
  occur and ?? will appear in the document).
  This command is not for use in the post-link hooks},
  topics={conditional,entryrefcommands},
  note={\styfmt{glossaries}},
  seealso={GlsXtrIfUnusedOrUndefined,glsxtrifwasfirstuse},
  category={command}
}

@glscommand{GlsXtrIfUnusedOrUndefined,
  name={\csfmt{Gls\-Xtr\-If\-Un\-used\-Or\-Un\-defined}},
  user1={\margm{label}\margm{true}\margm{false}},
  description={does \meta{true} if the entry given by \meta{label}
hasn't been
  used or is undefined, otherwise it does \meta{false}.
  This command is not for use in the post-link hooks},
  topics={conditional},
  note={\styfmt{glossaries-extra} v1.34+},
  seealso={ifglsused,glsxtrifwasfirstuse},
  category={command}
}

@glscommand{GlsXtrLocationField,
  name={\csfmt{GlsXtrLocationField}},
  user1={},
  description={expands to the internal name of the field storing the
location list, defaulting to \field{location}},
  topics={fieldrefcommands,loclistcommands},
  note={\styfmt{glossaries-extra} v1.37+},
  category={command}
}

@glscommand{glslabel,
  name={\csfmt{glslabel}},
  user1={},
  description={only for use in the post-link hooks, this
  expands to the label of the entry that was last referenced},
  topics={hooks},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glscurrententrylabel,
  name={\csfmt{gls\-current\-entry\-label}},
  user1={},
  description={only for use in the glossary, such as in the style or
in the post-name or post-description hooks, this expands to the
label of the current entry},
  topics={hooks},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glscurrentfieldvalue,
  name={\csfmt{gls\-current\-field\-value}},
  user1={},
  description={only for use in the \meta{true} part of
\cs{ifglshasfield} or \cs{glsxtrifhasfield}, this expands to the
field value},
  topics={conditional},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsentrytitlecase,
  name={\csfmt{gls\-entry\-title\-case}},
  user1={\margm{entry label}\margm{field label}},
  description={fetches the given field and applies
  \ics{capitalisewords} to it},
  topics={casecommands,fieldrefcommands},
  note={\styfmt{glossaries}\texparserdefnote\ v4.22+},
  category={command}
}

@command{capitalisewords,
  name={\csfmt{capitalise\-words}},
  user1={\margm{text}},
  description={converts the first letter of each word to
  \idx{uppercase} using \ics{makefirstuc}},
  note={\styfmt{mfirstuc}\texparserdefnote\ v1.06+},
  category={command}
}

@command{MFUnocap,
  name={\csfmt{MFU\-no\-cap}},
  user1={\margm{word}},
  description={identifies \meta{word} as one that
   should not have its case-changed by \ics{capitalisewords}
   unless it occurs at the start},
  note={\styfmt{mfirstuc}\texparserdefnote\ v1.09+},
  category={command}
}

@command{MFUwordbreak,
  name={\csfmt{MFU\-word\-break}},
  user1={\margm{punctuation}},
  description={if \idx{capitalisewords} contains punctuation that
   should be treated as a word break then \meta{punctuation} 
   should be encapsulated with this command to apply the case-change
   to the following character},
  note={\styfmt{mfirstuc} v2.07+\texparserdefnote},
  category={command}
}

@command{MFUskippunc,
  name={\csfmt{MFU\-skip\-punc}},
  user1={\margm{punctuation}},
  description={if \idx{makefirstuc} starts with a punctuation
  character it should be encapsulated with this command to skip
  \meta{punctuation} and apply the case-change to the following
   character},
  note={\styfmt{mfirstuc} v2.07+\texparserdefnote},
  category={command}
}

@command{MFUblocker,
  name={\csfmt{MFU\-block\-er}},
  user1={\margm{cs}},
  description={identifies \meta{cs} as a command that, if it occurs
   at the start of the argument of \idx{makefirstuc}, it should prevent
   any case-change},
  note={\styfmt{mfirstuc} v2.08+\texparserdefnote},
  category={command}
}

@command{MFUexcl,
  name={\csfmt{MFU\-excl}},
  user1={\margm{cs}},
  description={identifies \meta{cs} as a command whose argument should
   not have its case changed},
  note={\styfmt{mfirstuc} v2.08+\texparserdefnote},
  category={command}
}

@glscommand{glsxtrusefield,
  name={\csfmt{gls\-xtr\-use\-field}},
  user1={\margm{entry label}\margm{field label}},
  description={expands to the value of the given field for the given
   entry},
  topics={fieldrefcommands},
  note={\styfmt{glossaries-extra}\texparserdefnote\ v1.12+},
  category={command}
}

@glscommand{Glsxtrusefield,
  name={\csfmt{Gls\-xtr\-use\-field}},
  user1={\margm{entry label}\margm{field label}},
  description={like \cs{glsxtrusefield} but converts the first
   letter to \idx!{uppercase}},
  topics={fieldrefcommands,casecommands},
  note={\styfmt{glossaries-extra}\texparserdefnote\ v1.12+},
  category={command}
}

@glscommand{GLSxtrusefield,
  name={\csfmt{GLS\-xtr\-use\-field}},
  user1={\margm{entry label}\margm{field label}},
  description={as \cs{glsxtrusefield} but converts the value to
  \idx{uppercase}},
  topics={fieldrefcommands,casecommands},
  note={\styfmt{glossaries-extra}\texparserdefnote\ v1.37+},
  category={command}
}

@glscommand{GlsXtrSetField,
  name={\csfmt{Gls\-Xtr\-Set\-Field}},
  user1={\margm{entry label}\margm{field label}\margm{value}},
  description={assigns the given \meta{value} to the field
   identified by \meta{field label} for the
   entry identified by \meta{entry label}},
  topics={assigncommands},
  note={\styfmt{glossaries-extra} v1.12+},
  category={command}
}

@glscommand{xGlsXtrSetField,
  name={\csfmt{xGls\-Xtr\-Set\-Field}},
  user1={\margm{entry label}\margm{field label}\margm{value}},
  description={globally assigns the (protected) full expansion of the given \meta{value} to the field
   identified by \meta{field label} for the
   entry identified by \meta{entry label}},
  topics={assigncommands},
  note={\styfmt{glossaries-extra} v1.12+},
  category={command}
}

@glscommand{glsxtrapptocsvfield,
  name={\csfmt{gls\-xtr\-app\-to\-csv\-field}},
  user1={\margm{entry label}\margm{field label}\margm{value}},
  description={appends a comma followed by \meta{value} to the given
  field for the given entry, it that field has already been set,
  otherwise it sets the field to just \meta{value} (there's no check
  for the existence of either the entry or the field)},
  topics={assigncommands},
  note={\styfmt{glossaries-extra} v1.47+},
  category={command}
}

@glscommand{glsxtrifhasfield,
  name={\csfmt{gls\-xtr\-if\-has\-field}},
  user1={\margm{field label}\margm{entry label}\margm{true}\margm{false}},
  description={tests if the given entry has the given \emph{internal} field set
   (defined and not empty)
   without testing if the entry exists and adds implicit scoping
   to \meta{true} and \meta{false}},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.19+\texparserdefnote},
  seealso={GlsXtrIfFieldUndef},
  category={command}
}

@glscommand{glsxtrifhasfield*,
  name={\csfmt{gls\-xtr\-if\-has\-field*}},
  user1={\margm{field label}\margm{entry label}\margm{true}\margm{false}},
  description={tests if the given entry has the given field set
   (defined and not empty)
   without testing if the entry exists and without introducing
   an implicit scope},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.19+\texparserdefnote},
  seealso={GlsXtrIfFieldUndef},
  category={command}
}

@glscommand{ifglsfieldvoid,
  name={\csfmt{if\-gls\-field\-void}},
  user1={\margm{field label}\margm{entry label}\margm{true}\margm{false}},
  description={expands to \meta{true} if the given entry doesn't
exist, or exists but doesn't have the field (identified by its
internal field label) defined or does have the field defined but the
field is empty. Otherwise expands to \meta{false}. This is
essentially like \gls{GlsXtrIfFieldUndef} but also
tests for an empty value},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries} v4.50+\texparserdefnote},
  seealso={GlsXtrIfFieldUndef},
  category={command}
}

@glscommand{GlsXtrIfFieldUndef,
  name={\csfmt{Gls\-Xtr\-If\-Field\-Undef}},
  user1={\margm{field label}\margm{entry label}\margm{true}\margm{false}},
  description={tests if the given field (identified by its
internal field label) isn't defined for the given
   entry, which may also not exist},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.23+},
  category={command},
  seealso={ifglsfieldvoid},
}

@glscommand{GlsXtrIfFieldEqStr,
  name={\csfmt{Gls\-Xtr\-If\-Field\-Eq\-Str}},
  user1={\margm{field label}\margm{entry label}\margm{text}\margm{true}\margm{false}},
  description={tests if the given field value is the same as
   \meta{text} for the given entry, which may not exist. The unstarred
form adds implicit grouping. The starred form (new to v1.39)
doesn't},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.21+\texparserdefnote},
  category={command}
}

@glscommand{GlsXtrIfFieldEqXpStr,
  name={\csfmt{Gls\-Xtr\-If\-Field\-Eq\-Xp\-Str}},
  user1={\margm{field label}\margm{entry label}\margm{text}\margm{true}\margm{false}},
  description={like \cs{GlsXtrIfFieldEqStr} but first (protected)
fully expands \meta{text} (but not the field value). The unstarred
form adds implicit grouping. The starred form (new to v1.39)
doesn't},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.31+\texparserdefnote},
  category={command}
}

@glscommand{GlsXtrIfXpFieldEqXpStr,
  name={\csfmt{Gls\-Xtr\-If\-Xp\-Field\-Eq\-Xp\-Str}},
  user1={\margm{field label}\margm{entry label}\margm{text}\margm{true}\margm{false}},
  description={like \cs{GlsXtrIfFieldEqStr} but first (protected)
fully expands both the field value and \meta{text}. The unstarred
form adds implicit grouping. The starred form (new to v1.39)
doesn't},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.31+\texparserdefnote},
  category={command}
}

@glscommand{ifglshasfield,
  name={\csfmt{if\-gls\-has\-field}},
  user1={\margm{field label}\margm{entry label}\margm{true}\margm{false}},
  description={tests if the given entry, which must be defined, has the 
   given field set to a non-empty value. This is implemented in
   \bibgls\ in the same way as \cs{glsxtrifhasfield*}},
  note={\styfmt{glossaries}\texparserdefnote},
  topics={conditional,fieldrefcommands},
  seealso={glsxtrifhasfield,GlsXtrIfFieldUndef},
  category={command}
}

@glscommand{ifglshassymbol,
  name={\csfmt{if\-gls\-has\-symbol}},
  user1={\margm{entry label}\margm{true}\margm{false}},
  description={tests if the given entry, which must be defined, has the 
   \field{symbol} field set to value that's not empty and not
     \csfmt{relax}},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  seealso={ifglshasdesc,glsxtrifhasfield,GlsXtrIfFieldUndef},
  category={command}
}

@glscommand{ifglshasdesc,
  name={\csfmt{if\-gls\-has\-desc}},
  user1={\margm{entry label}\margm{true}\margm{false}},
  description={tests if the given entry, which must be defined, has the 
   \field{description} field set},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  seealso={ifglshassymbol,ifglshasdescsuppressed},
  category={command}
}

@glscommand{ifglshasdescsuppressed,
  name={\csfmt{if\-gls\-has\-suppressedesc}},
  user1={\margm{entry label}\margm{true}\margm{false}},
  description={tests if the given entry, which must be defined, has the 
   \field{description} field set to \cs{nopostdesc}},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries}},
  seealso={ifglshasdesc},
  category={command}
}

@glscommand{ifglshasparent,
  name={\csfmt{if\-gls\-has\-parent}},
  user1={\margm{entry label}\margm{true}\margm{false}},
  description={tests if the given entry, which must be defined, has the 
   \field{parent} field set},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{ifglshaschildren,
  name={\csfmt{if\-gls\-has\-children}},
  user1={\margm{entry label}\margm{true}\margm{false}},
  description={tests if the given entry, which must be defined, has
  child entries. This method is inefficient as it has to
  iterate over all defined entries to determine which ones
  have \meta{entry label} as the value of the \field{parent}
  field. With \bibgls, a more efficient approach is to
  use \csopt{save-child-count} and test the value of
  the \field{childcount} field. The \TeX\ parser library recognises
  this command and will simply use the child count (regardless of
  whether or not the child count is saved)},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{ifglshasshort,
  name={\csfmt{if\-gls\-has\-short}},
  user1={\margm{entry label}\margm{true}\margm{false}},
  description={tests if the given entry, which must be defined, has the 
   \field{short} field set},
  topics={conditional,fieldrefcommands,abbreviationcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{ifglshaslong,
  name={\csfmt{if\-gls\-has\-long}},
  user1={\margm{entry label}\margm{true}\margm{false}},
  description={tests if the given entry, which must be defined, has the 
   \field{long} field set},
  topics={conditional,fieldrefcommands,abbreviationcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{ifglshasprefix,
  name={\csfmt{if\-gls\-has\-prefix}},
  user1={\margm{entry label}\margm{true}\margm{false}},
  description={tests if the given entry, which must be defined, has the 
   \field{prefix} field set to value that's not empty},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries-prefix}},
  seealso={ifglshasdesc,glsxtrifhasfield,GlsXtrIfFieldUndef},
  category={command}
}

@glscommand{ifglshasprefixplural,
  name={\csfmt{if\-gls\-has\-prefix\-plural}},
  user1={\margm{entry label}\margm{true}\margm{false}},
  description={tests if the given entry, which must be defined, has the 
   \field{prefixplural} field set to value that's not empty},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries-prefix}},
  seealso={ifglshasdesc,glsxtrifhasfield,GlsXtrIfFieldUndef},
  category={command}
}

@glscommand{ifglshasprefixfirst,
  name={\csfmt{if\-gls\-has\-prefix\-first}},
  user1={\margm{entry label}\margm{true}\margm{false}},
  description={tests if the given entry, which must be defined, has the 
   \field{prefixfirst} field set to value that's not empty},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries-prefix}},
  seealso={ifglshasdesc,glsxtrifhasfield,GlsXtrIfFieldUndef},
  category={command}
}

@glscommand{ifglshasprefixfirstplural,
  name={\csfmt{if\-gls\-has\-prefix\-first\-plural}},
  user1={\margm{entry label}\margm{true}\margm{false}},
  description={tests if the given entry, which must be defined, has the 
   \field{prefixfirstplural} field set to value that's not empty},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries-prefix}},
  seealso={ifglshasdesc,glsxtrifhasfield,GlsXtrIfFieldUndef},
  category={command}
}

@glscommand{ifglsfieldeq,
  name={\csfmt{if\-gls\-field\-eq}},
  user1={\margm{entry label}\margm{field label}\margm{string}\margm{true}\margm{false}},
  description={tests if the given entry has the 
   given field value equal to \meta{string}, where \meta{field label}
   is the internal field label (not the key name). No expansion is
   performed in the test (which just uses \cs{ifcsstring})},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries} v4.16+\texparserdefnote},
  category={command}
}

@glscommand{ifglsfielddefeq,
  name={\csfmt{if\-gls\-field\-def\-eq}},
  user1={\margm{entry label}\margm{field label}\margm{cs}\margm{true}\margm{false}},
  description={tests if the given entry has the 
   given field value equal to the replacement text of the command
   given by \meta{cs}, where \meta{field label}
   is the internal field label (not the key name). The test 
   uses \cs{ifdefstrequal}},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries} v4.16+},
  category={command}
}

@glscommand{ifglsfieldcseq,
  name={\csfmt{if\-gls\-field\-cs\-eq}},
  user1={\margm{entry label}\margm{field label}\margm{cs-name}\margm{true}\margm{false}},
  description={tests if the given entry has the 
   given field value equal to the replacement text of the command
   given by the control sequence name \meta{cs-name}, where \meta{field label}
   is the internal field label (not the key name). The test 
   uses \cs{ifcsstrequal}},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries} v4.16+},
  category={command}
}

@glscommand{glsfielddef,
  name={\csfmt{gls\-field\-def}},
  user1={\margm{entry label}\margm{field label}\margm{definition}},
  description={changes the value of the given
  entry's field to \meta{definition} (localised by any scope)},
  topics={fieldrefcommands,assigncommands},
  note={\styfmt{glossaries} v4.16+},
  category={command}
}

@glscommand{glsfieldgdef,
  name={\csfmt{gls\-field\-gdef}},
  user1={\margm{entry label}\margm{field label}\margm{definition}},
  description={globally changes the value of the given
  entry's field to \meta{definition}},
  topics={fieldrefcommands,assigncommands},
  note={\styfmt{glossaries} v4.16+},
  category={command}
}

@glscommand{glsfieldedef,
  name={\csfmt{gls\-field\-edef}},
  user1={\margm{entry label}\margm{field label}\margm{definition}},
  description={changes the value of the given entry's field to the 
  full expansion of \meta{definition} (localised by any scope)},
  topics={fieldrefcommands,assigncommands},
  note={\styfmt{glossaries} v4.16+},
  category={command}
}

@glscommand{glsfieldxdef,
  name={\csfmt{gls\-field\-xdef}},
  user1={\margm{entry label}\margm{field label}\margm{definition}},
  description={globally changes the value of the given entry's field to the 
  full expansion of \meta{definition}},
  topics={fieldrefcommands,assigncommands},
  note={\styfmt{glossaries} v4.16+},
  category={command}
}

@glscommand{GlsXtrIfFieldNonZero,
  name={\csfmt{Gls\-Xtr\-If\-Field\-Non\-Zero}},
  user1={\margm{field}\margm{entry label}\margm{true}\margm{false}},
  description={tests if the given field value expands to a non-zero
integer. If the field is undefined or empty, the value is assumed to
be 0. If the field is set, it must expand to an integer value.
The value can be referenced in \meta{true} or \meta{false}
with \cs{glscurrentfieldvalue}. The unstarred
form adds implicit grouping. The starred form (new to v1.39)
doesn't},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.31+},
  seealso={GlsXtrIfFieldEqNum},
  category={command}
}

@glscommand{GlsXtrIfFieldEqNum,
  name={\csfmt{Gls\-Xtr\-If\-Field\-Eq\-Num}},
  user1={\margm{field}\margm{entry label}\margm{number}\margm{true}\margm{false}},
  description={tests if the given field value expands to the given
integer \meta{number}. If the field is undefined or empty, the value is assumed to
be 0. If the field is set, it must expand to an integer value.
The value can be referenced in \meta{true} or \meta{false}
with \cs{glscurrentfieldvalue}. The unstarred
form adds implicit grouping. The starred form (new to v1.39)
doesn't},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.31+},
  seealso={GlsXtrIfFieldNonZero,GlsXtrIfFieldCmpNum},
  category={command}
}

@glscommand{GlsXtrIfFieldCmpNum,
  name={\csfmt{Gls\-Xtr\-If\-Field\-Cmp\-Num}},
  user1={\margm{field}\margm{entry label}\margm{comparison}\margm{number}\margm{true}\margm{false}},
  description={compares the given (numerical) field value to the given
integer \meta{number}. The \meta{comparison} may be one of:
\code{=}, \code{<} or \code{>}. If the field is undefined or empty, the value is assumed to
be 0. If the field is set, it must expand to an integer value.
The value can be referenced in \meta{true} or \meta{false}
with \cs{glscurrentfieldvalue}. The unstarred
form adds implicit grouping. The starred form (new to v1.39)
doesn't},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.31+},
  seealso={GlsXtrIfFieldNonZero},
  category={command}
}

@mainglscommand{GlsXtrIfHasNonZeroChildCount,
  name={\csfmt{Gls\-Xtr\-If\-Has\-Non\-Zero\-Child\-Count}},
  user1={\margm{entry label}\margm{true}\margm{false}},
  description={for use with the \csopt{save-child-count} resource
option, this uses \cs{GlsXtrIfFieldNonZero} to test if the
\field{childcount} field has a non-zero value. The value
can be referenced in \meta{true} or \meta{false} with
\cs{glscurrentfieldvalue}. The \TeX\ parser library recognises
  this command regardless of whether or not the child count is saved},
  topics={conditional,fieldrefcommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.31+\texparserdefnote},
  seealso={GlsXtrIfFieldNonZero},
  category={command}
}

@mainglscommand{glsxtrifcustomdiscardperiod,
  name={\csfmt{gls\-xtr\-if\-custom\-discard\-period}},
  user1={\margm{true}\margm{false}},
  description={should expand to \meta{true} if the post-link hook
   should check for a following full stop (in addition to attribute
   checks) otherwise should expand to \meta{false}},
  topics={conditional,hooks},
  note={\styfmt{glossaries-extra} v1.23+},
  category={command}
}

@glscommand{glsaddkey,
  name={\csfmt{gls\-add\-key}},
  user1={\margm{key}\margm{default value}\margm{no link cs}\margm{no link ucfirst cs}\margm{link cs}\margm{link ucfirst cs}\margm{link allcaps cs}},
  description={adds a new key for use in \csref{newglossaryentry}
   and associated commands to access it},
  topics={definingterms,providingcommands,linkcommands,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsxtrprovidestoragekey,
  name={\csfmt{gls\-xtr\-provide\-storage\-key}},
  user1={\margm{key}\margm{default value}\margm{no link cs}},
  description={adds a new key, if not already defined, for use in
\csref{newglossaryentry}
   and an associated command
   to access it where (unlike \cs{glsaddstoragekey})
   the \meta{no link cs} part may be empty if unrequired},
  topics={definingterms,providingcommands,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.12+},
  category={command}
}

@glscommand{glsaddstoragekey,
  name={\csfmt{gls\-add\-storage\-key}},
  user1={\margm{key}\margm{default value}\margm{no link cs}},
  description={adds a new key for internal use that can be set in 
    \csref{newglossaryentry}},
  topics={definingterms,providingcommands,fieldrefcommands},
  seealso={glsxtrprovidestoragekey},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsautoprefix,
  name={\csfmt{gls\-auto\-prefix}},
  description={prefix used for the automatically labelling triggered
  by the \styopt[autolabel]{numberedsection} option},
  topics={hooks,crossrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsenablehyper,
  name={\csfmt{gls\-enable\-hyper}},
  description={enables the creation of hyperlinks and targets for
  the glossary commands that support them (automatically implemented
  if \sty{hyperref} is loaded before \sty{glossaries})},
  topics={linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsdisablehyper,
  name={\csfmt{gls\-disable\-hyper}},
  description={disables the creation of hyperlinks and targets for
  the glossary commands that support them (automatically implemented
  if \sty{hyperref} isn't loaded before \sty{glossaries})},
  topics={linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{GlsXtrEnableInitialTagging,
  name={\csfmt{Gls\-Xtr\-Enable\-Initial\-Tagging}},
  user1={\margm{category list}\margm{cs}},
  description={defines the control sequence \meta{cs}
   to be used with abbreviation tagging
   with the given categories},
  topics={abbreviationcommands,formattingcommands},
  note={\styfmt{glossaries-extra}\texparserdefnote},
  category={command}
}

@glscommand{glsxtrtagfont,
  name={\csfmt{gls\-xtr\-tag\-font}},
  user1={\margm{text}},
  description={font used by tagging command defined by
   \cs{GlsXtrEnableInitialTagging}},
  note={\styfmt{glossaries-extra}},
  topics={abbreviationcommands,formattingcommands},
  category={command},
  seealso={GlsXtrEnableInitialTagging}
}

@glscommand{glsnavhypertarget,
  name={\csfmt{gls\-nav\-hyper\-target}},
  user1={\oargm{type}\margm{label}\margm{text}},
  description={creates a hyper target for the group given by
    \meta{label} for the given glossary type and uses \meta{text}
    for the hyperlink text},
  topics={linkcommands,entryrefcommands},
  note={\styfmt{glossary-hypernav}},
  category={command}
}

@glscommand{newentry,
  name={\csfmt{newentry}},
  user1={\margm{label}\margm{\keyvallist}},
  description={equivalent to \csref{newglossaryentry}},
  topics={definingterms,shortcutcommands},
  note={\styfmt{glossaries-extra} \styopt{shortcuts}},
  category={command}
}

@glscommand{newsym,
  name={\csfmt{newsym}},
  user1={\margm{label}\margm{\keyvallist}\margm{symbol}},
  description={equivalent to \csref{glsxtrnewsymbol}},
  note={\styfmt{glossaries-extra} \styopt{shortcuts}},
  topics={definingterms,shortcutcommands},
  category={command}
}

@glscommand{newnum,
  name={\csfmt{newnum}},
  user1={\margm{label}\margm{\keyvallist}},
  description={equivalent to \csref{glsxtrnewnumber}},
  topics={definingterms,shortcutcommands},
  note={\styfmt{glossaries-extra} \styopt{shortcuts}},
  category={command}
}

@glscommand{acronymtype,
  name={\csfmt{acronym\-type}},
  user1={},
  description={expands to the default acronym glossary type when using
   \csref{newacronym}},
  topics={glossrefs},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsxtrabbrvtype,
  name={\csfmt{gls\-xtr\-abbrv\-type}},
  user1={},
  description={expands to the default glossary type when using
   \csref{newabbreviation}},
  topics={glossrefs},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{nopostdesc,
  name={\csfmt{no\-post\-desc}},
  user1={},
  description={suppresses the post-description hook},
  topics={hooks},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsxtrnopostpunc,
  name={\csfmt{gls\-xtr\-no\-post\-punc}},
  user1={},
  description={suppresses the post-description punctuation
   without suppressing the post-description hook},
  topics={hooks},
  note={\styfmt{glossaries-extra} v1.22+},
  category={command}
}

@glscommand{glsxtrrestorepostpunc,
  name={\csfmt{gls\-xtr\-restore\-post\-punc}},
  user1={},
  description={used within post-description category hooks, 
   this restores the post-description punctuation
   if it's been suppressed with \cs{glsxtrnopostpunc}},
  topics={hooks},
  note={\styfmt{glossaries-extra} v1.23+},
  category={command}
}

@mainglscommand{loadglsentries,
  name={\csfmt{load\-gls\-entries}},
  user1={\oargm{type}\margm{file}},
  description={locally redefines \cs{glsdefaulttype}
    to \meta{type} and inputs \meta{file}},
  topics={definingterms},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{newglossary,
  name={\csfmt{newglossary}},
  user1={\oargm{log}\margm{type}\margm{gls}\margm{glo}\margm{title}},
  description={defines a new glossary identified by \meta{type}
   with the given title and associated file extensions used by
   \appfmt{makeindex} or \appfmt{xindy}},
  topics={glossrefs},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{newglossary*,
  name={\csfmt{newglossary*}},
  user1={\margm{type}\margm{title}},
  description={defines a new glossary identified by \meta{type}
   with the given title},
  topics={glossrefs},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{newignoredglossary,
  name={\csfmt{new\-ignored\-glossary}},
  user1={\margm{type}},
  description={defines a new ignored glossary (with hyperlinks
   suppressed) identified by \meta{type}
   that's not included in the list used by commands, such
   as \cs{printunsrtglossaries}, that iterate over defined glossaries},
  topics={glossrefs},
  note={\styfmt{glossaries} v4.08+},
  category={command}
}

@glscommand{newignoredglossary*,
  name={\csfmt{new\-ignored\-glossary*}},
  user1={\margm{type}},
  description={defines a new ignored glossary (without 
   suppressing hyperlinks) identified by \meta{type}
   that's not included in the list used by commands, such
   as \cs{printunsrtglossaries}, that iterate over defined glossaries},
  topics={glossrefs},
  note={\styfmt{glossaries-extra} v1.11+},
  category={command}
}

@glscommand{provideignoredglossary,
  name={\csfmt{provide\-ignored\-glossary}},
  user1={\margm{type}},
  description={as \cs{newignoredglossary} but does nothing
    if a glossary identified by \meta{type} already exists},
  topics={glossrefs},
  note={\styfmt{glossaries-extra} v1.12+},
  category={command}
}

@glscommand{provideignoredglossary*,
  name={\csfmt{provide\-ignored\-glossary*}},
  user1={\margm{type}},
  description={as \ics{provideignoredglossary} but doesn't
    suppress hyperlinks},
  topics={glossrefs},
  note={\styfmt{glossaries-extra} v1.12+},
  category={command}
}

@glscommand{delimN,
  name={\csfmt{delimN}},
  user1={},
  description={used to delimited individual locations},
  topics={glossarystylecommands,separatorcommands,loclistcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{delimR,
  name={\csfmt{delimR}},
  user1={},
  description={used as a separator between the start and end locations
   of a range},
  topics={glossarystylecommands,separatorcommands,loclistcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsnoidxloclist,
  name={\csfmt{gls\-noidx\-loc\-list}},
  user1={\margm{location list cs}},
  description={iterates over the given internal location list using
   the \cs{glsnoidxloclisthandler} handler},
  topics={glossarystylecommands,loop,loclistcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsnoidxloclisthandler,
  name={\csfmt{gls\-noidx\-loc\-list\-handler}},
  description={the handler used by the internal list loop function used
    in \cs{glsnoidxloclist}},
  topics={glossarystylecommands,loop,loclistcommands},
  user1={\margm{location}},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glossentry,
  name={\csfmt{glossentry}},
  user1={\margm{label}\margm{location list}},
  description={used in the glossary to display a top-level entry},
  topics={glossarystylecommands},
  note={\styfmt{glossaries} v3.08a+},
  category={command}
}

@glscommand{subglossentry,
  name={\csfmt{subglossentry}},
  user1={\margm{level}\margm{label}\margm{location list}},
  description={used in the glossary to display a sub-entry},
  topics={glossarystylecommands},
  note={\styfmt{glossaries} v3.08a+},
  category={command}
}

@glscommand{newglossarystyle,
  name={\csfmt{new\-glossary\-style}},
  user1={\margm{name}\margm{definition}},
  description={defines a new glossary style called \meta{name}},
  topics={glossarystylecommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{setglossarystyle,
  name={\csfmt{set\-glossary\-style}},
  user1={\margm{name}},
  description={sets the glossary style identified by \meta{name}},
  topics={glossarystylecommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glossaryheader,
  name={\csfmt{glossary\-header}},
  description={implemented at the start of a glossary (modified by
glossary styles)},
  topics={glossarystylecommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsgroupskip,
  name={\csfmt{gls\-group\-skip}},
  description={inserted between groups to create some vertical
  spacing (this command is modified by
  glossary styles, and may be switched off with the  
  \styopt{nogroupskip} option)},
  topics={glossarystylecommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsentryitem,
  name={\csfmt{gls\-entry\-item}},
  user1={\margm{label}},
  description={increments and displays the \counter{glossaryentry}
counter, if appropriate},
  topics={glossarystylecommands},
  note={\styfmt{glossaries} v3.0+},
  category={command}
}

@glscommand{glsentrycounterlabel,
  name={\csfmt{gls\-entry\-counter\-label}},
  description={governs the way the \counter{glossaryentry}
  counter is displayed by \cs{glsentryitem}},
  topics={glossarystylecommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glssubentryitem,
  name={\csfmt{gls\-sub\-entry\-item}},
  user1={\margm{label}},
  description={increments and displays the \counter{glossarysubentry}
counter, if appropriate},
  topics={glossarystylecommands},
  note={\styfmt{glossaries} v3.0+},
  category={command}
}

@glscommand{glssubentrycounterlabel,
  name={\csfmt{gls\-sub\-entry\-counter\-label}},
  description={governs the way the \counter{glossarysubentry}
  counter is displayed by \cs{glssubentryitem}},
  topics={glossarystylecommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glstarget,
  name={\csfmt{gls\-target}},
  user1={\margm{label}\margm{text}},
  description={creates a hypertarget for the entry given by
\meta{label} (the target for commands like \cs{gls}) and displays \meta{text}},
  topics={glossarystylecommands,linkcommands},
  note={\styfmt{glossaries} v1.18+},
  category={command}
}

@glscommand{glsnamefont,
  name={\csfmt{gls\-name\-font}},
  user1={\margm{text}},
  description={used by \cs{glossentryname} to format the name},
  topics={glossarystylecommands,formattingcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glossentryname,
  name={\csfmt{gloss\-entry\-name}},
  user1={\margm{label}},
  description={used by glossary styles to display the name},
  topics={glossarystylecommands,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glossentrysymbol,
  name={\csfmt{gloss\-entry\-symbol}},
  user1={\margm{label}},
  description={used by glossary styles to display the symbol},
  topics={glossarystylecommands,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glspostdescription,
  name={\csfmt{glspostdescription}},
  description={a hook added after the description in some glossary
styles (all if the \sty{glossaries-extra-stylemods} package is
loaded to patch them). This hook is used to reflect the
\styopt{nopostdot} package option for \sty{glossaries}
and the \styopt{postpunc} option for \sty{glossaries-extra}},
  topics={glossarystylecommands,hooks},
  note={\styfmt{glossaries} and modified by
\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glossentrynameother,
  name={\csfmt{gloss\-entry\-name\-other}},
  user1={\margm{label}\margm{field}},
  description={acts like \ics{glossentryname} (obeys 
   \catattr{glossname} and \catattr{glossnamefont}
   or \cs{glsnamefont} and the post-name hook) but uses
   the given \meta{field} instead of the \field{name} field},
  topics={glossarystylecommands,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.22+},
  category={command}
}

@glscommand{glossentrydesc,
  name={\csfmt{gloss\-entry\-desc}},
  user1={\margm{label}},
  description={used by glossary styles to display the description},
  topics={glossarystylecommands,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{Glossentrydesc,
  name={\csfmt{Gloss\-entry\-desc}},
  user1={\margm{label}},
  description={like \cs{glossentrydesc} but converts the first
letter to \idx{uppercase}},
  topics={glossarystylecommands,fieldrefcommands,casecommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{Glossentryname,
  name={\csfmt{Gloss\-entry\-name}},
  user1={\margm{label}},
  description={like \cs{glossentryname} but converts the first
letter to \idx{uppercase}},
  topics={glossarystylecommands,fieldrefcommands,casecommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{Glossentrysymbol,
  name={\csfmt{Gloss\-entry\-symbol}},
  user1={\margm{label}},
  description={like \cs{glossentrysymbol} but converts the first
letter to \idx{uppercase}},
  topics={glossarystylecommands,fieldrefcommands,casecommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsaddall,
  name={\csfmt{glsaddall}},
  user1={\oargm{options}},
  description={iterates over all entries defined for all glossaries
   (or for the sub-list provided by \optfmt{types=\margm{list}} in the options) 
   and performs \code{\cs{glsadd}\oargm{options}} for each entry.
   This command isn't suitable for use with \bibgls. Use the
   \csopt{selection} option instead},
  topics={loop,indexing},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsaddallunused,
  name={\csfmt{gls\-add\-all\-unused}},
  user1={\oargm{list}},
  description={iterates over all entries defined for all glossaries
   (or for the sub-list provided in the options) and performs
   \cs{glsadd} for each entry that hasn't been used with
   the \glsaddopt{format} set to \code{glsignore}.
   This command isn't suitable for use with \bibgls. Use the
   \csopt{selection} option instead},
  topics={loop,indexing},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsadd,
  name={\csfmt{glsadd}},
  user1={\oargm{options}\margm{label}},
  description={indexes the entry without displaying any text},
  topics={indexing},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsaddeach,
  name={\csfmt{gls\-add\-each}},
  user1={\oargm{options}\margm{label list}},
  description={indexes each entry identified in the comma-separated
  list of labels without displaying any text},
  topics={indexing},
  note={\styfmt{glossaries-extra} v1.31+},
  category={command}
}

@glscommand{glsstartrange,
  name={\csfmt{gls\-start\-range}},
  user1={\oargm{options}\margm{label list}},
  description={essentially like 
  \code{\cs{glsaddeach}\oarg{\glsopt[\idx{openrange}]{format},\meta{options}}\margm{label-list}}.
   If \glsopt{format} is used in \meta{options}, the open marker
   \idx{openrange} will be inserted in front of the value},
  topics={indexing},
  note={\styfmt{glossaries-extra} v1.50+},
  category={command}
}

@glscommand{glsendrange,
  name={\csfmt{gls\-end\-range}},
  user1={\oargm{options}\margm{label list}},
  description={essentially like 
  \code{\cs{glsaddeach}\oarg{\glsopt[\idx{closerange}]{format},\meta{options}}\margm{label-list}}.
   If \glsopt{format} is used in \meta{options}, the close marker
   \idx{closerange} will be inserted in front of the value},
  topics={indexing},
  note={\styfmt{glossaries-extra} v1.50+},
  category={command}
}

@glsaddoption{glsadd.thevalue,
  name={\csoptfmt{thevalue}},
  user1={\margm{value}},
  description={overrides the record value so that it's the
  given \meta{value} not obtained from the associated counter},
  category={commandoption},
  note={\styfmt{glossaries-extra} v1.14+},
  parent={glsadd}
}

@glsaddoption{glsadd.theHvalue,
  name={\csoptfmt{theHvalue}},
  user1={\margm{value}},
  description={the hyperlink target corresponding to the value
  of \glsopt{thevalue}, if appropriate},
  category={commandoption},
  note={\styfmt{glossaries-extra} v1.14+},
  parent={glsadd}
}

@glsaddoption{glsadd.format,
  name={\csoptfmt{format}},
  user1={\margm{encap}},
  description={sets the \idx{encap} for the record to 
  \meta{encap}, optionally with the start or end range markers},
  category={commandoption},
  note={\styfmt{glossaries}},
  parent={glsadd}
}

@glsaddoption{glsadd.counter,
  name={\csoptfmt{counter}},
  user1={\margm{counter-name}},
  description={sets the counter to use for the record},
  category={commandoption},
  note={\styfmt{glossaries}},
  parent={glsadd}
}

@glscommand{theglossaryentry,
  name={\csfmt{theglossaryentry}},
  description={textual representation of the \counter{glossaryentry}
counter, which is defined with the \styopt{entrycounter} option},
  topics={glossarystylecommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{theHglossaryentry,
  name={\csfmt{theHglossaryentry}},
  description={hypertarget associated with the \counter{glossaryentry}
counter, which is defined with the \styopt{entrycounter} option},
  topics={glossarystylecommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsstepentry,
  name={\csfmt{gls\-step\-entry}},
  user1 = {\margm{label}},
  description={increments the \counter{glossaryentry} counter, which
is defined with the \styopt{entrycounter} option, and automatically
labels it with \cs{label}},
  topics={glossarystylecommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{currentglossary,
  name={\csfmt{currentglossary}},
  description={defined within the glossary to the current glossary
type, this has no meaning outside of the glossary list},
  topics={glossarystylecommands,glossrefs},
  note={\styfmt{glossaries}},
  category={command}
}

@command{frontmatter,
  name={\csfmt{front\-matter}},
  user1={},
  description={switches to front matter},
  note={book-like classes},
  category={command}
}

@command{mainmatter,
  name={\csfmt{main\-matter}},
  user1={},
  description={switches to main matter},
  note={book-like classes},
  category={command}
}

@command{backmatter,
  name={\csfmt{back\-matter}},
  user1={},
  description={switches to back matter},
  note={book-like classes},
  category={command}
}

@glscommand{GlsXtrSetDefaultNumberFormat,
  name={\csfmt{Gls\-Xtr\-Set\-Default\-Number\-Format}},
  user1={\margm{format}},
  description={set the default format to use if the
   \glsaddopt{format} key isn't set},
  topics={formattingcommands,indexing},
  note={\styfmt{glossaries-extra} v1.19+},
  category={command}
}

@glscommand{GlsXtrSetDefaultGlsOpts,
  name={\csfmt{Gls\-Xtr\-Set\-Default\-Gls\-Opts}},
  user1={\margm{options}},
  description={set the default options for commands like \cs{gls}},
  topics={formattingcommands,indexing},
  seealso={GlsXtrSetDefaultNumberFormat},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glsnumberformat,
  name={\csfmt{gls\-number\-format}},
  user1={\margm{text}},
  description={default location format, uses \cs{glshypernumber} if
hyperlinks enabled otherwise just does \meta{text}},
  topics={formattingcommands,indexing,loclistcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glshypernumber,
  name={\csfmt{gls\-hyper\-number}},
  user1={\margm{text}},
  description={a location format that has a hyperlink (if enabled)},
  topics={formattingcommands,indexing,loclistcommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{hypersf,
  name={\csfmt{hypersf}},
  user1={\margm{text}},
  description={a location format that uses the sans-serif 
   font that also has a hyperlink (if enabled)},
  topics={formattingcommands,indexing,loclistcommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{hyperit,
  name={\csfmt{hyperit}},
  user1={\margm{text}},
  description={a location format that uses the italic 
   font that also has a hyperlink (if enabled)},
  topics={formattingcommands,indexing,loclistcommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{hyperbf,
  name={\csfmt{hyperbf}},
  user1={\margm{text}},
  description={a location format that uses the bold 
   font that also has a hyperlink (if enabled)},
  topics={formattingcommands,indexing,loclistcommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{hyperemph,
  name={\csfmt{hyperemph}},
  user1={\margm{text}},
  description={a location format that uses \ics{emph} to set the
  font and also has a hyperlink (if enabled)},
  topics={formattingcommands,indexing,loclistcommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{hyperrm,
  name={\csfmt{hyperrm}},
  user1={\margm{text}},
  description={a location format that uses the serif (Roman) 
   font that also has a hyperlink (if enabled)},
  topics={formattingcommands,indexing,loclistcommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@command{emph,
  name={\csfmt{emph}},
  user1={\margm{text}},
  description={emphasizes the given text (italic or slanted
   if the surrounding font is upright, otherwise upright font is 
   used)},
  note={kernel command},
  category={command}
}

@command{em,
  name={\csfmt{em}},
  description={switch to emphasized font (until end of current scope)},
  note={kernel command},
  category={command}
}

@command{textsf,
  name={\csfmt{textsf}},
  user1={\margm{text}},
  description={displays the given text in sans-serif},
  note={kernel command},
  category={command}
}

@command{textbf,
  name={\csfmt{textbf}},
  user1={\margm{text}},
  description={displays the given text in bold},
  note={kernel command},
  category={command}
}

@command{bfseries,
  name={\csfmt{bfseries}},
  description={switch to bold (until end of current scope)},
  note={kernel command},
  category={command}
}

@command{textit,
  name={\csfmt{textit}},
  user1={\margm{text}},
  description={displays the given text in italic},
  note={kernel command},
  seealso={emph},
  category={command}
}

@command{texttt,
  name={\csfmt{texttt}},
  user1={\margm{text}},
  description={displays the given text in monospaced font},
  note={kernel command},
  category={command}
}

@command{@firstofone,
  name={\csfmt{@first\-of\-one}},
  user1={\margm{code}},
  description={does \meta{code}},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{@gobble,
  name={\csfmt{@gobble}},
  user1={\margm{code}},
  description={does nothing (the argument is discarded)},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{@for,
  name={\csfmt{@for}},
  user1={\meta{cs}:=\meta{list}\csfmt{do}\margm{code}},
  description={iterates over each item in the comma-separated
\meta{list}, and on each iteration sets \meta{cs} to the current
element and performs \meta{code}},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{alph,
  name={\csfmt{alph}},
  user1={\margm{counter}},
  description={displays the given counter as an alphabetic character
from \qt{a} to \qt{z}},
  note={kernel command},
  category={command}
}

@command{footnote,
  name={\csfmt{footnote}},
  user1={\oargm{number}\margm{text}},
  description={displays the given text as a footnote},
  note={kernel command},
  category={command}
}

@command{index,
  name={\csfmt{index}},
  user1={\margm{text}},
  description={indexes the given term by writing the relevant
information to an associated file that can then be processed
by \idx{makeindex} or \idx{xindy}},
  note={kernel command},
  category={command}
}

@glscommand{glsignore,
  name={\csfmt{gls\-ignore}},
  user1={\margm{text}},
  description={does nothing but when used as a location format
   \bibgls\ recognises it as an \idx{ignoredrecord}},
  topics={formattingcommands,indexing,loclistcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{@istfilename,
  name={\csfmt{@istfilename}},
  user1={\margm{filename}},
  description={identifies the style file in the \ext{aux}
   file for the benefit of external tools like 
    \idx{makeglossaries} and \idx{makeglossaries-lite}},
  topics={internalcommands,auxcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glstriggerrecordformat,
  name={\csfmt{gls\-trigger\-record\-format}},
  user1={\margm{text}},
  description={does nothing but when used as a location format
   \bibgls\ recognises it as an \idx{ignoredrecord} indexed by
   commands like \csref{rgls}},
  topics={formattingcommands,indexing,loclistcommands},
  note={\styfmt{glossaries-extra} v1.21+},
  category={command}
}

@command{at,
  name={\csfmt{@}},
  user1={},
  description={adjusts the space factor to indicate the following
   punctuation character marks the end of the sentence},
  note={kernel command},
  category={command}
}

@command{forall,
  name={\csfmt{forall}},
  user1={},
  description={for all symbol ($\forall$)},
  note={kernel command\texparserdefnote\ (maths mode)},
  category={command}
}

@command{heartsuit,
  name={\csfmt{heartsuit}},
  user1={},
  description={heart symbol ($\heartsuit$)},
  note={kernel command\texparserdefnote\ (maths mode)},
  category={command}
}

@command{diamondsuit,
  name={\csfmt{diamondsuit}},
  user1={},
  description={diamond symbol ($\diamondsuit$)},
  note={kernel command\texparserdefnote\ (maths mode)},
  category={command}
}

@command{ensuremath,
  name={\csfmt{ensuremath}},
  user1={\margm{maths}},
  description={ensures the argument is in math mode. As a general
rule this should only be used if you know for certain that
the argument just contains mathematical markup and doesn't cause a
change in mode},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{mathord,
  name={\csfmt{mathord}},
  user1={\margm{maths}},
  description={assigns the character or sub-formula in the 
   argument to class 0, ordinary},
  note={\TeX\ primitive},
  category={command}
}

@command{mathop,
  name={\csfmt{mathop}},
  user1={\margm{maths}},
  description={assigns the character or sub-formula in the 
   argument to class 1, large operator},
  note={\TeX\ primitive},
  category={command}
}

@command{mathpunct,
  name={\csfmt{mathpunct}},
  user1={\margm{maths}},
  description={assigns the character or sub-formula in the 
   argument to class 6, punctuation},
  note={\TeX\ primitive},
  category={command}
}

@command{mathrel,
  name={\csfmt{mathrel}},
  user1={\margm{maths}},
  description={assigns the character or sub-formula in the 
   argument to class 3, relation},
  note={\TeX\ primitive},
  category={command}
}

@command{write18,
  name={\csfmt{write18}},
  user1={\margm{system call}},
  description={perform shell escape if permitted},
  note={kernel command},
  category={command}
}

@command{immediate,
  name={\csfmt{immediate}},
  user1={\meta{file operation}},
  description={perform the file operation immediately instead of the
usual delay},
  note={{}\TeX\ primitive},
  category={command}
}

@command{AtEndDocument,
  name={\csfmt{AtEndDocument}},
  user1={\margm{code}},
  description={perform \meta{code} at the end of the document},
  note={kernel command},
  category={command}
}

@command{unexpanded,
  name={\csfmt{unexpanded}},
  user1={\margm{general text}},
  description={expands to the argument},
  note={{}\eTeX\ primitive\texparserdefnote},
  category={command}
}

@command{detokenize,
  name={\csfmt{detokenize}},
  user1={\margm{general text}},
  description={expands the argument to a list of character tokens},
  note={{}\eTeX\ primitive\texparserdefnote},
  category={command}
}

@command{input,
  name={\csfmt{input}},
  user1={\margm{file}},
  description={input the given file},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{include,
  name={\csfmt{include}},
  user1={\margm{file}},
  description={clears the page, creates a supplementary \ext{aux}
  file, and selectively inputs the given file},
  note={kernel command\texparserdefnote},
  seealso={@input},
  category={command}
}

@command{@input,
  name={\csfmt{@input}},
  user1={\margm{file}},
  description={used in the \ext{aux} file to input another \ext{aux}
file, typically because the document contains \cs{include}},
  note={kernel command\texparserdefnote},
  seealso={switch.aux-input-action,@bibgls@input},
  category={command}
}

@command{IfFileExists,
  name={\csfmt{IfFileExists}},
  user1={\margm{file}\margm{true}\margm{false}},
  description={if the given \meta{file} exists does \meta{true}
   otherwise does \meta{false}},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{jobname,
  name={\csfmt{jobname}},
  user1={},
  description={the current job name, which is usually the name of
   the main \ext{tex} file without the extension},
  note={primitive},
  category={command}
}

@command{protect,
  name={\csfmt{protect}},
  user1={\meta{token}},
  description={protects \meta{token} from expansion},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{ifcase,
  name={\csfmt{ifcase}},
  user1={\meta{number}},
  description={case conditional},
  note={\TeX\ primitive\texparserdefnote},
  category={command}
}

@command{ifnum,
  name={\csfmt{ifnum}},
  user1={\meta{number1}\meta{comparison}\meta{number2}},
  description={integer conditional},
  note={\TeX\ primitive\texparserdefnote},
  category={command}
}

@command{renewcommand,
  name={\csfmt{re\-new\-com\-mand}},
  user1={\margm{cs}\oargm{n}\oargm{def}\margm{code}},
  description={redefines an existing command},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{newcommand,
  name={\csfmt{new\-com\-mand}},
  user1={\margm{cs}\oargm{n}\oargm{def}\margm{code}},
  description={defines a new command},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{providecommand,
  name={\csfmt{pro\-vide\-com\-mand}},
  user1={\margm{cs}\oargm{n}\oargm{def}\margm{code}},
  description={defines a command if it's not already defined},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{NewDocumentCommand,
  name={\csfmt{New\-Document\-Com\-mand}},
  user1={\margm{cs}\margm{arg specs}\margm{code}},
  description={defines a new robust command (only partially
implemented by \TeX\ Parser Library)},
  note={\LaTeX3 command\texparserdefnote},
  category={command}
}

@command{RenewDocumentCommand,
  name={\csfmt{Renew\-Document\-Com\-mand}},
  user1={\margm{cs}\margm{arg specs}\margm{code}},
  description={redefines a new robust command (only partially
implemented by \TeX\ Parser Library)},
  note={\LaTeX3 command\texparserdefnote},
  category={command}
}

@command{ProvideDocumentCommand,
  name={\csfmt{Provide\-Document\-Com\-mand}},
  user1={\margm{cs}\margm{arg specs}\margm{code}},
  description={provides a robust command, if not already defined (only partially
implemented by \TeX\ Parser Library)},
  note={\LaTeX3 command\texparserdefnote},
  category={command}
}

@command{DeclareDocumentCommand,
  name={\csfmt{Declare\-Document\-Com\-mand}},
  user1={\margm{cs}\margm{arg specs}\margm{code}},
  description={defines a robust command, regardless of whether or not 
   it has already been defined (only partially
implemented by \TeX\ Parser Library)},
  note={\LaTeX3 command\texparserdefnote},
  category={command}
}

@command{section,
  name={\csfmt{section}},
  user1={\oargm{\idx{toc} title}\margm{title}},
  description={section heading},
  note={most classes that have a concept of document sections},
  category={command}
}

@command{section*,
  name={\csfmt{section*}},
  user1={\margm{title}},
  description={unnumbered section heading},
  note={most classes that have a concept of document sections},
  category={command}
}

@command{chapter,
  name={\csfmt{chapter}},
  user1={\oargm{\idx{toc} title}\margm{title}},
  description={chapter heading},
  note={book or report classes},
  category={command}
}

@command{chapter*,
  name={\csfmt{chapter*}},
  user1={\margm{title}},
  description={unnumbered chapter heading},
  note={book or report classes},
  category={command}
}

@command{caption,
  name={\csfmt{caption}},
  user1={\oargm{list title}\margm{title}},
  description={caption title},
  note={kernel command},
  category={command}
}

@command{boldsymbol,
  name={\csfmt{boldsymbol}},
  user1={\margm{symbol}},
  description={renders given maths symbol in bold if supported by
    the current font},
  note={\styfmt{amsmath}},
  category={command}
}

@command{mathcal,
  name={\csfmt{mathcal}},
  user1={\margm{character}},
  description={renders the given (\idx!{uppercase}) maths character in a calligraphic font},
  note={kernel command (maths mode)},
  category={command}
}

@glscommand{ifglsentryexists,
  name={\csfmt{ifglsentryexists}},
  user1={\margm{label}\margm{true}\margm{false}},
  description={tests if the entry given by \meta{label} exists},
  topics={conditional,entryrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsdefaulttype,
  name={\csfmt{gls\-default\-type}},
  user1={},
  description={the default glossary type},
  topics={glossrefs},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glssymbolsgroupname,
  name={\csfmt{gls\-symbols\-group\-name}},
  user1={},
  description={language-sensitive name used for the symbols group and 
   also used for the title of the glossary created with the \styopt{symbols} 
   package option},
  topics={fixedtextcommands,glossarystylecommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsnumbersgroupname,
  name={\csfmt{gls\-numbers\-group\-name}},
  user1={},
  description={language-sensitive name used for the numbers group 
   and also used for the title of the glossary created with the 
   \styopt{numbers} package option},
  topics={fixedtextcommands,glossarystylecommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{printunsrtglossary,
  name={\csfmt{print\-unsrt\-glos\-sary}},
  user1={\oargm{options}},
  description={display a glossary by iterating over all entries 
   associated with that glossary in the order in which they were
   defined (which, with \bibgls, should correspond to the
   order obtained from the sort settings given in the
   \idx{resourceset} options)},
  topics={glossrefs,loop},
  note={\styfmt{glossaries-extra} v1.08+},
  category={command}
}

@glscommand{printunsrtinnerglossary,
  name={\csfmt{print\-unsrt\-inner\-glos\-sary}},
  user1={\oargm{options}\margm{pre code}\margm{post code}},
  description={similar to \cs{printunsrtglossary} but only contains
  the code that would typically be placed inside the \env{theglossary}
  environment. This command should either be placed inside the
  \env{printunsrtglossarywrap} environment or inside the handler macro
  used by \cs{printunsrtglossary}. This command is unsuitable for
  certain glossary styles, particularly tabular-like styles},
  topics={glossrefs,loop},
  note={\styfmt{glossaries-extra} v1.44+},
  category={command}
}

@glscommand{printunsrtglossary*,
  name={\csfmt{print\-unsrt\-glos\-sary*}},
  user1={\oargm{options}\margm{code}},
  description={as \cs{printunsrtglossary} but performs
  \meta{code} first (scoped to localise any assignments within
  \meta{code})},
  topics={glossrefs,loop},
  note={\styfmt{glossaries-extra} v1.12+},
  category={command}
}

@glscommand{printunsrtglossaryhandler,
  name={\csfmt{print\-unsrt\-glos\-sary\-handler}},
  user1={\margm{label}},
  description={used by \cs{printunsrtglossary} and
   \cs{printunsrtinnerglossary} to handler each entry within the
  loop. By default this simply does \cs{glsxtrunsrtdo}},
  topics={glossrefs,loop},
  note={\styfmt{glossaries-extra} v1.12+},
  category={command}
}

@glscommand{glsxtrunsrtdo,
  name={\csfmt{gls\-xtr\-unsrt\-do}},
  user1={\margm{label}},
  description={displays the entry given by \meta{label} using
   \cs{glossentry} or \cs{subglossentry} depending on the entry's 
   hierarchical level (taking \printglossopt{leveloffset} into
   account)},
  topics={glossrefs,loop},
  note={\styfmt{glossaries-extra} v1.12+},
  category={command}
}

@glscommand{printunsrtglossaries,
  name={\csfmt{print\-unsrt\-glos\-saries}},
  user1={},
  description={iterates over all non-ignored defined glossaries
   and performs \cs{printunsrtglossary} for each one},
  topics={glossrefs,loop},
  note={\styfmt{glossaries-extra} v1.08+},
  category={command}
}

@glscommand{printunsrtglossaryentryprocesshook,
  name={\csfmt{print\-unsrt\-glos\-sary\-entry\-process\-hook}},
  user1={\margm{label}},
  description={performed at each iteration of the internal loop used
by \cs{printunsrtglossary}},
  topics={glossrefs,loop,hooks},
  note={\styfmt{glossaries-extra} v1.21+},
  category={command}
}

@glscommand{printunsrtglossaryskipentry,
  name={\csfmt{print\-unsrt\-glos\-sary\-skip\-entry}},
  description={only allowed within
   \cs{printunsrtglossaryentryprocesshook} this command 
   indicates that the current entry should be skipped},
  topics={glossrefs,loop,hooks},
  note={\styfmt{glossaries-extra} v1.21+},
  category={command}
}

@glscommand{printunsrtglossarypredoglossary,
  name={\csfmt{print\-unsrt\-glos\-sary\-pre\-do\-glos\-sary}},
  description={hook performed by \cs{printunsrtglossary}},
  topics={glossrefs,hooks},
  note={\styfmt{glossaries-extra} v1.21+},
  category={command}
}

@glscommand{glscategory,
  name={\csfmt{gls\-cat\-e\-gory}},
  user1={\margm{label}},
  description={expands to the value of the \field{category} field
for the entry identified by \meta{label} or nothing if the entry
hasn't been defined},
  topics={fieldrefcommands,catattrcommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glsifcategory,
  name={\csfmt{gls\-if\-cat\-e\-gory}},
  user1={\margm{label}\margm{category}\margm{true}\margm{false}},
  description={does \meta{true} if the \field{category} field for
   the entry given by \meta{label} is \meta{category}},
  topics={conditional,fieldrefcommands,catattrcommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glsxtriflabelinlist,
  name={\csfmt{gls\-xtr\-if\-label\-in\-list}},
  user1={\margm{label}\margm{list}\margm{true}\margm{false}},
  description={tests if the \meta{label} is contained
   in the comma-separated \meta{list}, where both \meta{label}
   and \meta{list} are fully expanded before testing. This test
   is designed for \emph{labels} that are fully expandable},
  topics={conditional,listcommands},
  note={\styfmt{glossaries-extra} v1.21+},
  category={command}
}

@printglossoption{printgloss.type,
  parent = {printunsrtglossary},
  name = {\csoptfmt{type}},
  user1 = {\margm{glossary-label}},
  description={identifies the glossary list (\cs{glsdefaulttype}, if
   omitted)},
  category={commandoption},
}

@printglossoption{printgloss.style,
  parent = {printunsrtglossary},
  name = {\csoptfmt{style}},
  user1 = {\margm{style-name}},
  description={use the glossary style identified by \meta{style-name} 
   (overrides current style setting)},
  category={commandoption},
}

@printglossoption{printgloss.entrycounter,
  parent = {printunsrtglossary},
  name = {\csoptfmt{entrycounter}},
  user1 = {\margm{boolean}},
  description = {locally enable or disable top-level enumeration 
   (overrides \styopt{entrycounter} package option)},
  category={commandoption},
}

@printglossoption{printgloss.subentrycounter,
  parent = {printunsrtglossary},
  name = {\csoptfmt{subentrycounter}},
  user1 = {\margm{boolean}},
  description = {locally enable or disable level~1 enumeration 
   (overrides \styopt{subentrycounter} package option)},
  category={commandoption},
}

@printglossoption{printgloss.nopostdot,
  parent = {printunsrtglossary},
  name = {\csoptfmt{nopostdot}},
  user1 = {\margm{boolean}},
  description = {locally omit the post-description punctuation (overrides
   \styopt{nopostdot} and related package options)},
  category={commandoption},
}

@printglossoption{printgloss.numberedsection,
  parent = {printunsrtglossary},
  name = {\csoptfmt{numbered\-section}},
  user1={\margm{value}},
  description={locally change whether or not to use a numbered
   sectioning command (overrides \styopt{numberedsection} package
   option)},
  category={commandoption},
}

@printglossoption{printgloss.title,
  parent = {printunsrtglossary},
  name = {\csoptfmt{title}},
  user1={\margm{text}},
  description = {locally sets the title for this glossary},
  category={commandoption},
}

@printglossoption{printgloss.toctitle,
  parent = {printunsrtglossary},
  name = {\csoptfmt{toctitle}},
  description = {locally sets the \idx{toc} title for this glossary},
  user1={\margm{text}},
  category={commandoption},
}

@printglossoption{printgloss.target,
  parent = {printunsrtglossary},
  name = {\csoptfmt{target}},
  user1={\margm{boolean}},
  description = {locally enables or disables the hypertargets for
   each item},
  category={commandoption},
}

@printglossoption{printgloss.targetnameprefix,
  parent = {printunsrtglossary},
  name = {\csoptfmt{target\-name\-prefix}},
  user1={\margm{label}},
  description = {locally assign a prefix for the hypertargets
   assigned to each item (if \printglossopt[true]{target})
   to avoid duplicate target names},
  category={commandoption},
}

@printglossoption{printgloss.prefix,
  parent = {printunsrtglossary},
  name = {\csoptfmt{prefix}},
  user1 = {\margm{label}},
  description = {locally redefine \cs{glolinkprefix} for the item
  hypertargets and for any entry reference or cross-reference hyperlinks},
  category={commandoption},
}

@printglossoption{printgloss.nonumberlist,
  parent = {printunsrtglossary},
  name = {\csoptfmt{no\-number\-list}},
  user1 = {\margm{boolean}},
  description={locally change whether or not to display the
   \idxpl{locationlist} (overrides \styopt{nonumberlist} package
   option)},
  category={commandoption},
}

@printglossoption{printgloss.nogroupskip,
  parent = {printunsrtglossary},
  name = {\csoptfmt{no\-group\-skip}},
  user1 = {\margm{boolean}},
  description={locally change whether or not to separate groups
  with a vertical space if the glossary style that support this option 
   (overrides \styopt{nogroupskip} package option)},
  category={commandoption},
}

@printglossoption{printgloss.label,
  parent = {printunsrtglossary},
  name = {\csoptfmt{label}},
  user1 = {\margm{label}},
  description = {creates a label for this glossary by locally
   using \code{\ics{glsxtrsetglossarylabel}\margm{label}}},
  category={commandoption},
}

@printglossoption{printgloss.groups,
  parent = {printunsrtglossary},
  name = {\csoptfmt{groups}},
  user1 = {\margm{boolean}},
  description = {controls whether or not \cs{printunsrtglossary}
   (or \cs{printunsrtinnerglossary})
   should insert letter group markup. There's no visible difference
   for glossary styles that don't support letter groups (and
   \styopt{nogroupskip} is in effect) or if there's no group
   information (for example, \longarg{no-group} has been used)},
  category={commandoption},
}

@printglossoption{printgloss.leveloffset,
  parent = {printunsrtglossary},
  name = {\csoptfmt{level\-offset}},
  user1 = {\margm{n}},
  description = {makes the glossary style act as though each entry's
   hierarchical level is \meta{offset} more than it actually is
   where \meta{offset} is either \meta{n} or is locally incremented
   by \meta{n} if \meta{n} starts with \code{++}},
  category={commandoption},
}

@glscommand{glsxtrsetglossarylabel,
  name={\csfmt{gls\-xtr\-set\-glos\-sary\-label}},
  user1={\margm{label}},
  description={sets the label for subsequent glossaries
   (should be scoped or updated per glossary to prevent
   duplicate labels) and defines \ics{@currentlabelname} to the
   glossary's \idx{toc} title. This is an alternative to the
   \styopt[nameref]{numberedsection} package option or
   \printglossopt{label} \ics{printunsrtglossary} option},
  topics={crossrefcommands},
  note={\styfmt{glossaries-extra} v1.39+},
  category={command}
}

@glscommand{cs.makeglossaries,
  name={\csfmt{make\-glos\-saries}},
  user1={},
  description={opens associated glossary files to be processed
   by \idx{makeindex} or \idx{xindy}},
  topics={indexing},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{makenoidxglossaries,
  name={\csfmt{make\-noidx\-glos\-saries}},
  user1={},
  description={indicates that \TeX\ should be used to sort and
   collate the glossary information instead of using an
   external application; this command should not be used
   with \bibgls},
  topics={indexing},
  note={\styfmt{glossaries} v4.04+},
  category={command}
}

@glscommand{printglossary,
  name={\csfmt{print\-glos\-sary}},
  user1={\oargm{options}},
  description={inputs file created by \idx{makeindex} or \idx{xindy}},
  topics={glossrefs},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{printglossaries,
  name={\csfmt{print\-glos\-saries}},
  user1={},
  description={iterates over all non-ignored defined glossaries
   and performs \cs{printglossary} for each one},
  topics={glossrefs,loop},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{printnoidxglossary,
  name={\csfmt{print\-noidx\-glos\-sary}},
  user1={\oargm{options}},
  description={uses \TeX\ to sort, collate and list the glossary},
  topics={glossrefs},
  note={\styfmt{glossaries} v4.04+},
  category={command}
}

@glscommand{printnoidxglossaries,
  name={\csfmt{print\-noidx\-glos\-saries}},
  user1={},
  description={iterates over all non-ignored defined glossaries
   and performs \cs{printnoidxglossary} for each one},
  topics={glossrefs,loop},
  note={\styfmt{glossaries} v4.04+},
  category={command}
}

@command{makefirstuc,
  name={\csfmt{make\-first\-uc}},
  user1={\margm{text}},
  description={converts the first letter of \meta{text} to \idx{uppercase}},
  note={\styfmt{mfirstuc}\texparserdefnote},
  category={command}
}

@command{xmakefirstuc,
  name={\csfmt{xmake\-first\-uc}},
  user1={\margm{text}},
  description={applies \cs{makefirstuc} with one level expansion
   of the first token of \meta{text}},
  note={\styfmt{mfirstuc}\texparserdefnote\ v1.01+},
  category={command}
}

@glscommand{ac,
  name={\csfmt{ac}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={equivalent to \cs{gls}},
  topics={entryrefcommands,linkcommands,indexing,abbreviationcommands,shortcutcommands},
  note={\styfmt{glossaries-extra} \styopt{shortcuts}},
  category={command}
}

@glscommand{ab,
  name={\csfmt{ab}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={equivalent to \cs{gls}},
  topics={entryrefcommands,linkcommands,indexing,abbreviationcommands,shortcutcommands},
  note={\styfmt{glossaries-extra} 
  \styopt[abbreviations]{shortcuts}},
  category={command}
}

@glscommand{glsxtrp,
  name={\csfmt{glsxtrp}},
  user1={\margm{field}\margm{label}},
  description={displays the given \meta{field} value for the entry given by 
  \meta{label} (no hyperlinks, except in the glossary, and no indexing 
  by default, but includes formatting, if appropriate)},
  topics={fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.07+},
  category={command}
}

@glscommand{glsps,
  name={\csfmt{glsps}},
  user1={\margm{label}},
  description={shortcut for \code{\cs{glsxtrp}\marg{short}\margm{label}}},
  topics={fieldrefcommands,shortcutcommands},
  note={\styfmt{glossaries-extra} v1.07+},
  category={command}
}

@glscommand{glspt,
  name={\csfmt{glspt}},
  user1={\margm{label}},
  description={shortcut for \code{\cs{glsxtrp}\marg{text}\margm{label}}},
  topics={fieldrefcommands,shortcutcommands},
  note={\styfmt{glossaries-extra} v1.07+},
  category={command}
}

@glscommand{glsxtrsetpopts,
  name={\csfmt{glsxtrsetpopts}},
  user1={\margm{options}},
  description={sets the default options for \cs{glsxtrp}},
  topics={assigncommands},
  note={\styfmt{glossaries-extra} v1.07+},
  category={command}
}

@glscommand{glossxtrsetpopts,
  name={\csfmt{glossxtrsetpopts}},
  description={glossary hook that uses \cs{glsxtrsetpopts} 
   to enable hyperlinks by default for \cs{glsxtrp}},
  topics={assigncommands,hooks},
  note={\styfmt{glossaries-extra} v1.07+},
  category={command}
}

@glscommand{GlsXtrFmtField,
  name={\csfmt{Gls\-Xtr\-Fmt\-Field}},
  user1={},
  description={expands to the internal label of the field used
   to store the control sequence name for use with \csref{glsxtrfmt}},
  topics={fieldrefcommands,formattingcommands},
  note={\styfmt{glossaries-extra} v1.12+},
  category={command}
}

@glscommand{glsxtrusesee,
  name={\csfmt{gls\-xtr\-use\-see}},
  user1={\margm{label}},
  description={applies \cs{glsseeformat} to the entry's
   \field{see} field if not empty},
  topics={glossarystylecommands,crossrefcommands,loclistcommands,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.06+},
  category={command}
}

@glscommand{glsxtruseseealso,
  name={\csfmt{gls\-xtr\-use\-seealso}},
  user1={\margm{label}},
  description={applies \cs{glsseeformat} to the entry's
   \field{seealso} field if not empty},
  topics={glossarystylecommands,crossrefcommands,loclistcommands,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.16+},
  category={command}
}

@glscommand{glsseelist,
  name={\csfmt{gls\-see\-list}},
  user1={\margm{label list}},
  description={iterates through the comma-separated list of entry
   labels to produce a formatted list, where each
   item in the list is encapsulated with \cs{glsseeitem} and
   each element is separated with \cs{glsseesep} or
   \cs{glsseelastsep}. This command was provided for
   the use of \cs{glsseeformat} to format cross-reference lists 
   but may be used for any list of entry labels. This command is
   redefined by \styfmt{glossaries-extra} (v1.47+) to additionally
   use \cs{glsseefirstitem} and \cs{glsseelastoxfordsep}},
  topics={formattingcommands,crossrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsxtrsetaliasnoindex,
  name={\csfmt{gls\-xtr\-set\-alias\-noindex}},
  user1={},
  description={hooks into the alias \glsopt{noindex} setting},
  topics={hooks,crossrefcommands},
  note={\styfmt{glossaries-extra} v1.12+},
  category={command}
}

@glscommand{glsxtruseseealsoformat,
  name={\csfmt{gls\-xtr\-use\-seealso\-format}},
  user1={\margm{xr list}},
  description={used to format the entries whose labels are 
   given in \meta{xr list} as a list of \qt{see also}
cross-references},
  topics={glossarystylecommands,crossrefcommands,loclistcommands,formattingcommands},
  note={\styfmt{glossaries-extra} v1.16+},
  category={command}
}

@glscommand{glsxtrindexseealso,
  name={\csfmt{gls\-xtr\-index\-seealso}},
  user1={\margm{label}\margm{xr list}},
  description={indexes a \qt{see also} cross-reference},
  topics={indexing,crossrefcommands},
  note={\styfmt{glossaries-extra} v1.16+},
  category={command}
}

@glscommand{glssee,
  name={\csfmt{glssee}},
  user1={\oargm{tag}\margm{label}\margm{xr label list}},
  description={indexes a \qt{see} cross-reference},
  topics={indexing,crossrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsxtrseelist,
  name={\csfmt{gls\-xtr\-see\-list}},
  user1={\margm{xr label list}},
  description={formats the list of cross-reference labels, without
the initial \qt{see} tag},
  topics={glossarystylecommands,crossrefcommands,loclistcommands,formattingcommands},
  note={\styfmt{glossaries-extra} v1.16+},
  category={command}
}

@glscommand{setabbreviationstyle,
  name={\csfmt{setabbreviationstyle}},
  user1={\oargm{category}\margm{style-name}},
  description={sets the abbreviation style to \meta{style-name} for the
given \meta{category}, must be used before the abbreviation is
defined},
  topics={abbreviationcommands,assigncommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glshex,
  name={\csfmt{glshex}},
  user1={},
  description={expands to \cs{cs.string}\cs{uhex}},
  topics={charcommands,collationsubrules},
  note={\styfmt{glossaries-extra} v1.21+ (moved to
\styfmt{glossaries-extra-bib2gls} in v1.27)},
  category={command},
  seealso={GlsXtrResourceInitEscSequences}
}

@glscommand{glscapturedgroup,
  name={\csfmt{glscapturedgroup}},
  description={expands to \cs{cs.string}\idx{dollarchar}},
  topics={charcommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.31+},
  category={command}
}

@glscommand{glshashchar,
  name={\csfmt{glshashchar}},
  description={expands to a literal hash character \idx{hashchar}},
  topics={charcommands},
  note={\styfmt{glossaries-extra-bib2gls}\texparserdefnote\ v1.49+},
  category={command}
}

@glscommand{GlsXtrBibTeXEntryAliases,
  name={\csfmt{Gls\-Xtr\-Bib\-TeX\-Entry\-Aliases}},
  user1={},
  description={expands to the set of common entry aliases for
\atentry{bibtexentry}},
  topics={definingterms},
  note={\styfmt{glossaries-extra-bib2gls} v1.29+},
  category={command}
}

@glscommand{GlsXtrProvideBibTeXFields,
  name={\csfmt{Gls\-Xtr\-Provide\-Bib\-TeX\-Fields}},
  user1={},
  description={defines the standard \BibTeX\ fields using
   \cs{glsaddstoragekey}},
  topics={definingterms,fieldrefcommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.29+},
  category={command}
}

@glscommand{glsxtrprovidecommand,
  name={\csfmt{gls\-xtr\-provide\-command}},
  user1={\margm{cs}\oargm{n}\oargm{def}\margm{code}},
  description={behaves like \cs{providecommand} in the document but
   like \cs{renewcommand} in \bibgls},
  topics={providingcommands},
  note={\styfmt{glossaries-extra-bib2gls}\texparserdefnote\ v1.27+},
  category={command}
}

@glscommand{glsrenewcommand,
  name={\csfmt{gls\-re\-new\-command}},
  user1={\margm{cs}\oargm{n}\oargm{def}\margm{code}},
  description={behaves like \cs{renewcommand} but only generates a
warning rather than an error if the command isn't already defined},
  topics={providingcommands},
  note={\styfmt{glossaries-extra-bib2gls}\texparserdefnote\ v1.37+},
  category={command}
}

@glscommand{glsxtrresourceinit,
  name={\csfmt{gls\-xtr\-resource\-init}},
  user1={},
  description={provides code that locally redefines commands 
   during the protected write operation performed by 
   \csref{GlsXtrLoadResources}},
  topics={hooks},
  note={\styfmt{glossaries-extra} v1.21+},
  category={command},
  seealso={GlsXtrResourceInitEscSequences}
}

% QUARKS

@glscommand{GlsXtrResourceInitEscSequences,
  name={\csfmt{Gls\-Xtr\-Resource\-Init\-Esc\-Sequences}},
  user1={},
  description={locally redefines \idx{quark} commands, such as \cs{uhex} and
  \gls{NULL}, that shouldn't expand in
  resource options as they have special meanings for some options.
  May be added to the definition of \gls{glsxtrresourceinit} if
  required},
  topics={assigncommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.51+},
  category={command}
}

@mainglscommand{cs,
  name={\csfmt{cs}},
  user1={\margm{csname}},
  description={locally defined by \gls{GlsXtrResourceInitEscSequences} to
   expand to the literal string \csfmt{csname} when the resource
   options are written to the \ext{aux} file. This technically isn't
   a \bibgls\ \idx{quark}, although it's included in that category, 
   as it's not looked for by \bibgls},
  topics={quark},
  category={command}
}

@mainglscommand{NULL,
  name={\csfmt{NULL}},
  user1={},
  description={a \idx{quark} to denote a
  null value in \csopt{assign-fields} conditionals. This token needs
  to be protected from expansion in the argument of
  \gls{GlsXtrLoadResources}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{IN,
  name={\csfmt{IN}},
  user1={},
  description={a \idx{quark} to denote \qt{is a substring} conditional 
  in \csopt{assign-fields} conditionals. This token needs
  to be protected from expansion in the argument of
  \gls{GlsXtrLoadResources}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{NIN,
  name={\csfmt{NIN}},
  user1={},
  description={a \idx{quark} to denote \qt{is not a substring}
conditional in \csopt{assign-fields} conditionals. This token needs
  to be protected from expansion in the argument of
  \gls{GlsXtrLoadResources}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{PREFIXOF,
  name={\csfmt{PREFIX\-OF}},
  user1={},
  description={a \idx{quark} to denote \qt{is a prefix of} conditional 
  in \csopt{assign-fields} conditionals. This token needs
  to be protected from expansion in the argument of
  \gls{GlsXtrLoadResources}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{NOTPREFIXOF,
  name={\csfmt{NOT\-PREFIX\-OF}},
  user1={},
  description={a \idx{quark} to denote \qt{is not a prefix of} conditional 
  in \csopt{assign-fields} conditionals. This token needs
  to be protected from expansion in the argument of
  \gls{GlsXtrLoadResources}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{SUFFIXOF,
  name={\csfmt{SUFFIX\-OF}},
  user1={},
  description={a \idx{quark} to denote \qt{is a suffix of} conditional 
  in \csopt{assign-fields} conditionals. This token needs
  to be protected from expansion in the argument of
  \gls{GlsXtrLoadResources}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{NOTSUFFIXOF,
  name={\csfmt{NOT\-SUFFIX\-OF}},
  user1={},
  description={a \idx{quark} to denote \qt{is not a suffix of} conditional 
  in \csopt{assign-fields} conditionals. This token needs
  to be protected from expansion in the argument of
  \gls{GlsXtrLoadResources}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{LEN,
  name={\csfmt{LEN}},
  user1={\margm{element-list}},
  description={a \idx{quark} to denote the number of (detokenized) characters in
  a value in \csopt{assign-fields}. This token needs
  to be protected from expansion in the argument of
  \gls{GlsXtrLoadResources}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{CAT,
  name={\csfmt{CAT}},
  user1={\margm{element-list}},
  description={a \idx{quark} to denote a string concatenation 
  (see \sectionref{sec:optstringconcat})
  in the conditional parts of \csopt{assign-fields}. This token needs
  to be protected from expansion in the argument of
  \gls{GlsXtrLoadResources}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{MGP,
  name={\csfmt{MGP}},
  user1={\margm{group-ref}},
  description={a \idx{quark} to denote a reference to a group
   from a \gls{ext1.regular-expression} match. This token needs
  to be protected from expansion in the argument of
  \gls{GlsXtrLoadResources}. The \meta{group-ref} may be either an
  integer index or a textual name},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{CS,
  name={\csfmt{CS}},
  user1={\margm{element-list}},
  description={a \idx{quark} to denote a control sequence element in 
  \csopt{assign-fields}. This token needs
  to be protected from expansion in the argument of
  \gls{GlsXtrLoadResources}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{TRIM,
  name={\csfmt{TRIM}},
  user1={\margm{element-list}},
  description={a \idx{quark} to denote a trimmed element in 
  \csopt{assign-fields}. This token needs
  to be protected from expansion in the argument of
  \gls{GlsXtrLoadResources}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{INTERPRET,
  name={\csfmt{INTER\-PRET}},
  user1={\margm{element-list}},
  description={a \idx{quark} to denote an interpreted element in 
  \csopt{assign-fields}. This token needs
  to be protected from expansion in the argument of
  \gls{GlsXtrLoadResources}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{INTERPRETNOREPL,
  name={\csfmt{INTER\-PRET\-NO\-REPL}},
  user1={\margm{element-list}},
  description={as \gls{INTERPRET} but doesn't replace \TeX\ special characters},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{REPLACESPCHARS,
  name={\csfmt{RE\-PLACE\-SP\-CHARS}},
  user1={\margm{element-list}},
  description={a \idx{quark} that replaces \TeX\ special characters with commands like
  \gls{glsbackslash} which expand to the literal character},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{LABELIFY,
  name={\csfmt{LABEL\-IFY}},
  user1={\margm{element-list}},
  description={a \idx{quark} to denote a label element in 
  \csopt{assign-fields}. This token needs
  to be protected from expansion in the argument of
  \gls{GlsXtrLoadResources}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{LABELIFYLIST,
  name={\csfmt{LABEL\-IFY\-LIST}},
  user1={\margm{element-list}},
  description={a \idx{quark} to denote a label-list element in 
  \csopt{assign-fields}. This token needs
  to be protected from expansion in the argument of
  \gls{GlsXtrLoadResources}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{LC,
  name={\csfmt{LC}},
  user1={\margm{element-list}},
  description={a \idx{quark} to denote a \idx{lowercase} change in 
  \csopt{assign-fields} syntax. This token needs
  to be protected from expansion in the argument of
  \gls{GlsXtrLoadResources}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{UC,
  name={\csfmt{UC}},
  user1={\margm{element-list}},
  description={a \idx{quark} to denote an \idx{uppercase} change in 
  \csopt{assign-fields} syntax. This token needs
  to be protected from expansion in the argument of
  \gls{GlsXtrLoadResources}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{FIRSTLC,
  name={\csfmt{FIRST\-LC}},
  user1={\margm{element-list}},
  description={a \idx{quark} to denote a first-letter \idx{lowercase}
   change in \csopt{assign-fields} syntax. This token needs
  to be protected from expansion in the argument of
  \gls{GlsXtrLoadResources}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{FIRSTUC,
  name={\csfmt{FIRST\-UC}},
  user1={\margm{element-list}},
  description={a \idx{quark} to denote a first-letter \idx{uppercase} 
  change in \csopt{assign-fields} syntax. This token needs
  to be protected from expansion in the argument of
  \gls{GlsXtrLoadResources}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{TITLE,
  name={\csfmt{TITLE}},
  user1={\margm{element-list}},
  description={a \idx{quark} to denote a \idx{titlecase} change in 
  \csopt{assign-fields} syntax. This token needs
  to be protected from expansion in the argument of
  \gls{GlsXtrLoadResources}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{NOCHANGE,
  name={\csfmt{NO\-CHANGE}},
  user1={\margm{element-list}},
  description={a \idx{quark} to denote no \idx{case-change} in 
  \csopt{assign-fields} syntax. This token needs
  to be protected from expansion in the argument of
  \gls{GlsXtrLoadResources}. It's not defined by
  \gls{GlsXtrResourceInitEscSequences}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{uhex,
  name={\csfmt{u}},
  user1={\meta{hex}},
  description={a \idx{quark} that identifies a character by its hexadecimal code in the
    values of some (but not all) resource options},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={hex code quark}
}

@command{n,
  name={\csfmt{n}},
  user1={},
  description={indicates a newline character in \idxpl{regex}},
  category={command},
  annote={newline}
}

@mainglscommand{quark.dot,
  name={\csfmt{.}},
  user1={},
  description={a \idx{quark} that identifies a literal dot (\idx{periodchar}) in a \gls{ext1.regular-expression}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={\idx{regexp} quark}
}

@mainglscommand{quark.backslash,
  name={\csfmt{\glsbackslash}},
  user1={},
  description={a \idx{quark} that identifies a literal backslash \idx{backslashchar} in a \gls{ext1.regular-expression}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={\idx{regexp} quark}
}

@mainglscommand{quark.slash,
  name={\csfmt{/}},
  user1={},
  description={a \idx{quark} that identifies a literal slash \idx{slashchar} in a \gls{ext1.regular-expression}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={\idx{regexp} quark}
}

@mainglscommand{quark.pipe,
  name={\csfmt{|}},
  user1={},
  description={a \idx{quark} that identifies a literal pipe character \idx{pipechar} in a \gls{ext1.regular-expression}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={\idx{regexp} quark}
}

@mainglscommand{quark.amp,
  name={\csfmt{\&}},
  user1={},
  description={a \idx{quark} that identifies a literal ampersand \idx{ampchar} in a \gls{ext1.regular-expression}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={\idx{regexp} quark}
}

@mainglscommand{quark.plus,
  name={\csfmt{+}},
  user1={},
  description={a \idx{quark} that identifies a literal plus \idx{pluschar} in a \gls{ext1.regular-expression}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={\idx{regexp} quark}
}

@mainglscommand{quark.lt,
  name={\csfmt{<}},
  user1={},
  description={a \idx{quark} that identifies a literal less than \idx{ltchar} in a \gls{ext1.regular-expression}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={\idx{regexp} quark}
}

@mainglscommand{quark.gt,
  name={\csfmt{>}},
  user1={},
  description={a \idx{quark} that identifies a literal greater than \idx{gtchar} in a \gls{ext1.regular-expression}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={\idx{regexp} quark}
}

@mainglscommand{quark.star,
  name={\csfmt{*}},
  user1={},
  description={a \idx{quark} that identifies a literal star \idx{starchar} in a \gls{ext1.regular-expression}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={\idx{regexp} quark}
}

@mainglscommand{quark.dollar,
  name={\csfmt{\$}},
  user1={},
  description={a \idx{quark} that identifies a literal dollar \idx{dollarchar} in a \gls{ext1.regular-expression}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={\idx{regexp} quark}
}

@mainglscommand{quark.circum,
  name={\csfmt{\char`\^}},
  user1={},
  description={a \idx{quark} that identifies a literal circumflex \idx{circumchar} in a \gls{ext1.regular-expression}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={\idx{regexp} quark}
}

@mainglscommand{quark.tilde,
  name={\csfmt{\char`\~}},
  user1={},
  description={a \idx{quark} that identifies a literal tilde \idx{tildechar} in a \gls{ext1.regular-expression}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={\idx{regexp} quark}
}

@mainglscommand{quark.openparen,
  name={\csfmt{\rangestartmark}},
  user1={},
  description={a \idx{quark} that identifies a literal open parenthesis \idx{openparenchar} in a \gls{ext1.regular-expression}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={\idx{regexp} quark}
}

@mainglscommand{quark.closeparen,
  name={\csfmt{\rangeendmark}},
  user1={},
  description={a \idx{quark} that identifies a literal close parenthesis \idx{closeparenchar} in a \gls{ext1.regular-expression}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={\idx{regexp} quark}
}

@mainglscommand{quark.opensq,
  name={\csfmt{[}},
  user1={},
  description={a \idx{quark} that identifies a literal open square bracket \idx{opensqchar} in a \gls{ext1.regular-expression}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={\idx{regexp} quark}
}

@mainglscommand{quark.closesq,
  name={\csfmt{]}},
  user1={},
  description={a \idx{quark} that identifies a literal close square bracket \idx{closesqchar} in a \gls{ext1.regular-expression}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={\idx{regexp} quark}
}

@mainglscommand{quark.doublequote,
  name={\csfmt{"}},
  user1={},
  description={a \idx{quark} that identifies a literal double-quote \idx{doublequotechar}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={quark}
}

@mainglscommand{quark.hyphen,
  name={\csfmt{-}},
  user1={},
  description={a \idx{quark} that identifies a literal hyphen \idx{hyphenchar} in a \gls{ext1.regular-expression}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={\idx{regexp} quark}
}

@mainglscommand{quark.question,
  name={\csfmt{?}},
  user1={},
  description={a \idx{quark} that identifies a literal question mark \idx{questionchar} in a \gls{ext1.regular-expression}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={\idx{regexp} quark}
}

@mainglscommand{quark.hash,
  name={\csfmt{\#}},
  user1={},
  description={a \idx{quark} that identifies a literal hash \idx{hashchar} in a \gls{ext1.regular-expression}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={\idx{regexp} quark}
}

@mainglscommand{quark.colon,
  name={\csfmt{:}},
  user1={},
  description={a \idx{quark} that identifies a literal colon
  \idx{colonchar} in a \gls{ext1.regular-expression}},
  note={\bibgls\ \idx{quark}},
  topics={quark},
  category={command},
  annote={\idx{regexp} quark}
}

@mainglscommand{GlsXtrDefaultResourceOptions,
  name={\csfmt{Gls\-Xtr\-Default\-Resource\-Options}},
  user1={},
  description={provides default options for 
   \csref{GlsXtrLoadResources}},
  topics={hooks},
  note={\styfmt{glossaries-extra} v1.40+},
  category={command}
}

@glscommand{glsxtrgroupfield,
  name={\csfmt{gls\-xtr\-group\-field}},
  user1={},
  description={expands to the field label used to store the
   entry group labels},
  topics={fieldrefcommands,groupcommands},
  note={\styfmt{glossaries-extra} v1.21+},
  category={command}
}

@glscommand{glolinkprefix,
  name={\csfmt{glo\-link\-prefix}},
  user1={},
  description={target name prefix used in entry hyperlinks},
  topics={linkcommands,hooks},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{setglossarypreamble,
  name={\csfmt{set\-glossary\-preamble}},
  user1={\oargm{type}\margm{code}},
  description={sets \meta{code} as the preamble for the given
glossary (or the default of \meta{type} is omitted)},
  topics={glossrefs,hooks,glossarystylecommands},
  note={\styfmt{glossaries}},
  seealso={glossarypreamble},
  category={command}
}

@glscommand{apptoglossarypreamble,
  name={\csfmt{app\-to\-glossary\-preamble}},
  user1={\oargm{type}\margm{code}},
  description={appends \meta{code} to the preamble for the given
glossary (or the default of \meta{type} is omitted)},
  topics={glossrefs,hooks,glossarystylecommands},
  note={\styfmt{glossaries-extra}},
  seealso={glossarypreamble},
  category={command}
}

@glscommand{glossarypreamble,
  name={\csfmt{glossary\-preamble}},
  description={the preamble for all glossaries except 
  those that have the preamble explicitly set with
  \cs{apptoglossarypreamble}},
  topics={glossrefs,hooks,glossarystylecommands},
  note={\styfmt{glossaries}},
  seealso={apptoglossarypreamble},
  category={command}
}

@glscommand{glossarypostamble,
  name={\csfmt{glossary\-post\-amble}},
  description={the postamble that's placed after each glossary},
  topics={glossrefs,hooks,glossarystylecommands},
  note={\styfmt{glossaries}},
  seealso={apptoglossarypreamble},
  category={command}
}

@glscommand{glsbackslash,
  name={\csfmt{glsbackslash}},
  user1={},
  description={expands to a literal backslash \idx{backslashchar} 
   character},
  topics={charcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsopenbrace,
  name={\csfmt{glsopenbrace}},
  user1={},
  description={expands to a literal open brace \idx{openbracechar} 
   character},
  topics={charcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsclosebrace,
  name={\csfmt{glsclosebrace}},
  user1={},
  description={expands to a literal close brace \idx{closebracechar} 
   character},
  topics={charcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glspercentchar,
  name={\csfmt{glspercentchar}},
  user1={},
  description={expands to a literal percent character \idx{percentchar} 
   character},
  topics={charcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{glsquote,
  name={\csfmt{glsquote}},
  user1={\margm{text}},
  description={encapsulates \meta{text} with literal straight
   double-quotes \texttt{\glsquote{\meta{text}}}},
  topics={charcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glstildechar,
  name={\csfmt{glstildechar}},
  user1={},
  description={expands to a literal tilde \texttt{\glstildechar} character},
  topics={charcommands},
  note={\styfmt{glossaries}\texparserdefnote},
  category={command}
}

@glscommand{descriptionname,
  name={\csfmt{description\-name}},
  user1={},
  description={language-sensitive name used for the description 
   header for some glossary styles},
  topics={fixedtextcommands,glossarystylecommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{pagelistname,
  name={\csfmt{page\-list\-name}},
  user1={},
  description={language-sensitive name used for the location list 
   header for some glossary styles},
  topics={fixedtextcommands,glossarystylecommands,loclistcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@command{seealsoname,
  name={\csfmt{see\-also\-name}},
  user1={},
  description={language sensitive \qt{see also} text (as from v1.42
   this will be defined to \cs{alsoname} if that command exists)},
  topics={fixedtextcommands,glossarystylecommands,loclistcommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@command{alsoname,
  name={\csfmt{also\-name}},
  user1={},
  description={language sensitive \qt{see also} text},
  topics={fixedtextcommands},
  note={language packages},
  category={command}
}

@glscommand{glossaryname,
  name={\csfmt{glossary\-name}},
  user1={},
  description={language-sensitive name used for the title of the default
   \code{main} glossary},
  topics={fixedtextcommands,glossarystylecommands},
  note={\styfmt{glossaries} or language packages},
  category={command}
}

@glscommand{indexname,
  name={\csfmt{index\-name}},
  user1={},
  description={language-sensitive name used for the title of the 
  glossary created with the \styopt{index} package option},
  topics={fixedtextcommands,glossarystylecommands},
  note={\styfmt{glossaries} or language packages},
  category={command}
}

@glscommand{acronymname,
  name={\csfmt{acronym\-name}},
  user1={},
  description={language-sensitive name used for the title of the
   glossary created with the \styopt{acronym} or \styopt{acronyms} 
   package option},
  topics={fixedtextcommands,glossarystylecommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{abbreviationname,
  name={\csfmt{ab\-bre\-vi\-a\-tion\-name}},
  user1={},
  description={language-sensitive name used for the title of the
   glossary created with the \styopt{abbreviations} package option},
  topics={fixedtextcommands,glossarystylecommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{GlsXtrForeignText,
  name={\csfmt{Gls\-Xtr\-Foreign\-Text}},
  user1={\margm{label}\margm{text}},
  description={encapsulates \meta{text} in \csfmt{foreignlanguage}
  where the language label is obtained from the locale tag
  given in the field identified by \cs{GlsXtrForeignTextField}},
  topics={formattingcommands,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.32+},
  category={command}
}

@glscommand{GlsXtrForeignTextField,
  name={\csfmt{Gls\-Xtr\-Foreign\-Text\-Field}},
  description={used by \cs{GlsXtrForeignText} to identify
   the field containing the locale tag},
  topics={fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.32+},
  category={command}
}

@glscommand{glsxtrparen,
  name={\csfmt{gls\-xtr\-paren}},
  user1={\margm{text}},
  description={used to markup parenthetical material, such as
   in \cs{glsxtrpostlinkAddDescOnFirstUse} or in the
  \abbrstyle{long-short} and \abbrstyle{short-long} abbreviation
  styles},
  topics={formattingcommands},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@glscommand{glsxtrpostdescabbreviation,
  name={\csfmt{gls\-xtr\-post\-desc\-abbreviation}},
  user1={},
  description={hook used after the description is displayed in the
   glossary for entries that have the
   \field{category} set to \code{abbreviation}},
  topics={hooks,abbreviationcommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glsxtrpostdescsymbol,
  name={\csfmt{gls\-xtr\-post\-desc\-symbol}},
  user1={},
  description={hook used after the description is displayed in the
   glossary for entries that have the
   \field{category} set to \code{symbol}},
  topics={hooks},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glsxtrpostdescgeneral,
  name={\csfmt{gls\-xtr\-post\-desc\-general}},
  user1={},
  description={hook used after the description is displayed in the
   glossary for entries that have the
   \field{category} set to \code{general}},
  topics={hooks},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glsxtrpostdesccategory,
  name={\csfmt{gls\-xtr\-post\-desc\-\meta{category}}},
  user1={},
  description={hook used after the description is displayed in the
   glossary for entries that have the
   \field{category} set to \meta{category}. Common category hooks 
   such as \cs{glsxtrpostdescgeneral} are provided by
   \styfmt{glossaries-extra}.  If required,
   this hook can be defined with \cs{glsdefpostdesc}},
  topics={hooks,glossarystylecommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glsxtrpostnamecategory,
  name={\csfmt{gls\-xtr\-post\-name\-\meta{category}}},
  user1={},
  description={hook used by \cs{glossentryname} for entries 
   that have the \field{category} set to \meta{category}. 
   If required, this hook can be defined with \cs{glsdefpostname}},
  topics={hooks,glossarystylecommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glsxtrpostlinkcategory,
  name={\csfmt{gls\-xtr\-post\-link\-\meta{category}}},
  user1={},
  description={hook used after commands like \cs{gls} 
   for entries that have the
   \field{category} set to \meta{category}. If required,
   this hook can be defined with \cs{glsdefpostlink}},
  topics={hooks},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{GlsXtrFmtDefaultOptions,
  name={\csfmt{Gls\-Xtr\-Fmt\-Default\-Options}},
  user1={},
  description={the default options used by \csref{glsxtrfmt}},
  topics={formattingcommands,indexing},
  note={\styfmt{glossaries-extra} v1.12+},
  category={command}
}

@glscommand{glslink,
  name={\csfmt{glslink}},
  user1={\oargm{options}\margm{label}\margm{text}},
  description={links to the entry's definition in the glossary with
   the given link text without altering the first use flag},
  topics={entryrefcommands,linkcommands},
  note={\styfmt{glossaries}},
  seealso={glsdisp},
  category={command}
}

@glscommand{glsdisp,
  name={\csfmt{glsdisp}},
  user1={\oargm{options}\margm{label}\margm{text}},
  description={links to the entry's definition in the glossary with
   the given link text and marks the entry as having been used.
   The options are the same as for \cs{glslink}},
  topics={entryrefcommands,linkcommands},
  note={\styfmt{glossaries}},
  seealso={glslink},
  category={command}
}

@glscommand{dglslink,
  name={\csfmt{dgls\-link}},
  user1={\oargm{options}\margm{label}\margm{text}},
  description={like \cs{glslink} but tries the prefixes
  identified with commands like \cs{glsxtraddlabelprefix}},
  topics={entryrefcommands,linkcommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.37+},
  seealso={dglsdisp},
  category={command}
}

@glscommand{dglsdisp,
  name={\csfmt{dgls\-disp}},
  user1={\oargm{options}\margm{label}\margm{text}},
  description={like \cs{glsdisp} but tries the prefixes
  identified with commands like \cs{glsxtraddlabelprefix}},
  topics={entryrefcommands,linkcommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.37+},
  seealso={dglsdisp},
  category={command}
}

@glscommand{glsxtrshort,
  name={\csfmt{glsxtrshort}},
  user1={\oargm{options}\margm{label}},
  description={links to the entry's definition in the glossary with
   the link text obtained from the \field{short} field (using the
   appropriate abbreviation style) without altering the first use flag},
  topics={entryrefcommands,linkcommands,abbreviationcommands,fieldrefcommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glsxtrlong,
  name={\csfmt{glsxtrlong}},
  user1={\oargm{options}\margm{label}},
  description={links to the entry's definition in the glossary with
   the link text obtained from the \field{long} field (using the
   appropriate abbreviation style) 
   without altering the first use flag},
  topics={entryrefcommands,linkcommands,abbreviationcommands,fieldrefcommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glsxtrfull,
  name={\csfmt{glsxtrfull}},
  user1={\oargm{options}\margm{label}},
  description={links to the entry's definition in the glossary with
   the link text obtained from the \field{long} and \field{short}
   fields (using the appropriate abbreviation style) 
   without altering the first use flag},
  topics={entryrefcommands,linkcommands,abbreviationcommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glsxtrword,
  name={\csfmt{glsxtrword}},
  user1={\margm{text}},
  description={used to encapsulate each word in the long form of an
abbreviation by the \catattr{markwords} attribute},
  topics={formattingcommands,abbreviationcommands},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@glscommand{glsxtrwordsep,
  name={\csfmt{glsxtrwordsep}},
  description={used to mark spaces between each word in the long form of an
  abbreviation by the \catattr{markwords} attribute},
  topics={separatorcommands,abbreviationcommands},
  note={\styfmt{glossaries-extra} v1.17+},
  category={command}
}

@glscommand{glstext,
  name={\csfmt{glstext}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={links to the entry's definition in the glossary with
   the link text obtained from the \field{text} field  
   without altering the first use flag},
  topics={entryrefcommands,fieldrefcommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{Glstext,
  name={\csfmt{Glstext}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={as \cs{glstext} but converts the first letter to
   \idx{uppercase}},
  topics={entryrefcommands,fieldrefcommands,linkcommands,casecommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsname,
  name={\csfmt{glsname}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={links to the entry's definition in the glossary with
   the link text obtained from the \field{name} field  
   without altering the first use flag},
  topics={entryrefcommands,fieldrefcommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsfirst,
  name={\csfmt{glsfirst}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={links to the entry's definition in the glossary with
   the link text obtained from the \field{first} field  
   without altering the first use flag},
  topics={entryrefcommands,fieldrefcommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{Glsfirst,
  name={\csfmt{Glsfirst}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={as \cs{glsfirst} but converts the first letter to
  \idx{uppercase}},
  topics={entryrefcommands,fieldrefcommands,linkcommands,casecommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsplural,
  name={\csfmt{glsplural}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={links to the entry's definition in the glossary with
   the link text obtained from the \field{plural} field  
   without altering the first use flag},
  topics={entryrefcommands,fieldrefcommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glssymbol,
  name={\csfmt{glssymbol}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={links to the entry's definition in the glossary with
   the link text obtained from the \field{symbol} field  
   without altering the first use flag},
  topics={entryrefcommands,fieldrefcommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsdesc,
  name={\csfmt{glsdesc}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={links to the entry's definition in the glossary with
   the link text obtained from the \field{description} field  
   without altering the first use flag},
  topics={entryrefcommands,fieldrefcommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsuseri,
  name={\csfmt{glsuseri}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={links to the entry's definition in the glossary with
   the link text obtained from the \field{user1} field  
   without altering the first use flag},
  topics={entryrefcommands,fieldrefcommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsuserii,
  name={\csfmt{glsuserii}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={links to the entry's definition in the glossary with
   the link text obtained from the \field{user2} field  
   without altering the first use flag},
  topics={entryrefcommands,fieldrefcommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsuseriii,
  name={\csfmt{glsuseriii}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={links to the entry's definition in the glossary with
   the link text obtained from the \field{user3} field  
   without altering the first use flag},
  topics={entryrefcommands,fieldrefcommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsuseriv,
  name={\csfmt{glsuseriv}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={links to the entry's definition in the glossary with
   the link text obtained from the \field{user4} field  
   without altering the first use flag},
  topics={entryrefcommands,fieldrefcommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsuserv,
  name={\csfmt{glsuserv}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={links to the entry's definition in the glossary with
   the link text obtained from the \field{user5} field  
   without altering the first use flag},
  topics={entryrefcommands,fieldrefcommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsuservi,
  name={\csfmt{glsuservi}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={links to the entry's definition in the glossary with
   the link text obtained from the \field{user6} field  
   without altering the first use flag},
  topics={entryrefcommands,fieldrefcommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@mainglscommand{rgls,
  name={\csfmt{rgls}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={like \cs{gls} but checks for the record
   count trigger setting (the formatting is governed by \cs{rglsformat})},
  topics={entryrefcommands,linkcommands},
  note={\styfmt{glossaries-extra} v1.21+},
  category={command}
}

@mainglscommand{rglsformat,
  name={\csfmt{rglsformat}},
  user1={\margm{label}\oargm{insert}},
  description={used by \csref{rgls} if the record count
   switch is triggered},
  topics={formattingcommands},
  note={\styfmt{glossaries-extra} v1.21+},
  category={command}
}

@glscommand{glsxtrenablerecordcount,
  name={\csfmt{glsxtr\-enable\-record\-count}},
  user1={},
  description={redefines \cs{gls} etc to their \csref{rgls} counterpart},
  topics={providingcommands},
  note={\styfmt{glossaries-extra} v1.21+},
  category={command}
}

@mainglscommand{GlsXtrSetRecordCountAttribute,
  name={\csfmt{Gls\-Xtr\-Set\-Record\-Count\-Attribute}},
  user1={\margm{category list}\margm{value}},
  description={sets the \catattr{recordcount} attribute to
    \meta{value} for the given categories},
  topics={assigncommands},
  note={\styfmt{glossaries-extra} v1.21+},
  category={command}
}

@glscommand{gls,
  name={\csfmt{gls}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={on first use displays the first use text
   (the value of the \field{first} field
    for general entries) and on subsequent use displays
    the subsequent use text (the value of the \field{text} field
    for general entries) where the text is optionally hyperlinked
    to the relevant place in the glossary. The options are
    the same as for \cs{glslink}},
  topics={entryrefcommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glslinkoption{gls.format,
  name={\csoptfmt{format}},
  user1={\margm{encap}},
  category={commandoption},
  description={sets the \idx{encap} for the record to 
  \meta{encap}, optionally with the start or end range markers},
  note={\styfmt{glossaries}},
  parent={glslink}
}

@glslinkoption{gls.counter,
  name={\csoptfmt{counter}},
  user1={\margm{counter-name}},
  description={sets the counter to use for the record},
  category={commandoption},
  note={\styfmt{glossaries}},
  parent={glslink}
}

@glslinkoption{gls.noindex,
  name={\csoptfmt{noindex}},
  user1={\margm{boolean}},
  description={indicates whether or not to suppress indexing},
  category={commandoption},
  note={\styfmt{glossaries-extra}},
  parent={glslink}
}

@glslinkoption{gls.wrgloss,
  name={\csoptfmt{wrgloss}},
  user1={\margm{value}},
  description={indicates whether to write the glossary information
  before (\csoptfmt{wrgloss\dequals before}) or after
  (\csoptfmt{wrgloss\dequals after}) the link text (default:
   \csoptfmt{before})},
  category={commandoption},
  note={\styfmt{glossaries-extra} v1.14+},
  parent={glslink}
}

@glslinkoption{gls.thevalue,
  name={\csoptfmt{thevalue}},
  user1={\margm{value}},
  description={overrides the record value so that it's the
  given \meta{value} not obtained from the associated counter},
  category={commandoption},
  note={\styfmt{glossaries-extra} v1.19+},
  parent={glslink}
}

@glslinkoption{gls.theHvalue,
  name={\csoptfmt{theHvalue}},
  user1={\margm{value}},
  description={the hyperlink target corresponding to the value
  of \glsopt{thevalue}, if appropriate},
  category={commandoption},
  note={\styfmt{glossaries-extra} v1.19+},
  parent={glslink}
}

@glslinkoption{gls.hyper,
  name={\csoptfmt{hyper}},
  user1={\margm{boolean}},
  description={indicates whether or not to make a hyperlink to the
  relevant glossary entry},
  category={commandoption},
  note={\styfmt{glossaries}},
  parent={glslink}
}

@glslinkoption{gls.local,
  name={\csoptfmt{local}},
  user1={\margm{boolean}},
  description={if \csoptfmt{true} indicates to use \ics{glslocalunset}
   instead of the default global \cs{glsunset} to unset the
   \idx{firstuseflag}},
  category={commandoption},
  note={\styfmt{glossaries}},
  parent={glslink}
}

@glslinkoption{gls.textformat,
  name={\csoptfmt{text\-format}},
  user1={\margm{cs-name}},
  description={if set, replaces \cs{glstextformat} with
  the command given by the control sequence name
  \meta{cs-name} to format the \idx{link-text}},
  category={commandoption},
  note={\styfmt{glossaries-extra} v1.30+},
  parent={glslink}
}

@glslinkoption{gls.prefix,
  name={\csoptfmt{prefix}},
  user1={\margm{label}},
  description={locally changes \ics{glolinkprefix} to the
  given \meta{label}},
  category={commandoption},
  note={\styfmt{glossaries-extra} v1.31+},
  parent={glslink}
}

@glslinkoption{gls.hyperoutside,
  name={\csoptfmt{hyper\-out\-side}},
  user1={\margm{boolean}},
  description={determines whether \cs{hyperlink} should
   be outside of \cs{glstextformat} (default
  \csoptfmt{hyperoutside\dequals true}) or inside
  (\csoptfmt{hyperoutside\dequals false})},
  category={commandoption},
  note={\styfmt{glossaries-extra} v1.21+},
  parent={glslink}
}

@glscommand{glspl,
  name={\csfmt{glspl}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={as \cs{gls} but shows the plural form},
  topics={entryrefcommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{Gls,
  name={\csfmt{Gls}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={as \cs{gls} but converts the first letter
    of the link text to \idx{uppercase}},
  topics={entryrefcommands,linkcommands,casecommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{Glspl,
  name={\csfmt{Glspl}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={as \cs{Gls} but shows the plural form},
  topics={entryrefcommands,linkcommands,casecommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{GLS,
  name={\csfmt{GLS}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={as \cs{gls} but converts the link text to \idx{uppercase}},
  topics={entryrefcommands,linkcommands,casecommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{GLSpl,
  name={\csfmt{GLSpl}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={as \cs{GLS} but shows the plural form},
  topics={entryrefcommands,linkcommands,casecommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{pgls,
  name={\csfmt{pgls}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={does \meta{prefix}\cs{gls}\oargm{options}\margm{label}\oargm{insert},
  where the \meta{prefix} is obtained from the appropriate prefix
  field},
  topics={entryrefcommands,fieldrefcommands,linkcommands},
  note={\styfmt{glossaries-prefix}},
  category={command}
}

@glscommand{Pgls,
  name={\csfmt{Pgls}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={does \meta{prefix}\cs{gls}\oargm{options}\margm{label}\oargm{insert},
  where the \meta{prefix} is obtained from the appropriate prefix
  field with the first letter converted to \idx{uppercase}},
  topics={entryrefcommands,fieldrefcommands,linkcommands,casecommands},
  note={\styfmt{glossaries-prefix}},
  category={command}
}

@glscommand{PGLS,
  name={\csfmt{PGLS}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={does \meta{prefix}\cs{GLS}\oargm{options}\margm{label}\oargm{insert},
  where the \meta{prefix} is obtained from the appropriate prefix
  field with the text converted to \idx{uppercase}},
  topics={entryrefcommands,fieldrefcommands,linkcommands,casecommands},
  note={\styfmt{glossaries-prefix}},
  category={command}
}

@glscommand{pglspl,
  name={\csfmt{pglspl}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={does \meta{prefix}\cs{glspl}\oargm{options}\margm{label}\oargm{insert},
  where the \meta{prefix} is obtained from the appropriate prefix
  field},
  topics={entryrefcommands,fieldrefcommands,linkcommands},
  note={\styfmt{glossaries-prefix}},
  category={command}
}

@glscommand{Pglspl,
  name={\csfmt{Pglspl}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={does \meta{prefix}\cs{glspl}\oargm{options}\margm{label}\oargm{insert},
  where the \meta{prefix} is obtained from the appropriate prefix
  field with the first letter converted to \idx{uppercase}},
  topics={entryrefcommands,fieldrefcommands,linkcommands,casecommands},
  note={\styfmt{glossaries-prefix}},
  category={command}
}

@glscommand{PGLSpl,
  name={\csfmt{PGLSpl}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={does \meta{prefix}\cs{GLSpl}\oargm{options}\margm{label}\oargm{insert},
  where the \meta{prefix} is obtained from the appropriate prefix
  field with the text converted to \idx{uppercase}},
  topics={entryrefcommands,fieldrefcommands,linkcommands,casecommands},
  note={\styfmt{glossaries-prefix}},
  category={command}
}

@glscommand{dgls,
  name={\csfmt{dgls}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={intended for documents with a mixture of 
   single and dual entries, this is like \cs{gls} but tries to 
   determine the label prefix from the label prefix list},
  topics={entryrefcommands,linkcommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.37+},
  seealso={glsxtraddlabelprefix,glsxtrprependlabelprefix},
  category={command}
}

@glscommand{dglspl,
  name={\csfmt{dglspl}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={intended for documents with a mixture of 
   single and dual entries, this is like \cs{glspl} but tries to 
   determine the label prefix from the label prefix list},
  topics={entryrefcommands,linkcommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.37+},
  seealso={glsxtraddlabelprefix,glsxtrprependlabelprefix},
  category={command}
}

@glscommand{dGls,
  name={\csfmt{dGls}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={intended for documents with a mixture of 
   single and dual entries, this is like \cs{Gls} but tries to 
   determine the label prefix from the label prefix list},
  topics={entryrefcommands,linkcommands,casecommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.37+},
  seealso={glsxtraddlabelprefix,glsxtrprependlabelprefix},
  category={command}
}

@glscommand{dGlspl,
  name={\csfmt{dGlspl}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={intended for documents with a mixture of 
   single and dual entries, this is like \cs{Glspl} but tries to 
   determine the label prefix from the label prefix list},
  topics={entryrefcommands,linkcommands,casecommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.37+},
  seealso={glsxtraddlabelprefix,glsxtrprependlabelprefix},
  category={command}
}

@glscommand{mgls,
  name={\csfmt{mgls}},
  user1={\oargm{options}\margm{label}\oargm{insert}},
  description={applies \cs{gls} to each element in the set defined
by \cs{multiglossaryentry}},
  topics={entryrefcommands,linkcommands},
  note={\styfmt{glossaries-extra} v1.48+},
  category={command}
}

@glscommand{multiglossaryentry,
  name={\csfmt{multi\-glossary\-entry}},
  user1={\oargm{options}\margm{multilabel}\oargm{main label}\margm{list}},
  description={defines a set of labels (which must correspond to
   entries that have already been defined) that can be collectively
   referred to by commands like \cs{mgls}. The \meta{main label}
   must be included in the comma-separated \meta{list} and indicates
   which element is considered the main entry in the set. If
   omitted, the last element in \meta{list} is assumed to be the
   main element},
  topics={definingterms},
  note={\styfmt{glossaries-extra} v1.48+},
  category={command}
}

@glscommand{providemultiglossaryentry,
  name={\csfmt{provide\-multi\-glossary\-entry}},
  user1={\oargm{options}\margm{multilabel}\oargm{main label}\margm{list}},
  description={as \cs{multiglossaryentry} but does nothing if the
   label has already been defined as a \gls{ext1.compoundentry}},
  topics={definingterms},
  note={\styfmt{glossaries-extra} v1.48+},
  category={command}
}

@glscommand{multiglossaryentrysetup,
  name={\csfmt{multi\-glossary\-entry\-set\-up}},
  user1={\margm{options}},
  description={setup the general options for \glspl{ext1.compoundentry}},
  topics={assigncommands},
  note={\styfmt{glossaries-extra} v1.48+},
  category={command}
}

@glscommand{glsxtrmultientryadjustedname,
  name={\csfmt{gls\-xtr\-multi\-entry\-adjust\-ed\-name}},
  user1={\margm{sublist1}\margm{name}\margm{sublist2}\margm{label}},
  description={used by \csopt{compound-adjust-name} to format the
   name using all the elements of the \gls{ext1.compoundentry} set, where
   \meta{sublist1} is the list of \glspl{ext1.compotherlabel} before the
   \gls{ext1.compmainlabel}, \meta{sublist2} is the list of
   \glspl{ext1.compotherlabel} that follow the \gls{ext1.compmainlabel},
   \meta{name} is the pre-adjustment name, and \meta{label} identifies 
   the \gls{ext1.compoundentry}},
  topics={formattingcommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.48+},
  category={command}
}

@glscommand{Glsxtrmultientryadjustedname,
  name={\csfmt{Gls\-xtr\-multi\-entry\-adjust\-ed\-name}},
  user1={\margm{sublist1}\margm{name}\margm{sublist2}\margm{label}},
  description={first letter uppercase version of \cs{glsxtrmultientryadjustedname}},
  topics={formattingcommands,casecommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.48+},
  category={command}
}

@glscommand{GlsXtrmultientryadjustedname,
  name={\csfmt{Gls\-Xtr\-multi\-entry\-adjust\-ed\-name}},
  user1={\margm{sublist1}\margm{name}\margm{sublist2}\margm{label}},
  description={title case version of \cs{glsxtrmultientryadjustedname}},
  topics={formattingcommands,casecommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.48+},
  category={command}
}

@glscommand{GLSxtrmultientryadjustedname,
  name={\csfmt{GLS\-xtr\-multi\-entry\-adjust\-ed\-name}},
  user1={\margm{sublist1}\margm{name}\margm{sublist2}\margm{label}},
  description={upper case version of \cs{glsxtrmultientryadjustedname}},
  topics={formattingcommands,casecommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.48+},
  category={command}
}

@glscommand{glsxtraddlabelprefix,
  name={\csfmt{gls\-xtr\-add\-label\-prefix}},
  user1={\margm{prefix}},
  description={appends \meta{prefix} to the prefix label list},
  topics={listcommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.37+},
  seealso={dgls,glsxtrprependlabelprefix,glsxtrclearlabelprefixes},
  category={command}
}

@glscommand{glsxtrprependlabelprefix,
  name={\csfmt{gls\-xtr\-prepend\-label\-prefix}},
  user1={\margm{prefix}},
  description={prepends \meta{prefix} to the prefix label list},
  topics={listcommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.37+},
  seealso={dgls,glsxtraddlabelprefix,glsxtrclearlabelprefixes},
  category={command}
}

@glscommand{glsxtrclearlabelprefixes,
  name={\csfmt{gls\-xtr\-clear\-label\-prefixes}},
  user1={\margm{prefix}},
  description={clears the prefix label list},
  topics={listcommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.37+},
  seealso={glsxtraddlabelprefix,glsxtrprependlabelprefix},
  category={command}
}

@glscommand{glssetwidest,
  name={\csfmt{gls\-set\-widest}},
  user1={\oargm{level}\margm{text}},
  description={used with the \glostyle{alttree} style to set the
   widest entry name for the given level},
  topics={assigncommands,glossarystylecommands},
  note={\styfmt{glossary-tree}},
  category={command}
}

@glscommand{glsxtrSetWidest,
  name={\csfmt{gls\-xtr\-Set\-Widest}},
  user1={\margm{type}\margm{level}\margm{text}},
  description={used by \csref{bibglssetwidest} to set the
   widest entry name for the given level for the \glostyle{alttree}
   style and the styles provided by \sty{glossary-longextra}},
  topics={assigncommands,glossarystylecommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.37+},
  seealso={glssetwidest,glslongextraSetWidest},
  category={command}
}

@glscommand{glsxtrSetWidestFallback,
  name={\csfmt{gls\-xtr\-Set\-Widest\-Fallback}},
  user1={\margm{max depth}\margm{list}},
  description={used by \csref{bibglssetwidesttoplevelfallback} and
   \csref{bibglssetwidestfallback} to set the
   widest entry name for the \glostyle{alttree}
   style and the styles provided by \sty{glossary-longextra}
   using the commands provided by \sty{glossaries-extra-stylemods}},
  topics={assigncommands,glossarystylecommands},
  note={\styfmt{glossaries-extra-bib2gls} v1.37+},
  seealso={glsFindWidestTopLevelName,glsFindWidestLevelTwo},
  category={command}
}

@glscommand{glslongextraSetWidest,
  name={\csfmt{gls\-long\-extra\-Set\-Widest}},
  user1={\margm{text}},
  description={used with the styles provided by the
  \sty{glossary-longextra} package to set the
   widest entry name},
  topics={assigncommands,glossarystylecommands},
  note={\styfmt{glossary-longextra} v1.37+},
  seealso={glslongextraUpdateWidest},
  category={command}
}

@glscommand{glslongextraUpdateWidest,
  name={\csfmt{gls\-long\-extra\-Update\-Widest}},
  user1={\margm{text}},
  description={as \cs{glslongextraSetWidest} but only sets if \meta{text} is
  wider than the current value},
  topics={assigncommands,glossarystylecommands},
  note={\styfmt{glossary-longextra} v1.37+},
  category={command}
}

@glscommand{glsupdatewidest,
  name={\csfmt{gls\-update\-widest}},
  user1={\oargm{level}\margm{text}},
  description={as \cs{glssetwidest} but only sets if \meta{text} is
wider than the current value},
  topics={assigncommands,glossarystylecommands},
  note={\styfmt{glossaries-extra-stylemods} v1.23+},
  seealso={glssetwidest,eglsupdatewidest},
  category={command}
}

@glscommand{eglsupdatewidest,
  name={\csfmt{egls\-update\-widest}},
  user1={\oargm{level}\margm{text}},
  description={as \cs{glsupdatewidest} but expands \meta{text}},
  topics={assigncommands,glossarystylecommands},
  note={\styfmt{glossaries-extra-stylemods} v1.23+},
  seealso={glssetwidest,glsupdatewidest},
  category={command}
}

@glscommand{glsFindWidestTopLevelName,
  name={\csfmt{gls\-Find\-Widest\-Top\-Level\-Name}},
  user1={\oargm{glossary list}},
  description={CamelCase synonym for \cs{glsfindwidesttoplevelname}},
  topics={assigncommands,glossarystylecommands},
  note={\styfmt{glossaries-extra-stylemods}},
  seealso={glsfindwidesttoplevelname},
  category={command}
}

@glscommand{glsfindwidesttoplevelname,
  name={\csfmt{gls\-find\-widest\-top\-level\-name}},
  user1={\oargm{glossary list}},
  description={finds the widest top-level name in the given
glossaries},
  topics={assigncommands,glossarystylecommands},
  note={\styfmt{glossary-tree}},
  category={command}
}

@glscommand{glsFindWidestLevelTwo,
  name={\csfmt{gls\-Find\-Widest\-Level\-Two}},
  user1={\oargm{glossary list}},
  description={finds the widest name in the given glossaries
   for the top level and first two sub-levels},
  topics={assigncommands,glossarystylecommands},
  note={\styfmt{glossaries-extra-stylemods}},
  seealso={glsfindwidesttoplevelname},
  category={command}
}

@glscommand{glsxtrbookindexname,
  name={\csfmt{glsxtr\-book\-index\-name}},
  user1={\margm{label}},
  description={used with the \glostyle{bookindex} style to
   format the entry's name},
  topics={formattingcommands,glossarystylecommands},
  note={\styfmt{glossary-bookindex}},
  category={command}
}

@glscommand{glsxtrbookindexprelocation,
  name={\csfmt{glsxtr\-book\-index\-pre\-location}},
  user1={\margm{label}},
  description={used with the \glostyle{bookindex} style before the
location list},
  topics={formattingcommands,separatorcommands,glossarystylecommands},
  note={\styfmt{glossary-bookindex}},
  category={command}
}

@glscommand{glsxtrprelocation,
  name={\csfmt{glsxtr\-pre\-location}},
  user1={},
  description={used before the location list in the
   \glostyle{bookindex} style and the styles patched by 
   \styfmt{glossaries-extra-stylemods}},
  topics={formattingcommands,separatorcommands,glossarystylecommands},
  note={\styfmt{glossary-bookindex} v1.21+ and
   \styfmt{glossaries-extra-stylemods} v1.21+},
  category={command}
}

@glscommand{glsabbrvfont,
  name={\csfmt{gls\-abbrv\-font}},
  user1={\margm{text}},
  description={generic abbreviation font command for the short form},
  topics={formattingcommands,abbreviationcommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glslongfont,
  name={\csfmt{gls\-long\-font}},
  user1={\margm{text}},
  description={generic abbreviation font command for the long form},
  topics={formattingcommands,abbreviationcommands},
  note={\styfmt{glossaries-extra} v1.04+},
  category={command}
}

@glscommand{glsshorttok,
  name={\csfmt{gls\-short\-tok}},
  description={token register used in the construction of
   acronyms or abbreviations to allow the style hooks to access the short form},
  topics={hooks,abbreviationcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glslongtok,
  name={\csfmt{gls\-long\-tok}},
  description={token register used in the construction of
   acronyms or abbreviations to allow the style hooks to access the long form},
  topics={hooks,abbreviationcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsxtrifinmark,
  name={\csfmt{gls\-xtr\-if\-in\-mark}},
  user1={\margm{true}\margm{true}},
  description={used by commands like \cs{glsfmtshort}, this expands
  to \meta{true} in page headings and the table of contents, 
  otherwise it expands to \meta{false}},
  topics={conditional},
  note={\styfmt{glossaries-extra} v1.07+},
  category={command}
}

@glscommand{glsxtrRevertTocMarks,
  name={\csfmt{gls\-xtr\-Revert\-Toc\-Marks}},
  description={restores original behaviour of \cs{tableofcontents}
  so that \cs{glsxtrifinmark} expands to \meta{false} in the table
  of contents},
  topics={providingcommands},
  note={\styfmt{glossaries-extra} v1.07+},
  category={command}
}

@glscommand{glstreenamefmt,
  name={\csfmt{gls\-tree\-name\-fmt}},
  user1={\margm{text}},
  description={used with the tree styles to format the entry's name},
  topics={formattingcommands,glossarystylecommands},
  note={\styfmt{glossary-tree} v4.08+ and 
\styfmt{glossaries-extra-stylemods} v1.31+},
  seealso={glstreegroupheaderfmt,glstreenavigationfmt,glstreedefaultnamefmt},
  category={command}
}

@glscommand{glstreegroupheaderfmt,
  name={\csfmt{gls\-tree\-group\-header\-fmt}},
  user1={\margm{text}},
  description={used with the tree styles to format the group headings},
  topics={formattingcommands,glossarystylecommands},
  note={\styfmt{glossary-tree} v4.22+ and 
  \styfmt{glossaries-extra-stylemods} v1.31+},
  category={command}
}

@glscommand{glstreenavigationfmt,
  name={\csfmt{gls\-tree\-navigation\-fmt}},
  user1={\margm{text}},
  description={used with the tree styles to format the navigation elements},
  topics={formattingcommands,glossarystylecommands},
  note={\styfmt{glossary-tree} v4.22+ and 
  \styfmt{glossaries-extra-stylemods} v1.31+},
  category={command}
}

@glscommand{glstreedefaultnamefmt,
  name={\csfmt{gls\-tree\-default\-name\-fmt}},
  user1={\margm{text}},
  description={used as the default format for \cs{glstreenamefmt},
   \cs{glstreegroupheaderfmt} and \cs{glstreenavigationfmt}},
  topics={formattingcommands,glossarystylecommands},
  note={\styfmt{glossaries-extra-stylemods} v1.31+},
  category={command}
}

@glscommand{glstreeprelocation,
  name={\csfmt{gls\-tree\-pre\-location}},
  description={inserted before the location list for top-level
entries in the \glostyle{tree}-like styles},
  topics={formattingcommands,separatorcommands,glossarystylecommands},
  note={\styfmt{glossaries-extra-stylemods} v1.21+},
  category={command}
}

@glscommand{glsdescwidth,
  name={\csfmt{gls\-desc\-width}},
  user1={},
  description={length register used by the tabular styles to specify
the width of the description column},
  topics={glossarystylecommands},
  note={\isty{glossary-long} and \isty{glossary-super}},
  category={command}
}

@glscommand{glsxtralttreeSymbolDescLocation,
  name={\csfmt{gls\-xtr\-alt\-tree\-Symbol\-Desc\-Location}},
  user1={\margm{label}\margm{location list}},
  description={used by the \glostyle{alttree} styles to format the
symbol, description and location},
  topics={formattingcommands,glossarystylecommands},
  note={\styfmt{glossaries-extra-stylemods} v1.05+},
  category={command}
}

@glscommand{glsxtrAltTreePar,
  name={\csfmt{gls\-xtr\-Alt\-Tree\-Par}},
  description={used by the \glostyle{alttree} styles to indicate a
paragraph break that retains the hanging indent},
  topics={formattingcommands,glossarystylecommands},
  note={\styfmt{glossaries-extra-stylemods} v1.05+},
  category={command}
}

@glscommand{glsaccsupp,
  name={\csfmt{gls\-acc\-supp}},
  user1={\margm{accessible text}\margm{text}},
  description={used by the accessibility support to interface with
  the \sty{accsupp} package (use \cs{xglsaccsupp} if \meta{text}
  needs to be fully expanded first)},
  topics={access-support},
  note={\styfmt{glossaries-accsupp}},
  seealso={xglsaccsupp},
  category={command}
}

@glscommand{xglsaccsupp,
  name={\csfmt{xgls\-acc\-supp}},
  user1={\margm{accessible text}\margm{text}},
  description={used by the accessibility support to interface with
  the \sty{accsupp} package, where \meta{text} is fully expanded},
  topics={access-support},
  note={\styfmt{glossaries-accsupp}},
  seealso={glsaccsupp},
  category={command}
}

@glscommand{forglsentries,
  name={\csfmt{for\-gls\-entries}},
  user1={\oargm{type}\margm{cs}\margm{body}},
  description={iterates over all entries defined in the glossary
   identified by \meta{type} (or the default, if \meta{type}
   is omitted) and perform \meta{body} where you can use the
   control sequence \meta{cs} to reference the current entry label},
  topics={loop,entryrefcommands},
  note={\styfmt{glossaries}},
  seealso={forallglsentries},
  category={command}
}

@glscommand{forallglsentries,
  name={\csfmt{for\-all\-gls\-entries}},
  user1={\oargm{glossary-list}\margm{cs}\margm{body}},
  description={iterates over all entries defined in the
  comma-separated \meta{glossary-list} (or all defined non-ignored
   glossaries if the optional argument is omitted) and perform 
   \meta{body} where you can use the control sequence \meta{cs} to 
   reference the current entry label},
  topics={loop,glossrefs,entryrefcommands},
  note={\styfmt{glossaries}},
  seealso={forglsentries,forallglossaries},
  category={command}
}

@glscommand{forallglossaries,
  name={\csfmt{for\-all\-glos\-saries}},
  user1={\oargm{glossary-list}\margm{cs}\margm{body}},
  description={iterates over all glossaries identified in the 
   comma-separated \meta{glossary-list} (or all defined non-ignored
   glossaries if the optional argument is omitted) and performs \meta{body} 
   where you can use the control sequence \meta{cs} to reference 
   the current glossary label},
  topics={loop,glossrefs},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsxtrforcsvfield,
  name={\csfmt{gls\-xtr\-for\-csv\-field}},
  user1={\margm{label}\margm{field}\margm{handler}},
  description={iterates over the comma-separated list
   in the given \meta{field} for the entry identified
   by \meta{label} and performs \meta{handler}\margm{element}
   on each element of the list, where \meta{handler} is
   a control sequence which takes a single argument},
  topics={loop,fieldrefcommands,listcommands},
  note={\styfmt{glossaries}},
  note={\styfmt{glossaries-extra} v1.24+},
  seealso={glsxtrendfor},
  category={command}
}

@glscommand{glsxtrendfor,
  name={\csfmt{gls\-xtr\-end\-for}},
  user1={},
  description={may be used within the handler macro
   of \cs{glsxtrforcsvfield} to prematurely break the loop},
  topics={loop,listcommands},
  note={\styfmt{glossaries-extra} v1.24+},
  seealso={glsxtrforcsvfield,listbreak},
  category={command}
}

@glscommand{listbreak,
  name={\csfmt{list\-break}},
  user1={},
  description={may be used within the handler macro
   of \sty{etoolbox}'s internal list loop commands to prematurely break the loop},
  topics={loop,listcommands},
  note={\styfmt{etoolbox}},
  seealso={forlistloop,glsxtrfieldforlistloop,glsxtrfielddolistloop,glsxtrendfor},
  category={command}
}

@glscommand{ifglossaryexists,
  name={\csfmt{if\-glossary\-exists}},
  user1={\margm{type}\margm{true}\margm{false}},
  description={tests if the glossary identified by \meta{type} exists
  and does \meta{true} if it does exists, otherwise does
  \meta{false}. The unstarred form treats ignored glossaries as
  non-existent},
  topics={conditional,glossrefs},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{ifglossaryexists*,
  name={\csfmt{if\-glossary\-exists*}},
  user1={\margm{type}\margm{true}\margm{false}},
  description={the starred form of \cs{ifglossaryexists} treats ignored glossaries as existing},
  topics={conditional,glossrefs},
  note={\styfmt{glossaries} v4.46+ (or \styfmt{glossaries-extra} v1.44+)},
  category={command}
}

@glscommand{ifignoredglossary,
  name={\csfmt{if\-ignored\-glossary}},
  user1={\margm{type}\margm{true}\margm{false}},
  description={tests if the glossary given by \meta{type} was
  defined as an ignored glossary},
  topics={conditional,glossrefs},
  note={\styfmt{glossaries} v4.08+},
  category={command}
}

@glscommand{GlsXtrIfInGlossary,
  name={\csfmt{Gls\-Xtr\-If\-In\-Glossary}},
  user1={\margm{entry-label}\margm{type}\margm{true}\margm{false}},
  description={tests if the entry given \meta{entry-label} is in
   the glossary identified by \meta{type}},
  topics={conditional,glossrefs},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glsdoifexists,
  name={\csfmt{gls\-do\-if\-exists}},
  user1={\margm{label}\margm{code}},
  description={if the entry given by \meta{label} exists, \meta{code}
  is done, otherwise an error (or warning with
  \sty{glossaries-extra}'s \styopt[warn]{undefaction} option) is
  triggered},
  topics={conditional,entryrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsdoifnoexists,
  name={\csfmt{gls\-do\-if\-no\-exists}},
  user1={\margm{label}\margm{code}},
  description={if the entry given by \meta{label} doesn't exist, \meta{code}
  is done, otherwise an error (or warning with
  \sty{glossaries-extra}'s \styopt[warn]{undefaction} option) is
  triggered},
  topics={conditional,entryrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsdoifexistsordo,
  name={\csfmt{gls\-do\-if\-exists\-or\-do}},
  user1={\margm{label}\margm{code}\margm{else code}},
  description={if the entry given by \meta{label} exists, \meta{code}
  is done, otherwise an error (or warning with
  \sty{glossaries-extra}'s \styopt[warn]{undefaction} option) is
  triggered and \meta{else code} is done},
  topics={conditional,entryrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsdoifnoexistsordo,
  name={\csfmt{gls\-do\-if\-no\-exists\-or\-do}},
  user1={\margm{label}\margm{code}\margm{else code}},
  description={if the entry given by \meta{label} doesn't exist, \meta{code}
  is done, otherwise an error (or warning with
  \sty{glossaries-extra}'s \styopt[warn]{undefaction} option) is
  triggered and \meta{else code} is done},
  topics={conditional,entryrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@command{TrackLocale,
  name={\csfmt{Track\-Locale}},
  user1={\margm{language tag}},
  description={tracks the given language tag},
  note={\styfmt{tracklang} v1.3+},
  category={command}
}

@command{GetTrackedDialectFromLanguageTag,
  name={\csfmt{Get\-Tracked\-Dialect\-From\-Language\-Tag}},
  user1={\margm{language tag}\margm{cs}},
  description={gets the \styfmt{tracklang} dialect label from the
given language tag and stores it in the command \meta{cs}. The
result will be empty if there's no tracked dialect associated with
the given language tag},
  note={\styfmt{tracklang} v1.3+},
  category={command}
}

@command{TrackedDialectClosestSubMatch,
  name={\csfmt{Tracked\-Dialect\-Closest\-Sub\-Match}},
  description={set by \cs{GetTrackedDialectFromLanguageTag}
  if an exact match isn't found but a partial match on the
  root language is found},
  note={\styfmt{tracklang} v1.3.6+},
  category={command}
}

@command{IfTrackedDialectHasMapping,
  name={\csfmt{If\-Tracked\-Dialect\-Has\-Mapping}},
  user1={\margm{tracklang label}\margm{true}\margm{false}},
  description={tests if the \styfmt{tracklang} dialect label has
been assigned a mapping to a language hook label},
  note={\styfmt{tracklang} v1.3+},
  category={command}
}

@command{GetTrackedDialectToMapping,
  name={\csfmt{Get\-Tracked\-Dialect\-To\-Mapping}},
  user1={\margm{tracklang label}},
  description={the language hook label corresponding to the given
\sty{tracklang} label},
  note={\styfmt{tracklang} v1.3+},
  category={command}
}

@glscommand{glstextformat,
  name={\csfmt{glstextformat}},
  user1={\margm{text}},
  description={used by commands like \cs{gls} to format the 
  \idx{link-text}},
  topics={formattingcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsxtrregularfont,
  name={\csfmt{gls\-xtr\-reg\-u\-lar\-font}},
  user1={\margm{text}},
  description={used by commands like \cs{gls} to format the 
  \idx{link-text} for regular terms},
  topics={formattingcommands},
  note={\styfmt{glossaries-extra} v1.04+},
  category={command}
}

@glscommand{glsxtrabbreviationfont,
  name={\csfmt{gls\-xtr\-abbre\-vi\-a\-tion\-font}},
  user1={\margm{text}},
  description={used by commands like \cs{gls} to format the 
  \idx{link-text} for (non-regular) abbreviations},
  topics={formattingcommands,abbreviationcommands},
  note={\styfmt{glossaries-extra} v1.30+},
  category={command}
}

@glscommand{GlsXtrExpandedFmt,
  name={\csfmt{Gls\-Xtr\-Expanded\-Fmt}},
  user1={\margm{cs}\margm{text}},
  description={fully expands \meta{text} and then does
   \meta{cs}\margm{expanded text}},
  topics={formattingcommands},
  note={\styfmt{glossaries-extra} v1.30+},
  category={command}
}

@glscommand{GlsXtrStartUnsetBuffering,
  name={\csfmt{Gls\-Xtr\-Start\-Unset\-Buffer\-ing}},
  description={starts buffering calls to \cs{glsunset}
   (which is internally used by commands like \cs{gls})
   for use in code where the boolean switch causes a problem.
   The buffer can later be processed and cleared with
   \cs{GlsXtrStopUnsetBuffering}. The starred form
   (added to v1.31) avoids duplicate labels in the buffer's 
   internal list},
  topics={entryrefcommands,conditional},
  note={\styfmt{glossaries-extra} v1.30+},
  seealso={GlsXtrForUnsetBufferedList},
  category={command}
}

@glscommand{GlsXtrStopUnsetBuffering,
  name={\csfmt{Gls\-Xtr\-Stop\-Unset\-Buffer\-ing}},
  description={unsets (locally with the starred form) the 
    \idx{firstuseflag} of all the entry whose labels are stored in the
    buffer that was started with
   \cs{GlsXtrStartUnsetBuffering} and then clears the buffer},
  topics={entryrefcommands,conditional},
  note={\styfmt{glossaries-extra} v1.30+},
  seealso={GlsXtrForUnsetBufferedList},
  category={command}
}

@glscommand{GlsXtrForUnsetBufferedList,
  name={\csfmt{Gls\-Xtr\-For\-Unset\-Buffered\-List}},
  user1 = {\margm{cs}},
  description={iterates over 
    all the entry whose labels are stored in the
    buffer that was started with
   \cs{GlsXtrStartUnsetBuffering} and implements
   \meta{cs}\margm{label} at each iteration},
  topics={entryrefcommands,listcommands},
  note={\styfmt{glossaries-extra} v1.31+},
  category={command}
}

@glscommand{glsunset,
  name={\csfmt{gls\-unset}},
  user1 = {\margm{label}},
  description={unsets the \idx{firstuseflag} so that the entry is
marked as having been used},
  topics={conditional},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glslocalunset,
  name={\csfmt{gls\-local\-unset}},
  user1 = {\margm{label}},
  description={locally unsets the \idx{firstuseflag} so that the entry is
marked as having been used},
  topics={conditional},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glsreset,
  name={\csfmt{gls\-reset}},
  user1 = {\margm{label}},
  description={resets the \idx{firstuseflag} so that the entry is
marked as not used},
  topics={conditional},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glslocalreset,
  name={\csfmt{gls\-local\-reset}},
  user1 = {\margm{label}},
  description={locally resets the \idx{firstuseflag} so that the entry is
marked as not used},
  topics={conditional},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glspatchtabularx,
  name={\csfmt{gls\-patch\-tab\-ularx}},
  description={preamble command that will patch the \env{tabularx}
   environment to deal with the problem of unsetting the
  \idx{firstuseflag} either explicitly with \cs{glsunset} or
  implicitly through commands like \cs{gls} (does nothing if
  \isty{tabularx} hasn't been loaded)},
  topics={hooks,entryrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@command{TrackLangLastTrackedDialect,
  name={\csfmt{Track\-Lang\-Last\-Tracked\-Dialect}},
  user1={},
  description={set by commands like \cs{TrackLocale}},
  note={\styfmt{tracklang}},
  category={command}
}

@command{TrackedLanguageFromDialect,
  name={\csfmt{Tracked\-Language\-From\-Dialect}},
  user1={\margm{dialect}},
  description={expands to the root language associated with the
given (\styfmt{tracklang}) dialect label},
  note={\styfmt{tracklang}},
  category={command}
}

@command{DTMdisplaydate,
  name={\csfmt{DTM\-display\-date}},
  user1={\margm{year}\margm{month}\margm{day}\margm{dow}},
  description={formats the given date where all arguments are
    numeric},
  note={\styfmt{datetime2}},
  category={command}
}

@command{DTLformatlist,
  name={\csfmt{DTL\-format\-list}},
  user1={\margm{list}},
  description={formats a comma-separated list},
  note={\styfmt{datatool-base}\texparserdefnote\ v2.28+},
  seealso={ifDTLlistskipempty},
  category={command}
}

@command{DTLlistformatitem,
  name={\csfmt{DTL\-list\-format\-item}},
  user1={\margm{element}},
  description={used by \ics{DTLformatlist} to format each
   element in the list},
  note={\styfmt{datatool-base}\texparserdefnote\ v2.28+},
  seealso={DTLformatlist},
  category={command}
}

@command{DTLlistformatsep,
  name={\csfmt{DTL\-list\-format\-sep}},
  user1={},
  description={used by \ics{DTLformatlist} to separate items in the
list, except for the last pair},
  note={\styfmt{datatool-base}\texparserdefnote\ v2.28+},
  seealso={DTLformatlist},
  category={command}
}

@command{DTLlistformatlastsep,
  name={\csfmt{DTL\-list\-format\-last\-sep}},
  user1={},
  description={used by \ics{DTLformatlist} to separate the last two items in the
list},
  note={\styfmt{datatool-base}\texparserdefnote\ v2.28+},
  seealso={DTLformatlist},
  category={command}
}

@command{DTLlistformatoxford,
  name={\csfmt{DTL\-list\-format\-oxford}},
  user1={},
  description={insert before \ics{DTLlistformatlastsep} if the list
has three or more items},
  note={\styfmt{datatool-base}\texparserdefnote\ v2.28+},
  seealso={DTLformatlist},
  category={command}
}

@command{DTLandname,
  name={\csfmt{DTL\-and\-name}},
  user1={},
  description={used in the definition of \ics{DTLlistformatlastsep}},
  note={\styfmt{datatool-base}\texparserdefnote\ v2.28+},
  seealso={DTLformatlist},
  category={command}
}

@command{DTLlistelement,
  name={\csfmt{DTL\-list\-element}},
  user1={\margm{list}\margm{index}},
  description={does the \meta{index}th element (starting from 1 for
   the first element) in the comma-separated \meta{list}},
  note={\styfmt{datatool-base}\texparserdefnote\ v2.31+},
  seealso={DTLfetchlistelement,ifDTLlistskipempty},
  category={command}
}

@command{DTLfetchlistelement,
  name={\csfmt{DTL\-fetch\-list\-element}},
  user1={\margm{list}\margm{index}\margm{cs}},
  description={fetches the \meta{index}th element (starting from 1 for
   the first element) in the comma-separated \meta{list} and stores
   it in the command given by \meta{cs}},
  note={\styfmt{datatool-base}\texparserdefnote\ v2.31+},
  seealso={DTLlistelement,ifDTLlistskipempty},
  category={command}
}

@command{ifDTLlistskipempty,
  name={\csfmt{if\-DTL\-list\-skip\-empty}},
  description={conditional that determines whether or not commands
    like \cs{DTLformatlist} should skip empty elements},
  note={\styfmt{datatool-base}\texparserdefnote\ v2.31+},
  category={command}
}

@command{DTLnumitemsinlist,
  name={\csfmt{DTL\-num\-items\-in\-list}},
  user1={\margm{list}\margm{cs}},
  description={counts the number of elements in the comma-separated 
   \meta{list} and stores the value in the command given by \meta{cs}},
  note={\styfmt{datatool-base}\texparserdefnote\ v2.31+},
  seealso={DTLformatlist,DTLlistelement,ifDTLlistskipempty},
  category={command}
}

@command{DTLifinlist,
  name={\csfmt{DTL\-if\-in\-list}},
  user1={\margm{element}\margm{list}\margm{true}\margm{false}},
  description={tests if \meta{element} is in the comma-separated \meta{list}},
  note={\styfmt{datatool-base}\texparserdefnote},
  category={command}
}

@command{DTLgidxParen,
  name={\csfmt{DTL\-gidx\-Paren}},
  user1={\margm{text}},
  description={normally expands to \code{ (\meta{text})} but is
locally redefined under certain situations.
Note that \idx{datatool2bib} discards the argument for sorting,
which is different to the behaviour with \sty{datagidx} when
constructing the sort value},
  note={\styfmt{datagidx}},
  category={command}
}

@command{DTLgidxIgnore,
  name={\csfmt{DTL\-gidx\-Ignore}},
  user1={\margm{text}},
  description={normally expands to its argument but is
locally redefined to ignore its argument under certain situations},
  note={\styfmt{datagidx}},
  category={command}
}

@command{si,
  name={\csfmt{si}},
  user1={\margm{unit}},
  description={displays the unit with intelligent formatting},
  note={\styfmt{siunitx}\texparserdefnote},
  category={command}
}

@command{unit,
  name={\csfmt{unit}},
  user1={\oargm{options}\margm{unit}},
  description={displays the unit with intelligent formatting},
  note={\styfmt{siunitx}\texparserdefnote},
  category={command}
}

@command{ce,
  name={\csfmt{ce}},
  user1={\margm{formula}},
  description={displays the chemical formula},
  note={\styfmt{mhchem}\texparserdefnote},
  category={command}
}

@command{textweathersymbol,
  name={\csfmt{text\-weather\-symbol}},
  user1={\margm{number}},
  description={displays weather symbol identified by \meta{number}},
  note={\styfmt{ifsym}},
  category={command}
}

@command{toprule,
  name={\csfmt{top\-rule}},
  description={horizontal rule for the top of a \envfmt{tabular}-like environment},
  note={\styfmt{booktabs}},
  category={command}
}

@command{midrule,
  name={\csfmt{mid\-rule}},
  description={horizontal rule for divider between header and main
   content of a \envfmt{tabular}-like environment},
  note={\styfmt{booktabs}},
  category={command}
}

@command{bottomrule,
  name={\csfmt{bottom\-rule}},
  description={horizontal rule for the bottom of a 
  \envfmt{tabular}-like environment},
  note={\styfmt{booktabs}},
  category={command}
}

@command{endhead,
  name={\csfmt{end\-head}},
  description={ends the header section},
  note={\styfmt{longtable}},
  category={command}
}

@command{endfoot,
  name={\csfmt{end\-foot}},
  description={ends the footer section},
  note={\styfmt{longtable}},
  category={command}
}

@command{glslowercase,
  name={\csfmt{gls\-lower\-case}},
  user1={\margm{text}},
  description={converts \meta{text} to lower case},
  note={\styfmt{glossaries} v4.50+\texparserdefnote},
  category={command}
}

@command{glsuppercase,
  name={\csfmt{gls\-upper\-case}},
  user1={\margm{text}},
  description={converts \meta{text} to \idx{uppercase}},
  note={\styfmt{glossaries} v4.50+\texparserdefnote},
  category={command}
}

@command{MakeTextLowercase,
  name={\csfmt{Make\-Text\-Lower\-case}},
  user1={\margm{text}},
  description={converts \meta{text} to lower case},
  note={\styfmt{textcase}\texparserdefnote},
  category={command}
}

@command{MakeTextUppercase,
  name={\csfmt{Make\-Text\-Upper\-case}},
  user1={\margm{text}},
  description={converts \meta{text} to \idx{uppercase}},
  note={\styfmt{textcase}\texparserdefnote},
  category={command}
}

@command{NoCaseChange,
  name={\csfmt{No\-Case\-Change}},
  user1={\margm{text}},
  description={prevents \cs{MakeTextUppercase} and
   \cs{MakeTextLowercase} from converting \meta{text}},
  note={\styfmt{textcase}\texparserdefnote},
  category={command}
}

@command{MakeUppercase,
  name={\csfmt{Make\-Upper\-case}},
  user1={\margm{text}},
  description={converts \meta{text} to \idx{uppercase}},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{char,
  name={\csfmt{char}},
  user1={\meta{number}},
  description={accesses the character identified by \meta{number}
(use \code{\csfmt{char}\idx{doublequotecharhex}\meta{hex}} if the
number is hexadecimal)},
  note={{}\TeX\ primitive\texparserdefnote},
  category={command}
}

@command{cs.symbol,
  name={\csfmt{symbol}},
  user1={\margm{number}},
  description={accesses the character identified by \meta{number}
(use \code{\csfmt{symbol}\marg{\idx{doublequotecharhex}\meta{hex}}} if the
number is hexadecimal)},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{number,
  name={\csfmt{number}},
  user1={\meta{value}},
  description={expands the given numerical \meta{value} to 
  a base~10 integer number stripping any leading
  zeros (use \code{\csfmt{char}\idx{doublequotecharhex}\meta{hex}} 
  if the value is hexadecimal)},
  note={{}\TeX\ primitive\texparserdefnote},
  category={command}
}

@command{the,
  name={\csfmt{the}},
  user1={\meta{register}},
  description={expands \meta{register} to the current value of the
   register},
  note={{}\TeX\ primitive\texparserdefnote},
  category={command}
}

@command{cs.string,
  name={\csfmt{string}},
  user1={\meta{token}},
  description={if \meta{token} is a control sequence it expands
   to the escape character followed by the control sequence name},
  note={{}\TeX\ primitive\texparserdefnote},
  category={command}
}

@command{let,
  name={\csfmt{let}},
  user1={\meta{token1}\meta{token2}},
  description={assigns \meta{token1} to \meta{token2}},
  note={{}\TeX\ primitive\texparserdefnote},
  category={command}
}

% See QUARKS for resource option markup

@command{u,
  name={\csfmt{u}},
  user1={\margm{character}},
  description={puts a breve accent over \meta{character}},
  note={kernel command\texparserdefnote},
  category={command},
  annote={accent}
}

@command{acute,
  name={\csfmt{'}},
  user1={\margm{character}},
  description={puts an acute accent over \meta{character}},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{umlaut,
  name={\csfmt{"}},
  user1={\margm{character}},
  description={puts an umlaut accent over \meta{character}},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{c,
  name={\csfmt{c}},
  user1={\margm{character}},
  description={puts a cedilla accent over \meta{character}},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{AA,
  name={\csfmt{AA}},
  description={produces the \idx!{uppercase} A-ring character \AA},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{aa,
  name={\csfmt{aa}},
  description={produces the \idx!{lowercase} a-ring character \aa},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{O,
  name={\csfmt{O}},
  description={produces the \idx!{uppercase} O-slash character \O},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{o,
  name={\csfmt{o}},
  description={produces the \idx!{lowercase} o-slash character \o},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{L,
  name={\csfmt{L}},
  description={produces the \idx!{uppercase} L-slash character \L},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{l,
  name={\csfmt{l}},
  description={produces the \idx!{lowercase} l-slash character \l},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{ae,
  name={\csfmt{ae}},
  description={produces the \idx!{lowercase} \ae-ligature},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{AE,
  name={\csfmt{AE}},
  description={produces the \idx!{uppercase} \AE-ligature},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{oe,
  name={\csfmt{oe}},
  description={produces the \idx!{lowercase} \oe-ligature},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{OE,
  name={\csfmt{OE}},
  description={produces the \idx!{uppercase} \OE-ligature},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{th,
  name={\csfmt{th}},
  description={produces the \idx!{lowercase} thorn \th},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{TH,
  name={\csfmt{TH}},
  description={produces the \idx!{uppercase} thorn \TH},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{ss,
  name={\csfmt{ss}},
  description={produces the \idx!{lowercase} eszett \ss},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{SS,
  name={\csfmt{SS}},
  description={produces the \idx!{uppercase} eszett \SS},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{ng,
  name={\csfmt{ng}},
  description={produces the \idx!{lowercase} eng \ng},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{NG,
  name={\csfmt{NG}},
  description={produces the \idx!{uppercase} eng \NG},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{dh,
  name={\csfmt{dh}},
  description={produces the \idx!{lowercase} eth \dh},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{DH,
  name={\csfmt{DH}},
  description={produces the \idx!{uppercase} eth \DH},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{dj,
  name={\csfmt{dj}},
  description={produces the \idx!{lowercase} d-stroke \dj},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{DJ,
  name={\csfmt{DJ}},
  description={produces the \idx!{uppercase} d-stroke \DJ},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{textsuperscript,
  name={\csfmt{textsuperscript}},
  user1={\margm{text}},
  description={displays \meta{text} as a superscript},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{textsubscript,
  name={\csfmt{textsubscript}},
  user1={\margm{text}},
  description={displays \meta{text} as a subscript},
  note={kernel command\texparserdefnote\ as from 2015/01/01},
  category={command}
}

@command{MakeLowercase,
  name={\csfmt{MakeLowercase}},
  user1={\margm{text}},
  description={converts \meta{text} to lower case},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{textsc,
  name={\csfmt{textsc}},
  user1={\margm{text}},
  description={applies small-caps font to \meta{text}},
  note={kernel command},
  category={command}
}

@command{textsmaller,
  name={\csfmt{text\-smaller}},
  user1={\margm{text}},
  description={typesets \meta{text} in a font size that's smaller
  than the surrounding text},
  note={\styfmt{relsize}},
  category={command}
}

@glscommand{glstextup,
  name={\csfmt{gls\-text\-up}},
  user1={\margm{text}},
  description={typesets \meta{text} in an upright font (used to
cancel the effect of \cs{textsc} in abbreviation styles that use
\ics{glsabbrvscfont})},
  note={\styfmt{glossaries} v3.09a+},
  topics={abbreviationcommands,formattingcommands},
  category={command}
}

@command{usepackage,
  name={\csfmt{use\-pack\-age}},
  user1={\oargm{options}\margm{name}\oargm{min version}},
  description={loads the package identified by \meta{name}},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{RequirePackage,
  name={\csfmt{Require\-Pack\-age}},
  user1={\oargm{options}\margm{name}\oargm{min version}},
  description={loads the package identified by \meta{name} from
    within another package},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{ProvidesPackage,
  name={\csfmt{Provides\-Pack\-age}},
  user1={\margm{name}\oargm{version}},
  description={identifies a package},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{DeclareOption,
  name={\csfmt{Declare\-Opt\-ions}},
  user1={\margm{name}\margm{code}},
  description={declares an option with the given \meta{name}},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{DeclareOption*,
  name={\csfmt{Declare\-Opt\-ions*}},
  user1={\margm{code}},
  description={indicates what to do with unknown options},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{ProcessOptions,
  name={\csfmt{Process\-Opt\-ions}},
  description={processes supplied options},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{PackageError,
  name={\csfmt{Pack\-age\-Err\-or}},
  user1={\margm{name}\margm{code}\margm{help}},
  description={generates an error message for the package identified
by \meta{name}},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{cs.color,
  name={\csfmt{color}},
  user1={\oargm{model}\margm{spec}},
  description={switches the current font colour},
  note={\styfmt{color}},
  category={command}
}

@command{textcolor,
  name={\csfmt{textcolor}},
  user1={\oargm{model}\margm{spec}\margm{text}},
  description={typesets \meta{text} in the given colour},
  note={\styfmt{color}},
  category={command}
}

@examplecommand{cjkname,
  name={\csfmt{cjkname}},
  user1={\margm{CJK characters}},
  description={example command},
  category={command}
}

@command{citation,
  name={\csfmt{citation}},
  user1={\margm{label}},
  description={written to the \ext{aux} file on each occurrence of
   \cs{cite}},
  note={kernel command},
  category={command}
}

@command{cite,
  name={\csfmt{cite}},
  user1={\margm{label}},
  description={cross-reference a bibliographic citation},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{bibliography,
  name={\csfmt{bibliography}},
  user1={\margm{file list}},
  description={display bibliography created by \BibTeX},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{refstepcounter,
  name={\csfmt{refstepcounter}},
  user1={\margm{counter name}},
  description={increments the given counter in a manner compatible
   with the \cs{label} cross-referencing mechanism},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{label,
  name={\csfmt{label}},
  user1={\margm{id}},
  description={creates a label that can be referenced with \ics{ref}
or \ics{pageref}},
  seealso={ref,pageref},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{pageref,
  name={\csfmt{pageref}},
  user1={\margm{id}},
  description={cross-reference the page where \cs{label}\margm{id}
occurred},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{ref,
  name={\csfmt{ref}},
  user1={\margm{id}},
  description={cross-reference the location where \cs{label}\margm{id}
occurred},
  seealso={label},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{autoref,
  name={\csfmt{autoref}},
  user1={\margm{id}},
  description={cross-reference with textual tag inferred from the
associated counter},
  seealso={label},
  note={\styfmt{hyperref}},
  category={command}
}

@command{par,
  name={\csfmt{par}},
  description={paragraph break},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{hyperlink,
  name={\csfmt{hyperlink}},
  user1={\margm{target name}\margm{text}},
  description={create a hyperlink to \meta{target name} with the given
\meta{text}},
  note={\styfmt{hyperref}\texparserdefnote},
  category={command}
}

@command{hypertarget,
  name={\csfmt{hypertarget}},
  user1={\margm{target name}\margm{text}},
  description={create a hypertarget with the given \meta{target
name} and the displayed \meta{text}},
  note={\styfmt{hyperref}\texparserdefnote},
  category={command}
}

@command{texorpdfstring,
  name={\csfmt{texorpdfstring}},
  user1={\margm{\TeX\ code}\margm{PDF text}},
  description={does \meta{PDF text} if used in a PDF bookmark,
   otherwise does \meta{\TeX\ code}},
  note={\styfmt{hyperref}},
  category={command}
}

@command{cs.hyperref,
  name={\csfmt{hyperref}},
  note={\styfmt{hyperref}},
  category={command}
}

@command{cs.hyperref.ext,
  parent={cs.hyperref},
  name={\csfmt{hyperref}},
  user1={\margm{URL}\margm{category}\margm{name}\margm{text}},
  description={create a hyperlink to an external location with
  the anchor formed from \code{\meta{category}.\meta{name}} 
  and the displayed \meta{text}},
  category={command}
}

@command{cs.hyperref.int,
  parent={cs.hyperref},
  name={\csfmt{hyperref}},
  user1={\oargm{label}\margm{text}},
  description={create an internal hyperlink with 
  the displayed \meta{text} to the same place
  that \code{\cs{ref}\margm{label}} would be linked.
  Note that the \meta{label} argument isn't optional. The
  square bracket notation disambiguates from the
  syntax for the external form of \cs{cs.hyperref.ext}},
  category={command}
}

@command{@currentlabelname,
  name={\csfmt{@current\-label\-name}},
  user1={},
  description={used to store the current title information for the next instance
   of \cs{label}},
  note={\styfmt{hyperref}},
  category={command}
}

@command{@currentHref,
  name={\csfmt{@current\-H\-ref}},
  user1={},
  description={used to store the current anchor for the next instance
   of \cs{label}},
  note={\styfmt{hyperref}},
  category={command}
}


@glscommand{glsrefentry,
  name={\csfmt{gls\-ref\-entry}},
  user1={\margm{label}},
  description={when used with \styopt{entrycounter} or
   \styopt{subentrycounter} may be used to cross-reference the
  entry's number in the glossary list with \cs{ref}},
  topics={crossrefcommands},
  seealso={ref},
  note={\styfmt{glossaries} v3.0+},
  category={command}
}

@glscommand{glsxtrpageref,
  name={\csfmt{gls\-xtr\-page\-ref}},
  user1={\margm{label}},
  description={when used with \styopt{entrycounter} or
   \styopt{subentrycounter} may be used to cross-reference the
  entry's number in the glossary list with \cs{pageref}},
  seealso={pageref},
  topics={crossrefcommands},
  note={\styfmt{glossaries-extra} v1.11},
  category={command}
}

@glscommand{glsxtrglossentry,
  name={\csfmt{gls\-xtr\-gloss\-entry}},
  user1={\margm{label}},
  description={displays the given entry \field{name} including a hypertarget (if
\sty{hyperref} has been loaded) as the destination for commands like
\cs{gls}},
  topics={linkcommands,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.21},
  category={command}
}

@glscommand{glsxtrglossentryother,
  name={\csfmt{gls\-xtr\-gloss\-entry\-other}},
  user1={\margm{header}\margm{label}\margm{field}},
  description={like \cs{glsxtrglossentry} but uses the value given
in the supplied internal \meta{field} where \meta{header} is the
code
to use in the header (leave empty for default)},
  topics={linkcommands,fieldrefcommands},
  note={\styfmt{glossaries-extra} v1.22+},
  category={command}
}

@glscommand{glsshowtarget,
  name={\csfmt{gls\-show\-target}},
  user1={\margm{label}},
  description={used to show the target name when the
   \styopt[showtargets]{debug} option is on},
  topics={debugging,linkcommands},
  note={\styfmt{glossaries} v4.32+},
  category={command}
}

@glscommand{showgloparent,
  name={\csfmt{show\-glo\-parent}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{parent} field in the transcript},
  topics={debugging,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglolevel,
  name={\csfmt{show\-glo\-level}},
  user1={\margm{label}},
  description={interrupts the document build and shows the entry's
   hierarchical level in the transcript},
  topics={debugging,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showgloname,
  name={\csfmt{show\-glo\-name}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{name} field in the transcript},
  topics={debugging,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglosort,
  name={\csfmt{show\-glo\-sort}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{sort} field in the transcript},
  topics={debugging,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglosymbol,
  name={\csfmt{show\-glo\-symbol}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{symbol} field in the transcript},
  topics={debugging,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglosymbolplural,
  name={\csfmt{show\-glo\-symbol\-plural}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{symbolplural} field in the transcript},
  topics={debugging,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showgloshort,
  name={\csfmt{show\-glo\-short}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{short} field in the transcript},
  topics={debugging,fieldrefcommands,abbreviationcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglolong,
  name={\csfmt{show\-glo\-long}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{long} field in the transcript},
  topics={debugging,fieldrefcommands,abbreviationcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showgloloclist,
  name={\csfmt{show\-glo\-loc\-list}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{loclist} field in the transcript},
  topics={debugging,fieldrefcommands,loclistcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showgloflag,
  name={\csfmt{show\-glo\-flag}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \idx{firstuseflag} in the transcript},
  topics={debugging,fieldrefcommands,conditional},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglodesc,
  name={\csfmt{show\-glo\-desc}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{description} field in the transcript},
  topics={debugging,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglodescplural,
  name={\csfmt{show\-glo\-desc\-plural}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{descriptionplural} field in the transcript},
  topics={debugging,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglotext,
  name={\csfmt{show\-glo\-text}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{text} field in the transcript},
  topics={debugging,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showgloplural,
  name={\csfmt{show\-glo\-plural}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{plural} field in the transcript},
  topics={debugging,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglofirst,
  name={\csfmt{show\-glo\-first}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{first} field in the transcript},
  topics={debugging,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglofirstpl,
  name={\csfmt{show\-glo\-firstpl}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{firstplural} field in the transcript},
  topics={debugging,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglotype,
  name={\csfmt{show\-glo\-type}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{type} field in the transcript},
  topics={debugging,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglocounter,
  name={\csfmt{show\-glo\-counter}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{counter} field in the transcript},
  topics={debugging,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglouseri,
  name={\csfmt{show\-glo\-useri}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{user1} field in the transcript},
  topics={debugging,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglouserii,
  name={\csfmt{show\-glo\-userii}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{user2} field in the transcript},
  topics={debugging,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglouseriii,
  name={\csfmt{show\-glo\-useriii}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{user3} field in the transcript},
  topics={debugging,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglouseriv,
  name={\csfmt{show\-glo\-useriv}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{user4} field in the transcript},
  topics={debugging,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglouserv,
  name={\csfmt{show\-glo\-userv}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{user5} field in the transcript},
  topics={debugging,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglouservi,
  name={\csfmt{show\-glo\-uservi}},
  user1={\margm{label}},
  description={interrupts the document build and shows the value of
   the \field{user6} field in the transcript},
  topics={debugging,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglofield,
  name={\csfmt{show\-glo\-field}},
  user1={\margm{entry label}\margm{internal field}},
  description={interrupts the document build and shows the value of
   the given field in the transcript},
  topics={debugging,fieldrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showgloglossaries,
  name={\csfmt{show\-glo\-glossaries}},
  description={interrupts the document build and shows the list
  of all non-ignored glossary types in the transcript},
  topics={debugging,glossrefs},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglossarytitle,
  name={\csfmt{show\-glos\-sary\-title}},
  user1={\margm{type}},
  description={interrupts the document build and shows the title
   of the given glossary in the transcript},
  topics={debugging,glossrefs},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglossarycounter,
  name={\csfmt{show\-glos\-sary\-counter}},
  user1={\margm{type}},
  description={interrupts the document build and shows the default
   counter for the given glossary in the transcript},
  topics={debugging,glossrefs},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{showglossaryentries,
  name={\csfmt{show\-glos\-sary\-entries}},
  user1={\margm{type}},
  description={interrupts the document build and shows the list of
   entry labels for the given glossary in the transcript},
  topics={debugging,glossrefs},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{GlsEntryCounterLabelPrefix,
  name={\csfmt{Gls\-Entry\-Counter\-Label\-Prefix}},
  description={used as a prefix in the \cs{label} command
   automatically implemented by the \styopt{entrycounter}
    and \styopt{subentrycounter} options},
  topics={hooks,crossrefcommands},
  note={\styfmt{glossaries} v4.38+},
  category={command}
}

@glscommand{GlsXtrStandaloneGlossaryType,
  name={\csfmt{Gls\-Xtr\-Stand\-alone\-Glossary\-Type}},
  description={expands to the label for \ics{currentglossary}
   within \ics{glsxtrglossentry} and \ics{glsxtrglossentryother}},
  topics={hooks,glossrefs,standalonestyles},
  note={\styfmt{glossaries-extra} v1.31+},
  category={command}
}

@glscommand{GlsXtrStandaloneSubEntryItem,
  name={\csfmt{Gls\-Xtr\-Stand\-alone\-Sub\-Entry\-Item}},
  user1 = {\margm{label}},
  description={used within \ics{glsxtrglossentry} and
\ics{glsxtrglossentryother} to display sub-item labels},
  topics={hooks,glossarystylecommands},
  note={\styfmt{glossaries-extra} v1.31+},
  category={command}
}

@glscommand{GlsXtrStandaloneEntryName,
  name={\csfmt{Gls\-Xtr\-Stand\-alone\-Entry\-Name}},
  user1 = {\margm{label}},
  description={used within \ics{glsxtrglossentry} to
   display the name (with a hypertarget, if supported)},
  topics={hooks,glossarystylecommands,fieldrefcommands,linkcommands},
  note={\styfmt{glossaries-extra} v1.37+},
  category={command}
}

@glscommand{GlsXtrStandaloneEntryOther,
  name={\csfmt{Gls\-Xtr\-Stand\-alone\-Entry\-Other}},
  user1 = {\margm{label}\margm{field}},
  description={used within \ics{glsxtrglossentryother} to
   display the given field value (with a hypertarget, if supported)},
  topics={hooks,glossarystylecommands,fieldrefcommands,linkcommands},
  note={\styfmt{glossaries-extra} v1.37+},
  category={command}
}

@glscommand{glsresetentrycounter,
  name={\csfmt{gls\-reset\-entry\-counter}},
  description={resets the \counter{glossaryentry} counter if the
\styopt{entrycounter} setting is on},
  topics={hooks,glossarystylecommands,assigncommands,crossrefcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{setentrycounter,
  name={\csfmt{set\-entry\-counter}},
  user1={\oargm{prefix}\margm{counter}},
  description={sets up the entry's associated counter and prefix
   required by \cs{glshypernumber}},
  topics={glossarystylecommands,assigncommands,loclistcommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{setupglossaries,
  name={\csfmt{set\-up\-glossaries}},
  user1 = {\margm{\keyvallist}},
  description={applies the base \styfmt{glossaries} options
  that are allowed to be changed after the package has loaded},
  topics={assigncommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{glossariesextrasetup,
  name={\csfmt{glossaries\-extra\-setup}},
  user1 = {\margm{\keyvallist}},
  description={applies the extension \styfmt{glossaries-extra} options
  that are allowed to be changed after the package has loaded},
  topics={assigncommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glstreepredesc,
  name={\csfmt{gls\-tree\-pre\-desc}},
  user1={\margm{label}},
  description={separator used before the description for the
   \glostyle{tree} styles},
  topics={glossarystylecommands,separatorcommands,formattingcommands},
  note={\styfmt{glossary-tree} v4.26+},
  category={command}
}

@glscommand{glstreenonamedesc,
  name={\csfmt{gls\-tree\-no\-name\-desc}},
  user1={\margm{label}},
  description={displays the pre-description separator, the
   description and the post-description hook for the
   \glostyle{treenoname} styles},
  topics={glossarystylecommands,separatorcommands,formattingcommands},
  note={\styfmt{glossaries-extra-stylemods} v1.31+},
  category={command}
}

@glscommand{glsfmtshort,
  name={\csfmt{gls\-fmt\-short}},
  user1={\margm{label}},
  description={provided for use in section or caption titles, this
displays the short form of the given abbreviation},
  topics={formattingcommands,entryrefcommands,fieldrefcommands,abbreviationcommands,capheadcommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glsfmtlong,
  name={\csfmt{gls\-fmt\-long}},
  user1={\margm{label}},
  description={provided for use in section or caption titles, this
displays the long form of the given abbreviation},
  topics={formattingcommands,entryrefcommands,fieldrefcommands,abbreviationcommands,capheadcommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glsfmtfull,
  name={\csfmt{gls\-fmt\-full}},
  user1={\margm{label}},
  description={provided for use in section or caption titles, this
  displays the full form of the given abbreviation (using the inline
  style that matches \cs{glsxtrfull})},
  topics={formattingcommands,entryrefcommands,abbreviationcommands,capheadcommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glsfmtname,
  name={\csfmt{gls\-fmt\-name}},
  user1={\margm{label}},
  description={provided for use in section or caption titles, this
displays the given entry's name},
  topics={formattingcommands,entryrefcommands,fieldrefcommands,capheadcommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glsfmtfirst,
  name={\csfmt{gls\-fmt\-first}},
  user1={\margm{label}},
  description={provided for use in section or caption titles, this
displays the given entry's \field{first} field},
  topics={formattingcommands,entryrefcommands,fieldrefcommands,capheadcommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{glsfmttext,
  name={\csfmt{gls\-fmt\-text}},
  user1={\margm{label}},
  description={provided for use in section or caption titles, this
displays the given entry's \field{text} field},
  topics={formattingcommands,entryrefcommands,fieldrefcommands,capheadcommands},
  note={\styfmt{glossaries-extra}},
  category={command}
}

@glscommand{theHentrycounter,
  name={\csfmt{the\-H\-entry\-counter}},
  user1={},
  description={when indexing, this is set to the
   \csfmt{theH}\meta{counter} command corresponding to the 
   current indexing counter (or, if undefined, 
   \csfmt{the}\meta{counter})},
  topics={glossarystylecommands,linkcommands},
  note={\styfmt{glossaries}},
  category={command}
}

@glscommand{acronymfont,
  name={\csfmt{acronym\-font}},
  user1={\margm{text}},
  description={used by the base \sty{glossaries} package's acronyms to
  encapsulate the short form. This command should not be used with
  \sty{glossaries-extra}},
  topics={formattingcommands},
  note={\styfmt{glossaries} \& \styfmt{datagidx}},
  category={command}
}

@mainglscommand{datagidx.newterm,
  name={\csfmt{new\-term}\nameparen{\styfmt{datagidx}}},
  text={\csfmt{new\-term}},
  user1={\oargm{\keyvallist}\margm{name}},
  description={defines a new term},
  topics={convertercommands},
  note={\styfmt{datagidx}},
  category={command}
}

@mainglscommand{datagidx.newacro,
  name={\csfmt{new\-acro}\nameparen{\styfmt{datagidx}}},
  text={\csfmt{new\-acro}},
  user1={\oargm{\keyvallist}\margm{short}\margm{long}},
  description={defines a new abbreviation},
  topics={convertercommands},
  note={\styfmt{datagidx}},
  category={command}
}

@mainglscommand{datagidx.newgidx,
  name={\csfmt{new\-gidx}\nameparen{\styfmt{datagidx}}},
  text={\csfmt{new\-gidx}},
  user1={\oargm{\keyvallist}\margm{db-name}\margm{title}},
  description={defines a new database customised for \sty{datagidx}},
  topics={convertercommands},
  note={\styfmt{datagidx}},
  category={command}
}

@glscommand{datagidx.glsadd,
  name={\csfmt{gls\-add}\nameparen{\styfmt{datagidx}}},
  text={\csfmt{gls\-add}},
  user1={\marg{\oargm{format}\meta{label}}},
  description={indexes the term identified by the given label},
  topics={convertercommands},
  note={\styfmt{datagidx}},
  category={command}
}

@glscommand{datagidx.gls,
  name={\csfmt{gls}\nameparen{\styfmt{datagidx}}},
  text={\csfmt{gls}},
  user1={\marg{\oargm{format}\meta{label}}},
  description={indexes and displays the term identified by the given
label with a hyperlink, if supported},
  topics={convertercommands},
  note={\styfmt{datagidx}},
  category={command}
}

@glscommand{datagidx.glsnl,
  name={\csfmt{glsnl}\nameparen{\styfmt{datagidx}}},
  text={\csfmt{glsnl}},
  user1={\marg{\oargm{format}\meta{label}}},
  description={indexes and displays the term identified by the given label
without a hyperlink},
  topics={convertercommands},
  note={\styfmt{datagidx}},
  category={command}
}

@mainglscommand{DTLsetup,
  name={\csfmt{DTLsetup}},
  user1={\margm{options}},
  description={sets default \sty{datatool} options},
  note={\styfmt{datatool-base}\texparserdefnote},
  topics={convertercommands},
  category={command}
}

@mainglscommand{DTLread,
  name={\csfmt{DTLread}},
  user1={\oargm{options}\margm{filename}},
  description={loads a database from the given file, where the
format should be identified in \meta{options}},
  note={\styfmt{datatool}\texparserdefnote\ v3.0+},
  topics={convertercommands},
  category={command}
}

@glscommand{DTLloaddb,
  name={\csfmt{DTLloaddb}},
  user1={\oargm{options}\margm{db-name}\margm{filename}},
  description={loads CSV data from the given file},
  note={\styfmt{datatool}\texparserdefnote},
  topics={convertercommands},
  category={command}
}

@glscommand{DTLloaddbtex,
  name={\csfmt{DTLloaddbtex}},
  user1={\margm{cs}\margm{filename}},
  description={loads \ext{dbtex} data from the given file},
  note={\styfmt{datatool}\texparserdefnote\ v2.20+},
  topics={convertercommands},
  category={command}
}

@command{DTLwrite,
  name={\csfmt{DTLwrite}},
  note={\styfmt{datatool}\texparserdefnote\ v3.0+},
  category={command}
}

@glscommand{DTLnewcurrencysymbol,
  name={\csfmt{DTL\-new\-currency\-symbol}},
  user1={\margm{symbol}},
  description={identifies \meta{symbol} as a currency symbol},
  note={\styfmt{datatool}\texparserdefnote},
  topics={convertercommands},
  category={command}
}

@glscommand{DTLsetnumberchars,
  name={\csfmt{DTLsetnumberchars}},
  user1={\margm{number group char}\margm{decimal char}},
  description={sets the number group and decimal characters},
  note={\styfmt{datatool}\texparserdefnote},
  topics={convertercommands},
  category={command}
}

@mainglscommand{DTLnewdb,
  name={\csfmt{DTLnewdb}},
  user1={\margm{db-name}},
  description={defines a new database},
  note={\styfmt{datatool}\texparserdefnote},
  topics={convertercommands},
  category={command}
}

@mainglscommand{DTLnewrow,
  name={\csfmt{DTL\-new\-row}},
  user1={\margm{db-name}},
  description={creates a new row in the given database},
  note={\styfmt{datatool}\texparserdefnote},
  topics={convertercommands},
  category={command}
}

@mainglscommand{DTLnewdbentry,
  name={\csfmt{DTL\-new\-db\-entry}},
  user1={\margm{db-name}\margm{col-key}\margm{value}},
  description={adds a new entry to the final row of the given database},
  note={\styfmt{datatool}\texparserdefnote},
  topics={convertercommands},
  category={command}
}

@mainglscommand{DTLaction,
  name={\csfmt{DTL\-action}},
  user1={\oargm{options}\margm{action}},
  description={general purpose action command},
  note={\styfmt{datatool}\texparserdefnote\ v3.0+},
  topics={convertercommands},
  category={command}
}

@mainglscommand{dtlexpandnewvalue,
  name={\csfmt{dtl\-expand\-new\-value}},
  description={new values will be expanded before being added to the database},
  note={\styfmt{datatool}\texparserdefnote},
  topics={convertercommands},
  category={command}
}

@mainglscommand{dtlnoexpandnewvalue,
  name={\csfmt{dtl\-no\-expand\-new\-value}},
  description={new values will not be expanded before being added to the database},
  note={\styfmt{datatool}\texparserdefnote},
  topics={convertercommands},
  category={command}
}

@command{tableofcontents,
  name={\csfmt{table\-of\-contents}},
  description={displays the \glsxtrlong{toc} (by reading in the
\ext{toc} file) and then opens \ext{toc} file to allow the
sectioning commands to write to it},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{two@digits,
  name={\csfmt{two\-@\-digits}},
  user1={\margm{number}},
  description={expands to \meta{number} zero-padded to ensure at
  least two digits},
  seealso={dtlpadleadingzeros,bibglspaddigits},
  note={kernel command\texparserdefnote},
  category={command}
}

@command{IfTeXParserLib,
  name={\csfmt{If\-TeX\-Parser\-Lib}},
  user1={\margm{parser code}\margm{\TeX\ code}},
  description={defined by the \TeX\ parser library to expand to
  \meta{parser code} and by \sty{glossaries-extra-bib2gls} to expand
  to \meta{\TeX\ code}},
  note={\styfmt{glossaries-extra-bib2gls}\texparserdefnote},
  seealso={IfNotBibGls},
  category={command}
}

@command{IfNotBibGls,
  name={\csfmt{If\-Not\-Bib\-Gls}},
  user1={\margm{not bib2gls}\margm{bib2gls}},
  description={defined by the \bibgls\ interpreter to expand to
  \meta{bib2gls} and by \sty{glossaries-extra-bib2gls} to expand
  to \meta{not bib2gls}. The command either won't be recognised by other
applications that use the \texparserlib\ or it will expand to its
first argument},
  note={\styfmt{glossaries-extra-bib2gls}\texparserdefnote},
  seealso={IfTeXParserLib},
  category={command}
}

@command{dtlpadleadingzeros,
  name={\csfmt{dtl\-pad\-lead\-ing\-zeros}},
  user1={\margm{num digits}\margm{number}},
  description={expands to \meta{number} zero-padded to ensure at
   least \meta{num digits} digits},
  note={\styfmt{datatool-base}\texparserdefnote\ v3.0+},
  category={command}
}

@command{DTLsortwordlist,
  name={\csfmt{DTL\-sort\-word\-list}},
  user1={\margm{clist-var}\margm{handler-cs}},
  description={sorts the given comma-separated list variable, where the values
     are preprocessed by the given sort handler function},
  note={\styfmt{datatool-base} v3.0+},
  category={command}
}

@command{datatoolasciistart,
  name={\csfmt{data\-tool\-ascii\-start}},
  description={marker used with \cs{DTLsortwordlist}},
  note={\styfmt{datatool-base}\texparserdefnote\ v3.0+},
  category={command}
}

@command{datatoolpersoncomma,
  name={\csfmt{data\-tool\-person\-comma}},
  description={marker used with \cs{DTLsortwordlist}},
  note={\styfmt{datatool-base}\texparserdefnote},
  category={command}
}

@command{datatoolplacecomma,
  name={\csfmt{data\-tool\-place\-comma}},
  description={marker used with \cs{DTLsortwordlist}},
  note={\styfmt{datatool-base}\texparserdefnote},
  category={command}
}

@command{datatoolsubjectcomma,
  name={\csfmt{data\-tool\-subject\-comma}},
  description={marker used with \cs{DTLsortwordlist}},
  note={\styfmt{datatool-base}\texparserdefnote},
  category={command}
}

@command{datatoolparenstart,
  name={\csfmt{data\-tool\-paren\-start}},
  description={marker used with \cs{DTLsortwordlist}},
  note={\styfmt{datatool-base}\texparserdefnote\ v3.0+},
  category={command}
}

@command{datatoolctrlboundary,
  name={\csfmt{data\-tool\-ctrl\-bound\-ary}},
  description={marker used with \cs{DTLsortwordlist}},
  note={\styfmt{datatool-base}\texparserdefnote\ v3.0+},
  category={command}
}

@command{datatoolasciiend,
  name={\csfmt{data\-tool\-ascii\-end}},
  description={marker used with \cs{DTLsortwordlist}},
  note={\styfmt{datatool-base}\texparserdefnote\ v3.0+},
  category={command}
}

@command{datatoolparen,
  name={\csfmt{data\-tool\-paren}},
  user1={\margm{text}},
  description={marker used with \cs{DTLsortwordlist} for parenthetical
content},
  note={\styfmt{datatool-base}\texparserdefnote\ v3.0+},
  category={command}
}

@command{dtltexorsort,
  name={\csfmt{dtl\-tex\-or\-sort}},
  user1={\margm{normal}\margm{sorting}},
  description={provided for use with \cs{DTLsortwordlist}, this
normally expands to its first argument. Within \cs{DTLsortwordlist}
or when used by the interpreter with \longswitch{datatool-sort-markers}
this command will expand to its second argument instead},
  note={\styfmt{datatool-base}\texparserdefnote\ v3.0+},
  category={command}
}

@command{bibglspaddigits,
  name={\csfmt{bib\-gls\-pad\-digits}},
  user1={\margm{num digits}\margm{number}},
  description={expands to \meta{number} zero-padded to ensure at
   least \meta{num digits} digits},
  seealso={dtlpadleadingzeros},
  note={\bibgls\ interpreter only},
  category={command}
}

@command{underline,
  name={\csfmt{under\-line}},
  user1={\margm{text}},
  description={underlines the given text},
  note={kernel command},
  category={command}
}

@command{ul,
  name={\csfmt{ul}},
  user1={\margm{text}},
  description={underlines the given text},
  note={\styfmt{soul}},
  category={command}
}

@command{ding,
  name={\csfmt{ding}},
  user1={\margm{number}},
  description={displays the symbol associated with the given number},
  note={\styfmt{pifont}\texparserdefnote},
  category={command}
}

@index{exampleterms,
  name = {example terms}
}

@exampleentry{ex1.duck,
  parent={exampleterms},
  name={duck},
  description={a waterbird with webbed feet},
  identifier={animal}
}

@exampleentry{ex1.goose,
  parent={exampleterms},
  name={goose},
  plural={geese},
  description={a large waterbird with a long neck, short legs,
   webbed feet and a short broad bill},
  identifier={animal}
}

@exampleentry{ex2.duck,
  parent={exampleterms},
  name={Duck (noun)},
  first={duck (quack, quack)},
  firstplural={ducks (quack, quack)},
  text={duck},
  description={a waterbird with webbed feet},
  identifier={animal}
}

@exampleentry{ex2.goose,
  parent={exampleterms},
  name={Goose (noun, pl.\ geese)},
  first={goose (honk, honk)},
  firstplural={geese (honk, honk)},
  text={goose},
  plural={geese},
  description={a large waterbird with a long neck, short legs,
   webbed feet and a short broad bill},
  identifier={animal}
}

@exampleentry{ex.fleuron,
  parent={exampleterms},
  name = {fleuron},
  symbol = {\ding{167}},
  category = {ornament},
  description = {typographic ornament}
}

@exampleentry{ex.pi,
  parent={exampleterms},
  name = {Archimedes' constant},
  symbol = {\ensuremath{\pi}},
  category = {constant},
  description = {ratio of a circle's circumference to its diameter}
}

@exampleentry{ex.thetai,
  parent = {exampleterms},
  name = {theta parameter},
  symbol = {\ensuremath{\theta_i}},
  description = {one of the model parameters}
}

@exampleabbreviation{ex.tug,
  parent={exampleterms},
  category = {longshortem},
  short = {TUG},
  long = {\TeX\ Users Group}
}

@exampleabbreviation{ex.ascii,
  short = {ascii},
  long = {American Standard Code for Information Interchange},
  category={shortsc}
}

@exampleabbreviation{ex.svm,
  parent={exampleterms},
  short = {SVM},
  long = {support vector machine}
}

@exampleabbreviation{ex.ssl,
  parent={exampleterms},
  category = {markwordsexample},
  short = {SSL},
  long = {Secure Sockets Layer}
}

@exampleabbreviation{ex.xml,
  parent={exampleterms},
  category = {taggingexample},
  short = {XML},
  long = {e\itag{x}tensible \itag{m}arkup \itag{l}anguage}
}

@exampleabbreviation{ex.dante,
  parent={exampleterms},
  category = {discardperiodexample},
  short = {DANTE e.V.},
  long = {Deutschsprachige Anwendervereinigung \TeX\ e.V.}
}

@exampleabbreviation{ex.gp,
  parent={exampleterms},
  category = {discardperiodexample},
  short = {G.P.},
  long = {General Practitioner}
}

@exampleabbreviation{ex2.gp,
  parent={exampleterms},
  category = {initialism},
  short = {GP},
  long = {General Practitioner}
}

@exampleabbreviation{ex.rna,
  parent={exampleterms},
  short = {RNA},
  long = {ribonukleins\"aure},
  user1 = {ribonucleic acid},
  category = {abbrvtrans}
}

@exampleentry{ex.length,
  parent={exampleterms},
  name = {length},
  symbol = {\si{\metre}},
  description = {measurement between two points}
}

@exampleentry{ex.area,
  parent={exampleterms},
  name = {area},
  symbol = {\si{\metre\squared}},
  description = {measurement of a surface}
}

@examplesymbol{ex2.length,
  parent={exampleterms},
  description = {length},
  name = {\si{\metre}}
}

@examplesymbol{ex2.area,
  parent={exampleterms},
  description = {area},
  name = {\si{\metre\squared}}
}

@examplesymbol{ex.deriv,
  parent={exampleterms},
  description = {derivative},
  name = {\ensuremath{\derivfn{x}}},
  user1 = {derivfn}
}

@exampleindex{hom.bow1,
  name={bow},
  description={(rhymes with toe)},
  category = {homograph}
}

@exampleentry{hom.bowknot,
  parent={hom.bow1},
  description = {a knot tied with two loops and loose ends},
  category = {homograph}
}

@exampleentry{hom.bowweapon,
  parent={hom.bow1},
  description = {a weapon for shooting arrows, made of curved wood
  joined at both ends with taut string},
  category = {homograph}
}

@exampleindex{hom.bow2,
  name={bow},
  description={(rhymes with cow)},
  category = {homograph}
}

@exampleindex{hom.bowbend,
  parent={hom.bow2},
  description={bend head or upper body},
  category = {homograph}
}

@exampleindex{hom.bowpressure,
  parent={hom.bow2},
  description={give in to pressure},
  category = {homograph}
}

@exampleindex{hom.bow3,
  name={bow},
  description={(also bows) the front end of a ship},
  category = {homograph}
}

@exampleindex{hom.glossary,
  name={glossary},
  category = {homograph}
}

@exampleentry{hom.glossarycol,
  parent = {hom.glossary},
  description = {collection of glosses},
  category = {homograph}
}

@exampleentry{hom.glossarylist,
  parent = {hom.glossary},
  description = {list of technical words},
  category = {homograph}
}

@exampleentry{hier.animal,
 name = {animal},
 description = {living organism with a nervous system and sense organs
    that can move independently},
 category = {hierarchical}
}

@exampleentry{hier.bird,
 parent = {hier.animal},
 name = {bird},
 description = {warm-blooded egg-laying animal with feathers, wings 
   and a beak},
 category = {hierarchical}
}

@exampleentry{hier.duck,
 parent = {hier.bird},
 name = {duck},
 description={a waterbird with webbed feet},
 category = {hierarchical}
}

@exampleentry{hier.goose,
 parent = {hier.bird},
 name = {goose},
 description = {a large waterbird with a long neck, short legs,
   webbed feet and a short broad bill},
 category = {hierarchical}
}

@exampleentry{hier.mineral,
 name = {mineral},
 description = {natural inorganic substance},
 category = {hierarchical}
}

@exampleentry{hier.calcite,
 parent = {hier.mineral},
 name = {calcite},
 description = {a carbonate mineral},
 category = {hierarchical}
}

@exampleentry{hier.quartz,
 parent = {hier.mineral},
 name = {quartz},
 description = {hard mineral consisting of silica},
 category = {hierarchical}
}

@exampleentry{hier.amethyst,
 parent = {hier.quartz},
 name = {amethyst},
 description = {a purple type of quartz},
 category = {hierarchical}
}

@exampleentry{hier.citrine,
 parent = {hier.quartz},
 name = {citrine},
 description = {a form of quartz with a colour ranging
from pale yellow to brown due to ferric impurities},
 category = {hierarchical}
}

@exampleentry{ex2.amethyst,
 name = {amethyst},
 description = {a purple type of quartz},
 symbol = {\ce{SiO2}},
 user3={A},
 user4={A},
 category = {standalone}
}

@exampleentry{ex3.goose,
  name={goose},
  user3={G},
  user4={G},
  plural={geese},
  description={a large waterbird with a long neck, short legs,
   webbed feet and a short broad bill},
  category={standalone}
}

@exampleentry{ex3.duck,
  name={duck},
  user3={D},
  user4={D},
  description={a waterbird with webbed feet},
  category={standalone}
}

@exampleentry{standalone.pi,
  name = {\ensuremath{\pi}},
  description = {Archimedes' constant},
  user3={glssymbols},
  user4={greek},
  category = {standalone}
}

@exampleentry{standalone.area,
  name = {\ensuremath{A}},
  description = {area},
  user3={glssymbols},
  user4={A},
  category = {standalone}
}

@exampleentry{standalone.radius,
  name = {\ensuremath{r}},
  description = {radius},
  user3={glssymbols},
  user4={R},
  category = {standalone}
}

@exampleentry{standalone.circumference,
  name = {\ensuremath{C}},
  user3={glssymbols},
  user4={C},
  description = {circumference},
  category = {standalone}
}

