summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-10-20 20:37:01 +0000
committerKarl Berry <karl@freefriends.org>2022-10-20 20:37:01 +0000
commitdfd3a224de343462796bcded2036ad4d70799aad (patch)
tree7ed53dc32bf67b1268c944d446e9b513943ac8dd /Master/texmf-dist/tex
parent1bea5105918383ace6baf917095f5127b4b52025 (diff)
glossaries-extra (20oct22)
git-svn-id: svn://tug.org/texlive/trunk@64764 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/example-glossaries-xr.tex4
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-2021-11-22.sty15124
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-abbrstyles.def6251
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-bib2gls-2021-11-22.sty1791
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-bib2gls.sty447
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-stylemods-2021-11-22.sty1575
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-stylemods.sty314
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty9680
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex-2021-11-22.sty238
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex.sty53
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossary-longextra-2021-11-22.sty910
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossary-longextra.sty331
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossary-table.sty925
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossary-topic-2021-11-22.sty206
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossary-topic.sty24
15 files changed, 32483 insertions, 5390 deletions
diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/example-glossaries-xr.tex b/Master/texmf-dist/tex/latex/glossaries-extra/example-glossaries-xr.tex
index ec47f031124..4553100b578 100644
--- a/Master/texmf-dist/tex/latex/glossaries-extra/example-glossaries-xr.tex
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/example-glossaries-xr.tex
@@ -7,7 +7,7 @@
%% glossaries-extra.dtx (with options: `example-glossaries-xr.tex,package')
%%
%% glossaries-extra.dtx
-%% Copyright 2021 Nicola Talbot
+%% Copyright 2022 Nicola Talbot
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -21,7 +21,7 @@
%%
%% The Current Maintainer of this work is Nicola Talbot.
%%
-%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib.
+%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-abbrstyles.def, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, glossary-table.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib, glossaries-extra-2021-11-22.sty, glossaries-extra-bib2gls-2021-11-22.sty, glossaries-extra-stylemods-2021-11-22.sty, glossary-bookindex-2021-11-22.sty, glossary-longextra-2021-11-22.sty, glossary-topic-2021-11-22.sty.
%%
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-2021-11-22.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-2021-11-22.sty
new file mode 100644
index 00000000000..67187231faf
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-2021-11-22.sty
@@ -0,0 +1,15124 @@
+%%
+%% This is file `glossaries-extra-2021-11-22.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries-extra.dtx (with options: `glossaries-extra-2021-11-22.sty,package')
+%%
+%% glossaries-extra.dtx
+%% Copyright 2022 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-abbrstyles.def, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, glossary-table.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib, glossaries-extra-2021-11-22.sty, glossaries-extra-bib2gls-2021-11-22.sty, glossaries-extra-stylemods-2021-11-22.sty, glossary-bookindex-2021-11-22.sty, glossary-longextra-2021-11-22.sty, glossary-topic-2021-11-22.sty.
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{glossaries-extra}[2021/11/22 v1.48 (NLCT)]
+\RequirePackage{xkeyval}
+\RequirePackage{etoolbox}
+\@ifpackageloaded{glossaries}
+{%
+ \newcommand{\glsxtr@dooption}[1]{\setupglossaries{#1}}%
+ \let\@glsxtr@declareoption\@gls@declareoption
+}
+{%
+ \newcommand{\glsxtr@dooption}[1]{%
+ \PassOptionsToPackage{#1}{glossaries}%
+ }%
+ \PassOptionsToPackage{toc}{glossaries}
+ \PassOptionsToPackage{nopostdot}{glossaries}
+ \PassOptionsToPackage{noredefwarn}{glossaries}
+ \@ifpackageloaded{polyglossia}%
+ {}%
+ {%
+ \@ifpackageloaded{babel}%
+ {\PassOptionsToPackage{translate=babel}{glossaries}}%
+ {}%
+ }%
+ \newcommand*{\@glsxtr@declareoption}[2]{%
+ \DeclareOptionX{#1}{#2}%
+ \DeclareOption{#1}{#2}%
+ }
+}
+\newcommand*{\glsxtrundefaction}[2]{%
+ \@glsxtrundeftag\PackageError{glossaries-extra}{#1}{#2}%
+}
+\newcommand*{\glsxtr@warnonexistsordo}[1]{}
+\newcommand*{\glsxtrundeftag}{??}
+\newcommand*{\@glsxtrundeftag}{}
+\newcommand*{\@glsxtr@warn@undefaction}[2]{%
+ \@glsxtrundeftag\GlossariesExtraWarning{#1}%
+}
+\newcommand*{\@glsxtr@err@undefaction}[2]{%
+ \@glsxtrundeftag\PackageError{glossaries-extra}{#1}{#2}%
+}
+\newcommand*{\@glsxtr@warn@onexistsordo}[1]{%
+ \GlossariesExtraWarning{\string#1\space hasn't been defined, so
+ some errors won't be converted to warnings.
+ (This most likely means your version of
+ glossaries.sty is below version 4.19.)}%
+}
+
+\newcommand*{\@glsxtr@redef@forglsentries}{}
+\newcommand*{\@glsxtr@do@redef@forglsentries}{%
+ \renewcommand*{\forglsentries}[3][\glsdefaulttype]{%
+ \protected@edef\@@glo@list{\csname glolist@##1\endcsname}%
+ \ifdefstring{\@@glo@list}{,}%
+ {%
+ \GlossariesExtraWarning{No entries defined in glossary `##1'}%
+ }%
+ {%
+ \@for##2:=\@@glo@list\do
+ {%
+ \ifdefempty{##2}{}{##3}%
+ }%
+ }%
+ }%
+}%
+\define@choicekey{glossaries-extra.sty}{undefaction}%
+ [\glsxtr@undefaction@val\glsxtr@undefaction@nr]%
+ {warn,error}%
+ {%
+ \ifcase\glsxtr@undefaction@nr\relax
+ \let\glsxtrundefaction\@glsxtr@warn@undefaction
+ \let\glsxtr@warnonexistsordo\@glsxtr@warn@onexistsordo
+ \let\@glsxtr@redef@forglsentries\@glsxtr@do@redef@forglsentries
+ \or
+ \let\glsxtrundefaction\@glsxtr@err@undefaction
+ \let\glsxtr@warnonexistsordo\@gobble
+ \let\@glsxtr@redef@forglsentries\relax
+ \fi
+ }
+\newcommand*{\@glsxtr@record}[3]{}
+\newcommand*{\glsxtr@recordsee}[2]{}
+\newcommand*{\@glsxtr@defaultnumberformat}{glsnumberformat}%
+\newcommand*{\GlsXtrSetDefaultNumberFormat}[1]{%
+ \renewcommand*{\@glsxtr@defaultnumberformat}{#1}%
+}%
+\newcommand*{\@glsxtr@do@record@wrglossary}[1]{%
+ \begingroup
+ \ifKV@glslink@noindex
+ \else
+ \protected@edef\@gls@label{\glsdetoklabel{#1}}%
+ \let\glslabel\@gls@label
+ \glswriteentry{#1}%
+ {%
+ \ifdefempty{\@glsxtr@thevalue}%
+ {%
+ \ifx\@glsxtr@org@theHvalue\@glsxtr@theHvalue
+ \else
+ \let\theHglsentrycounter\@glsxtr@theHvalue
+ \fi
+ \glsxtr@saveentrycounter
+ \let\@@do@@wrglossary\@glsxtr@dorecord
+ }%
+ {%
+ \let\theglsentrycounter\@glsxtr@thevalue
+ \let\theHglsentrycounter\@glsxtr@theHvalue
+ \let\@@do@@wrglossary\@glsxtr@dorecordnodefer
+ }%
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@alsoindex
+ \glsxtr@@do@wrglossary{#1}%
+ \else
+ \@@glsxtrwrglossmark
+ \glsxtr@inc@wrglossaryctr{#1}%
+ \@@do@@wrglossary
+ \fi
+ }%
+ \fi
+ \endgroup
+}
+\newcommand*{\glsxtr@do@alsoindex@wrglossary}[1]{%
+ \glsxtr@@do@wrglossary{#1}%
+ \@glsxtr@do@record@wrglossary{#1}%
+}
+\newcommand*{\@@glsxtr@record}[3]{%
+ \protected@edef\@gls@label{\glsdetoklabel{#2}}%
+ \let\glslabel\@gls@label
+ \ifglsentryexists{#2}{}%
+ {%
+ \@@glsxtrwrglossmark
+ \begingroup
+ \let\@glsnumberformat\@glsxtr@defaultnumberformat
+ \def\@glsxtr@thevalue{}%
+ \def\@glsxtr@theHvalue{\@glsxtr@thevalue}%
+ \let\@glsxtr@org@theHvalue\@glsxtr@theHvalue
+ \let\@gls@counter\glscounter
+ \if@glsxtr@equations
+ \@glsxtr@use@equation@counter
+ \fi
+ \@gls@setdefault@glslink@opts
+ \csuse{@glsxtr@#3@prekeys}%
+ \setkeys{#3}{#1}%
+ \glsxtr@do@autoadd{#3}%
+ \csuse{@glsxtr@#3@postkeys}%
+ \glsxtr@inc@wrglossaryctr{#2}%
+ \ifKV@glslink@noindex
+ \else
+ \glswriteentry{#2}%
+ {%
+ \ifdefempty{\@glsxtr@thevalue}%
+ {%
+ \ifx\@glsxtr@org@theHvalue\@glsxtr@theHvalue
+ \else
+ \let\theHglsentrycounter\@glsxtr@theHvalue
+ \fi
+ \glsxtr@saveentrycounter
+ \let\@@do@@wrglossary\@glsxtr@dorecord
+ }%
+ {%
+ \let\theglsentrycounter\@glsxtr@thevalue
+ \let\theHglsentrycounter\@glsxtr@theHvalue
+ \let\@@do@@wrglossary\@glsxtr@dorecordnodefer
+ }%
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@alsoindex
+ \glsxtr@@do@wrglossary{#2}%
+ \else
+ \@@do@@wrglossary
+ \fi
+ }%
+ \fi
+ \endgroup
+ }%
+}
+\newcommand{\@glsxtr@glslink@prekeys}{\glslinkpresetkeys}
+\newcommand{\@glsxtr@glslink@postkeys}{\glslinkpostsetkeys}
+\newcommand{\@glsxtr@glossadd@prekeys}{\glsaddpresetkeys}
+\newcommand{\@glsxtr@glossadd@postkeys}{\glsaddpostsetkeys}
+\newcommand*\@glsxtr@dorecord{%
+ \global\let\@glsrecordlocref\theglsentrycounter
+ \let\@glsxtr@orgprefix\@glo@counterprefix
+ \ifx\theglsentrycounter\theHglsentrycounter
+ \def\@glo@counterprefix{}%
+ \else
+ \protected@edef\@glsxtr@theentrycounter{\theglsentrycounter}%
+ \protected@edef\@glsxtr@theHentrycounter{\theHglsentrycounter}%
+ \@onelevel@sanitize\@glsxtr@theentrycounter
+ \@onelevel@sanitize\@glsxtr@theHentrycounter
+ \protected@edef\@do@gls@getcounterprefix{\noexpand\@gls@getcounterprefix
+ {\@glsxtr@theentrycounter}{\@glsxtr@theHentrycounter}%
+ }%
+ \@do@gls@getcounterprefix
+ \fi
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@nameref
+ \@glsxtr@do@nameref@record
+ {\@gls@label}{\@glo@counterprefix}{\@gls@counter}{\@glsnumberformat}%
+ {\@glsrecordlocref}%
+ \else
+ \protected@write\@auxout{}{\string\glsxtr@record
+ {\@gls@label}{\@glo@counterprefix}{\@gls@counter}{\@glsnumberformat}%
+ {\@glsrecordlocref}}%
+ \fi
+ \@glsxtr@counterrecordhook
+ \let\@glo@counterprefix\@glsxtr@orgprefix
+}
+\newcommand*\@glsxtr@dorecordnodefer{%
+ \ifx\theglsentrycounter\theHglsentrycounter
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@nameref
+ \@glsxtr@do@nameref@record
+ {\@gls@label}{}{\@gls@counter}{\@glsnumberformat}%
+ {\theglsentrycounter}%
+ \else
+ \protected@write\@auxout{}{\string\glsxtr@record
+ {\@gls@label}{}{\@gls@counter}{\@glsnumberformat}%
+ {\theglsentrycounter}}%
+ \fi
+ \else
+ \edef\@do@gls@getcounterprefix{\noexpand\@gls@getcounterprefix
+ {\theglsentrycounter}{\theHglsentrycounter}%
+ }%
+ \@do@gls@getcounterprefix
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@nameref
+ \@glsxtr@do@nameref@record
+ {\@gls@label}{\@glo@counterprefix}{\@gls@counter}%
+ {\@glsnumberformat}{\theglsentrycounter}%
+ \else
+ \protected@write\@auxout{}{\string\glsxtr@record
+ {\@gls@label}{\@glo@counterprefix}{\@gls@counter}{\@glsnumberformat}%
+ {\theglsentrycounter}}%
+ \fi
+ \fi
+ \@glsxtr@counterrecordhook
+}
+\newcommand{\@glsxtr@ifnum@mmode}[2]{%
+ \ifmmode
+ \ifst@rred
+ #2%
+ \else
+ \if@display #1\else #2\fi
+ \fi
+ \else
+ #2%
+ \fi
+}
+\newcommand*{\@glsxtr@do@nameref@record}[5]{%
+ \gls@ifnotmeasuring
+ {%
+ \protected@write\@auxout{}{\string\glsxtr@record@nameref
+ {#1}{#2}{#3}{#4}{#5}%
+ {\csuse{@currentlabelname}}{\csuse{@currentHref}}%
+ {\theHglsentrycounter}}%
+ }%
+}
+\newcommand*{\@@glsxtr@recordcounter}{%
+ \@glsxtr@noop@recordcounter
+}
+\newcommand*{\@glsxtr@noop@recordcounter}[1]{%
+ \PackageError{glossaries-extra}{\string\GlsXtrRecordCounter\space
+ requires record=only or record=hybrid package option}{}%
+}
+\newcommand*{\@glsxtr@op@recordcounter}[1]{%
+ \protected@eappto\@glsxtr@counterrecordhook{\noexpand\@glsxtr@docounterrecord{#1}}%
+}
+\newcommand*{\@glsxtr@recordsee}[2]{%
+ \@@glsxtrwrglossmark
+ \def\@gls@xref{#2}%
+ \@onelevel@sanitize\@gls@xref
+ \protected@write\@auxout{}{\string\glsxtr@recordsee{#1}{\@gls@xref}}%
+}
+\newcommand{\printunsrtglossaryunit}{%
+ \print@noop@unsrtglossaryunit
+}
+\newcommand*{\glsxtr@setup@record}{\let\@@do@wrglossary\glsxtr@@do@wrglossary}
+\newcommand*{\glsxtr@indexonly@saveentrycounter}{%
+ \ifKV@glslink@noindex
+ \else
+ \glsxtr@saveentrycounter
+ \fi
+}
+\newcommand*{\glsxtr@addloclistfield}{%
+ \key@ifundefined{glossentry}{loclist}%
+ {%
+ \define@key{glossentry}{loclist}{\def\@glo@loclist{##1}}%
+ \appto\@gls@keymap{,{loclist}{loclist}}%
+ \appto\@newglossaryentryprehook{\def\@glo@loclist{}}%
+ \appto\@newglossaryentryposthook{%
+ \gls@assign@field{}{\@glo@label}{loclist}{\@glo@loclist}%
+ }%
+ \glssetnoexpandfield{loclist}%
+ }%
+ {}%
+ \key@ifundefined{glossentry}{location}%
+ {%
+ \define@key{glossentry}{location}{\def\@glo@location{##1}}%
+ \appto\@gls@keymap{,{location}{location}}%
+ \appto\@newglossaryentryprehook{\def\@glo@location{}}%
+ \appto\@newglossaryentryposthook{%
+ \gls@assign@field{}{\@glo@label}{location}{\@glo@location}%
+ }%
+ \glssetnoexpandfield{location}%
+ }%
+ {}%
+ \key@ifundefined{glossentry}{group}%
+ {%
+ \define@key{glossentry}{group}{\def\@glo@group{##1}}%
+ \appto\@gls@keymap{,{group}{group}}%
+ \appto\@newglossaryentryprehook{\def\@glo@group{}}%
+ \appto\@newglossaryentryposthook{%
+ \gls@assign@field{}{\@glo@label}{group}{\@glo@group}%
+ }%
+ \glssetnoexpandfield{group}%
+ }%
+ {}%
+}
+\newcommand*{\@glsxtr@record@setting}{off}
+\newcommand*{\@glsxtr@record@setting@alsoindex}{alsoindex}
+\newcommand*{\@glsxtr@record@setting@only}{only}
+\newcommand*{\@glsxtr@record@setting@nameref}{nameref}
+\newcommand*{\@glsxtr@if@record@only}[2]{%
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@only
+ #1%
+ \else
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@nameref
+ #1%
+ \else
+ #2%
+ \fi
+ \fi
+}
+\newcommand*{\@glsxtr@record@setting@off}{off}
+\newcommand\@glsxtr@warn@hybrid@noprintgloss{%
+ \ifdefstring{\@glo@types}{,}%
+ {%
+ \GlossariesExtraWarningNoLine{No glossaries have been defined}%
+ }%
+ {%
+ \GlossariesExtraWarningNoLine{No \string\printglossary\space
+ or \string\printglossaries\space
+ found. ^^JYou have requested the hybrid setting
+ record=\@glsxtr@record@setting\space which requires a
+ combination of bib2gls (to fetch entries) and makeindex/xindy
+ (to sort and collate the entries). If you only want to use
+ bib2gls then change the option to record=only or record=nameref}%
+ }%
+}
+\newcommand*{\@glsxtr@record@only@setup}{%
+ \def\glsxtr@setup@record{%
+ \@glsxtr@autoseeindexfalse
+ \let\@do@seeglossary\@glsxtr@recordsee
+ \let\@glsxtr@record\@@glsxtr@record
+ \let\@@do@wrglossary\@glsxtr@do@record@wrglossary
+ \let\@gls@saveentrycounter\relax
+ \let\glsxtrundefaction\@glsxtr@warn@undefaction
+ \let\glsxtr@warnonexistsordo\@glsxtr@warn@onexistsordo
+ \glsxtr@addloclistfield
+ \renewcommand*{\@glsxtr@autoindexcrossrefs}{}%
+ \let\@@glsxtr@recordcounter\@glsxtr@op@recordcounter
+ \def\printunsrtglossaryunit{\print@op@unsrtglossaryunit}%
+ \def\glsxtrsetaliasnoindex{}%
+ \ifdef\@gls@setupsort@none{\@gls@setupsort@none}{}%
+ \def\glsxtrNoGlossaryWarning{\@glsxtr@record@noglossarywarning}%
+ \RequirePackage{glossaries-extra-bib2gls}[=v1.48]%
+ }%
+}
+\define@choicekey{glossaries-extra.sty}{record}
+ [\@glsxtr@record@setting\glsxtr@record@nr]%
+ {off,only,alsoindex,nameref,hybrid}%
+ [only]%
+ {%
+ \ifcase\glsxtr@record@nr\relax
+ \def\glsxtr@setup@record{%
+ \renewcommand*{\@do@seeglossary}{\@glsxtr@doseeglossary}%
+ \renewcommand*{\@glsxtr@record}[3]{}%
+ \let\@@do@wrglossary\glsxtr@@do@wrglossary
+ \let\@gls@saveentrycounter\glsxtr@indexonly@saveentrycounter
+ \let\glsxtrundefaction\@glsxtr@err@undefaction
+ \let\glsxtr@warnonexistsordo\@gobble
+ \let\@@glsxtr@recordcounter\@glsxtr@noop@recordcounter
+ \def\printunsrtglossaryunit{\print@noop@unsrtglossaryunit}%
+ \undef\glsxtrsetaliasnoindex
+ }%
+ \or
+ \@glsxtr@record@only@setup
+ \or
+ \def\glsxtr@setup@record{%
+ \renewcommand*{\@glsxtr@record@setting@alsoindex}{alsoindex}%
+ \renewcommand*{\@do@seeglossary}{\@glsxtr@dosee@alsoindex@glossary}%
+ \let\@glsxtr@record\@@glsxtr@record
+ \let\@@do@wrglossary\glsxtr@do@alsoindex@wrglossary
+ \let\@gls@saveentrycounter\glsxtr@indexonly@saveentrycounter
+ \let\glsxtrundefaction\@glsxtr@warn@undefaction
+ \let\glsxtr@warnonexistsordo\@glsxtr@warn@onexistsordo
+ \glsxtr@addloclistfield
+ \let\@@glsxtr@recordcounter\@glsxtr@op@recordcounter
+ \def\printunsrtglossaryunit{\print@op@unsrtglossaryunit}%
+ \undef\glsxtrsetaliasnoindex
+ }%
+ \or
+ \@glsxtr@record@only@setup
+ \ifundef\hyperlink
+ {\GlossariesExtraWarning{You have requested record=nameref but
+ the document doesn't support hyperlinks}}%
+ {}%
+ \or
+ \def\glsxtr@setup@record{%
+ \renewcommand*{\@glsxtr@record@setting@alsoindex}{hybrid}%
+ \renewcommand*{\@do@seeglossary}{\@glsxtr@dosee@alsoindex@glossary}%
+ \let\@glsxtr@record\@@glsxtr@record
+ \let\@@do@wrglossary\glsxtr@do@alsoindex@wrglossary
+ \let\@gls@saveentrycounter\glsxtr@indexonly@saveentrycounter
+ \let\glsxtrundefaction\@glsxtr@warn@undefaction
+ \let\glsxtr@warnonexistsordo\@glsxtr@warn@onexistsordo
+ \glsxtr@addloclistfield
+ \let\@@glsxtr@recordcounter\@glsxtr@op@recordcounter
+ \def\printunsrtglossaryunit{\print@op@unsrtglossaryunit}%
+ \undef\glsxtrsetaliasnoindex
+ }%
+ \fi
+ }
+\newcommand*{\@glsxtr@docdefval}{0}
+\newcommand*{\if@glsxtrdocdef}{\ifnum\@glsxtr@docdefval>0 }
+\newcommand*{\@glsxtrdocdeftrue}{\def\@glsxtr@docdefval{1}}
+\newcommand*{\@glsxtrdocdeffalse}{\def\@glsxtr@docdefval{0}}
+\define@choicekey{glossaries-extra.sty}{docdef}
+ [\@glsxtr@docdefsetting\@glsxtr@docdefval]%
+ {false,true,restricted,atom}[true]%
+{%
+ \ifnum\@glsxtr@docdefval>1\relax
+ \renewcommand*{\@glsdoifexistsorwarn}{\glsdoifexists}%
+ \else
+ \renewcommand*{\@glsdoifexistsorwarn}{\glsdoifexistsorwarn}%
+ \fi
+}
+\newcommand*{\if@glsxtrdocdefrestricted}{\ifnum\@glsxtr@docdefval>1 }
+\newcommand*{\@glsdoifexistsorwarn}{\glsdoifexistsorwarn}
+\define@boolkey{glossaries-extra.sty}[@glsxtr]{indexcrossrefs}[true]{%
+ \if@glsxtrindexcrossrefs
+ \else
+ \renewcommand*{\@glsxtr@autoindexcrossrefs}{}%
+ \fi
+}
+\@glsxtrindexcrossrefsfalse
+\newcommand*{\@glsxtr@autoindexcrossrefs}{\@glsxtrindexcrossrefstrue}
+\define@boolkey{glossaries-extra.sty}[@glsxtr@]{autoseeindex}[true]{%
+}
+\@glsxtr@autoseeindextrue
+\define@boolkey{glossaries-extra.sty}[@glsxtr@]{equations}[true]{%
+}
+\@glsxtr@equationsfalse
+\let\glsxtr@float\@float
+\let\glsxtr@dblfloat\@dblfloat
+\define@boolkey{glossaries-extra.sty}[@glsxtr@]{floats}[true]{%
+ \if@glsxtr@floats
+ \renewcommand*{\@float}[1]{\renewcommand{\glscounter}{##1}\glsxtr@float{##1}}%
+ \renewcommand*{\@dblfloat}[1]{\renewcommand{\glscounter}{##1}\glsxtr@dblfloat{##1}}%
+ \else
+ \let\@float\glsxtr@float
+ \let\@dblfloat\glsxtr@dblfloat
+ \fi
+}
+\@glsxtr@floatsfalse
+\newcommand*{\GlossariesExtraWarning}[1]{\PackageWarning{glossaries-extra}{#1}}
+\newcommand*{\GlossariesExtraWarningNoLine}[1]{%
+ \PackageWarningNoLine{glossaries-extra}{#1}}
+\@glsxtr@declareoption{nowarn}{%
+ \let\GlossariesExtraWarning\@gobble
+ \let\GlossariesExtraWarningNoLine\@gobble
+ \glsxtr@dooption{nowarn}%
+}
+\newcommand*{\@glsxtr@defpostpunc}{}
+\@glsxtr@declareoption{postdot}{%
+ \glsxtr@dooption{nopostdot=false}%
+ \renewcommand*{\@glsxtr@defpostpunc}{%
+ \renewcommand*{\glspostdescription}{%
+ \ifglsnopostdot\else.\spacefactor\sfcode`\. \fi}%
+ }%
+}
+
+\define@choicekey{glossaries-extra.sty}{nopostdot}{true,false}[true]{%
+ \glsxtr@dooption{nopostdot=#1}%
+ \renewcommand*{\@glsxtr@defpostpunc}{%
+ \renewcommand*{\glspostdescription}{%
+ \ifglsnopostdot\else.\spacefactor\sfcode`\. \fi}%
+ }%
+}
+\define@key{glossaries-extra.sty}{postpunc}{%
+ \glsxtr@dooption{nopostdot=false}%
+ \ifstrequal{#1}{dot}%
+ {%
+ \renewcommand*{\@glsxtr@defpostpunc}{%
+ \renewcommand*{\glspostdescription}{.\spacefactor\sfcode`\. }%
+ }%
+ }%
+ {%
+ \ifstrequal{#1}{comma}%
+ {%
+ \renewcommand*{\@glsxtr@defpostpunc}{%
+ \renewcommand*{\glspostdescription}{,}%
+ }%
+ }%
+ {%
+ \ifstrequal{#1}{none}%
+ {%
+ \glsxtr@dooption{nopostdot=true}%
+ \renewcommand*{\@glsxtr@defpostpunc}{%
+ \renewcommand*{\glspostdescription}{}%
+ }%
+ }%
+ {%
+ \renewcommand*{\@glsxtr@defpostpunc}{%
+ \renewcommand*{\glspostdescription}{#1}%
+ }%
+ }%
+ }%
+ }%
+}
+\newcommand*{\glsxtrabbrvtype}{\glsdefaulttype}
+\newcommand*{\@glsxtr@abbreviationsdef}{}
+
+\newcommand*{\@glsxtr@doabbreviationsdef}{%
+ \@ifpackageloaded{babel}%
+ {\providecommand{\abbreviationsname}{\acronymname}}%
+ {\providecommand{\abbreviationsname}{Abbreviations}}%
+ \newglossary[glg-abr]{abbreviations}{gls-abr}{glo-abr}{\abbreviationsname}%
+ \renewcommand*{\glsxtrabbrvtype}{abbreviations}%
+ \newcommand*{\printabbreviations}[1][]{%
+ \printglossary[type=\glsxtrabbrvtype,##1]%
+ }%
+ \disable@keys{glossaries-extra.sty}{abbreviations}%
+ \ifglsacronym
+ \else
+ \renewcommand*{\acronymtype}{\glsxtrabbrvtype}%
+ \fi
+}%
+\@glsxtr@declareoption{abbreviations}{%
+ \let\@glsxtr@abbreviationsdef\@glsxtr@doabbreviationsdef
+}
+\newcommand*{\GlsXtrDefineAbbreviationShortcuts}{%
+ \newcommand*{\ab}{\cgls}%
+ \newcommand*{\abp}{\cglspl}%
+ \newcommand*{\as}{\glsxtrshort}%
+ \newcommand*{\asp}{\glsxtrshortpl}%
+ \newcommand*{\al}{\glsxtrlong}%
+ \newcommand*{\alp}{\glsxtrlongpl}%
+ \newcommand*{\af}{\glsxtrfull}%
+ \newcommand*{\afp}{\glsxtrfullpl}%
+ \newcommand*{\Ab}{\cGls}%
+ \newcommand*{\Abp}{\cGlspl}%
+ \newcommand*{\As}{\Glsxtrshort}%
+ \newcommand*{\Asp}{\Glsxtrshortpl}%
+ \newcommand*{\Al}{\Glsxtrlong}%
+ \newcommand*{\Alp}{\Glsxtrlongpl}%
+ \newcommand*{\Af}{\Glsxtrfull}%
+ \newcommand*{\Afp}{\Glsxtrfullpl}%
+ \newcommand*{\AB}{\cGLS}%
+ \newcommand*{\ABP}{\cGLSpl}%
+ \newcommand*{\AS}{\GLSxtrshort}%
+ \newcommand*{\ASP}{\GLSxtrshortpl}%
+ \newcommand*{\AL}{\GLSxtrlong}%
+ \newcommand*{\ALP}{\GLSxtrlongpl}%
+ \newcommand*{\AF}{\GLSxtrfull}%
+ \newcommand*{\AFP}{\GLSxtrfullpl}%
+ \providecommand*{\newabbr}{\newabbreviation}%
+ \let\GlsXtrDefineAbbreviationShortcuts\relax
+}
+\newcommand*{\GlsXtrDefineAcShortcuts}{%
+ \newcommand*{\ac}{\cgls}%
+ \newcommand*{\acp}{\cglspl}%
+ \newcommand*{\acs}{\glsxtrshort}%
+ \newcommand*{\acsp}{\glsxtrshortpl}%
+ \newcommand*{\acl}{\glsxtrlong}%
+ \newcommand*{\aclp}{\glsxtrlongpl}%
+ \newcommand*{\acf}{\glsxtrfull}%
+ \newcommand*{\acfp}{\glsxtrfullpl}%
+ \newcommand*{\Ac}{\cGls}%
+ \newcommand*{\Acp}{\cGlspl}%
+ \newcommand*{\Acs}{\Glsxtrshort}%
+ \newcommand*{\Acsp}{\Glsxtrshortpl}%
+ \newcommand*{\Acl}{\Glsxtrlong}%
+ \newcommand*{\Aclp}{\Glsxtrlongpl}%
+ \newcommand*{\Acf}{\Glsxtrfull}%
+ \newcommand*{\Acfp}{\Glsxtrfullpl}%
+ \newcommand*{\AC}{\cGLS}%
+ \newcommand*{\ACP}{\cGLSpl}%
+ \newcommand*{\ACS}{\GLSxtrshort}%
+ \newcommand*{\ACSP}{\GLSxtrshortpl}%
+ \newcommand*{\ACL}{\GLSxtrlong}%
+ \newcommand*{\ACLP}{\GLSxtrlongpl}%
+ \newcommand*{\ACF}{\GLSxtrfull}%
+ \newcommand*{\ACFP}{\GLSxtrfullpl}%
+ \providecommand*{\newabbr}{\newabbreviation}%
+ \let\GlsXtrDefineAcShortcuts\relax
+}
+\newcommand*{\GlsXtrDefineOtherShortcuts}{%
+ \newcommand*{\newentry}{\newglossaryentry}%
+ \ifdef\printsymbols
+ {%
+ \newcommand*{\newsym}{\glsxtrnewsymbol}%
+ }{}%
+ \ifdef\printnumbers
+ {%
+ \newcommand*{\newnum}{\glsxtrnewnumber}%
+ }{}%
+ \let\GlsXtrDefineOtherShortcuts\relax
+}
+\newcommand*{\@glsxtr@setupshortcuts}{}
+\newcommand*{\@glsxtr@shortcutsval}{\ifglsacrshortcuts acro\else none\fi}%
+\define@choicekey{glossaries-extra.sty}{shortcuts}%
+ [\@glsxtr@shortcutsval\@glsxtr@shortcutsnr]%
+ {acronyms,acro,abbreviations,abbr,other,all,true,ac,none,false}[true]{%
+ \ifcase\@glsxtr@shortcutsnr\relax % acronyms
+ \renewcommand*{\@glsxtr@setupshortcuts}{%
+ \glsacrshortcutstrue
+ \DefineAcronymSynonyms
+ }%
+ \or % acro
+ \renewcommand*{\@glsxtr@setupshortcuts}{%
+ \glsacrshortcutstrue
+ \DefineAcronymSynonyms
+ }%
+ \or % abbreviations
+ \renewcommand*{\@glsxtr@setupshortcuts}{%
+ \GlsXtrDefineAbbreviationShortcuts
+ }%
+ \or % abbr
+ \renewcommand*{\@glsxtr@setupshortcuts}{%
+ \GlsXtrDefineAbbreviationShortcuts
+ }%
+ \or % other
+ \renewcommand*{\@glsxtr@setupshortcuts}{%
+ \GlsXtrDefineOtherShortcuts
+ }%
+ \or % all
+ \renewcommand*{\@glsxtr@setupshortcuts}{%
+ \glsacrshortcutstrue
+ \GlsXtrDefineAcShortcuts
+ \GlsXtrDefineAbbreviationShortcuts
+ \GlsXtrDefineOtherShortcuts
+ }%
+ \or % true
+ \renewcommand*{\@glsxtr@setupshortcuts}{%
+ \glsacrshortcutstrue
+ \GlsXtrDefineAcShortcuts
+ \GlsXtrDefineAbbreviationShortcuts
+ \GlsXtrDefineOtherShortcuts
+ }%
+ \or % ac
+ \renewcommand*{\@glsxtr@setupshortcuts}{%
+ \glsacrshortcutstrue
+ \GlsXtrDefineAcShortcuts
+ }%
+ \else % none, false
+ \renewcommand*{\@glsxtr@setupshortcuts}{}%
+ \fi
+ }
+\newcommand*{\@glsxtr@doaccsupp}{}
+\@glsxtr@declareoption{accsupp}{%
+ \renewcommand*{\@glsxtr@doaccsupp}{\RequirePackage{glossaries-accsupp}}}
+\newcommand*{\@glsxtr@doloadprefix}{}
+\@glsxtr@declareoption{prefix}{%
+ \renewcommand*{\@glsxtr@doloadprefix}{\RequirePackage{glossaries-prefix}}}
+\newcommand{\glsxtrNoGlossaryWarning}[1]{%
+ \GlossariesExtraWarning{Glossary `#1' is missing}%
+ \@glsxtr@defaultnoglossarywarning{#1}%
+}
+\define@choicekey{glossaries-extra.sty}{nomissingglstext}
+ [\@glsxtr@nomissingglstextval\@glsxtr@nomissingglstextnr]%
+ {true,false}[true]{%
+ \ifcase\@glsxtr@nomissingglstextnr\relax % true
+ \renewcommand{\glsxtrNoGlossaryWarning}[1]{\null}%
+ \else % false
+ \renewcommand{\glsxtrNoGlossaryWarning}[1]{%
+ \@glsxtr@defaultnoglossarywarning{#1}%
+ }%
+ \fi
+ }
+\newcommand*{\@glsxtr@redefstyles}{}
+\define@key{glossaries-extra.sty}{stylemods}[default]{%
+ \ifstrequal{#1}{default}%
+ {%
+ \renewcommand*{\@glsxtr@redefstyles}{%
+ \RequirePackage{glossaries-extra-stylemods}}%
+ }%
+ {%
+ \ifstrequal{#1}{all}%
+ {%
+ \renewcommand*{\@glsxtr@redefstyles}{%
+ \PassOptionsToPackage{all}{glossaries-extra-stylemods}%
+ \RequirePackage{glossaries-extra-stylemods}%
+ }%
+ }%
+ {%
+ \renewcommand*{\@glsxtr@redefstyles}{}%
+ \@for\@glsxtr@tmp:=#1\do{%
+ \IfFileExists{glossary-\@glsxtr@tmp.sty}%
+ {%
+ \eappto\@glsxtr@redefstyles{%
+ \noexpand\RequirePackage{glossary-\@glsxtr@tmp}}%
+ }%
+ {%
+ \PackageError{glossaries-extra}%
+ {Glossaries style package `glossary-\@glsxtr@tmp.sty'
+ doesn't exist (did you mean to use the `style' key?)}%
+ {The list of values (#1) in the `stylemods' key should
+ match the glossary-xxx.sty files provided with
+ glossaries.sty}%
+ }%
+ }%
+ \appto\@glsxtr@redefstyles{\RequirePackage{glossaries-extra-stylemods}[=v1.48]}%
+ }
+ }%
+}
+\newcommand*{\@glsxtr@do@style}{}
+\define@key{glossaries-extra.sty}{style}{%
+ \renewcommand*{\@glsxtr@do@style}{%
+ \setkeys{glossaries.sty}{style={#1}}%
+ \setglossarystyle{#1}%
+ }%
+}
+\newcommand*{\glsxtr@inc@wrglossaryctr}[1]{}
+\newcommand*{\GlsXtrInternalLocationHyperlink}[3]{%
+ \glsxtrhyperlink{#1#2#3}{#3}%
+}
+\newcommand*{\@glsxtr@wrglossary@locationhyperlink}[3]{%
+ \pageref{wrglossary.#3}%
+}
+\@glsxtr@declareoption{indexcounter}{%
+ \glsxtr@dooption{counter=wrglossary}%
+ \ifundef\c@wrglossary
+ {%
+ \newcounter{wrglossary}%
+ \renewcommand{\thewrglossary}{\arabic{wrglossary}}%
+ }%
+ {}%
+ \renewcommand*{\glsxtr@inc@wrglossaryctr}[1]{%
+ \ifdefstring\@gls@counter{wrglossary}%
+ {%
+ \refstepcounter{wrglossary}%
+ \label{wrglossary.\thewrglossary}%
+ }%
+ {}%
+ }%
+ \renewcommand*{\GlsXtrInternalLocationHyperlink}[3]{%
+ \ifdefstring\glsentrycounter{wrglossary}%
+ {%
+ \@glsxtr@wrglossary@locationhyperlink{##1}{##2}{##3}%
+ }%
+ {\glsxtrhyperlink{##1##2##3}{##3}}%
+ }%
+}
+\newcommand*{\@glsxtrwrglossmark}{}
+\newcommand*{\@@glsxtrwrglossmark}{}
+\AtBeginDocument{\renewcommand*{\@@glsxtrwrglossmark}{\@glsxtrwrglossmark}}
+\newcommand*{\glsxtrwrglossmark}{\ensuremath{\cdot}}
+\newcommand\@glsxtr@doshowtarget[2]{#2}
+\define@choicekey{glossaries-extra.sty}{debug}
+ [\@glsxtr@debugval\@glsxtr@debugnr]%
+ {true,false,showtargets,showwrgloss,all,showaccsupp}[true]{%
+ \ifcase\@glsxtr@debugnr\relax % true
+ \glsxtr@dooption{debug=true}%
+ \renewcommand*{\@glsxtrwrglossmark}{}%
+ \or % false
+ \glsxtr@dooption{debug=false}%
+ \renewcommand*{\@glsxtrwrglossmark}{}%
+ \let\@glsxtr@doshowtarget\@secondoftwo
+ \or % showtargets
+ \glsxtr@dooption{debug=showtargets}%
+ \def\@glsxtr@doshowtarget{\@glsxtrshowtargetleft}%
+ \or % showwrgloss
+ \glsxtr@dooption{debug=true}%
+ \renewcommand*{\@glsxtrwrglossmark}{\glsxtrwrglossmark}%
+ \or % all
+ \glsxtr@dooption{debug=showtargets,debug=showaccsupp}%
+ \renewcommand*{\@glsxtrwrglossmark}{\glsxtrwrglossmark}%
+ \def\@glsxtr@doshowtarget{\@glsxtrshowtargetleft}%
+ \or % showaccsupp
+ \glsxtr@dooption{debug=showaccsupp}%
+ \fi
+ }
+\newcommand*{\glsxtrshowtargetouter}{\glsshowtargetouter}
+\newcommand*{\glsxtrshowtargetinner}[1]{\glsshowtargetinner{#1}}
+\newcommand{\@glsxtrshowtargetleft}[2]{\@glsshowtarget{#1}#2\@glsxtrshowtargetmark}%
+\newcommand{\@glsxtrshowtargetright}[2]{\@glsxtrshowtargetmark#2\@glsshowtarget{#1}}%
+\newcommand{\@glsxtrshowtargetmark}{}%
+\define@choicekey{glossaries-extra.sty}{showtargets}
+ [\@glsxtr@showtargetsval\@glsxtr@showtargetsnr]%
+ {left,right,innerleft,innerright,annoteleft,annoteright}%
+ {%
+ \glsxtr@dooption{debug=showtargets}%
+ \ifcase\@glsxtr@showtargetsnr\relax
+ \def\@glsxtr@doshowtarget{\@glsxtrshowtargetleft}%
+ \def\glsxtrshowtargetouter{\glsshowtargetouter}%
+ \def\glsxtrshowtargetinner{\glsshowtargetinner}%
+ \let\@glsxtrshowtargetmark\empty
+ \or
+ \def\@glsxtr@doshowtarget{\@glsxtrshowtargetright}%
+ \def\glsxtrshowtargetouter{\glsshowtargetouter}%
+ \def\glsxtrshowtargetinner{\glsshowtargetinner}%
+ \let\@glsxtrshowtargetmark\empty
+ \or
+ \def\@glsxtr@doshowtarget{\@glsxtrshowtargetleft}%
+ \def\glsxtrshowtargetouter{\glsxtrshowtargetinner}%
+ \def\glsxtrshowtargetinner{\glsshowtargetinnersymleft}%
+ \let\@glsxtrshowtargetmark\empty
+ \or
+ \def\@glsxtr@doshowtarget{\@glsxtrshowtargetright}%
+ \def\glsxtrshowtargetouter{\glsxtrshowtargetinner}%
+ \def\glsxtrshowtargetinner{\glsshowtargetinnersymright}%
+ \let\@glsxtrshowtargetmark\empty
+ \or
+ \def\@glsxtr@doshowtarget{\@glsxtrshowtargetleft}%
+ \def\glsxtrshowtargetouter{\glsxtrshowtargetinner}%
+ \def\glsxtrshowtargetinner{\glsshowtargetinnersymleft}%
+ \def\@glsxtrshowtargetmark{\@glsshowtargetmarkfmt\glsxtrshowtargetsymbolright}%
+ \or
+ \def\@glsxtr@doshowtarget{\@glsxtrshowtargetright}%
+ \def\glsxtrshowtargetouter{\glsxtrshowtargetinner}%
+ \def\glsxtrshowtargetinner{\glsshowtargetinnersymright}%
+ \def\@glsxtrshowtargetmark{\@glsshowtargetmarkfmt\glsxtrshowtargetsymbolleft}%
+ \fi
+ }
+\DeclareOptionX*{%
+ \expandafter\glsxtr@dooption\expandafter{\CurrentOption}}
+\ProcessOptionsX
+\RequirePackage{glossaries}
+\@glsxtr@doaccsupp
+\@glsxtr@doloadprefix
+\@glsxtr@defpostpunc
+\def\glsdoshowtarget{\@glsxtr@doshowtarget}
+\newcommand{\glsxtrshowtargetsymbolright}{{\tiny$\triangleleft$}}%
+\newcommand{\glsxtrshowtargetsymbolleft}{{\tiny$\triangleright$}}%
+\providecommand*{\glsshowtargetinner}[1]{{\glsshowtargetfont [#1]}}
+\providecommand*{\glsshowtargetfont}{\ttfamily\footnotesize}
+\newcommand*{\glsshowtargetinnersymleft}[1]{%
+ \glsshowtargetinner{#1}\allowbreak\glsxtrshowtargetsymbolleft}
+\newcommand*{\glsshowtargetinnersymright}[1]{%
+ \glsxtrshowtargetsymbolright\allowbreak\glsshowtargetinner{#1}}
+\providecommand*{\glsshowtargetouter}[1]{%
+ \glsshowtargetsymbol\marginpar{\glsshowtargetsymbol\glsshowtargetfont #1}}
+\providecommand*{\@glsshowtarget}[1]{}
+\def\glsshowtarget#1{%
+ \glsxtrtitleorpdforheading
+ {%
+ \ifmmode
+ \nfss@text{\glsxtrshowtargetinner{#1}}%
+ \else
+ \ifinner
+ \glsxtrshowtargetinner{#1}%
+ \else
+ \glsxtrshowtargetouter{#1}%
+ \fi
+ \fi
+ }%
+ {[#1]}%
+ {{\protect\glsshowtargetinner{#1}}}%
+}
+\newcommand*{\@glsshowtargetmarkfmt}[1]{%
+ \glsxtrtitleorpdforheading
+ {%
+ \ifmmode \nfss@text{#1}\else #1\fi
+ }%
+ {}%
+ {\ifmmode \nfss@text{#1}\else #1\fi}%
+}
+\let\@glsxtr@org@doseeglossary\@do@seeglossary
+\newcommand*{\@glsxtr@doseeglossary}[2]{%
+ \glsdoifexists{#1}%
+ {%
+ \@@glsxtrwrglossmark
+ \@glsxtr@org@doseeglossary{#1}{#2}%
+ }%
+}
+\newcommand*{\@glsxtr@dosee@alsoindex@glossary}[2]{%
+ \@glsxtr@recordsee{#1}{#2}%
+ \@glsxtr@doseeglossary{#1}{#2}%
+}
+\let\@glsxtr@org@gloautosee\@glo@autosee
+\if@glsxtr@autoseeindex
+\else
+ \ifdef\@glsxtr@org@gloautosee
+ {}%
+ {\PackageError{glossaries-extra}{`autoseeindex=false' package
+ option requires at least v4.30 of glossaries.sty}%
+ {You need to update the glossaries.sty package}%
+ }
+\fi
+\ifdef\@glo@autosee
+{%
+ \renewcommand*{\@glo@autosee}{%
+ \if@glsxtr@autoseeindex\@glsxtr@org@gloautosee\fi}%
+}%
+{}
+\renewcommand*{\gls@checkseeallowed}{%
+ \if@glsxtr@autoseeindex\@gls@see@noindex\fi
+}
+\@glsxtr@abbreviationsdef
+\let\@glsxtr@abbreviationsdef\relax
+\@glsxtr@setupshortcuts
+\@glsxtr@redef@forglsentries
+\renewcommand{\glsxtr@dooption}[1]{\setupglossaries{#1}}%
+\disable@keys{glossaries-extra.sty}{accsupp}
+\newcommand*{\glossariesextrasetup}[1]{%
+ \let\glsxtr@setup@record\relax
+ \let\@glsxtr@setupshortcuts\relax
+ \let\@glsxtr@redef@forglsentries\relax
+ \let\@glsxtr@doloadprefix\relax
+ \setkeys{glossaries-extra.sty}{#1}%
+ \@glsxtr@abbreviationsdef
+ \let\@glsxtr@abbreviationsdef\relax
+ \@glsxtr@setupshortcuts
+ \glsxtr@setup@record
+ \@glsxtr@redef@forglsentries
+ \@glsxtr@doloadprefix
+}
+\let\glsxtr@org@@do@wrglossary\@@do@wrglossary
+\newcommand*{\glsxtr@@do@wrglossary}[1]{%
+ \@@glsxtrwrglossmark
+ \glsxtr@inc@wrglossaryctr{#1}%
+ \glsxtr@org@@do@wrglossary{#1}%
+}
+\let\glsxtr@saveentrycounter\@gls@saveentrycounter
+\let\@gls@saveentrycounter\glsxtr@indexonly@saveentrycounter
+\renewcommand*\@gls@getcounterprefix[2]{%
+ \protected@edef\@gls@thisloc{#1}\protected@edef\@gls@thisHloc{#2}%
+ \ifx\@gls@thisloc\@gls@thisHloc
+ \def\@glo@counterprefix{}%
+ \else
+ \def\@gls@get@counterprefix##1.#1##2\end@getprefix{%
+ \def\@glo@tmp{##2}%
+ \ifx\@glo@tmp\@empty
+ \def\@glo@counterprefix{}%
+ \else
+ \def\@glo@counterprefix{##1}%
+ \fi
+ }%
+ \@gls@get@counterprefix#2.#1\end@getprefix
+ \ifx\@glo@counterprefix\@empty
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@nameref
+ \else
+ \GlossariesExtraWarning{Hyper target `#2' can't be formed by
+ prefixing^^Jlocation `#1'. You need to modify the
+ definition of \string\theH\@gls@counter^^Jotherwise you
+ will get the warning: "`name{\@gls@counter.#1}' has been^^J
+ referenced but does not exist"%
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@only
+ . You may want to consider using record=nameref instead%
+ \fi}%
+ \fi
+ \fi
+ \fi
+}
+\newcommand*{\@glsxtrdialecthook}{}
+\glsxtr@setup@record
+\AtBeginDocument{%
+ \disable@keys{glossaries-extra.sty}{abbreviations,docdef,record}%
+ \def\@glsxtrundeftag{\glsxtrundeftag}%
+}
+\newcommand*{\GlsXtrIfUnusedOrUndefined}[3]{%
+ \ifglsentryexists{#1}%
+ {\ifbool{glo@\glsdetoklabel{#1}@flag}{#3}{#2}}%
+ {#2}%
+}
+\ifdef\s@ifglossaryexists
+{}
+{
+ \renewcommand{\ifglossaryexists}{%
+ \@ifstar\s@ifglossaryexists\@ifglossaryexists
+ }
+ \newcommand{\@ifglossaryexists}[3]{%
+ \ifcsundef{@glotype@#1@out}{#3}{#2}%
+ }
+ \newcommand{\s@ifglossaryexists}[3]{%
+ \ifcsundef{glolist@#1}{#3}{#2}%
+ }
+}
+\newcommand{\glsxtrifemptyglossary}[3]{%
+ \ifcsdef{glolist@#1}%
+ {%
+ \ifcsstring{glolist@#1}{,}{#2}{#3}%
+ }%
+ {%
+ \glsxtrundefaction{Glossary type `#1' doesn't exist}{}%
+ #2%
+ }%
+}
+\newcommand*{\glsxtrifkeydefined}[3]{%
+ \key@ifundefined{glossentry}{#1}{#3}{#2}%
+}
+\newcommand*{\glsxtrprovidestoragekey}{%
+ \@ifstar\@sglsxtr@provide@storagekey\@glsxtr@provide@storagekey
+}
+\newcommand*{\@glsxtr@provide@storagekey}[3]{%
+ \key@ifundefined{glossentry}{#1}%
+ {%
+ \define@key{glossentry}{#1}{\csdef{@glo@#1}{##1}}%
+ \appto\@gls@keymap{,{#1}{#1}}%
+ \appto\@newglossaryentryprehook{\csdef{@glo@#1}{#2}}%
+ \appto\@newglossaryentryposthook{%
+ \letcs{\@glo@tmp}{@glo@#1}%
+ \gls@assign@field{#2}{\@glo@label}{#1}{\@glo@tmp}%
+ }%
+ \ifblank{#3}
+ {}%
+ {%
+ \newcommand*{#3}[1]{\@gls@entry@field{##1}{#1}}%
+ }%
+ }%
+ {%
+ \ifblank{#3}
+ {}%
+ {%
+ \providecommand*{#3}[1]{\@gls@entry@field{##1}{#1}}%
+ }%
+ }%
+}
+\newcommand*{\s@glsxtr@provide@storagekey}[1]{%
+ \key@ifundefined{glossentry}{#1}%
+ {%
+ \expandafter\newcommand\expandafter*\expandafter
+ {\csname gls@assign@#1@field\endcsname}[2]{%
+ \@@gls@expand@field{##1}{#1}{##2}%
+ }%
+ }%
+ {}%
+ \@glsxtr@provide@addstoragekey{#1}%
+}
+\newcommand{\GlsXtrFmtField}{useri}
+\newcommand{\GlsXtrFmtDefaultOptions}{noindex}
+\newrobustcmd*{\glsxtrfmt}{\@ifstar\s@glsxtrfmt\@glsxtrfmt}
+\newcommand*{\@glsxtrfmt}[3][]{\@@glsxtrfmt{#1}{#2}{#3}{}}
+\newcommand*{\s@glsxtrfmt}[3][]{%
+ \new@ifnextchar[{\s@@glsxtrfmt{#1}{#2}{#3}}%
+ {\@@glsxtrfmt{#1}{#2}{#3}{}}%
+}
+\def\s@@glsxtrfmt#1#2#3[#4]{\@@glsxtrfmt{#1}{#2}{#3}{#4}}
+\newcommand*{\@@glsxtrfmt}[4]{%
+ \begingroup
+ \def\glslabel{#2}%
+ \glsdoifexistsordo{#2}%
+ {%
+ \ifglshasfield{\GlsXtrFmtField}{#2}%
+ {%
+ \let\do@gls@link@checkfirsthyper\relax
+ \expandafter\@gls@link\expandafter[\GlsXtrFmtDefaultOptions,#1]{#2}%
+ {\glsxtrfmtdisplay{\glscurrentfieldvalue}{#3}{#4}}%
+ }%
+ {\glsxtrfmtdisplay{@firstofone}{#3}{#4}}%
+ }%
+ {%
+ \begingroup
+ \@gls@setdefault@glslink@opts
+ \setkeys{glslink}{\GlsXtrFmtDefaultOptions,#1}%
+ \ifKV@glslink@noindex\else\glsadd{#2}\fi
+ \endgroup
+ \glsxtrfmtdisplay{@firstofone}{#3}{#4}%
+ }%
+ \endgroup
+}
+\newcommand{\glsxtrfmtdisplay}[3]{\csuse{#1}{#2}#3}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\glsxtrentryfmt}[2]{%
+ \texorpdfstring{\@glsxtrentryfmt{#1}{#2}}{\glsxtrpdfentryfmt{#1}{#2}}%
+ }
+}
+{
+ \newcommand*{\glsxtrentryfmt}{\@glsxtrentryfmt}
+}
+\newcommand*{\glsxtrpdfentryfmt}[2]{#2}
+\newrobustcmd*{\@glsxtrentryfmt}[2]{%
+ {%
+ \protected@edef\glslabel{#1}%
+ \glsdoifexistsordo{#1}%
+ {%
+ \ifglshasfield{\GlsXtrFmtField}{#1}%
+ {%
+ \csuse{\glscurrentfieldvalue}{#2}%
+ }%
+ {#2}%
+ }%
+ {#2}%
+ }%
+}
+\newcommand*{\glsxtrfieldlistadd}[3]{%
+ \listcsadd{glo@\glsdetoklabel{#1}@#2}{#3}%
+}
+\newcommand*{\glsxtrfieldlistgadd}[3]{%
+ \listcsgadd{glo@\glsdetoklabel{#1}@#2}{#3}%
+}
+\newcommand*{\glsxtrfieldlisteadd}[3]{%
+ \listcseadd{glo@\glsdetoklabel{#1}@#2}{#3}%
+}
+\newcommand*{\glsxtrfieldlistxadd}[3]{%
+ \listcsxadd{glo@\glsdetoklabel{#1}@#2}{#3}%
+}
+\newcommand*{\glsxtrfielddolistloop}[2]{%
+ \dolistcsloop{glo@\glsdetoklabel{#1}@#2}%
+}
+\newcommand*{\glsxtrfieldforlistloop}[3]{%
+ \forlistcsloop{#3}{glo@\glsdetoklabel{#1}@#2}%
+}
+\newrobustcmd*{\glsxtrfieldformatlist}[2]{%
+ \begingroup
+ \def\@dtl@formatlist@itemsep{}%
+ \def\@dtl@formatlist@lastitem{}%
+ \def\@dtl@formatlist@prelastitem{}%
+ \def\@dtl@formatlist@prelastitemsep{}%
+ \forlistcsloop{\@dtl@formatlist@handler}{glo@\glsdetoklabel{#1}@#2}%
+ \@dtl@formatlist@prelastitem\@dtl@formatlist@lastitem
+ \endgroup
+}
+\newcommand*{\glsxtrfieldifinlist}[5]{%
+ \ifinlistcs{#3}{glo@\glsdetoklabel{#1}@#2}{#4}{#5}%
+}
+\newcommand*{\glsxtrfieldxifinlist}[5]{%
+ \xifinlistcs{#3}{glo@\glsdetoklabel{#1}@#2}{#4}{#5}%
+}
+\newcommand*{\glsxtrforcsvfield}{%
+ \@ifstar\s@glsxtrforcsvfield\@glsxtrforcsvfield
+}
+\newcommand*{\@glsxtrforcsvfield}[3]{%
+ \@glsxtrifhasfield{#2}{#1}%
+ {%
+ \let\glsxtrendfor\@endfortrue
+ \@for\@glsxtr@label:=\glscurrentfieldvalue\do
+ {\expandafter#3\expandafter{\@glsxtr@label}}}%
+ {}%
+}
+\newcommand*{\s@glsxtrforcsvfield}[3]{%
+ \s@glsxtrifhasfield{#2}{#1}%
+ {%
+ \let\glsxtrendfor\@endfortrue
+ \@for\@glsxtr@label:=\glscurrentfieldvalue\do
+ {\expandafter#3\expandafter{\@glsxtr@label}}}%
+ {}%
+}
+\newrobustcmd*{\glsxtrfieldformatcsvlist}[2]{%
+ \@glsxtrifhasfield{#2}{#1}%
+ {\@dtlformatlist\glscurrentfieldvalue}%
+ {}%
+}
+\newcommand*{\GlsXtrIfFieldValueInCsvList}{%
+ \@ifstar\s@GlsXtrIfFieldValueInCsvList\@GlsXtrIfFieldValueInCsvList
+}
+\newcommand*{\@GlsXtrIfFieldValueInCsvList}[5]{%
+ \@glsxtrifhasfield{#2}{#1}%
+ {%
+ \expandafter\DTLifinlist\expandafter{\glscurrentfieldvalue}%
+ {#3}{#4}{#5}%
+ }%
+ {#5}%
+}
+\newcommand*{\s@GlsXtrIfFieldValueInCsvList}[5]{%
+ \s@glsxtrifhasfield{#2}{#1}%
+ {%
+ \expandafter\DTLifinlist\expandafter{\glscurrentfieldvalue}%
+ {#3}{#4}{#5}%
+ }%
+ {#5}%
+}
+\newcommand*{\GlsXtrIfValueInFieldCsvList}{%
+ \@ifstar\s@GlsXtrIfValueInFieldCsvList\@GlsXtrIfValueInFieldCsvList
+}
+\newcommand*{\@GlsXtrIfValueInFieldCsvList}[5]{%
+ \@glsxtrifhasfield{#2}{#1}%
+ {%
+ \DTLifinlist{#3}{\glscurrentfieldvalue}{#4}{#5}%
+ }%
+ {#5}%
+}
+\newcommand*{\s@GlsXtrIfValueInFieldCsvList}[5]{%
+ \s@glsxtrifhasfield{#2}{#1}%
+ {%
+ \DTLifinlist{#3}{\glscurrentfieldvalue}{#4}{#5}%
+ }%
+ {#5}%
+}
+\newcommand*{\xGlsXtrIfValueInFieldCsvList}{%
+ \@ifstar\s@xGlsXtrIfValueInFieldCsvList\@xGlsXtrIfValueInFieldCsvList
+}
+\newcommand*{\@xGlsXtrIfValueInFieldCsvList}[5]{%
+ \@glsxtrifhasfield{#2}{#1}%
+ {%
+ \protected@edef\@gls@tmp{#3}%
+ \expandafter\DTLifinlist\expandafter{\@gls@tmp}{\glscurrentfieldvalue}{#4}{#5}%
+ }%
+ {#5}%
+}
+\newcommand*{\s@xGlsXtrIfValueInFieldCsvList}[5]{%
+ \s@glsxtrifhasfield{#2}{#1}%
+ {%
+ \protected@edef\@gls@tmp{#3}%
+ \expandafter\DTLifinlist\expandafter{\@gls@tmp}{\glscurrentfieldvalue}{#4}{#5}%
+ }%
+ {#5}%
+}
+\newrobustcmd{\glsxtrifhasfield}{%
+ \@ifstar{\s@glsxtrifhasfield}{\@glsxtrifhasfield}%
+}
+\newcommand{\@glsxtrifhasfield}[4]{%
+ {\s@glsxtrifhasfield{#1}{#2}{#3}{#4}}%
+}
+\newcommand{\s@glsxtrifhasfield}[4]{%
+ \letcs{\glscurrentfieldvalue}{glo@\glsdetoklabel{#2}@#1}%
+ \ifundef\glscurrentfieldvalue
+ {#4}%
+ {%
+ \ifdefempty\glscurrentfieldvalue{#4}{#3}%
+ }%
+}
+\newcommand{\GlsXtrIfFieldNonZero}{%
+ \@ifstar\s@GlsXtrIfFieldNonZero\@GlsXtrIfFieldNonZero
+}
+\newcommand{\@GlsXtrIfFieldNonZero}[4]{%
+ \@GlsXtrIfFieldCmpNum{#1}{#2}{=}{0}{#4}{#3}%
+}
+\newcommand{\s@GlsXtrIfFieldNonZero}[4]{%
+ \s@GlsXtrIfFieldCmpNum{#1}{#2}{=}{0}{#4}{#3}%
+}
+\newcommand{\GlsXtrIfFieldEqNum}{%
+ \@ifstar\s@GlsXtrIfFieldEqNum\@GlsXtrIfFieldEqNum
+}
+\newcommand{\@GlsXtrIfFieldEqNum}[5]{%
+ \@GlsXtrIfFieldCmpNum{#1}{#2}{=}{#3}{#4}{#5}%
+}
+\newcommand{\s@GlsXtrIfFieldEqNum}[5]{%
+ \s@GlsXtrIfFieldCmpNum{#1}{#2}{=}{#3}{#4}{#5}%
+}
+\newcommand{\GlsXtrIfFieldCmpNum}{%
+ \@ifstar\s@GlsXtrIfFieldCmpNum\@GlsXtrIfFieldCmpNum
+}
+\newcommand{\@GlsXtrIfFieldCmpNum}[6]{%
+ {%
+ \letcs{\glscurrentfieldvalue}{glo@\glsdetoklabel{#2}@#1}%
+ \ifundef\glscurrentfieldvalue
+ {\def\glscurrentfieldvalue{0}}%
+ {%
+ \ifdefempty\glscurrentfieldvalue
+ {\def\glscurrentfieldvalue{0}}%
+ {}%
+ }%
+ \ifnum\glscurrentfieldvalue#3#4\relax #5\else #6\fi
+ }%
+}
+\newcommand{\s@GlsXtrIfFieldCmpNum}[6]{%
+ \letcs{\glscurrentfieldvalue}{glo@\glsdetoklabel{#2}@#1}%
+ \ifundef\glscurrentfieldvalue
+ {\def\glscurrentfieldvalue{0}}%
+ {%
+ \ifdefempty\glscurrentfieldvalue
+ {\def\glscurrentfieldvalue{0}}%
+ {}%
+ }%
+ \ifnum\glscurrentfieldvalue#3#4\relax #5\else #6\fi
+}
+\newcommand{\GlsXtrIfFieldUndef}[2]{%
+ \ifcsundef{glo@\glsdetoklabel{#2}@#1}%
+}
+\newcommand*{\glsxtrusefield}[2]{%
+ \@gls@entry@field{#1}{#2}%
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\Glsxtrusefield}[2]{%
+ \texorpdfstring
+ {\@Gls@entry@field{#1}{#2}}
+ {\@gls@entry@field{#1}{#2}}%
+ }
+}
+{
+ \newcommand*{\Glsxtrusefield}[2]{%
+ \@Gls@entry@field{#1}{#2}%
+ }
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\GLSxtrusefield}[2]{%
+ \texorpdfstring
+ {\glsdoifexists{#1}{\mfirstucMakeUppercase{\@gls@entry@field{#1}{#2}}}}%
+ {\@gls@entry@field{#1}{#2}}%
+ }
+}
+{
+ \newcommand*{\GLSxtrusefield}[2]{%
+ \glsdoifexists{#1}{\mfirstucMakeUppercase{\@gls@entry@field{#1}{#2}}}%
+ }
+}
+\newcommand*{\glsxtrentryparentname}[1]{%
+ \ifcsdef{glo@\glsdetoklabel{#1}@parent}%
+ {\csuse{glo@\csuse{glo@\glsdetoklabel{#1}@parent}@name}}%
+ {}%
+}
+\newcommand*{\glsxtrdeffield}[2]{\csdef{glo@\glsdetoklabel{#1}@#2}}
+\newcommand*{\glsxtredeffield}[2]{\protected@csedef{glo@\glsdetoklabel{#1}@#2}}
+\newcommand*{\glsxtrapptocsvfield}[3]{%
+ \ifcsdef{glo@\glsdetoklabel{#1}@#2}%
+ {\csappto{glo@\glsdetoklabel{#1}@#2}{,#3}}%
+ {\csdef{glo@\glsdetoklabel{#1}@#2}{#3}}%
+}
+\newcommand*{\glsxtrsetfieldifexists}[3]{\glsdoifexists{#1}{#3}}
+\newrobustcmd*{\GlsXtrSetField}[3]{%
+ \glsxtrsetfieldifexists{#1}{#2}%
+ {\csdef{glo@\glsdetoklabel{#1}@#2}{#3}}%
+}
+\newrobustcmd*{\GlstrLetField}[3]{%
+ \glsxtrsetfieldifexists{#1}{#2}%
+ {\cslet{glo@\glsdetoklabel{#1}@#2}{#3}}%
+}
+\newrobustcmd*{\csGlsXtrLetField}[3]{%
+ \glsxtrsetfieldifexists{#1}{#2}%
+ {\csletcs{glo@\glsdetoklabel{#1}@#2}{#3}}%
+}
+\newrobustcmd*{\GlsXtrLetFieldToField}[4]{%
+ \glsxtrsetfieldifexists{#1}{#2}%
+ {\csletcs{glo@\glsdetoklabel{#1}@#2}{glo@\glsdetoklabel{#3}@#4}}%
+}
+\newrobustcmd*{\gGlsXtrSetField}[3]{%
+ \glsxtrsetfieldifexists{#1}{#2}%
+ {\csgdef{glo@\glsdetoklabel{#1}@#2}{#3}}%
+}
+\newrobustcmd*{\xGlsXtrSetField}[3]{%
+ \glsxtrsetfieldifexists{#1}{#2}%
+ {\protected@csxdef{glo@\glsdetoklabel{#1}@#2}{#3}}%
+}
+\newrobustcmd*{\eGlsXtrSetField}[3]{%
+ \glsxtrsetfieldifexists{#1}{#2}%
+ {\protected@csedef{glo@\glsdetoklabel{#1}@#2}{#3}}%
+}
+\newcommand*{\GlsXtrIfFieldEqStr}{%
+ \@ifstar\s@GlsXtrIfFieldEqStr\@GlsXtrIfFieldEqStr
+}
+\newrobustcmd*{\@GlsXtrIfFieldEqStr}[5]{%
+ \@glsxtrifhasfield{#1}{#2}%
+ {%
+ \ifdefstring{\glscurrentfieldvalue}{#3}{#4}{#5}%
+ }%
+ {#5}%
+}
+\newrobustcmd*{\s@GlsXtrIfFieldEqStr}[5]{%
+ \s@glsxtrifhasfield{#1}{#2}%
+ {%
+ \ifdefstring{\glscurrentfieldvalue}{#3}{#4}{#5}%
+ }%
+ {#5}%
+}
+\newcommand*{\GlsXtrIfFieldEqXpStr}{%
+ \@ifstar\s@GlsXtrIfFieldEqXpStr\@GlsXtrIfFieldEqXpStr
+}
+\newrobustcmd*{\@GlsXtrIfFieldEqXpStr}[5]{%
+ \@glsxtrifhasfield{#1}{#2}%
+ {%
+ \protected@edef\@gls@tmp{#3}%
+ \ifdefequal{\glscurrentfieldvalue}{\@gls@tmp}{#4}{#5}%
+ }%
+ {#5}%
+}
+\newrobustcmd*{\s@GlsXtrIfFieldEqXpStr}[5]{%
+ \s@glsxtrifhasfield{#1}{#2}%
+ {%
+ \protected@edef\@gls@tmp{#3}%
+ \ifdefequal{\glscurrentfieldvalue}{\@gls@tmp}{#4}{#5}%
+ }%
+ {#5}%
+}
+\newcommand*{\GlsXtrIfXpFieldEqXpStr}{%
+ \@ifstar\s@GlsXtrIfXpFieldEqXpStr\@GlsXtrIfXpFieldEqXpStr
+}
+\newrobustcmd*{\@GlsXtrIfXpFieldEqXpStr}[5]{%
+ \@glsxtrifhasfield{#1}{#2}%
+ {%
+ \protected@edef\@gls@tmp{\glscurrentfieldvalue}%
+ \let\glscurrentfieldvalue\@gls@tmp
+ \protected@edef\@gls@tmp{#3}%
+ \ifdefequal{\glscurrentfieldvalue}{\@gls@tmp}{#4}{#5}%
+ }%
+ {#5}%
+}
+\newrobustcmd*{\s@GlsXtrIfXpFieldEqXpStr}[5]{%
+ \s@glsxtrifhasfield{#1}{#2}%
+ {%
+ \protected@edef\@gls@tmp{\glscurrentfieldvalue}%
+ \let\glscurrentfieldvalue\@gls@tmp
+ \protected@edef\@gls@tmp{#3}%
+ \ifdefequal{\glscurrentfieldvalue}{\@gls@tmp}{#4}{#5}%
+ }%
+ {#5}%
+}
+\ifdef\foreignlanguage
+{
+ \ifdef\GetTrackedDialectFromLanguageTag
+ {
+ \newcommand{\GlsXtrForeignText}[2]{%
+ \let\@glsxtr@org@currentfieldvalue\glscurrentfieldvalue
+ \glsxtrifhasfield{\GlsXtrForeignTextField}{#1}%
+ {%
+ \expandafter\GetTrackedDialectFromLanguageTag\expandafter
+ {\glscurrentfieldvalue}{\@glsxtr@dialect}%
+ \let\@glsxtr@locale\glscurrentfieldvalue
+ \let\glscurrentfieldvalue\@glsxtr@org@currentfieldvalue
+ \ifdefempty\@glsxtr@dialect
+ {%
+ \ifundef\TrackedDialectClosestSubMatch
+ {%
+ \GlossariesExtraWarning{Can't obtain dialect label
+ (tracklang v1.3.6+ required)}%
+ }%
+ {\let\@glsxtr@dialect\TrackedDialectClosestSubMatch}%
+ }%
+ {}%
+ \ifdefempty\@glsxtr@dialect
+ {%
+ }%
+ {%
+ \ifcsundef{captions\@glsxtr@dialect}{}%
+ {%
+ \IfTrackedDialectHasMapping{\@glsxtr@dialect}%
+ {%
+ \edef\@glsxtr@dialect{%
+ \GetTrackedDialectToMapping{\@glsxtr@dialect}}%
+ \ifcsundef{captions\@glsxtr@dialect}{}%
+ {%
+ \ifcsundef{captions\@tracklang@lang}{}%
+ {%
+ \let\@glsxtr@dialect\@tracklang@lang
+ }%
+ }%
+ }%
+ {%
+ \ifcsundef{captions\@tracklang@lang}{}%
+ {%
+ \let\@glsxtr@dialect\@tracklang@lang
+ }%
+ }%
+ }%
+ }%
+ \ifdefempty\@glsxtr@dialect
+ {%
+ \GlsXtrUnknownDialectWarning{\@glsxtr@locale}{\@tracklang@lang}%
+ #2%
+ }%
+ {\foreignlanguage{\@glsxtr@dialect}{#2}}%
+ }%
+ {#2}% key not set
+ }
+ }
+ {
+ \newcommand{\GlsXtrForeignText}[2]{%
+ \GlossariesExtraWarning{Can't encapsulate foreign text:
+ tracklang v1.3.6+ required}%
+ #2%
+ }
+ }
+}
+{
+ \newcommand{\GlsXtrForeignText}[2]{#2}
+}
+\newcommand*{\GlsXtrForeignTextField}{userii}
+\newcommand*{\GlsXtrUnknownDialectWarning}[2]{%
+ \GlossariesExtraWarning{Can't determine valid dialect label
+ for locale `#1' (root language: #2)}%
+}
+\ifdef\GlsEntryCounterLabelPrefix
+{%
+ \newcommand*{\glsxtrpageref}[1]{%
+ \ifglsentrycounter
+ \pageref{\GlsEntryCounterLabelPrefix\glsdetoklabel{#1}}%
+ \else
+ \ifglssubentrycounter
+ \pageref{\GlsEntryCounterLabelPrefix\glsdetoklabel{#1}}%
+ \else
+ \gls{#1}%
+ \fi
+ \fi
+ }
+}%
+{%
+ \newcommand*{\glsxtrpageref}[1]{%
+ \ifglsentrycounter
+ \pageref{glsentry-\glsdetoklabel{#1}}%
+ \else
+ \ifglssubentrycounter
+ \pageref{glsentry-\glsdetoklabel{#1}}%
+ \else
+ \gls{#1}%
+ \fi
+ \fi
+ }
+}%
+\newcommand{\apptoglossarypreamble}[2][\glsdefaulttype]{%
+ \ifcsdef{glolist@#1}%
+ {%
+ \ifcsundef{@glossarypreamble@#1}%
+ {\csdef{@glossarypreamble@#1}{}}%
+ {}%
+ \csappto{@glossarypreamble@#1}{#2}%
+ }%
+ {%
+ \GlossariesExtraWarning{Glossary `#1' is not defined}%
+ }%
+}
+\newcommand{\preglossarypreamble}[2][\glsdefaulttype]{%
+ \ifcsdef{glolist@#1}%
+ {%
+ \ifcsundef{@glossarypreamble@#1}%
+ {\csdef{@glossarypreamble@#1}{}}%
+ {}%
+ \cspreto{@glossarypreamble@#1}{#2}%
+ }%
+ {%
+ \GlossariesExtraWarning{Glossary `#1' is not defined}%
+ }%
+}
+\ifdef\@gls@entry@field
+{
+ \renewcommand*{\@gls@entry@field}[2]{\csuse{glo@\glsdetoklabel{#1}@#2}}
+}
+{}
+\renewcommand*{\ifglsused}[3]{%
+ \glsdoifexists{#1}{\ifbool{glo@\glsdetoklabel{#1}@flag}{#2}{#3}}%
+}
+\renewcommand*{\longnewglossaryentry}{%
+ \@ifstar\@glsxtr@s@longnewglossaryentry\@glsxtr@longnewglossaryentry
+}
+\newcommand{\@glsxtr@s@longnewglossaryentry}[3]{%
+ \glsdoifnoexists{#1}%
+ {%
+ \bgroup
+ \let\@org@newglossaryentryprehook\@newglossaryentryprehook
+ \long\def\@newglossaryentryprehook{%
+ \long\def\@glo@desc{#3}%
+ \@org@newglossaryentryprehook
+ }%
+ \renewcommand*{\gls@assign@desc}[1]{%
+ \global\cslet{glo@\glsdetoklabel{#1}@desc}{\@glo@desc}%
+ \global\cslet{glo@\glsdetoklabel{#1}@descplural}{\@glo@descplural}%
+ }
+ \gls@defglossaryentry{#1}{#2}%
+ \egroup
+ }%
+}
+\newcommand{\@glsxtr@longnewglossaryentry}[3]{%
+ \glsdoifnoexists{#1}%
+ {%
+ \bgroup
+ \let\@org@newglossaryentryprehook\@newglossaryentryprehook
+ \long\def\@newglossaryentryprehook{%
+ \long\def\@glo@desc{#3\glsxtrpostlongdescription}%
+ \@org@newglossaryentryprehook
+ }%
+ \renewcommand*{\gls@assign@desc}[1]{%
+ \global\cslet{glo@\glsdetoklabel{#1}@desc}{\@glo@desc}%
+ \global\cslet{glo@\glsdetoklabel{#1}@descplural}{\@glo@descplural}%
+ }
+ \gls@defglossaryentry{#1}{#2}%
+ \egroup
+ }%
+}
+\newcommand*{\glsxtrpostlongdescription}{\leavevmode\unskip\nopostdesc}
+\renewcommand{\newignoredglossary}{%
+ \@ifstar\glsxtr@s@newignoredglossary\glsxtr@org@newignoredglossary
+}
+\newcommand*{\glsxtr@org@newignoredglossary}[1]{%
+ \ifcsdef{glolist@#1}
+ {%
+ \glsxtrundefaction{Glossary type `#1' already exists}{}%
+ }%
+ {%
+ \ifdefempty\@ignored@glossaries
+ {%
+ \protected@edef\@ignored@glossaries{#1}%
+ }%
+ {%
+ \protected@eappto\@ignored@glossaries{,#1}%
+ }%
+ \csgdef{glolist@#1}{,}%
+ \ifcsundef{gls@#1@entryfmt}%
+ {%
+ \defglsentryfmt[#1]{\glsentryfmt}%
+ }%
+ {}%
+ \ifdefempty\@gls@nohyperlist
+ {%
+ \renewcommand*{\@gls@nohyperlist}{#1}%
+ }%
+ {%
+ \protected@eappto\@gls@nohyperlist{,#1}%
+ }%
+ }%
+}
+\newcommand*{\glsxtr@s@newignoredglossary}[1]{%
+ \ifcsdef{glolist@#1}
+ {%
+ \glsxtrundefaction{Glossary type `#1' already exists}{}%
+ }%
+ {%
+ \ifdefempty\@ignored@glossaries
+ {%
+ \protected@edef\@ignored@glossaries{#1}%
+ }%
+ {%
+ \protected@eappto\@ignored@glossaries{,#1}%
+ }%
+ \csgdef{glolist@#1}{,}%
+ \ifcsundef{gls@#1@entryfmt}%
+ {%
+ \defglsentryfmt[#1]{\glsentryfmt}%
+ }%
+ {}%
+ }%
+}
+\glsifusetranslator
+{%
+ \renewcommand*{\glssettoctitle}[1]{%
+ \ifcsdef{gls@tr@set@#1@toctitle}%
+ {%
+ \csuse{gls@tr@set@#1@toctitle}%
+ }%
+ {%
+ \ifcsdef{@glotype@#1@title}%
+ {\def\glossarytoctitle{\csname @glotype@#1@title\endcsname}}%
+ {\def\glossarytoctitle{\glossarytitle}}%
+ }%
+ }%
+}
+{
+ \renewcommand*{\glssettoctitle}[1]{%
+ \ifcsdef{@glotype@#1@title}%
+ {\def\glossarytoctitle{\csname @glotype@#1@title\endcsname}}%
+ {\def\glossarytoctitle{\glossarytitle}}%
+ }
+}
+\newcommand{\provideignoredglossary}{%
+ \@ifstar\glsxtr@s@provideignoredglossary\glsxtr@provideignoredglossary
+}
+\newcommand*{\glsxtr@provideignoredglossary}[1]{%
+ \ifcsdef{glolist@#1}
+ {}%
+ {%
+ \ifdefempty\@ignored@glossaries
+ {%
+ \protected@edef\@ignored@glossaries{#1}%
+ }%
+ {%
+ \protected@eappto\@ignored@glossaries{,#1}%
+ }%
+ \csgdef{glolist@#1}{,}%
+ \ifcsundef{gls@#1@entryfmt}%
+ {%
+ \defglsentryfmt[#1]{\glsentryfmt}%
+ }%
+ {}%
+ \ifdefempty\@gls@nohyperlist
+ {%
+ \renewcommand*{\@gls@nohyperlist}{#1}%
+ }%
+ {%
+ \protected@eappto\@gls@nohyperlist{,#1}%
+ }%
+ }%
+}
+\newcommand*{\glsxtr@s@provideignoredglossary}[1]{%
+ \ifcsdef{glolist@#1}
+ {}%
+ {%
+ \ifdefempty\@ignored@glossaries
+ {%
+ \protected@edef\@ignored@glossaries{#1}%
+ }%
+ {%
+ \protected@eappto\@ignored@glossaries{,#1}%
+ }%
+ \csgdef{glolist@#1}{,}%
+ \ifcsundef{gls@#1@entryfmt}%
+ {%
+ \defglsentryfmt[#1]{\glsentryfmt}%
+ }%
+ {}%
+ }%
+}
+\newcommand*{\glsxtrcopytoglossary}[2]{%
+ \glsdoifexists{#1}%
+ {%
+ \ifcsdef{glolist@#2}
+ {%
+ \protected@cseappto{glolist@#2}{#1,}%
+ }%
+ {%
+ \glsxtrundefaction{Glossary type `#2' doesn't exist}{}%
+ }%
+ }%
+}
+\renewcommand{\glsdoifexists}[2]{%
+ \ifglsentryexists{#1}{#2}%
+ {%
+ \protected@edef\glslabel{\glsdetoklabel{#1}}%
+ \glsxtrundefaction{Glossary entry `\glslabel'
+ has not been defined}{You need to define a glossary entry before
+ you can reference it.}%
+ }%
+}
+\renewcommand{\glsdoifnoexists}[2]{%
+ \ifglsentryexists{#1}{%
+ \glsxtrundefaction{Glossary entry `\glsdetoklabel{#1}'
+ has already been defined}{}}{#2}%
+}
+\ifdef\glsdoifexistsordo
+{%
+ \renewcommand{\glsdoifexistsordo}[3]{%
+ \ifglsentryexists{#1}{#2}%
+ {%
+ \glsxtrundefaction{Glossary entry `\glsdetoklabel{#1}'
+ has not been defined}{You need to define a glossary entry
+ before you can use it.}%
+ #3%
+ }%
+ }%
+}
+{%
+ \glsxtr@warnonexistsordo\glsdoifexistsordo
+ \newcommand{\glsdoifexistsordo}[3]{%
+ \ifglsentryexists{#1}{#2}%
+ {%
+ \glsxtrundefaction{Glossary entry `\glsdetoklabel{#1}'
+ has not been defined}{You need to define a glossary entry
+ before you can use it.}%
+ #3%
+ }%
+ }%
+}
+\ifdef\doifglossarynoexistsordo
+{%
+ \renewcommand{\doifglossarynoexistsordo}[3]{%
+ \ifglossaryexists*{#1}%
+ {%
+ \glsxtrundefaction{Glossary type `#1' already exists}{}%
+ #3%
+ }%
+ {#2}%
+ }%
+}
+{%
+ \glsxtr@warnonexistsordo\doifglossarynoexistsordo
+ \newcommand{\doifglossarynoexistsordo}[3]{%
+ \ifglossaryexists*{#1}%
+ {%
+ \glsxtrundefaction{Glossary type `#1' already exists}{}%
+ #3%
+ }%
+ {#2}%
+ }%
+}
+
+\appto\@newglossaryentryposthook{%
+ \ifdefvoid\@glo@see
+ {\csxdef{glo@\@glo@label @see}{}}%
+ {%
+ \csxdef{glo@\@glo@label @see}{\@glo@see}%
+ \if@glsxtr@autoseeindex
+ \@glsxtr@autoindexcrossrefs
+ \fi
+ }%
+}
+\appto\@gls@keymap{,{see}{see}}
+\newcommand*{\glsxtrusesee}[1]{%
+ \glsdoifexists{#1}%
+ {%
+ \letcs{\@glo@see}{glo@\glsdetoklabel{#1}@see}%
+ \ifdefempty\@glo@see
+ {}%
+ {%
+ \expandafter\glsxtr@usesee\@glo@see\@end@glsxtr@usesee
+ }%
+ }%
+}
+\newcommand*{\glsxtr@usesee}[1][\seename]{%
+ \@glsxtr@usesee[#1]%
+}
+\def\@glsxtr@usesee[#1]#2\@end@glsxtr@usesee{%
+ \glsxtruseseeformat{#1}{#2}%
+}
+\newcommand*{\glsxtruseseeformat}[2]{%
+ \glsseeformat[#1]{#2}{}%
+}
+\renewcommand*{\glsseeitemformat}[1]{%
+ \ifglshasshort{#1}{\glsfmttext{#1}}{\glsfmtname{#1}}%
+}
+\newcommand*{\glsxtrhiername}[1]{%
+ \glsdoifexists{#1}%
+ {%
+ \glsxtrifhasfield{parent}{#1}%
+ {\glsxtrhiername{\glscurrentfieldvalue}\glsxtrhiernamesep}%
+ {}%
+ \ifglshasshort{#1}{\glsfmttext{#1}}{\glsfmtname{#1}}%
+ }%
+}
+\newcommand*{\Glsxtrhiername}[1]{%
+ \glsdoifexists{#1}%
+ {%
+ \glsxtrifhasfield{parent}{#1}%
+ {%
+ \Glsxtrhiername{\glscurrentfieldvalue}\glsxtrhiernamesep
+ \ifglshasshort{#1}{\glsfmttext{#1}}{\glsfmtname{#1}}%
+ }%
+ {\ifglshasshort{#1}{\Glsfmttext{#1}}{\Glsfmtname{#1}}}%
+ }%
+}
+\newcommand*{\GlsXtrhiername}[1]{%
+ \glsdoifexists{#1}%
+ {%
+ \glsxtrifhasfield{parent}{#1}%
+ {\GlsXtrhiername{\glscurrentfieldvalue}\glsxtrhiernamesep}%
+ {}%
+ \ifglshasshort{#1}{\Glsfmttext{#1}}{\Glsfmtname{#1}}%
+ }%
+}
+\newcommand*{\GLSxtrhiername}[1]{%
+ \glsdoifexists{#1}%
+ {%
+ \glsxtrifhasfield{parent}{#1}%
+ {%
+ \GLSxtrhiername{\glscurrentfieldvalue}\glsxtrhiernamesep
+ \ifglshasshort{#1}{\glsfmttext{#1}}{\glsfmtname{#1}}%
+ }%
+ {\ifglshasshort{#1}{\GLSfmttext{#1}}{\GLSfmtname{#1}}}%
+ }%
+}
+\newcommand*{\GLSXTRhiername}[1]{%
+ \glsdoifexists{#1}%
+ {%
+ \glsxtrifhasfield{parent}{#1}%
+ {\GLSXTRhiername{\glscurrentfieldvalue}\glsxtrhiernamesep}%
+ {}
+ \ifglshasshort{#1}{\GLSfmttext{#1}}{\GLSfmtname{#1}}%
+ }%
+}
+\newcommand*{\glsxtrhiernamesep}{\,{\small$\triangleright$}\,}
+\newcommand*{\glsxtruseseealso}[1]{%
+ \glsdoifexists{#1}%
+ {%
+ \letcs{\@glo@see}{glo@\glsdetoklabel{#1}@seealso}%
+ \ifdefempty\@glo@see
+ {}%
+ {%
+ \expandafter\glsxtruseseealsoformat\expandafter{\@glo@see}%
+ }%
+ }%
+}
+\newcommand*{\glsxtrusealias}[1]{%
+ \glsdoifexists{#1}%
+ {%
+ \letcs{\@glo@see}{glo@\glsdetoklabel{#1}@alias}%
+ \ifdefempty\@glo@see
+ {}%
+ {%
+ \glsxtruseseeformat{\seename}{\@glo@see}%
+ }%
+ }%
+}
+\newcommand*{\glsxtruseseealsoformat}[1]{%
+ \glsseeformat[\seealsoname]{#1}{}%
+}
+\newrobustcmd{\glsxtrseelist}[1]{%
+ \protected@edef\@glo@tmp{\noexpand\glsseelist{#1}}\@glo@tmp
+}
+\renewrobustcmd*{\glsseelist}[1]{%
+ \let\@gls@dolast\relax
+ \let\@gls@donext\relax
+ \let\@glsseeitem\@glsxtr@seefirstitem
+ \let\@glsseelastsep\glsseelastsep
+ \@for\@gls@thislabel:=#1\do{%
+ \ifx\@xfor@nextelement\@nnil
+ \@gls@dolast
+ \else
+ \@gls@donext
+ \fi
+ \expandafter\@glsseeitem\expandafter{\@gls@thislabel}%
+ \let\@gls@dolast\@glsseelastsep
+ \let\@gls@donext\glsseesep
+ \let\@glsseeitem\@glsxtr@seeitem
+ \let\@glsseelastsep\glsseelastoxfordsep
+ }%
+}
+\newcommand*{\@glsxtr@seeitem}[1]{%
+ \glsxtrifmulti{#1}{\mglsseeitem{#1}}{\glsseeitem{#1}}%
+}
+\newcommand*{\@glsxtr@seefirstitem}[1]{%
+ \glsxtrifmulti{#1}{\mglsseefirstitem{#1}}{\glsseefirstitem{#1}}%
+}
+\newcommand*{\mglsseeitem}[1]{%
+ \mglsname[all={noindex},setup={hyper=allmain}]{#1}%
+}
+\newcommand*{\mglsseefirstitem}{\mglsseeitem}
+\newcommand*{\glsseefirstitem}{\glsseeitem}
+\newcommand*{\glsseelastoxfordsep}{\glsseelastsep}
+\ifdef\alsoname
+{\providecommand{\seealsoname}{\alsoname}}
+{\providecommand{\seealsoname}{see also}}
+\ifdef\@xdycrossrefhook
+{
+ \appto\@xdycrossrefhook{%
+ \write\glswrite{(define-crossref-class \string"seealso\string"
+ :unverified )}%
+ \write\glswrite{(markup-crossref-list
+ :class \string"seealso\string"^^J\space\space\space
+ :open \string"\string\glsxtruseseealsoformat\glsopenbrace\string"
+ :close \string"\glsclosebrace\string")}%
+ }
+ \appto\@xdylocationclassorder{\space\string"seealso\string"}
+ \newrobustcmd*{\glsxtrindexseealso}[2]{%
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@alsoindex
+ \@glsxtr@recordsee{#1}{#2}%
+ \fi
+ \glsdoifexists{#1}%
+ {%
+ \@@glsxtrwrglossmark
+ \def\@gls@xref{#2}%
+ \@onelevel@sanitize\@gls@xref
+ \@gls@checkmkidxchars\@gls@xref
+ \gls@glossary{\csname glo@#1@type\endcsname}{%
+ (indexentry
+ :tkey (\csname glo@#1@index\endcsname)
+ :xref (\string"\@gls@xref\string")
+ :attr \string"seealso\string"
+ )
+ }%
+ }%
+ }
+}
+{
+ \newrobustcmd*{\glsxtrindexseealso}{\glssee[\seealsoname]}
+}
+\ifdef\gls@set@xr@key
+{
+ \define@key{glossentry}{alias}{%
+ \gls@set@xr@key{alias}{\@glo@alias}{#1}%
+ }
+ \define@key{glossentry}{seealso}{%
+ \gls@set@xr@key{seealso}{\@glo@seealso}{#1}%
+ }
+ \appto\@gls@keymap{,{alias}{alias},{seealso}{seealso}}
+ \appto\@newglossaryentryprehook{\def\@glo@alias{}\def\@glo@seealso{}}%
+ \appto\@newglossaryentryposthook{%
+ \ifdefvoid\@glo@seealso
+ {\csxdef{glo@\@glo@label @seealso}{}}%
+ {%
+ \csxdef{glo@\@glo@label @seealso}{\@glo@seealso}%
+ \if@glsxtr@autoseeindex
+ \@glsxtr@autoindexcrossrefs
+ \fi
+ }%
+ \ifdefvoid\@glo@alias
+ {\csxdef{glo@\@glo@label @alias}{}}%
+ {%
+ \csxdef{glo@\@glo@label @alias}{\@glo@alias}%
+ }%
+ }
+ \newcommand*{\glsxtralias}[1]{\@gls@entry@field{#1}{alias}}
+ \newcommand*{\glsxtrseealsolabels}[1]{\@gls@entry@field{#1}{seealso}}
+ \appto\@glo@autoseehook{%
+ \ifdefvoid\@glo@alias
+ {%
+ \ifdefvoid\@glo@seealso
+ {}%
+ {%
+ \protected@edef\@do@glssee{\noexpand\glsxtrindexseealso
+ {\@glo@label}{\@glo@seealso}}%
+ \@do@glssee
+ }%
+ }%
+ {%
+ \ifdefvoid\@glo@see
+ {%
+ \protected@edef\@do@glssee{\noexpand\glssee{\@glo@label}{\@glo@alias}}%
+ \@do@glssee
+ }%
+ {}%
+ }%
+ }%
+}
+{
+ \glsaddstoragekey*{alias}{}{\glsxtralias}
+ \glsaddstoragekey*{seealso}{}{\glsxtrseealsolabels}
+ \appto\@newglossaryentryposthook{%
+ \ifcsvoid{glo@\@glo@label @alias}%
+ {%
+ \ifcsvoid{glo@\@glo@label @seealso}%
+ {}%
+ {%
+ \protected@edef\@do@glssee{\noexpand\glsxtrindexseealso
+ {\@glo@label}{\csuse{glo@\@glo@label @seealso}}}%
+ \@do@glssee
+ }%
+ }%
+ {%
+ \ifdefvoid\@glo@see
+ {%
+ \protected@edef\@do@glssee{\noexpand\glssee
+ {\@glo@label}{\csuse{glo@\@glo@label @alias}}}%
+ \@do@glssee
+ }%
+ {}%
+ }%
+ }
+}
+\AtEndDocument{\if@glsxtrindexcrossrefs\glsxtraddallcrossrefs\fi}
+\newcommand*{\glsxtraddallcrossrefs}{%
+ \forallglossaries{\@glo@type}%
+ {%
+ \forglsentries[\@glo@type]{\@glo@label}%
+ {%
+ \ifglsused{\@glo@label}%
+ {\expandafter\@glsxtr@addunusedxrefs\expandafter{\@glo@label}}{}%
+ }%
+ }%
+}
+\newcommand*{\@glsxtr@addunusedxrefs}[1]{%
+ \letcs{\@glo@see}{glo@\glsdetoklabel{#1}@see}%
+ \ifdefvoid\@glo@see
+ {}%
+ {%
+ \expandafter\glsxtr@addunused\@glo@see\@end@glsxtr@addunused
+ }%
+ \letcs{\@glo@see}{glo@\glsdetoklabel{#1}@seealso}%
+ \ifdefvoid\@glo@see
+ {}%
+ {%
+ \expandafter\glsxtr@addunused\@glo@see\@end@glsxtr@addunused
+ }%
+}
+\newcommand*{\glsxtr@addunused}[1][]{%
+ \@glsxtr@addunused
+}
+\def\@glsxtr@addunused#1\@end@glsxtr@addunused{%
+ \@for\@glsxtr@label:=#1\do
+ {%
+ \glsxtrifmulti\@glsxtr@label
+ {%
+ \letcs\@glsxtr@labellist{@gls@combined@\@glsxtr@label @list}%
+ \@for\@glsxtr@multilabel:=\@glsxtr@labellist\do
+ {\@glsxtr@addunused\@glsxtr@multilabel\@end@glsxtr@addunused}%
+ }%
+ {%
+ \ifglsused{\@glsxtr@label}{}%
+ {%
+ \glsadd[format=glsxtrunusedformat]{\@glsxtr@label}%
+ \glsunset{\@glsxtr@label}%
+ \expandafter\@glsxtr@addunusedxrefs\expandafter{\@glsxtr@label}%
+ }%
+ }%
+ }%
+}
+\newcommand*{\glsxtrunusedformat}[1]{\unskip}
+\ifdef\gls@begindocdefs
+{%
+ \renewcommand*{\gls@begindocdefs}{%
+ \ifnum\@glsxtr@docdefval=1\relax
+ \@gls@enablesavenonumberlist
+ \edef\@gls@restoreat{%
+ \noexpand\catcode`\noexpand\@=\number\catcode`\@\relax}%
+ \makeatletter
+ \InputIfFileExists{\jobname.glsdefs}{}{}%
+ \@gls@restoreat
+ \undef\@gls@restoreat
+ \gls@defdocnewglossaryentry
+ \else
+ \ifnum\@glsxtr@docdefval=3\relax
+ \@gls@enablesavenonumberlist
+ \let\gls@checkseeallowed\relax
+ \let\newglossaryentry\new@atom@glossaryentry
+ \global\newwrite\@gls@deffile
+ \immediate\openout\@gls@deffile=\jobname.glsdefs
+ \forallglsentries{\@glsentry}{\@gls@writedef{\@glsentry}}%
+ \fi
+ \fi
+ }
+}
+{%
+ \ifnum\@glsxtr@docdefval=3\relax
+ \PackageError{glossaries-extra}{Package option
+ `docdef=\@glsxtr@docdefsetting' requires at least version 4.37
+ of the base glossaries.sty package}{}
+ \fi
+}
+\newrobustcmd{\new@atom@glossaryentry}[2]{%
+ \gls@defglossaryentry{#1}{#2}%
+ \@gls@writedef{#1}%
+}
+\let\glsxtr@orgmakenoidxglossaries\makenoidxglossaries
+\renewcommand{\makenoidxglossaries}{%
+ \@domakeglossaries
+ {%
+ \ifdefequal\@glsxtr@record@setting\@glsxtr@record@setting@off
+ {%
+ \glsxtr@orgmakenoidxglossaries
+ \renewcommand{\@do@seeglossary}[2]{%
+ \@@glsxtrwrglossmark
+ \protected@edef\@gls@label{\glsdetoklabel{##1}}%
+ \protected@write\@auxout{}{%
+ \string\@gls@reference
+ {\csname glo@\@gls@label @type\endcsname}%
+ {\@gls@label}%
+ {%
+ \string\glsseeformat##2{}%
+ }%
+ }%
+ }%
+ \if@glsxtrdocdefrestricted
+ \renewcommand*{\@gls@reference}[3]{%
+ \ifcsundef{@glsref@##1}{\csgdef{@glsref@##1}{}}{}%
+ \ifinlistcs{##2}{@glsref@##1}%
+ {}%
+ {\listcsgadd{@glsref@##1}{##2}}%
+ \ifcsundef{glo@\glsdetoklabel{##2}@loclist}%
+ {\csgdef{glo@\glsdetoklabel{##2}@loclist}{}}%
+ {}%
+ \listcsgadd{glo@\glsdetoklabel{##2}@loclist}{##3}%
+ }%
+ \else
+ \@glsxtrdocdeffalse
+ \fi
+ \disable@keys{glossaries-extra.sty}{docdef}%
+ }%
+ {%
+ \PackageError{glossaries-extra}{\string\makenoidxglossaries\space
+ not permitted\MessageBreak
+ with record=\@glsxtr@record@setting\space package option}%
+ {You may only use \string\makenoidxglossaries\ space with the
+ record=off option}%
+ }%
+ }%
+}
+\renewcommand*{\gls@defdocnewglossaryentry}{%
+ \ifcase\@glsxtr@docdefval
+ \renewcommand*{\newglossaryentry}[2]{%
+ \PackageError{glossaries-extra}{Glossary entries must
+ be \MessageBreak defined in the preamble with \MessageBreak
+ package option `docdef=false'\MessageBreak(consider using
+ `docdef=restricted')}{Move your glossary definitions to
+ the preamble. You can also put them in a \MessageBreak separate file
+ and load them with \string\loadglsentries.}%
+ }%
+ \or
+ \let\gls@checkseeallowed\relax
+ \let\newglossaryentry\new@glossaryentry
+ \else
+ \let\gls@checkseeallowed\relax
+ \fi
+}%
+\newcommand*{\GlsXtrEnableOnTheFly}{%
+ \@ifstar\@sGlsXtrEnableOnTheFly\@GlsXtrEnableOnTheFly
+}
+\newcommand*{\@sGlsXtrEnableOnTheFly}{%
+ \renewcommand*{\glsdetoklabel}[1]{%
+ \expandafter\@glsxtr@ifcsstart\string##1 \@glsxtr@end@
+ {%
+ \expandafter\detokenize\expandafter{##1}%
+ }%
+ {\detokenize{##1}}%
+ }%
+ \@GlsXtrEnableOnTheFly
+}
+\def\@glsxtr@ifcsstart#1#2\@glsxtr@end@#3#4{%
+ \expandafter\if\glsbackslash#1%
+ #3%
+ \else
+ #4%
+ \fi
+}
+\newcommand*{\glsxtrstarflywarn}{%
+ \GlossariesExtraWarning{Experimental starred version of
+ \string\GlsXtrEnableOnTheFly\space in use (please ensure you have
+ read the warnings in the glossaries-extra user manual)}%
+}
+\newcommand*{\@GlsXtrEnableOnTheFly}{%
+ \newcommand*{\glsxtrcat}{general}
+ \newcommand*{\glsxtr}[1][]{%
+ \def\glsxtr@keylist{##1}%
+ \@glsxtr
+ }
+ \newcommand*{\@glsxtr}[2][]{%
+ \ifglsentryexists{##2}%
+ {%
+ \ifblank{##1}{}{\GlsXtrWarning{##1}{##2}}%
+ }%
+ {%
+ \gls@defglossaryentry{##2}{name={##2},category=\glsxtrcat,
+ description={\nopostdesc},##1}%
+ }%
+ \expandafter\gls\expandafter[\glsxtr@keylist]{##2}%
+ }
+ \newcommand*{\Glsxtr}[1][]{%
+ \def\glsxtr@keylist{##1}%
+ \@Glsxtr
+ }
+ \newcommand*{\@Glsxtr}[2][]{%
+ \ifglsentryexists{##2}%
+ {%
+ \ifblank{##1}{}{\GlsXtrWarning{##1}{##2}}%
+ }%
+ {%
+ \gls@defglossaryentry{##2}{name={##2},category=\glsxtrcat,
+ description={\nopostdesc},##1}%
+ }%
+ \expandafter\Gls\expandafter[\glsxtr@keylist]{##2}%
+ }
+ \newcommand*{\glsxtrpl}[1][]{%
+ \def\glsxtr@keylist{##1}%
+ \@glsxtrpl
+ }
+ \newcommand*{\@glsxtrpl}[2][]{%
+ \ifglsentryexists{##2}%
+ {%
+ \ifblank{##1}{}{\GlsXtrWarning{##1}{##2}}%
+ }%
+ {%
+ \gls@defglossaryentry{##2}{name={##2},category=\glsxtrcat,
+ description={\nopostdesc},##1}%
+ }%
+ \expandafter\glspl\expandafter[\glsxtr@keylist]{##2}%
+ }
+ \newcommand*{\Glsxtrpl}[1][]{%
+ \def\glsxtr@keylist{##1}%
+ \@Glsxtrpl
+ }
+ \newcommand*{\@Glsxtrpl}[2][]{%
+ \ifglsentryexists{##2}
+ {%
+ \ifblank{##1}{}{\GlsXtrWarning{##1}{##2}}%
+ }%
+ {%
+ \gls@defglossaryentry{##2}{name={##2},category=\glsxtrcat,
+ description={\nopostdesc},##1}%
+ }%
+ \expandafter\Glspl\expandafter[\glsxtr@keylist]{##2}%
+ }
+ \newcommand*{\GlsXtrWarning}[2]{%
+ \def\@glsxtr@optlist{##1}%
+ \@onelevel@sanitize\@glsxtr@optlist
+ \GlossariesExtraWarning{The options `\@glsxtr@optlist' have
+ been ignored for entry `##2' as it has already been defined}%
+ }
+ \renewcommand\@printglossary[2]{%
+ \def\@glsxtr@printglossopts{##1}%
+ \@glsxtr@orgprintglossary{##1}{##2}%
+ \def\@glsxtr{\@glsxtr@disabledflycommand\glsxtr}%
+ \def\@glsxtrpl{\@glsxtr@disabledflycommand\glsxtrpl}%
+ \def\@Glsxtr{\@glsxtr@disabledflycommand\Glsxtr}%
+ \def\@Glsxtrpl{\@glsxtr@disabledflycommand\Glsxtrpl}%
+ }
+ \newcommand*{\@glsxtr@disabledflycommand}[1]{%
+ \PackageError{glossaries-extra}%
+ {\string##1\space can't be used after any of the \MessageBreak
+ glossaries have been displayed}%
+ {The on-the-fly commands enabled by
+ \string\GlsXtrEnableOnTheFly\space may only be used \MessageBreak
+ before the glossaries. If you want to use any entries \MessageBreak
+ after any of the glossaries, you must use the standard \MessageBreak
+ method of first defining the entry and then using the \MessageBreak
+ entry with commands like \string\gls}%
+ \@@glsxtr@disabledflycommand
+ }%
+ \newcommand*{\@@glsxtr@disabledflycommand}[2][]{##2}
+ \let\GlsXtrEnableOnTheFly\relax
+}
+\@onlypreamble\GlsXtrEnableOnTheFly
+\newcommand*{\@glsxtr@current@style}{\@glossary@default@style}
+\renewcommand*{\setglossarystyle}[1]{%
+ \ifcsundef{@glsstyle@#1}%
+ {%
+ \PackageError{glossaries-extra}{Glossary style `#1' undefined}{}%
+ }%
+ {%
+ \csname @glsstyle@#1\endcsname
+ \protected@edef\@glsxtr@current@style{#1}%
+ }%
+ \ifx\@glossary@default@style\relax
+ \protected@edef\@glossary@default@style{#1}%
+ \fi
+}
+\ifdef\@glossary@default@style
+{}
+{%
+ \let\@glossary@default@style\relax
+}
+\ifdef\glslistdottedwidth
+{%
+ \ifdim\glslistdottedwidth=.5\hsize
+ \setlength{\glslistdottedwidth}{-\dimexpr\maxdimen-1sp\relax}
+ \AtBeginDocument{%
+ \ifdim\glslistdottedwidth=-\dimexpr\maxdimen-1sp\relax
+ \setlength{\glslistdottedwidth}{.5\columnwidth}%
+ \fi
+ }%
+ \fi
+}
+{}%
+\ifdef\glsdescwidth
+{%
+ \ifdim\glsdescwidth=.6\hsize
+ \setlength{\glsdescwidth}{-\dimexpr\maxdimen-1sp\relax}
+ \AtBeginDocument{%
+ \ifdim\glsdescwidth=-\dimexpr\maxdimen-1sp\relax
+ \setlength{\glsdescwidth}{.6\columnwidth}%
+ \fi
+ }%
+ \fi
+}
+{}%
+\ifdef\glspagelistwidth
+{%
+ \ifdim\glspagelistwidth=.1\hsize
+ \setlength{\glspagelistwidth}{-\dimexpr\maxdimen-1sp\relax}
+ \AtBeginDocument{%
+ \ifdim\glspagelistwidth=-\dimexpr\maxdimen-1sp\relax
+ \setlength{\glspagelistwidth}{.1\columnwidth}%
+ \fi
+ }%
+ \fi
+}
+{}%
+\def\org@glossaryentrynumbers#1{#1\gls@save@numberlist{#1}}%
+\ifx\org@glossaryentrynumbers\glossaryentrynumbers
+ \glsnonumberlistfalse
+ \renewcommand*{\glossaryentrynumbers}[1]{%
+ \ifglsentryexists{\glscurrententrylabel}%
+ {%
+ \@glsxtrpreloctag
+ \GlsXtrFormatLocationList{#1}%
+ \@glsxtrpostloctag
+ \gls@save@numberlist{#1}%
+ }{}%
+ }%
+\else
+ \glsnonumberlisttrue
+ \renewcommand*{\glossaryentrynumbers}[1]{%
+ \ifglsentryexists{\glscurrententrylabel}%
+ {%
+ \gls@save@numberlist{#1}%
+ }{}%
+ }%
+\fi
+\newcommand*{\GlsXtrFormatLocationList}[1]{#1}
+\newcommand*{\GlsXtrEnablePreLocationTag}[2]{%
+ \let\@glsxtrpreloctag\@@glsxtrpreloctag
+ \let\@glsxtrpostloctag\@@glsxtrpostloctag
+ \renewcommand*{\@glsxtr@pagetag}{#1}%
+ \renewcommand*{\@glsxtr@pagestag}{#2}%
+ \renewcommand*{\@glsxtr@savepreloctag}[2]{%
+ \csgdef{@glsxtr@preloctag@##1}{##2}%
+ }%
+ \renewcommand*{\@glsxtr@doloctag}{%
+ \ifcsundef{@glsxtr@preloctag@\glscurrententrylabel}%
+ {%
+ \GlossariesWarning{Missing pre-location tag for `\glscurrententrylabel'.
+ Rerun required}%
+ }%
+ {%
+ \csuse{@glsxtr@preloctag@\glscurrententrylabel}%
+ }%
+ }%
+}
+\@onlypreamble\GlsXtrEnablePreLocationTag
+\newcommand*{\@@glsxtrpreloctag}{%
+ \let\@glsxtr@org@delimN\delimN
+ \let\@glsxtr@org@delimR\delimR
+ \let\@glsxtr@org@glsignore\glsignore
+ \gdef\@glsxtr@thisloctag{\@glsxtr@pagetag}%
+ \renewcommand*{\delimN}{%
+ \gdef\@glsxtr@thisloctag{\@glsxtr@pagestag}%
+ \@glsxtr@org@delimN}%
+ \renewcommand*{\delimR}{%
+ \gdef\@glsxtr@thisloctag{\@glsxtr@pagestag}%
+ \@glsxtr@org@delimR}%
+ \renewcommand*{\glsignore}[1]{%
+ \gdef\@glsxtr@thisloctag{\relax}%
+ \@glsxtr@org@glsignore{##1}}%
+ \@glsxtr@doloctag
+}
+\newcommand*{\@glsxtrpreloctag}{}
+\newcommand*{\@glsxtr@pagetag}{}%
+\newcommand*{\@glsxtr@pagestag}{}%
+\newcommand*{\@@glsxtrpostloctag}{%
+ \let\delimN\@glsxtr@org@delimN
+ \let\delimR\@glsxtr@org@delimR
+ \let\glsignore\@glsxtr@org@glsignore
+ \protected@write\@auxout{}%
+ {\string\@glsxtr@savepreloctag{\glscurrententrylabel}{\@glsxtr@thisloctag}}%
+}
+\newcommand*{\@glsxtrpostloctag}{}
+\newcommand*{\@glsxtr@savepreloctag}[2]{}
+\protected@write\@auxout{}{%
+ \string\providecommand\string\@glsxtr@savepreloctag[2]{}}
+\newcommand*{\@glsxtr@doloctag}{}
+\renewcommand*{\KV@printgloss@nonumberlist}[1]{%
+ \XKV@plfalse
+ \XKV@sttrue
+ \XKV@checkchoice[\XKV@resa]{#1}{true,false}%
+ {%
+ \csname glsnonumberlist\XKV@resa\endcsname
+ \ifglsnonumberlist
+ \def\glossaryentrynumbers##1{\gls@save@numberlist{##1}}%
+ \else
+ \def\glossaryentrynumbers##1{%
+ \@glsxtrpreloctag
+ \GlsXtrFormatLocationList{##1}%
+ \@glsxtrpostloctag
+ \gls@save@numberlist{##1}}%
+ \fi
+ }%
+}
+\renewcommand*{\glsentryfmt}{%
+ \ifglshasshort{\glslabel}{\glssetabbrvfmt{\glscategory{\glslabel}}}{}%
+ \glsifregular{\glslabel}%
+ {\glsxtrregularfont{\glsgenentryfmt}}%
+ {%
+ \ifglshasshort{\glslabel}%
+ {\glsxtrabbreviationfont{\glsxtrgenabbrvfmt}}%
+ {\glsxtrregularfont{\glsgenentryfmt}}%
+ }%
+}
+\newcommand*{\glsxtrregularfont}[1]{#1}
+\newcommand*{\glsxtrabbreviationfont}[1]{#1}
+\renewcommand{\@gls@field@link}[4][]{%
+ \@glsxtr@record{#2}{#3}{glslink}%
+ \glsdoifexists{#3}%
+ {%
+ \let\glsxtrorg@ifKV@glslink@hyper\ifKV@glslink@hyper
+ \@gls@save@glslocal
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \def\glscustomtext{#4}%
+ \@glsxtr@field@linkdefs
+ #1%
+ \@gls@link[#2]{#3}{#4}%
+ \let\ifKV@glslink@hyper\glsxtrorg@ifKV@glslink@hyper
+ \@gls@restore@glslocal
+ }%
+ \glspostlinkhook
+}
+\let\@glsxtr@org@gls@\@gls@
+\def\@gls@#1#2{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \@glsxtr@org@gls@{#1}{#2}%
+}%
+\let\@glsxtr@org@glspl@\@glspl@
+\def\@glspl@#1#2{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \@glsxtr@org@glspl@{#1}{#2}%
+}%
+\let\@glsxtr@org@Gls@\@Gls@
+\def\@Gls@#1#2{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \@glsxtr@org@Gls@{#1}{#2}%
+}%
+\let\@glsxtr@org@Glspl@\@Glspl@
+\def\@Glspl@#1#2{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \@glsxtr@org@Glspl@{#1}{#2}%
+}%
+\let\@glsxtr@org@GLS@\@GLS@
+\def\@GLS@#1#2{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \@glsxtr@org@GLS@{#1}{#2}%
+}%
+\let\@glsxtr@org@GLSpl@\@GLSpl@
+\def\@GLSpl@#1#2{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \@glsxtr@org@GLSpl@{#1}{#2}%
+}%
+\renewcommand*{\@glsdisp}[3][]{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \glsdoifexists{#2}{%
+ \let\do@gls@link@checkfirsthyper\@gls@link@checkfirsthyper
+ \let\glsifplural\@secondoftwo
+ \let\glscapscase\@firstofthree
+ \def\glscustomtext{#3}%
+ \def\glsinsert{}%
+ \def\@glo@text{\csname gls@\glstype @entryfmt\endcsname}%
+ \@gls@link[#1]{#2}{\@glo@text}%
+ \@gls@do@glsunset{#2}%
+ }%
+ \glspostlinkhook
+}
+\renewcommand*{\@gls@@link}[3][]{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \glsdoifexistsordo{#2}%
+ {%
+ \let\do@gls@link@checkfirsthyper\relax
+ \def\glscustomtext{#3}%
+ \@glsxtr@field@linkdefs
+ \@gls@link[#1]{#2}{#3}%
+ }%
+ {%
+ \glstextformat{#3}%
+ }%
+ \glspostlinkhook
+}
+\newcommand*{\glsxtrinitwrgloss}{%
+ \glsifattribute{\glslabel}{wrgloss}{after}%
+ {%
+ \glsxtrinitwrglossbeforefalse
+ }%
+ {%
+ \glsxtrinitwrglossbeforetrue
+ }%
+}
+\newif\ifglsxtrinitwrglossbefore
+\glsxtrinitwrglossbeforetrue
+\define@choicekey{glslink}{wrgloss}%
+[\@glsxtr@wrglossval\@glsxtr@wrglossnr]%
+{before,after}%
+{%
+ \ifcase\@glsxtr@wrglossnr\relax
+ \glsxtrinitwrglossbeforetrue
+ \or
+ \glsxtrinitwrglossbeforefalse
+ \fi
+}
+\define@key{glslink}{thevalue}{\def\@glsxtr@thevalue{#1}}
+\define@key{glslink}{theHvalue}{\def\@glsxtr@theHvalue{#1}}
+\define@boolkey{glslink}[glsxtr@]{hyperoutside}[true]{}
+\glsxtr@hyperoutsidetrue
+\define@key{glslink}{textformat}{%
+ \ifcsdef{#1}
+ {%
+ \letcs{\@glsxtr@local@textformat}{#1}%
+ }%
+ {%
+ \PackageError{glossaries-extra}{Unknown control sequence name `#1'}{}%
+ }%
+}
+\define@key{glslink}{prefix}{\def\glolinkprefix{#1}}
+\newcommand*{\glsxtrinithyperoutside}{%
+ \glsifattribute{\glslabel}{hyperoutside}{false}%
+ {%
+ \glsxtr@hyperoutsidefalse
+ }%
+ {%
+ \glsxtr@hyperoutsidetrue
+ }%
+}
+\newcommand*{\glsxtr@inc@linkcount}{}
+\newcommand*{\glslinkpresetkeys}{}
+\newrobustcmd*{\GlsXtrExpandedFmt}[2]{%
+ \protected@edef\@glsxtr@tmp{#2}%
+ \expandafter#1\expandafter{\@glsxtr@tmp}%
+}
+\newcommand*{\@glsxtr@use@equation@counter}{%
+ \@glsxtr@ifnum@mmode{\def\@gls@counter{equation}}{}%
+}
+\newcommand*{\glsxtr@do@autoadd}[1]{}
+\newcommand*{\GlsXtrAutoAddOnFormat}[3][\glslabel]{%
+ \renewcommand*{\glsxtr@do@autoadd}[1]{%
+ \begingroup
+ \protected@edef\@glsxtr@do@autoadd{%
+ \noexpand\ifstrequal{##1}{glslink}%
+ {%
+ \noexpand\DTLifinlist{\@glsnumberformat}{#2}{\noexpand\glsadd[format={\@glsnumberformat},#3]{#1}}{}%
+ }%
+ {}%
+ }%
+ \@glsxtr@do@autoadd
+ \endgroup
+ }%
+}
+\providecommand*{\glslinkwrcontent}[1]{{#1}}
+\def\@gls@link[#1]#2#3{%
+ \leavevmode
+ \protected@edef\glslabel{\glsdetoklabel{#2}}%
+ \def\@gls@link@opts{#1}%
+ \let\@gls@link@label\glslabel
+ \let\@glsnumberformat\@glsxtr@defaultnumberformat
+ \protected@edef\@gls@counter{\csname glo@\glslabel @counter\endcsname}%
+ \protected@edef\glstype{\csname glo@\glslabel @type\endcsname}%
+ \let\org@ifKV@glslink@hyper\ifKV@glslink@hyper
+ \@gls@save@glslocal
+ \let\@glsxtr@org@glolinkprefix\glolinkprefix
+ \let\@glsxtr@local@textformat\relax
+ \def\@glsxtr@thevalue{}%
+ \def\@glsxtr@theHvalue{\@glsxtr@thevalue}%
+ \glsxtrinitwrgloss
+ \glsxtrinithyperoutside
+ \@gls@setdefault@glslink@opts
+ \glsxtr@inc@linkcount
+ \if@glsxtr@equations
+ \@glsxtr@use@equation@counter
+ \fi
+ \do@glsdisablehyperinlist
+ \do@gls@link@checkfirsthyper
+ \glslinkpresetkeys
+ \setkeys{glslink}{#1}%
+ \glsxtr@do@autoadd{glslink}%
+ \glslinkpostsetkeys
+ \ifdefempty{\@glsxtr@thevalue}%
+ {%
+ \@gls@saveentrycounter
+ }%
+ {%
+ \let\theglsentrycounter\@glsxtr@thevalue
+ \def\theHglsentrycounter{\@glsxtr@theHvalue}%
+ }%
+ \@gls@setsort{\glslabel}%
+ \ifx\@glsxtr@local@textformat\relax
+ \glshasattribute{\glslabel}{textformat}%
+ {%
+ \protected@edef\@glsxtr@attrval{\glsgetattribute{\glslabel}{textformat}}%
+ \ifcsdef{\@glsxtr@attrval}%
+ {%
+ \letcs{\@glsxtr@textformat}{\@glsxtr@attrval}%
+ }%
+ {%
+ \GlossariesExtraWarning{Unknown control sequence name
+ `\@glsxtr@attrval' supplied in textformat attribute
+ for entry `\glslabel'. Reverting to default \string\glstextformat}%
+ \let\@glsxtr@textformat\glstextformat
+ }%
+ }%
+ {%
+ \let\@glsxtr@textformat\glstextformat
+ }%
+ \else
+ \let\@glsxtr@textformat\@glsxtr@local@textformat
+ \fi
+ \glslinkwrcontent
+ {%
+ \ifglsxtrinitwrglossbefore
+ \@do@wrglossary{#2}%
+ \fi
+ \ifKV@glslink@hyper
+ \ifglsxtr@hyperoutside
+ \@glslink{\glolinkprefix\glslabel}{\@glsxtr@textformat{#3}}%
+ \else
+ \@glsxtr@textformat{\@glslink{\glolinkprefix\glslabel}{#3}}%
+ \fi
+ \else
+ \ifglsxtr@hyperoutside
+ \glsdonohyperlink{\glolinkprefix\glslabel}{\@glsxtr@textformat{#3}}%
+ \else
+ \@glsxtr@textformat{\glsdonohyperlink{\glolinkprefix\glslabel}{#3}}%
+ \fi
+ \fi
+ \ifglsxtrinitwrglossbefore
+ \else
+ \@do@wrglossary{#2}%
+ \fi
+ }%
+ \let\glolinkprefix\@glsxtr@org@glolinkprefix
+ \let\ifKV@glslink@hyper\org@ifKV@glslink@hyper
+ \@gls@restore@glslocal
+}
+\define@key{glossadd}{thevalue}{\def\@glsxtr@thevalue{#1}}
+\define@key{glossadd}{theHvalue}{\def\@glsxtr@theHvalue{#1}}
+\newcommand*{\glsaddpresetkeys}{}
+
+\newcommand*{\glsaddpostsetkeys}{}
+\renewrobustcmd*{\glsadd}[2][]{%
+ \glsxtrifinmark
+ {}%
+ {%
+ \@gls@adjustmode
+ \begingroup
+ \@glsxtr@record{#1}{#2}{glossadd}%
+ \glsdoifexists{#2}%
+ {%
+ \let\@glsnumberformat\@glsxtr@defaultnumberformat
+ \protected@edef\@gls@counter{\csname glo@\glsdetoklabel{#2}@counter\endcsname}%
+ \def\@glsxtr@thevalue{}%
+ \def\@glsxtr@theHvalue{\@glsxtr@thevalue}%
+ \glsaddpresetkeys
+ \setkeys{glossadd}{#1}%
+ \glsaddpostsetkeys
+ \ifdefempty{\@glsxtr@thevalue}%
+ {%
+ \@gls@saveentrycounter
+ }%
+ {%
+ \let\theglsentrycounter\@glsxtr@thevalue
+ \def\theHglsentrycounter{\@glsxtr@theHvalue}%
+ }%
+ \@gls@setsort{#2}%
+ \KV@glslink@noindexfalse
+ \@@do@wrglossary{#2}%
+ }%
+ \endgroup
+ }%
+}
+\newrobustcmd{\glsaddeach}[2][]{%
+ \@for\@gls@thislabel:=#2\do{\glsadd[#1]{\@gls@thislabel}}%
+}
+\newcommand*{\@glsxtr@field@linkdefs}{%
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@secondoftwo
+ \let\glscapscase\@firstofthree
+ \let\glsinsert\@empty
+}
+\newcommand*{\glsxtrassignfieldfont}[1]{%
+ \ifglsentryexists{#1}%
+ {%
+ \ifglshasshort{#1}%
+ {%
+ \glssetabbrvfmt{\glscategory{#1}}%
+ \glsifregular{#1}%
+ {\let\@gls@field@font\glsxtrregularfont}%
+ {\let\@gls@field@font\@firstofone}%
+ }%
+ {%
+ \glsifnotregular{#1}%
+ {\let\@gls@field@font\@firstofone}%
+ {\let\@gls@field@font\glsxtrregularfont}%
+ }%
+ }%
+ {%
+ \let\@gls@field@font\@gobble
+ }%
+}
+\def\@glstext@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link{#1}{#2}{\@gls@field@font{\glsaccesstext{#2}#3}}%
+}
+\def\@GLStext@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link[\let\glscapscase\@thirdofthree]{#1}{#2}%
+ {\@gls@field@font{\GLSaccesstext{#2}\mfirstucMakeUppercase{#3}}}%
+}
+\def\@Glstext@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link[\let\glscapscase\@secondofthree]{#1}{#2}%
+ {\@gls@field@font{\Glsaccesstext{#2}#3}}%
+}
+\newcommand*{\glsxtrchecknohyperfirst}[1]{%
+ \glsifattribute{#1}{nohyperfirst}{true}{\KV@glslink@hyperfalse}{}%
+}
+\def\@glsfirst@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glsxtrifwasfirstuse\@firstoftwo
+ \glsxtrchecknohyperfirst{#2}%
+ ]{#1}{#2}%
+ {\@gls@field@font{\glsaccessfirst{#2}#3}}%
+}
+\def\@Glsfirst@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glsxtrifwasfirstuse\@firstoftwo
+ \let\glscapscase\@secondofthree
+ \glsxtrchecknohyperfirst{#2}%
+ ]%
+ {#1}{#2}{\@gls@field@font{\Glsaccessfirst{#2}#3}}%
+}
+\def\@GLSfirst@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glsxtrifwasfirstuse\@firstoftwo
+ \let\glscapscase\@thirdofthree
+ \glsxtrchecknohyperfirst{#2}%
+ ]%
+ {#1}{#2}{\@gls@field@font{\GLSaccessfirst{#2}\mfirstucMakeUppercase{#3}}}%
+}
+\def\@glsplural@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link[\let\glsifplural\@firstoftwo]{#1}{#2}%
+ {\@gls@field@font{\glsaccessplural{#2}#3}}%
+}
+\def\@Glsplural@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glsifplural\@firstoftwo
+ \let\glscapscase\@secondofthree
+ ]%
+ {#1}{#2}{\@gls@field@font{\Glsaccessplural{#2}#3}}%
+}
+\def\@GLSplural@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glsifplural\@firstoftwo
+ \let\glscapscase\@thirdofthree
+ ]%
+ {#1}{#2}{\@gls@field@font{\GLSaccessplural{#2}\mfirstucMakeUppercase{#3}}}%
+}
+\def\@glsfirstplural@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glsxtrifwasfirstuse\@firstoftwo
+ \let\glsifplural\@firstoftwo
+ \glsxtrchecknohyperfirst{#2}%
+ ]%
+ {#1}{#2}{\@gls@field@font{\glsaccessfirstplural{#2}#3}}%
+}
+\def\@Glsfirstplural@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glsxtrifwasfirstuse\@firstoftwo
+ \let\glsifplural\@firstoftwo
+ \let\glscapscase\@secondofthree
+ \glsxtrchecknohyperfirst{#2}%
+ ]%
+ {#1}{#2}{\@gls@field@font{\Glsaccessfirstplural{#2}#3}}%
+}
+\def\@GLSfirstplural@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glsxtrifwasfirstuse\@firstoftwo
+ \let\glsifplural\@firstoftwo
+ \let\glscapscase\@thirdofthree
+ \glsxtrchecknohyperfirst{#2}%
+ ]%
+ {#1}{#2}%
+ {\@gls@field@font{\GLSaccessfirstplural{#2}\mfirstucMakeUppercase{#3}}}%
+}
+\def\@glsname@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link{#1}{#2}{\@gls@field@font{\glsaccessname{#2}#3}}%
+}
+\def\@Glsname@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glscapscase\@secondoftwo]{#1}{#2}%
+ {\@gls@field@font{\Glsaccessname{#2}#3}}%
+}
+\def\@GLSname@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link[\let\glscapscase\@thirdoftwo]%
+ {#1}{#2}%
+ {\@gls@field@font{\GLSaccessname{#2}\mfirstucMakeUppercase{#3}}}%
+}
+\def\@glsdesc@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link{#1}{#2}{\@gls@field@font{\glsaccessdesc{#2}#3}}%
+}
+\def\@Glsdesc@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glscapscase\@secondoftwo]{#1}{#2}%
+ {\@gls@field@font{\Glsaccessdesc{#2}#3}}%
+}
+\def\@GLSdesc@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link[\let\glscapscase\@thirdoftwo]%
+ {#1}{#2}{\@gls@field@font{\GLSaccessdesc{#2}\mfirstucMakeUppercase{#3}}}%
+}
+\def\@glsdescplural@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glscapscase\@secondoftwo
+ \let\glsifplural\@firstoftwo
+ ]{#1}{#2}{\@gls@field@font{\glsaccessdescplural{#2}#3}}%
+}
+\def\@Glsdescplural@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glscapscase\@secondoftwo
+ \let\glsifplural\@firstoftwo
+ ]{#1}{#2}{\@gls@field@font{\Glsaccessdescplural{#2}#3}}%
+}
+\def\@GLSdesc@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glscapscase\@thirdoftwo
+ \let\glsifplural\@firstoftwo
+ ]%
+ {#1}{#2}%
+ {\@gls@field@font{\GLSaccessdescplural{#2}\mfirstucMakeUppercase{#3}}}%
+}
+\def\@glssymbol@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link{#1}{#2}{\@gls@field@font{\glsaccesssymbol{#2}#3}}%
+}
+\def\@Glssymbol@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glscapscase\@secondoftwo]%
+ {#1}{#2}{\@gls@field@font{\Glsaccesssymbol{#2}#3}}%
+}
+\def\@GLSsymbol@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link[\let\glscapscase\@thirdoftwo]%
+ {#1}{#2}{\@gls@field@font{\GLSaccesssymbol{#2}\mfirstucMakeUppercase{#3}}}%
+}
+\def\@glssymbolplural@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glscapscase\@secondoftwo
+ \let\glsifplural\@firstoftwo
+ ]{#1}{#2}{\@gls@field@font{\glsaccesssymbolplural{#2}#3}}%
+}
+\def\@Glssymbolplural@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glscapscase\@secondoftwo
+ \let\glsifplural\@firstoftwo
+ ]{#1}{#2}{\@gls@field@font{\Glsaccesssymbolplural{#2}#3}}%
+}
+\def\@GLSsymbol@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glscapscase\@thirdoftwo
+ \let\glsifplural\@firstoftwo
+ ]%
+ {#1}{#2}%
+ {\@gls@field@font{\GLSaccesssymbolplural{#2}\mfirstucMakeUppercase{#3}}}%
+}
+\def\@Glsuseri@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glscapscase\@secondoftwo]{#1}{#2}%
+ {\@gls@field@font{\Glsentryuseri{#2}#3}}%
+}
+\def\@GLSuseri@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link[\let\glscapscase\@thirdoftwo]%
+ {#1}{#2}{\@gls@field@font{\mfirstucMakeUppercase{\glsentryuseri{#2}#3}}}%
+}
+\def\@Glsuserii@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glscapscase\@secondoftwo]%
+ {#1}{#2}{\@gls@field@font{\Glsentryuserii{#2}#3}}%
+}
+\def\@GLSuserii@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link[\let\glscapscase\@thirdoftwo]%
+ {#1}{#2}{\@gls@field@font{\mfirstucMakeUppercase{\glsentryuserii{#2}#3}}}%
+}
+\def\@Glsuseriii@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glscapscase\@secondoftwo]%
+ {#1}{#2}{\@gls@field@font{\Glsentryuseriii{#2}#3}}%
+}
+\def\@GLSuseriii@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link[\let\glscapscase\@thirdoftwo]%
+ {#1}{#2}{\@gls@field@font{\mfirstucMakeUppercase{\glsentryuseriii{#2}#3}}}%
+}
+\def\@Glsuseriv@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glscapscase\@secondoftwo]%
+ {#1}{#2}{\@gls@field@font{\Glsentryuseriv{#2}#3}}%
+}
+\def\@GLSuseriv@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link[\let\glscapscase\@thirdoftwo]%
+ {#1}{#2}%
+ {\@gls@field@font{\mfirstucMakeUppercase{\glsentryuseriv{#2}#3}}}%
+}
+\def\@Glsuserv@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glscapscase\@secondoftwo]%
+ {#1}{#2}{\@gls@field@font{\Glsentryuserv{#2}#3}}%
+}
+\def\@GLSuserv@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link[\let\glscapscase\@thirdoftwo]%
+ {#1}{#2}{\@gls@field@font{\mfirstucMakeUppercase{\glsentryuserv{#2}#3}}}%
+}
+\def\@Glsuservi@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link
+ [\let\glscapscase\@secondoftwo]%
+ {#1}{#2}{\@gls@field@font{\Glsentryuservi{#2}#3}}%
+}
+\def\@GLSuservi@#1#2[#3]{%
+ \glsxtrassignfieldfont{#2}%
+ \@gls@field@link[\let\glscapscase\@thirdoftwo]%
+ {#1}{#2}{\@gls@field@font{\mfirstucMakeUppercase{\glsentryuservi{#2}#3}}}%
+}
+\newcommand*{\@@glsxtr@base@acrcmd@warn}[2]{%
+ \GlossariesExtraWarning{Base acronym command \string#1\space
+ should not be used with new abbreviation definitions. Use
+ \string#2\space instead}%
+}
+\let\@glsxtr@base@acrcmd\@@glsxtr@base@acrcmd@warn
+\def\@acrshort#1#2[#3]{%
+ \@glsxtr@base@acrcmd\acrshort\glsxtrshort
+ \glsdoifexists{#2}%
+ {%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@secondoftwo
+ \let\glscapscase\@firstofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \acronymfont{\glsaccessshort{#2}}#3%
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\def\@Acrshort#1#2[#3]{%
+ \@glsxtr@base@acrcmd\Acrshort\Glsxtrshort
+ \glsdoifexists{#2}%
+ {%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@secondoftwo
+ \let\glscapscase\@secondofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \acronymfont{\Glsaccessshort{#2}}#3%
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\def\@ACRshort#1#2[#3]{%
+ \@glsxtr@base@acrcmd\ACRshort\GLSxtrshort
+ \glsdoifexists{#2}%
+ {%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@secondoftwo
+ \let\glscapscase\@thirdofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \mfirstucMakeUppercase{\acronymfont{\glsaccessshort{#2}}#3}%
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\def\@acrshortpl#1#2[#3]{%
+ \@glsxtr@base@acrcmd\acrshortpl\glsxtrshortpl
+ \glsdoifexists{#2}%
+ {%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@firstoftwo
+ \let\glscapscase\@firstofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \acronymfont{\glsaccessshortpl{#2}}#3%
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\def\@Acrshortpl#1#2[#3]{%
+ \@glsxtr@base@acrcmd\Acrshortpl\Glsxtrshortpl
+ \glsdoifexists{#2}%
+ {%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@firstoftwo
+ \let\glscapscase\@secondofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \acronymfont{\Glsaccessshortpl{#2}}#3%
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\def\@ACRshortpl#1#2[#3]{%
+ \@glsxtr@base@acrcmd\ACRshortpl\GLSxtrshortpl
+ \glsdoifexists{#2}%
+ {%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@firstoftwo
+ \let\glscapscase\@thirdofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \mfirstucMakeUppercase{\acronymfont{\glsaccessshortpl{#2}}#3}%
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\def\@acrlong#1#2[#3]{%
+ \@glsxtr@base@acrcmd\acrlong\glsxtrlong
+ \glsdoifexists{#2}%
+ {%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@secondoftwo
+ \let\glscapscase\@firstofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \acronymfont{\glsaccesslong{#2}}#3%
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\def\@Acrlong#1#2[#3]{%
+ \@glsxtr@base@acrcmd\Acrlong\Glsxtrlong
+ \glsdoifexists{#2}%
+ {%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@secondoftwo
+ \let\glscapscase\@secondofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \acronymfont{\Glsaccesslong{#2}}#3%
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\def\@ACRlong#1#2[#3]{%
+ \@glsxtr@base@acrcmd\ACRlong\GLSxtrlong
+ \glsdoifexists{#2}%
+ {%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@secondoftwo
+ \let\glscapscase\@thirdofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \mfirstucMakeUppercase{\acronymfont{\glsaccesslong{#2}}#3}%
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\def\@acrlongpl#1#2[#3]{%
+ \@glsxtr@base@acrcmd\acrlongpl\glsxtrlongpl
+ \glsdoifexists{#2}%
+ {%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@firstoftwo
+ \let\glscapscase\@firstofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \acronymfont{\glsaccesslongpl{#2}}#3%
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\def\@Acrlongpl#1#2[#3]{%
+ \@glsxtr@base@acrcmd\Acrlongpl\Glsxtrlongpl
+ \glsdoifexists{#2}%
+ {%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@firstoftwo
+ \let\glscapscase\@secondofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \acronymfont{\Glsaccesslongpl{#2}}#3%
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\def\@ACRlongpl#1#2[#3]{%
+ \@glsxtr@base@acrcmd\ACRlongpl\GLSxtrlongpl
+ \glsdoifexists{#2}%
+ {%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@firstoftwo
+ \let\glscapscase\@thirdofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \mfirstucMakeUppercase{\acronymfont{\glsaccesslongpl{#2}}#3}%
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\def\@acrfull#1#2[#3]{%
+ \@glsxtr@base@acrcmd\acrfull\glsxtrfull
+ \acrfullfmt{#1}{#2}{#3}%
+}
+\def\@Acrfull#1#2[#3]{%
+ \@glsxtr@base@acrcmd\Acrfull\Glsxtrfull
+ \Acrfullfmt{#1}{#2}{#3}%
+}
+\def\@ACRfull#1#2[#3]{%
+ \@glsxtr@base@acrcmd\ACRfull\GLSxtrfull
+ \ACRfullfmt{#1}{#2}{#3}%
+}
+\def\@acrfullpl#1#2[#3]{%
+ \@glsxtr@base@acrcmd\acrfullpl\glsxtrfullpl
+ \acrfullplfmt{#1}{#2}{#3}%
+}
+\def\@Acrfullpl#1#2[#3]{%
+ \@glsxtr@base@acrcmd\Acrfullpl\Glsxtrfullpl
+ \Acrfullplfmt{#1}{#2}{#3}%
+}
+\def\@ACRfullpl#1#2[#3]{%
+ \@glsxtr@base@acrcmd\ACRfullpl\GLSxtrfullpl
+ \ACRfullplfmt{#1}{#2}{#3}%
+}
+\renewcommand*{\@glsaddkey}[7]{%
+ \key@ifundefined{glossentry}{#1}%
+ {%
+ \define@key{glossentry}{#1}{\csdef{@glo@#1}{##1}}%
+ \appto\@gls@keymap{,{#1}{#1}}%
+ \appto\@newglossaryentryprehook{\csdef{@glo@#1}{#2}}%
+ \appto\@newglossaryentryposthook{%
+ \letcs{\@glo@tmp}{@glo@#1}%
+ \gls@assign@field{#2}{\@glo@label}{#1}{\@glo@tmp}%
+ }%
+ \newcommand*{#3}[1]{\@gls@entry@field{##1}{#1}}%
+ \newcommand*{#4}[1]{\@Gls@entry@field{##1}{#1}}%
+ \ifcsdef{@gls@user@#1@}%
+ {%
+ \PackageError{glossaries}%
+ {Can't define `\string#5' as helper command
+ `\expandafter\string\csname @gls@user@#1@\endcsname' already
+ exists}%
+ {}%
+ }%
+ {%
+ \expandafter\newcommand\expandafter*\expandafter
+ {\csname @gls@user@#1\endcsname}[2][]{%
+ \new@ifnextchar[%
+ {\csuse{@gls@user@#1@}{##1}{##2}}%
+ {\csuse{@gls@user@#1@}{##1}{##2}[]}}%
+ \csdef{@gls@user@#1@}##1##2[##3]{%
+ \@gls@field@link{##1}{##2}{#3{##2}##3}%
+ }%
+ \newrobustcmd*{#5}{%
+ \expandafter\@gls@hyp@opt\csname @gls@user@#1\endcsname}%
+ }%
+ \ifcsdef{@Gls@user@#1@}%
+ {%
+ \PackageError{glossaries}%
+ {Can't define `\string#6' as helper command
+ `\expandafter\string\csname @Gls@user@#1@\endcsname' already
+ exists}%
+ {}%
+ }%
+ {%
+ \expandafter\newcommand\expandafter*\expandafter
+ {\csname @Gls@user@#1\endcsname}[2][]{%
+ \new@ifnextchar[%
+ {\csuse{@Gls@user@#1@}{##1}{##2}}%
+ {\csuse{@Gls@user@#1@}{##1}{##2}[]}}%
+ \csdef{@Gls@user@#1@}##1##2[##3]{%
+ \@gls@field@link[\let\glscapscase\@secondofthree]%
+ {##1}{##2}{#4{##2}##3}%
+ }%
+ \newrobustcmd*{#6}{%
+ \expandafter\@gls@hyp@opt\csname @Gls@user@#1\endcsname}%
+ }%
+ \ifcsdef{@GLS@user@#1@}%
+ {%
+ \PackageError{glossaries}%
+ {Can't define `\string#7' as helper command
+ `\expandafter\string\csname @GLS@user@#1@\endcsname' already
+ exists}%
+ {}%
+ }%
+ {%
+ \expandafter\newcommand\expandafter*\expandafter
+ {\csname @GLS@user@#1\endcsname}[2][]{%
+ \new@ifnextchar[%
+ {\csuse{@GLS@user@#1@}{##1}{##2}}%
+ {\csuse{@GLS@user@#1@}{##1}{##2}[]}}%
+ \csdef{@GLS@user@#1@}##1##2[##3]{%
+ \@gls@field@link[\let\glscapscase\@thirdofthree]%
+ {##1}{##2}{\mfirstucMakeUppercase{#3{##2}##3}}%
+ }%
+ \newrobustcmd*{#7}{%
+ \expandafter\@gls@hyp@opt\csname @GLS@user@#1\endcsname}%
+ }%
+ }%
+ {%
+ \PackageError{glossaries-extra}{Key `#1' already exists}{}%
+ }%
+}
+\providecommand*{\@gls@link@nocheckfirsthyper}{}
+\let\@glsxtr@org@checkfirsthyper\@gls@link@checkfirsthyper
+\renewcommand*{\@gls@link@checkfirsthyper}{%
+ \ifglsused{\glslabel}%
+ {\let\glsxtrifwasfirstuse\@secondoftwo}
+ {\let\glsxtrifwasfirstuse\@firstoftwo}%
+ \protected@edef\glscategorylabel{\glscategory{\glslabel}}%
+ \ifglsused{\glslabel}%
+ {%
+ \glsifcategoryattribute{\glscategorylabel}{nohypernext}{true}%
+ {\KV@glslink@hyperfalse}{}%
+ }%
+ {%
+ \glsifcategoryattribute{\glscategorylabel}{nohyperfirst}{true}%
+ {\KV@glslink@hyperfalse}{}%
+ }%
+ \glslinkcheckfirsthyperhook
+}
+\ifdef\do@glsdisablehyperinlist
+{%
+ \let\@glsxtr@do@glsdisablehyperinlist\do@glsdisablehyperinlist
+ \renewcommand*{\do@glsdisablehyperinlist}{%
+ \@glsxtr@do@glsdisablehyperinlist
+ \glsifattribute{\glslabel}{nohyper}{true}{\KV@glslink@hyperfalse}{}%
+ }
+}
+{}
+\define@boolkey{glslink}{noindex}[true]{}
+\KV@glslink@noindexfalse
+\providecommand*{\@gls@save@glslocal}{%
+ \let\if@org@KV@glslink@local\ifKV@glslink@local
+}
+\providecommand*{\@gls@restore@glslocal}{%
+ \ifKV@glslink@local
+ \let\@gls@do@glsunset\glslocalunset
+ \else
+ \let\@gls@do@glsunset\glsunset
+ \fi
+}
+\providecommand*{\@gls@do@glsunset}[1]{\glsunset{#1}}
+\ifdef\@gls@setdefault@glslink@opts
+{
+ \renewcommand*{\@gls@setdefault@glslink@opts}{%
+ \KV@glslink@noindexfalse
+ \@glsxtrsetaliasnoindex
+ }
+}
+{
+ \newcommand*{\@gls@setdefault@glslink@opts}{%
+ \KV@glslink@noindexfalse
+ \@glsxtrsetaliasnoindex
+ }
+ \preto\do@glsdisablehyperinlist{\@gls@setdefault@glslink@opts}
+}
+\providecommand*{\glsxtrsetaliasnoindex}{%
+ \KV@glslink@noindextrue
+}
+\newcommand*{\@glsxtrsetaliasnoindex}{%
+ \ifcsvoid{glo@\glsdetoklabel{\glslabel}@alias}%
+ {}%
+ {%
+ \let\glsxtrindexaliased\@glsxtrindexaliased
+ \glsxtrsetaliasnoindex
+ \let\glsxtrindexaliased\@no@glsxtrindexaliased
+ }%
+}
+\newcommand{\@glsxtrindexaliased}{%
+ \ifKV@glslink@noindex
+ \else
+ \begingroup
+ \let\@glsnumberformat\@glsxtr@defaultnumberformat
+ \protected@edef\@gls@counter{\csname glo@\glsdetoklabel{\glslabel}@counter\endcsname}%
+ \glsxtr@saveentrycounter
+ \@@do@wrglossary{\glsxtralias{\glslabel}}%
+ \endgroup
+ \fi
+}
+\newcommand{\@no@glsxtrindexaliased}{%
+ \PackageError{glossaries-extra}{\string\glsxtrindexaliased\space
+ not permitted outside definition of \string\glsxtrsetaliasnoindex}%
+ {}%
+}
+\let\glsxtrindexaliased\@no@glsxtrindexaliased
+\newcommand*{\GlsXtrSetDefaultGlsOpts}[1]{%
+ \renewcommand*{\@gls@setdefault@glslink@opts}{%
+ \setkeys{glslink}{#1}%
+ \@glsxtrsetaliasnoindex
+ }%
+}
+\newcommand*{\glsxtrifindexing}[2]{%
+ \ifKV@glslink@noindex #2\else #1\fi
+}
+\renewcommand*{\glswriteentry}[2]{%
+ \glsxtrifindexing
+ {%
+ \ifglsindexonlyfirst
+ \GlsXtrIfUnusedOrUndefined{#1}
+ {#2}%
+ {\glsxtrdoautoindexname{#1}{dualindex}}%
+ \else
+ \glsifattribute{#1}{indexonlyfirst}{true}%
+ {%
+ \GlsXtrIfUnusedOrUndefined{#1}%
+ {#2}%
+ {\glsxtrdoautoindexname{#1}{dualindex}}%
+ }%
+ {#2}%
+ \fi
+ }%
+ {}%
+}
+\appto\@@do@@wrglossary{\@glsxtr@do@@wrindex
+ \glsxtrdowrglossaryhook{\@gls@label}%
+}
+\appto\gls@noidxglossary{\@glsxtr@do@@wrindex
+ \glsxtrdowrglossaryhook{\@gls@label}%
+}
+\newcommand*{\@glsxtr@do@@wrindex}{%
+ \glsxtrdoautoindexname{\@gls@label}{dualindex}%
+}
+\newcommand*{\glsxtrdowrglossaryhook}[1]{}
+\newcommand*{\@gls@alt@hyp@opt}[1]{%
+ \let\glslinkvar\@firstofthree
+ \let\@gls@hyp@opt@cs#1\relax
+ \@ifstar{\s@gls@hyp@opt}%
+ {\@ifnextchar+%
+ {\@firstoftwo{\p@gls@hyp@opt}}%
+ {%
+ \expandafter\@ifnextchar\@gls@alt@hyp@opt@char
+ {\@firstoftwo{\@alt@gls@hyp@opt}}%
+ {#1}%
+ }%
+ }%
+}
+\newcommand*{\@alt@gls@hyp@opt}[1][]{%
+ \let\glslinkvar\@firstofthree
+ \expandafter\@gls@hyp@opt@cs\expandafter[\@gls@alt@hyp@opt@keys,#1]}
+\newcommand*{\@gls@alt@hyp@opt@char}{}
+\newcommand*{\@gls@alt@hyp@opt@keys}{}
+\newcommand*{\GlsXtrSetAltModifier}[2]{%
+ \let\@gls@hyp@opt\@gls@alt@hyp@opt
+ \ifstrequal{#1}{+}%
+ {\PackageError{glossaries-extra}%
+ {Can't use '#1' as modifier (it's already in use)}{}}%
+ {%
+ \ifstrequal{#1}{*}%
+ {\PackageError{glossaries-extra}%
+ {Can't use '#1' as modifier (it's already in use)}{}}%
+ {}%
+ }%
+ \def\@gls@alt@hyp@opt@char{#1}%
+ \def\@gls@alt@hyp@opt@keys{#2}%
+ \ifdefequal\@glsxtr@record@setting\@glsxtr@record@setting@off
+ {}%
+ {%
+ \protected@write\@auxout{}{\string\providecommand{\string\@glsxtr@altmodifier}[1]{}}%
+ \protected@write\@auxout{}{\string\@glsxtr@altmodifier{#1}}%
+ }%
+}
+\let\glsxtr@org@dohyperlink\glsdohyperlink
+\ifdef\glsnavhyperlink
+{
+ \renewcommand*{\glsnavhyperlink}[3][\@glo@type]{%
+ \protected@edef\gls@grplabel{#2}\protected@edef\@gls@grptitle{#3}%
+ {%
+ \let\glsxtrdohyperlink\glsxtr@org@dohyperlink
+ \@glslink{\glsnavhyperlinkname{#1}{#2}}{#3}%
+ }%
+ }%
+}
+{}
+\ifdef\@@gls@navhypertarget
+{}
+{%
+ \renewcommand*{\glsnavhypertarget}{\protect\@@gls@navhypertarget}
+ \newcommand*{\@@gls@navhypertarget}[3][\@glo@type]{%
+ \@glsnavhypertarget{#1}{#2}{#3}%
+ }
+}%
+\ifdef\@glsnavhypertarget
+{%
+ \renewcommand*{\@glsnavhypertarget}[3]{%
+ \protected@write\@auxout{}{\string\@gls@hypergroup{#1}{#2}}%
+ \@glsxtr@do@org@target{\glsnavhyperlinkname{#1}{#2}}{#3}%
+ \ifcsdef{@gls@hypergrouplist@#1}%
+ {%
+ \letcs\@gls@list{@gls@hypergrouplist@#1}%
+ \protected@edef\@gls@thishypernavlabel{#2}%
+ \expandafter\DTLifinlist\expandafter{\@gls@thishypernavlabel}\@gls@list{}%
+ {%
+ \GlossariesWarningNoLine{Navigation panel
+ for glossary type `#1'^^Jmissing group `#2'}%
+ \gdef\gls@hypergrouprerun{%
+ \GlossariesWarningNoLine{Navigation panel
+ has changed. Rerun LaTeX}}%
+ }%
+ }%
+ {%
+ \GlossariesWarningNoLine{Navigation panel
+ for glossary type `#1'^^Jmissing group `#2'}%
+ \gdef\gls@hypergrouprerun{%
+ \GlossariesWarningNoLine{Navigation panel
+ has changed. Rerun LaTeX}}%
+ }%
+ }%
+}
+{}
+\newcommand*{\glsxtrdohyperlink}[2]{%
+ \glshasattribute{\glslabel}{targeturl}%
+ {%
+ \glshasattribute{\glslabel}{targetname}%
+ {%
+ \glshasattribute{\glslabel}{targetcategory}%
+ {%
+ \hyperref{\glsgetattribute{\glslabel}{targeturl}}%
+ {\glsgetattribute{\glslabel}{targetcategory}}%
+ {\glsgetattribute{\glslabel}{targetname}}%
+ {{\glsxtrprotectlinks#2}}%
+ }%
+ {%
+ \hyperref{\glsgetattribute{\glslabel}{targeturl}}%
+ {}%
+ {\glsgetattribute{\glslabel}{targetname}}%
+ {{\glsxtrprotectlinks#2}}%
+ }%
+ }%
+ {%
+ \href{\glsgetattribute{\glslabel}{targeturl}}%
+ {{\glsxtrprotectlinks#2}}%
+ }%
+ }%
+ {%
+ \glsfieldfetch{\glslabel}{alias}{\gloaliaslabel}%
+ \ifdefvoid\gloaliaslabel
+ {%
+ \glsxtrhyperlink{#1}{{\glsxtrprotectlinks#2}}%
+ }%
+ {%
+ \glsxtrifmulti\gloaliaslabel
+ {%
+ \letcs\gloaliaslabel{@gls@combined@\gloaliaslabel @main}%
+ }%
+ {}%
+ \glsxtrhyperlink
+ {\glolinkprefix\glsdetoklabel{\gloaliaslabel}}%
+ {{\glsxtrprotectlinks#2}}%
+ }%
+ }%
+}
+
+\newcommand{\glsxtrhyperlink}[2]{%
+ \glsdoshowtarget{#1}{\hyperlink{#1}{#2}}%
+}%
+\renewrobustcmd*{\glshyperlink}[2][\glsentrytext{\@glo@label}]{%
+ \glsdoifexists{#2}%
+ {%
+ \def\@glo@label{#2}%
+ {\protected@edef\glslabel{#2}%
+ \@glslink{\glolinkprefix\glslabel}{#1}}%
+ }%
+}
+\renewcommand{\glsdisablehyper}{%
+ \KV@glslink@hyperfalse
+ \def\@glslink{\glsdonohyperlink}%
+ \let\@glstarget\@secondoftwo
+}
+\renewcommand{\glsenablehyper}{%
+ \KV@glslink@hypertrue
+ \def\@glslink{\glsxtrdohyperlink}%
+ \def\@glstarget{\glsdohypertarget}%
+}
+\def\glsdonohyperlink#1#2{{\glsxtrprotectlinks #2}}
+\ifcsundef{hyperlink}%
+{%
+ \def\@glslink{\glsdonohyperlink}
+}%
+{%
+ \def\@glslink{\glsxtrdohyperlink}
+}
+\newcommand*{\glsxtrprotectlinks}{%
+ \KV@glslink@hyperfalse
+ \KV@glslink@noindextrue
+ \let\@gls@\@glsxtr@p@text@
+ \let\@Gls@\@Glsxtr@p@text@
+ \let\@GLS@\@GLSxtr@p@text@
+ \let\@glspl@\@glsxtr@p@plural@
+ \let\@Glspl@\@Glsxtr@p@plural@
+ \let\@GLSpl@\@GLSxtr@p@plural@
+ \let\@glsxtrshort\@glsxtr@p@short@
+ \let\@Glsxtrshort\@Glsxtr@p@short@
+ \let\@GLSxtrshort\@GLSxtr@p@short@
+ \let\@glsxtrlong\@glsxtr@p@long@
+ \let\@Glsxtrlong\@Glsxtr@p@long@
+ \let\@GLSxtrlong\@GLSxtr@p@long@
+ \let\@glsxtrshortpl\@glsxtr@p@shortpl@
+ \let\@Glsxtrshortpl\@Glsxtr@p@shortpl@
+ \let\@GLSxtrshortpl\@GLSxtr@p@shortpl@
+ \let\@glsxtrlongpl\@glsxtr@p@longpl@
+ \let\@Glsxtrlongpl\@Glsxtr@p@longpl@
+ \let\@GLSxtrlongpl\@GLSxtr@p@longpl@
+ \let\@acrshort\@glsxtr@p@acrshort@
+ \let\@Acrshort\@Glsxtr@p@acrshort@
+ \let\@ACRshort\@GLSxtr@p@acrshort@
+ \let\@acrshortpl\@glsxtr@p@acrshortpl@
+ \let\@Acrshortpl\@Glsxtr@p@acrshortpl@
+ \let\@ACRshortpl\@GLSxtr@p@acrshortpl@
+ \let\@acrlong\@glsxtr@p@acrlong@
+ \let\@Acrlong\@Glsxtr@p@acrlong@
+ \let\@ACRlong\@GLSxtr@p@acrlong@
+ \let\@acrlongpl\@glsxtr@p@acrlongpl@
+ \let\@Acrlongpl\@Glsxtr@p@acrlongpl@
+ \let\@ACRlongpl\@GLSxtr@p@acrlongpl@
+}
+\def\@glsxtr@p@text@#1#2[#3]{{\@glstext@{#1}{#2}[#3]}}
+\def\@Glsxtr@p@text@#1#2[#3]{{\@Glstext@{#1}{#2}[#3]}}
+\def\@GLSxtr@p@text@#1#2[#3]{{\@GLStext@{#1}{#2}[#3]}}
+\def\@glsxtr@p@plural@#1#2[#3]{{\@glsplural@{#1}{#2}[#3]}}
+\def\@Glsxtr@p@plural@#1#2[#3]{{\@Glsplural@{#1}{#2}[#3]}}
+\def\@GLSxtr@p@plural@#1#2[#3]{{\@GLSplural@{#1}{#2}[#3]}}
+\def\@glsxtr@p@short@#1#2[#3]{%
+ {%
+ \glssetabbrvfmt{\glscategory{#2}}%
+ \glsabbrvfont{\glsentryshort{#2}}#3%
+ }%
+}
+\def\@Glsxtr@p@short@#1#2[#3]{%
+ {%
+ \glssetabbrvfmt{\glscategory{#2}}%
+ \glsabbrvfont{\Glsentryshort{#2}}#3%
+ }%
+}
+\def\@GLSxtr@p@short@#1#2[#3]{%
+ {%
+ \glssetabbrvfmt{\glscategory{#2}}%
+ \mfirstucMakeUppercase{\glsabbrvfont{\glsentryshort{#2}}#3}%
+ }%
+}
+\def\@glsxtr@p@shortpl@#1#2[#3]{%
+ {%
+ \glssetabbrvfmt{\glscategory{#2}}%
+ \glsabbrvfont{\glsentryshortpl{#2}}#3%
+ }%
+}
+\def\@Glsxtr@p@shortpl@#1#2[#3]{%
+ {%
+ \glssetabbrvfmt{\glscategory{#2}}%
+ \glsabbrvfont{\Glsentryshortpl{#2}}#3%
+ }%
+}
+\def\@GLSxtr@p@shortpl@#1#2[#3]{%
+ {%
+ \glssetabbrvfmt{\glscategory{#2}}%
+ \mfirstucMakeUppercase{\glsabbrvfont{\glsentryshortpl{#2}}#3}%
+ }%
+}
+\def\@glsxtr@p@long@#1#2[#3]{{\glsentrylong{#2}#3}}
+\def\@Glsxtr@p@long@#1#2[#3]{{\Glsentrylong{#2}#3}}
+\def\@GLSxtr@p@long@#1#2[#3]{%
+ {\mfirstucMakeUppercase{\glslongfont{\glsentrylong{#2}}#3}}}
+\def\@glsxtr@p@longpl@#1#2[#3]{{\glsentrylongpl{#2}#3}}
+\def\@Glsxtr@p@longpl@#1#2[#3]{{\glslongfont{\Glsentrylongpl{#2}}#3}}
+\def\@GLSxtr@p@longpl@#1#2[#3]{%
+ {\mfirstucMakeUppercase{\glslongfont{\glsentrylongpl{#2}}#3}}}
+\def\@glsxtr@p@acrshort@#1#2[#3]{{\acronymfont{\glsentryshort{#2}}#3}}
+\def\@Glsxtr@p@acrshort@#1#2[#3]{{\acronymfont{\Glsentryshort{#2}}#3}}
+\def\@GLSxtr@p@acrshort@#1#2[#3]{%
+ {\mfirstucMakeUppercase{\acronymfont{\glsentryshort{#2}}#3}}}
+\def\@glsxtr@p@acrshortpl@#1#2[#3]{{\acronymfont{\glsentryshortpl{#2}}#3}}
+\def\@Glsxtr@p@acrshortpl@#1#2[#3]{{\acronymfont{\Glsentryshortpl{#2}}#3}}
+\def\@GLSxtr@p@acrshortpl@#1#2[#3]{%
+ {\mfirstucMakeUppercase{\acronymfont{\glsentryshortpl{#2}}#3}}}
+\def\@glsxtr@p@acrlong@#1#2[#3]{{\glsentrylong{#2}#3}}
+\def\@Glsxtr@p@acrlong@#1#2[#3]{{\Glsentrylong{#2}#3}}
+\def\@GLSxtr@p@acrlong@#1#2[#3]{%
+ {\mfirstucMakeUppercase{\glsentrylong{#2}#3}}}
+\def\@glsxtr@p@acrlongpl@#1#2[#3]{{\glsentrylongpl{#2}#3}}
+\def\@Glsxtr@p@acrlongpl@#1#2[#3]{{\Glsentrylongpl{#2}#3}}
+\def\@GLSxtr@p@acrlongpl@#1#2[#3]{%
+ {\mfirstucMakeUppercase{\glsentrylongpl{#2}#3}}}
+\newcommand*{\@glsxtrp@opt}{hyper=false,noindex}
+\newcommand*{\glsxtrsetpopts}[1]{%
+ \renewcommand*{\@glsxtrp@opt}{#1}%
+}
+\newcommand*{\glossxtrsetpopts}{%
+ \glsxtrsetpopts{noindex}%
+}
+\newrobustcmd*{\@@glsxtrp}[2]{%
+ {%
+ \let\glspostlinkhook\relax
+ \csname#1\expandafter\endcsname\expandafter[\@glsxtrp@opt]{#2}[]%
+ }%
+}
+\newrobustcmd*{\@glsxtrp}[2]{%
+ \ifcsdef{gls#1}%
+ {%
+ \@@glsxtrp{gls#1}{#2}%
+ }%
+ {%
+ \ifcsdef{glsxtr#1}%
+ {%
+ \@@glsxtrp{glsxtr#1}{#2}%
+ }%
+ {%
+ \PackageError{glossaries-extra}{`#1' not recognised by
+ \string\glsxtrp}{}%
+ }%
+ }%
+}
+\newrobustcmd*{\@Glsxtrp}[2]{%
+ \ifcsdef{Gls#1}%
+ {%
+ \@@glsxtrp{Gls#1}{#2}%
+ }%
+ {%
+ \ifcsdef{Glsxtr#1}%
+ {%
+ \@@glsxtrp{Glsxtr#1}{#2}%
+ }%
+ {%
+ \PackageError{glossaries-extra}{`#1' not recognised by
+ \string\Glsxtrp}{}%
+ }%
+ }%
+}
+\newrobustcmd*{\@GLSxtrp}[2]{%
+ \ifcsdef{GLS#1}%
+ {%
+ \@@glsxtrp{GLS#1}{#2}%
+ }%
+ {%
+ \ifcsdef{GLSxtr#1}%
+ {%
+ \@@glsxtrp{GLSxtr#1}{#2}%
+ }%
+ {%
+ \PackageError{glossaries-extra}{`#1' not recognised by
+ \string\GLSxtrp}{}%
+ }%
+ }%
+}
+\newrobustcmd*{\glsxtr@headentry@p}[2]{%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \mfirstucMakeUppercase{\@gls@entry@field{#1}{#2}}%
+ }%
+ {%
+ \@gls@entry@field{#1}{#2}%
+ }%
+}
+\ifdef\texorpdfstring
+{
+ \newcommand{\glsxtrp}[2]{%
+ \protect\NoCaseChange
+ {%
+ \protect\texorpdfstring
+ {%
+ \protect\glsxtrifinmark
+ {%
+ \ifcsdef{glsxtrhead#1}%
+ {%
+ {\protect\csuse{glsxtrhead#1}{#2}}%
+ }%
+ {%
+ \glsxtr@headentry@p{#2}{#1}%
+ }%
+ }%
+ {%
+ \@glsxtrp{#1}{#2}%
+ }%
+ }%
+ {%
+ \protect\@gls@entry@field{#2}{#1}%
+ }%
+ }%
+ }
+}
+{
+ \newcommand{\glsxtrp}[2]{%
+ \protect\NoCaseChange
+ {%
+ \protect\glsxtrifinmark
+ {%
+ \ifcsdef{glsxtrhead#1}%
+ {%
+ {\protect\csuse{glsxtrhead#1}}%
+ }%
+ {%
+ \glsxtr@headentry@p{#2}{#1}%
+ }%
+ }%
+ {%
+ \@glsxtrp{#1}{#2}%
+ }%
+ }%
+ }
+}
+\newcommand*{\glsps}{\glsxtrp{short}}
+\newcommand*{\glspt}{\glsxtrp{text}}
+\ifdef\texorpdfstring
+{
+ \newcommand{\Glsxtrp}[2]{%
+ \protect\NoCaseChange
+ {%
+ \protect\texorpdfstring
+ {%
+ \protect\glsxtrifinmark
+ {%
+ \ifcsdef{Glsxtrhead#1}%
+ {%
+ {\protect\csuse{Glsxtrhead#1}{#2}}%
+ }%
+ {%
+ \protect\@Gls@entry@field{#2}{#1}%
+ }%
+ }%
+ {%
+ \@Glsxtrp{#1}{#2}%
+ }%
+ }%
+ {%
+ \protect\@gls@entry@field{#2}{#1}%
+ }%
+ }%
+ }
+}
+{
+ \newcommand{\Glsxtrp}[2]{%
+ \protect\NoCaseChange
+ {%
+ \protect\glsxtrifinmark
+ {%
+ \ifcsdef{Glsxtrhead#1}%
+ {%
+ {\protect\csuse{Glsxtrhead#1}}%
+ }%
+ {%
+ \protect\@Gls@entry@field{#2}{#1}%
+ }%
+ }%
+ {%
+ \@Glsxtrp{#1}{#2}%
+ }%
+ }%
+ }
+}
+\ifdef\texorpdfstring
+{
+ \newcommand{\GLSxtrp}[2]{%
+ \protect\NoCaseChange
+ {%
+ \protect\texorpdfstring
+ {%
+ \protect\glsxtrifinmark
+ {%
+ \ifcsdef{GLSxtr#1}%
+ {%
+ {\protect\GLSxtrshort[noindex,hyper=false]{#1}[]}%
+ }%
+ {%
+ \protect\mfirstucMakeUppercase
+ {%
+ \protect\@gls@entry@field{#2}{#1}%
+ }%
+ }%
+ }%
+ {%
+ \@GLSxtrp{#1}{#2}%
+ }%
+ }%
+ {%
+ \protect\@gls@entry@field{#2}{#1}%
+ }%
+ }%
+ }
+}
+{
+ \newcommand{\GLSxtrp}[2]{%
+ \protect\NoCaseChange
+ {%
+ \protect\glsxtrifinmark
+ {%
+ \ifcsdef{GLSxtr#1}%
+ {%
+ {\protect\GLSxtrshort[noindex,hyper=false]{#1}[]}%
+ }%
+ {%
+ \protect\mfirstucMakeUppercase
+ {%
+ \protect\@gls@entry@field{#2}{#1}%
+ }%
+ }%
+ }%
+ {%
+ \@GLSxtrp{#1}{#2}%
+ }%
+ }%
+ }
+}
+\newcommand*{\@glsxtr@unset}[1]{%
+ \@@glsunset{#1}%
+ \glsxtrpostunset{#1}%
+}%
+\let\@glsunset\@glsxtr@unset
+\newcommand*{\glsxtrpostunset}[1]{}
+\newcommand*{\GlsXtrStartUnsetBuffering}{%
+ \@ifstar\s@GlsXtrStartUnsetBuffering\@GlsXtrStartUnsetBuffering
+}
+\newcommand*{\@GlsXtrStartUnsetBuffering}{%
+ \let\@glsxtr@org@unset@buffer\@glsxtr@unset@buffer
+ \def\@glsxtr@unset@buffer{}%
+ \let\@glsunset\@glsxtrbuffer@unset
+}
+\newcommand*{\s@GlsXtrStartUnsetBuffering}{%
+ \let\@glsxtr@org@unset@buffer\@glsxtr@unset@buffer
+ \def\@glsxtr@unset@buffer{}%
+ \let\@glsunset\@glsxtrbuffer@nodup@unset
+}
+\newcommand*{\@glsxtrbuffer@unset}[1]{%
+ \listxadd\@glsxtr@unset@buffer{#1}%
+}
+\newcommand*{\@glsxtrbuffer@nodup@unset}[1]{%
+ \expandafter\ifinlist\expandafter{#1}{\@glsxtr@unset@buffer}{}%
+ {\listxadd\@glsxtr@unset@buffer{#1}}%
+}
+\newcommand*{\GlsXtrStopUnsetBuffering}{%
+ \@ifstar\s@GlsXtrStopUnsetBuffering\@GlsXtrStopUnsetBuffering
+}
+\newcommand*{\@GlsXtrStopUnsetBuffering}{%
+ \let\@glsunset\@glsxtr@unset
+ \forlistloop\@glsunset\@glsxtr@unset@buffer
+ \let\@glsxtr@unset@buffer\@glsxtr@org@unset@buffer
+}
+\newcommand*{\s@GlsXtrStopUnsetBuffering}{%
+ \forlistloop\@glslocalunset\@glsxtr@unset@buffer
+ \let\@glsunset\@glsxtr@unset
+}
+\newcommand*{\GlsXtrDiscardUnsetBuffering}{%
+ \let\@glsunset\@glsxtr@unset
+ \let\@glsxtr@unset@buffer\@glsxtr@org@unset@buffer
+}
+\newcommand*{\GlsXtrForUnsetBufferedList}[1]{%
+ \forlistloop#1\@glsxtr@unset@buffer
+}
+\renewcommand*{\@glslocalunset}[1]{%
+ \@@glslocalunset{#1}%
+ \glsxtrpostlocalunset{#1}%
+}%
+\newcommand*{\glsxtrpostlocalunset}[1]{}
+\renewcommand*{\@glsreset}[1]{%
+ \@@glsreset{#1}%
+ \glsxtrpostreset{#1}%
+}%
+\newcommand*{\glsxtrpostreset}[1]{}
+\renewcommand*{\@glslocalreset}[1]{%
+ \@@glslocalreset{#1}%
+ \glsxtrpostlocalreset{#1}%
+}%
+\newcommand*{\glsxtrpostlocalreset}[1]{}
+\newcommand*{\glslocalreseteach}[1]{%
+ \gls@ifnotmeasuring
+ {%
+ \@for\@gls@thislabel:=#1\do{%
+ \glsdoifexists{\@gls@thislabel}%
+ {%
+ \@glslocalreset{\@gls@thislabel}%
+ }%
+ }%
+ }%
+}
+\newcommand*{\glslocalunseteach}[1]{%
+ \gls@ifnotmeasuring
+ {%
+ \@for\@gls@thislabel:=#1\do{%
+ \glsdoifexists{\@gls@thislabel}%
+ {%
+ \@glslocalunset{\@gls@thislabel}%
+ }%
+ }%
+ }%
+}
+\newcommand*{\GlsXtrEnableEntryCounting}[2]{%
+ \glsenableentrycount
+ \renewcommand*{\gls}{\cgls}%
+ \renewcommand*{\Gls}{\cGls}%
+ \renewcommand*{\glspl}{\cglspl}%
+ \renewcommand*{\Glspl}{\cGlspl}%
+ \renewcommand*{\GLS}{\cGLS}%
+ \renewcommand*{\GLSpl}{\cGLSpl}%
+ \@glsxtr@setentrycountunsetattr{#1}{#2}%
+ \let\GlsXtrEnableEntryCounting\@glsxtr@setentrycountunsetattr
+ \renewcommand*{\GlsXtrEnableEntryUnitCounting}[3]{%
+ \PackageError{glossaries-extra}{\string\GlsXtrEnableEntryUnitCounting\space
+ can't be used with \string\GlsXtrEnableEntryCounting}%
+ {Use one or other but not both commands}}%
+}
+\newcommand*{\@glsxtr@setentrycountunsetattr}[2]{%
+ \@for\@glsxtr@cat:=#1\do
+ {%
+ \ifdefempty{\@glsxtr@cat}{}%
+ {%
+ \glssetcategoryattribute{\@glsxtr@cat}{entrycount}{#2}%
+ }%
+ }%
+}
+\renewcommand*{\glsenableentrycount}{%
+ \appto\@newglossaryentry@defcounters{\@@newglossaryentry@defcounters}%
+ \renewcommand*{\gls@defdocnewglossaryentry}{%
+ \renewcommand*\newglossaryentry[2]{%
+ \PackageError{glossaries}{\string\newglossaryentry\space
+ may only be used in the preamble when entry counting has
+ been activated}{If you use \string\glsenableentrycount\space
+ you must place all entry definitions in the preamble not in
+ the document environment}%
+ }%
+ }%
+ \newcommand*{\glsentrycurrcount}[1]{%
+ \ifcsundef{glo@\glsdetoklabel{##1}@currcount}%
+ {0}{\@gls@entry@field{##1}{currcount}}%
+ }%
+ \newcommand*{\glsentryprevcount}[1]{%
+ \ifcsundef{glo@\glsdetoklabel{##1}@prevcount}%
+ {0}{\@gls@entry@field{##1}{prevcount}}%
+ }%
+ \let\@glsxtr@entrycount@org@unset\glsxtrpostunset
+ \renewcommand*{\glsxtrpostunset}[1]{%
+ \@glsxtr@entrycount@org@unset{##1}%
+ \@gls@increment@currcount{##1}%
+ }%
+ \let\@glsxtr@entrycount@org@localunset\glsxtrpostlocalunset
+ \renewcommand*{\glsxtrpostlocalunset}[1]{%
+ \@glsxtr@entrycount@org@localunset{##1}%
+ \@gls@local@increment@currcount{##1}%
+ }%
+ \let\@glsxtr@entrycount@org@reset\glsxtrpostreset
+ \renewcommand*{\glsxtrpostreset}[1]{%
+ \@glsxtr@entrycount@org@reset{##1}%
+ \csgdef{glo@\glsdetoklabel{##1}@currcount}{0}%
+ }%
+ \let\@glsxtr@entrycount@org@localreset\glsxtrpostlocalreset
+ \renewcommand*{\glsxtrpostlocalreset}[1]{%
+ \@glsxtr@entrycount@org@localreset{##1}%
+ \csdef{glo@\glsdetoklabel{##1}@currcount}{0}%
+ }%
+ \let\@cgls@\@@cgls@
+ \let\@cglspl@\@@cglspl@
+ \let\@cGls@\@@cGls@
+ \let\@cGlspl@\@@cGlspl@
+ \let\@cGLS@\@@cGLS@
+ \let\@cGLSpl@\@@cGLSpl@
+ \AtEndDocument{\@gls@write@entrycounts}%
+ \renewcommand*{\@gls@entry@count}[2]{%
+ \csgdef{glo@\glsdetoklabel{##1}@prevcount}{##2}%
+ }%
+ \let\glsenableentrycount\relax
+ \renewcommand*{\glsenableentryunitcount}{%
+ \PackageError{glossaries-extra}{\string\glsenableentryunitcount\space
+ can't be used with \string\glsenableentrycount}%
+ {Use one or other but not both commands}%
+ }%
+}
+\renewcommand*{\@gls@write@entrycounts}{%
+ \immediate\write\@auxout
+ {\string\providecommand*{\string\@gls@entry@count}[2]{}}%
+ \count@=0\relax
+ \forallglsentries{\@glsentry}{%
+ \glshasattribute{\@glsentry}{entrycount}%
+ {%
+ \ifglsused{\@glsentry}%
+ {%
+ \immediate\write\@auxout
+ {\string\@gls@entry@count{\@glsentry}{\glsentrycurrcount{\@glsentry}}}%
+ }%
+ {}%
+ \advance\count@ by \@ne
+ }%
+ {}%
+ }%
+ \ifnum\count@=0
+ \GlossariesExtraWarningNoLine{Entry counting has been enabled
+ \MessageBreak with \string\glsenableentrycount\space but the
+ \MessageBreak attribute `entrycount' hasn't
+ \MessageBreak been assigned to any of the defined
+ \MessageBreak entries}%
+ \fi
+}
+\newcommand*{\glsxtrifcounttrigger}[3]{%
+ \glshasattribute{#1}{entrycount}%
+ {%
+ \ifnum\glsentryprevcount{#1}>\glsgetattribute{#1}{entrycount}\relax
+ #3%
+ \else
+ #2%
+ \fi
+ }%
+ {#3}%
+}
+\def\@@cgls@#1#2[#3]{%
+ \glsxtrifcounttrigger{#2}%
+ {%
+ \cglsformat{#2}{#3}%
+ \glsunset{#2}%
+ }%
+ {%
+ \@gls@{#1}{#2}[#3]%
+ }%
+}%
+\def\@@cglspl@#1#2[#3]{%
+ \glsxtrifcounttrigger{#2}%
+ {%
+ \cglsplformat{#2}{#3}%
+ \glsunset{#2}%
+ }%
+ {%
+ \@glspl@{#1}{#2}[#3]%
+ }%
+}%
+\def\@@cGls@#1#2[#3]{%
+ \glsxtrifcounttrigger{#2}%
+ {%
+ \cGlsformat{#2}{#3}%
+ \glsunset{#2}%
+ }%
+ {%
+ \@Gls@{#1}{#2}[#3]%
+ }%
+}%
+\def\@@cGlspl@#1#2[#3]{%
+ \glsxtrifcounttrigger{#2}%
+ {%
+ \cGlsplformat{#2}{#3}%
+ \glsunset{#2}%
+ }%
+ {%
+ \@Glspl@{#1}{#2}[#3]%
+ }%
+}%
+\def\@@cGLS@#1#2[#3]{%
+ \glsxtrifcounttrigger{#2}%
+ {%
+ \cGLSformat{#2}{#3}%
+ \glsunset{#2}%
+ }%
+ {%
+ \@GLS@{#1}{#2}[#3]%
+ }%
+}%
+\def\@@cGLSpl@#1#2[#3]{%
+ \glsxtrifcounttrigger{#2}%
+ {%
+ \cGLSplformat{#2}{#3}%
+ \glsunset{#2}%
+ }%
+ {%
+ \@GLSpl@{#1}{#2}[#3]%
+ }%
+}%
+\def\@cgls@#1#2[#3]{\@gls@{#1}{#2}[#3]}
+\def\@cGls@#1#2[#3]{\@Gls@{#1}{#2}[#3]}
+\def\@cglspl@#1#2[#3]{\@glspl@{#1}{#2}[#3]}
+\def\@cGlspl@#1#2[#3]{\@Glspl@{#1}{#2}[#3]}
+\newrobustcmd*{\cGLS}{\@gls@hyp@opt\@cGLS}
+\newcommand*{\@cGLS}[2][]{%
+ \new@ifnextchar[{\@cGLS@{#1}{#2}}{\@cGLS@{#1}{#2}[]}%
+}
+\def\@cGLS@#1#2[#3]{\@GLS@{#1}{#2}[#3]}
+\newcommand*{\cGLSformat}[2]{%
+ \expandafter\mfirstucMakeUppercase\expandafter{\cglsformat{#1}{#2}}%
+}
+\newrobustcmd*{\cGLSpl}{\@gls@hyp@opt\@cGLSpl}
+\newcommand*{\@cGLSpl}[2][]{%
+ \new@ifnextchar[{\@cGLSpl@{#1}{#2}}{\@cGLSpl@{#1}{#2}[]}%
+}
+\def\@cGLSpl@#1#2[#3]{\@GLSpl@{#1}{#2}[#3]}
+\newcommand*{\cGLSplformat}[2]{%
+ \expandafter\mfirstucMakeUppercase\expandafter{\cglsplformat{#1}{#2}}%
+}
+\renewcommand*{\cglsformat}[2]{%
+ \glsifregular{#1}
+ {\glsentryfirst{#1}}%
+ {\ifglshaslong{#1}{\glsentrylong{#1}}{\glsentryfirst{#1}}}#2%
+}
+\renewcommand*{\cGlsformat}[2]{%
+ \glsifregular{#1}
+ {\Glsentryfirst{#1}}%
+ {\ifglshaslong{#1}{\Glsentrylong{#1}}{\Glsentryfirst{#1}}}#2%
+}
+\renewcommand*{\cglsplformat}[2]{%
+ \glsifregular{#1}
+ {\glsentryfirstplural{#1}}%
+ {\ifglshaslong{#1}{\glsentrylongpl{#1}}{\glsentryfirstplural{#1}}}#2%
+}
+\renewcommand*{\cGlsplformat}[2]{%
+ \glsifregular{#1}
+ {\Glsentryfirstplural{#1}}%
+ {\ifglshaslong{#1}{\Glsentrylongpl{#1}}{\Glsentryfirstplural{#1}}}#2%
+}
+\newcommand*{\@@newglossaryentry@defunitcounters}{%
+ \protected@edef\@glo@countunit{\csuse{@glsxtr@categoryattr@@\@glo@category @unitcount}}%
+ \ifdefvoid\@glo@countunit
+ {}%
+ {%
+ \@glsxtr@ifunitcounter{\@glo@countunit}%
+ {}%
+ {\expandafter\@glsxtr@addunitcounter\expandafter{\@glo@countunit}}%
+ }%
+}
+\newcommand*{\@glsxtr@unitcountlist}{}
+\newcommand*{\@glsxtr@addunitcounter}[1]{%
+ \listadd{\@glsxtr@unitcountlist}{#1}%
+ \ifcsundef{glsxtr@theunit@#1}
+ {%
+ \ifcsdef{theH#1}%
+ {\csdef{glsxtr@theunit@#1}{\csuse{theH#1}}}%
+ {\csdef{glsxtr@theunit@#1}{\csuse{the#1}}}%
+ }%
+ {}%
+}
+\newcommand*{\@glsxtr@ifunitcounter}[3]{%
+ \xifinlist{#1}{\@glsxtr@unitcountlist}{#2}{#3}%
+}
+\newcommand*\@glsxtr@currentunitcount[1]{%
+ glo@\glsdetoklabel{#1}@currunit@\glsgetattribute{#1}{unitcount}.%
+ \csuse{glsxtr@theunit@\glsgetattribute{#1}{unitcount}}%
+}
+\newcommand*\@glsxtr@previousunitcount[1]{%
+ glo@\glsdetoklabel{#1}@prevunit@\glsgetattribute{#1}{unitcount}.%
+ \csuse{glsxtr@theunit@\glsgetattribute{#1}{unitcount}}%
+}
+\newcommand*{\@gls@increment@currunitcount}[1]{%
+ \glshasattribute{#1}{unitcount}%
+ {%
+ \protected@edef\@glsxtr@csname{\@glsxtr@currentunitcount{#1}}%
+ \ifcsundef{\@glsxtr@csname}%
+ {%
+ \csgdef{\@glsxtr@csname}{1}%
+ \listcsxadd
+ {glo@\glsdetoklabel{#1}@unitlist}%
+ {\glsgetattribute{#1}{unitcount}.%
+ \csuse{glsxtr@theunit@\glsgetattribute{#1}{unitcount}}%
+ }%
+ }%
+ {%
+ \csxdef{\@glsxtr@csname}%
+ {\number\numexpr\csname\@glsxtr@csname\endcsname+1}%
+ }%
+ }%
+ {}%
+}
+\newcommand*{\@gls@local@increment@currunitcount}[1]{%
+ \glshasattribute{#1}{unitcount}%
+ {%
+ \protected@edef\@glsxtr@csname{\@glsxtr@currentunitcount{#1}}%
+ \ifcsundef{\@glsxtr@csname}%
+ {%
+ \csdef{\@glsxtr@csname}{1}%
+ \listcseadd
+ {glo@\glsdetoklabel{#1}@unitlist}%
+ {\glsgetattribute{#1}{unitcount}.%
+ \csuse{glsxtr@theunit@\glsgetattribute{#1}{unitcount}}%
+ }%
+ }%
+ {%
+ \csedef{\@glsxtr@csname}%
+ {\number\numexpr\csname\@glsxtr@csname\endcsname+1}%
+ }%
+ }%
+ {}%
+}
+\newcommand*{\@glsxtr@currunitcount}[2]{%
+ \ifcsundef
+ {glo@\glsdetoklabel{#1}@currunit@#2}%
+ {0}%
+ {\csuse{glo@\glsdetoklabel{#1}@currunit@#2}}%
+}%
+\newcommand*{\@glsxtr@prevunitcount}[2]{%
+ \ifcsundef
+ {glo@\glsdetoklabel{#1}@prevunit@#2}%
+ {0}%
+ {\csuse{glo@\glsdetoklabel{#1}@prevunit@#2}}%
+}%
+\newcommand*{\glsenableentryunitcount}{%
+ \appto\@newglossaryentry@defcounters{\@@newglossaryentry@defunitcounters}%
+ \renewcommand*{\gls@defdocnewglossaryentry}{%
+ \renewcommand*\newglossaryentry[2]{%
+ \PackageError{glossaries}{\string\newglossaryentry\space
+ may only be used in the preamble when entry counting has
+ been activated}{If you use \string\glsenableentryunitcount\space
+ you must place all entry definitions in the preamble not in
+ the document environment}%
+ }%
+ }%
+ \newcommand*{\glsentrycurrcount}[1]{%
+ \@glsxtr@currunitcount{##1}{\glsgetattribute{##1}{unitcount}.%
+ \csuse{glsxtr@theunit@\glsgetattribute{##1}{unitcount}}}%
+ }%
+ \newcommand*{\glsentryprevcount}[1]{%
+ \@glsxtr@prevunitcount{##1}{\glsgetattribute{##1}{unitcount}.%
+ \csuse{glsxtr@theunit@\glsgetattribute{##1}{unitcount}}}%
+ }%
+ \newcommand*{\glsentryprevtotalcount}[1]{%
+ \ifcsundef{glo@\glsdetoklabel{##1}@prevunittotal}%
+ {0}%
+ {%
+ \number\csuse{glo@\glsdetoklabel{##1}@prevunittotal}
+ }%
+ }%
+ \newcommand*{\glsentryprevmaxcount}[1]{%
+ \ifcsundef{glo@\glsdetoklabel{##1}@prevunitmax}%
+ {0}%
+ {%
+ \number\csuse{glo@\glsdetoklabel{##1}@prevunitmax}
+ }%
+ }%
+ \let\@glsxtr@entryunitcount@org@unset\glsxtrpostunset
+ \renewcommand*{\glsxtrpostunset}[1]{%
+ \@glsxtr@entryunitcount@org@unset{##1}%
+ \@gls@increment@currunitcount{##1}%
+ }%
+ \let\@glsxtr@entryunitcount@org@localunset\glsxtrpostlocalunset
+ \renewcommand*{\glsxtrpostlocalunset}[1]{%
+ \@glsxtr@entryunitcount@org@localunset{##1}%
+ \@gls@local@increment@currunitcount{##1}%
+ }%
+ \let\@glsxtr@entryunitcount@org@reset\glsxtrpostreset
+ \renewcommand*{\glsxtrpostreset}[1]{%
+ \glshasattribute{##1}{unitcount}%
+ {%
+ \protected@edef\@glsxtr@csname{\@glsxtr@currentunitcount{##1}}%
+ \ifcsundef{\@glsxtr@csname}%
+ {}%
+ {\csgdef{\@glsxtr@csname}{0}}%
+ }%
+ {}%
+ }%
+ \let\@glsxtr@entryunitcount@org@localreset\glsxtrpostlocalreset
+ \renewcommand*{\glsxtrpostlocalreset}[1]{%
+ \@glsxtr@entryunitcount@org@localreset{##1}%
+ \glshasattribute{##1}{unitcount}%
+ {%
+ \protected@edef\@glsxtr@csname{\@glsxtr@currentunitcount{##1}}%
+ \ifcsundef{\@glsxtr@csname}%
+ {}%
+ {\csdef{\@glsxtr@csname}{0}}%
+ }%
+ {}%
+ }%
+ \let\@cgls@\@@cgls@
+ \let\@cglspl@\@@cglspl@
+ \let\@cGls@\@@cGls@
+ \let\@cGlspl@\@@cGlspl@
+ \let\@cGLS@\@@cGLS@
+ \let\@cGLSpl@\@@cGLSpl@
+ \AtEndDocument{\@gls@write@entryunitcounts}%
+ \renewcommand*{\@gls@entry@unitcount}[3]{%
+ \csgdef{glo@\glsdetoklabel{##1}@prevunit@##3}{##2}%
+ \ifcsundef{glo@\glsdetoklabel{##1}@prevunittotal}%
+ {\csgdef{glo@\glsdetoklabel{##1}@prevunittotal}{##2}}%
+ {%
+ \csxdef{glo@\glsdetoklabel{##1}@prevunittotal}{
+ \number\numexpr\csuse{glo@\glsdetoklabel{##1}@prevunittotal}+##2}%
+ }%
+ \ifcsundef{glo@\glsdetoklabel{##1}@prevunitmax}%
+ {\csgdef{glo@\glsdetoklabel{##1}@prevunitmax}{##2}}%
+ {%
+ \ifnum\csuse{glo@\glsdetoklabel{##1}@prevunitmax}<##2
+ \csgdef{glo@\glsdetoklabel{##1}@prevunitmax}{##2}%
+ \fi
+ }%
+ }%
+ \let\glsenableentryunitcount\relax
+ \renewcommand*{\glsenableentrycount}{%
+ \PackageError{glossaries-extra}{\string\glsenableentrycount\space
+ can't be used with \string\glsenableentryunitcount}%
+ {Use one or other but not both commands}%
+ }%
+}
+\@onlypreamble\glsenableentryunitcount
+\newcommand*{\@gls@entry@unitcount}[3]{}
+\newcommand*{\@gls@write@entryunitcounts@do}[1]{%
+ \immediate\write\@auxout
+ {\string\@gls@entry@unitcount
+ {\@glsentry}%
+ {\@glsxtr@currunitcount{\@glsentry}{#1}%
+ }%
+ {#1}}%
+}
+\newcommand*{\@gls@write@entryunitcounts}{%
+ \immediate\write\@auxout
+ {\string\providecommand*{\string\@gls@entry@unitcount}[3]{}}%
+ \count@=0\relax
+ \forallglsentries{\@glsentry}{%
+ \glshasattribute{\@glsentry}{unitcount}%
+ {%
+ \ifglsused{\@glsentry}%
+ {%
+ \forlistcsloop
+ {\@gls@write@entryunitcounts@do}%
+ {glo@\glsdetoklabel{\@glsentry}@unitlist}%
+ }%
+ {}%
+ \advance\count@ by \@ne
+ }%
+ {}%
+ }%
+ \ifnum\count@=0
+ \GlossariesExtraWarningNoLine{Entry counting has been enabled
+ \MessageBreak with \string\glsenableentryunitcount\space but the
+ \MessageBreak attribute `unitcount' hasn't
+ \MessageBreak been assigned to any of the defined
+ \MessageBreak entries}%
+ \fi
+}
+\newcommand*{\GlsXtrEnableEntryUnitCounting}[3]{%
+ \glsenableentryunitcount
+ \renewcommand*{\gls}{\cgls}%
+ \renewcommand*{\Gls}{\cGls}%
+ \renewcommand*{\glspl}{\cglspl}%
+ \renewcommand*{\Glspl}{\cGlspl}%
+ \renewcommand*{\GLS}{\cGLS}%
+ \renewcommand*{\GLSpl}{\cGLSpl}%
+ \@glsxtr@setentryunitcountunsetattr{#1}{#2}{#3}%
+ \let\GlsXtrEnableEntryUnitCounting\@glsxtr@setentryunitcountunsetattr
+ \renewcommand*{\GlsXtrEnableEntryCounting}[2]{%
+ \PackageError{glossaries-extra}{\string\GlsXtrEnableEntryCounting\space
+ can't be used with \string\GlsXtrEnableEntryUnitCounting}%
+ {Use one or other but not both commands}}%
+}
+\newcommand*{\@glsxtr@setentryunitcountunsetattr}[3]{%
+ \@for\@glsxtr@cat:=#1\do
+ {%
+ \ifdefempty{\@glsxtr@cat}{}%
+ {%
+ \glssetcategoryattribute{\@glsxtr@cat}{entrycount}{#2}%
+ \glssetcategoryattribute{\@glsxtr@cat}{unitcount}{#3}%
+ }%
+ }%
+}
+\renewcommand*{\SetGenericNewAcronym}{%
+ \ifdefequal\@addtoacronymlists\@glsxtr@org@addtoacronynlists
+ {}%
+ {%
+ \GlossariesWarning{\string\SetGenericNewAcronym\space used
+ without restoring base acronym functions with
+ \string\RestoreAcronyms}%
+ }%
+ \let\@Gls@entryname\@Gls@acrentryname
+ \renewcommand{\newacronym}[4][]{%
+ \ifdefempty{\@glsacronymlists}%
+ {%
+ \def\@glo@type{\acronymtype}%
+ \setkeys{glossentry}{##1}%
+ \DeclareAcronymList{\@glo@type}%
+ }%
+ {}%
+ \glskeylisttok{##1}%
+ \glslabeltok{##2}%
+ \glsshorttok{##3}%
+ \glslongtok{##4}%
+ \newacronymhook
+ \protected@edef\@do@newglossaryentry{%
+ \noexpand\newglossaryentry{\the\glslabeltok}%
+ {%
+ type=\acronymtype,%
+ name={\expandonce{\acronymentry{##2}}},%
+ sort={\acronymsort{\the\glsshorttok}{\the\glslongtok}},%
+ text={\the\glsshorttok},%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ category=acronym,
+ \GenericAcronymFields,%
+ \the\glskeylisttok
+ }%
+ }%
+ \@do@newglossaryentry
+ }%
+ \renewcommand*{\acrfullfmt}[3]{%
+ \glslink[##1]{##2}{\genacrfullformat{##2}{##3}}}%
+ \renewcommand*{\Acrfullfmt}[3]{%
+ \glslink[##1]{##2}{\Genacrfullformat{##2}{##3}}}%
+ \renewcommand*{\ACRfullfmt}[3]{%
+ \glslink[##1]{##2}{%
+ \mfirstucMakeUppercase{\genacrfullformat{##2}{##3}}}}%
+ \renewcommand*{\acrfullplfmt}[3]{%
+ \glslink[##1]{##2}{\genplacrfullformat{##2}{##3}}}%
+ \renewcommand*{\Acrfullplfmt}[3]{%
+ \glslink[##1]{##2}{\Genplacrfullformat{##2}{##3}}}%
+ \renewcommand*{\ACRfullplfmt}[3]{%
+ \glslink[##1]{##2}{%
+ \mfirstucMakeUppercase{\genplacrfullformat{##2}{##3}}}}%
+ \renewcommand*{\glsentryfull}[1]{\genacrfullformat{##1}{}}%
+ \renewcommand*{\Glsentryfull}[1]{\Genacrfullformat{##1}{}}%
+ \renewcommand*{\glsentryfullpl}[1]{\genplacrfullformat{##1}{}}%
+ \renewcommand*{\Glsentryfullpl}[1]{\Genplacrfullformat{##1}{}}%
+}
+\let\@glsxtr@org@setacronymstyle\setacronymstyle
+\let\@glsxtr@org@newacronymstyle\newacronymstyle
+\let\@glsxtr@acronymlists\@glsacronymlists
+\let\@glsxtr@org@addtoacronynlists\@addtoacronymlists
+\let\@glsxtr@org@setacronymlists\SetAcronymLists
+\newcommand{\@glsxtr@abbrlists}{}
+\newcommand*{\forallabbreviationlists}[2]{%
+ \@for#1:=\@glsxtr@abbrlists\do{\ifdefempty{#1}{}{#2}}%
+}
+\newcommand*{\@glsxtr@addabbreviationlist}[1]{%
+ \protected@edef\@glo@type{#1}%
+ \ifdefempty\@glsxtr@abbrlists
+ {\let\@glsxtr@abbrlists\@glo@type}%
+ {%
+ \ifdefequal\@glsxtr@abbrlists\@glo@type
+ {}%
+ {%
+ \expandafter\DTLifinlist\expandafter{\@glo@type}{\@glsxtr@abbrlists}{}%
+ {\protected@eappto\@glsxtr@abbrlists{,\@glo@type}}%
+ }%
+ }%
+}
+\renewcommand*{\forallacronyms}[2]{%
+ \@glsxtr@base@acrcmd\forallacronyms\forallabbreviationlists
+ \@for#1:=\@glsacronymlists\do{\ifx#1\@empty\else#2\fi}%
+}
+\newcommand*{\MakeAcronymsAbbreviations}{%
+ \@for\@gls@type:=\@glsacronymlists\do{%
+ \csgdef{gls@\@gls@type @entryfmt}{\glsentryfmt}%
+ }%
+ \let\@glsxtr@acronymlists\@glsacronymlists
+ \let\@glsacronymlists\@empty
+ \let\@addtoacronymlists\@gobble
+ \let\SetAcronymLists\@gobble
+ \let\@glsxtr@base@acrcmd\@@glsxtr@base@acrcmd@warn
+ \renewcommand*{\newacronym}[4][]{%
+ \glsxtr@newabbreviation{type=\acronymtype,category=acronym,##1}{##2}{##3}{##4}%
+ }%
+ \renewcommand*{\firstacronymfont}[1]{\glsfirstabbrvfont{##1}}%
+ \renewcommand*{\acronymfont}[1]{\glsabbrvfont{##1}}%
+ \renewcommand*{\setacronymstyle}[1]{%
+ \PackageError{glossaries-extra}{\string\setacronymstyle{##1}
+ unavailable.
+ Use \string\setabbreviationstyle[acronym]\space instead.
+ The original acronym interface can be restored with
+ \string\RestoreAcronyms}{}%
+ }%
+ \renewcommand*{\newacronymstyle}[1]{%
+ \GlossariesExtraWarning{New acronym style `##1' won't be
+ available unless you restore the original acronym interface with
+ \string\RestoreAcronyms}%
+ \@glsxtr@org@newacronymstyle{##1}%
+ }%
+}
+\MakeAcronymsAbbreviations
+\newcommand*{\RestoreAcronyms}{%
+ \let\@glsacronymlists\@glsxtr@acronymlists
+ \let\@addtoacronymlists\@glsxtr@org@addtoacronynlists
+ \let\SetAcronymLists\@glsxtr@org@setacronymlists
+ \let\@glsxtr@base@acrcmd\@gobbletwo
+ \@for\@gls@type:=\@glsacronymlists\do{%
+ \SetDefaultAcronymDisplayStyle{\@gls@type}%
+ }%
+ \SetGenericNewAcronym
+ \renewcommand{\firstacronymfont}[1]{\acronymfont{##1}}%
+ \renewcommand{\acronymfont}[1]{##1}%
+ \let\setacronymstyle\@glsxtr@org@setacronymstyle
+ \let\newacronymstyle\@glsxtr@org@newacronymstyle
+ \renewcommand*\@gls@link@checkfirsthyper{%
+ \ifglsused{\glslabel}%
+ {\let\glsxtrifwasfirstuse\@secondoftwo}
+ {\let\glsxtrifwasfirstuse\@firstoftwo}%
+ \@glsxtr@org@checkfirsthyper
+ }
+ \glssetcategoryattribute{acronym}{regular}{false}%
+ \setacronymstyle{long-short}%
+}
+\renewcommand*{\glsacspace}[1]{%
+ \settowidth{\dimen@}{(\firstacronymfont{\glsentryshort{#1}})}%
+ \ifdim\dimen@<\glsacspacemax~\else\space\fi
+}
+\newcommand*{\glsacspacemax}{3em}
+\newcommand*{\@glsxtr@reg@glosslist}{}
+\let\@glsxtr@org@makeglossaries\makeglossaries
+\providecommand\@makeglossaries@warn@noprintglossary{%
+ \ifdefstring{\@glo@types}{,}%
+ {%
+ \GlossariesWarningNoLine{No glossaries have been defined}%
+ }%
+ {%
+ \GlossariesWarningNoLine{No \string\printglossary\space
+ or \string\printglossaries\space
+ found. ^^J(Remove \string\makeglossaries\space if you
+ don't want any glossaries.) ^^JThis document will not
+ have a glossary}%
+ }%
+}%
+\providecommand{\@domakeglossaries}[1]{#1}
+\renewcommand*{\makeglossaries}[1][]{%
+ \@domakeglossaries
+ {%
+ \@glsxtr@if@record@only
+ {%
+ \PackageError{glossaries-extra}{\string\makeglossaries\space
+ not permitted\MessageBreak with record=\@glsxtr@record@setting\space
+ package option}%
+ {You may only use \string\makeglossaries\space with
+ record=off or record=hybrid options}%
+ }%
+ {%
+ \ifblank{#1}%
+ {%
+ \@glsxtr@org@makeglossaries
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@alsoindex
+ \let\warn@noprintglossary\@glsxtr@warn@hybrid@noprintgloss
+ \fi
+ }%
+ {%
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@alsoindex
+ \PackageError{glossaries-extra}{\string\makeglossaries[#1]\space
+ not permitted\MessageBreak with record=\@glsxtr@record@setting\space package option}%
+ {You may only use the hybrid \string\makeglossaries[...]\space with
+ record=off option}%
+ \else
+ \ifdef\@gls@@automake@immediate{\@gls@@automake@immediate}{}%
+ \protected@edef\@glsxtr@reg@glosslist{#1}%
+ \ifundef{\glswrite}{\newwrite\glswrite}{}%
+ \protected@write\@auxout{}{\string\providecommand
+ \string\@glsorder[1]{}}
+ \protected@write\@auxout{}{\string\providecommand
+ \string\@istfilename[1]{}}
+ \protected@write\@auxout{}{\string\@istfilename{\istfilename}}%
+ \protected@write\@auxout{}{\string\@glsorder{\glsorder}}
+ \protected@write\@auxout{}{\string\glsxtr@makeglossaries{#1}}
+ \write\@auxout{\string\providecommand\string\@gls@reference[3]{}}%
+ \@for\@glo@type:=#1\do{%
+ \ifdefempty{\@glo@type}{}{\@makeglossary{\@glo@type}}%
+ }%
+ \renewcommand*\newglossary[4][]{%
+ \PackageError{glossaries}{New glossaries
+ must be created before \string\makeglossaries}{You need
+ to move \string\makeglossaries\space after all your
+ \string\newglossary\space commands}}%
+ \let\@makeglossary\@gobble
+ \renewcommand\makeglossaries[1][]{}%
+ \@disable@onlypremakeg
+ \let\gls@checkseeallowed\relax
+ \renewcommand*{\@do@seeglossary}[2]{%
+ \glsdoifexists{##1}%
+ {%
+ \protected@edef\@gls@label{\glsdetoklabel{##1}}%
+ \protected@edef\@gls@type{\csname glo@\@gls@label @type\endcsname}%
+ \expandafter\DTLifinlist\expandafter{\@gls@type}{\@glsxtr@reg@glosslist}%
+ {\@glsxtr@org@doseeglossary{##1}{##2}}%
+ {%
+ \@@glsxtrwrglossmark
+ \protected@write\@auxout{}{%
+ \string\@gls@reference
+ {\gls@type}{\@gls@label}{\string\glsseeformat##2{}}%
+ }%
+ }%
+ }%
+ }%
+ \let\@glsxtr@@do@@wrglossary\@@do@@wrglossary
+ \def\@@do@@wrglossary{%
+ \protected@edef\@gls@type{\csname glo@\@gls@label @type\endcsname}%
+ \expandafter\DTLifinlist\expandafter{\@gls@type}{\@glsxtr@reg@glosslist}%
+ {\@glsxtr@@do@@wrglossary}%
+ {\gls@noidxglossary}%
+ }%
+ \let\warn@nomakeglossaries\relax
+ \let\warn@noprintglossary\@makeglossaries@warn@noprintglossary
+ \renewcommand{\@gls@noref@warn}[1]{%
+ \protected@edef\@gls@type{##1}%
+ \expandafter\DTLifinlist\expandafter{\@gls@type}{\@glsxtr@reg@glosslist}%
+ {%
+ \GlossariesExtraWarning{Can't use
+ \string\printnoidxglossary[type={\@gls@type}]
+ when `\@gls@type' is listed in the optional argument of
+ \string\makeglossaries}%
+ }%
+ {%
+ \GlossariesWarning{Empty glossary for
+ \string\printnoidxglossary[type={##1}].
+ Rerun may be required (or you may have forgotten to use
+ commands like \string\gls)}%
+ }%
+ }%
+ \renewcommand*{\glsdisplaynumberlist}[1]{%
+ \expandafter\DTLifinlist\expandafter{##1}{\@glsxtr@reg@glosslist}%
+ {\@glsxtr@idx@displaynumberlist{##1}}%
+ {\@glsxtr@noidx@displaynumberlist{##1}}%
+ }%
+ \renewcommand*{\glsentrynumberlist}[1]{%
+ \expandafter\DTLifinlist\expandafter{##1}{\@glsxtr@reg@glosslist}%
+ {\@glsxtr@idx@entrynumberlist{##1}}%
+ {\@glsxtr@noidx@entrynumberlist{##1}}%
+ }%
+ \renewcommand*{\glsnumberlistloop}[2]{%
+ \expandafter\DTLifinlist\expandafter{##1}{\@glsxtr@reg@glosslist}%
+ {%
+ \PackageError{glossaries-extra}{\string\glsnumberlistloop\space
+ not available for glossary `##1'}{}%
+ }%
+ {\@glsxtr@noidx@numberlistloop{##1}{##2}}%
+ }%
+ \renewcommand*{\glsprestandardsort}[3]{%
+ \expandafter\DTLifinlist\expandafter{##2}{\@glsxtr@reg@glosslist}%
+ {%
+ \glsdosanitizesort
+ }%
+ {%
+ \ifglssanitizesort
+ \@gls@noidx@sanitizesort
+ \else
+ \@gls@noidx@nosanitizesort
+ \fi
+ }%
+ }%
+ \renewcommand*\new@glossaryentry[2]{%
+ \PackageError{glossaries-extra}{Glossary entries must be defined
+ in the preamble\MessageBreak when you use the optional argument
+ of \string\makeglossaries}{Either move your definitions to the
+ preamble or don't use the optional argument of
+ \string\makeglossaries}%
+ }%
+ \let\@glo@assign@sortkey\@glsxtr@mixed@assign@sortkey
+ \renewcommand*{\@printgloss@setsort}{%
+ \expandafter\@glsxtr@gettype\expandafter,\@glsxtr@printglossopts,%
+ type=\glsdefaulttype,\@end@glsxtr@gettype
+ \def\@glo@sorttype{\@glo@default@sorttype}%
+ }%
+ \ifglsautomake
+ \renewcommand*{\@gls@doautomake}{%
+ \@for\@gls@type:=\@glsxtr@reg@glosslist\do{%
+ \ifdefempty{\@gls@type}{}{\@gls@automake{\@gls@type}}%
+ }%
+ }%
+ \fi
+ \ifdef\@glo@check@sortallowed{\@glo@check@sortallowed\makeglossaries}{}%
+ \fi
+ }%
+ }%
+ }%
+}
+\ifdef\@printgloss@checkexists
+{\newcommand{\glsxtr@printgloss@checkexists}{\@printgloss@checkexists}}
+{\newcommand{\glsxtr@printgloss@checkexists}[2]{#2}}
+\newcommand{\@glsxtr@orgprintglossary}[2]{%
+ \def\@glo@type{\glsdefaulttype}%
+ \def\glossarytitle{%
+ \ifcsdef{@glotype@\@glo@type @title}%
+ {\csuse{@glotype@\@glo@type @title}}%
+ {\glossaryname}}%
+ \def\glossarytoctitle{\glossarytitle}%
+ \let\org@glossarytitle\glossarytitle
+ \def\@glossarystyle{%
+ \ifx\@glossary@default@style\relax
+ \GlossariesWarning{No default glossary style provided \MessageBreak
+ for the glossary `\@glo@type'. \MessageBreak
+ Using deprecated fallback. \MessageBreak
+ To fix this set the style with \MessageBreak
+ \string\setglossarystyle\space or use the \MessageBreak
+ style key=value option}%
+ \fi
+ }%
+ \def\gls@dotoctitle{\glssettoctitle{\@glo@type}}%
+ \let\@org@glossaryentrynumbers\glossaryentrynumbers
+ \bgroup
+ \@printgloss@setsort
+ \setkeys{printgloss}{#1}%
+ \ifx\glossarytitle\org@glossarytitle
+ \else
+ \cslet{@glotype@\@glo@type @title}{\glossarytitle}%
+ \fi
+ \let\currentglossary\@glo@type
+ \let\org@glossaryentrynumbers\glossaryentrynumbers
+ \let\glsnonextpages\@glsnonextpages
+ \let\glsnextpages\@glsnextpages
+ \glsxtractivatenopost
+ \gls@dotoctitle
+ \@glossarystyle
+ \let\gls@org@glossaryentryfield\glossentry
+ \let\gls@org@glossarysubentryfield\subglossentry
+ \renewcommand{\glossentry}[1]{%
+ \protected@xdef\glscurrententrylabel{\glsdetoklabel{##1}}%
+ \gls@org@glossaryentryfield{##1}%
+ }%
+ \renewcommand{\subglossentry}[2]{%
+ \protected@xdef\glscurrententrylabel{\glsdetoklabel{##2}}%
+ \gls@org@glossarysubentryfield{##1}{##2}%
+ }%
+ \@gls@preglossaryhook
+ \glsxtr@printgloss@checkexists{\@glo@type}{#2}%
+ \egroup
+ \global\let\glossaryentrynumbers\@org@glossaryentrynumbers
+ \global\let\warn@noprintglossary\relax
+}
+\newcommand*{\glsxtractivatenopost}{%
+ \let\nopostdesc\@nopostdesc
+ \let\glsxtrnopostpunc\@glsxtr@nopostpunc
+}
+\newrobustcmd*{\glsxtrnopostpunc}{}
+\newcommand{\@glsxtr@nopostpunc}{%
+ \let\@@glsxtr@org@postdescription\glspostdescription
+ \ifglsnopostdot
+ \renewcommand{\glspostdescription}{%
+ \glsnopostdottrue
+ \let\glspostdescription\@@glsxtr@org@postdescription
+ \let\glsxtrrestorepostpunc\@glsxtr@restore@postpunc
+ \glsxtrpostdescription
+ \@glsxtr@nopostpunc@postdesc}%
+ \else
+ \renewcommand{\glspostdescription}{%
+ \let\glspostdescription\@@glsxtr@org@postdescription
+ \let\glsxtrrestorepostpunc\@glsxtr@restore@postpunc
+ \glsxtrpostdescription
+ \@glsxtr@nopostpunc@postdesc}%
+ \fi
+ \glsnopostdotfalse
+}
+\newcommand*{\@glsxtr@nopostpunc@postdesc}{}
+\newcommand*{\@glsxtr@restore@postpunc}{%
+ \def\@glsxtr@nopostpunc@postdesc{%
+ \@glsxtr@org@postdescription
+ \let\@glsxtr@nopostpunc@postdesc\@empty
+ \let\glsxtrrestorepostpunc\@empty
+ }%
+}
+\newcommand*{\glsxtrrestorepostpunc}{}
+\renewcommand{\@printglossary}[2]{%
+ \def\@glsxtr@printglossopts{#1}%
+ \@glsxtr@orgprintglossary{#1}{#2}%
+}
+\define@choicekey{printgloss}{target}
+[\@glsxtr@printglossval\@glsxtr@printglossnr]%
+{true,false}[true]%
+{%
+ \ifcase\@glsxtr@printglossnr
+ \def\@glstarget{\glsdohypertarget}%
+ \else
+ \let\@glstarget\@secondoftwo
+ \fi
+}
+\newcommand{\@glsxtrhypernameprefix}{}
+\define@key{printgloss}{targetnameprefix}{%
+ \renewcommand{\@glsxtrhypernameprefix}{#1}%
+}
+\define@key{printgloss}{prefix}{%
+ \renewcommand{\glolinkprefix}{#1}%
+}
+\define@key{printgloss}{label}{%
+ \glsxtrsetglossarylabel{#1}%
+}
+\newcommand{\glsxtrsetglossarylabel}[1]{%
+ \renewcommand*{\@@glossaryseclabel}{%
+ \protected@edef\@currentlabelname{\glossarytoctitle}%
+ \label{#1}%
+ }%
+}
+\newcount\@glsxtr@leveloffset
+\define@key{printgloss}{leveloffset}{%
+ \@glsxtr@assign@leveloffset#1\relax
+}
+\newcommand*{\@glsxtr@assign@leveloffset}{%
+ \@ifnextchar+{\p@glsxtr@assign@leveloffset}{\np@glsxtr@assign@leveloffset}%
+}
+\newcommand*{\p@glsxtr@assign@leveloffset}[1]{%
+ \@ifnextchar+{\pp@glsxtr@assign@leveloffset}{\np@glsxtr@assign@leveloffset}%
+}
+\def\np@glsxtr@assign@leveloffset#1\relax{\@glsxtr@leveloffset=#1\relax}
+\def\pp@glsxtr@assign@leveloffset#1\relax{\advance\@glsxtr@leveloffset by #1\relax}
+\define@boolkey{printgloss}[glsxtr@printgloss@]{groups}[true]{}
+\glsxtr@printgloss@groupstrue
+\let\@glsxtr@org@glsdohypertarget\glsdohypertarget
+\renewcommand{\glsdohypertarget}[2]{%
+ \@glsxtr@org@glsdohypertarget{\@glsxtrhypernameprefix#1}{#2}%
+}
+\ifx\@glstarget\@glsxtr@org@glsdohypertarget
+ \def\@glstarget{\glsdohypertarget}%
+\fi
+\newcommand{\@glsxtr@do@org@target}[2]{%
+ {%
+ \let\glsdohypertarget\@glsxtr@org@glsdohypertarget
+ \@glstarget{#1}{#2}%
+ }%
+}
+\newcommand*{\glsxtr@makeglossaries}[1]{}
+\def\@glsxtr@gettype#1,type=#2,#3\@end@glsxtr@gettype{%
+ \def\@glo@type{#2}%
+}
+\newcommand\@glsxtr@mixed@assign@sortkey[1]{%
+ \protected@edef\@glo@type{\@glo@type}%
+ \expandafter\DTLifinlist\expandafter{\@glo@type}{\@glsxtr@reg@glosslist}%
+ {%
+ \@glo@no@assign@sortkey{#1}%
+ }%
+ {%
+ \@@glo@assign@sortkey{#1}%
+ }%
+}%
+\let\@glsxtr@idx@displaynumberlist\glsdisplaynumberlist
+\newcommand*{\@glsxtr@noidx@displaynumberlist}[1]{%
+ \letcs{\@gls@loclist}{glo@\glsdetoklabel{#1}@loclist}%
+ \ifdef\@gls@loclist
+ {%
+ \def\@gls@noidxloclist@sep{%
+ \def\@gls@noidxloclist@sep{%
+ \def\@gls@noidxloclist@sep{%
+ \glsnumlistsep
+ }%
+ \def\@gls@noidxloclist@finalsep{\glsnumlistlastsep}%
+ }%
+ }%
+ \def\@gls@noidxloclist@finalsep{}%
+ \def\@gls@noidxloclist@prev{}%
+ \forlistloop{\glsnoidxdisplayloclisthandler}{\@gls@loclist}%
+ \@gls@noidxloclist@finalsep
+ \@gls@noidxloclist@prev
+ }%
+ {%
+ \glsxtrundeftag
+ \glsdoifexists{#1}%
+ {%
+ \GlossariesWarning{Missing location list for `#1'. Either
+ a rerun is required or you haven't referenced the entry.}%
+ }%
+ }%
+}%
+
+\newcommand*{\@glsxtr@noidx@numberlistloop}[3]{%
+ \letcs{\@gls@loclist}{glo@\glsdetoklabel{#1}@loclist}%
+ \let\@gls@org@glsnoidxdisplayloc\glsnoidxdisplayloc
+ \let\@gls@org@glsseeformat\glsseeformat
+ \let\glsnoidxdisplayloc#2\relax
+ \let\glsseeformat#3\relax
+ \ifdef\@gls@loclist
+ {%
+ \forlistloop{\glsnoidxnumberlistloophandler}{\@gls@loclist}%
+ }%
+ {%
+ \glsxtrundeftag
+ \glsdoifexists{#1}%
+ {%
+ \GlossariesWarning{Missing location list for `##1'. Either
+ a rerun is required or you haven't referenced the entry.}%
+ }%
+ }%
+ \let\glsnoidxdisplayloc\@gls@org@glsnoidxdisplayloc
+ \let\glsseeformat\@gls@org@glsseeformat
+}%
+\newcommand*{\@glsxtr@noidx@entrynumberlist}[1]{%
+ \letcs{\@gls@loclist}{glo@\glsdetoklabel{#1}@loclist}%
+ \ifdef\@gls@loclist
+ {%
+ \glsnoidxloclist{\@gls@loclist}%
+ }%
+ {%
+ \glsxtrundeftag
+ \glsdoifexists{#1}%
+ {%
+ \GlossariesWarning{Missing location list for `#1'. Either
+ a rerun is required or you haven't referenced the entry.}%
+ }%
+ }%
+}%
+\newcommand*{\@glsxtr@idx@entrynumberlist}[1]{\glsentrynumberlist{#1}}
+\renewcommand*{\@gls@noidx@getgrouptitle}[2]{%
+ \protected@edef\@glsxtr@titlelabel{#1}%
+ \ifdefvoid\@glsxtr@titlelabel
+ {}%
+ {%
+ \protected@edef\@glsxtr@titlelabel{\csuse{glsxtr@grouptitle@#1}}%
+ }%
+ \ifdefvoid{\@glsxtr@titlelabel}%
+ {%
+ \DTLifint{#1}%
+ {%
+ \ifnum#1<256\relax
+ \edef#2{\char#1\relax}%
+ \else
+ \edef#2{#1}%
+ \fi
+ }%
+ {%
+ \ifcsundef{#1groupname}%
+ {\def#2{#1}}%
+ {\letcs#2{#1groupname}}%
+ }%
+ }%
+ {%
+ \let#2\@glsxtr@titlelabel
+ }%
+}
+\let\glsxtr@org@getgrouptitle\@gls@getgrouptitle
+\newrobustcmd{\glsxtrgetgrouptitle}[2]{%
+ \protected@edef\@glsxtr@titlelabel{glsxtr@grouptitle@#1}%
+ \@onelevel@sanitize\@glsxtr@titlelabel
+ \ifcsdef{\@glsxtr@titlelabel}
+ {\letcs{#2}{\@glsxtr@titlelabel}}%
+ {\glsxtr@org@getgrouptitle{#1}{#2}}%
+}
+\let\@gls@getgrouptitle\glsxtrgetgrouptitle
+\newcommand{\glsxtrsetgrouptitle}[2]{%
+ \protected@edef\@glsxtr@titlelabel{glsxtr@grouptitle@#1}%
+ \@onelevel@sanitize\@glsxtr@titlelabel
+ \protected@csxdef{\@glsxtr@titlelabel}{#2}%
+}
+\newcommand{\glsxtrlocalsetgrouptitle}[2]{%
+ \protected@edef\@glsxtr@titlelabel{glsxtr@grouptitle@#1}%
+ \@onelevel@sanitize\@glsxtr@titlelabel
+ \protected@csedef{\@glsxtr@titlelabel}{#2}%
+}
+\renewcommand*{\glsnavigation}{%
+ \def\@gls@between{}%
+ \ifcsundef{@gls@hypergrouplist@\@glo@type}%
+ {%
+ \def\@gls@list{}%
+ }%
+ {%
+ \expandafter\let\expandafter\@gls@list
+ \csname @gls@hypergrouplist@\@glo@type\endcsname
+ }%
+ \@for\@gls@tmp:=\@gls@list\do{%
+ \@gls@between
+ \glsxtrgetgrouptitle{\@gls@tmp}{\@gls@grptitle}%
+ \glsnavhyperlink{\@gls@tmp}{\@gls@grptitle}%
+ \let\@gls@between\glshypernavsep
+ }%
+}
+\renewcommand*{\@print@noidx@glossary}{%
+ \ifcsdef{@glsref@\@glo@type}%
+ {%
+ \ifcsdef{@glo@sortmacro@\@glo@sorttype}%
+ {%
+ \csuse{@glo@sortmacro@\@glo@sorttype}{\@glo@type}%
+ }%
+ {%
+ \PackageError{glossaries}{Unknown sort handler `\@glo@sorttype'}{}%
+ }%
+ \glossarysection[\glossarytoctitle]{\glossarytitle}%
+ \glossarypreamble
+ \def\@gls@currentlettergroup{}%
+ \begin{theglossary}%
+ \glossaryheader
+ \glsresetentrylist
+ \forlistcsloop{\@gls@noidx@do}{@glsref@\@glo@type}%
+ \end{theglossary}%
+ \glossarypostamble
+ }%
+ {%
+ \glsxtrifemptyglossary{\@glo@type}%
+ {}%
+ {\glossarysection[\glossarytoctitle]{\glossarytitle}}%
+ \@gls@noref@warn{\@glo@type}%
+ }%
+}
+\renewcommand*{\glsnoidxdisplayloc}[4]{%
+ \setentrycounter[#1]{#2}%
+ \@glsxtr@display@loc#3\empty\end@glsxtr@display@loc{#4}%
+}
+\def\@glsxtr@display@loc#1#2\end@glsxtr@display@loc#3{%
+ \ifx#1(\relax
+ \glsxtrdisplaystartloc{#2}{#3}%
+ \else
+ \ifx#1)\relax
+ \glsxtrdisplayendloc{#2}{#3}%
+ \else
+ \glsxtrdisplaysingleloc{#1#2}{#3}%
+ \fi
+ \fi
+}
+\newcommand*{\glsxtrdisplaysingleloc}[2]{%
+ \csuse{#1}{#2}%
+}
+\newcommand*{\glsxtrdisplaystartloc}[2]{%
+ \protected@edef\glsxtrlocrangefmt{#1}%
+ \ifx\glsxtrlocrangefmt\empty
+ \def\glsxtrlocrangefmt{glsnumberformat}%
+ \fi
+ \expandafter\glsxtrdisplaysingleloc
+ \expandafter{\glsxtrlocrangefmt}{#2}%
+}
+\newcommand*{\glsxtrdisplayendloc}[2]{%
+ \protected@edef\@glsxtr@tmp{#1}%
+ \ifdefempty{\@glsxtr@tmp}{\def\@glsxtr@tmp{glsnumberformat}}{}%
+ \ifx\glsxtrlocrangefmt\@glsxtr@tmp
+ \else
+ \GlossariesExtraWarning{Mismatched end location range
+ (start=\glsxtrlocrangefmt, end=\@glsxtr@tmp)}%
+ \fi
+ \expandafter\glsxtrdisplayendlochook\expandafter{\@glsxtr@tmp}{#2}%
+ \expandafter\glsxtrdisplaysingleloc
+ \expandafter{\glsxtrlocrangefmt}{#2}%
+ \def\glsxtrlocrangefmt{}%
+}
+\newcommand*{\glsxtrdisplayendlochook}[2]{}
+\newcommand*{\glsxtrlocrangefmt}{}
+\renewcommand*{\setentrycounter}[2][]{%
+ \def\glsxtrcounterprefix{#1}%
+ \ifx\glsxtrcounterprefix\@empty
+ \def\@glo@counterprefix{.}%
+ \else
+ \def\@glo@counterprefix{.#1.}%
+ \fi
+ \def\glsentrycounter{#2}%
+}
+\def\@gls@removespaces#1 #2\@nil{%
+ \toks@=\expandafter{\the\toks@#1}%
+ \ifx\\#2\\%
+ \edef\@glo@tmp{\the\toks@}%
+ \ifx\@glo@tmp\empty
+ \else
+ \expandafter\glsxtrlocationhyperlink\expandafter
+ \glsentrycounter\expandafter\@glo@counterprefix\expandafter{\the\toks@}%
+ \fi
+ \else
+ \@gls@ReturnAfterFi{%
+ \@gls@removespaces#2\@nil
+ }%
+ \fi
+}
+\newcommand*{\glsxtrlocationhyperlink}[3]{%
+ \ifdefvoid\glsxtrsupplocationurl
+ {%
+ \GlsXtrInternalLocationHyperlink{#1}{#2}{#3}%
+ }%
+ {%
+ \hyperref{\glsxtrsupplocationurl}{}{#1#2#3}{#3}%
+ }%
+}
+\newcommand*{\glsxtrsupphypernumber}[1]{%
+ {%
+ \glshasattribute{\glscurrententrylabel}{externallocation}%
+ {%
+ \def\glsxtrsupplocationurl{%
+ \glsgetattribute{\glscurrententrylabel}{externallocation}}%
+ }%
+ {%
+ \def\glsxtrsupplocationurl{}%
+ }%
+ \glshypernumber{#1}%
+ }%
+}
+\renewcommand{\@print@glossary}{%
+ \makeatletter
+ \@input@{\jobname.\csname @glotype@\@glo@type @in\endcsname}%
+ \IfFileExists{\jobname.\csname @glotype@\@glo@type @in\endcsname}%
+ {}%
+ {\glsxtrNoGlossaryWarning{\@glo@type}}%
+ \ifglsxindy
+ \ifcsundef{@xdy@\@glo@type @language}%
+ {%
+ \edef\@do@auxoutstuff{%
+ \noexpand\AtEndDocument{%
+ \noexpand\immediate\noexpand\write\@auxout{%
+ \string\providecommand\string\@xdylanguage[2]{}}%
+ \noexpand\immediate\noexpand\write\@auxout{%
+ \string\@xdylanguage{\@glo@type}{\@xdy@main@language}}%
+ }%
+ }%
+ }%
+ {%
+ \edef\@do@auxoutstuff{%
+ \noexpand\AtEndDocument{%
+ \noexpand\immediate\noexpand\write\@auxout{%
+ \string\providecommand\string\@xdylanguage[2]{}}%
+ \noexpand\immediate\noexpand\write\@auxout{%
+ \string\@xdylanguage{\@glo@type}{\csname @xdy@\@glo@type
+ @language\endcsname}}%
+ }%
+ }%
+ }%
+ \@do@auxoutstuff
+ \edef\@do@auxoutstuff{%
+ \noexpand\AtEndDocument{%
+ \noexpand\immediate\noexpand\write\@auxout{%
+ \string\providecommand\string\@gls@codepage[2]{}}%
+ \noexpand\immediate\noexpand\write\@auxout{%
+ \string\@gls@codepage{\@glo@type}{\gls@codepage}}%
+ }%
+ }%
+ \@do@auxoutstuff
+ \fi
+ \renewcommand*{\@warn@nomakeglossaries}{%
+ \GlossariesWarningNoLine{\string\makeglossaries\space
+ hasn't been used,^^Jthe glossaries will not be updated}%
+ }%
+}
+\newcommand{\GlsXtrNoGlsWarningHead}[2]{%
+ This document is incomplete. The external file associated with
+ the glossary `#1' (which should be called \texttt{#2})
+ hasn't been created.%
+}
+\newcommand{\GlsXtrNoGlsWarningEmptyStart}{%
+ This has probably happened because there are no entries defined
+ in this glossary.%
+}
+\newcommand{\GlsXtrNoGlsWarningEmptyMain}{%
+ If you don't want this glossary,
+ add \texttt{nomain} to your package option list when you load
+ \texttt{glossaries-extra.sty}. For example:%
+}
+\newcommand{\GlsXtrNoGlsWarningEmptyNotMain}[1]{%
+ Did you forget to use \texttt{type=#1} when you defined your
+ entries? If you tried to load entries into this glossary with
+ \texttt{\string\loadglsentries} did you remember to use
+ \texttt{[#1]} as the optional argument? If you did, check that
+ the definitions in the file you loaded all had the type set
+ to \texttt{\string\glsdefaulttype}.%
+}
+\newcommand{\GlsXtrNoGlsWarningCheckFile}[1]{%
+ Check the contents of the file \texttt{#1}. If
+ it's empty, that means you haven't indexed any of your entries in this
+ glossary (using commands like \texttt{\string\gls} or
+ \texttt{\string\glsadd}) so this list can't be generated.
+ If the file isn't empty, the document build process hasn't been
+ completed.%
+}
+\newcommand{\GlsXtrNoGlsWarningAutoMake}[1]{%
+ You may need to rerun \LaTeX. If you already have, it may be that
+ \TeX's shell escape doesn't allow you to run
+ \ifglsxindy xindy\else makeindex\fi. Check the
+ transcript file \texttt{\jobname.log}. If the shell escape is
+ disabled, try one of the following:
+
+ \begin{itemize}
+ \item Run the external (Lua) application:
+
+ \texttt{makeglossaries-lite \string"\jobname\string"}
+
+ \item Run the external (Perl) application:
+
+ \texttt{makeglossaries \string"\jobname\string"}
+ \end{itemize}
+
+ Then rerun \LaTeX\ on this document.
+ \GlossariesExtraWarning{Rerun required to build the
+ glossary `#1' or check TeX's shell escape allows
+ you to run \ifglsxindy xindy\else makeindex\fi}%
+}
+\newcommand{\GlsXtrNoGlsWarningMisMatch}{%
+ You need to either replace \texttt{\string\makenoidxglossaries}
+ with \texttt{\string\makeglossaries} or replace
+ \texttt{\string\printglossary} (or \texttt{\string\printglossaries}) with
+ \texttt{\string\printnoidxglossary}
+ (or \texttt{\string\printnoidxglossaries}) and then rebuild
+ this document.%
+}
+\newcommand{\GlsXtrNoGlsWarningBuildInfo}{%
+ Try one of the following:
+ \begin{itemize}
+ \item Add \texttt{automake} to your package option list when you load
+ \texttt{glossaries-extra.sty}. For example:
+
+ \texttt{\string\usepackage[automake]%
+ \glsopenbrace glossaries-extra\glsclosebrace}
+
+ \item Run the external (Lua) application:
+
+ \texttt{makeglossaries-lite.lua \string"\jobname\string"}
+
+ \item Run the external (Perl) application:
+
+ \texttt{makeglossaries \string"\jobname\string"}
+ \end{itemize}
+
+ Then rerun \LaTeX\ on this document.%
+}
+\newcommand{\GlsXtrRecordWarning}[1]{%
+ \texttt{\string\printglossary} doesn't work
+ with the \texttt{record=\@glsxtr@record@setting} package option
+ use\par\texttt{\string\printunsrtglossary[type=#1]}\par
+ instead (or change the package option).%
+}
+\newcommand{\GlsXtrNoGlsWarningTail}{%
+ This message will be removed once the problem has been fixed.%
+}
+\newcommand{\GlsXtrNoGlsWarningNoOut}[1]{%
+ The file \texttt{#1} doesn't exist. This most likely means you haven't used
+ \texttt{\string\makeglossaries} or you have used
+ \texttt{\string\nofiles}. If this is just a draft version of the
+ document, you can suppress this message using the
+ \texttt{nomissingglstext} package option.%
+}
+\newcommand*{\@glsxtr@defaultnoglossarywarning}[1]{%
+ \glossarysection[\glossarytoctitle]{\glossarytitle}
+ \GlsXtrNoGlsWarningHead{#1}{\jobname.\csname @glotype@\@glo@type @in\endcsname}
+ \par
+ \glsxtrifemptyglossary{#1}%
+ {%
+ \GlsXtrNoGlsWarningEmptyStart\space
+ \ifthenelse{\equal{#1}{main}}{\GlsXtrNoGlsWarningEmptyMain\par
+ \medskip
+ \noindent\texttt{\string\usepackage[nomain\ifglsacronym ,acronym\fi]%
+ \glsopenbrace glossaries-extra\glsclosebrace}
+ \medskip
+ }%
+ {\GlsXtrNoGlsWarningEmptyNotMain{#1}}%
+ }%
+ {%
+ \IfFileExists{\jobname.\csname @glotype@\@glo@type @out\endcsname}
+ {%
+ \GlsXtrNoGlsWarningCheckFile
+ {\jobname.\csname @glotype@\@glo@type @out\endcsname}
+
+ \ifglsautomake
+
+ \GlsXtrNoGlsWarningAutoMake{#1}
+
+ \else
+
+ \ifthenelse{\equal{#1}{main}}%
+ {%
+ \GlsXtrNoGlsWarningEmptyMain\par
+ \medskip
+ \noindent\texttt{\string\usepackage[nomain]%
+ \glsopenbrace glossaries-extra\glsclosebrace}
+ \medskip
+ }%
+ {}%
+
+ \ifdefequal\makeglossaries\@no@makeglossaries
+ {%
+ \GlsXtrNoGlsWarningMisMatch
+ }%
+ {%
+ \GlsXtrNoGlsWarningBuildInfo
+ }%
+ \fi
+ }%
+ {%
+ \GlsXtrNoGlsWarningNoOut
+ {\jobname.\csname @glotype@\@glo@type @out\endcsname}%
+ }%
+ }%
+ \par
+ \GlsXtrNoGlsWarningTail
+}
+\newcommand*{\@glsxtr@record@noglossarywarning}[1]{%
+ \GlossariesExtraWarning{\string\printglossary\space doesn't work\MessageBreak
+ with record=\@glsxtr@record@setting\space package option\MessageBreak(use
+ \string\printunsrtglossary[type=#1])\MessageBreak
+ instead (or change the package option)}%
+ \glossarysection[\glossarytoctitle]{\glossarytitle}
+ \GlsXtrRecordWarning{#1}
+ \GlsXtrNoGlsWarningTail
+}
+\newcommand*{\GlsXtrDefaultResourceOptions}{}
+\newcommand*{\glsxtrresourcefile}[2][]{%
+ \disable@keys{glossaries-extra.sty}{record}%
+ \glsxtr@writefields
+ \ifdefempty\GlsXtrDefaultResourceOptions
+ {%
+ \protected@write\@auxout{\glsxtrresourceinit}%
+ {\string\glsxtr@resource{#1}{#2}}%
+ }%
+ {%
+ \protected@write\@auxout{\glsxtrresourceinit}%
+ {\string\glsxtr@resource{\GlsXtrDefaultResourceOptions,#1}{#2}}%
+ }%
+ \let\@glsxtr@org@see@noindex\@gls@see@noindex
+ \let\@gls@see@noindex\relax
+ \IfFileExists{#2.glstex}%
+ {%
+ \edef\@bibgls@restoreat{\noexpand\catcode\noexpand`\noexpand\@=\number\catcode`\@}%
+ \makeatletter
+ \@input{#2.glstex}%
+ \@bibgls@restoreat
+ \@glsxtr@check@bibgls@nameref
+ }%
+ {%
+ \GlossariesExtraWarning{No file `#2.glstex'}%
+ }%
+ \let\@gls@see@noindex\@glsxtr@org@see@noindex
+}
+\@onlypreamble\glsxtrresourcefile
+\newcommand{\@glsxtr@check@bibgls@nameref}{%
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@nameref
+ \ifdef\bibglshrefchar
+ {}%
+ {%
+ \GlossariesExtraWarning{record=nameref requires at least
+ version 1.8 of bib2gls}%
+ }%
+ \fi
+ \let\@glsxtr@check@bibgls@nameref\relax
+}
+\newcommand*{\glsxtrresourceinit}{}
+\newcount\glsxtrresourcecount
+\newcommand*{\GlsXtrLoadResources}[1][]{%
+ \ifnum\glsxtrresourcecount=0\relax
+ \glsxtrresourcefile[#1]{\jobname}%
+ \else
+ \glsxtrresourcefile[#1]{\jobname-\the\glsxtrresourcecount}%
+ \fi
+ \advance\glsxtrresourcecount by 1\relax
+}
+\newcommand*{\glsxtr@resource}[2]{}
+\newcommand*{\glsxtr@fields}[1]{}
+\newcommand*{\glsxtr@texencoding}[1]{}
+\newcommand*{\glsxtr@langtag}[1]{}
+\newcommand*{\glsxtr@pluralsuffixes}[4]{}
+\newcommand*{\glsxtr@shortcutsval}[1]{}
+\newcommand*{\glsxtr@linkprefix}[1]{}
+\newcommand*{\glsxtr@writefields}{%
+ \protected@write\@auxout{}%
+ {\string\providecommand*{\string\glsxtr@fields}[1]{}}%
+ \protected@write\@auxout{}%
+ {\string\providecommand*{\string\glsxtr@resource}[2]{}}%
+ \protected@write\@auxout{}%
+ {\string\providecommand*{\string\glsxtr@pluralsuffixes}[4]{}}%
+ \protected@write\@auxout{}%
+ {\string\providecommand*{\string\glsxtr@shortcutsval}[1]{}}%
+ \protected@write\@auxout{}%
+ {\string\providecommand*{\string\glsxtr@linkprefix}[1]{}}%
+ \protected@write\@auxout{}{\string\glsxtr@fields{\@gls@keymap}}%
+ \protected@write\@auxout{}%
+ {\string\providecommand*{\string\glsxtr@record}[5]{}}%
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@nameref
+ \protected@write\@auxout{}%
+ {\string\providecommand*{\string\glsxtr@record@nameref}[8]{}}%
+ \fi
+ \ifdef\CurrentTrackedLanguageTag
+ {%
+ \protected@write\@auxout{}{%
+ \string\glsxtr@langtag{\CurrentTrackedLanguageTag}}%
+ }%
+ {}%
+ \protected@write\@auxout{}{\string\glsxtr@pluralsuffixes
+ {\glspluralsuffix}{\abbrvpluralsuffix}{\acrpluralsuffix}%
+ {\glsxtrabbrvpluralsuffix}}%
+ \ifdef\inputencodingname
+ {%
+ \protected@write\@auxout{}{\string\glsxtr@texencoding{\inputencodingname}}%
+ }%
+ {%
+ \@ifpackageloaded{fontspec}%
+ {\protected@write\@auxout{}{\string\glsxtr@texencoding{utf8}}}%
+ {}%
+ }%
+ \protected@write\@auxout{}{\string\glsxtr@shortcutsval{\@glsxtr@shortcutsval}}%
+ \AtBeginDocument
+ {\protected@write\@auxout{}{\string\glsxtr@linkprefix{\glolinkprefix}}}%
+ \let\glsxtr@writefields\relax
+ \ifglsautomake
+ \IfFileExists{\jobname.aux}%
+ {\immediate\write18{bib2gls \jobname}}{}%
+ \ifx\@gls@doautomake\@gls@doautomake@err
+ \let\@gls@doautomake\relax
+ \fi
+ \fi
+ \@glsxtr@if@record@only
+ {\ifdefstring{\glsorder}{letter}%
+ {\GlossariesExtraWarningNoLine{Package option `order=letter' isn't
+ supported with `record=\@glsxtr@record@setting'. Use `break-at=none'
+ resource option instead}}%
+ {}%
+ }%
+ {}%
+}
+\newcommand*{\@gls@doautomake@err}{%
+ \PackageError{glossaries}{You must use
+ \string\makeglossaries\space with automake=true}
+ {%
+ Either remove the automake=true setting or
+ add \string\makeglossaries\space to your document preamble.%
+ }%
+}
+\newcommand*{\glsxtr@record}[5]{}
+\newcommand*{\glsxtr@record@nameref}[8]{}
+\newcommand*{\glsxtr@counterrecord}[3]{%
+ \glsxtrfieldlistgadd{#1}{record.#2}{#3}%
+}
+\newcommand*{\@glsxtr@counterrecordhook}{}
+\newcommand*{\GlsXtrRecordCounter}[1]{%
+ \@@glsxtr@recordcounter{#1}%
+}
+\@onlypreamble\GlsXtrRecordCounter
+\newcommand*{\@glsxtr@docounterrecord}[1]{%
+ \protected@write\@auxout{}{\string\glsxtr@counterrecord
+ {\@gls@label}{#1}{\csuse{the#1}}}%
+}
+\newcommand*{\glsxtrglossentry}[1]{%
+ \glsxtrtitleorpdforheading
+ {\@glsxtrglossentry{#1}}%
+ {\glsentryname{#1}}%
+ {\glsxtrheadname{#1}}%
+}
+\newrobustcmd*{\@glsxtrglossentry}[1]{%
+ \glsxtrtitleorpdforheading
+ {%
+ \glsdoifexists{#1}%
+ {%
+ \begingroup
+ \protected@edef\glscurrententrylabel{\glsdetoklabel{#1}}%
+ \protected@edef\currentglossary{\GlsXtrStandaloneGlossaryType}%
+ \ifglshasparent{#1}%
+ {\GlsXtrStandaloneSubEntryItem{#1}}%
+ {\glsentryitem{#1}}%
+ \GlsXtrStandaloneEntryName{#1}%
+ \endgroup
+ }%
+ }%
+ {\glsentryname{#1}}%
+ {\glsxtrheadname{#1}}%
+}
+\newcommand*{\GlsXtrStandaloneEntryName}[1]{%
+ \glstarget{#1}{\glossentryname{#1}}%
+}
+\newcommand{\GlsXtrStandaloneGlossaryType}{\glsentrytype{\glscurrententrylabel}}
+\newcommand*{\GlsXtrStandaloneSubEntryItem}[1]{%
+ \GlsXtrIfFieldEqNum{level}{#1}{1}{\glssubentryitem{#1}}{}%
+}
+\newcommand*{\glsxtrglossentryother}[3]{%
+ \ifstrempty{#1}%
+ {%
+ \ifcsdef{glsxtrhead#3}%
+ {%
+ \glsxtrtitleorpdforheading
+ {\@glsxtrglossentryother{#2}{#3}{#1}}%
+ {\@gls@entry@field{#2}{#3}}%
+ {\csuse{glsxtrhead#3}{#2}}%
+ }%
+ {%
+ \glsxtrtitleorpdforheading
+ {\@glsxtrglossentryother{#2}{#3}{#1}}%
+ {\@gls@entry@field{#2}{#3}}%
+ {\@gls@entry@field{\NoCaseChange{#2}}{#3}}%
+ }%
+ }%
+ {%
+ \glsxtrtitleorpdforheading
+ {\@glsxtrglossentryother{#2}{#3}{#1}}%
+ {\@gls@entry@field{#2}{#3}}%
+ {#1}%
+ }%
+}
+\newrobustcmd*{\@glsxtrglossentryother}[3]{%
+ \glsxtrtitleorpdforheading
+ {%
+ \glsdoifexists{#1}%
+ {%
+ \begingroup
+ \protected@edef\glscurrententrylabel{\glsdetoklabel{#1}}%
+ \protected@edef\currentglossary{\GlsXtrStandaloneGlossaryType}%
+ \ifglshasparent{#1}%
+ {\GlsXtrStandaloneSubEntryItem{#1}}%
+ {\glsentryitem{#1}}%
+ \GlsXtrStandaloneEntryOther{#1}%
+ \endgroup
+ }%
+ }%
+ {\@gls@entry@field{#1}{#2}}%
+ {#3}%
+}
+\newcommand*{\GlsXtrStandaloneEntryOther}[2]{%
+ \glstarget{#1}{\glossentrynameother{#1}{#2}}%
+}
+\ifdef\@printgloss@checkexists
+{
+ \newcommand*{\printunsrtglossary}{%
+ \let\@printgloss@checkexists\@printgloss@checkexists@allowignored
+ \@ifstar\s@printunsrtglossary\@printunsrtglossary
+ }
+}
+{
+ \newcommand*{\printunsrtglossary}{%
+ \@ifstar\s@printunsrtglossary\@printunsrtglossary
+ }
+}
+\newcommand*{\@printunsrtglossary}[1][]{%
+ \@printglossary{type=\glsdefaulttype,#1}{\@print@unsrt@glossary}%
+}
+\newcommand*{\s@printunsrtglossary}[2][]{%
+ \begingroup
+ #2%
+ \@printglossary{type=\glsdefaulttype,#1}{\@print@unsrt@glossary}%
+ \endgroup
+}
+\newcommand*{\printunsrtglossaries}{%
+ \forallglossaries{\@@glo@type}{\printunsrtglossary[type=\@@glo@type]}%
+}
+
+\newcommand*{\@print@unsrt@glossary}{%
+ \glossarysection[\glossarytoctitle]{\glossarytitle}%
+ \glossarypreamble
+ \glsxtrifemptyglossary{\@glo@type}%
+ {%
+ \GlossariesExtraWarning{No entries defined in glossary `\@glo@type'}%
+ }%
+ {%
+ \key@ifundefined{glossentry}{group}%
+ {\let\@gls@getgrouptitle\@gls@noidx@getgrouptitle}%
+ {\let\@gls@getgrouptitle\@glsxtr@unsrt@getgrouptitle}%
+ \def\@gls@currentlettergroup{}%
+ \def\@glsxtr@doglossary{%
+ \begin{theglossary}%
+ \glossaryheader
+ \glsresetentrylist
+ }%
+ \expandafter\@for\expandafter\glscurrententrylabel\expandafter
+ :\expandafter=\csname glolist@\@glo@type\endcsname\do{%
+ \ifdefempty{\glscurrententrylabel}
+ {}%
+ {%
+ \let\glsxtr@process\@firstofone
+ \let\printunsrtglossaryskipentry
+ \@glsxtr@printunsrtglossaryskipentry
+ \printunsrtglossaryentryprocesshook{\glscurrententrylabel}%
+ \glsxtr@process
+ {%
+ \ifglsxtr@printgloss@groups
+ \ifglshasparent{\glscurrententrylabel}{}%
+ {%
+ \@glsxtr@checkgroup\glscurrententrylabel
+ \expandafter\appto\expandafter\@glsxtr@doglossary\expandafter
+ {\@glsxtr@groupheading}%
+ }%
+ \fi
+ \protected@eappto\@glsxtr@doglossary{%
+ \noexpand\@printunsrt@glossary@handler{\glscurrententrylabel}}%
+ }%
+ }%
+ }%
+ \appto\@glsxtr@doglossary{\end{theglossary}}%
+ \printunsrtglossarypredoglossary
+ \@glsxtr@doglossary
+ }%
+ \glossarypostamble
+}
+\newcommand*{\printunsrtinnerglossary}[3][]{%
+ \begingroup
+ \def\@glsxtr@printglossopts{#1}%
+ \def\@glo@type{\glsdefaulttype}%
+ \setkeys{printgloss}[title,toctitle,style,numberedsection,sort,label]{#1}%
+ \let\currentglossary\@glo@type
+ #2%
+ \@print@unsrt@innerglossary
+ #3%
+ \endgroup
+}
+\newenvironment{printunsrtglossarywrap}[1][]%
+{%
+ \def\@glsxtr@printglossopts{#1}%
+ \def\@glo@type{\glsdefaulttype}%
+ \def\glossarytitle{\csname @glotype@\@glo@type @title\endcsname}%
+ \def\glossarytoctitle{\glossarytitle}%
+ \let\org@glossarytitle\glossarytitle
+ \def\@glossarystyle{%
+ \ifx\@glossary@default@style\relax
+ \GlossariesWarning{No default glossary style provided \MessageBreak
+ for the glossary `\@glo@type'. \MessageBreak
+ Using deprecated fallback. \MessageBreak
+ To fix this set the style with \MessageBreak
+ \string\setglossarystyle\space or use the \MessageBreak
+ style key=value option}%
+ \fi
+ }%
+ \def\gls@dotoctitle{\glssettoctitle{\@glo@type}}%
+ \let\@org@glossaryentrynumbers\glossaryentrynumbers
+ \@printgloss@setsort
+ \setkeys{printgloss}{#1}%
+ \ifglossaryexists*{\@glo@type}%
+ {%
+ \ifx\glossarytitle\org@glossarytitle
+ \else
+ \expandafter\let\csname @glotype@\@glo@type @title\endcsname
+ \glossarytitle
+ \fi
+ \let\currentglossary\@glo@type
+ }%
+ {}%
+ \let\org@glossaryentrynumbers\glossaryentrynumbers
+ \let\glsnonextpages\@glsnonextpages
+ \let\glsnextpages\@glsnextpages
+ \let\nopostdesc\@nopostdesc
+ \gls@dotoctitle
+ \@glossarystyle
+ \let\gls@org@glossaryentryfield\glossentry
+ \let\gls@org@glossarysubentryfield\subglossentry
+ \renewcommand{\glossentry}[1]{%
+ \protected@xdef\glscurrententrylabel{\glsdetoklabel{##1}}%
+ \gls@org@glossaryentryfield{##1}%
+ }%
+ \renewcommand{\subglossentry}[2]{%
+ \protected@xdef\glscurrententrylabel{\glsdetoklabel{##2}}%
+ \gls@org@glossarysubentryfield{##1}{##2}%
+ }%
+ \@gls@preglossaryhook
+ \glossarysection[\glossarytoctitle]{\glossarytitle}%
+ \glossarypreamble
+ \begin{theglossary}%
+ \glossaryheader
+ \glsresetentrylist
+}%
+{%
+ \end{theglossary}%
+ \glossarypostamble
+ \global\let\glossaryentrynumbers\@org@glossaryentrynumbers
+ \global\let\warn@noprintglossary\relax
+}
+\newcommand*{\@print@unsrt@innerglossary}{%
+ \glsxtrifemptyglossary{\@glo@type}%
+ {%
+ \GlossariesExtraWarning{No entries defined in glossary `\@glo@type'}%
+ }%
+ {%
+ \key@ifundefined{glossentry}{group}%
+ {\let\@gls@getgrouptitle\@gls@noidx@getgrouptitle}%
+ {\let\@gls@getgrouptitle\@glsxtr@unsrt@getgrouptitle}%
+ \def\@gls@currentlettergroup{}%
+ \def\@glsxtr@doglossary{}%
+ \expandafter\@for\expandafter\glscurrententrylabel\expandafter
+ :\expandafter=\csname glolist@\@glo@type\endcsname\do{%
+ \ifdefempty{\glscurrententrylabel}
+ {}%
+ {%
+ \let\glsxtr@process\@firstofone
+ \let\printunsrtglossaryskipentry
+ \@glsxtr@printunsrtglossaryskipentry
+ \printunsrtglossaryentryprocesshook{\glscurrententrylabel}%
+ \glsxtr@process
+ {%
+ \ifglsxtr@printgloss@groups
+ \ifglshasparent{\glscurrententrylabel}{}%
+ {%
+ \@glsxtr@checkgroup\glscurrententrylabel
+ \expandafter\appto\expandafter\@glsxtr@doglossary\expandafter
+ {\@glsxtr@groupheading}%
+ }%
+ \fi
+ \protected@eappto\@glsxtr@doglossary{%
+ \noexpand\@printunsrt@glossary@handler{\glscurrententrylabel}}%
+ }%
+ }%
+ }%
+ \printunsrtglossarypredoglossary
+ \@glsxtr@doglossary
+ }%
+}
+\newcommand*{\printunsrtglossaryentryprocesshook}[1]{}
+\newcommand*{\printunsrtglossaryskipentry}{%
+ \PackageError{glossaries-extra}{\string\printunsrtglossaryskipentry\space
+can only be used within \string\printunsrtglossaryentryprocesshook}{}%
+}
+\newcommand*{\@glsxtr@printunsrtglossaryskipentry}{%
+ \let\glsxtr@process\@gobble
+}
+\newcommand*{\printunsrtglossarypredoglossary}{}
+\newcommand{\@printunsrt@glossary@handler}[1]{%
+ \protected@xdef\glscurrententrylabel{#1}%
+ \printunsrtglossaryhandler\glscurrententrylabel
+}
+\newcommand{\printunsrtglossaryhandler}[1]{%
+ \glsxtrunsrtdo{#1}%
+}
+\newrobustcmd*{\glsxtriflabelinlist}[4]{%
+ \protected@edef\@glsxtr@doiflabelinlist{\noexpand\@gls@ifinlist{#1}{#2}}%
+ \@glsxtr@doiflabelinlist{#3}{#4}%
+}
+\newcommand{\print@op@unsrtglossaryunit}[2][]{%
+ \s@printunsrtglossary[type=\glsdefaulttype,#1]{%
+ \printunsrtglossaryunitsetup{#2}%
+ }%
+}
+\newcommand*{\printunsrtglossaryunitsetup}[1]{%
+ \renewcommand{\printunsrtglossaryhandler}[1]{%
+ \glsxtrfieldxifinlist{##1}{record.#1}{\csuse{the#1}}
+ {\glsxtrunsrtdo{##1}}%
+ {}%
+ }%
+ \ifcsundef{theH#1}%
+ {%
+ \renewcommand*{\@glsxtrhypernameprefix}{record.#1.\csuse{the#1}.\@gobble}%
+ }%
+ {%
+ \renewcommand*{\@glsxtrhypernameprefix}{record.#1.\csuse{theH#1}.\@gobble}%
+ }%
+ \renewcommand*{\glossarysection}[2][]{}%
+ \appto\glossarypostamble{\glspar\medskip\glspar}%
+}
+\newcommand{\print@noop@unsrtglossaryunit}[2][]{%
+ \PackageError{glossaries-extra}{\string\printunsrtglossaryunit\space
+ requires the record=only or record=alsoindex package option}{}%
+}
+\newrobustcmd*{\@glsxtr@unsrt@getgrouptitle}[2]{%
+ \protected@edef\@glsxtr@titlelabel{glsxtr@grouptitle@#1}%
+ \@onelevel@sanitize\@glsxtr@titlelabel
+ \ifcsdef{\@glsxtr@titlelabel}
+ {\letcs{#2}{\@glsxtr@titlelabel}}%
+ {\def#2{#1}}%
+}
+\newcommand{\glsxtrunsrtdo}{\@glsxtr@noidx@do}
+\newcommand*{\glsxtrgroupfield}{group}
+\newcommand*{\@glsxtr@checkgroup}[1]{%
+ \def\@glsxtr@groupheading{}%
+ \key@ifundefined{glossentry}{group}%
+ {%
+ \letcs{\@gls@sort}{glo@\glsdetoklabel{#1}@sort}%
+ \expandafter\glo@grabfirst\@gls@sort{}{}\@nil
+ }%
+ {%
+ \protected@edef\@glo@thislettergrp{%
+ \csuse{glo@\glsdetoklabel{#1}@\glsxtrgroupfield}}%
+ }%
+ \ifdefequal{\@glo@thislettergrp}{\@gls@currentlettergroup}%
+ {}%
+ {%
+ \ifdefempty{\@gls@currentlettergroup}{}%
+ {\def\@glsxtr@groupheading{\glsgroupskip}}%
+ \protected@eappto\@glsxtr@groupheading{%
+ \noexpand\glsgroupheading{\expandonce\@glo@thislettergrp}%
+ }%
+ }%
+ \let\@gls@currentlettergroup\@glo@thislettergrp
+}
+\newcommand*{\GlsXtrLocationField}{location}
+\newcommand{\@glsxtr@noidx@do}[1]{%
+ \ifglsentryexists{#1}%
+ {%
+ \global\letcs{\@gls@loclist}{glo@\glsdetoklabel{#1}@loclist}%
+ \global\letcs{\@gls@location}{glo@\glsdetoklabel{#1}@\GlsXtrLocationField}%
+ \gls@level=\numexpr\csuse{glo@\glsdetoklabel{#1}@level}+\@glsxtr@leveloffset\relax
+ \ifnum\gls@level>0
+ \let\@glsxtr@ifischild\@firstoftwo
+ \else
+ \let\@glsxtr@ifischild\@secondoftwo
+ \fi
+ \@glsxtr@ifischild
+ {%
+ \ifdefvoid{\@gls@location}%
+ {%
+ \ifdefvoid{\@gls@loclist}%
+ {%
+ \expandafter\subglossentry\expandafter{\number\gls@level}{#1}{}%
+ }%
+ {%
+ \expandafter\subglossentry\expandafter{\number\gls@level}{#1}%
+ {%
+ \glossaryentrynumbers{\glsnoidxloclist{\@gls@loclist}}%
+ }%
+ }%
+ }%
+ {%
+ \expandafter\subglossentry\expandafter
+ {\number\gls@level}{#1}{\glossaryentrynumbers{\@gls@location}}%
+ }%
+ }%
+ {%
+ \ifdefvoid{\@gls@location}%
+ {%
+ \ifdefvoid{\@gls@loclist}
+ {%
+ \glossentry{#1}{}%
+ }%
+ {%
+ \glossentry{#1}%
+ {%
+ \glossaryentrynumbers{\glsnoidxloclist{\@gls@loclist}}%
+ }%
+ }%
+ }%
+ {%
+ \glossentry{#1}%
+ {%
+ \glossaryentrynumbers{\@gls@location}%
+ }%
+ }%
+ }%
+ }%
+ {}%
+}
+\newcount\@glsxtrnewgls@inner
+\newcommand*{\@glsxtr@providenewgls}{%
+ \protected@write\@auxout{}{\string\providecommand{\string\@glsxtr@newglslike}[2]{}}%
+ \let\@glsxtr@providenewgls\relax
+}
+\newcommand{\glsxtridentifyglslike}[2]{%
+ \ifdefequal\@glsxtr@record@setting\@glsxtr@record@setting@off
+ {}%
+ {%
+ \@glsxtr@providenewgls
+ \protected@write\@auxout{}{\string\@glsxtr@newglslike{#1}{\string#2}}%
+ }%
+}
+\newcommand*{\@glsxtrnewgls}[4]{%
+ \ifdef{#3}%
+ {%
+ \PackageError{glossaries-extra}{Command \string#3\space already
+defined}{}%
+ }%
+ {%
+ \glsxtridentifyglslike{#2}{#3}%
+ \ifcsdef{@#4like@#2}%
+ {%
+ \advance\@glsxtrnewgls@inner by \@ne
+ \def\@glsxtrnewgls@innercsname{@#4like\number\@glsxtrnewgls@inner @#2}%
+ }%
+ {\def\@glsxtrnewgls@innercsname{@#4like@#2}}%
+ \expandafter\newrobustcmd\expandafter*\expandafter
+ #3\expandafter{\expandafter\@gls@hyp@opt\csname\@glsxtrnewgls@innercsname\endcsname}%
+ \ifstrempty{#1}%
+ {%
+ \expandafter\newcommand\expandafter*\csname\@glsxtrnewgls@innercsname\endcsname[2][]{%
+ \new@ifnextchar[%
+ {\csname @#4@\endcsname{##1}{#2##2}}%
+ {\csname @#4@\endcsname{##1}{#2##2}[]}%
+ }%
+ }%
+ {%
+ \expandafter\newcommand\expandafter*\csname\@glsxtrnewgls@innercsname\endcsname[2][]{%
+ \new@ifnextchar[%
+ {\csname @#4@\endcsname{#1,##1}{#2##2}}%
+ {\csname @#4@\endcsname{#1,##1}{#2##2}[]}%
+ }%
+ }%
+ }%
+}
+\newrobustcmd*{\glsxtrnewgls}[3][]{%
+ \@glsxtrnewgls{#1}{#2}{#3}{gls}%
+}
+\newrobustcmd*{\glsxtrnewglslike}[6][]{%
+ \@glsxtrnewgls{#1}{#2}{#3}{gls}%
+ \@glsxtrnewgls{#1}{#2}{#4}{glspl}%
+ \@glsxtrnewgls{#1}{#2}{#5}{Gls}%
+ \@glsxtrnewgls{#1}{#2}{#6}{Glspl}%
+}
+\newrobustcmd*{\glsxtrnewGLSlike}[4][]{%
+ \@glsxtrnewgls{#1}{#2}{#3}{GLS}%
+ \@glsxtrnewgls{#1}{#2}{#4}{GLSpl}%
+}
+\newrobustcmd*{\glsxtrnewrgls}[3][]{%
+ \@glsxtrnewgls{#1}{#2}{#3}{rgls}%
+}
+\newrobustcmd*{\glsxtrnewrglslike}[6][]{%
+ \@glsxtrnewgls{#1}{#2}{#3}{rgls}%
+ \@glsxtrnewgls{#1}{#2}{#4}{rglspl}%
+ \@glsxtrnewgls{#1}{#2}{#5}{rGls}%
+ \@glsxtrnewgls{#1}{#2}{#6}{rGlspl}%
+}
+\newrobustcmd*{\glsxtrnewrGLSlike}[4][]{%
+ \@glsxtrnewgls{#1}{#2}{#3}{rGLS}%
+ \@glsxtrnewgls{#1}{#2}{#4}{rGLSpl}%
+}
+\newcommand*{\GlsXtrTotalRecordCount}[1]{%
+ \ifcsdef{glo@\glsdetoklabel{#1}@recordcount}%
+ {\csname glo@\glsdetoklabel{#1}@recordcount\endcsname}%
+ {0}%
+}
+\newcommand*{\GlsXtrRecordCount}[2]{%
+ \ifcsdef{glo@\glsdetoklabel{#1}@recordcount.#2}%
+ {\csname glo@\glsdetoklabel{#1}@recordcount.#2\endcsname}%
+ {0}%
+}
+\newcommand*{\GlsXtrLocationRecordCount}[3]{%
+ \ifcsdef{glo@\glsdetoklabel{#1}@recordcount.#2.\glsxtrdetoklocation{#3}}%
+ {\csname glo@\glsdetoklabel{#1}@recordcount.#2.\glsxtrdetoklocation{#3}\endcsname}%
+ {0}%
+}
+\newcommand*{\glsxtrdetoklocation}[1]{#1}
+\newcommand*{\glsxtrenablerecordcount}{%
+ \renewcommand*{\gls}{\rgls}%
+ \renewcommand*{\Gls}{\rGls}%
+ \renewcommand*{\glspl}{\rglspl}%
+ \renewcommand*{\Glspl}{\rGlspl}%
+ \renewcommand*{\GLS}{\rGLS}%
+ \renewcommand*{\GLSpl}{\rGLSpl}%
+}
+\newcommand*{\glsxtrrecordtriggervalue}[1]{%
+ \GlsXtrTotalRecordCount{#1}%
+}
+\newcommand*{\GlsXtrSetRecordCountAttribute}[2]{%
+ \@for\@glsxtr@cat:=#1\do
+ {%
+ \ifdefempty{\@glsxtr@cat}{}%
+ {%
+ \glssetcategoryattribute{\@glsxtr@cat}{recordcount}{#2}%
+ }%
+ }%
+}
+\newcommand*{\glsxtrifrecordtrigger}[3]{%
+ \glshasattribute{#1}{recordcount}%
+ {%
+ \ifnum\glsxtrrecordtriggervalue{#1}>\glsgetattribute{#1}{recordcount}\relax
+ #3%
+ \else
+ #2%
+ \fi
+ }%
+ {#3}%
+}
+\newcommand*{\@glsxtr@rglstrigger@record}[3]{%
+ \protected@edef\glslabel{\glsdetoklabel{#2}}%
+ \let\@gls@link@label\glslabel
+ \def\@glsxtr@thevalue{}%
+ \def\@glsxtr@theHvalue{\@glsxtr@thevalue}%
+ \def\@glsnumberformat{glstriggerrecordformat}%
+ \protected@edef\@gls@counter{\csname glo@\glslabel @counter\endcsname}%
+ \protected@edef\glstype{\csname glo@\glslabel @type\endcsname}%
+ \def\@glsxtr@thevalue{}%
+ \def\@glsxtr@theHvalue{\@glsxtr@thevalue}%
+ \@gls@save@glslocal
+ \glsxtrinitwrgloss
+ \glslinkpresetkeys
+ \setkeys{glslink}{#1}%
+ \glslinkpostsetkeys
+ \ifdefempty{\@glsxtr@thevalue}%
+ {%
+ \@gls@saveentrycounter
+ }%
+ {%
+ \let\theglsentrycounter\@glsxtr@thevalue
+ \def\theHglsentrycounter{\@glsxtr@theHvalue}%
+ }%
+ \glslinkwrcontent
+ {%
+ \ifglsxtrinitwrglossbefore
+ \@do@wrglossary{#2}%
+ \fi
+ #3%
+ \ifglsxtrinitwrglossbefore
+ \else
+ \@do@wrglossary{#2}%
+ \fi
+ }%
+ \@gls@restore@glslocal
+ \@gls@do@glsunset{#2}%
+}
+\newcommand*{\glstriggerrecordformat}[1]{}
+\newrobustcmd*{\rgls}{\@gls@hyp@opt\@rgls}
+\newcommand*{\@rgls}[2][]{%
+ \new@ifnextchar[{\@rgls@{#1}{#2}}{\@rgls@{#1}{#2}[]}%
+}
+\def\@rgls@#1#2[#3]{%
+ \glsxtrifrecordtrigger{#2}%
+ {%
+ \@glsxtr@rglstrigger@record{#1}{#2}{\rglsformat{#2}{#3}}%
+ }%
+ {%
+ \@gls@{#1}{#2}[#3]%
+ }%
+}%
+\newrobustcmd*{\rglspl}{\@gls@hyp@opt\@rglspl}
+\newcommand*{\@rglspl}[2][]{%
+ \new@ifnextchar[{\@rglspl@{#1}{#2}}{\@rglspl@{#1}{#2}[]}%
+}
+\def\@rglspl@#1#2[#3]{%
+ \glsxtrifrecordtrigger{#2}%
+ {%
+ \@glsxtr@rglstrigger@record{#1}{#2}{\rglsplformat{#2}{#3}}%
+ }%
+ {%
+ \@glspl@{#1}{#2}[#3]%
+ }%
+}%
+\newrobustcmd*{\rGls}{\@gls@hyp@opt\@rGls}
+\newcommand*{\@rGls}[2][]{%
+ \new@ifnextchar[{\@rGls@{#1}{#2}}{\@rGls@{#1}{#2}[]}%
+}
+\def\@rGls@#1#2[#3]{%
+ \glsxtrifrecordtrigger{#2}%
+ {%
+ \@glsxtr@rglstrigger@record{#1}{#2}{\rGlsformat{#2}{#3}}%
+ }%
+ {%
+ \@Gls@{#1}{#2}[#3]%
+ }%
+}%
+\newrobustcmd*{\rGlspl}{\@gls@hyp@opt\@rGlspl}
+\newcommand*{\@rGlspl}[2][]{%
+ \new@ifnextchar[{\@rGlspl@{#1}{#2}}{\@rGlspl@{#1}{#2}[]}%
+}
+\def\@rGlspl@#1#2[#3]{%
+ \glsxtrifrecordtrigger{#2}%
+ {%
+ \@glsxtr@rglstrigger@record{#1}{#2}{\rGlsplformat{#2}{#3}}%
+ }%
+ {%
+ \@Glspl@{#1}{#2}[#3]%
+ }%
+}%
+\newrobustcmd*{\rGLS}{\@gls@hyp@opt\@rGLS}
+\newcommand*{\@rGLS}[2][]{%
+ \new@ifnextchar[{\@rGLS@{#1}{#2}}{\@rGLS@{#1}{#2}[]}%
+}
+\def\@rGLS@#1#2[#3]{%
+ \glsxtrifrecordtrigger{#2}%
+ {%
+ \@glsxtr@rglstrigger@record{#1}{#2}{\rGLSformat{#2}{#3}}%
+ }%
+ {%
+ \@GLS@{#1}{#2}[#3]%
+ }%
+}%
+\newrobustcmd*{\rGLSpl}{\@gls@hyp@opt\@rGLSpl}
+\newcommand*{\@rGLSpl}[2][]{%
+ \new@ifnextchar[{\@rGLSpl@{#1}{#2}}{\@rGLSpl@{#1}{#2}[]}%
+}
+\def\@rGLSpl@#1#2[#3]{%
+ \glsxtrifrecordtrigger{#2}%
+ {%
+ \@glsxtr@rglstrigger@record{#1}{#2}{\rGLSplformat{#2}{#3}}%
+ }%
+ {%
+ \@GLSpl@{#1}{#2}[#3]%
+ }%
+}%
+\newcommand*{\rglsformat}[2]{%
+ \glsifregular{#1}
+ {\glsentryfirst{#1}}%
+ {\ifglshaslong{#1}{\glsentrylong{#1}}{\glsentryfirst{#1}}}#2%
+}
+\newcommand*{\rglsplformat}[2]{%
+ \glsifregular{#1}
+ {\glsentryfirstplural{#1}}%
+ {\ifglshaslong{#1}{\glsentrylongplural{#1}}{\glsentryfirstplural{#1}}}#2%
+}
+\newcommand*{\rGlsformat}[2]{%
+ \glsifregular{#1}
+ {\Glsentryfirst{#1}}%
+ {\ifglshaslong{#1}{\Glsentrylong{#1}}{\Glsentryfirst{#1}}}#2%
+}
+\newcommand*{\rGlsplformat}[2]{%
+ \glsifregular{#1}
+ {\Glsentryfirstplural{#1}}%
+ {\ifglshaslong{#1}{\Glsentrylongplural{#1}}{\Glsentryfirstplural{#1}}}#2%
+}
+\newcommand*{\rGLSformat}[2]{%
+ \expandafter\mfirstucMakeUppercase\expandafter{\rglsformat{#1}{#2}}%
+}
+\newcommand*{\rGLSplformat}[2]{%
+ \expandafter\mfirstucMakeUppercase\expandafter{\rglsplformat{#1}{#2}}%
+}
+\newcommand{\@glsxtr@do@inc@linkcount}{%
+ \glsifattribute{\glslabel}{linkcount}{true}%
+ {%
+ \ifcsdef{c@glsxtr@linkcount@\glslabel}{}%
+ {%
+ \newcounter{glsxtr@linkcount@\glslabel}%
+ \glshasattribute{\glslabel}{linkcountmaster}%
+ {%
+ \begingroup
+ \edef\@glo@tmp{\endgroup\noexpand\@addtoreset{glsxtr@linkcount@\glslabel}%
+ {\glsgetattribute{\glslabel}{linkcountmaster}}}%
+ \@glo@tmp
+ }%
+ {}%
+ }%
+ \glsxtrinclinkcounter{glsxtr@linkcount@\glslabel}%
+ }%
+ {}%
+}
+\newcommand*{\glsxtrinclinkcounter}[1]{\stepcounter{#1}}
+\newcommand*{\GlsXtrLinkCounterValue}[1]{%
+ \ifcsundef{c@glsxtr@linkcount@#1}{0}{\csname c@glsxtr@linkcount@#1\endcsname}%
+}
+\newcommand*{\GlsXtrTheLinkCounter}[1]{%
+ \ifcsundef{theglsxtr@linkcount@#1}{0}%
+ {\csname theglsxtr@linkcount@#1\endcsname}%
+}
+\newcommand*{\GlsXtrIfLinkCounterDef}[3]{%
+ \ifcsundef{theglsxtr@linkcount@#1}{#3}{#2}%
+}
+\newcommand*{\GlsXtrLinkCounterName}[1]{glsxtr@linkcount@#1}
+\newcommand*{\GlsXtrEnableLinkCounting}[2][]{%
+ \let\glsxtr@inc@linkcount\@glsxtr@do@inc@linkcount
+ \@for\@glsxtr@label:=#2\do
+ {%
+ \glssetcategoryattribute{\@glsxtr@label}{linkcount}{true}%
+ \ifstrempty{#1}{}%
+ {%
+ \ifcsundef{c@#1}%
+ {\@nocounterr{#1}}%
+ {\glssetcategoryattribute{\@glsxtr@label}{linkcountmaster}{#1}}%
+ }%
+ }%
+}
+\@onlypreamble\GlsXtrEnableLinkCounting
+\@ifpackageloaded{glossaries-accsupp}
+{
+ \newcommand*{\glsaccessname}[1]{%
+ \glsnameaccessdisplay
+ {%
+ \glsentryname{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\Glsaccessname}[1]{%
+ \glsnameaccessdisplay
+ {%
+ \Glsentryname{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\GLSaccessname}[1]{%
+ \glsnameaccessdisplay
+ {%
+ \mfirstucMakeUppercase{\glsentryname{#1}}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\glsaccesstext}[1]{%
+ \glstextaccessdisplay
+ {%
+ \glsentrytext{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\Glsaccesstext}[1]{%
+ \glstextaccessdisplay
+ {%
+ \Glsentrytext{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\GLSaccesstext}[1]{%
+ \glstextaccessdisplay
+ {%
+ \mfirstucMakeUppercase{\glsentrytext{#1}}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\glsaccessplural}[1]{%
+ \glspluralaccessdisplay
+ {%
+ \glsentryplural{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\Glsaccessplural}[1]{%
+ \glspluralaccessdisplay
+ {%
+ \Glsentryplural{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\GLSaccessplural}[1]{%
+ \glspluralaccessdisplay
+ {%
+ \mfirstucMakeUppercase{\glsentryplural{#1}}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\glsaccessfirst}[1]{%
+ \glsfirstaccessdisplay
+ {%
+ \glsentryfirst{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\Glsaccessfirst}[1]{%
+ \glsfirstaccessdisplay
+ {%
+ \Glsentryfirst{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\GLSaccessfirst}[1]{%
+ \glsfirstaccessdisplay
+ {%
+ \mfirstucMakeUppercase{\glsentryfirst{#1}}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\glsaccessfirstplural}[1]{%
+ \glsfirstpluralaccessdisplay
+ {%
+ \glsentryfirstplural{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\Glsaccessfirstplural}[1]{%
+ \glsfirstpluralaccessdisplay
+ {%
+ \Glsentryfirstplural{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\GLSaccessfirstplural}[1]{%
+ \glsfirstpluralaccessdisplay
+ {%
+ \mfirstucMakeUppercase{\glsentryfirstplural{#1}}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\glsaccesssymbol}[1]{%
+ \glssymbolaccessdisplay
+ {%
+ \glsentrysymbol{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\Glsaccesssymbol}[1]{%
+ \glssymbolaccessdisplay
+ {%
+ \Glsentrysymbol{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\GLSaccesssymbol}[1]{%
+ \glssymbolaccessdisplay
+ {%
+ \mfirstucMakeUppercase{\glsentrysymbol{#1}}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\glsaccesssymbolplural}[1]{%
+ \glssymbolpluralaccessdisplay
+ {%
+ \glsentrysymbolplural{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\Glsaccesssymbolplural}[1]{%
+ \glssymbolpluralaccessdisplay
+ {%
+ \Glsentrysymbolplural{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\GLSaccesssymbolplural}[1]{%
+ \glssymbolpluralaccessdisplay
+ {%
+ \mfirstucMakeUppercase{\glsentrysymbolplural{#1}}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\glsaccessdesc}[1]{%
+ \glsdescriptionaccessdisplay
+ {%
+ \glsentrydesc{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\Glsaccessdesc}[1]{%
+ \glsdescriptionaccessdisplay
+ {%
+ \Glsentrydesc{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\GLSaccessdesc}[1]{%
+ \glsdescriptionaccessdisplay
+ {%
+ \mfirstucMakeUppercase{\glsentrydesc{#1}}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\glsaccessdescplural}[1]{%
+ \glsdescriptionpluralaccessdisplay
+ {%
+ \glsentrydescplural{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\Glsaccessdescplural}[1]{%
+ \glsdescriptionpluralaccessdisplay
+ {%
+ \Glsentrydescplural{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\GLSaccessdescplural}[1]{%
+ \glsdescriptionpluralaccessdisplay
+ {%
+ \mfirstucMakeUppercase{\glsentrydescplural{#1}}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\glsaccessshort}[1]{%
+ \glsshortaccessdisplay
+ {%
+ \glsentryshort{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\Glsaccessshort}[1]{%
+ \glsshortaccessdisplay
+ {%
+ \Glsentryshort{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\GLSaccessshort}[1]{%
+ \glsshortaccessdisplay
+ {%
+ \mfirstucMakeUppercase{\glsentryshort{#1}}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\glsaccessshortpl}[1]{%
+ \glsshortpluralaccessdisplay
+ {%
+ \glsentryshortpl{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\Glsaccessshortpl}[1]{%
+ \glsshortpluralaccessdisplay
+ {%
+ \Glsentryshortpl{#1}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\GLSaccessshortpl}[1]{%
+ \glsshortpluralaccessdisplay
+ {%
+ \mfirstucMakeUppercase{\glsentryshortpl{#1}}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\glsaccesslong}[1]{%
+ \glslongaccessdisplay{\glsentrylong{#1}}{#1}%
+ }
+
+ \newcommand*{\Glsaccesslong}[1]{%
+ \glslongaccessdisplay{\Glsentrylong{#1}}{#1}%
+ }
+ \newcommand*{\GLSaccesslong}[1]{%
+ \glslongaccessdisplay
+ {%
+ \mfirstucMakeUppercase{\glsentrylong{#1}}%
+ }%
+ {#1}%
+ }
+ \newcommand*{\glsaccesslongpl}[1]{%
+ \glslongpluralaccessdisplay{\glsentrylongpl{#1}}{#1}%
+ }
+
+ \newcommand*{\Glsaccesslongpl}[1]{%
+ \glslongpluralaccessdisplay{\Glsentrylongpl{#1}}{#1}%
+ }
+ \newcommand*{\GLSaccesslongpl}[1]{%
+ \glslongpluralaccessdisplay
+ {%
+ \mfirstucMakeUppercase{\glsentrylongpl{#1}}%
+ }%
+ {#1}%
+ }
+ \define@key{glsxtrabbrv}{access}{%
+ \def\@gls@nameaccess{#1}%
+ }
+ \define@key{glsxtrabbrv}{textaccess}{%
+ \def\@gls@textaccess{#1}%
+ }
+ \define@key{glsxtrabbrv}{pluralaccess}{%
+ \def\@gls@pluralaccess{#1}%
+ }
+ \define@key{glsxtrabbrv}{firstaccess}{%
+ \def\@gls@firstaccess{#1}%
+ }
+ \define@key{glsxtrabbrv}{firstpluralaccess}{%
+ \def\@gls@firstpluralaccess{#1}%
+ }
+ \define@key{glsxtrabbrv}{shortaccess}{%
+ \def\@gls@shortaccess{#1}%
+ }
+ \define@key{glsxtrabbrv}{shortpluralaccess}{%
+ \def\@gls@shortaccesspl{#1}%
+ }
+ \define@key{glsxtrabbrv}{longaccess}{%
+ \def\@gls@longaccess{#1}%
+ }
+ \define@key{glsxtrabbrv}{shortlonglaccess}{%
+ \def\@gls@longaccesspl{#1}%
+ }
+ \newcommand*{\@gls@initaccesskeys}{%
+ \def\@gls@nameaccess{}%
+ \def\@gls@textaccess{}%
+ \def\@gls@pluralaccess{}%
+ \def\@gls@firstaccess{}%
+ \def\@gls@firstpluralaccess{}%
+ \def\@gls@shortaccess{}%
+ \def\@gls@shortaccesspl{}%
+ \def\@gls@longaccess{}%
+ \def\@gls@longaccesspl{}%
+ }
+\newcommand*{\@gls@ifaccessattribute@set}[3]{%
+ \glsifcategoryattribute{\glscategorylabel}{access#1}{true}%
+ {#2}%
+ {%
+ \glsifcategoryattribute{\glscategorylabel}{access#1}{false}%
+ {#3}%
+ {%
+ \glsifcategoryattribute{\glscategorylabel}{#1}{true}%
+ {#2}%
+ {#3}%
+ }%
+ }%
+}
+ \def\glsdefaultshortaccess#1#2{#1 (#2)}
+ \newcommand{\glsxtrassignactualsetup}{%
+ \let\@\empty
+ \let\emph\@firstofone
+ \let\textbf\@firstofone
+ \let\textmd\@firstofone
+ \let\textit\@firstofone
+ \let\textsl\@firstofone
+ \let\textsc\@firstofone
+ \let\textrm\@firstofone
+ \let\textsf\@firstofone
+ \let\texttt\@firstofone
+ }
+ \ifdef\pdfstringdef
+ {
+ \newcommand{\@gls@assign@actual}{%
+ \begingroup
+ \glsxtrassignactualsetup
+ \pdfstringdef\@gls@actualshort{\glsxtrorgshort}%
+ \pdfstringdef\@gls@actuallong{\glsxtrorglong}%
+ \pdfstringdef\@gls@actualshortpl{\@gls@shortpl}%
+ \pdfstringdef\@gls@actuallongpl{\@gls@longpl}%
+ \protected@edef\@gls@tmp{\endgroup
+ \def\noexpand\@gls@actualshort{\expandonce\@gls@actualshort}%
+ \def\noexpand\@gls@actuallong{\expandonce\@gls@actuallong}%
+ \def\noexpand\@gls@actualshortpl{\expandonce\@gls@actualshortpl}%
+ \def\noexpand\@gls@actuallongpl{\expandonce\@gls@actuallongpl}%
+ }%
+ \@gls@tmp
+ }
+ }
+ {
+ \newcommand{\@gls@assign@actual}{%
+ \begingroup
+ \glsxtrassignactualsetup
+ \protected@edef\@gls@tmp{\endgroup
+ \def\noexpand\@gls@actualshort{\glsxtrorgshort}%
+ \def\noexpand\@gls@actuallong{\glsxtrorglong}%
+ \def\noexpand\@gls@actualshortpl{\@gls@shortpl}%
+ \def\noexpand\@gls@actuallongpl{\@gls@longpl}%
+ }%
+ \@gls@tmp
+ }
+ }
+ \newcommand{\@gls@setup@default@access}{%
+ \@gls@assign@actual
+ \ifdefempty\@gls@shortaccess
+ {%
+ \@gls@ifaccessattribute@set{insertdots}%
+ {%
+ \expandafter\@glsxtr@insertdots\expandafter\@gls@actualshort\expandafter
+ {\@gls@actualshort}%
+ }%
+ {}%
+ \ifdefempty\@gls@longaccess
+ {%
+ \protected@edef\@gls@shortaccess{\glsdefaultshortaccess
+ {\expandonce\@gls@actuallong}{\expandonce\@gls@actualshort}}%
+ }%
+ {%
+ \protected@edef\@gls@shortaccess{\glsdefaultshortaccess
+ {\expandonce\@gls@longaccess}{\expandonce\@gls@actualshort}}%
+ }%
+ \eappto\ExtraCustomAbbreviationFields{shortaccess={\@gls@shortaccess},}%
+ \ifdefempty\@gls@shortaccesspl
+ {%
+ \@gls@ifaccessattribute@set{aposplural}%
+ {%
+ \expandafter\def\expandafter\@gls@shortaccesspl\expandafter{%
+ \@gls@actualshort'\glsxtrabbrvpluralsuffix}%
+ }%
+ {%
+ \@gls@ifaccessattribute@set{noshortplural}%
+ {%
+ \let\@gls@shortaccesspl\@gls@shortaccess
+ }%
+ {%
+ \let\@gls@shortaccesspl\@gls@actualshortpl
+ }%
+ }%
+ \ifdefempty\@gls@longaccesspl
+ {%
+ \protected@edef\@gls@shortaccesspl{\glsdefaultshortaccess
+ {\expandonce\@gls@actuallongpl}{\expandonce\@gls@actualshortpl}}%
+ }%
+ {%
+ \protected@edef\@gls@shortaccesspl{\glsdefaultshortaccess
+ {\expandonce\@gls@longaccesspl}{\expandonce\@gls@actualshort}}%
+ }%
+ \eappto\ExtraCustomAbbreviationFields{shortpluralaccess={\@gls@shortaccesspl},}%
+ }%
+ {}%
+ }%
+ {%
+ \ifdefempty\@gls@shortaccesspl
+ {\let\@gls@shortaccesspl\@gls@shortaccess}%
+ {}%
+ }%
+ \ifdefempty\@gls@nameaccess
+ {%
+ \glsifcategoryattribute{\glscategorylabel}{nameshortaccess}{true}%
+ {%
+ \eappto\ExtraCustomAbbreviationFields{access={\@gls@shortaccess},}%
+ }%
+ {}%
+ }%
+ {}%
+ \ifdefempty\@gls@textaccess
+ {%
+ \glsifcategoryattribute{\glscategorylabel}{textshortaccess}{true}%
+ {%
+ \eappto\ExtraCustomAbbreviationFields{textaccess={\@gls@shortaccess},}%
+ }%
+ {}%
+ }%
+ {}%
+ \ifdefempty\@gls@pluralaccess
+ {%
+ \glsifcategoryattribute{\glscategorylabel}{textshortaccess}{true}%
+ {%
+ \eappto\ExtraCustomAbbreviationFields{%
+ pluralaccess={\@gls@shortaccesspl},%
+ }%
+ }%
+ {}%
+ }%
+ {}%
+ \ifdefempty\@gls@firstaccess
+ {%
+ \glsifcategoryattribute{\glscategorylabel}{firstshortaccess}{true}%
+ {%
+ \eappto\ExtraCustomAbbreviationFields{firstaccess={\@gls@shortaccess},}%
+ }%
+ {}%
+ }%
+ {}%
+ \ifdefempty\@gls@firstpluralaccess
+ {%
+ \glsifcategoryattribute{\glscategorylabel}{firstshortaccess}{true}%
+ {%
+ \eappto\ExtraCustomAbbreviationFields{%
+ firstpluralaccess={\@gls@shortaccesspl},%
+ }%
+ }%
+ {}%
+ }%
+ {}%
+ }
+ \newcommand*{\glsxtrprovideaccsuppcmd}[2]{%
+ \ifcsundef{glsxtr#1#2accsupp}%
+ {\csdef{glsxtr#1#2accsupp}{\glsshortaccsupp}}%
+ {}%
+ }
+ \newcommand*{\glsxtrAccSuppAbbrSetNoLongAttrs}[1]{%
+ \glssetcategoryattribute{#1}{nameshortaccess}{true}%
+ \glssetcategoryattribute{#1}{firstshortaccess}{true}%
+ \glssetcategoryattribute{#1}{textshortaccess}{true}%
+ \glsxtrprovideaccsuppcmd{#1}{name}%
+ \glsxtrprovideaccsuppcmd{#1}{first}%
+ \glsxtrprovideaccsuppcmd{#1}{firstpl}%
+ \glsxtrprovideaccsuppcmd{#1}{text}%
+ \glsxtrprovideaccsuppcmd{#1}{plural}%
+ }
+ \newcommand*{\glsxtrAccSuppAbbrSetFirstLongAttrs}[1]{%
+ \glssetcategoryattribute{#1}{nameshortaccess}{true}%
+ \glssetcategoryattribute{#1}{textshortaccess}{true}%
+ \glsxtrprovideaccsuppcmd{#1}{name}%
+ \glsxtrprovideaccsuppcmd{#1}{text}%
+ \glsxtrprovideaccsuppcmd{#1}{plural}%
+ }
+ \newcommand*{\glsxtrAccSuppAbbrSetTextShortAttrs}[1]{%
+ \glssetcategoryattribute{#1}{textshortaccess}{true}%
+ \glsxtrprovideaccsuppcmd{#1}{text}%
+ \glsxtrprovideaccsuppcmd{#1}{plural}%
+ }
+ \newcommand*{\glsxtrAccSuppAbbrSetNameShortAttrs}[1]{%
+ \glssetcategoryattribute{#1}{nameshortaccess}{true}%
+ \glsxtrprovideaccsuppcmd{#1}{name}%
+ }
+ \newcommand*{\glsxtrAccSuppAbbrSetNameLongAttrs}[1]{%
+ \glssetcategoryattribute{#1}{firstshortaccess}{true}%
+ \glssetcategoryattribute{#1}{textshortaccess}{true}%
+ \glsxtrprovideaccsuppcmd{#1}{first}%
+ \glsxtrprovideaccsuppcmd{#1}{firstpl}%
+ \glsxtrprovideaccsuppcmd{#1}{text}%
+ \glsxtrprovideaccsuppcmd{#1}{plural}%
+ }
+}
+{
+ \newcommand*{\glsaccessname}[1]{\glsentryname{#1}}
+ \newcommand*{\Glsaccessname}[1]{\Glsentryname{#1}}
+ \newcommand*{\GLSaccessname}[1]{%
+ \protect\mfirstucMakeUppercase{\glsentryname{#1}}}
+ \newcommand*{\glsaccesstext}[1]{\glsentrytext{#1}}
+ \newcommand*{\Glsaccesstext}[1]{\Glsentrytext{#1}}
+ \newcommand*{\GLSaccesstext}[1]{%
+ \protect\mfirstucMakeUppercase{\glsentrytext{#1}}}
+ \newcommand*{\glsaccessplural}[1]{\glsentryplural{#1}}
+ \newcommand*{\Glsaccessplural}[1]{\Glsentryplural{#1}}
+ \newcommand*{\GLSaccessplural}[1]{%
+ \protect\mfirstucMakeUppercase{\glsentryplural{#1}}}
+ \newcommand*{\glsaccessfirst}[1]{\glsentryfirst{#1}}
+ \newcommand*{\Glsaccessfirst}[1]{\Glsentryfirst{#1}}
+ \newcommand*{\GLSaccessfirst}[1]{%
+ \protect\mfirstucMakeUppercase{\glsentryfirst{#1}}}
+ \newcommand*{\glsaccessfirstplural}[1]{\glsentryfirstplural{#1}}
+ \newcommand*{\Glsaccessfirstplural}[1]{\Glsentryfirstplural{#1}}
+ \newcommand*{\GLSaccessfirstplural}[1]{%
+ \protect\mfirstucMakeUppercase{\glsentryfirstplural{#1}}}
+ \newcommand*{\glsaccesssymbol}[1]{\glsentrysymbol{#1}}
+ \newcommand*{\Glsaccesssymbol}[1]{\Glsentrysymbol{#1}}
+ \newcommand*{\GLSaccesssymbol}[1]{%
+ \protect\mfirstucMakeUppercase{\glsentrysymbol{#1}}}
+ \newcommand*{\glsaccesssymbolplural}[1]{\glsentrysymbolplural{#1}}
+ \newcommand*{\Glsaccesssymbolplural}[1]{\Glsentrysymbolplural{#1}}
+ \newcommand*{\GLSaccesssymbolplural}[1]{%
+ \protect\mfirstucMakeUppercase{\glsentrysymbolplural{#1}}}
+ \newcommand*{\glsaccessdesc}[1]{\glsentrydesc{#1}}
+ \newcommand*{\Glsaccessdesc}[1]{\Glsentrydesc{#1}}
+ \newcommand*{\GLSaccessdesc}[1]{%
+ \protect\mfirstucMakeUppercase{\glsentrydesc{#1}}}
+ \newcommand*{\glsaccessdescplural}[1]{\glsentrydescplural{#1}}
+ \newcommand*{\Glsaccessdescplural}[1]{\Glsentrydescplural{#1}}
+ \newcommand*{\GLSaccessdescplural}[1]{%
+ \protect\mfirstucMakeUppercase{\glsentrydescplural{#1}}}
+ \newcommand*{\glsaccessshort}[1]{\glsentryshort{#1}}
+ \newcommand*{\Glsaccessshort}[1]{\Glsentryshort{#1}}
+ \newcommand*{\GLSaccessshort}[1]{%
+ \protect\mfirstucMakeUppercase{\glsentryshort{#1}}}
+ \newcommand*{\glsaccessshortpl}[1]{\glsentryshortpl{#1}}
+ \newcommand*{\Glsaccessshortpl}[1]{\Glsentryshortpl{#1}}
+ \newcommand*{\GLSaccessshortpl}[1]{%
+ \protect\mfirstucMakeUppercase{\glsentryshortpl{#1}}}
+ \newcommand*{\glsaccesslong}[1]{\glsentrylong{#1}}
+ \newcommand*{\Glsaccesslong}[1]{\Glsentrylong{#1}}
+ \newcommand*{\GLSaccesslong}[1]{%
+ \protect\mfirstucMakeUppercase{\glsentrylong{#1}}}
+ \newcommand*{\glsaccesslongpl}[1]{\glsentrylongpl{#1}}
+ \newcommand*{\Glsaccesslongpl}[1]{\Glsentrylongpl{#1}}
+ \newcommand*{\GLSaccesslongpl}[1]{%
+ \protect\mfirstucMakeUppercase{\glsentrylongpl{#1}}}
+ \newcommand*{\@gls@initaccesskeys}{}
+ \newcommand{\@gls@setup@default@access}{}
+ \newcommand*{\glsxtrAccSuppAbbrSetNoLongAttrs}[1]{}
+ \newcommand*{\glsxtrAccSuppAbbrSetFirstLongAttrs}[1]{}
+ \newcommand*{\glsxtrAccSuppAbbrSetTextShortAttrs}[1]{}
+ \newcommand*{\glsxtrAccSuppAbbrSetNameShortAttrs}[1]{}
+ \newcommand*{\glsxtrAccSuppAbbrSetNameLongAttrs}[1]{}
+}
+\glsaddstoragekey{category}{general}{\glscategory}
+\newcommand{\glsifcategory}[4]{%
+ \ifglsfieldeq{#1}{category}{#2}{#3}{#4}%
+}
+\newcommand*{\glssetcategoryattribute}[3]{%
+ \csdef{@glsxtr@categoryattr@@#1@#2}{#3}%
+}
+\newcommand*{\glssetcategoriesattribute}[3]{%
+ \@for\@gls@thiscatlabel:=#1\do{%
+ \csgdef{@glsxtr@categoryattr@@\@gls@thiscatlabel @#2}{#3}%
+ }%
+}
+\newcommand*{\glssetcategoriesattributes}[3]{%
+ {%
+ \@for\@gls@thisattrlabel:=#2\do{%
+ \glssetcategoriesattribute{#1}{\@gls@thisattrlabel}{#3}%
+ }%
+ }%
+}
+\newcommand*{\glsgetcategoryattribute}[2]{%
+ \csuse{@glsxtr@categoryattr@@#1@#2}%
+}
+\newcommand*{\glsunsetcategoryattribute}[2]{%
+ \csundef{@glsxtr@categoryattr@@#1@#2}%
+}
+\newcommand*{\glshascategoryattribute}[4]{%
+ \ifcsvoid{@glsxtr@categoryattr@@#1@#2}{#4}{#3}%
+}
+\newcommand*{\glssetattribute}[3]{%
+ \glssetcategoryattribute{\glscategory{#1}}{#2}{#3}%
+}
+\newcommand*{\glsgetattribute}[2]{%
+ \glsgetcategoryattribute{\glscategory{#1}}{#2}%
+}
+\newcommand*{\glshasattribute}[4]{%
+ \ifglsentryexists{#1}%
+ {\glshascategoryattribute{\glscategory{#1}}{#2}{#3}{#4}}%
+ {#4}%
+}
+\newcommand{\glsifcategoryattribute}[5]{%
+ \ifcsundef{@glsxtr@categoryattr@@#1@#2}%
+ {#5}%
+ {\ifcsstring{@glsxtr@categoryattr@@#1@#2}{#3}{#4}{#5}}%
+}
+\newcommand{\glsifattribute}[5]{%
+ \ifglsentryexists{#1}%
+ {\glsifcategoryattribute{\glscategory{#1}}{#2}{#3}{#4}{#5}}%
+ {#5}%
+}
+\glssetcategoryattribute{general}{regular}{true}
+\glssetcategoryattribute{acronym}{regular}{true}
+\newcommand*{\glssetregularcategory}[1]{%
+ \glssetcategoryattribute{#1}{regular}{true}%
+}
+\newcommand{\glsifregularcategory}[3]{%
+ \glsifcategoryattribute{#1}{regular}{true}{#2}{#3}%
+}
+\newcommand{\glsifnotregularcategory}[3]{%
+ \glsifcategoryattribute{#1}{regular}{false}{#2}{#3}%
+}
+\newcommand{\glsifregular}[3]{%
+ \glsifregularcategory{\glscategory{#1}}{#2}{#3}%
+}
+\newcommand{\glsifnotregular}[3]{%
+ \glsifnotregularcategory{\glscategory{#1}}{#2}{#3}%
+}
+\newcommand{\glsforeachincategory}[5][\@glo@types]{%
+ \forallglossaries[#1]{#3}%
+ {%
+ \forglsentries[#3]{#4}%
+ {%
+ \glsifcategory{#4}{#2}{#5}{}%
+ }%
+ }%
+}
+\newcommand{\glsforeachwithattribute}[6][\@glo@types]{%
+ \forallglossaries[#1]{#4}%
+ {%
+ \forglsentries[#4]{#5}%
+ {%
+ \glsifattribute{#5}{#2}{#3}{#6}{}%
+ }%
+ }%
+}
+\ifdef\newterm
+{%
+ \renewcommand*{\newterm}[2][]{%
+ \newglossaryentry{#2}%
+ {type={index},category=index,name={#2},%
+ description={\glsxtrpostdescription\nopostdesc},#1}%
+ }
+ \glssetcategoryattribute{index}{regular}{true}
+ \newcommand*{\glsxtrpostdescindex}{}
+}
+{}
+\ifdef\printsymbols
+{%
+ \newcommand*{\glsxtrnewsymbol}[3][]{%
+ \newglossaryentry{#2}{name={#3},sort={#2},type=symbols,category=symbol,#1}%
+ }
+ \glssetcategoryattribute{symbol}{regular}{true}
+ \newcommand*{\glsxtrpostdescsymbol}{}
+}
+{}
+\ifdef\printnumbers
+{%
+\ifdef\printnumbers
+ \newcommand*{\glsxtrnewnumber}[3][]{%
+ \newglossaryentry{#2}{name={#3},sort={#2},type=numbers,category=number,#1}%
+ }
+ \glssetcategoryattribute{number}{regular}{true}
+ \newcommand*{\glsxtrpostdescnumber}{}
+}
+{}
+\newcommand*{\glsxtrsetcategory}[2]{%
+ \@for\@glsxtr@label:=#1\do
+ {%
+ \glsfieldxdef{\@glsxtr@label}{category}{#2}%
+ }%
+}
+\newcommand*{\glsxtrsetcategoryforall}[2]{%
+ \forallglossaries[#1]{\@glsxtr@type}{%
+ \forglsentries[\@glsxtr@type]{\@glsxtr@label}%
+ {%
+ \glsfieldxdef{\@glsxtr@label}{category}{#2}%
+ }%
+ }%
+}
+\newcommand*{\glsxtrfieldtitlecase}[2]{%
+ \expandafter\glsxtrfieldtitlecasecs\expandafter
+ {\csname glo@\glsdetoklabel{#1}@#2\endcsname}%
+}
+\ifdef\glscapitalisewords
+{
+ \newcommand*{\glsxtrfieldtitlecasecs}[1]{%
+ \expandafter\glscapitalisewords\expandafter{#1}}
+}
+{
+ \newcommand*{\glsxtrfieldtitlecasecs}[1]{\xcapitalisewords{#1}}
+}
+\@ifpackageloaded{glossaries-accsupp}
+{
+ \renewcommand*{\glossentrydesc}[1]{%
+ \glsdoifexistsorwarn{#1}%
+ {%
+ \glssetabbrvfmt{\glscategory{#1}}%
+ \glshasattribute{#1}{glossdescfont}%
+ {%
+ \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glossdescfont}}%
+ \ifcsdef{\@glsxtr@attrval}%
+ {%
+ \letcs{\@glsxtr@glossdescfont}{\@glsxtr@attrval}%
+ }%
+ {%
+ \GlossariesExtraWarning{Unknown control sequence name
+ `\@glsxtr@attrval' supplied in glossdescfont attribute
+ for entry `#1'. Ignoring}%
+ \let\@glsxtr@glossdescfont\@firstofone
+ }%
+ }%
+ {\let\@glsxtr@glossdescfont\@firstofone}%
+ \glsifattribute{#1}{glossdesc}{firstuc}%
+ {%
+ \@glsxtr@glossdescfont{\Glsaccessdesc{#1}}%
+ }%
+ {%
+ \glsifattribute{#1}{glossdesc}{title}%
+ {%
+ \@glsxtr@do@titlecaps@warn
+ \glsdescriptionaccessdisplay
+ {%
+ \@glsxtr@glossdescfont{\glsxtrfieldtitlecase{#1}{desc}}%
+ }%
+ {#1}%
+ }%
+ {%
+ \@glsxtr@glossdescfont{\glsaccessdesc{#1}}%
+ }%
+ }%
+ }%
+ }
+}
+{
+ \renewcommand*{\glossentrydesc}[1]{%
+ \glsdoifexistsorwarn{#1}%
+ {%
+ \glssetabbrvfmt{\glscategory{#1}}%
+ \glshasattribute{#1}{glossdescfont}%
+ {%
+ \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glossdescfont}}%
+ \ifcsdef{\@glsxtr@attrval}%
+ {%
+ \letcs{\@glsxtr@glossdescfont}{\@glsxtr@attrval}%
+ }%
+ {%
+ \GlossariesExtraWarning{Unknown control sequence name
+ `\@glsxtr@attrval' supplied in glossdescfont attribute
+ for entry `#1'. Ignoring}%
+ \let\@glsxtr@glossdescfont\@firstofone
+ }%
+ }%
+ {\let\@glsxtr@glossdescfont\@firstofone}%
+ \glsifattribute{#1}{glossdesc}{firstuc}%
+ {%
+ \@glsxtr@glossdescfont{\Glsentrydesc{#1}}%
+ }%
+ {%
+ \glsifattribute{#1}{glossdesc}{title}%
+ {%
+ \@glsxtr@do@titlecaps@warn
+ \@glsxtr@glossdescfont{\glsxtrfieldtitlecase{#1}{desc}}%
+ }%
+ {%
+ \@glsxtr@glossdescfont{\glsentrydesc{#1}}%
+ }%
+ }%
+ }%
+ }
+}
+\@ifpackageloaded{glossaries-accsupp}
+{
+ \renewcommand*{\glossentryname}[1]{%
+ \@glsdoifexistsorwarn{#1}%
+ {%
+ \glssetabbrvfmt{\glscategory{#1}}%
+ \glshasattribute{#1}{glossnamefont}%
+ {%
+ \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}%
+ \ifcsdef{\@glsxtr@attrval}%
+ {%
+ \letcs{\@glsxtr@glossnamefont}{\@glsxtr@attrval}%
+ }%
+ {%
+ \GlossariesExtraWarning{Unknown control sequence name
+ `\@glsxtr@attrval' supplied in glossnamefont attribute
+ for entry `#1'. Reverting to default \string\glsnamefont}%
+ \let\@glsxtr@glossnamefont\glsnamefont
+ }%
+ }%
+ {\let\@glsxtr@glossnamefont\glsnamefont}%
+ \glsifattribute{#1}{glossname}{firstuc}%
+ {%
+ \glsnameaccessdisplay
+ {%
+ \@glsxtr@glossnamefont{\Glsentryname{#1}}%
+ }%
+ {#1}%
+ }%
+ {%
+ \glsifattribute{#1}{glossname}{title}%
+ {%
+ \@glsxtr@do@titlecaps@warn
+ \glsnameaccessdisplay
+ {%
+ \@glsxtr@glossnamefont{\glsxtrfieldtitlecase{#1}{name}}%
+ }%
+ {#1}%
+ }%
+ {%
+ \glsifattribute{#1}{glossname}{uc}%
+ {%
+ \glsnameaccessdisplay
+ {%
+ \letcs{\glo@name}{glo@\glsdetoklabel{#1}@name}%
+ \@glsxtr@glossnamefont{\mfirstucMakeUppercase{\glo@name}}%
+ }%
+ {#1}%
+ }%
+ {%
+ \letcs{\glo@name}{glo@\glsdetoklabel{#1}@name}%
+ \glsnameaccessdisplay
+ {%
+ \expandafter\@glsxtr@glossnamefont\expandafter{\glo@name}%
+ }%
+ {#1}%
+ }%
+ }%
+ }%
+ \glsxtrpostnamehook{#1}%
+ }%
+ }
+}
+{
+ \renewcommand*{\glossentryname}[1]{%
+ \@glsdoifexistsorwarn{#1}%
+ {%
+ \glssetabbrvfmt{\glscategory{#1}}%
+ \glshasattribute{#1}{glossnamefont}%
+ {%
+ \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}%
+ \ifcsdef{\@glsxtr@attrval}%
+ {%
+ \letcs{\@glsxtr@glossnamefont}{\@glsxtr@attrval}%
+ }%
+ {%
+ \GlossariesExtraWarning{Unknown control sequence name
+ `\@glsxtr@attrval' supplied in glossnamefont attribute
+ for entry `#1'. Reverting to default \string\glsnamefont}%
+ \let\@glsxtr@glossnamefont\glsnamefont
+ }%
+ }%
+ {\let\@glsxtr@glossnamefont\glsnamefont}%
+ \glsifattribute{#1}{glossname}{firstuc}%
+ {%
+ \@glsxtr@glossnamefont{\Glsentryname{#1}}%
+ }%
+ {%
+ \glsifattribute{#1}{glossname}{title}%
+ {%
+ \@glsxtr@do@titlecaps@warn
+ \@glsxtr@glossnamefont{\glsxtrfieldtitlecase{#1}{name}}%
+ }%
+ {%
+ \glsifattribute{#1}{glossname}{uc}%
+ {%
+ \letcs{\glo@name}{glo@\glsdetoklabel{#1}@name}%
+ \@glsxtr@glossnamefont{\mfirstucMakeUppercase{\glo@name}}%
+ }%
+ {%
+ \letcs{\glo@name}{glo@\glsdetoklabel{#1}@name}%
+ \expandafter\@glsxtr@glossnamefont\expandafter{\glo@name}%
+ }%
+ }%
+ }%
+ \glsxtrpostnamehook{#1}%
+ }%
+ }
+}
+\@ifpackageloaded{glossaries-accsupp}
+{
+ \renewcommand*{\Glossentryname}[1]{%
+ \@glsdoifexistsorwarn{#1}%
+ {%
+ \glssetabbrvfmt{\glscategory{#1}}%
+ \glshasattribute{#1}{glossnamefont}%
+ {%
+ \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}%
+ \ifcsdef{\@glsxtr@attrval}%
+ {%
+ \letcs{\@glsxtr@glossnamefont}{\@glsxtr@attrval}%
+ }%
+ {%
+ \GlossariesExtraWarning{Unknown control sequence name
+ `\@glsxtr@attrval' supplied in glossnamefont attribute
+ for entry `#1'. Reverting to default \string\glsnamefont}%
+ \let\@glsxtr@glossnamefont\glsnamefont
+ }%
+ }%
+ {\let\@glsxtr@glossnamefont\glsnamefont}%
+ \glsnameaccessdisplay
+ {%
+ \@glsxtr@glossnamefont{\Glsentryname{#1}}%
+ }%
+ {#1}%
+ \glsxtrpostnamehook{#1}%
+ }%
+ }
+}
+{
+ \renewcommand*{\Glossentryname}[1]{%
+ \@glsdoifexistsorwarn{#1}%
+ {%
+ \glssetabbrvfmt{\glscategory{#1}}%
+ \glshasattribute{#1}{glossnamefont}%
+ {%
+ \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}%
+ \ifcsdef{\@glsxtr@attrval}%
+ {%
+ \letcs{\@glsxtr@glossnamefont}{\@glsxtr@attrval}%
+ }%
+ {%
+ \GlossariesExtraWarning{Unknown control sequence name
+ `\@glsxtr@attrval' supplied in glossnamefont attribute
+ for entry `#1'. Reverting to default \string\glsnamefont}%
+ \let\@glsxtr@glossnamefont\glsnamefont
+ }%
+ }%
+ {\let\@glsxtr@glossnamefont\glsnamefont}%
+ \@glsxtr@glossnamefont{\Glsentryname{#1}}%
+ \glsxtrpostnamehook{#1}%
+ }%
+ }
+}
+\newcommand*{\glsxtrpostnamehook}[1]{%
+ \let\@glsnumberformat\@glsxtr@defaultnumberformat
+ \glsxtrdoautoindexname{#1}{indexname}%
+ \glsextrapostnamehook{#1}%
+ \csuse{glsxtrpostname\glscategory{#1}}%
+}
+\newcommand*{\glsextrapostnamehook}[1]{}%
+\newcommand*{\glsdefpostname}[2]{%
+ \csdef{glsxtrpostname#1}{#2}%
+}
+\@ifpackageloaded{glossaries-accsupp}
+{
+ \newcommand*{\glsxtr@setaccessdisplay}[1]{%
+ \ifcsdef{gls#1accessdisplay}%
+ {\letcs\@glsxtr@accessdisplay{gls#1accessdisplay}}%
+ {%
+ \protected@edef\@gls@thisval{#1}%
+ \@for\@gls@map:=\@gls@keymap\do{%
+ \protected@edef\@this@key{\expandafter\@secondoftwo\@gls@map}%
+ \ifdefequal{\@this@key}{\@gls@thisval}%
+ {%
+ \protected@edef\@gls@thisval{\expandafter\@firstoftwo\@gls@map}%
+ \@endfortrue
+ }%
+ {}%
+ }%
+ \ifcsdef{gls\@gls@thisval accessdisplay}%
+ {\letcs\@glsxtr@accessdisplay{gls\@gls@thisval accessdisplay}}%
+ {\let\@glsxtr@accessdisplay\@firstoftwo}%
+ }%
+ }
+}
+{%
+ \newcommand*{\glsxtr@setaccessdisplay}[1]{%
+ \let\@glsxtr@accessdisplay\@firstoftwo}
+}
+\newrobustcmd*{\glossentrynameother}[2]{%
+ \@glsdoifexistsorwarn{#1}%
+ {%
+ \glsxtr@setaccessdisplay{#2}%
+ \glssetabbrvfmt{\glscategory{#1}}%
+ \glshasattribute{#1}{glossnamefont}%
+ {%
+ \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}%
+ \ifcsdef{\@glsxtr@attrval}%
+ {%
+ \letcs{\@glsxtr@glossnamefont}{\@glsxtr@attrval}%
+ }%
+ {%
+ \GlossariesExtraWarning{Unknown control sequence name
+ `\@glsxtr@attrval' supplied in glossnamefont attribute
+ for entry `#1'. Reverting to default \string\glsnamefont}%
+ \let\@glsxtr@glossnamefont\glsnamefont
+ }%
+ }%
+ {\let\@glsxtr@glossnamefont\glsnamefont}%
+ \glsifattribute{#1}{glossname}{firstuc}%
+ {%
+ \@glsxtr@accessdisplay
+ {\@glsxtr@glossnamefont{\@Gls@entry@field{#1}{#2}}}%
+ {#1}%
+ }%
+ {%
+ \glsifattribute{#1}{glossname}{title}%
+ {%
+ \@glsxtr@do@titlecaps@warn
+ \@glsxtr@accessdisplay
+ {\@glsxtr@glossnamefont{\glsxtrfieldtitlecase{#1}{#2}}}%
+ {#1}%
+ }%
+ {%
+ \glsifattribute{#1}{glossname}{uc}%
+ {%
+ \letcs{\glo@name}{glo@\glsdetoklabel{#1}@#2}%
+ \@glsxtr@accessdisplay
+ {\@glsxtr@glossnamefont{\mfirstucMakeUppercase{\glo@name}}}%
+ {#1}%
+ }%
+ {%
+ \letcs{\glo@name}{glo@\glsdetoklabel{#1}@#2}%
+ \@glsxtr@accessdisplay
+ {\expandafter\@glsxtr@glossnamefont\expandafter{\glo@name}}%
+ {#1}%
+ }%
+ }%
+ }%
+ \glsxtrpostnamehook{#1}%
+ }%
+}
+\newif\if@glsxtr@format@override
+\@glsxtr@format@overridefalse
+\@ifpackageloaded{hyperref}
+{
+ \ifHy@hyperindex
+ \newcommand*{\GlsXtrEnableIndexFormatOverride}{%
+ \@glsxtr@format@overridetrue
+ \appto\theindex{\let\glshypernumber\@firstofone}%
+ }
+ \else
+ \newcommand*{\GlsXtrEnableIndexFormatOverride}{%
+ \@glsxtr@format@overridetrue
+ \appto\theindex{\let\glshypernumber\hyperpage}%
+ }
+ \fi
+}
+{
+ \newcommand*{\GlsXtrEnableIndexFormatOverride}{%
+ \@glsxtr@format@overridetrue
+ }
+}
+\@onlypreamble\GlsXtrEnableIndexFormatOverride
+\newcommand*{\glsxtrdoautoindexname}[2]{%
+ \glshasattribute{#1}{#2}%
+ {%
+ \@glsxtr@autoindex@setname{#1}%
+ \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{#2}}%
+ \if@glsxtr@format@override
+ \ifx\@glsnumberformat\@glsxtr@defaultnumberformat
+ \else
+ \let\@glsxtr@attrval\@glsnumberformat
+ \fi
+ \fi
+ \ifdefstring{\@glsxtr@attrval}{true}%
+ {}%
+ {\protected@eappto\@glo@name{\@glsxtr@autoindex@encap\@glsxtr@attrval}}%
+ \expandafter\glsxtrautoindex\expandafter{\@glo@name}%
+ }%
+ {}%
+}
+\newcommand*{\glsxtrautoindex}{\index}
+\newcommand{\glsxtrautoindexesc}{%
+ \@gls@checkmkidxchars\@glo@sort
+ \@glsxtr@autoindex@doextra@esc\@glo@sort
+}
+\newcommand*{\@glsxtr@autoindex@setname}[1]{%
+ \protected@edef\@glo@name{\glsxtrautoindexentry{#1}}%
+ \glsxtrautoindexassignsort{\@glo@sort}{#1}%
+ \glsxtrautoindexesc
+ \epreto\@glo@name{\@glo@sort\@glsxtr@autoindex@at}%
+}
+\newcommand*{\glsxtrautoindexentry}[1]{\string\glsentryname{#1}}
+\newcommand*{\glsxtrautoindexassignsort}[2]{%
+ \glsletentryfield{#1}{#2}{sort}%
+}
+\newcommand*{\@glsxtr@autoindex@doextra@esc}[1]{%
+ \ifx\@glsxtr@autoindex@esc\@gls@quotechar
+ \else
+ \def\@gls@checkedmkidx{}%
+ \edef\@@glsxtr@checkspch{%
+ \noexpand\@glsxtr@autoindex@escquote\expandonce{#1}%
+ \noexpand\@empty\@glsxtr@autoindex@esc\noexpand\@nnil
+ \@glsxtr@autoindex@esc\noexpand\@empty\noexpand\@glsxtr@endescspch}%
+ \@@glsxtr@checkspch
+ \let#1\@gls@checkedmkidx\relax
+ \fi
+ \ifx\@glsxtr@autoindex@at\@gls@actualchar
+ \else
+ \def\@gls@checkedmkidx{}%
+ \edef\@@glsxtr@checkspch{%
+ \noexpand\@glsxtr@autoindex@escat\expandonce{#1}%
+ \noexpand\@empty\@glsxtr@autoindex@at\noexpand\@nnil
+ \@glsxtr@autoindex@at\noexpand\@empty\noexpand\@glsxtr@endescspch}%
+ \@@glsxtr@checkspch
+ \let#1\@gls@checkedmkidx\relax
+ \fi
+ \ifx\@glsxtr@autoindex@level\@gls@levelchar
+ \else
+ \def\@gls@checkedmkidx{}%
+ \edef\@@glsxtr@checkspch{%
+ \noexpand\@glsxtr@autoindex@esclevel\expandonce{#1}%
+ \noexpand\@empty\@glsxtr@autoindex@level\noexpand\@nnil
+ \@glsxtr@autoindex@level\noexpand\@empty\noexpand\@glsxtr@endescspch}%
+ \@@glsxtr@checkspch
+ \let#1\@gls@checkedmkidx\relax
+ \fi
+ \ifx\@glsxtr@autoindex@encap\@gls@encapchar
+ \else
+ \def\@gls@checkedmkidx{}%
+ \edef\@@glsxtr@checkspch{%
+ \noexpand\@glsxtr@autoindex@escencap\expandonce{#1}%
+ \noexpand\@empty\@glsxtr@autoindex@encap\noexpand\@nnil
+ \@glsxtr@autoindex@encap\noexpand\@empty\noexpand\@glsxtr@endescspch}%
+ \@@glsxtr@checkspch
+ \let#1\@gls@checkedmkidx\relax
+ \fi
+}
+\newcommand*{\@glsxtr@autoindex@at}{}
+\newcommand*{\GlsXtrSetActualChar}[1]{%
+ \gdef\@glsxtr@autoindex@at{#1}%
+ \def\@glsxtr@autoindex@escat##1#1##2#1##3\@glsxtr@endescspch{%
+ \@@glsxtr@autoindex@escspch{#1}{\@glsxtr@autoindex@escat}{##1}{##2}{##3}%
+ }%
+}
+\@onlypreamble\GlsXtrSetActualChar
+\makeatother
+\GlsXtrSetActualChar{@}
+\makeatletter
+\newcommand*{\@glsxtr@autoindex@encap}{}
+\newcommand*{\GlsXtrSetEncapChar}[1]{%
+ \gdef\@glsxtr@autoindex@encap{#1}%
+ \def\@glsxtr@autoindex@escencap##1#1##2#1##3\@glsxtr@endescspch{%
+ \@@glsxtr@autoindex@escspch{#1}{\@glsxtr@autoindex@escencap}{##1}{##2}{##3}%
+ }%
+}
+\GlsXtrSetEncapChar{|}
+\@onlypreamble\GlsXtrSetEncapChar
+\newcommand*{\@glsxtr@autoindex@level}{}
+\newcommand*{\GlsXtrSetLevelChar}[1]{%
+ \gdef\@glsxtr@autoindex@level{#1}%
+ \def\@glsxtr@autoindex@esclevel##1#1##2#1##3\@glsxtr@endescspch{%
+ \@@glsxtr@autoindex@escspch{#1}{\@glsxtr@autoindex@esclevel}{##1}{##2}{##3}%
+ }%
+}
+\GlsXtrSetLevelChar{!}
+\@onlypreamble\GlsXtrSetLevelChar
+\newcommand*{\@glsxtr@autoindex@esc}{"}
+\newcommand*{\GlsXtrSetEscChar}[1]{%
+ \gdef\@glsxtr@autoindex@esc{#1}%
+ \def\@glsxtr@autoindex@escquote##1#1##2#1##3\@glsxtr@endescspch{%
+ \@@glsxtr@autoindex@escspch{#1}{\@glsxtr@autoindex@escquote}{##1}{##2}{##3}%
+ }%
+}
+\GlsXtrSetEscChar{"}
+\@onlypreamble\GlsXtrSetEscChar
+\ifdef\actualchar
+ {\expandafter\GlsXtrSetActualChar\expandafter{\actualchar}}
+ {}
+\ifdef\quotechar
+ {\expandafter\GlsXtrSetEscChar\expandafter{\quotechar}}
+ {}
+\ifdef\levelchar
+ {\expandafter\GlsXtrSetLevelChar\expandafter{\levelchar}}
+ {}
+\ifdef\encapchar
+ {\expandafter\GlsXtrSetEncapChar\expandafter{\encapchar}}
+ {}
+\def\@glsxtr@gobbleto@endescspch#1\@glsxtr@endescspch{}
+\newcommand*{\@@glsxtr@autoindex@escspch}[5]{%
+ \@gls@tmpb=\expandafter{\@gls@checkedmkidx}%
+ \toks@={#3}%
+ \ifx\@nnil#3\relax
+ \def\@@glsxtr@checkspch{\@glsxtr@gobbleto@endescspch#5\@glsxtr@endescspch}%
+ \else
+ \ifx\@nnil#4\relax
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@}%
+ \def\@@glsxtr@checkspch{\@glsxtr@gobbleto@endescspch
+ #4#5\@glsxtr@endescspch}%
+ \else
+ \edef\@gls@checkedmkidx{\the\@gls@tmpb\the\toks@
+ \@glsxtr@autoindex@esc#1}%
+ \def\@@glsxtr@checkspch{#2#5#1\@nnil#1\@glsxtr@endescspch}%
+ \fi
+ \fi
+ \@@glsxtr@checkspch
+}
+\renewcommand*{\Glossentrydesc}[1]{%
+ \glsdoifexistsorwarn{#1}%
+ {%
+ \glssetabbrvfmt{\glscategory{#1}}%
+ \Glsaccessdesc{#1}%
+ }%
+}
+\ifdef\texorpdfstring
+{
+ \renewcommand*{\glossentrysymbol}[1]{%
+ \texorpdfstring{\@glossentrysymbol{#1}}{\glsentrypdfsymbol{#1}}%
+ }
+}
+{
+ \renewcommand*{\glossentrysymbol}[1]{\@glossentrysymbol{#1}}
+}
+\newcommand{\glsentrypdfsymbol}[1]{\glsentrysymbol{#1}}
+\newrobustcmd*{\@glossentrysymbol}[1]{%
+ \glsdoifexistsorwarn{#1}%
+ {%
+ \begingroup
+ \glssetabbrvfmt{\glscategory{#1}}%
+ \glshasattribute{#1}{glosssymbolfont}%
+ {%
+ \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glosssymbolfont}}%
+ \ifcsdef{\@glsxtr@attrval}%
+ {%
+ \letcs{\@glsxtr@glosssymbolfont}{\@glsxtr@attrval}%
+ }%
+ {%
+ \GlossariesExtraWarning{Unknown control sequence name
+ `\@glsxtr@attrval' supplied in glosssymbolfont attribute
+ for entry `#1'. Ignoring}%
+ \let\@glsxtr@glosssymbolfont\@firstofone
+ }%
+ }%
+ {\let\@glsxtr@glosssymbolfont\@firstofone}%
+ \@glsxtr@glosssymbolfont{\glsaccesssymbol{#1}}%
+ \endgroup
+ }%
+}
+\renewcommand*{\Glossentrysymbol}[1]{%
+ \glsdoifexistsorwarn{#1}%
+ {%
+ \glssetabbrvfmt{\glscategory{#1}}%
+ \Glsaccesssymbol{#1}%
+ }%
+}
+\newcommand*{\GlsXtrEnableInitialTagging}{%
+ \@ifstar\s@glsxtr@enabletagging\@glsxtr@enabletagging
+}
+\@onlypreamble\GlsXtrEnableInitialTagging
+\newcommand*{\s@glsxtr@enabletagging}[2]{%
+ \undef#2%
+ \@glsxtr@enabletagging{#1}{#2}%
+}
+\newcommand*{\@glsxtr@enabletagging}[2]{%
+ \@for\@glsxtr@cat:=#1\do
+ {%
+ \ifdefempty\@glsxtr@cat
+ {}%
+ {\glssetcategoryattribute{\@glsxtr@cat}{tagging}{true}}%
+ }%
+ \newrobustcmd*#2[1]{##1}%
+ \def\@glsxtr@taggingcs{#2}%
+ \renewcommand*\@glsxtr@activate@initialtagging{%
+ \let#2\@glsxtr@tag
+ }%
+ \ifundef\@gls@preglossaryhook
+ {\GlossariesExtraWarning{Initial tagging requires at least
+ glossaries.sty v4.19 to work correctly}}%
+ {}%
+}
+\ifundef\mfu@checkword@do
+{
+ \newcommand*{\mfu@checkword@do}[1]{%
+ \ifdefstring{\mfu@checkword@arg}{#1}%
+ {%
+ \let\@mfu@domakefirstuc\@firstofone
+ \listbreak
+ }%
+ {}%
+ }
+ \ifundef\mfu@checkword
+ {
+ \newcommand{\@glsxtr@do@titlecaps@warn}{%
+ \GlossariesExtraWarning{mfirstuc.sty too old. Title Caps
+ support not available}%
+ \let\@glsxtr@do@titlecaps@warn\relax
+ }
+ }
+ {
+ \renewcommand*{\mfu@checkword}[1]{%
+ \def\mfu@checkword@arg{#1}%
+ \let\@mfu@domakefirstuc\makefirstuc
+ \forlistloop\mfu@checkword@do\@mfu@nocaplist
+ }
+ }
+}
+{}% no patch required
+\newcommand*{\@glsxtr@do@titlecaps@warn}{}
+\newcommand*\@glsxtr@activate@initialtagging{}
+\newrobustcmd*{\@glsxtr@tag}[1]{%
+ \glsifattribute{\glscurrententrylabel}{tagging}{true}%
+ {\glsxtrtagfont{#1}}{#1}%
+}
+\newcommand*{\glsxtrtagfont}[1]{\underline{#1}}
+\ifdef\@gls@preglossaryhook
+{
+ \renewcommand*{\@gls@preglossaryhook}{%
+ \@glsxtr@activate@initialtagging
+ \ifundef\@glsxtr@org@postdescription
+ {%
+ \let\@glsxtr@org@postdescription\glspostdescription
+ \renewcommand*{\glspostdescription}{%
+ \ifglsentryexists{\glscurrententrylabel}%
+ {%
+ \glsxtrpostdescription
+ \@glsxtr@org@postdescription
+ }%
+ {}%
+ }%
+ }%
+ {}%
+ \glossxtrsetpopts
+ }%
+}
+{}
+\newcommand*{\glsxtrpostdescription}{%
+ \csuse{glsxtrpostdesc\glscategory{\glscurrententrylabel}}%
+}
+\newcommand*{\glsxtrpostdescgeneral}{}
+\newcommand*{\glsxtrpostdescterm}{}
+\newcommand*{\glsxtrpostdescacronym}{}
+\newcommand*{\glsxtrpostdescabbreviation}{}
+\newcommand*{\glsdefpostdesc}[2]{%
+ \csdef{glsxtrpostdesc#1}{#2}%
+}
+\renewcommand*{\glspostlinkhook}{%
+ \ifglsentryexists{\glslabel}{\glsxtrpostlinkhook}{}%
+}
+\newcommand*{\glsxtrpostlinkhook}{%
+ \glsxtrdiscardperiod{\glslabel}%
+ {\glsxtrpostlinkendsentence}%
+ {\glsxtrifcustomdiscardperiod
+ {\glsxtrifperiod{\glsxtrpostlinkendsentence}{\glsxtrpostlink}}%
+ {\glsxtrpostlink}%
+ }%
+}
+\newcommand*{\glsxtrifcustomdiscardperiod}[2]{#2}
+\newcommand*{\glsxtrpostlink}{%
+ \csuse{glsxtrpostlink\glscategory{\glslabel}}%
+}
+\newcommand*{\glsdefpostlink}[2]{%
+ \ifthenelse{\equal{#1}{}}%
+ {\PackageError{glossaries-extra}
+ {Invalid empty category label in \string\glsdefpostlink}{}}%
+ {\csdef{glsxtrpostlink#1}{#2}}%
+}
+\newcommand*{\glsxtrpostlinkendsentence}{%
+ \ifcsdef{glsxtrpostlink\glscategory{\glslabel}}
+ {%
+ \csuse{glsxtrpostlink\glscategory{\glslabel}}%
+ .\spacefactor\sfcode`\. \relax
+ }%
+ {%
+ \spacefactor\sfcode`\. \relax
+ }%
+}
+\newcommand*{\glsxtrpostlinkAddDescOnFirstUse}{%
+ \glsxtrifwasfirstuse{\space\glsxtrparen{\glsaccessdesc{\glslabel}}}{}%
+}
+\newcommand*{\glsxtrpostlinkAddSymbolOnFirstUse}{%
+ \glsxtrifwasfirstuse
+ {%
+ \ifglshassymbol{\glslabel}%
+ {\space\glsxtrparen{\glsaccesssymbol{\glslabel}}}%
+ {}%
+ }%
+ {}%
+}
+\newcommand*{\glsxtrpostlinkAddSymbolDescOnFirstUse}{%
+ \glsxtrifwasfirstuse
+ {%
+ \space\glsxtrparen
+ {%
+ \ifglshassymbol{\glslabel}%
+ {\glsaccesssymbol{\glslabel}, }%
+ {}%
+ \glsaccessdesc{\glslabel}%
+ }%
+ }%
+ {}%
+}
+\newcommand*{\glsxtrdiscardperiod}[3]{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsifattribute{#1}{retainfirstuseperiod}{true}%
+ {#3}%
+ {%
+ \glsifattribute{#1}{discardperiod}{true}%
+ {%
+ \glsifplural
+ {%
+ \glsifattribute{#1}{pluraldiscardperiod}{true}%
+ {\glsxtrifperiod{#2}{#3}}%
+ {#3}%
+ }%
+ {%
+ \glsxtrifperiod{#2}{#3}%
+ }%
+ }%
+ {#3}%
+ }%
+ }%
+ {%
+ \glsifattribute{#1}{discardperiod}{true}%
+ {%
+ \glsifplural
+ {%
+ \glsifattribute{#1}{pluraldiscardperiod}{true}%
+ {\glsxtrifperiod{#2}{#3}}%
+ {#3}%
+ }%
+ {%
+ \glsxtrifperiod{#2}{#3}%
+ }%
+ }%
+ {#3}%
+ }%
+}
+\newcommand*{\glsxtrifperiod}[1]{\new@ifnextchar.{\@firstoftwo{#1}}}
+\newcommand*{\glsxtr@punclist}{.,:;?!}
+\newcommand*{\glsxtraddpunctuationmark}[1]{\appto\glsxtr@punclist{#1}}
+\newcommand*{\glsxtrsetpunctuationmarks}[1]{\def\glsxtr@punclist{#1}}
+\newcommand*{\glsxtrifnextpunc}[2]{%
+ \def\reserved@a{#1}%
+ \def\reserved@b{#2}%
+ \futurelet\@glspunc@token\glsxtr@ifnextpunc
+}
+\newcommand*{\glsxtr@ifnextpunc}{%
+ \glsxtr@ifpunctoken{\@glspunc@token}{\let\reserved@b\reserved@a}{}%
+ \reserved@b
+}
+\newcommand*{\glsxtr@ifpunctoken}[1]{%
+ \expandafter\@glsxtr@ifpunctoken\expandafter#1\glsxtr@punclist\@nnil
+}
+\def\@glsxtr@ifpunctoken#1#2{%
+ \let\reserved@d=#2%
+ \ifx\reserved@d\@nnil
+ \let\glsxtr@next\@glsxtr@notfoundinlist
+ \else
+ \ifx#1\reserved@d
+ \let\glsxtr@next\@glsxtr@foundinlist
+ \else
+ \let\glsxtr@next\@glsxtr@ifpunctoken
+ \fi
+ \fi
+ \glsxtr@next#1%
+}
+\def\@glsxtr@foundinlist#1\@nnil{\@firstoftwo}
+\def\@glsxtr@notfoundinlist#1{\@secondoftwo}
+\newcommand{\glsxtrdopostpunc}[1]{%
+ \glsxtrifnextpunc{\@glsxtr@swaptwo{#1}}{#1}%
+}
+\newcommand{\@glsxtr@swaptwo}[2]{#2#1}
+\define@key{glsxtrabbrv}{category}{%
+ \protected@edef\glscategorylabel{#1}%
+}
+\define@key{glsxtrabbrv}{shortplural}{%
+ \def\@gls@shortpl{#1}%
+}
+\define@key{glsxtrabbrv}{longplural}{%
+ \def\@gls@longpl{#1}%
+}
+\newtoks\glsshortpltok
+\newtoks\glslongpltok
+\newcommand*{\@glsxtr@insertdots}[2]{%
+ \def#1{}%
+ \@glsxtr@insert@dots#1#2\@nnil
+}
+\newcommand*{\@glsxtr@insert@dots}[2]{%
+ \ifx\@nnil#2\relax
+ \let\@glsxtr@insert@dots@next\@gobble
+ \else
+ \ifx\relax#2\relax
+ \else
+ \appto#1{#2.}%
+ \fi
+ \let\@glsxtr@insert@dots@next\@glsxtr@insert@dots
+ \fi
+ \@glsxtr@insert@dots@next#1%
+}
+\newcommand*{\glsxtrwordsep}{\space}
+\newcommand*{\glsxtrword}[1]{#1}
+\newcommand*{\@glsxtr@markwordseps}[2]{%
+ \def#1{}%
+ \@glsxtr@mark@wordseps#1#2 \@nnil
+}
+\def\@glsxtr@mark@wordseps#1#2 #3{%
+ \ifdefempty{#1}%
+ {\def#1{\protect\glsxtrword{#2}}}%
+ {\appto#1{\protect\glsxtrwordsep\protect\glsxtrword{#2}}}%
+ \ifx\@nnil#3\relax
+ \let\@glsxtr@mark@wordseps@next\relax
+ \else
+ \def\@glsxtr@mark@wordseps@next{%
+ \@glsxtr@mark@wordseps#1#3}%
+ \fi
+ \@glsxtr@mark@wordseps@next
+}
+\newcommand*{\newabbreviation}[4][]{%
+ \glsxtr@newabbreviation{#1}{#2}{#3}{#4}%
+}
+\newcommand*{\glsxtr@newabbreviation}[4]{%
+ \glskeylisttok{#1}%
+ \glslabeltok{#2}%
+ \glsshorttok{#3}%
+ \glslongtok{#4}%
+ \def\glsxtrorgshort{#3}%
+ \def\glsxtrorglong{#4}%
+ \def\ExtraCustomAbbreviationFields{}%
+ \@gls@initaccesskeys
+ \def\glscategorylabel{abbreviation}%
+ \setkeys*{glsxtrabbrv}[shortplural,longplural]{#1}%
+ \ifcsdef{@glsabbrv@current@\glscategorylabel}%
+ {%
+ \let\@glsxtr@orgwarndep\GlsXtrWarnDeprecatedAbbrStyle
+ \let\GlsXtrWarnDeprecatedAbbrStyle\@gobbletwo
+ \glsxtr@applyabbrvstyle{\csname @glsabbrv@current@\glscategorylabel\endcsname}%
+ \let\GlsXtrWarnDeprecatedAbbrStyle\@glsxtr@orgwarndep
+ }%
+ {%
+ \glsxtr@applyabbrvstyle{\@glsabbrv@current@abbreviation}%
+ }%
+ \def\@gls@longpl{#4\glspluralsuffix}%
+ \let\@gls@default@longpl\@gls@longpl
+ \glsifcategoryattribute{\glscategorylabel}{markwords}{true}%
+ {%
+ \@glsxtr@markwordseps\@gls@long{#4}%
+ \expandafter\def\expandafter\@gls@longpl\expandafter
+ {\@gls@long\glspluralsuffix}%
+ \let\@gls@default@longpl\@gls@longpl
+ \expandafter\glslongtok\expandafter{\@gls@long}%
+ }%
+ {}%
+ \glsifcategoryattribute{\glscategorylabel}{markshortwords}{true}%
+ {%
+ \@glsxtr@markwordseps\@gls@short{#3}%
+ }%
+ {%
+ \glsifcategoryattribute{\glscategorylabel}{insertdots}{true}%
+ {%
+ \@glsxtr@insertdots\@gls@short{#3}%
+ \appto\@gls@short{\@}%
+ }%
+ {\def\@gls@short{#3}}%
+ }%
+ \glsifcategoryattribute{\glscategorylabel}{aposplural}{true}%
+ {%
+ \expandafter\def\expandafter\@gls@shortpl\expandafter{\@gls@short
+ '\abbrvpluralsuffix}%
+ }%
+ {%
+ \glsifcategoryattribute{\glscategorylabel}{noshortplural}{true}%
+ {%
+ \let\@gls@shortpl\@gls@short
+ }%
+ {%
+ \expandafter\def\expandafter\@gls@shortpl\expandafter{\@gls@short
+ \abbrvpluralsuffix}%
+ }%
+ }%
+ \expandafter\glsshorttok\expandafter{\@gls@short}%
+ \glsxtrnewabbrevpresetkeyhook{#1}{#2}{#3}%
+ \setkeys*{glsxtrabbrv}[category]{#1}%
+ \let\@gls@org@longpl\@gls@longpl
+ \let\@gls@org@shortpl\@gls@shortpl
+ \ifx\@gls@default@longpl\@gls@longpl
+ \else
+ \glsifcategoryattribute{\glscategorylabel}{markwords}{true}%
+ {%
+ \expandafter\@glsxtr@markwordseps\expandafter\@gls@longpl\expandafter
+ {\@gls@longpl}%
+ }%
+ {}%
+ \fi
+ \expandafter\glsshortpltok\expandafter{\@gls@shortpl}%
+ \expandafter\glslongpltok\expandafter{\@gls@longpl}%
+ \@gls@setup@default@access
+ \newabbreviationhook
+ \protected@edef\@do@newglossaryentry{%
+ \noexpand\newglossaryentry{\the\glslabeltok}%
+ {%
+ type=\glsxtrabbrvtype,%
+ category=abbreviation,%
+ short={\the\glsshorttok},%
+ shortplural={\the\glsshortpltok},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongpltok},%
+ name={\the\glsshorttok},%
+ \CustomAbbreviationFields,%
+ \ExtraCustomAbbreviationFields
+ \the\glskeylisttok
+ }%
+ }%
+ \@do@newglossaryentry
+ \@glsxtr@addabbreviationlist{\glsentrytype{\the\glslabeltok}}%
+ \GlsXtrPostNewAbbreviation
+}
+\newcommand*{\glsxtrnewabbrevpresetkeyhook}[3]{}
+\newcommand*{\GlsXtrPostNewAbbreviation}{}
+\newcommand*{\newabbreviationhook}{}
+\newcommand*{\CustomAbbreviationFields}{}
+\newcommand*{\glsxtrparen}[1]{(#1)}
+\newcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstlongfont{\glsaccesslong{#1}}#2\glsxtrfullsep{#1}%
+ \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshort{#1}}}%
+}
+\newcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstlongfont{\Glsaccesslong{#1}}#2\glsxtrfullsep{#1}%
+ \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshort{#1}}}%
+}
+\newcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstlongfont{\glsaccesslongpl{#1}}#2\glsxtrfullsep{#1}%
+ \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshortpl{#1}}}%
+}
+\newcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstlongfont{\Glsaccesslongpl{#1}}#2\glsxtrfullsep{#1}%
+ \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshortpl{#1}}}%
+}
+\newcommand*{\glsxtrfullsep}[1]{\space}
+\newcommand*{\glsxtrinlinefullformat}{\glsxtrfullformat}
+\newcommand*{\Glsxtrinlinefullformat}{\Glsxtrfullformat}
+\newcommand*{\glsxtrinlinefullplformat}{\glsxtrfullplformat}
+\newcommand*{\Glsxtrinlinefullplformat}{\Glsxtrfullplformat}
+\renewcommand*{\glsentryfull}[1]{\glsxtrinlinefullformat{#1}{}}
+\renewcommand*{\Glsentryfull}[1]{\Glsxtrinlinefullformat{#1}{}}
+\renewcommand*{\glsentryfullpl}[1]{\glsxtrinlinefullplformat{#1}{}}
+\renewcommand*{\Glsentryfullpl}[1]{\Glsxtrinlinefullplformat{#1}{}}
+\newcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{#1}}
+\newcommand*{\glsfirstabbrvdefaultfont}[1]{\glsabbrvdefaultfont{#1}}
+\newcommand*{\glsabbrvfont}[1]{\glsabbrvdefaultfont{#1}}
+\newcommand*{\glsabbrvdefaultfont}[1]{#1}
+\newcommand*{\glslongfont}[1]{\glslongdefaultfont{#1}}
+\newcommand*{\glslongdefaultfont}[1]{#1}
+\newcommand*{\glsfirstlongfont}[1]{\glslongfont{#1}}
+\newcommand*{\glsfirstlongdefaultfont}[1]{\glslongdefaultfont{#1}}
+\newcommand*{\glsxtrabbrvpluralsuffix}{\glspluralsuffix}
+\newcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}
+\newrobustcmd*{\glsxtrfull}{\@gls@hyp@opt\ns@glsxtrfull}
+\newcommand*\ns@glsxtrfull[2][]{%
+ \new@ifnextchar[{\@glsxtr@full{#1}{#2}}%
+ {\@glsxtr@full{#1}{#2}[]}%
+}
+\def\@glsxtr@full#1#2[#3]{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \glsdoifexists{#2}%
+ {%
+ \glssetabbrvfmt{\glscategory{#2}}%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsifplural\@secondoftwo
+ \let\glscapscase\@firstofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{\glsxtrinlinefullformat{#2}{#3}}%
+ \glsxtrsetupfulldefs
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\newcommand*{\glsxtrsetupfulldefs}{%
+ \let\glsxtrifwasfirstuse\@firstoftwo
+}
+\newrobustcmd*{\Glsxtrfull}{\@gls@hyp@opt\ns@Glsxtrfull}
+\newcommand*\ns@Glsxtrfull[2][]{%
+ \new@ifnextchar[{\@Glsxtr@full{#1}{#2}}%
+ {\@Glsxtr@full{#1}{#2}[]}%
+}
+\def\@Glsxtr@full#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \glssetabbrvfmt{\glscategory{#2}}%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsifplural\@secondoftwo
+ \let\glscapscase\@secondofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{\Glsxtrinlinefullformat{#2}{#3}}%
+ \glsxtrsetupfulldefs
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\newrobustcmd*{\GLSxtrfull}{\@gls@hyp@opt\ns@GLSxtrfull}
+\newcommand*\ns@GLSxtrfull[2][]{%
+ \new@ifnextchar[{\@GLSxtr@full{#1}{#2}}%
+ {\@GLSxtr@full{#1}{#2}[]}%
+}
+\def\@GLSxtr@full#1#2[#3]{%
+ \glsdoifexists{#2}%
+ {%
+ \glssetabbrvfmt{\glscategory{#2}}%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsifplural\@secondoftwo
+ \let\glscapscase\@thirdofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{\mfirstucMakeUppercase{\glsxtrinlinefullformat{#2}{#3}}}%
+ \glsxtrsetupfulldefs
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\newrobustcmd*{\glsxtrfullpl}{\@gls@hyp@opt\ns@glsxtrfullpl}
+\newcommand*\ns@glsxtrfullpl[2][]{%
+ \new@ifnextchar[{\@glsxtr@fullpl{#1}{#2}}%
+ {\@glsxtr@fullpl{#1}{#2}[]}%
+}
+\def\@glsxtr@fullpl#1#2[#3]{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \glsdoifexists{#2}%
+ {%
+ \glssetabbrvfmt{\glscategory{#2}}%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsifplural\@firstoftwo
+ \let\glscapscase\@firstofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{\glsxtrinlinefullplformat{#2}{#3}}%
+ \glsxtrsetupfulldefs
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\newrobustcmd*{\Glsxtrfullpl}{\@gls@hyp@opt\ns@Glsxtrfullpl}
+\newcommand*\ns@Glsxtrfullpl[2][]{%
+ \new@ifnextchar[{\@Glsxtr@fullpl{#1}{#2}}%
+ {\@Glsxtr@fullpl{#1}{#2}[]}%
+}
+\def\@Glsxtr@fullpl#1#2[#3]{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \glsdoifexists{#2}%
+ {%
+ \glssetabbrvfmt{\glscategory{#2}}%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsifplural\@firstoftwo
+ \let\glscapscase\@secondofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{\Glsxtrinlinefullplformat{#2}{#3}}%
+ \glsxtrsetupfulldefs
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\newrobustcmd*{\GLSxtrfullpl}{\@gls@hyp@opt\ns@GLSxtrfullpl}
+\newcommand*\ns@GLSxtrfullpl[2][]{%
+ \new@ifnextchar[{\@GLSxtr@fullpl{#1}{#2}}%
+ {\@GLSxtr@fullpl{#1}{#2}[]}%
+}
+\def\@GLSxtr@fullpl#1#2[#3]{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \glsdoifexists{#2}%
+ {%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsifplural\@firstoftwo
+ \let\glscapscase\@thirdofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \mfirstucMakeUppercase{\glsxtrinlinefullplformat{#2}{#3}}}%
+ \glsxtrsetupfulldefs
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\newrobustcmd*{\glsxtrshort}{\@gls@hyp@opt\ns@glsxtrshort}
+\newcommand*{\ns@glsxtrshort}[2][]{%
+ \new@ifnextchar[{\@glsxtrshort{#1}{#2}}{\@glsxtrshort{#1}{#2}[]}%
+}
+\def\@glsxtrshort#1#2[#3]{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \glsdoifexists{#2}%
+ {%
+ \glssetabbrvfmt{\glscategory{#2}}%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@secondoftwo
+ \let\glscapscase\@firstofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \glsabbrvfont{\glsaccessshort{#2}\ifglsxtrinsertinside#3\fi}%
+ \ifglsxtrinsertinside\else#3\fi
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\newrobustcmd*{\Glsxtrshort}{\@gls@hyp@opt\ns@Glsxtrshort}
+\newcommand*{\ns@Glsxtrshort}[2][]{%
+ \new@ifnextchar[{\@Glsxtrshort{#1}{#2}}{\@Glsxtrshort{#1}{#2}[]}%
+}
+\def\@Glsxtrshort#1#2[#3]{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \glsdoifexists{#2}%
+ {%
+ \glssetabbrvfmt{\glscategory{#2}}%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@secondoftwo
+ \let\glscapscase\@secondofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \glsabbrvfont{\Glsaccessshort{#2}\ifglsxtrinsertinside#3\fi}%
+ \ifglsxtrinsertinside\else#3\fi
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\newrobustcmd*{\GLSxtrshort}{\@gls@hyp@opt\ns@GLSxtrshort}
+\newcommand*{\ns@GLSxtrshort}[2][]{%
+ \new@ifnextchar[{\@GLSxtrshort{#1}{#2}}{\@GLSxtrshort{#1}{#2}[]}%
+}
+\def\@GLSxtrshort#1#2[#3]{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \glsdoifexists{#2}%
+ {%
+ \glssetabbrvfmt{\glscategory{#2}}%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@secondoftwo
+ \let\glscapscase\@thirdofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \mfirstucMakeUppercase
+ {\glsabbrvfont{\glsaccessshort{#2}\ifglsxtrinsertinside#3\fi}%
+ \ifglsxtrinsertinside\else#3\fi
+ }%
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\newrobustcmd*{\glsxtrlong}{\@gls@hyp@opt\ns@glsxtrlong}
+\newcommand*{\ns@glsxtrlong}[2][]{%
+ \new@ifnextchar[{\@glsxtrlong{#1}{#2}}{\@glsxtrlong{#1}{#2}[]}%
+}
+\def\@glsxtrlong#1#2[#3]{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \glsdoifexists{#2}%
+ {%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@secondoftwo
+ \let\glscapscase\@firstofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \glslongfont{\glsaccesslong{#2}\ifglsxtrinsertinside#3\fi}%
+ \ifglsxtrinsertinside\else#3\fi
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\newrobustcmd*{\Glsxtrlong}{\@gls@hyp@opt\ns@Glsxtrlong}
+\newcommand*{\ns@Glsxtrlong}[2][]{%
+ \new@ifnextchar[{\@Glsxtrlong{#1}{#2}}{\@Glsxtrlong{#1}{#2}[]}%
+}
+\def\@Glsxtrlong#1#2[#3]{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \glsdoifexists{#2}%
+ {%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@secondoftwo
+ \let\glscapscase\@secondofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \glslongfont{\Glsaccesslong{#2}\ifglsxtrinsertinside#3\fi}%
+ \ifglsxtrinsertinside\else#3\fi
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\newrobustcmd*{\GLSxtrlong}{\@gls@hyp@opt\ns@GLSxtrlong}
+\newcommand*{\ns@GLSxtrlong}[2][]{%
+ \new@ifnextchar[{\@GLSxtrlong{#1}{#2}}{\@GLSxtrlong{#1}{#2}[]}%
+}
+\def\@GLSxtrlong#1#2[#3]{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \glsdoifexists{#2}%
+ {%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@secondoftwo
+ \let\glscapscase\@thirdofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \mfirstucMakeUppercase
+ {\glslongfont{\glsaccesslong{#2}\ifglsxtrinsertinside#3\fi}%
+ \ifglsxtrinsertinside\else#3\fi
+ }%
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\newrobustcmd*{\glsxtrshortpl}{\@gls@hyp@opt\ns@glsxtrshortpl}
+\newcommand*{\ns@glsxtrshortpl}[2][]{%
+ \new@ifnextchar[{\@glsxtrshortpl{#1}{#2}}{\@glsxtrshortpl{#1}{#2}[]}%
+}
+\def\@glsxtrshortpl#1#2[#3]{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \glsdoifexists{#2}%
+ {%
+ \glssetabbrvfmt{\glscategory{#2}}%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@firstoftwo
+ \let\glscapscase\@firstofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \glsabbrvfont{\glsaccessshortpl{#2}\ifglsxtrinsertinside#3\fi}%
+ \ifglsxtrinsertinside\else#3\fi
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\newrobustcmd*{\Glsxtrshortpl}{\@gls@hyp@opt\ns@Glsxtrshortpl}
+\newcommand*{\ns@Glsxtrshortpl}[2][]{%
+ \new@ifnextchar[{\@Glsxtrshortpl{#1}{#2}}{\@Glsxtrshortpl{#1}{#2}[]}%
+}
+\def\@Glsxtrshortpl#1#2[#3]{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \glsdoifexists{#2}%
+ {%
+ \glssetabbrvfmt{\glscategory{#2}}%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@firstoftwo
+ \let\glscapscase\@secondofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \glsabbrvfont{\Glsaccessshortpl{#2}\ifglsxtrinsertinside#3\fi}%
+ \ifglsxtrinsertinside\else#3\fi
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\newrobustcmd*{\GLSxtrshortpl}{\@gls@hyp@opt\ns@GLSxtrshortpl}
+\newcommand*{\ns@GLSxtrshortpl}[2][]{%
+ \new@ifnextchar[{\@GLSxtrshortpl{#1}{#2}}{\@GLSxtrshortpl{#1}{#2}[]}%
+}
+\def\@GLSxtrshortpl#1#2[#3]{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \glsdoifexists{#2}%
+ {%
+ \glssetabbrvfmt{\glscategory{#2}}%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@firstoftwo
+ \let\glscapscase\@thirdofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \mfirstucMakeUppercase
+ {\glsabbrvfont{\glsaccessshortpl{#2}\ifglsxtrinsertinside#3\fi}%
+ \ifglsxtrinsertinside\else#3\fi
+ }%
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\newrobustcmd*{\glsxtrlongpl}{\@gls@hyp@opt\ns@glsxtrlongpl}
+\newcommand*{\ns@glsxtrlongpl}[2][]{%
+ \new@ifnextchar[{\@glsxtrlongpl{#1}{#2}}{\@glsxtrlongpl{#1}{#2}[]}%
+}
+\def\@glsxtrlongpl#1#2[#3]{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \glsdoifexists{#2}%
+ {%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@firstoftwo
+ \let\glscapscase\@firstofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \glslongfont{\glsaccesslongpl{#2}\ifglsxtrinsertinside#3\fi}%
+ \ifglsxtrinsertinside\else#3\fi
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\newrobustcmd*{\Glsxtrlongpl}{\@gls@hyp@opt\ns@Glsxtrlongpl}
+\newcommand*{\ns@Glsxtrlongpl}[2][]{%
+ \new@ifnextchar[{\@Glsxtrlongpl{#1}{#2}}{\@Glsxtrlongpl{#1}{#2}[]}%
+}
+\def\@Glsxtrlongpl#1#2[#3]{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \glsdoifexists{#2}%
+ {%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@firstoftwo
+ \let\glscapscase\@secondofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \glslongfont{\Glsaccesslongpl{#2}\ifglsxtrinsertinside#3\fi}%
+ \ifglsxtrinsertinside\else#3\fi
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\newrobustcmd*{\GLSxtrlongpl}{\@gls@hyp@opt\ns@GLSxtrlongpl}
+\newcommand*{\ns@GLSxtrlongpl}[2][]{%
+ \new@ifnextchar[{\@GLSxtrlongpl{#1}{#2}}{\@GLSxtrlongpl{#1}{#2}[]}%
+}
+\def\@GLSxtrlongpl#1#2[#3]{%
+ \@glsxtr@record{#1}{#2}{glslink}%
+ \glsdoifexists{#2}%
+ {%
+ \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsifplural\@firstoftwo
+ \let\glscapscase\@thirdofthree
+ \let\glsinsert\@empty
+ \def\glscustomtext{%
+ \mfirstucMakeUppercase
+ {\glslongfont{\glsaccesslongpl{#2}\ifglsxtrinsertinside#3\fi}%
+ \ifglsxtrinsertinside\else#3\fi
+ }%
+ }%
+ \@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
+ }%
+ \glspostlinkhook
+}
+\newcommand*{\glssetabbrvfmt}[1]{%
+ \ifcsdef{@glsabbrv@current@#1}%
+ {\glsxtr@applyabbrvfmt{\csname @glsabbrv@current@#1\endcsname}}%
+ {\glsxtr@applyabbrvfmt{\@glsabbrv@current@abbreviation}}%
+}
+\newrobustcmd*{\glsuseabbrvfont}[2]{{\glssetabbrvfmt{#2}\glsabbrvfont{#1}}}
+\newrobustcmd*{\glsuselongfont}[2]{{\glssetabbrvfmt{#2}\glslongfont{#1}}}
+\newcommand*{\glsxtrgenabbrvfmt}{%
+ \ifdefempty\glscustomtext
+ {%
+ \ifglsused\glslabel
+ {%
+ \glsifplural
+ {%
+ \glscapscase
+ {%
+ \glsxtrsubsequentplfmt{\glslabel}{\glsinsert}%
+ }%
+ {%
+ \Glsxtrsubsequentplfmt{\glslabel}{\glsinsert}%
+ }%
+ {%
+ \mfirstucMakeUppercase
+ {\glsxtrsubsequentplfmt{\glslabel}{\glsinsert}}%
+ }%
+ }%
+ {%
+ \glscapscase
+ {%
+ \glsxtrsubsequentfmt{\glslabel}{\glsinsert}%
+ }%
+ {%
+ \Glsxtrsubsequentfmt{\glslabel}{\glsinsert}%
+ }%
+ {%
+ \mfirstucMakeUppercase
+ {\glsxtrsubsequentfmt{\glslabel}{\glsinsert}}%
+ }%
+ }%
+ }%
+ {%
+ \glsifplural
+ {%
+ \glscapscase
+ {%
+ \glsxtrfullplformat{\glslabel}{\glsinsert}%
+ }%
+ {%
+ \Glsxtrfullplformat{\glslabel}{\glsinsert}%
+ }%
+ {%
+ \mfirstucMakeUppercase
+ {\glsxtrfullplformat{\glslabel}{\glsinsert}}%
+ }%
+ }%
+ {%
+ \glscapscase
+ {%
+ \glsxtrfullformat{\glslabel}{\glsinsert}%
+ }%
+ {%
+ \Glsxtrfullformat{\glslabel}{\glsinsert}%
+ }%
+ {%
+ \mfirstucMakeUppercase
+ {\glsxtrfullformat{\glslabel}{\glsinsert}}%
+ }%
+ }%
+ }%
+ }%
+ {%
+ \glscustomtext
+ }%
+}
+\newcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glsabbrvfont{\glsaccessshort{#1}\ifglsxtrinsertinside #2\fi}%
+ \ifglsxtrinsertinside \else#2\fi
+}
+\let\glsxtrdefaultsubsequentfmt\glsxtrsubsequentfmt
+\newcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glsabbrvfont{\glsaccessshortpl{#1}\ifglsxtrinsertinside #2\fi}%
+ \ifglsxtrinsertinside \else#2\fi
+}
+\let\glsxtrdefaultsubsequentplfmt\glsxtrsubsequentplfmt
+\newcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \glsabbrvfont{\Glsaccessshort{#1}\ifglsxtrinsertinside #2\fi}%
+ \ifglsxtrinsertinside \else#2\fi
+}
+\let\Glsxtrdefaultsubsequentfmt\Glsxtrsubsequentfmt
+\newcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \glsabbrvfont{\Glsaccessshortpl{#1}\ifglsxtrinsertinside #2\fi}%
+ \ifglsxtrinsertinside \else#2\fi
+}
+\let\Glsxtrdefaultsubsequentplfmt\Glsxtrsubsequentplfmt
+\newcommand*{\setabbreviationstyle}[2][abbreviation]{%
+ \ifcsundef{@glsabbrv@dispstyle@setup@#2}
+ {%
+ \PackageError{glossaries-extra}{Undefined abbreviation style `#2'}{}%
+ }%
+ {%
+ \ifcsstring{@glsabbrv@current@#1}{#2}%
+ {%
+ }%
+ {%
+ \def\@glsxtr@dostylewarn{}%
+ \glsforeachincategory{#1}{\@gls@type}{\@gls@label}%
+ {%
+ \def\@glsxtr@dostylewarn{\GlossariesWarning{Abbreviation
+ style has been switched \MessageBreak
+ for category `#1', \MessageBreak
+ but there have already been entries \MessageBreak
+ defined for this category. Unwanted \MessageBreak
+ side-effects may result}}%
+ \@endfortrue
+ }%
+ \@glsxtr@dostylewarn
+ \csdef{@glsabbrv@current@#1}{#2}%
+ \protected@edef\glscategorylabel{#1}%
+ \glsxtr@applyabbrvstyle{#2}%
+ }%
+ }%
+}
+\newcommand*{\glsxtr@applyabbrvstyle}[1]{%
+ \csuse{@glsabbrv@dispstyle@setup@#1}%
+ \csuse{@glsabbrv@dispstyle@fmts@#1}%
+}
+\newcommand*{\glsxtr@applyabbrvfmt}[1]{%
+ \csuse{@glsabbrv@dispstyle@fmts@#1}%
+}
+\newcommand*{\newabbreviationstyle}[3]{%
+ \ifcsdef{@glsabbrv@dispstyle@setup@#1}
+ {%
+ \PackageError{glossaries-extra}{Abbreviation style `#1' already
+ defined}{}%
+ }%
+ {%
+ \csdef{@glsabbrv@dispstyle@setup@#1}{%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{}%
+ #2}%
+ \csdef{@glsabbrv@dispstyle@fmts@#1}{%
+ \renewcommand*{\glsxtrinlinefullformat}{\glsxtrfullformat}%
+ \renewcommand*{\Glsxtrinlinefullformat}{\Glsxtrfullformat}%
+ \renewcommand*{\glsxtrinlinefullplformat}{\glsxtrfullplformat}%
+ \renewcommand*{\Glsxtrinlinefullplformat}{\Glsxtrfullplformat}%
+ \let\glsxtrsubsequentfmt\glsxtrdefaultsubsequentfmt
+ \let\glsxtrsubsequentplfmt\glsxtrdefaultsubsequentplfmt
+ \let\Glsxtrsubsequentfmt\Glsxtrdefaultsubsequentfmt
+ \let\Glsxtrsubsequentplfmt\Glsxtrdefaultsubsequentplfmt
+ #3}%
+ }%
+}
+\newcommand*{\renewabbreviationstyle}[3]{%
+ \ifcsundef{@glsabbrv@dispstyle@setup@#1}
+ {%
+ \PackageError{glossaries-extra}{Abbreviation style `#1' not defined}{}%
+ }%
+ {%
+ \csdef{@glsabbrv@dispstyle@setup@#1}{%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{}%
+ #2}%
+ \csdef{@glsabbrv@dispstyle@fmts@#1}{%
+ \renewcommand*{\glsxtrinlinefullformat}{\glsxtrfullformat}%
+ \renewcommand*{\Glsxtrinlinefullformat}{\Glsxtrfullformat}%
+ \renewcommand*{\glsxtrinlinefullplformat}{\glsxtrfullplformat}%
+ \renewcommand*{\Glsxtrinlinefullplformat}{\Glsxtrfullplformat}%
+ #3}%
+ }%
+}
+\newcommand*{\letabbreviationstyle}[2]{%
+ \csletcs{@glsabbrv@dispstyle@setup@#1}{@glsabbrv@dispstyle@setup@#2}%
+ \csletcs{@glsabbrv@dispstyle@fmts@#1}{@glsabbrv@dispstyle@fmts@#2}%
+}
+\newcommand*{\@glsxtr@deprecated@abbrstyle}[2]{%
+ \csdef{@glsabbrv@dispstyle@setup@#1}{%
+ \GlsXtrWarnDeprecatedAbbrStyle{#1}{#2}%
+ \csuse{@glsabbrv@dispstyle@setup@#2}%
+ }%
+ \csletcs{@glsabbrv@dispstyle@fmts@#1}{@glsabbrv@dispstyle@fmts@#2}%
+}
+\newcommand*{\GlsXtrWarnDeprecatedAbbrStyle}[2]{%
+ \GlossariesExtraWarning{Deprecated abbreviation style name `#1',
+ use `#2' instead}%
+}
+\newcommand*{\GlsXtrUseAbbrStyleSetup}[1]{%
+ \ifcsundef{@glsabbrv@dispstyle@setup@#1}%
+ {%
+ \PackageError{glossaries-extra}%
+ {Unknown abbreviation style definitions `#1'}{}%
+ }%
+ {%
+ \csname @glsabbrv@dispstyle@setup@#1\endcsname
+ }%
+}
+\newcommand*{\GlsXtrUseAbbrStyleFmts}[1]{%
+ \ifcsundef{@glsabbrv@dispstyle@fmts@#1}%
+ {%
+ \PackageError{glossaries-extra}%
+ {Unknown abbreviation style formats `#1'}{}%
+ }%
+ {%
+ \csname @glsabbrv@dispstyle@fmts@#1\endcsname
+ }%
+}
+\newif\ifglsxtrinsertinside
+\glsxtrinsertinsidefalse
+\newcommand*{\glsxtrlongshortname}{%
+ \protect\glsabbrvfont{\the\glsshorttok}%
+}
+\newabbreviationstyle{long-short}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlongfont{\the\glslongtok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvfont{\the\glsshorttok}}},%
+ firstplural={\protect\glsfirstlongfont{\the\glslongpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvfont{\the\glsshortpltok}}},%
+ plural={\protect\glsabbrvfont{\the\glsshortpltok}},%
+ text={\protect\glsabbrvfont{\the\glsshorttok}},%
+ description={\the\glslongtok}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstlongfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstlongfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstlongfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstlongfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvfont{\glsaccessshortpl{##1}}}%
+ }%
+}
+\setabbreviationstyle{long-short}
+\newcommand*{\glsxtrlongshortdescsort}{%
+ \expandonce\glsxtrorglong\space (\expandonce\glsxtrorgshort)%
+}
+\newcommand*{\glsxtrlongshortdescname}{%
+ \protect\glslongfont{\the\glslongtok}
+ \glsxtrparen{\protect\glsabbrvfont{\the\glsshorttok}}%
+}
+\newabbreviationstyle{long-short-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortdescname},
+ sort={\glsxtrlongshortdescsort},%
+ first={\protect\glsfirstlongfont{\the\glslongtok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvfont{\the\glsshorttok}}},%
+ firstplural={\protect\glsfirstlongfont{\the\glslongpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvfont{\the\glsshortpltok}}},%
+ text={\protect\glsabbrvfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-short}%
+}
+\newcommand*{\glsxtrshortlongname}{%
+ \protect\glsabbrvfont{\the\glsshorttok}%
+}
+\newabbreviationstyle{short-long}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongname},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\protect\glsfirstabbrvfont{\the\glsshorttok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlongfont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvfont{\the\glsshortpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlongfont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfont{\glsaccesslongpl{##1}}}%
+ }%
+}
+\newcommand*{\glsxtrshortlongdescsort}{\the\glsshorttok}
+\newcommand*{\glsxtrshortlongdescname}{%
+ \protect\glsabbrvfont{\the\glsshorttok}
+ \glsxtrparen{\protect\glslongfont{\the\glslongtok}}%
+}
+\newabbreviationstyle{short-long-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongdescname},
+ sort={\glsxtrshortlongdescsort},
+ first={\protect\glsfirstabbrvfont{\the\glsshorttok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlongfont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvfont{\the\glsshortpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlongfont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-long}%
+}
+\newcommand*{\glsfirstlongfootnotefont}[1]{\glslongfootnotefont{#1}}%
+\newcommand*{\glslongfootnotefont}[1]{\glslongdefaultfont{#1}}%
+\newcommand*{\glsxtrabbrvfootnote}[2]{\footnote{#2}}
+\newcommand*{\glsxtrfootnotename}{%
+ \protect\glsabbrvfont{\the\glsshorttok}%
+}
+\newabbreviationstyle{footnote}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotename},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\protect\glsfirstabbrvfont{\the\glsshorttok}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvfont{\the\glsshortpltok}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+}
+\letabbreviationstyle{short-footnote}{footnote}
+\newcommand*{\glsxtrfootnotedescname}{%
+ \protect\glsabbrvfont{\the\glsshorttok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\protect\glslongfont{\the\glslongtok}}%
+}
+\newcommand*{\glsxtrfootnotedescsort}{\the\glsshorttok}
+\newabbreviationstyle{short-footnote-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotedescname},
+ sort={\glsxtrfootnotedescsort},
+ first={\protect\glsfirstabbrvfont{\the\glsshorttok}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvfont{\the\glsshortpltok}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{footnote}%
+}
+\letabbreviationstyle{footnote-desc}{short-footnote-desc}
+\newabbreviationstyle{postfootnote}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotename},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\protect\glsfirstabbrvfont{\the\glsshorttok}},%
+ firstplural={\protect\glsfirstabbrvfont{\the\glsshortpltok}},%
+ text={\protect\glsabbrvfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtrdopostpunc{\protect\glsxtrabbrvfootnote{\glslabel}%
+ {\glsfirstlongfootnotefont{\glsentrylong{\glslabel}}}}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+ \renewcommand*{\glsxtrsetupfulldefs}{%
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+}
+\letabbreviationstyle{short-postfootnote}{postfootnote}
+\newabbreviationstyle{short-postfootnote-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotedescname},
+ sort={\glsxtrfootnotedescsort},
+ first={\protect\glsfirstabbrvfont{\the\glsshorttok}},%
+ firstplural={\protect\glsfirstabbrvfont{\the\glsshortpltok}},%
+ text={\protect\glsabbrvfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtrdopostpunc{\protect\glsxtrabbrvfootnote{\glslabel}%
+ {\glsfirstlongfootnotefont{\glsentrylong{\glslabel}}}}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+ \renewcommand*{\glsxtrsetupfulldefs}{%
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{postfootnote}%
+}
+\letabbreviationstyle{postfootnote-desc}{short-postfootnote-desc}
+\newcommand*{\glsxtrshortnolongname}{%
+ \protect\glsabbrvfont{\the\glsshorttok}%
+}
+\newabbreviationstyle{short}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortnolongname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstabbrvfont{\the\glsshorttok}},
+ firstplural={\protect\glsfirstabbrvfont{\the\glsshortpltok}},
+ text={\protect\glsabbrvfont{\the\glsshorttok}},
+ plural={\protect\glsabbrvfont{\the\glsshortpltok}},
+ description={\the\glslongtok}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstabbrvfont{\glsaccessshort{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstabbrvfont{\glsaccessshortpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstabbrvfont{\glsaccessshort{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfont{\Glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstabbrvfont{\glsaccessshortpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfont{\Glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+}
+\setabbreviationstyle[acronym]{short}
+\letabbreviationstyle{short-nolong}{short}
+\newabbreviationstyle{short-nolong-noreg}%
+{%
+ \GlsXtrUseAbbrStyleSetup{short-nolong}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-nolong}%
+}
+\newcommand*{\glsxtrshortdescname}{%
+ \protect\glsabbrvfont{\the\glsshorttok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\protect\glslongfont{\the\glslongtok}}%
+}
+\newabbreviationstyle{short-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortdescname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstabbrvfont{\the\glsshorttok}},
+ firstplural={\protect\glsfirstabbrvfont{\the\glsshortpltok}},
+ text={\protect\glsabbrvfont{\the\glsshorttok}},
+ plural={\protect\glsabbrvfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+}
+\letabbreviationstyle{short-nolong-desc}{short-desc}
+\newabbreviationstyle{short-nolong-desc-noreg}%
+{%
+ \GlsXtrUseAbbrStyleSetup{short-nolong-desc}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-nolong-desc}%
+}
+\newabbreviationstyle{nolong-short}%
+{%
+ \GlsXtrUseAbbrStyleSetup{short-nolong}%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-nolong}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstlongfont{\glsaccesslong{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstlongfont{\glsaccesslongpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstlongfont{\glsaccesslong{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvfont{\Glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstlongfont{\glsaccesslongpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvfont{\Glsaccessshortpl{##1}}}%
+ }%
+}
+\newabbreviationstyle{nolong-short-noreg}%
+{%
+ \GlsXtrUseAbbrStyleSetup{nolong-short}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{nolong-short}%
+}
+\newcommand*{\glsxtrlongnoshortdescname}{%
+ \protect\glslongfont{\the\glslongtok}%
+}
+\newabbreviationstyle{long-desc}%
+{%
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongnoshortdescname},
+ sort={\the\glslongtok},
+ first={\protect\glsfirstlongfont{\the\glslongtok}},
+ firstplural={\protect\glsfirstlongfont{\the\glslongpltok}},
+ text={\glslongfont{\the\glslongtok}},
+ plural={\glslongfont{\the\glslongpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glslongfont{\glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glslongfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \glslongfont{\Glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \glslongfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstlongfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstlongfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstlongfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstlongfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstlongfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstlongfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+}
+\letabbreviationstyle{long-noshort-desc}{long-desc}
+\newabbreviationstyle{long-noshort-desc-noreg}%
+{%
+ \GlsXtrUseAbbrStyleSetup{long-noshort-desc}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-noshort-desc}%
+}
+\newcommand*{\glsxtrlongnoshortname}{%
+ \protect\glsabbrvfont{\the\glsshorttok}%
+}
+\newabbreviationstyle{long}%
+{%
+ \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongnoshortname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlongfont{\the\glslongtok}},
+ firstplural={\protect\glsfirstlongfont{\the\glslongpltok}},
+ text={\glslongfont{\the\glslongtok}},
+ plural={\glslongfont{\the\glslongpltok}},%
+ description={\the\glslongtok}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-desc}%
+}
+\letabbreviationstyle{long-noshort}{long}
+\newabbreviationstyle{long-noshort-noreg}%
+{%
+ \GlsXtrUseAbbrStyleSetup{long-noshort}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-noshort}%
+}
+\newcommand*{\glsxtrscfont}[1]{\textsc{#1}}
+\newcommand*{\glsabbrvscfont}{\glsxtrscfont}
+\newcommand*{\glsxtrfirstscfont}[1]{\glsabbrvscfont{#1}}
+\newcommand*{\glsfirstabbrvscfont}{\glsxtrfirstscfont}
+\newcommand*{\glsxtrscsuffix}{\protect\glstextup{\glsxtrabbrvpluralsuffix}}
+\newabbreviationstyle{long-short-sc}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlongdefaultfont{\the\glslongtok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvscfont{\the\glsshorttok}}},%
+ firstplural={\protect\glsfirstlongdefaultfont{\the\glslongpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvscfont{\the\glsshortpltok}}},%
+ text={\protect\glsabbrvscfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvscfont{\the\glsshortpltok}},%
+ description={\the\glslongtok}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvscfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvscfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstlongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvscfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstlongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvscfont{\glsaccessshortpl{##1}}}%
+ }%
+}
+\newabbreviationstyle{long-short-sc-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortdescname},
+ sort={\glsxtrlongshortdescsort},%
+ first={\protect\glsfirstlongdefaultfont{\the\glslongtok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvscfont{\the\glsshorttok}}},%
+ firstplural={\protect\glsfirstlongdefaultfont{\the\glslongpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvscfont{\the\glsshortpltok}}},%
+ text={\protect\glsabbrvscfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvscfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-short-sc}%
+}
+\newabbreviationstyle{short-sc-long}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongname},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\protect\glsfirstabbrvscfont{\the\glsshorttok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvscfont{\the\glsshortpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvscfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvscfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvscfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvscfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvscfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvscfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
+ }%
+}
+\newabbreviationstyle{short-sc-long-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongdescname},
+ sort={\glsxtrshortlongdescsort},
+ first={\protect\glsfirstabbrvscfont{\the\glsshorttok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvscfont{\the\glsshortpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvscfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvscfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-sc-long}%
+}
+\newabbreviationstyle{short-sc}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortnolongname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstabbrvscfont{\the\glsshorttok}},
+ firstplural={\protect\glsfirstabbrvscfont{\the\glsshortpltok}},
+ text={\protect\glsabbrvscfont{\the\glsshorttok}},
+ plural={\protect\glsabbrvscfont{\the\glsshortpltok}},
+ description={\the\glslongtok}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstabbrvscfont{\glsaccessshort{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstabbrvscfont{\glsaccessshortpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstabbrvscfont{\Glsaccessshort{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstabbrvscfont{\Glsaccessshortpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvscfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvscfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvscfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvscfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+}
+\letabbreviationstyle{short-sc-nolong}{short-sc}
+\newabbreviationstyle{short-sc-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortdescname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstabbrvscfont{\the\glsshorttok}},
+ firstplural={\protect\glsfirstabbrvscfont{\the\glsshortpltok}},
+ text={\protect\glsabbrvscfont{\the\glsshorttok}},
+ plural={\protect\glsabbrvscfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvscfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvscfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvscfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvscfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvscfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvscfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvscfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvscfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+}
+\letabbreviationstyle{short-sc-nolong-desc}{short-sc-desc}
+\newabbreviationstyle{nolong-short-sc}%
+{%
+ \GlsXtrUseAbbrStyleSetup{short-sc-nolong}%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-sc-nolong}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\glsaccesslong{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvscfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\glsaccesslongpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvscfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\Glsaccesslong{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvscfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\Glsaccesslongpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvscfont{\glsaccessshortpl{##1}}}%
+ }%
+}
+\newabbreviationstyle{long-noshort-sc}%
+{%
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongnoshortname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlongdefaultfont{\the\glslongtok}},
+ firstplural={\protect\glsfirstlongdefaultfont{\the\glslongpltok}},
+ text={\protect\glslongdefaultfont{\the\glslongtok}},
+ plural={\protect\glslongdefaultfont{\the\glslongpltok}},%
+ description={\the\glslongtok}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glslongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glslongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \glslongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \glslongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvscfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvscfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstlongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvscfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvscfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{long-sc}{long-noshort-sc}
+\newabbreviationstyle{long-noshort-sc-desc}%
+{%
+ \GlsXtrUseAbbrStyleSetup{long-noshort-desc}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glslongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glslongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \glslongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \glslongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvscfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvscfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstlongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvscfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvscfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{long-desc-sc}{long-noshort-sc-desc}
+\newabbreviationstyle{short-sc-footnote}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotename},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\protect\glsfirstabbrvscfont{\the\glsshorttok}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvscfont{\the\glsshortpltok}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvscfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvscfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvscfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvscfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvscfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvscfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvscfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvscfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvscfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvscfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{footnote-sc}{short-sc-footnote}
+\newabbreviationstyle{short-sc-footnote-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotedescname},
+ sort={\glsxtrfootnotedescsort},
+ first={\protect\glsfirstabbrvscfont{\the\glsshorttok}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvscfont{\the\glsshortpltok}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvscfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvscfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-sc-footnote}%
+}
+\newabbreviationstyle{short-sc-postfootnote}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotename},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\protect\glsfirstabbrvscfont{\the\glsshorttok}},%
+ firstplural={\protect\glsfirstabbrvscfont{\the\glsshortpltok}},%
+ text={\protect\glsabbrvscfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvscfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtrdopostpunc{\protect\glsxtrabbrvfootnote{\glslabel}%
+ {\glsfirstlongfootnotefont{\glsentrylong{\glslabel}}}}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+ \renewcommand*{\glsxtrsetupfulldefs}{%
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvscfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvscfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvscfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvscfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvscfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvscfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvscfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvscfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{postfootnote-sc}{short-sc-postfootnote}
+\newabbreviationstyle{short-sc-postfootnote-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotedescname},
+ sort={\glsxtrfootnotedescsort},
+ first={\protect\glsfirstabbrvscfont{\the\glsshorttok}},%
+ firstplural={\protect\glsfirstabbrvscfont{\the\glsshortpltok}},%
+ text={\protect\glsabbrvscfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvscfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtrdopostpunc{\protect\glsxtrabbrvfootnote{\glslabel}%
+ {\glsfirstlongfootnotefont{\glsentrylong{\glslabel}}}}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+ \renewcommand*{\glsxtrsetupfulldefs}{%
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-sc-postfootnote}%
+}
+\newcommand*{\glsxtrsmfont}[1]{\textsmaller{#1}}
+\newcommand*{\glsabbrvsmfont}{\glsxtrsmfont}
+\newcommand*{\glsxtrfirstsmfont}[1]{\glsabbrvsmfont{#1}}
+\newcommand*{\glsfirstabbrvsmfont}{\glsxtrfirstsmfont}
+\newcommand*{\glsxtrsmsuffix}{\glsxtrabbrvpluralsuffix}
+\newabbreviationstyle{long-short-sm}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlongdefaultfont{\the\glslongtok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvsmfont{\the\glsshorttok}}},%
+ firstplural={\protect\glsfirstlongdefaultfont{\the\glslongpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvsmfont{\the\glsshortpltok}}},%
+ text={\protect\glsabbrvsmfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvsmfont{\the\glsshortpltok}},%
+ description={\the\glslongtok}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvsmfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvsmfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstlongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvsmfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstlongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvsmfont{\glsaccessshortpl{##1}}}%
+ }%
+}
+\newabbreviationstyle{long-short-sm-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortdescname},
+ sort={\glsxtrlongshortdescsort},%
+ first={\protect\glsfirstlongdefaultfont{\the\glslongtok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvsmfont{\the\glsshorttok}}},%
+ firstplural={\protect\glsfirstlongdefaultfont{\the\glslongpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvsmfont{\the\glsshortpltok}}},%
+ text={\protect\glsabbrvsmfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvsmfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-short-sm}%
+}
+\newabbreviationstyle{short-sm-long}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongname},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\protect\glsfirstabbrvsmfont{\the\glsshorttok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvsmfont{\the\glsshortpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvsmfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvsmfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvsmfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvsmfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvsmfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvsmfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
+ }%
+}
+\newabbreviationstyle{short-sm-long-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongdescname},
+ sort={\glsxtrshortlongdescsort},
+ first={\protect\glsfirstabbrvsmfont{\the\glsshorttok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvsmfont{\the\glsshortpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvsmfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvsmfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-sm-long}%
+}
+\newabbreviationstyle{short-sm}%
+{%
+ \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortnolongname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstabbrvsmfont{\the\glsshorttok}},
+ firstplural={\protect\glsfirstabbrvsmfont{\the\glsshortpltok}},
+ text={\protect\glsabbrvsmfont{\the\glsshorttok}},
+ plural={\protect\glsabbrvsmfont{\the\glsshortpltok}},
+ description={\the\glslongtok}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstabbrvsmfont{\glsaccessshort{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstabbrvsmfont{\glsaccessshortpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstabbrvsmfont{\Glsaccessshort{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstabbrvsmfont{\Glsaccessshortpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvsmfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvsmfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvsmfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvsmfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+}
+\letabbreviationstyle{short-sm-nolong}{short-sm}
+\newabbreviationstyle{short-sm-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortdescname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstabbrvsmfont{\the\glsshorttok}},
+ firstplural={\protect\glsfirstabbrvsmfont{\the\glsshortpltok}},
+ text={\protect\glsabbrvsmfont{\the\glsshorttok}},
+ plural={\protect\glsabbrvsmfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvsmfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvsmfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvsmfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvsmfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvsmfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvsmfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvsmfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvsmfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+}
+\letabbreviationstyle{short-sm-nolong-desc}{short-sm-desc}
+\newabbreviationstyle{nolong-short-sm}%
+{%
+ \GlsXtrUseAbbrStyleSetup{short-sm-nolong}%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-sm-nolong}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\glsaccesslong{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvsmfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\glsaccesslongpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvsmfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\Glsaccesslong{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvsmfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\Glsaccesslongpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvsmfont{\glsaccessshortpl{##1}}}%
+ }%
+}
+\newabbreviationstyle{long-noshort-sm}%
+{%
+ \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongnoshortname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlongdefaultfont{\the\glslongtok}},
+ firstplural={\protect\glsfirstlongdefaultfont{\the\glslongpltok}},
+ text={\protect\glslongdefaultfont{\the\glslongtok}},
+ plural={\protect\glslongdefaultfont{\the\glslongpltok}},%
+ description={\the\glslongtok}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glslongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glslongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \glslongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \glslongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvsmfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvsmfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstlongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvsmfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvsmfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{long-sm}{long-noshort-sm}
+\newabbreviationstyle{long-noshort-sm-desc}%
+{%
+ \GlsXtrUseAbbrStyleSetup{long-noshort-desc}%
+}%
+{%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glslongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glslongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \glslongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \glslongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvsmfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvsmfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstlongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvsmfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvsmfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{long-desc-sm}{long-noshort-sm-desc}
+\newabbreviationstyle{short-sm-footnote}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotename},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\protect\glsfirstabbrvsmfont{\the\glsshorttok}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvsmfont{\the\glsshortpltok}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvsmfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvsmfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvsmfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvsmfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvsmfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvsmfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvsmfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvsmfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvsmfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvsmfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{footnote-sm}{short-sm-footnote}
+\newabbreviationstyle{short-sm-footnote-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotedescname},
+ sort={\glsxtrfootnotedescsort},
+ first={\protect\glsfirstabbrvsmfont{\the\glsshorttok}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvsmfont{\the\glsshortpltok}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvsmfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvsmfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-sm-footnote}%
+}
+\newabbreviationstyle{short-sm-postfootnote}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotename},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\protect\glsfirstabbrvsmfont{\the\glsshorttok}},%
+ firstplural={\protect\glsfirstabbrvsmfont{\the\glsshortpltok}},%
+ text={\protect\glsabbrvsmfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvsmfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtrdopostpunc{\protect\glsxtrabbrvfootnote{\glslabel}%
+ {\glsfirstlongfootnotefont{\glsentrylong{\glslabel}}}}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+ \renewcommand*{\glsxtrsetupfulldefs}{%
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ }%
+}%
+{%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvsmfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvsmfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvsmfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvsmfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvsmfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvsmfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvsmfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvsmfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{postfootnote-sm}{short-sm-postfootnote}
+\newabbreviationstyle{short-sm-postfootnote-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotedescname},
+ sort={\glsxtrfootnotedescsort},
+ first={\protect\glsfirstabbrvsmfont{\the\glsshorttok}},%
+ firstplural={\protect\glsfirstabbrvsmfont{\the\glsshortpltok}},%
+ text={\protect\glsabbrvsmfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvsmfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtrdopostpunc{\protect\glsxtrabbrvfootnote{\glslabel}%
+ {\glsfirstlongfootnotefont{\glsentrylong{\glslabel}}}}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+ \renewcommand*{\glsxtrsetupfulldefs}{%
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-sm-postfootnote}%
+}
+\newcommand*{\glsabbrvemfont}[1]{\emph{#1}}%
+\newcommand*{\glsfirstabbrvemfont}[1]{\glsabbrvemfont{#1}}%
+\newcommand*{\glsxtremsuffix}{\glsxtrabbrvpluralsuffix}
+\newcommand*{\glsfirstlongemfont}[1]{\glslongemfont{#1}}%
+\newcommand*{\glslongemfont}[1]{\emph{#1}}%
+\newabbreviationstyle{long-short-em}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlongdefaultfont{\the\glslongtok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\the\glsshorttok}}},%
+ firstplural={\protect\glsfirstlongdefaultfont{\the\glslongpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\the\glsshortpltok}}},%
+ text={\protect\glsabbrvemfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvemfont{\the\glsshortpltok}},%
+ description={\the\glslongtok}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstlongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstlongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
+ }%
+}
+\newabbreviationstyle{long-short-em-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortdescname},
+ sort={\glsxtrlongshortdescsort},%
+ first={\protect\glsfirstlongdefaultfont{\the\glslongtok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\the\glsshorttok}}},%
+ firstplural={\protect\glsfirstlongdefaultfont{\the\glslongpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\the\glsshortpltok}}},%
+ text={\protect\glsabbrvemfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvemfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-short-em}%
+}
+\newabbreviationstyle{long-em-short-em}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlongemfont{\the\glslongtok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\the\glsshorttok}}},%
+ firstplural={\protect\glsfirstlongemfont{\the\glslongpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\the\glsshortpltok}}},%
+ text={\protect\glsabbrvemfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvemfont{\the\glsshortpltok}},%
+ description={\protect\glslongemfont{\the\glslongtok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongemfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongemfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstlongemfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstlongemfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstlongemfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstlongemfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
+ }%
+}
+\newabbreviationstyle{long-em-short-em-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortdescname},
+ sort={\glsxtrlongshortdescsort},%
+ first={\protect\glsfirstlongemfont{\the\glslongtok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\the\glsshorttok}}},%
+ firstplural={\protect\glsfirstlongemfont{\the\glslongpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\the\glsshortpltok}}},%
+ text={\protect\glsabbrvemfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvemfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-em-short-em}%
+}
+\newabbreviationstyle{short-em-long}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongname},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\protect\glsfirstabbrvemfont{\the\glsshorttok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvemfont{\the\glsshortpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvemfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvemfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvemfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvemfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
+ }%
+}
+\newabbreviationstyle{short-em-long-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongdescname},
+ sort={\glsxtrshortlongdescsort},
+ first={\protect\glsfirstabbrvemfont{\the\glsshorttok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvemfont{\the\glsshortpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvemfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvemfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-em-long}%
+}
+\newabbreviationstyle{short-em-long-em}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongname},
+ sort={\the\glsshorttok},
+ description={\protect\glslongemfont{\the\glslongtok}},%
+ first={\protect\glsfirstabbrvemfont{\the\glsshorttok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlongemfont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvemfont{\the\glsshortpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlongemfont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvemfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvemfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongemfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongemfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongemfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongemfont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvemfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongemfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvemfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongemfont{\glsaccesslongpl{##1}}}%
+ }%
+}
+\newabbreviationstyle{short-em-long-em-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongdescname},%
+ sort={\glsxtrshortlongdescsort},%
+ first={\protect\glsfirstabbrvemfont{\the\glsshorttok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlongemfont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvemfont{\the\glsshortpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlongemfont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvemfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvemfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-em-long-em}%
+}
+\newabbreviationstyle{short-em}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortnolongname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstabbrvemfont{\the\glsshorttok}},
+ firstplural={\protect\glsfirstabbrvemfont{\the\glsshortpltok}},
+ text={\protect\glsabbrvemfont{\the\glsshorttok}},
+ plural={\protect\glsabbrvemfont{\the\glsshortpltok}},
+ description={\the\glslongtok}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstabbrvemfont{\glsaccessshort{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstabbrvemfont{\glsaccessshortpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstabbrvemfont{\Glsaccessshort{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstabbrvemfont{\Glsaccessshortpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+}
+\letabbreviationstyle{short-em-nolong}{short-em}
+\newabbreviationstyle{short-em-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortdescname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstabbrvemfont{\the\glsshorttok}},
+ firstplural={\protect\glsfirstabbrvemfont{\the\glsshortpltok}},
+ text={\protect\glsabbrvemfont{\the\glsshorttok}},
+ plural={\protect\glsabbrvemfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvemfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvemfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+}
+\letabbreviationstyle{short-em-nolong-desc}{short-em-desc}
+\newabbreviationstyle{nolong-short-em}%
+{%
+ \GlsXtrUseAbbrStyleSetup{short-em-nolong}%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-em-nolong}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\glsaccesslong{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\glsaccesslongpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\Glsaccesslong{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\Glsaccesslongpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
+ }%
+}
+\newabbreviationstyle{long-noshort-em}%
+{%
+ \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongnoshortname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlongdefaultfont{\the\glslongtok}},
+ firstplural={\protect\glsfirstlongdefaultfont{\the\glslongpltok}},
+ text={\protect\glslongdefaultfont{\the\glslongtok}},
+ plural={\protect\glslongdefaultfont{\the\glslongpltok}},%
+ description={\the\glslongtok}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glslongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glslongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \glslongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \glslongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstlongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{long-em}{long-noshort-em}
+\newabbreviationstyle{long-em-noshort-em}%
+{%
+ \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongnoshortname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlongemfont{\the\glslongtok}},
+ firstplural={\protect\glsfirstlongemfont{\the\glslongpltok}},
+ text={\protect\glslongemfont{\the\glslongtok}},
+ plural={\protect\glslongemfont{\the\glslongpltok}},%
+ description={\protect\glslongemfont{\the\glslongtok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongemfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongemfont{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glslongemfont{\glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glslongemfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \glslongemfont{\Glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \glslongemfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstlongemfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongemfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstlongemfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongemfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstlongemfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstlongemfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstlongemfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstlongemfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+}
+\newabbreviationstyle{long-em-noshort-em-noreg}%
+{%
+ \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
+ \GlsXtrUseAbbrStyleSetup{long-em-noshort-em}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-em-noshort-em}%
+}
+\newabbreviationstyle{long-noshort-em-desc}%
+{%
+ \GlsXtrUseAbbrStyleSetup{long-noshort-desc}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glslongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glslongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \glslongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \glslongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstlongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{long-desc-em}{long-noshort-em-desc}
+\newabbreviationstyle{long-em-noshort-em-desc}%
+{%
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongnoshortdescname},
+ sort={\the\glslongtok},
+ first={\protect\glsfirstlongemfont{\the\glslongtok}},
+ firstplural={\protect\glsfirstlongemfont{\the\glslongpltok}},
+ text={\glslongemfont{\the\glslongtok}},
+ plural={\glslongemfont{\the\glslongpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongemfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongemfont{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glslongemfont{\glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glslongemfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \glslongemfont{\Glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \glslongemfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
+ \ifglsxtrinsertinside \else##2\fi
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstlongemfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongemfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstlongemfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongemfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstlongemfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstlongemfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstlongemfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstlongemfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+}
+\newabbreviationstyle{long-em-noshort-em-desc-noreg}%
+{%
+ \GlsXtrUseAbbrStyleSetup{long-em-noshort-em-desc}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-em-noshort-em-desc}%
+}
+\newabbreviationstyle{short-em-footnote}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotename},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\protect\glsfirstabbrvemfont{\the\glsshorttok}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvemfont{\the\glsshortpltok}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvemfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvemfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvemfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvemfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvemfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvemfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{footnote-em}{short-em-footnote}
+\newabbreviationstyle{short-em-footnote-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotedescname},
+ sort={\glsxtrfootnotedescsort},
+ first={\protect\glsfirstabbrvemfont{\the\glsshorttok}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvemfont{\the\glsshortpltok}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvemfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvemfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-em-footnote}%
+}
+\newabbreviationstyle{short-em-postfootnote}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotename},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\protect\glsfirstabbrvemfont{\the\glsshorttok}},%
+ firstplural={\protect\glsfirstabbrvemfont{\the\glsshortpltok}},%
+ text={\protect\glsabbrvemfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvemfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtrdopostpunc{\protect\glsxtrabbrvfootnote{\glslabel}%
+ {\glsfirstlongfootnotefont{\glsentrylong{\glslabel}}}}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+ \renewcommand*{\glsxtrsetupfulldefs}{%
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvemfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvemfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvemfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvemfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{postfootnote-em}{short-em-postfootnote}
+\newabbreviationstyle{short-em-postfootnote-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotedescname},
+ sort={\glsxtrfootnotedescsort},
+ first={\protect\glsfirstabbrvemfont{\the\glsshorttok}},%
+ firstplural={\protect\glsfirstabbrvemfont{\the\glsshortpltok}},%
+ text={\protect\glsabbrvemfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvemfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtrdopostpunc{\protect\glsxtrabbrvfootnote{\glslabel}%
+ {\glsfirstlongfootnotefont{\glsentrylong{\glslabel}}}}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+ \renewcommand*{\glsxtrsetupfulldefs}{%
+ \let\glsxtrifwasfirstuse\@secondoftwo
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-em-postfootnote}%
+}
+\newcommand*{\glsxtruserfield}{useri}
+\ifdef\glscurrentfieldvalue
+{
+ \newcommand*{\glsxtruserparen}[2]{%
+ \glsxtrfullsep{#2}%
+ \glsxtrparen
+ {#1\ifglshasfield{\glsxtruserfield}{#2}{, \glscurrentfieldvalue}{}}%
+ }
+}
+{
+ \newcommand*{\glsxtruserparen}[2]{%
+ \glsxtrfullsep{#2}%
+ \glsxtrparen
+ {#1\ifglshasfield{\glsxtruserfield}{#2}{, \@glo@thisvalue}{}}%
+ }
+}
+\newcommand*{\glsabbrvuserfont}[1]{\glsabbrvdefaultfont{#1}}
+\newcommand*{\glsfirstabbrvuserfont}[1]{\glsabbrvuserfont{#1}}
+\newcommand*{\glslonguserfont}[1]{\glslongdefaultfont{#1}}
+\newcommand*{\glsfirstlonguserfont}[1]{\glslonguserfont{#1}}
+\newcommand*{\glsxtrusersuffix}{\glsxtrabbrvpluralsuffix}
+\newcommand*{\glsuserdescription}[2]{\glslonguserfont{#1}}
+\newabbreviationstyle{long-short-user}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlonguserfont{\the\glslongtok}%
+ \protect\glsxtruserparen{\protect\glsfirstabbrvuserfont{\the\glsshorttok}}%
+ {\the\glslabeltok}},%
+ firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}%
+ \protect\glsxtruserparen
+ {\protect\glsfirstabbrvuserfont{\the\glsshortpltok}}{\the\glslabeltok}},%
+ text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvuserfont{\the\glsshortpltok}},%
+ description={\protect\glsuserdescription{\the\glslongtok}%
+ {\the\glslabeltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrusersuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvuserfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvuserfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonguserfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslonguserfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstlonguserfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtruserparen{\glsfirstabbrvuserfont{\glsaccessshort{##1}}}{##1}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstlonguserfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtruserparen{\glsfirstabbrvuserfont{\glsaccessshortpl{##1}}}{##1}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstlonguserfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtruserparen{\glsfirstabbrvuserfont{\glsaccessshort{##1}}}{##1}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstlonguserfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtruserparen{\glsfirstabbrvuserfont{\glsaccessshortpl{##1}}}{##1}%
+ }%
+}
+\newabbreviationstyle{long-postshort-user}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
+ text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvuserfont{\the\glsshortpltok}},%
+ description={\protect\glsuserdescription{\the\glslongtok}%
+ {\the\glslabeltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtruserparen
+ {\glsfirstabbrvuserfont{\glsentryshort{\glslabel}}}%
+ {\glslabel}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrusersuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvuserfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvuserfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonguserfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslonguserfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstlonguserfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstlonguserfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstlonguserfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstlonguserfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstlonguserfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtruserparen{\glsfirstabbrvuserfont{\glsaccessshort{##1}}}{##1}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstlonguserfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtruserparen{\glsfirstabbrvuserfont{\glsaccessshortpl{##1}}}{##1}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstlonguserfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtruserparen{\glsfirstabbrvuserfont{\glsaccessshort{##1}}}{##1}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstlonguserfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtruserparen{\glsfirstabbrvuserfont{\glsaccessshortpl{##1}}}{##1}%
+ }%
+}
+\newcommand*{\glsabbrvscuserfont}{\glsabbrvscfont}%
+\newcommand*{\glsfirstabbrvscuserfont}{\glsabbrvscuserfont}%
+\newcommand*{\glsxtrscusersuffix}{\glsxtrscsuffix}
+\newcommand*{\glsxtrlongshortscusername}{%
+ \protect\glsabbrvscuserfont{\the\glsshorttok}%
+}
+\newabbreviationstyle{long-postshort-sc-user}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortscusername},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
+ text={\protect\glsabbrvscuserfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvscuserfont{\the\glsshortpltok}},%
+ description={\protect\glsuserdescription{\the\glslongtok}%
+ {\the\glslabeltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtruserparen
+ {\glsfirstabbrvscuserfont{\glsentryshort{\glslabel}}}%
+ {\glslabel}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrscusersuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvscuserfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvscuserfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonguserfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslonguserfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstlonguserfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstlonguserfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstlonguserfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstlonguserfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstlonguserfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtruserparen{\glsfirstabbrvscuserfont{\glsaccessshort{##1}}}{##1}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstlonguserfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtruserparen{\glsfirstabbrvscuserfont{\glsaccessshortpl{##1}}}{##1}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstlonguserfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtruserparen{\glsfirstabbrvscuserfont{\glsaccessshort{##1}}}{##1}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstlonguserfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtruserparen{\glsfirstabbrvscuserfont{\glsaccessshortpl{##1}}}{##1}%
+ }%
+}
+\newcommand*{\glsxtrlongshortuserdescname}{%
+ \protect\glslonguserfont{\the\glslongtok}%
+ \protect\glsxtruserparen
+ {\protect\glsabbrvuserfont{\the\glsshorttok}}{\the\glslabeltok}%
+}
+\newabbreviationstyle{long-postshort-user-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortuserdescname},
+ sort={\the\glslongtok},
+ first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
+ text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvuserfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtruserparen
+ {\glsfirstabbrvuserfont{\glsentryshort{\glslabel}}}%
+ {\glslabel}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-postshort-user}%
+}
+\newcommand*{\glsxtrlongshortscuserdescname}{%
+ \protect\glslonguserfont{\the\glslongtok}%
+ \protect\glsxtruserparen
+ {\protect\glsabbrvscuserfont{\the\glsshorttok}}{\the\glslabeltok}%
+}
+\newabbreviationstyle{long-postshort-sc-user-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortscuserdescname},
+ sort={\the\glslongtok},
+ first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
+ text={\protect\glsabbrvscuserfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvscuserfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtruserparen
+ {\glsfirstabbrvscuserfont{\glsentryshort{\glslabel}}}%
+ {\glslabel}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-postshort-sc-user}%
+}
+\newabbreviationstyle{short-postlong-user}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
+ text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvuserfont{\the\glsshortpltok}},%
+ description={\protect\glsuserdescription{\the\glslongtok}%
+ {\the\glslabeltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtruserparen
+ {\glsfirstlonguserfont{\glsentrylong{\glslabel}}}%
+ {\glslabel}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrusersuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvuserfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvuserfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonguserfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslonguserfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvuserfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvuserfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvuserfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvuserfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvuserfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtruserparen{\glsfirstlonguserfont{\glsaccesslong{##1}}}{##1}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvuserfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtruserparen{\glsfirstlonguserfont{\glsaccesslongpl{##1}}}{##1}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvuserfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtruserparen{\glsfirstlonguserfont{\glsaccesslong{##1}}}{##1}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvuserfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtruserparen{\glsfirstlonguserfont{\glsaccesslongpl{##1}}}{##1}%
+ }%
+}
+\newcommand*{\glsxtrshortlonguserdescname}{%
+ \protect\glsabbrvuserfont{\the\glsshorttok}%
+ \protect\glsxtruserparen
+ {\protect\glslonguserfont{\the\glslongpltok}}%
+ {\the\glslabeltok}%
+}
+\newabbreviationstyle{short-postlong-user-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlonguserdescname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
+ text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvuserfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtruserparen
+ {\glsfirstlonguserfont{\glsentrylong{\glslabel}}}%
+ {\glslabel}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-postlong-user}%
+}
+\newabbreviationstyle{long-short-user-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortuserdescname},
+ sort={\glsxtrlongshortdescsort},%
+ first={\protect\glsfirstlonguserfont{\the\glslongtok}%
+ \protect\glsxtruserparen{\protect\glsfirstabbrvuserfont{\the\glsshorttok}}%
+ {\the\glslabeltok}},%
+ firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}%
+ \protect\glsxtruserparen
+ {\protect\glsfirstabbrvuserfont{\the\glsshortpltok}}{\the\glslabeltok}},%
+ text={\protect\glsabbrvfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-short-user}%
+}
+\newabbreviationstyle{short-long-user}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongname},
+ sort={\the\glsshorttok},
+ description={\protect\glsuserdescription{\the\glslongtok}%
+ {\the\glslabeltok}},%
+ first={\protect\glsfirstabbrvuserfont{\the\glsshorttok}%
+ \protect\glsxtruserparen{\protect\glsfirstlonguserfont{\the\glslongtok}}%
+ {\the\glslabeltok}},%
+ firstplural={\protect\glsfirstabbrvuserfont{\the\glsshortpltok}%
+ \protect\glsxtruserparen{\protect\glsfirstlonguserfont{\the\glslongpltok}}%
+ {\the\glslabeltok}},%
+ text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvuserfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrusersuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvuserfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvuserfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonguserfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslonguserfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstabbrvuserfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtruserparen{\glsfirstlonguserfont{\glsaccesslong{##1}}}{##1}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstabbrvuserfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtruserparen{\glsfirstlonguserfont{\glsaccesslongpl{##1}}}{##1}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstabbrvuserfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtruserparen{\glsfirstlonguserfont{\glsaccesslong{##1}}}{##1}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstabbrvuserfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtruserparen{\glsfirstlonguserfont{\glsaccesslongpl{##1}}}{##1}%
+ }%
+}
+\newabbreviationstyle{short-long-user-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlonguserdescname},
+ sort={\glsxtrshortlongdescsort},%
+ first={\protect\glsfirstabbrvuserfont{\the\glsshorttok}%
+ \protect\glsxtruserparen{\protect\glsfirstlonguserfont{\the\glslongtok}}%
+ {\the\glslabeltok}},%
+ firstplural={\protect\glsfirstabbrvuserfont{\the\glsshortpltok}%
+ \protect\glsxtruserparen{\protect\glsfirstlonguserfont{\the\glslongpltok}}%
+ {\the\glslabeltok}},%
+ text={\protect\glsabbrvfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-long-user}%
+}
+\newrobustcmd*{\glsxtrifhyphenstart}[3]{%
+ \ifx\glsinsert#1\relax
+ \expandafter\@glsxtrifhyphenstart#1\relax\relax
+ \@end@glsxtrifhyphenstart{#2}{#3}%
+ \else
+ \@glsxtrifhyphenstart#1\relax\relax\@end@glsxtrifhyphenstart{#2}{#3}%
+ \fi
+}
+\def\@glsxtrifhyphenstart#1#2\@end@glsxtrifhyphenstart#3#4{%
+ \ifx-#1\relax#3\else #4\fi
+}
+\newcommand*{\glsxtrlonghyphenshort}[4]{%
+ {%
+ \glsxtrifhyphenstart{#4}{\def\glsxtrwordsep{-}}{}%
+ \glsfirstlonghyphenfont{#2\ifglsxtrinsertinside{#4}\fi}%
+ \ifglsxtrinsertinside\else{#4}\fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\glsfirstabbrvhyphenfont{#3\ifglsxtrinsertinside{#4}\fi}%
+ \ifglsxtrinsertinside\else{#4}\fi}%
+ }%
+}
+\newcommand*{\glsabbrvhyphenfont}{\glsabbrvdefaultfont}%
+\newcommand*{\glsfirstabbrvhyphenfont}{\glsabbrvhyphenfont}%
+\newcommand*{\glslonghyphenfont}{\glslongdefaultfont}%
+\newcommand*{\glsfirstlonghyphenfont}{\glslonghyphenfont}%
+\newcommand*{\glsxtrhyphensuffix}{\glsxtrabbrvpluralsuffix}
+\newabbreviationstyle{long-hyphen-short-hyphen}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlonghyphenfont{\the\glslongtok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}}},%
+ firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}}},%
+ text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}},%
+ description={\protect\glslonghyphenfont{\the\glslongtok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrhyphensuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvhyphenfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvhyphenfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonghyphenfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslonghyphenfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlonghyphenshort{##1}{\glsaccesslong{##1}}{\glsaccessshort{##1}}{##2}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlonghyphenshort{##1}{\glsaccesslongpl{##1}}%
+ {\glsaccessshortpl{##1}}{##2}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsxtrlonghyphenshort{##1}{\Glsaccesslong{##1}}{\glsaccessshort{##1}}{##2}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsxtrlonghyphenshort{##1}{\Glsaccesslongpl{##1}}%
+ {\glsaccessshortpl{##1}}{##2}%
+ }%
+}
+\newabbreviationstyle{long-hyphen-short-hyphen-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortdescname},
+ sort={\glsxtrlongshortdescsort},
+ first={\protect\glsfirstlonghyphenfont{\the\glslongtok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}}},%
+ firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}}},%
+ text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-hyphen-short-hyphen}%
+}
+\newcommand*{\glsxtrlonghyphennoshort}[3]{%
+ {%
+ \glsxtrifhyphenstart{#3}{\def\glsxtrwordsep{-}}{}%
+ \glsfirstlonghyphenfont{#2\ifglsxtrinsertinside{#3}\fi}%
+ \ifglsxtrinsertinside\else{#3}\fi
+ }%
+}
+\newabbreviationstyle{long-hyphen-noshort-desc-noreg}%
+{%
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongnoshortdescname},
+ sort={\expandonce\glsxtrorglong},
+ first={\protect\glsfirstlonghyphenfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}},%
+ text={\protect\glslonghyphenfont{\the\glslongtok}},%
+ plural={\protect\glslonghyphenfont{\the\glslongpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-hyphen-short-hyphen}%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonghyphenfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslonghyphenfont{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glsxtrlonghyphennoshort{##1}{\glsaccesslong{##1}}{##2}%
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glsxtrlonghyphennoshort{##1}{\glsaccesslongpl{##1}}{##2}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \glsxtrlonghyphennoshort{##1}{\Glsaccesslong{##1}}{##2}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \glsxtrlonghyphennoshort{##1}{\Glsaccesslongpl{##1}}{##2}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrlonghyphennoshort{##1}{\glsaccesslong{##1}}{##2}%
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrlonghyphennoshort{##1}{\glsaccesslongpl{##1}}{##2}%
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsxtrlonghyphennoshort{##1}{\Glsaccesslong{##1}}{##2}%
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsxtrlonghyphennoshort{##1}{\Glsaccesslongpl{##1}}{##2}%
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlonghyphennoshort{##1}{\glsaccesslong{##1}}{##2}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlonghyphennoshort{##1}{\glsaccesslongpl{##1}}{##2}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsxtrlonghyphennoshort{##1}{\Glsaccesslong{##1}}{##2}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsxtrlonghyphennoshort{##1}{\Glsaccesslongpl{##1}}{##2}%
+ }%
+}
+\newabbreviationstyle{long-hyphen-noshort-noreg}%
+{%
+ \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongnoshortname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlonghyphenfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}},%
+ text={\protect\glslonghyphenfont{\the\glslongtok}},%
+ plural={\protect\glslonghyphenfont{\the\glslongpltok}},%
+ description={\the\glslongtok}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-hyphen-noshort-desc-noreg}%
+}
+\newcommand*{\glsxtrlonghyphen}[3]{%
+ {%
+ \glsxtrifhyphenstart{#3}{\def\glsxtrwordsep{-}}{}%
+ \glsfirstlonghyphenfont{#1}%
+ }%
+}
+\newcommand*{\glsxtrposthyphenshort}[2]{%
+ {%
+ \glsxtrifhyphenstart{#2}{\def\glsxtrwordsep{-}}{}%
+ \ifglsxtrinsertinside{\glsfirstlonghyphenfont{#2}}\else{#2}\fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen
+ {\glsfirstabbrvhyphenfont{\glsentryshort{#1}\ifglsxtrinsertinside{#2}\fi}%
+ \ifglsxtrinsertinside\else{#2}\fi
+ }%
+ }%
+}
+\newcommand*{\glsxtrposthyphensubsequent}[2]{%
+ \glsabbrvfont{\ifglsxtrinsertinside {#2}\fi}%
+ \ifglsxtrinsertinside \else{#2}\fi
+}
+\newabbreviationstyle{long-hyphen-postshort-hyphen}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlonghyphenfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}},%
+ text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}},%
+ description={\protect\glslonghyphenfont{\the\glslongtok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtrposthyphenshort{\glslabel}{\glsinsert}%
+ }%
+ {%
+ \glsxtrposthyphensubsequent{\glslabel}{\glsinsert}%
+ }%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvhyphenfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvhyphenfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonghyphenfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslonghyphenfont{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glsabbrvfont{\glsaccessshort{##1}}%
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glsabbrvfont{\glsaccessshortpl{##1}}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \glsabbrvfont{\Glsaccessshort{##1}}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \glsabbrvfont{\Glsaccessshortpl{##1}}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlonghyphen{\glsaccesslong{##1}}{##1}{##2}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlonghyphen{\glsaccesslongpl{##1}}{##1}{##2}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsxtrlonghyphen{\Glsaccesslong{##1}}{##1}{##2}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsxtrlonghyphen{\Glsaccesslongpl{##1}}{##1}{##2}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstlonghyphenfont{\glsaccesslong{##1}%
+ \ifglsxtrinsertinside{##2}\fi}%
+ \ifglsxtrinsertinside \else{##2}\fi
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstlonghyphenfont{\glsaccesslongpl{##1}%
+ \ifglsxtrinsertinside{##2}\fi}%
+ \ifglsxtrinsertinside \else{##2}\fi
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstlonghyphenfont{\Glsaccesslong{##1}%
+ \ifglsxtrinsertinside{##2}\fi}%
+ \ifglsxtrinsertinside \else{##2}\fi
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstlonghyphenfont{\Glsaccesslongpl{##1}%
+ \ifglsxtrinsertinside{##2}\fi}%
+ \ifglsxtrinsertinside \else{##2}\fi
+ }%
+}
+\newabbreviationstyle{long-hyphen-postshort-hyphen-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortdescname},
+ sort={\glsxtrlongshortdescsort},%
+ first={\protect\glsfirstlonghyphenfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}},%
+ text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtrposthyphenshort{\glslabel}{\glsinsert}%
+ }%
+ {%
+ \glsxtrposthyphensubsequent{\glslabel}{\glsinsert}%
+ }%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-hyphen-postshort-hyphen}%
+}
+\newcommand*{\glsxtrshorthyphenlong}[4]{%
+ {%
+ \glsxtrifhyphenstart{#4}{\def\glsxtrwordsep{-}}{}%
+ \glsfirstabbrvhyphenfont{#2\ifglsxtrinsertinside{#4}\fi}%
+ \ifglsxtrinsertinside\else{#4}\fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\glsfirstlonghyphenfont{#3\ifglsxtrinsertinside{#4}\fi}%
+ \ifglsxtrinsertinside\else{#4}\fi}%
+ }%
+}
+\newabbreviationstyle{short-hyphen-long-hyphen}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlonghyphenfont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlonghyphenfont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}},%
+ description={\protect\glslonghyphenfont{\the\glslongtok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrhyphensuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvhyphenfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvhyphenfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonghyphenfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslonghyphenfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshorthyphenlong{##1}{\glsaccessshort{##1}}{\glsaccesslong{##1}}{##2}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshorthyphenlong{##1}%
+ {\glsaccessshortpl{##1}}{\glsaccesslongpl{##1}}{##2}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsxtrshorthyphenlong{##1}{\glsaccessshort{##1}}{\Glsaccesslong{##1}}{##2}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsxtrshorthyphenlong{##1}%
+ {\glsaccessshortpl{##1}}{\Glsaccesslongpl{##1}}{##2}%
+ }%
+}
+\newabbreviationstyle{short-hyphen-long-hyphen-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongdescname},
+ sort={\glsxtrshortlongdescsort},
+ first={\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlonghyphenfont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \glsxtrparen{\protect\glsfirstlonghyphenfont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-hyphen-long-hyphen}%
+}
+\newcommand*{\glsxtrshorthyphen}[3]{%
+ {%
+ \glsxtrifhyphenstart{#3}{\def\glsxtrwordsep{-}}{}%
+ \glsfirstabbrvhyphenfont{#1}%
+ }%
+}
+\newcommand*{\glsxtrposthyphenlong}[2]{%
+ {%
+ \glsxtrifhyphenstart{#2}{\def\glsxtrwordsep{-}}{}%
+ \ifglsxtrinsertinside{\glsfirstabbrvhyphenfont{#2}}\else{#2}\fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen
+ {\glsfirstlonghyphenfont{\glsentrylong{#1}\ifglsxtrinsertinside{#2}\fi}%
+ \ifglsxtrinsertinside\else{#2}\fi
+ }%
+ }%
+}
+\newabbreviationstyle{short-hyphen-postlong-hyphen}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}},%
+ firstplural={\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}},%
+ text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}},%
+ description={\protect\glslonghyphenfont{\the\glslongtok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtrposthyphenlong{\glslabel}{\glsinsert}%
+ }%
+ {%
+ \glsxtrposthyphensubsequent{\glslabel}{\glsinsert}%
+ }%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvhyphenfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvhyphenfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonghyphenfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslonghyphenfont{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glsabbrvfont{\glsaccessshort{##1}}%
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glsabbrvfont{\glsaccessshortpl{##1}}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \glsabbrvfont{\Glsaccessshort{##1}}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \glsabbrvfont{\Glsaccessshortpl{##1}}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshorthyphen{\glsaccessshort{##1}}{##1}{##2}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshorthyphen{\glsaccessshortpl{##1}}{##1}{##2}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsxtrshorthyphen{\Glsaccessshort{##1}}{##1}{##2}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsxtrshorthyphen{\Glsaccessshortpl{##1}}{##1}{##2}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvhyphenfont{\glsaccessshort{##1}%
+ \ifglsxtrinsertinside{##2}\fi}%
+ \ifglsxtrinsertinside \else{##2}\fi
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvhyphenfont{\glsaccessshortpl{##1}%
+ \ifglsxtrinsertinside{##2}\fi}%
+ \ifglsxtrinsertinside \else{##2}\fi
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstabbrvhyphenfont{\Glsaccessshort{##1}%
+ \ifglsxtrinsertinside{##2}\fi}%
+ \ifglsxtrinsertinside \else{##2}\fi
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstabbrvhyphenfont{\Glsaccessshortpl{##1}%
+ \ifglsxtrinsertinside{##2}\fi}%
+ \ifglsxtrinsertinside \else{##2}\fi
+ }%
+}
+\newabbreviationstyle{short-hyphen-postlong-hyphen-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongdescname},
+ sort={\glsxtrshortlongdescsort},%
+ first={\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}},%
+ firstplural={\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}},%
+ text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtrposthyphenlong{\glslabel}{\glsinsert}%
+ }%
+ {%
+ \glsxtrposthyphensubsequent{\glslabel}{\glsinsert}%
+ }%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-hyphen-postlong-hyphen}%
+}
+\newcommand*{\glsabbrvonlyfont}{\glsabbrvdefaultfont}%
+\newcommand*{\glsfirstabbrvonlyfont}{\glsabbrvonlyfont}%
+\newcommand*{\glslongonlyfont}{\glslongdefaultfont}%
+\newcommand*{\glsfirstlongonlyfont}{\glslongonlyfont}%
+\newcommand*{\glsxtronlysuffix}{\glsxtrabbrvpluralsuffix}
+\newcommand*{\glsxtronlyname}{%
+ \protect\glsabbrvonlyfont{\the\glsshorttok}%
+}
+\newabbreviationstyle{long-only-short-only}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtronlyname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlongonlyfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlongonlyfont{\the\glslongpltok}},%
+ text={\protect\glsabbrvonlyfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvonlyfont{\the\glsshortpltok}},%
+ description={\protect\glslongonlyfont{\the\glslongtok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtronlysuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvonlyfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvonlyfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongonlyfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongonlyfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstlongonlyfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstlongonlyfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstlongonlyfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstlongonlyfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstlongonlyfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvonlyfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongonlyfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvonlyfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstlongonlyfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvonlyfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongonlyfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvonlyfont{\Glsaccessshortpl{##1}}}%
+ }%
+}
+\newcommand*{\glsxtronlydescsort}{\the\glslongtok}
+\newcommand*{\glsxtronlydescname}{%
+ \protect\glslongfont{\the\glslongtok}%
+}
+\newabbreviationstyle{long-only-short-only-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtronlydescname},
+ sort={\glsxtronlydescsort},%
+ first={\protect\glsfirstlongonlyfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlongonlyfont{\the\glslongpltok}},%
+ text={\protect\glsabbrvonlyfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvonlyfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-only-short-only}%
+}
+\newcommand*{\glsabbrvsconlyfont}{\glsabbrvscfont}%
+\newcommand*{\glsfirstabbrvsconlyfont}{\glsabbrvsconlyfont}%
+\newcommand*{\glsxtrsconlysuffix}{\glsxtrscsuffix}
+\newcommand*{\glsxtrsconlyname}{%
+ \protect\glsabbrvsconlyfont{\the\glsshorttok}%
+}
+\newabbreviationstyle{long-only-short-sc-only}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrsconlyname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlongonlyfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlongonlyfont{\the\glslongpltok}},%
+ text={\protect\glsabbrvsconlyfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvsconlyfont{\the\glsshortpltok}},%
+ description={\protect\glslongonlyfont{\the\glslongtok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrsconlysuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvsconlyfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvsconlyfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongonlyfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongonlyfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsfirstlongonlyfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsfirstlongonlyfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsfirstlongonlyfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsfirstlongonlyfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsfirstlongonlyfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvsconlyfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongonlyfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvsconlyfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsfirstlongonlyfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvsconlyfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsfirstlongonlyfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi
+ \glsxtrfullsep{##1}%
+ \glsxtrparen{\protect\glsfirstabbrvsconlyfont{\Glsaccessshortpl{##1}}}%
+ }%
+}
+\newcommand*{\glsxtrsconlydescsort}{\glsxtronlydescsort}
+\newcommand*{\glsxtrsconlydescname}{\glsxtronlydescname}
+\newabbreviationstyle{long-only-short-sc-only-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrsconlydescname},
+ sort={\glsxtrsconlydescsort},%
+ first={\protect\glsfirstlongonlyfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlongonlyfont{\the\glslongpltok}},%
+ text={\protect\glsabbrvsconlyfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvsconlyfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-only-short-sc-only}%
+}
+\let\@glsxtr@org@markright\markright
+\renewcommand*{\markright}[1]{%
+ \glsxtrmarkhook
+ \@glsxtr@org@markright{\@glsxtrinmark#1\@glsxtrnotinmark}%
+ \glsxtrrestoremarkhook
+}
+\let\@glsxtr@org@markboth\markboth
+\renewcommand*{\markboth}[2]{%
+ \glsxtrmarkhook
+ \@glsxtr@org@markboth
+ {\@glsxtrinmark#1\@glsxtrnotinmark}%
+ {\@glsxtrinmark#2\@glsxtrnotinmark}%
+ \glsxtrrestoremarkhook
+}
+\let\@glsxtr@org@@starttoc\@starttoc
+\renewcommand*{\@starttoc}[1]{%
+ \glsxtrmarkhook
+ \@glsxtrinmark
+ \@glsxtr@org@@starttoc{#1}%
+ \@glsxtrnotinmark
+ \glsxtrrestoremarkhook
+}
+\newcommand*{\glsxtrRevertMarks}{%
+ \let\markright\@glsxtr@org@markright
+ \let\markboth\@glsxtr@org@markboth
+ \let\@starttoc\@glsxtr@org@@starttoc
+}
+\newcommand*{\glsxtrRevertTocMarks}{%
+ \let\@starttoc\@glsxtr@org@@starttoc
+}
+\newcommand*{\glsxtrifinmark}[2]{#2}
+\newrobustcmd*{\@glsxtrinmark}{%
+ \let\glsxtrifinmark\@firstoftwo
+}
+\newrobustcmd*{\@glsxtrnotinmark}{%
+ \let\glsxtrifinmark\@secondoftwo
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\glsxtrtitleorpdforheading}[3]{\texorpdfstring{#1}{#2}}
+}
+{
+ \newcommand*{\glsxtrtitleorpdforheading}[3]{#1}
+}
+\newcommand*{\glsxtrmarkhook}{%
+ \let\@glsxtr@org@MakeUppercase\MakeUppercase
+ \let\@glsxtr@org@glsxtrtitleorpdforheading\glsxtrtitleorpdforheading
+ \let\@glsxtr@org@glsxtrtitleshort\glsxtrtitleshort
+ \let\@glsxtr@org@glsxtrtitleshortpl\glsxtrtitleshortpl
+ \let\@glsxtr@org@Glsxtrtitleshort\Glsxtrtitleshort
+ \let\@glsxtr@org@Glsxtrtitleshortpl\Glsxtrtitleshortpl
+ \let\@glsxtr@org@glsxtrtitlename\glsxtrtitlename
+ \let\@glsxtr@org@Glsxtrtitlename\Glsxtrtitlename
+ \let\@glsxtr@org@glsxtrtitletext\glsxtrtitletext
+ \let\@glsxtr@org@Glsxtrtitletext\Glsxtrtitletext
+ \let\@glsxtr@org@glsxtrtitleplural\glsxtrtitleplural
+ \let\@glsxtr@org@Glsxtrtitleplural\Glsxtrtitleplural
+ \let\@glsxtr@org@glsxtrtitlefirst\glsxtrtitlefirst
+ \let\@glsxtr@org@Glsxtrtitlefirst\Glsxtrtitlefirst
+ \let\@glsxtr@org@glsxtrtitlefirstplural\glsxtrtitlefirstplural
+ \let\@glsxtr@org@Glsxtrtitlefirstplural\Glsxtrtitlefirstplural
+ \let\@glsxtr@org@glsxtrtitlelong\glsxtrtitlelong
+ \let\@glsxtr@org@glsxtrtitlelongpl\glsxtrtitlelongpl
+ \let\@glsxtr@org@Glsxtrtitlelong\Glsxtrtitlelong
+ \let\@glsxtr@org@Glsxtrtitlelongpl\Glsxtrtitlelongpl
+ \let\@glsxtr@org@glsxtrtitlefull\glsxtrtitlefull
+ \let\@glsxtr@org@glsxtrtitlefullpl\glsxtrtitlefullpl
+ \let\@glsxtr@org@Glsxtrtitlefull\Glsxtrtitlefull
+ \let\@glsxtr@org@Glsxtrtitlefullpl\Glsxtrtitlefullpl
+ \let\glsxtrifinmark\@firstoftwo
+ \let\MakeUppercase\MakeTextUppercase
+ \let\glsxtrtitleorpdforheading\@thirdofthree
+ \let\glsxtrtitleshort\glsxtrheadshort
+ \let\glsxtrtitleshortpl\glsxtrheadshortpl
+ \let\Glsxtrtitleshort\Glsxtrheadshort
+ \let\Glsxtrtitleshortpl\Glsxtrheadshortpl
+ \let\glsxtrtitlename\glsxtrheadname
+ \let\Glsxtrtitlename\Glsxtrheadname
+ \let\glsxtrtitletext\glsxtrheadtext
+ \let\Glsxtrtitletext\Glsxtrheadtext
+ \let\glsxtrtitleplural\glsxtrheadplural
+ \let\Glsxtrtitleplural\Glsxtrheadplural
+ \let\glsxtrtitlefirst\glsxtrheadfirst
+ \let\Glsxtrtitlefirst\Glsxtrheadfirst
+ \let\glsxtrtitlefirstplural\glsxtrheadfirstplural
+ \let\Glsxtrtitlefirstplural\Glsxtrheadfirstplural
+ \let\glsxtrtitlelong\glsxtrheadlong
+ \let\glsxtrtitlelongpl\glsxtrheadlongpl
+ \let\Glsxtrtitlelong\Glsxtrheadlong
+ \let\Glsxtrtitlelongpl\Glsxtrheadlongpl
+ \let\glsxtrtitlefull\glsxtrheadfull
+ \let\glsxtrtitlefullpl\glsxtrheadfullpl
+ \let\Glsxtrtitlefull\Glsxtrheadfull
+ \let\Glsxtrtitlefullpl\Glsxtrheadfullpl
+}
+\newcommand*{\glsxtrrestoremarkhook}{%
+ \let\glsxtrifinmark\@secondoftwo
+ \let\MakeUppercase\@glsxtr@org@MakeUppercase
+ \let\glsxtrtitleorpdforheading\@glsxtr@org@glsxtrtitleorpdforheading
+ \let\glsxtrtitleshort\@glsxtr@org@glsxtrtitleshort
+ \let\glsxtrtitleshortpl\@glsxtr@org@glsxtrtitleshortpl
+ \let\Glsxtrtitleshort\@glsxtr@org@Glsxtrtitleshort
+ \let\Glsxtrtitleshortpl\@glsxtr@org@Glsxtrtitleshortpl
+ \let\glsxtrtitlename\@glsxtr@org@glsxtrtitlename
+ \let\Glsxtrtitlename\@glsxtr@org@Glsxtrtitlename
+ \let\glsxtrtitletext\@glsxtr@org@glsxtrtitletext
+ \let\Glsxtrtitletext\@glsxtr@org@Glsxtrtitletext
+ \let\glsxtrtitleplural\@glsxtr@org@glsxtrtitleplural
+ \let\Glsxtrtitleplural\@glsxtr@org@Glsxtrtitleplural
+ \let\glsxtrtitlefirst\@glsxtr@org@glsxtrtitlefirst
+ \let\Glsxtrtitlefirst\@glsxtr@org@Glsxtrtitlefirst
+ \let\glsxtrtitlefirstplural\@glsxtr@org@glsxtrtitlefirstplural
+ \let\Glsxtrtitlefirstplural\@glsxtr@org@Glsxtrtitlefirstplural
+ \let\glsxtrtitlelong\@glsxtr@org@glsxtrtitlelong
+ \let\glsxtrtitlelongpl\@glsxtr@org@glsxtrtitlelongpl
+ \let\Glsxtrtitlelong\@glsxtr@org@Glsxtrtitlelong
+ \let\Glsxtrtitlelongpl\@glsxtr@org@Glsxtrtitlelongpl
+ \let\glsxtrtitlefull\@glsxtr@org@glsxtrtitlefull
+ \let\glsxtrtitlefullpl\@glsxtr@org@glsxtrtitlefullpl
+ \let\Glsxtrtitlefull\@glsxtr@org@Glsxtrtitlefull
+ \let\Glsxtrtitlefullpl\@glsxtr@org@Glsxtrtitlefullpl
+}
+\newcommand*{\glsxtrheadshort}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSxtrshort[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \glsxtrshort[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\glsxtrtitleshort}[1]{%
+ \glsxtrshort[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\glsxtrheadshortpl}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSxtrshortpl[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \glsxtrshortpl[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\glsxtrtitleshortpl}[1]{%
+ \glsxtrshortpl[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\Glsxtrheadshort}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSxtrshort[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \Glsxtrshort[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\Glsxtrtitleshort}[1]{%
+ \Glsxtrshort[noindex,hyper=false]{#1}[]%
+}
+\newrobustcmd*{\GLSxtrtitleshort}[1]{%
+ \GLSxtrshort[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\Glsxtrheadshortpl}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSxtrshortpl[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \Glsxtrshortpl[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\Glsxtrtitleshortpl}[1]{%
+ \Glsxtrshortpl[noindex,hyper=false]{#1}[]%
+}
+\newrobustcmd*{\GLSxtrtitleshortpl}[1]{%
+ \GLSxtrshortpl[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\glsxtrheadname}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSname[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \glsname[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\glsxtrtitlename}[1]{%
+ \glsname[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\Glsxtrheadname}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSname[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \Glsname[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\Glsxtrtitlename}[1]{%
+ \Glsname[noindex,hyper=false]{#1}[]%
+}
+\newrobustcmd*{\GLSxtrtitlename}[1]{%
+ \GLSname[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\glsxtrheadtext}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLStext[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \glstext[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\glsxtrtitletext}[1]{%
+ \glstext[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\Glsxtrheadtext}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLStext[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \Glstext[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\Glsxtrtitletext}[1]{%
+ \Glstext[noindex,hyper=false]{#1}[]%
+}
+\newrobustcmd*{\GLSxtrtitletext}[1]{%
+ \GLStext[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\glsxtrheadplural}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSplural[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \glsplural[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\glsxtrtitleplural}[1]{%
+ \glsplural[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\Glsxtrheadplural}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSplural[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \Glsplural[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\Glsxtrtitleplural}[1]{%
+ \Glsplural[noindex,hyper=false]{#1}[]%
+}
+\newrobustcmd*{\GLSxtrtitleplural}[1]{%
+ \GLSplural[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\glsxtrheadfirst}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSfirst[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \glsfirst[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\glsxtrtitlefirst}[1]{%
+ \glsfirst[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\Glsxtrheadfirst}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSfirst[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \Glsfirst[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\Glsxtrtitlefirst}[1]{%
+ \Glsfirst[noindex,hyper=false]{#1}[]%
+}
+\newrobustcmd*{\GLSxtrtitlefirst}[1]{%
+ \GLSfirst[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\glsxtrheadfirstplural}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSfirstplural[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \glsfirstplural[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\glsxtrtitlefirstplural}[1]{%
+ \glsfirstplural[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\Glsxtrheadfirstplural}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSfirstplural[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \Glsfirstplural[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\Glsxtrtitlefirstplural}[1]{%
+ \Glsfirstplural[noindex,hyper=false]{#1}[]%
+}
+\newrobustcmd*{\GLSxtrtitlefirstplural}[1]{%
+ \GLSfirstplural[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\glsxtrheadlong}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSxtrlong[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \glsxtrlong[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\glsxtrtitlelong}[1]{%
+ \glsxtrlong[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\glsxtrheadlongpl}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSxtrlongpl[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \glsxtrlongpl[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\glsxtrtitlelongpl}[1]{%
+ \glsxtrlongpl[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\Glsxtrheadlong}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSxtrlong[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \Glsxtrlong[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\Glsxtrtitlelong}[1]{%
+ \Glsxtrlong[noindex,hyper=false]{#1}[]%
+}
+\newrobustcmd*{\GLSxtrtitlelong}[1]{%
+ \GLSxtrlong[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\Glsxtrheadlongpl}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSxtrlongpl[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \Glsxtrlongpl[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\Glsxtrtitlelongpl}[1]{%
+ \Glsxtrlongpl[noindex,hyper=false]{#1}[]%
+}
+\newrobustcmd*{\GLSxtrtitlelongpl}[1]{%
+ \GLSxtrlongpl[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\glsxtrheadfull}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSxtrfull[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \glsxtrfull[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\glsxtrtitlefull}[1]{%
+ \glsxtrfull[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\glsxtrheadfullpl}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSxtrfullpl[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \glsxtrfullpl[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\glsxtrtitlefullpl}[1]{%
+ \glsxtrfullpl[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\Glsxtrheadfull}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSxtrfull[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \Glsxtrfull[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\Glsxtrtitlefull}[1]{%
+ \Glsxtrfull[noindex,hyper=false]{#1}[]%
+}
+\newrobustcmd*{\GLSxtrtitlefull}[1]{%
+ \GLSxtrfull[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\Glsxtrheadfullpl}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSxtrfullpl[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \Glsxtrfullpl[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\Glsxtrtitlefullpl}[1]{%
+ \Glsxtrfullpl[noindex,hyper=false]{#1}[]%
+}
+\newrobustcmd*{\GLSxtrtitlefullpl}[1]{%
+ \GLSxtrfullpl[noindex,hyper=false]{#1}[]%
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\glsfmtshort}[1]{%
+ \texorpdfstring
+ {\glsxtrtitleshort{#1}}%
+ {\glsentryshort{#1}}%
+ }
+}
+{
+ \newcommand*{\glsfmtshort}[1]{%
+ \glsxtrtitleshort{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\glsfmtshortpl}[1]{%
+ \texorpdfstring
+ {\glsxtrtitleshortpl{#1}}%
+ {\glsentryshortpl{#1}}%
+ }
+}
+{
+ \newcommand*{\glsfmtshortpl}[1]{%
+ \glsxtrtitleshortpl{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\Glsfmtshort}[1]{%
+ \texorpdfstring
+ {\Glsxtrtitleshort{#1}}%
+ {\glsentryshort{#1}}%
+ }
+}
+{
+ \newcommand*{\Glsfmtshort}[1]{%
+ \Glsxtrtitleshort{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\Glsfmtshortpl}[1]{%
+ \texorpdfstring
+ {\Glsxtrtitleshortpl{#1}}%
+ {\glsentryshortpl{#1}}%
+ }
+}
+{
+ \newcommand*{\Glsfmtshortpl}[1]{%
+ \Glsxtrtitleshortpl{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\glsfmtname}[1]{%
+ \texorpdfstring
+ {\glsxtrtitlename{#1}}%
+ {\glsentryname{#1}}%
+ }
+}
+{
+ \newcommand*{\glsfmtname}[1]{%
+ \glsxtrtitlename{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\Glsfmtname}[1]{%
+ \texorpdfstring
+ {\Glsxtrtitlename{#1}}%
+ {\glsentryname{#1}}%
+ }
+}
+{
+ \newcommand*{\Glsfmtname}[1]{%
+ \Glsxtrtitlename{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\GLSfmtname}[1]{%
+ \texorpdfstring
+ {\GLSxtrtitlename{#1}}%
+ {\glsentryname{#1}}%
+ }
+}
+{
+ \newcommand*{\GLSfmtname}[1]{%
+ \GLSxtrtitlename{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\glsfmttext}[1]{%
+ \texorpdfstring
+ {\glsxtrtitletext{#1}}%
+ {\glsentrytext{#1}}%
+ }
+}
+{
+ \newcommand*{\glsfmttext}[1]{%
+ \glsxtrtitletext{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\Glsfmttext}[1]{%
+ \texorpdfstring
+ {\Glsxtrtitletext{#1}}%
+ {\glsentrytext{#1}}%
+ }
+}
+{
+ \newcommand*{\Glsfmttext}[1]{%
+ \Glsxtrtitletext{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\GLSfmttext}[1]{%
+ \texorpdfstring
+ {\GLSxtrtitletext{#1}}%
+ {\glsentrytext{#1}}%
+ }
+}
+{
+ \newcommand*{\GLSfmttext}[1]{%
+ \GLSxtrtitletext{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\glsfmtplural}[1]{%
+ \texorpdfstring
+ {\glsxtrtitleplural{#1}}%
+ {\glsentryplural{#1}}%
+ }
+}
+{
+ \newcommand*{\glsfmtplural}[1]{%
+ \glsxtrtitleplural{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\Glsfmtplural}[1]{%
+ \texorpdfstring
+ {\Glsxtrtitleplural{#1}}%
+ {\glsentryplural{#1}}%
+ }
+}
+{
+ \newcommand*{\Glsfmtplural}[1]{%
+ \Glsxtrtitleplural{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\GLSfmtplural}[1]{%
+ \texorpdfstring
+ {\GLSxtrtitleplural{#1}}%
+ {\glsentryplural{#1}}%
+ }
+}
+{
+ \newcommand*{\GLSfmtplural}[1]{%
+ \GLSxtrtitleplural{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\glsfmtfirst}[1]{%
+ \texorpdfstring
+ {\glsxtrtitlefirst{#1}}%
+ {\glsentryfirst{#1}}%
+ }
+}
+{
+ \newcommand*{\glsfmtfirst}[1]{%
+ \glsxtrtitlefirst{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\Glsfmtfirst}[1]{%
+ \texorpdfstring
+ {\Glsxtrtitlefirst{#1}}%
+ {\glsentryfirst{#1}}%
+ }
+}
+{
+ \newcommand*{\Glsfmtfirst}[1]{%
+ \Glsxtrtitlefirst{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\GLSfmtfirst}[1]{%
+ \texorpdfstring
+ {\GLSxtrtitlefirst{#1}}%
+ {\glsentryfirst{#1}}%
+ }
+}
+{
+ \newcommand*{\GLSfmtfirst}[1]{%
+ \Glsxtrtitlefirst{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\glsfmtfirstpl}[1]{%
+ \texorpdfstring
+ {\glsxtrtitlefirstplural{#1}}%
+ {\glsentryfirstplural{#1}}%
+ }
+}
+{
+ \newcommand*{\glsfmtfirstpl}[1]{%
+ \glsxtrtitlefirstplural{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\Glsfmtfirstpl}[1]{%
+ \texorpdfstring
+ {\Glsxtrtitlefirstplural{#1}}%
+ {\glsentryfirstplural{#1}}%
+ }
+}
+{
+ \newcommand*{\Glsfmtfirstpl}[1]{%
+ \Glsxtrtitlefirstplural{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\GLSfmtfirstpl}[1]{%
+ \texorpdfstring
+ {\GLSxtrtitlefirstplural{#1}}%
+ {\glsentryfirstplural{#1}}%
+ }
+}
+{
+ \newcommand*{\GLSfmtfirstpl}[1]{%
+ \GLSxtrtitlefirstplural{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\glsfmtlong}[1]{%
+ \texorpdfstring
+ {\glsxtrtitlelong{#1}}%
+ {\glsentrylong{#1}}%
+ }
+}
+{
+ \newcommand*{\glsfmtlong}[1]{%
+ \glsxtrtitlelong{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\Glsfmtlong}[1]{%
+ \texorpdfstring
+ {\Glsxtrtitlelong{#1}}%
+ {\glsentrylong{#1}}%
+ }
+}
+{
+ \newcommand*{\Glsfmtlong}[1]{%
+ \Glsxtrtitlelong{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\GLSfmtlong}[1]{%
+ \texorpdfstring
+ {\GLSxtrtitlelong{#1}}%
+ {\glsentrylong{#1}}%
+ }
+}
+{
+ \newcommand*{\GLSfmtlong}[1]{%
+ \GLSxtrtitlelong{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\glsfmtlongpl}[1]{%
+ \texorpdfstring
+ {\glsxtrtitlelongpl{#1}}%
+ {\glsentrylongpl{#1}}%
+ }
+}
+{
+ \newcommand*{\glsfmtlongpl}[1]{%
+ \glsxtrtitlelongpl{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\Glsfmtlongpl}[1]{%
+ \texorpdfstring
+ {\Glsxtrtitlelongpl{#1}}%
+ {\glsentrylongpl{#1}}%
+ }
+}
+{
+ \newcommand*{\Glsfmtlongpl}[1]{%
+ \Glsxtrtitlelongpl{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\GLSfmtlongpl}[1]{%
+ \texorpdfstring
+ {\GLSxtrtitlelongpl{#1}}%
+ {\glsentrylongpl{#1}}%
+ }
+}
+{
+ \newcommand*{\GLSfmtlongpl}[1]{%
+ \GLSxtrtitlelongpl{#1}}
+}
+\newcommand*{\glspdffmtfull}[1]{\glsentrylong{#1} (\glsentryshort{#1})}%
+\newcommand*{\glspdffmtfullpl}[1]{\glsentrylongpl{#1} (\glsentryshortpl{#1})}%
+\ifdef\texorpdfstring
+{
+ \newcommand*{\glsfmtfull}[1]{%
+ \texorpdfstring
+ {\glsxtrtitlefull{#1}}%
+ {\glspdffmtfull{#1}}%
+ }
+}
+{
+ \newcommand*{\glsfmtfull}[1]{%
+ \glsxtrtitlefull{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\Glsfmtfull}[1]{%
+ \texorpdfstring
+ {\Glsxtrtitlefull{#1}}%
+ {\glspdffmtfull{#1}{}}%
+ }
+}
+{
+ \newcommand*{\Glsfmtfull}[1]{%
+ \Glsxtrtitlefull{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\GLSfmtfull}[1]{%
+ \texorpdfstring
+ {\GLSxtrtitlefull{#1}}%
+ {\glspdffmtfull{#1}}%
+ }
+}
+{
+ \newcommand*{\GLSfmtfull}[1]{%
+ \GLSxtrtitlefull{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\glsfmtfullpl}[1]{%
+ \texorpdfstring
+ {\glsxtrtitlefullpl{#1}}%
+ {\glspdffmtfullpl{#1}}%
+ }
+}
+{
+ \newcommand*{\glsfmtfullpl}[1]{%
+ \glsxtrtitlefullpl{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\Glsfmtfullpl}[1]{%
+ \texorpdfstring
+ {\Glsxtrtitlefullpl{#1}}%
+ {\glspdffmtfullpl{#1}{}}%
+ }
+}
+{
+ \newcommand*{\Glsfmtfullpl}[1]{%
+ \Glsxtrtitlefullpl{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\GLSfmtfullpl}[1]{%
+ \texorpdfstring
+ {\GLSxtrtitlefullpl{#1}}%
+ {\glspdffmtfullpl{#1}{}}%
+ }
+}
+{
+ \newcommand*{\GLSfmtfullpl}[1]{%
+ \GLSxtrtitlefullpl{#1}}
+}
+\newcommand*{\multiglossaryentrysetup}[1]{\setkeys{glsxtrcombined}{#1}}
+\newcommand*{\@gls@combined@indexmain}{1}
+\define@choicekey{glsxtrcombined}{indexmain}%
+ [\@gls@combined@indexmain@val\@gls@combined@indexmain]
+ {false,true,first}[true]{}
+\newcommand*{\@gls@combined@indexothers}{2}
+\define@choicekey{glsxtrcombined}{indexothers}%
+ [\@gls@combined@indexothers@val\@gls@combined@indexothers]
+ {false,true,first}[true]{}
+\newcommand*{\@gls@combined@hyper}{3}
+\define@choicekey{glsxtrcombined}{hyper}%
+ [\@gls@combined@hyper@val\@gls@combined@hyper]
+ {none,allmain,mainonly,individual,otheronly,notmainfirst,nototherfirst,notfirst}{}
+\newcommand*{\@gls@combined@encapmain}{glsnumberformat}
+\define@key{glsxtrcombined}{encapmain}{%
+ \renewcommand*{\@gls@combined@encapmain}{#1}%
+}
+\newcommand*{\@gls@combined@encapothers}{glsnumberformat}
+\define@key{glsxtrcombined}{encapothers}{%
+ \renewcommand*{\@gls@combined@encapothers}{#1}%
+}
+\newcommand*{\@gls@combined@textformat}{@firstofone}
+\define@key{glsxtrcombined}{textformat}{%
+ \renewcommand*{\@gls@combined@textformat}{#1}%
+}
+\newcommand*{\@gls@combined@category}{}
+\define@key{glsxtrcombined}{category}{%
+ \renewcommand*{\@gls@combined@category}{#1}%
+}
+\define@key{glsxtrcombinedpreopts}{category}{%
+ \renewcommand*{\@gls@combined@category}{#1}%
+}
+\newcommand*{\@gls@combined@mglsopts}{}
+\define@key{glsxtrcombined}{mglsopts}{%
+ \renewcommand*{\@gls@combined@mglsopts}{#1}%
+}
+\define@key{glsxtrcombinedpreopts}{mglsopts}{%
+ \@gls@combined@mglsopts@do
+ {%
+ \renewcommand*{\@gls@combined@mglsopts}{#1}%
+ }%
+}
+\newcommand*{\@gls@combined@mglsopts@do}[1]{#1}
+\newcommand*{\mgls@disable@mglsopts}{%
+ \let\@gls@combined@mglsopts@do\@gls@combined@mglsopts@do@not
+}
+\newcommand*{\mgls@enable@mglsopts}{%
+ \let\@gls@combined@mglsopts@do\@firstofone
+}
+\newcommand*{\@gls@combined@mglsopts@do@not}[1]{%
+ \PackageError{glossaries-extra}{`mglsopts' key not permitted inside
+ `setup' value}{}%
+}
+\newcommand*{\@gls@combined@firstprefix}{}
+\define@key{glsxtrcombined}{firstprefix}{%
+ \renewcommand*{\@gls@combined@firstprefix}{#1}%
+}
+\newcommand*{\@gls@combined@usedprefix}{}
+\define@key{glsxtrcombined}{usedprefix}{%
+ \renewcommand*{\@gls@combined@usedprefix}{#1}%
+}
+\newcommand*{\@gls@combined@firstsuffix}{}
+\define@key{glsxtrcombined}{firstsuffix}{%
+ \renewcommand*{\@gls@combined@firstsuffix}{#1}%
+}
+\newcommand*{\@gls@combined@usedsuffix}{}
+\define@key{glsxtrcombined}{usedsuffix}{%
+ \renewcommand*{\@gls@combined@usedsuffix}{#1}%
+}
+\define@boolkey{glsxtrcombined}{firstskipmain}[true]{}
+\KV@glsxtrcombined@firstskipmainfalse
+\define@boolkey{glsxtrcombined}{firstskipothers}[true]{}
+\KV@glsxtrcombined@firstskipothersfalse
+\define@boolkey{glsxtrcombined}{usedskipmain}[true]{}
+\KV@glsxtrcombined@usedskipmainfalse
+\define@boolkey{glsxtrcombined}{usedskipothers}[true]{}
+\KV@glsxtrcombined@usedskipothersfalse
+\newcommand*{\@gls@combined@postlinks@nr}{0}
+\define@choicekey{glsxtrcombined}{postlinks}%
+ [\@gls@combined@postlinks@val\@gls@combined@postlinks@nr]
+ {none,all,notlast,mainnotlast,mainonly,othernotlast,otheronly}{}
+\newcommand*{\@gls@combined@mpostlink@nr}{1}
+\define@choicekey{glsxtrcombined}{mpostlink}%
+ [\@gls@combined@mpostlink@val\@gls@combined@mpostlink@nr]
+ {false,true,firstonly,usedonly}[true]{}
+\newcommand*{\@gls@combined@mpostlinkelement@nr}{0}
+\define@choicekey{glsxtrcombined}{mpostlinkelement}%
+ [\@gls@combined@mpostlinkelement@val\@gls@combined@mpostlinkelement@nr]
+ {last,main,custom}{}
+\newcommand*{\glsxtrifmulti}[3]{\ifcsdef{@gls@combined@#1@main}{#2}{#3}}
+\newcommand*{\glsxtrmultimain}[1]{\csuse{@gls@combined@#1@main}}
+\newcommand*{\glsxtrmultilist}[1]{\csuse{@gls@combined@#1@list}}
+\newcommand*{\glsxtrmultitotalelements}[1]{\csuse{@gls@combined@#1@total}}
+\newcommand*{\glsxtrmultimainindex}[1]{\csuse{@gls@combined@#1@mainindex}}
+\newcommand*{\glsxtrmultilastotherindex}[1]{\csuse{@gls@combined@#1@lastotherindex}}
+\newif\ifmultiglossaryentryglobal
+\multiglossaryentryglobalfalse
+\newcount\mglselementindex
+\newrobustcmd{\multiglossaryentry}[1][]{%
+ \def\@gls@combined@current@opts{#1}%
+ \ifnum\@glsxtr@docdefval=1\relax
+ \let\@multi@glossentry@donext\@defmultiglossaryentry
+ \else
+ \let\@multi@glossentry@donext\@multiglossaryentry
+ \fi
+ \@multi@glossentry@donext
+}
+\newcommand*{\@multiglossaryentry}[1]{%
+ \def\@gls@combined@current@label{#1}%
+ \@multi@glossaryentry
+}
+\newcommand*{\@multi@glossaryentry}[2][]{%
+ \ifcsdef{@gls@combined@\@gls@combined@current@label @main}%
+ {\PackageError{glossaries-extra}%
+ {Multi-entry label `\@gls@combined@current@label' already defined}%
+ {}%
+ }%
+ {%
+ \@multi@glossary@entry{#1}{#2}%
+ }%
+}
+\newcommand*{\@defmultiglossaryentry}[1]{%
+ \def\@gls@combined@current@label{#1}%
+ \@def@multi@glossaryentry
+}
+\newcommand*{\@def@multi@glossaryentry}[2][]{%
+ \let\@def@multi@glossaryentry@do\@multi@glossary@entry
+ \ifundef\@glsxtr@docdefs@multilist
+ {%
+ \gdef\@glsxtr@docdefs@multilist{}%
+ \listxadd
+ {\@glsxtr@docdefs@multilist}{\expandonce\@gls@combined@current@label}%
+ }%
+ {%
+ \xifinlist{\@gls@combined@current@label}{\@glsxtr@docdefs@multilist}%
+ {%
+ \PackageError{glossaries-extra}%
+ {Multi-entry label `\@gls@combined@current@label' already defined}%
+ {}%
+ \let\@def@multi@glossaryentry@do\@gobbletwo
+ }%
+ {%
+ \listxadd
+ {\@glsxtr@docdefs@multilist}{\expandonce\@gls@combined@current@label}%
+ }%
+ }%
+ \@def@multi@glossaryentry@do{#1}{#2}%
+}
+\newcommand*{\@multi@glossary@doifexists}{\glsdoifexists}
+\newrobustcmd{\providemultiglossaryentry}[2][]{%
+ \def\@gls@combined@current@opts{#1}%
+ \def\@gls@combined@current@label{#2}%
+ \ifcsdef{@gls@combined@\@gls@combined@current@label @main}%
+ {\def\@multi@glossentry@donext{\@provide@multi@glossaryentry@noop}}%
+ {%
+ \ifnum\@glsxtr@docdefval=1\relax
+ \def\@multi@glossentry@donext{\@def@multi@glossaryentry}%
+ \else
+ \def\@multi@glossentry@donext{\@multi@glossaryentry}%
+ \fi
+ }%
+ \@multi@glossentry@donext
+}
+\newcommand*{\@provide@multi@glossaryentry@noop}[2][]{}
+\newcommand*{\@multi@glossaryentry@list}{}
+\newcommand*{\@multi@glossary@entry}[2]{%
+ \protected@edef\@gls@combined@current@main{#1}%
+ \protected@edef\@gls@combined@currentlist{#2}%
+ \mglselementindex=0\relax
+ \@for\@gls@tmp:=\@gls@combined@currentlist\do{%
+ \advance\mglselementindex by 1\relax
+ \@multi@glossary@doifexists{\@gls@tmp}{}%
+ \let\@gls@combined@finalitem\@gls@tmp
+ \ifdefvoid\@gls@combined@current@main
+ {}%
+ {%
+ \ifx\@gls@combined@current@main\@gls@tmp
+ \ifmultiglossaryentryglobal
+ \global\cslet{@gls@combined@\@gls@combined@current@label @main}%
+ \@gls@combined@current@main
+ \csxdef{@gls@combined@\@gls@combined@current@label @mainindex}%
+ {\the\mglselementindex}%
+ \else
+ \cslet{@gls@combined@\@gls@combined@current@label @main}%
+ \@gls@combined@current@main
+ \csedef{@gls@combined@\@gls@combined@current@label @mainindex}%
+ {\the\mglselementindex}%
+ \fi
+ \else
+ \ifmultiglossaryentryglobal
+ \csxdef{@gls@combined@\@gls@combined@current@label @lastotherindex}%
+ {\the\mglselementindex}%
+ \else
+ \csedef{@gls@combined@\@gls@combined@current@label @lastotherindex}%
+ {\the\mglselementindex}%
+ \fi
+ \fi
+ }%
+ }%
+ \ifmultiglossaryentryglobal
+ \csxdef{@gls@combined@\@gls@combined@current@label @total}%
+ {\the\mglselementindex}%
+ \else
+ \csedef{@gls@combined@\@gls@combined@current@label @total}%
+ {\the\mglselementindex}%
+ \fi
+ \ifnum\mglselementindex<2\relax
+ \PackageError{glossaries-extra}{At least 2 labels required in
+ multi-entry element list (\number\mglselementindex\space found)}{}%
+ \else
+ \ifdefvoid\@gls@combined@current@main
+ {}%
+ {%
+ \ifcsundef{@gls@combined@\@gls@combined@current@label @main}%
+ {\PackageError{glossaries-extra}%
+ {Main element `\@gls@combined@current@main' not found in list}%
+ {The final element `\@gls@combined@finalitem' will be used instead}
+ \let\@gls@combined@current@main\@empty
+ }%
+ {}%
+ }%
+ \ifdefvoid\@gls@combined@current@main
+ {%
+ \ifmultiglossaryentryglobal
+ \global\cslet{@gls@combined@\@gls@combined@current@label @main}%
+ \@gls@combined@finalitem
+ \global\csletcs{@gls@combined@\@gls@combined@current@label @mainindex}%
+ {@gls@combined@\@gls@combined@current@label @total}%
+ \csxdef{@gls@combined@\@gls@combined@current@label @lastotherindex}%
+ {\the\numexpr\mglselementindex-1 }%
+ \else
+ \cslet{@gls@combined@\@gls@combined@current@label @main}%
+ \@gls@combined@finalitem
+ \csletcs{@gls@combined@\@gls@combined@current@label @mainindex}%
+ {@gls@combined@\@gls@combined@current@label @total}%
+ \csedef{@gls@combined@\@gls@combined@current@label @lastotherindex}%
+ {\the\numexpr\mglselementindex-1 }%
+ \fi
+ }%
+ {}%
+ \ifmultiglossaryentryglobal
+ \global\cslet{@gls@combined@\@gls@combined@current@label @list}%
+ \@gls@combined@currentlist
+ \protected@csxdef{@gls@combined@\@gls@combined@current@label @options}%
+ {\@gls@combined@current@opts}%
+ \expandafter\@ifdefinable
+ \csname if@gls@combined@\@gls@combined@current@label @flag\endcsname
+ {\expandafter\global\expandafter
+ \newif\csname if@gls@combined@\@gls@combined@current@label @flag\endcsname}%
+ \expandafter\global
+ \csname @gls@combined@\@gls@combined@current@label @flagfalse\endcsname
+ \else
+ \cslet{@gls@combined@\@gls@combined@current@label @list}%
+ \@gls@combined@currentlist
+ \protected@csedef{@gls@combined@\@gls@combined@current@label @options}%
+ {\@gls@combined@current@opts}%
+ \newboolean{@gls@combined@\@gls@combined@current@label @flag}%
+ \csname @gls@combined@\@gls@combined@current@label @flagfalse\endcsname
+ \fi
+ \fi
+ \writemultiglossentry
+ {\@gls@combined@current@opts}{\@gls@combined@current@label}%
+ {\csuse{@gls@combined@\@gls@combined@current@label @main}}{#2}%
+ \ifmultiglossaryentryglobal
+ \ifdefempty\@multi@glossaryentry@list
+ {\let\@multi@glossaryentry@list\@gls@combined@current@label}%
+ {%
+ \eappto\@multi@glossaryentry@list{,\expandonce\@gls@combined@current@label}%
+ }%
+ \else
+ \ifdefempty\@multi@glossaryentry@list
+ {\global\let\@multi@glossaryentry@list\@gls@combined@current@label}%
+ {%
+ \xappto\@multi@glossaryentry@list{,\expandonce\@gls@combined@current@label}%
+ }%
+ \fi
+}
+\newcommand*{\@glsxtr@multientry}[4]{%
+ \ifnum\@glsxtr@docdefval=1\relax
+ \bgroup
+ \def\@gls@combined@current@opts{#1}%
+ \def\@gls@combined@current@label{#2}%
+ \let\@multi@glossary@doifexists\@secondoftwo
+ \let\writemultiglossentry\@gobblefour
+ \multiglossaryentryglobaltrue
+ \@multi@glossary@entry{#3}{#4}%
+ \egroup
+ \fi
+}
+\newcommand*{\writemultiglossentry}[4]{%
+ \protected@write\@auxout{}{\string\@glsxtr@multientry{#1}{#2}{#3}{#4}}%
+}
+\newcommand*{\ifmglsused}[3]{%
+ \ifbool{@gls@combined@#1@flag}{#2}{#3}%
+}
+\newcommand*{\mglsunset}[1]{%
+ \gls@ifnotmeasuring
+ {%
+ \glsxtrifmulti{#1}{\@mglsunset{#1}}%
+ {%
+ \glsxtrundefaction{Multi entry `#1' hasn't been defined}%
+ {You need to define `#1' with \string\multiglossaryentry}%
+ }%
+ }%
+}
+\newcommand*{\@mglsunset}[1]{%
+ \expandafter\global\csname @gls@combined@#1@flagtrue\endcsname
+}
+\newcommand*{\mglsreset}[1]{%
+ \gls@ifnotmeasuring
+ {%
+ \glsxtrifmulti{#1}{\@mglsreset{#1}}%
+ {%
+ \glsxtrundefaction{Multi entry `#1' hasn't been defined}%
+ {You need to define `#1' with \string\multiglossaryentry}%
+ }%
+ }%
+}
+\newcommand*{\@mglsreset}[1]{%
+ \expandafter\global\csname @gls@combined@#1@flagfalse\endcsname
+}
+\newcommand*{\mglslocalunset}[1]{%
+ \gls@ifnotmeasuring
+ {%
+ \glsxtrifmulti{#1}{\@mglslocalunset{#1}}%
+ {%
+ \glsxtrundefaction{Multi entry `#1' hasn't been defined}%
+ {You need to define `#1' with \string\multiglossaryentry}%
+ }%
+ }%
+}
+\newcommand*{\@mglslocalunset}[1]{%
+ \csname @gls@combined@#1@flagtrue\endcsname
+}
+\newcommand*{\mglslocalreset}[1]{%
+ \gls@ifnotmeasuring
+ {%
+ \glsxtrifmulti{#1}{\@mglslocalreset{#1}}%
+ {%
+ \glsxtrundefaction{Multi entry `#1' hasn't been defined}%
+ {You need to define `#1' with \string\multiglossaryentry}%
+ }%
+ }%
+}
+\newcommand*{\@mglslocalreset}[1]{%
+ \csname @gls@combined@#1@flagfalse\endcsname
+}
+\newcommand*{\mglsunsetall}{%
+ \@for\@mgls@thislabel:=\@multi@glossaryentry@list\do{\mglsunset\@mgls@thislabel}%
+}%
+\newcommand*{\mglsresetall}{%
+ \@for\@mgls@thislabel:=\@multi@glossaryentry@list\do{\mglsreset\@mgls@thislabel}%
+}%
+\newrobustcmd{\mglsSetMain}[2]{%
+ \ifcsundef{@gls@combined@#1@main}%
+ {\PackageError{glossaries-extra}{Multi-entry label `#1' not defined}{}}%
+ {%
+ \protected@edef\@gls@combined@current@main{#2}%
+ \letcs\@gls@combined@currentlist{@gls@combined@#1@list}%
+ \mglselementindex=0\relax
+ \count@=0\relax
+ \@for\@gls@tmp:=\@gls@combined@currentlist\do{%
+ \advance\mglselementindex by 1\relax
+ \ifx\@gls@combined@current@main\@gls@tmp
+ \count@=\mglselementindex\relax
+ \let\@gls@combined@finalitem\@gls@tmp
+ \ifmultiglossaryentryglobal
+ \global\cslet{@gls@combined@#1@main}\@gls@combined@current@main
+ \csxdef{@gls@combined@#1@mainindex}{\the\mglselementindex}%
+ \else
+ \cslet{@gls@combined@#1@main}\@gls@combined@current@main
+ \csedef{@gls@combined@#1@mainindex}{\the\mglselementindex}%
+ \fi
+ \else
+ \ifmultiglossaryentryglobal
+ \csxdef{@gls@combined@#1@lastotherindex}{\the\mglselementindex}%
+ \else
+ \csedef{@gls@combined@#1@lastotherindex}{\the\mglselementindex}%
+ \fi
+ \fi
+ }%
+ \ifnum\count@=0\relax
+ \PackageError{glossaries-extra}{Label `#2' is not in `#1' set
+ (\@gls@combined@currentlist)}{}%
+ \ifmultiglossaryentryglobal
+ \global\cslet{@gls@combined@#1@main}\@gls@combined@finalitem
+ \csxdef{@gls@combined@#1@mainindex}{\the\mglselementindex}%
+ \csxdef{@gls@combined@#1@lastotherindex}{%
+ \number\numexpr\mglselementindex-1 }%
+ \else
+ \cslet{@gls@combined@#1@main}\@gls@combined@finalitem
+ \csedef{@gls@combined@#1@mainindex}{\the\mglselementindex}%
+ \csedef{@gls@combined@#1@lastotherindex}{%
+ \number\numexpr\mglselementindex-1 }%
+ \fi
+ \fi
+ }%
+}
+\newrobustcmd{\mglsSetOptions}[2]{%
+ \ifcsundef{@gls@combined@#1@main}%
+ {\PackageError{glossaries-extra}{Multi-entry label `#1' not defined}{}}%
+ {%
+ \csdef{@gls@combined@#1@options}{#2}%
+ }%
+}
+\newrobustcmd{\mglsAddOptions}[2]{%
+ \ifcsundef{@gls@combined@#1@main}%
+ {\PackageError{glossaries-extra}{Multi-entry label `#1' not defined}{}}%
+ {%
+ \ifcsempty{@gls@combined@#1@options}%
+ {\csdef{@gls@combined@#1@options}{#2}}%
+ {\csappto{@gls@combined@#1@options}{,#2}}%
+ }%
+}
+\newcommand*{\@mgls@all}{}
+\define@key{mgls}{all}{\renewcommand*{\@mgls@all}{#1}}
+\newcommand*{\@mgls@main}{}
+\define@key{mgls}{main}{\renewcommand*{\@mgls@main}{#1}}
+\newcommand*{\@mgls@others}{}
+\define@key{mgls}{others}{\renewcommand*{\@mgls@others}{#1}}
+\newcommand*{\@mgls@setup}{}
+\define@key{mgls}{setup}{%
+ \@mgls@setup@do{\renewcommand*{\@mgls@setup}{#1}}%
+}
+\newcommand*{\@mgls@setup@do}[1]{#1}
+\newcommand*{\@mgls@setup@do@not}[1]{%
+ \PackageError{glossaries-extra}{`setup' key not permitted inside
+ `mglsopts' value}{}%
+}
+\newcommand*{\mgls@disable@setup}{%
+ \let\@mgls@setup@do\@mgls@setup@do@not
+}
+\newcommand*{\mgls@enable@setup}{%
+ \let\@mgls@setup@do\@firstofone
+}
+\newcommand\@mgls@unsetaction{0}
+\define@choicekey{mgls}{multiunset}[\@mgls@unsetaction@val\@mgls@unsetaction]%
+ {global,local,none}{}
+\define@boolkey{mgls}{presetlocal}[true]{}
+\KV@mgls@presetlocalfalse
+\newcommand*{\@mgls@hyper}{}
+\define@choicekey{mgls}{hyper}[\@mgls@hyper@val\@mgls@hyper@nr]{true,false}[true]%
+{%
+ \renewcommand*{\@mgls@hyper}{hyper=#1}%
+ \ifnum\@mgls@hyper@nr=1\relax
+ \let\@mgls@hyperlink\@secondoftwo
+ \else
+ \let\@mgls@hyperlink\@@mgls@hyperlink
+ \fi
+}
+\newcommand*{\@@mgls@hyperlink}[2]{%
+ \ifx\@glslink\glsdonohyperlink
+ #2%
+ \else
+ \glsxtr@org@dohyperlink{\glolinkprefix#1}{#2}%
+ \fi
+}
+\let\@mgls@hyperlink\@@mgls@hyperlink
+\newcommand*{\mglsforelements}[3]{%
+ \expandafter\@for\expandafter#2\expandafter:\expandafter
+ =\csname @gls@combined@#1@list\endcsname\do{#3}%
+}
+\newcommand*{\mglsforotherelements}[3]{%
+ \expandafter\@for\expandafter#2\expandafter:\expandafter
+ =\csname @gls@combined@#1@list\endcsname\do
+ {\expandafter\ifdefequal\csname @gls@combined@#1@main\endcsname{#2}{}{#3}}%
+}
+\newcommand*{\mglsunsetothers}[1]{%
+ \mglsforotherelements{#1}{\@gls@tmp}{\glsunset{\@gls@tmp}}%
+}
+\newcommand*{\mglslocalunsetothers}[1]{%
+ \mglsforotherelements{#1}{\@gls@tmp}{\glslocalunset{\@gls@tmp}}%
+}
+\newcommand*{\mglselementreset}[1]{%
+ \ifKV@mgls@presetlocal
+ \glslocalreset{#1}%
+ \else
+ \glsreset{#1}%
+ \fi
+}
+\newcommand*{\mglselementunset}[1]{%
+ \ifKV@mgls@presetlocal
+ \glslocalunset{#1}%
+ \else
+ \glsunset{#1}%
+ \fi
+}
+\newcommand*{\@mgls@resetall}{}
+\define@choicekey{mgls}{resetall}%
+[\@mgls@resetall@val\@mgls@resetall@nr]{false,true}[true]%
+{%
+ \ifcase\@mgls@resetall@nr\relax
+ \renewcommand*{\@mgls@resetall}{}%
+ \or
+ \renewcommand*{\@mgls@resetall}{%
+ \@for\@gls@resetlabel:=\mglscurrentlist\do{\mglselementreset\@gls@resetlabel}}%
+ \renewcommand*{\@mgls@unsetall}{}%
+ \fi
+}
+\newcommand*{\@mgls@resetmain}{}
+\define@choicekey{mgls}{resetmain}
+[\@mgls@resetmain@val\@mgls@resetmain@nr]{false,true}[true]%
+{%
+ \ifcase\@mgls@resetmain@nr\relax
+ \renewcommand*{\@mgls@resetmain}{}%
+ \or
+ \renewcommand*{\@mgls@resetmain}{\mglselementreset\mglscurrentmainlabel}%
+ \renewcommand*{\@mgls@unsetmain}{}%
+ \fi
+}
+\newcommand*{\@mgls@resetothers}{}
+\define@choicekey{mgls}{resetothers}
+[\@mgls@resetothers@val\@mgls@resetothers@nr]{false,true}[true]%
+{%
+ \ifcase\@mgls@resetothers@nr\relax
+ \renewcommand*{\@mgls@resetothers}{}%
+ \or
+ \renewcommand*{\@mgls@resetothers}{%
+ \@for\@gls@resetlabel:=\mglscurrentlist\do{%
+ \ifx\@gls@resetlabel\mglscurrentmainlabel
+ \else
+ \mglselementreset\@gls@resetlabel
+ \fi
+ }%
+ }%
+ \renewcommand*{\@mgls@unsetothers}{}%
+ \fi
+}
+\newcommand*{\@mgls@unsetall}{}
+\define@choicekey{mgls}{unsetall}%
+[\@mgls@unsetall@val\@mgls@unsetall@nr]{false,true}[true]%
+{%
+ \ifcase\@mgls@unsetall@nr\relax
+ \renewcommand*{\@mgls@unsetall}{}%
+ \or
+ \renewcommand*{\@mgls@unsetall}{%
+ \@for\@gls@unsetlabel:=\mglscurrentlist\do{\mglselementunset\@gls@unsetlabel}}%
+ \renewcommand*{\@mgls@resetall}{}%
+ \fi
+}
+\newcommand*{\@mgls@unsetmain}{}
+\define@choicekey{mgls}{unsetmain}
+[\@mgls@unsetmain@val\@mgls@unsetmain@nr]{false,true}[true]%
+{%
+ \ifcase\@mgls@unsetmain@nr\relax
+ \renewcommand*{\@mgls@unsetmain}{}%
+ \or
+ \renewcommand*{\@mgls@unsetmain}{\mglselementunset\mglscurrentmainlabel}%
+ \renewcommand*{\@mgls@resetmain}{}%
+ \fi
+}
+\newcommand*{\@mgls@unsetothers}{}
+\define@choicekey{mgls}{unsetothers}
+[\@mgls@unsetothers@val\@mgls@unsetothers@nr]{false,true}[true]%
+{%
+ \ifcase\@mgls@unsetothers@nr\relax
+ \renewcommand*{\@mgls@unsetothers}{}%
+ \or
+ \renewcommand*{\@mgls@unsetothers}{%
+ \@for\@gls@unsetlabel:=\mglscurrentlist\do{%
+ \ifx\@gls@unsetlabel\mglscurrentmainlabel
+ \else
+ \mglselementunset\@gls@unsetlabel
+ \fi
+ }%
+ }%
+ \renewcommand*{\@mgls@resetothers}{}%
+ \fi
+}
+\newcommand{\glsxtr@setup@docurrent}{%
+ \ifx\mglscurrentlabel\mglscurrentmainlabel
+ \mglsisfirstuse
+ {%
+ \ifKV@glsxtrcombined@firstskipmain
+ \let\@mgls@do@current@element\@gobble
+ \else
+ \let\@mgls@do@current@element\@firstofone
+ \fi
+ }%
+ {%
+ \ifKV@glsxtrcombined@usedskipmain
+ \let\@mgls@do@current@element\@gobble
+ \else
+ \let\@mgls@do@current@element\@firstofone
+ \fi
+ }%
+ \else
+ \mglsisfirstuse
+ {%
+ \ifKV@glsxtrcombined@firstskipothers
+ \let\@mgls@do@current@element\@gobble
+ \else
+ \let\@mgls@do@current@element\@firstofone
+ \fi
+ }%
+ {%
+ \ifKV@glsxtrcombined@usedskipothers
+ \let\@mgls@do@current@element\@gobble
+ \else
+ \let\@mgls@do@current@element\@firstofone
+ \fi
+ }%
+ \fi
+}
+\newcommand*{\glsxtr@mgls@checklastelement}[2]{%
+ \ifbool{KV@glsxtrcombined@#1skipmain}%
+ {%
+ \ifbool{KV@glsxtrcombined@#1skipothers}%
+ {%
+ }%
+ {%
+ \ifnum\mglselementindex=\glsxtrmultilastotherindex{#2}\relax
+ \let\mglsiflast\@firstoftwo
+ \else
+ \let\mglsiflast\@secondoftwo
+ \fi
+ }%
+ }%
+ {%
+ \ifbool{KV@glsxtrcombined@#1skipothers}%
+ {%
+ \ifnum\mglselementindex=\glsxtrmultimainindex{#2}\relax
+ \let\mglsiflast\@firstoftwo
+ \else
+ \let\mglsiflast\@secondoftwo
+ \fi
+ }%
+ {%
+ \let\mglsiflast\@secondoftwo
+ }%
+ }%
+}
+\newcommand{\glsxtrmglsWarnAllSkipped}[3]{%
+ \GlossariesExtraWarning{#1}%
+ #3{#2}%
+}
+\newcommand*{\glsxtr@mgls@applyopts}[1]{%
+ \edef\@mgls@dooptions{\noexpand\setkeys*{mgls}{\expandonce#1}}%
+ \@mgls@dooptions
+ \ifdefvoid\XKV@rm{}{\eappto\@mgls@all{,\expandonce\XKV@rm}}%
+ \ifdefvoid\@mgls@setup
+ {}%
+ {%
+ \edef\@mgls@dooptions{%
+ \noexpand\setkeys*{glsxtrcombinedpreopts}{\expandonce\@mgls@setup}}%
+ \mgls@disable@mglsopts
+ \@mgls@dooptions
+ \mgls@enable@mglsopts
+ \ifx\@mgls@setupoptions\@empty
+ \let\@mgls@setupoptions\XKV@rm
+ \else
+ \eappto\@mgls@setupoptions{,\expandonce\XKV@rm}%
+ \fi
+ }%
+ \@mgls@resetall
+ \@mgls@unsetall
+ \@mgls@resetmain
+ \@mgls@unsetmain
+ \@mgls@resetothers
+ \@mgls@unsetothers
+ \let\@mgls@resetall\@empty
+ \let\@mgls@resetmain\@empty
+ \let\@mgls@resetothers\@empty
+ \let\@mgls@unsetall\@empty
+ \let\@mgls@unsetmain\@empty
+ \let\@mgls@unsetothers\@empty
+ \ifmglsused\mglscurrentmultilabel
+ {\let\mglsisfirstuse\@secondoftwo}%
+ {\let\mglsisfirstuse\@firstoftwo}%
+}
+\providecommand{\@firstofthree}[3]{#1}
+\providecommand{\@secondofthree}[3]{#2}
+\providecommand{\@thirdofthree}[3]{#3}
+\newcommand*{\glsxtr@mgls@inner}[7]{%
+ \let\mglslastmainlabel\@empty
+ \let\mglsiflastmainwasfirstuse\@firstoftwo
+ \let\mglsiflastmainwasplural\@secondoftwo
+ \let\mglsiflastmaincapscase\@firstofthree
+ \let\mglsiflastmainskipped\@firstoftwo
+ \bgroup
+ \ifcsundef{@gls@combined@#2@main}%
+ {%
+ \glsxtrundefaction{Multi entry `#2' hasn't been defined}%
+ {You need to define `#2' with \string\multiglossaryentry}%
+ \gdef\@mgls@post@hookdefs{%
+ \protected@edef\mglslastmultilabel{#2}%
+ \let\mglswasfirstuse\@firstoftwo
+ \let\mglslastcategory\@empty
+ \let\mglsiflastelementskipped\@firstoftwo
+ \let\mglsiflastelementwasfirstuse\@firstoftwo
+ \let\mglsiflastelementwasplural\@secondoftwo
+ \let\mglsiflastelementcapscase\@firstofthree
+ \let\mglslastelementlabel\@empty
+ \let\mgls@do@postlinkhook\relax
+ }%
+ }%
+ {%
+ \protected@edef\mglscurrentmultilabel{#2}%
+ \letcs\mglscurrentmainlabel{@gls@combined@#2@main}%
+ \letcs\mglscurrentlist{@gls@combined@#2@list}%
+ \letcs\mglscurrentoptions{@gls@combined@#2@options}%
+ \ifmglsused\mglscurrentmultilabel
+ {\let\mglsisfirstuse\@secondoftwo}%
+ {\let\mglsisfirstuse\@firstoftwo}%
+ \edef\@mgls@dooptions{%
+ \noexpand\setkeys*{glsxtrcombinedpreopts}{\expandonce\mglscurrentoptions}}%
+ \@mgls@dooptions
+ \let\@mgls@setupoptions\XKV@rm
+ \mgls@disable@setup
+ \ifdefvoid\@gls@combined@mglsopts
+ {}%
+ {\glsxtr@mgls@applyopts\@gls@combined@mglsopts}%
+ \mgls@enable@setup
+ \ifstrempty{#1}{}{\def\@mgls@options{#1}\glsxtr@mgls@applyopts\@mgls@options}%
+ \ifx\@gls@combined@category\empty
+ \else
+ \glshascategoryattribute{\@gls@combined@category}{multioptions}%
+ {%
+ \letcs\@mgls@attroptions{@glsxtr@categoryattr@@\@gls@combined@category
+ @multioptions}%
+ \let\@gls@combined@mglsopts\@empty
+ \edef\@mgls@dooptions{%
+ \noexpand\setkeys*{glsxtrcombinedpreopts}{\expandonce\@mgls@attroptions}}%
+ \@mgls@dooptions
+ \eappto\@mgls@setupoptions{,\expandonce\XKV@rm}%
+ \ifx\@gls@combined@mglsopts\@empty
+ \else
+ \let\@mgls@setup\@empty
+ \mgls@disable@setup
+ \glsxtr@mgls@applyopts\@gls@combined@mglsopts
+ \mgls@enable@setup
+ \fi
+ }%
+ {}%
+ \fi
+ \edef\@mgls@dooptions{%
+ \noexpand\setkeys{glsxtrcombined}{\expandonce\@mgls@setupoptions}}%
+ \@mgls@dooptions
+ \let\mglscurrentcategory\@gls@combined@category
+ \ifnum\@gls@combined@hyper=1\relax
+ \def\@mgls@combinedlink{\@mgls@hyperlink{\mglscurrentmainlabel}}%
+ \else
+ \def\@mgls@combinedlink{\@firstofone}%
+ \fi
+ \def\@gls@combined@encapsulator##1{%
+ \@mgls@combinedlink{\csuse{\@gls@combined@textformat}{##1}}}%
+ \let\@mgls@do@current@element\@firstofone
+ \mglsisfirstuse
+ {%
+ \ifKV@glsxtrcombined@firstskipmain
+ \ifKV@glsxtrcombined@firstskipothers
+ \let\@gls@org@combined@encapsulator\@gls@combined@encapsulator
+ \def\@gls@combined@encapsulator##1{%
+ \glsxtrmglsWarnAllSkipped{All elements skipped for
+ first use of multi-entry `#2'}{#3}%
+ {\@gls@org@combined@encapsulator}%
+ }%
+ \let\@mgls@do@current@element\@gobble
+ \fi
+ \fi
+ }%
+ {%
+ \ifKV@glsxtrcombined@usedskipmain
+ \ifKV@glsxtrcombined@usedskipothers
+ \let\@gls@org@combined@encapsulator\@gls@combined@encapsulator
+ \def\@gls@combined@encapsulator##1{%
+ \glsxtrmglsWarnAllSkipped{All elements skipped for
+ subsequent use of multi-entry `#2'}{#3}%
+ {\@gls@org@combined@encapsulator}%
+ }%
+ \let\@mgls@do@current@element\@gobble
+ \fi
+ \fi
+ }%
+ \mglsisfirstuse
+ {%
+ \let\mglscurrentprefix\@gls@combined@firstprefix
+ \let\mglscurrentsuffix\@gls@combined@firstsuffix
+ }%
+ {%
+ \let\mglscurrentprefix\@gls@combined@usedprefix
+ \let\mglscurrentsuffix\@gls@combined@usedsuffix
+ }%
+ \xdef\@mgls@post@hookdefs{%
+ \noexpand\def\noexpand\mglslastmultilabel{\expandonce\mglscurrentmultilabel}%
+ \noexpand\def\noexpand\mglslastcategory{\mglscurrentcategory}%
+ }%
+ \ifx\@mgls@do@current@element\@gobble
+ \gappto\@mgls@post@hookdefs{%
+ \let\mglsiflastelementskipped\@firstoftwo
+ \let\mglslastelementlabel\@empty
+ \let\mglsiflastelementwasfirstuse\@firstoftwo
+ \let\mglsiflastelementwasplural\@secondoftwo
+ \let\mglsiflastelementcapscase\@firstofthree
+ }%
+ \fi
+ \mglsisfirstuse
+ {%
+ \gappto\@mgls@post@hookdefs{\let\mglswasfirstuse\@firstoftwo}%
+ \ifcase\@gls@combined@mpostlink@nr\relax
+ \gappto\@mgls@post@hookdefs{\let\mgls@do@postlinkhook\relax}%
+ \or
+ \ifcase\@gls@combined@mpostlinkelement@nr\relax
+ \gappto\@mgls@post@hookdefs{\let\mgls@do@postlinkhook\mglslastelementpostlinkhook}%
+ \or
+ \gappto\@mgls@post@hookdefs{\let\mgls@do@postlinkhook\mglslastmainpostlinkhook}%
+ \or
+ \gappto\@mgls@post@hookdefs{\let\mgls@do@postlinkhook\mglscustompostlinkhook}%
+ \fi
+ \or
+ \ifcase\@gls@combined@mpostlinkelement@nr\relax
+ \gappto\@mgls@post@hookdefs{\let\mgls@do@postlinkhook\mglslastelementpostlinkhook}%
+ \or
+ \gappto\@mgls@post@hookdefs{\let\mgls@do@postlinkhook\mglslastmainpostlinkhook}%
+ \or
+ \gappto\@mgls@post@hookdefs{\let\mgls@do@postlinkhook\mglscustompostlinkhook}%
+ \fi
+ \or
+ \gappto\@mgls@post@hookdefs{\let\mgls@do@postlinkhook\relax}%
+ \fi
+ }%
+ {%
+ \gappto\@mgls@post@hookdefs{\let\mglswasfirstuse\@secondoftwo}%
+ \ifcase\@gls@combined@mpostlink@nr\relax
+ \gappto\@mgls@post@hookdefs{\let\mgls@do@postlinkhook\relax}%
+ \or
+ \ifcase\@gls@combined@mpostlinkelement@nr\relax
+ \gappto\@mgls@post@hookdefs{\let\mgls@do@postlinkhook\mglslastelementpostlinkhook}%
+ \or
+ \gappto\@mgls@post@hookdefs{\let\mgls@do@postlinkhook\mglslastmainpostlinkhook}%
+ \or
+ \gappto\@mgls@post@hookdefs{\let\mgls@do@postlinkhook\mglscustompostlinkhook}%
+ \fi
+ \or
+ \gappto\@mgls@post@hookdefs{\let\mgls@do@postlinkhook\relax}%
+ \or
+ \ifcase\@gls@combined@mpostlinkelement@nr\relax
+ \gappto\@mgls@post@hookdefs{\let\mgls@do@postlinkhook\mglslastelementpostlinkhook}%
+ \or
+ \gappto\@mgls@post@hookdefs{\let\mgls@do@postlinkhook\mglslastmainpostlinkhook}%
+ \or
+ \gappto\@mgls@post@hookdefs{\let\mgls@do@postlinkhook\mglscustompostlinkhook}%
+ \fi
+ \fi
+ }%
+ \let\mgls@org@postlinkhook\glspostlinkhook
+ \mglsprefix
+ \let\mglslastelementlabel\@empty
+ \@gls@combined@encapsulator
+ {%
+ \def\@mgls@previouslabel{}%
+ \mglselementindex=0\relax
+ \@for\mglscurrentlabel:=\mglscurrentlist\do{%
+ \advance\mglselementindex by 1\relax
+ \glsxtr@setup@docurrent
+ \ifx\@xfor@nextelement\@nnil
+ \let\mglsiflast\@firstoftwo
+ \else
+ \let\mglsiflast\@secondoftwo
+ \mglsisfirstuse
+ {%
+ \glsxtr@mgls@checklastelement{first}{#2}%
+ }%
+ {%
+ \glsxtr@mgls@checklastelement{used}{#2}%
+ }%
+ \fi
+ \ifcase\@gls@combined@postlinks@nr\relax
+ \let\glspostlinkhook\relax
+ \or
+ \let\glspostlinkhook\mgls@org@postlinkhook
+ \or
+ \mglsiflast
+ {%
+ \let\glspostlinkhook\relax
+ }%
+ {%
+ \let\glspostlinkhook\mgls@org@postlinkhook
+ }%
+ \or
+ \ifx\mglscurrentlabel\mglscurrentmainlabel
+ \mglsiflast
+ {%
+ \let\glspostlinkhook\relax
+ }%
+ {%
+ \let\glspostlinkhook\mgls@org@postlinkhook
+ }%
+ \else
+ \let\glspostlinkhook\relax
+ \fi
+ \or
+ \ifx\mglscurrentlabel\mglscurrentmainlabel
+ \let\glspostlinkhook\mgls@org@postlinkhook
+ \else
+ \let\glspostlinkhook\relax
+ \fi
+ \or
+ \ifx\mglscurrentlabel\mglscurrentmainlabel
+ \let\glspostlinkhook\relax
+ \else
+ \mglsiflast
+ {%
+ \let\glspostlinkhook\relax
+ }%
+ {%
+ \let\glspostlinkhook\mgls@org@postlinkhook
+ }%
+ \fi
+ \or
+ \ifx\mglscurrentlabel\mglscurrentmainlabel
+ \let\glspostlinkhook\relax
+ \else
+ \let\glspostlinkhook\mgls@org@postlinkhook
+ \fi
+ \fi
+ \mglsiflast
+ {%
+ \xappto\@mgls@post@hookdefs{%
+ \noexpand\def\noexpand\mglslastelementlabel
+ {\expandonce\mglscurrentlabel}}%
+ }%
+ {}%
+ \@mgls@do@current@element
+ {%
+ \mglselementprehook
+ \GlsXtrIfUnusedOrUndefined{\mglscurrentlabel}%
+ {\let\@mgls@current@iffirstuse\@firstoftwo}%
+ {\let\@mgls@current@iffirstuse\@secondoftwo}%
+ \ifx\mglscurrentlabel\mglscurrentmainlabel
+ \edef\@mgls@current@options{format=\@gls@combined@encapmain}%
+ \ifcase\@gls@combined@indexmain
+ \appto\@mgls@current@options{,noindex}%
+ \or
+ \appto\@mgls@current@options{,noindex=false}%
+ \or
+ \@mgls@current@iffirstuse
+ {\appto\@mgls@current@options{,noindex=false}}%
+ {\appto\@mgls@current@options{,noindex}}%
+ \fi
+ \ifcase\@gls@combined@hyper\relax
+ \appto\@mgls@current@options{,hyper=false}% none
+ \or
+ \appto\@mgls@current@options{,hyper=false}% allmain
+ \or
+ \eappto\@mgls@current@options{,\@mgls@hyper}% mainonly
+ \or
+ \eappto\@mgls@current@options{,\@mgls@hyper}% individual
+ \or
+ \appto\@mgls@current@options{,hyper=false}% otheronly
+ \or
+ \mglsisfirstuse
+ {%
+ \appto\@mgls@current@options{,hyper=false}% notmainfirst
+ }%
+ {%
+ \eappto\@mgls@current@options{,\@mgls@hyper}% notmainfirst
+ }%
+ \or
+ \eappto\@mgls@current@options{,\@mgls@hyper}% nototherfirst
+ \or
+ \mglsisfirstuse
+ {%
+ \appto\@mgls@current@options{,hyper=false}% notfirst
+ }%
+ {%
+ \eappto\@mgls@current@options{,\@mgls@hyper}% notfirst
+ }%
+ \fi
+ \eappto\@mgls@current@options{,\@mgls@all,\@mgls@main}%
+ \else
+ \edef\@mgls@current@options{format=\@gls@combined@encapothers}%
+ \ifcase\@gls@combined@indexothers\relax
+ \appto\@mgls@current@options{,noindex}%
+ \or
+ \appto\@mgls@current@options{,noindex=false}%
+ \or
+ \@mgls@current@iffirstuse
+ {\appto\@mgls@current@options{,noindex=false}}%
+ {\appto\@mgls@current@options{,noindex}}%
+ \fi
+ \ifcase\@gls@combined@hyper\relax
+ \appto\@mgls@current@options{,hyper=false}% none
+ \or
+ \appto\@mgls@current@options{,hyper=false}% allmain
+ \or
+ \appto\@mgls@current@options{,hyper=false}% mainonly
+ \or
+ \eappto\@mgls@current@options{,\@mgls@hyper}% individual
+ \or
+ \eappto\@mgls@current@options{,\@mgls@hyper}% otheronly
+ \or
+ \eappto\@mgls@current@options{,\@mgls@hyper}% notmainfirst
+ \or
+ \mglsisfirstuse
+ {%
+ \appto\@mgls@current@options{,hyper=false}% nototherfirst
+ }%
+ {%
+ \eappto\@mgls@current@options{,\@mgls@hyper}% nototherfirst
+ }%
+ \or
+ \mglsisfirstuse
+ {%
+ \appto\@mgls@current@options{,hyper=false}% notfirst
+ }%
+ {%
+ \eappto\@mgls@current@options{,\@mgls@hyper}% notfirst
+ }%
+ \fi
+ \eappto\@mgls@current@options{,\@mgls@all,\@mgls@others}%
+ \fi
+ \ifx\@mgls@previouslabel\empty
+ \ifx\mglscurrentlabel\mglscurrentmainlabel
+ \let\@mgls@cs#6\relax
+ \else
+ \let\@mgls@cs#4\relax
+ \fi
+ \else
+ \@mgls@previous@iffirstuse
+ {%
+ \@mgls@current@iffirstuse
+ {\glscombinedfirstsepfirst{\@mgls@previouslabel}{\mglscurrentlabel}}%
+ {\glscombinedfirstsep{\@mgls@previouslabel}{\mglscurrentlabel}}%
+ }%
+ {%
+ \@mgls@current@iffirstuse
+ {\glscombinedsepfirst{\@mgls@previouslabel}{\mglscurrentlabel}}%
+ {\glscombinedsep{\@mgls@previouslabel}{\mglscurrentlabel}}%
+ }%
+ \ifx\mglscurrentlabel\mglscurrentmainlabel
+ \let\@mgls@cs#7\relax
+ \else
+ \let\@mgls@cs#5\relax
+ \fi
+ \fi
+ \mglsiflast
+ {\expandafter\@mgls@cs\expandafter{\@mgls@current@options}{\mglscurrentlabel}[#3]}%
+ {\expandafter\@mgls@cs\expandafter{\@mgls@current@options}{\mglscurrentlabel}[]}%
+ \ifx\mglscurrentlabel\mglscurrentmainlabel
+ \xappto\@mgls@post@hookdefs{%
+ \noexpand\def\noexpand\mglslastmainlabel
+ {\expandonce\mglscurrentmainlabel}%
+ }%
+ \glsxtrifwasfirstuse
+ {%
+ \gappto\@mgls@post@hookdefs{\let\mglsiflastmainwasfirstuse\@firstoftwo}%
+ }%
+ {%
+ \gappto\@mgls@post@hookdefs{\let\mglsiflastmainwasfirstuse\@secondoftwo}%
+ }%
+ \glsifplural
+ {%
+ \gappto\@mgls@post@hookdefs{\let\mglsiflastmainwasplural\@firstoftwo}%
+ }%
+ {%
+ \gappto\@mgls@post@hookdefs{\let\mglsiflastmainwasplural\@secondoftwo}%
+ }%
+ \glscapscase
+ {%
+ \gappto\@mgls@post@hookdefs{%
+ \let\mglsiflastmaincapscase\@firstofthree
+ }%
+ }%
+ {%
+ \gappto\@mgls@post@hookdefs{%
+ \let\mglsiflastmaincapscase\@secondofthree
+ }%
+ }%
+ {%
+ \gappto\@mgls@post@hookdefs{%
+ \let\mglsiflastmaincapscase\@thirdofthree
+ }%
+ }%
+ \fi
+ \let\@mgls@previouslabel\mglscurrentlabel
+ \let\@mgls@previous@iffirstuse\@mgls@current@iffirstuse
+ }%
+ \mglselementposthook
+ }%
+ \ifx\mglslastmainlabel\@empty
+ \gappto\@mgls@post@hookdefs{\let\mglsiflastmainskipped\@firstoftwo}%
+ \else
+ \gappto\@mgls@post@hookdefs{\let\mglsiflastmainskipped\@secondoftwo}%
+ \fi
+ \ifx\@mgls@do@current@element\@gobble
+ \gappto\@mgls@post@hookdefs{\let\mglsiflastelementskipped\@firstoftwo}%
+ \else
+ \gappto\@mgls@post@hookdefs{\let\mglsiflastelementskipped\@secondoftwo}%
+ \fi
+ \glsxtrifwasfirstuse
+ {%
+ \gappto\@mgls@post@hookdefs{\let\mglsiflastelementwasfirstuse\@firstoftwo}%
+ }%
+ {%
+ \gappto\@mgls@post@hookdefs{\let\mglsiflastelementwasfirstuse\@secondoftwo}%
+ }%
+ \glsifplural
+ {%
+ \gappto\@mgls@post@hookdefs{\let\mglsiflastelementwasplural\@firstoftwo}%
+ }%
+ {%
+ \gappto\@mgls@post@hookdefs{\let\mglsiflastelementwasplural\@secondoftwo}%
+ }%
+ \glscapscase
+ {%
+ \gappto\@mgls@post@hookdefs{%
+ \let\mglsiflastelementcapscase\@firstofthree
+ }%
+ }%
+ {%
+ \gappto\@mgls@post@hookdefs{%
+ \let\mglsiflastelementcapscase\@secondofthree
+ }%
+ }%
+ {%
+ \gappto\@mgls@post@hookdefs{%
+ \let\mglsiflastelementcapscase\@thirdofthree
+ }%
+ }%
+ }%
+ \@mgls@post@hookdefs
+ \mglssuffix
+ \ifcase\@mgls@unsetaction\relax
+ \xappto\@mgls@post@hookdefs{%
+ \noexpand\mglsunset{\expandonce\mglscurrentmultilabel}}%
+ \or
+ \xappto\@mgls@post@hookdefs{%
+ \noexpand\mglslocalunset{\expandonce\mglscurrentmultilabel}}%
+ \fi
+ }%
+ \glsxtrmglswrite{#2}%
+ \egroup
+ \@mgls@post@hookdefs
+ \mgls@do@postlinkhook
+}
+\newcommand*{\mglscustompostlinkhook}{}
+\newcommand*{\mglslastelementpostlinkhook}{%
+ \let\glsxtrifwasfirstuse\mglsiflastelementwasfirstuse
+ \let\glsifplural\mglsiflastelementwasplural
+ \let\glscapscase\mglsiflastelementcapscase
+ \let\glslabel\mglslastelementlabel
+ \glspostlinkhook
+}
+\newcommand*{\mglslastmainpostlinkhook}{%
+ \let\glsxtrifwasfirstuse\mglsiflastmainwasfirstuse
+ \let\glsifplural\mglsiflastmainwasplural
+ \let\glscapscase\mglsiflastmaincapscase
+ \let\glslabel\mglslastmainlabel
+ \glspostlinkhook
+}
+\newcommand*{\mglsdefcategoryprefix}[2]{%
+ \csdef{mglsprefix@#1}{#2}%
+}
+\newcommand*{\mglshascategoryprefix}[3]{%
+ \ifcsdef{mglsprefix@#1}{#2}{#3}%
+}
+\newcommand*{\mglsusecategoryprefix}[1]{%
+ \csuse{mglsprefix@#1}%
+}
+\newcommand*{\mglsprefix}{%
+ \ifdefempty\mglscurrentcategory
+ {\mglscurrentprefix}%
+ {%
+ \mglshascategoryprefix{\mglscurrentcategory}%
+ {\mglsusecategoryprefix{\mglscurrentcategory}}%
+ {\mglscurrentprefix}%
+ }%
+}
+\newcommand*{\mglsdefcategorysuffix}[2]{%
+ \csdef{mglssuffix@#1}{#2}%
+}
+\newcommand*{\mglshascategorysuffix}[3]{%
+ \ifcsdef{mglssuffix@#1}{#2}{#3}%
+}
+\newcommand*{\mglsusecategorysuffix}[1]{%
+ \csuse{mglssuffix@#1}%
+}
+\newcommand*{\mglssuffix}{%
+ \ifdefempty\mglscurrentcategory
+ {\ifdefempty{\mglscurrentsuffix}{}{\space(\mglscurrentsuffix)}}%
+ {%
+ \mglshascategorysuffix{\mglscurrentcategory}%
+ {\mglsusecategorysuffix{\mglscurrentcategory}}%
+ {\ifdefempty{\mglscurrentsuffix}{}{\space(\mglscurrentsuffix)}}%
+ }%
+}
+\newcommand*{\mglselementprehook}{}
+\newcommand*{\mglselementposthook}{}
+\newcommand*{\glscombinedsep}[2]{%
+ \glshasattribute{#1}{combinedsep}%
+ {\glsgetattribute{#1}{combinedsep}}%
+ { }%
+}
+\newcommand*{\glscombinedfirstsepfirst}[2]{%
+ \glshasattribute{#1}{combinedfirstsepfirst}%
+ {\glsgetattribute{#1}{combinedfirstsepfirst}}%
+ {\glscombinedsep{#1}{#2}}%
+}
+\newcommand*{\glscombinedfirstsep}[2]{%
+ \glshasattribute{#1}{combinedfirstsep}%
+ {\glsgetattribute{#1}{combinedfirstsep}}%
+ {\glscombinedsep{#1}{#2}}%
+}
+\newcommand*{\glscombinedsepfirst}[2]{%
+ \glshasattribute{#1}{combinedsepfirst}%
+ {\glsgetattribute{#1}{combinedsepfirst}}%
+ {\glscombinedsep{#1}{#2}}%
+}
+\newcommand*{\glssetcombinedsepabbrvnbsp}{%
+ \renewcommand*{\glscombinedsep}[2]{%
+ \glshasattribute{##1}{combinedsep}%
+ {\glsgetattribute{##1}{combinedsep}}%
+ {\ifhasshort{##1}{~}{ }}%
+ }%
+ \renewcommand*{\glscombinedsepfirst}[2]{%
+ \glshasattribute{##1}{combinedsepfirst}%
+ {\glsgetattribute{##1}{combinedsepfirst}}%
+ {\ifhasshort{##1}{~}{ }}%
+ }%
+ \renewcommand*{\glscombinedfirstsep}[2]{%
+ \glshasattribute{##1}{combinedfirstsep}%
+ {\glsgetattribute{##1}{combinedfirstsep}}%
+ { }%
+ }%
+ \renewcommand*{\glscombinedfirstsepfirst}[2]{%
+ \glshasattribute{##1}{combinedfirstsepfirst}%
+ {\glsgetattribute{##1}{combinedfirstsepfirst}}%
+ { }%
+ }%
+}
+\newcommand*{\glssetcombinedsepabbrvnone}{%
+ \renewcommand*{\glscombinedsep}[2]{%
+ \glshasattribute{##1}{combinedsep}%
+ {\glsgetattribute{##1}{combinedsep}}%
+ {\ifhasshort{##1}{}{\ifhasshort{##2}{}{ }}}%
+ }%
+ \renewcommand*{\glscombinedsepfirst}[2]{%
+ \glshasattribute{##1}{combinedsepfirst}%
+ {\glsgetattribute{##1}{combinedsepfirst}}%
+ {\ifhasshort{##1}{}{ }}%
+ }%
+ \renewcommand*{\glscombinedfirstsep}[2]{%
+ \glshasattribute{##1}{combinedfirstsep}%
+ {\glsgetattribute{##1}{combinedfirstsep}}%
+ {\ifhasshort{##2}{}{ }}%
+ }%
+ \renewcommand*{\glscombinedfirstsepfirst}[2]{%
+ \glshasattribute{##1}{combinedfirstsepfirst}%
+ {\glsgetattribute{##1}{combinedfirstsepfirst}}%
+ { }%
+ }%
+}
+\newcommand*{\glssetcombinedsepnarrow}[2]{%
+ \renewcommand*{\glscombinedsep}[2]{%
+ \glshasattribute{##1}{combinedsep}%
+ {\glsgetattribute{##1}{combinedsep}}%
+ {%
+ \ifhasshort{##1}%
+ {\settowidth{\dimen@}{\glsentryshort{##1}}}%
+ {\settowidth{\dimen@}{\glsentrytext{##1}}}%
+ \ifdim\dimen@<#1\relax
+ #2%
+ \else
+ \ifhasshort{##2}%
+ {\settowidth{\dimen@}{\glsentryshort{##2}}}%
+ {\settowidth{\dimen@}{\glsentrytext{##2}}}%
+ \ifdim\dimen@<#1\relax
+ #2%
+ \else
+ \space
+ \fi
+ \fi
+ }%
+ }%
+ \renewcommand*{\glscombinedsepfirst}[2]{%
+ \glshasattribute{##1}{combinedsepfirst}%
+ {\glsgetattribute{##1}{combinedsepfirst}}%
+ {%
+ \ifhasshort{##1}%
+ {\settowidth{\dimen@}{\glsentryshort{##1}}}%
+ {\settowidth{\dimen@}{\glsentrytext{##1}}}%
+ \ifdim\dimen@<#1\relax
+ #2%
+ \else
+ \ifhaslong{##2}%
+ {\settowidth{\dimen@}{\glsentrylong{##2}}}%
+ {\settowidth{\dimen@}{\glsentryfirst{##2}}}%
+ \ifdim\dimen@<#1\relax
+ #2%
+ \else
+ \space
+ \fi
+ \fi
+ }%
+ }%
+ \renewcommand*{\glscombinedfirstsep}[2]{%
+ \glshasattribute{##1}{combinedfirstsep}%
+ {\glsgetattribute{##1}{combinedfirstsep}}%
+ {%
+ \ifhaslong{##1}%
+ {\settowidth{\dimen@}{\glsentrylong{##1}}}%
+ {\settowidth{\dimen@}{\glsentryfirst{##1}}}%
+ \ifdim\dimen@<#1\relax
+ #2%
+ \else
+ \ifhasshort{##2}%
+ {\settowidth{\dimen@}{\glsentryshort{##2}}}%
+ {\settowidth{\dimen@}{\glsentrytext{##2}}}%
+ \ifdim\dimen@<#1\relax
+ #2%
+ \else
+ \space
+ \fi
+ \fi
+ }%
+ }%
+ \renewcommand*{\glscombinedfirstsepfirst}[2]{%
+ \glshasattribute{##1}{combinedfirstsepfirst}%
+ {\glsgetattribute{##1}{combinedfirstsepfirst}}%
+ {%
+ \ifhaslong{##1}%
+ {\settowidth{\dimen@}{\glsentrylong{##1}}}%
+ {\settowidth{\dimen@}{\glsentryfirst{##1}}}%
+ \ifdim\dimen@<#1\relax
+ #2%
+ \else
+ \ifhaslong{##2}%
+ {\settowidth{\dimen@}{\glsentrylong{##2}}}%
+ {\settowidth{\dimen@}{\glsentryfirst{##2}}}%
+ \ifdim\dimen@<#1\relax
+ #2%
+ \else
+ \space
+ \fi
+ \fi
+ }%
+ }%
+}
+\newcommand{\glsxtrmglswrite}[1]{%
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@off
+ \else
+ \protected@edef\@glsxtr@mglslabel{#1}%
+ \ifdef\@glsxtr@mglsreflist
+ {%
+ \expandafter\DTLifinlist\expandafter{\@glsxtr@mglslabel}%
+ {\@glsxtr@mglsreflist}{}%
+ {%
+ \xappto\@glsxtr@mglsreflist{,\expandonce\@glsxtr@mglslabel}%
+ \if@mgls@writeseparaterefs
+ \protected@write\@auxout{}{\string\@glsxtr@mglsrefs{#1}}%
+ \fi
+ }%
+ }%
+ {%
+ \global\let\@glsxtr@mglsreflist\@glsxtr@mglslabel
+ \if@mgls@writeseparaterefs
+ \protected@write\@auxout{}{\string\@glsxtr@mglsrefs{#1}}%
+ \else
+ \AtEndDocument{\immediate\protected@write\@auxout{}%
+ {\string\@glsxtr@mglsrefs{\@glsxtr@mglsreflist}}}%
+ \fi
+ \@mgls@disable@writeseparateref@cond
+ }%
+ \fi
+}
+\newcommand{\@glsxtr@mglsrefs}[1]{}
+\newif\if@mgls@writeseparaterefs \@mgls@writeseparaterefsfalse
+\newcommand{\mglsWriteSeparateRefsTrue}{\global\@mgls@writeseparaterefstrue}
+\newcommand{\mglsWriteSeparateRefsFalse}{\global\@mgls@writeseparaterefsfalse}
+\newcommand*{\@mgls@disable@writeseparateref@cond}{%
+ \gdef\mglsWriteSeparateRefsTrue{\PackageError{glossaries-extra}%
+ {Too late to use \string\mglsWriteSeparateRefsTrue}%
+ {\string\mglsWriteSeparateRefsTrue\space can only be used before
+ the first instance of any \string\mgls-like command}}%
+ \gdef\mglsWriteSeparateRefsFalse{\PackageError{glossaries-extra}%
+ {Too late to use \string\mglsWriteSeparateRefsFalse}%
+ {\string\mglsWriteSeparateRefsFalse\space can only be used before
+ the first instance of any \string\mgls-like command}}%
+}
+\newcommand{\glsxtr@newmgls}[5]{%
+ \edef\@glsxr@newmgls@do{%
+ \noexpand\newrobustcmd*{\expandonce{\csname #1\endcsname}}%
+ {\noexpand\@gls@hyp@opt\expandonce{\csname ns@glsxtr@#1\endcsname}}%
+ \noexpand\newcommand*{\expandonce{\csname ns@glsxtr@#1\endcsname}}[2][]{%
+ \noexpand\new@ifnextchar[%
+ {\expandonce{\csname glsxtr@#1\endcsname}{####1}{####2}}%
+ {\expandonce{\csname glsxtr@#1\endcsname}{####1}{####2}[]}%
+ }%
+ \noexpand\def\expandonce{\csname glsxtr@#1\endcsname}####1####2[####3]{%
+ \noexpand\def\noexpand\glsxtrcurrentmglscsname{#1}%
+ \noexpand\glsxtr@mgls@inner{####1}{####2}{####3}%
+ {\noexpand#2}{\noexpand#3}{\noexpand#4}{\noexpand#5}%
+ }%
+ }%
+ \@glsxr@newmgls@do
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@off
+ \else
+ \ifdef\@glsxtr@mglslikelist
+ {\xappto\@glsxtr@mglslikelist{,#1}}%
+ {%
+ \gdef\@glsxtr@mglslikelist{#1}%
+ \AtEndDocument{\immediate\protected@write\@auxout{}%
+ {\string\@glsxtr@mglslike{\@glsxtr@mglslikelist}}}%
+ }%
+ \fi
+}
+\newcommand*{\@glsxtr@mglslike}[1]{}
+\newcommand*{\GlsXtrMglsOrGls}[2]{%
+ \def\@glsxtr@mgls@or@gls@mcs{#1}%
+ \def\@glsxtr@mgls@or@gls@gcs{#2}%
+ \@ifstar{\s@GlsXtrMglsOrGls}%
+ {%
+ \@ifnextchar+{\PLUS\@firstoftwo{\p@GlsXtrMglsOrGls}}%
+ {%
+ \ifdefempty\@gls@alt@hyp@opt@char\@GlsXtrMglsOrGls\alt@GlsXtrMglsOrGls
+ }%
+ }%
+}
+\newcommand*{\alt@GlsXtrMglsOrGls}{
+ \expandafter\@ifnextchar\@gls@alt@hyp@opt@char
+ {\@firstoftwo{\@alt@GlsXtrMglsOrGls}}{\@GlsXtrMglsOrGls}%
+}
+\newcommand*{\@GlsXtrMglsOrGls}[2][]{%
+ \glsxtrifmulti{#2}%
+ {\@glsxtr@mgls@or@gls@mcs[#1]{#2}}%
+ {\@glsxtr@mgls@or@gls@gcs[#1]{#2}}%
+}
+\newcommand*{\s@GlsXtrMglsOrGls}[2][]{%
+ \glsxtrifmulti{#2}%
+ {\@glsxtr@mgls@or@gls@mcs*[#1]{#2}}%
+ {\@glsxtr@mgls@or@gls@gcs*[#1]{#2}}%
+}
+\newcommand*{\p@GlsXtrMglsOrGls}[2][]{%
+ \glsxtrifmulti{#2}%
+ {\@glsxtr@mgls@or@gls@mcs+[#1]{#2}}%
+ {\@glsxtr@mgls@or@gls@gcs+[#1]{#2}}%
+}
+\newcommand*{\@alt@GlsXtrMglsOrGls}[2][]{%
+ \glsxtrifmulti{#2}%
+ {\expandafter\@glsxtr@mgls@or@gls@mcs\@gls@alt@hyp@opt@char[#1]{#2}}%
+ {\expandafter\@glsxtr@mgls@or@gls@gcs\@gls@alt@hyp@opt@char[#1]{#2}}%
+}
+\glsxtr@newmgls{mgls}{\@gls@}{\@gls@}{\@gls@}{\@gls@}%
+\glsxtr@newmgls{mglspl}{\@glspl@}{\@glspl@}{\@glspl@}{\@glspl@}%
+\glsxtr@newmgls{mglsmainpl}{\@gls@}{\@gls@}{\@glspl@}{\@glspl@}%
+\glsxtr@newmgls{Mgls}{\@Gls@}{\@gls@}{\@Gls@}{\@gls@}%
+\glsxtr@newmgls{Mglspl}{\@Glspl@}{\@glspl@}{\@Glspl@}{\@glspl@}%
+\glsxtr@newmgls{Mglsmainpl}{\@Gls@}{\@gls@}{\@Glspl@}{\@glspl@}%
+\glsxtr@newmgls{MGls}{\@Gls@}{\@Gls@}{\@Gls@}{\@Gls@}%
+\glsxtr@newmgls{MGlspl}{\@Glspl@}{\@Glspl@}{\@Glspl@}{\@Glspl@}%
+\glsxtr@newmgls{MGlsmainpl}{\@Gls@}{\@Gls@}{\@Glspl@}{\@Glspl@}%
+\glsxtr@newmgls{MGLS}{\@GLS@}{\@GLS@}{\@GLS@}{\@GLS@}%
+\glsxtr@newmgls{MGLSpl}{\@GLSpl@}{\@GLSpl@}{\@GLSpl@}{\@GLSpl@}%
+\glsxtr@newmgls{MGLSmainpl}{\@GLS@}{\@GLS@}{\@GLSpl@}{\@GLSpl@}%
+\def\@glslongortext#1#2[#3]{%
+ \ifglshaslong{#2}{\@glsxtrlong{#1}{#2}[#3]}{\@glstext@{#1}{#2}[#3]}%
+}
+\def\@glsshortortext#1#2[#3]{%
+ \ifglshasshort{#2}{\@glsxtrshort{#1}{#2}[#3]}{\@glstext@{#1}{#2}[#3]}%
+}
+\def\@glsfullorfirst#1#2[#3]{%
+ \ifglshasshort{#2}{\@glsxtr@full{#1}{#2}[#3]}{\@glsfirst@{#1}{#2}[#3]}%
+}
+\def\@Glslongortext#1#2[#3]{%
+ \ifglshaslong{#2}{\@Glsxtrlong{#1}{#2}[#3]}{\@Glstext@{#1}{#2}[#3]}%
+}
+\def\@Glsshortortext#1#2[#3]{%
+ \ifglshasshort{#2}{\@Glsxtrshort{#1}{#2}[#3]}{\@Glstext@{#1}{#2}[#3]}%
+}
+\def\@Glsfullorfirst#1#2[#3]{%
+ \ifglshasshort{#2}{\@Glsxtr@full{#1}{#2}[#3]}{\@Glsfirst@{#1}{#2}[#3]}%
+}
+\glsxtr@newmgls{mglsshort}%
+{\@glsshortortext}{\@glsshortortext}{\@glsshortortext}{\@glsshortortext}%
+\glsxtr@newmgls{mglslong}%
+{\@glslongortext}{\@glslongortext}{\@glslongortext}{\@glslongortext}%
+\glsxtr@newmgls{mglsfull}%
+{\@glsfullorfirst}{\@glsfullorfirst}{\@glsfullorfirst}{\@glsfullorfirst}%
+\glsxtr@newmgls{Mglsshort}%
+{\@Glsshortortext}{\@glsshortortext}{\@Glsshortortext}{\@glsshortortext}%
+\glsxtr@newmgls{Mglslong}%
+{\@Glslongortext}{\@glslongortext}{\@Glslongortext}{\@glslongortext}%
+\glsxtr@newmgls{Mglsfull}%
+{\@Glsfullorfirst}{\@glsfullorfirst}{\@Glsfullorfirst}{\@glsfullorfirst}%
+\glsxtr@newmgls{mglsname}%
+ {\@glsname@}{\@glsname@}{\@glsname@}{\@glsname@}%
+\glsxtr@newmgls{Mglsname}%
+ {\@Glsname@}{\@glsname@}{\@Glsname@}{\@glsname@}%
+\glsxtr@newmgls{MGlsname}%
+ {\@Glsname@}{\@Glsname@}{\@Glsname@}{\@Glsname@}%
+\def\@glssymbolorgls#1#2[#3]{%
+ \ifglshassymbol{#2}{\@glssymbol@{#1}{#2}[#3]}{\@gls@{#1}{#2}[#3]}%
+}
+\def\@glssymbolorGls#1#2[#3]{%
+ \ifglshassymbol{#2}{\@glssymbol@{#1}{#2}[#3]}{\@Gls@{#1}{#2}[#3]}%
+}
+\glsxtr@newmgls{mglssymbol}%
+ {\@glssymbolorgls}{\@glssymbolorgls}{\@glssymbolorgls}{\@glssymbolorgls}%
+\glsxtr@newmgls{Mglssymbol}%
+ {\@glssymbolorGls}{\@glssymbolorgls}{\@glssymbolorGls}{\@glssymbolorgls}%
+\glsxtr@newmgls{MGlssymbol}%
+ {\@glssymbolorGls}{\@glssymbolorGls}{\@glssymbolorGls}{\@glssymbolorGls}%
+\newcommand{\mglsfield}{useri}
+\def\@glsfieldorgls#1#2[#3]{%
+ \glsxtrifhasfield{\mglsfield}{#2}%
+ {\@glsdisp[#1]{#2}{\glscurrentfieldvalue#3}}%
+ {\@gls@{#1}{#2}[#3]}%
+}
+\def\@Glsfieldorgls#1#2[#3]{%
+ \glsxtrifhasfield{\mglsfield}{#2}%
+ {\@glsdisp[#1]{#2}{\xmakefirstuc\glscurrentfieldvalue#3}}%
+ {\@Gls@{#1}{#2}[#3]}%
+}
+\glsxtr@newmgls{mglsusefield}%
+ {\@glsfieldorgls}{\@glsfieldorgls}{\@glsfieldorgls}{\@glsfieldorgls}%
+\glsxtr@newmgls{Mglsusefield}%
+ {\@Glsfieldorgls}{\@glsfieldorgls}{\@Glsfieldorgls}{\@glsfieldorgls}%
+\glsxtr@newmgls{MGlsusefield}%
+ {\@Glsfieldorgls}{\@Glsfieldorgls}{\@Glsfieldorgls}{\@Glsfieldorgls}%
+\newcommand*{\mpglsWarning}{%
+ \GlossariesExtraWarning{glossaries-prefix.sty is required for
+ \string\mpgls\space family of commands (either load after
+ glossaries-extra.sty or use the `prefix' package option)}%
+}
+\def\@pglsorgls#1#2[#3]{%
+ \ifdef\@pgls@{\@pgls@{#1}{#2}[#3]}{\mpglsWarning\@gls@{#1}{#2}[#3]}%
+}
+\def\@pglsorglspl#1#2[#3]{%
+ \ifdef\@pglspl@{\@pglspl@{#1}{#2}[#3]}{\mpglsWarning\@glspl@{#1}{#2}[#3]}%
+}
+\def\@Pglsorgls#1#2[#3]{%
+ \ifdef\@Pgls@{\@Pgls@{#1}{#2}[#3]}{\mpglsWarning\@Gls@{#1}{#2}[#3]}%
+}
+\def\@pglsorglspl#1#2[#3]{%
+ \ifdef\@pglspl@{\@pglspl@{#1}{#2}[#3]}{\mpglsWarning\@glspl@{#1}{#2}[#3]}%
+}
+\def\@Pglsorglspl#1#2[#3]{%
+ \ifdef\@Pglspl@{\@Pglspl@{#1}{#2}[#3]}{\mpglsWarning\@Glspl@{#1}{#2}[#3]}%
+}
+\def\@PGLSorgls#1#2[#3]{%
+ \ifdef\@PGLS@{\@PGLS@{#1}{#2}[#3]}{\mpglsWarning\@GLS@{#1}{#2}[#3]}%
+}
+\def\@PGLSorglspl#1#2[#3]{%
+ \ifdef\@PGLSpl@{\@PGLSpl@{#1}{#2}[#3]}{\mpglsWarning\@GLSpl@{#1}{#2}[#3]}%
+}
+\glsxtr@newmgls{mpgls}{\@pglsorgls@}{\@gls@}{\@pglsorgls@}{\@gls@}%
+\glsxtr@newmgls{mpglspl}{\@pglsorglspl@}{\@glspl@}{\@pglsorglspl@}{\@glspl@}%
+\glsxtr@newmgls{mpglsmainpl}{\@pglsorgls@}{\@gls@}{\@pglsorglspl@}{\@glspl@}%
+\glsxtr@newmgls{Mpgls}{\@Pglsorgls@}{\@gls@}{\@Pglsorgls@}{\@gls@}%
+\glsxtr@newmgls{Mpglspl}{\@Pglsorglspl@}{\@glspl@}{\@Pglsorglspl@}{\@glspl@}%
+\glsxtr@newmgls{Mpglsmainpl}{\@Pglsorgls@}{\@gls@}{\@Pglsorglspl@}{\@glspl@}%
+\glsxtr@newmgls{MPGls}{\@Pglsorgls@}{\@Gls@}{\@Pglsorgls@}{\@Gls@}%
+\glsxtr@newmgls{MPGlspl}{\@Pglsorglspl@}{\@Glspl@}{\@Pglsorglspl@}{\@Glspl@}%
+\glsxtr@newmgls{MPGlsmainpl}{\@Pglsorgls@}{\@Gls@}{\@Pglsorglspl@}{\@Glspl@}%
+\glsxtr@newmgls{MPGLS}{\@PGLSorgls@}{\@GLS@}{\@PGLSorgls@}{\@GLS@}%
+\glsxtr@newmgls{MPGLSpl}{\@PGLSorglspl@}{\@GLSpl@}{\@PGLSorglspl@}{\@GLSpl@}%
+\glsxtr@newmgls{MPGLSmainpl}{\@PGLSorgls@}{\@GLS@}{\@PGLSorglspl@}{\@GLSpl@}%
+\newcommand*{\RequireGlossariesExtraLang}[1]{%
+ \@ifundefined{ver@glossariesxtr-#1.ldf}{\input{glossariesxtr-#1.ldf}}{}%
+}
+\newcommand*{\ProvidesGlossariesExtraLang}[1]{%
+ \ProvidesFile{glossariesxtr-#1.ldf}%
+}
+\newcommand{\glsxtr@loaddialect}{%
+ \IfTrackedLanguageFileExists{\this@dialect}%
+ {glossariesxtr-}% prefix
+ {.ldf}%
+ {%
+ \RequireGlossariesExtraLang{\CurrentTrackedTag}%
+ }%
+ {}% not found
+ \@glsxtrdialecthook
+}
+\@ifpackageloaded{tracklang} {%
+ \AnyTrackedLanguages
+ {%
+ \ForEachTrackedDialect{\this@dialect}{\glsxtr@loaddialect}%
+ }%
+ {}%
+} {}
+\@glsxtr@redefstyles
+\@glsxtr@do@style
+\endinput
+%%
+%% End of file `glossaries-extra-2021-11-22.sty'.
diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-abbrstyles.def b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-abbrstyles.def
new file mode 100644
index 00000000000..0ff1469306d
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-abbrstyles.def
@@ -0,0 +1,6251 @@
+%%
+%% This is file `glossaries-extra-abbrstyles.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries-extra.dtx (with options: `glossaries-extra-abbrstyles.def,package')
+%%
+%% glossaries-extra.dtx
+%% Copyright 2022 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-abbrstyles.def, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, glossary-table.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib, glossaries-extra-2021-11-22.sty, glossaries-extra-bib2gls-2021-11-22.sty, glossaries-extra-stylemods-2021-11-22.sty, glossary-bookindex-2021-11-22.sty, glossary-longextra-2021-11-22.sty, glossary-topic-2021-11-22.sty.
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\ProvidesFile{glossaries-extra-abbrstyles.def}[2022/06/16 v1.48b (NLCT)]
+\newcommand*{\glsxtrlongshortname}{%
+ \glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+}
+\newcommand*{\glsxtrlongformat}[3]{%
+ \glsifattribute{#1}{markwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\glsaccesslong{#1}\glsxtrgenentrytextfmt{#2}}%
+ \else
+ #3{\glsaccesslong{#1}}\glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
+ {%
+ \ifglsxtrinsertinside
+ #3{\glsaccessfmtlong{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ #3{\glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{#1}}%
+ \glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
+}%
+\newcommand*{\glsxtrlongplformat}[3]{%
+ \glsifattribute{#1}{markwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\glsaccesslongpl{#1}\glsxtrgenentrytextfmt{#2}}%
+ \else
+ #3{\glsaccesslongpl{#1}}\glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
+ {%
+ \ifglsxtrinsertinside
+ #3{\glsaccessfmtlongpl{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ #3{\glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{#1}}%
+ \glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
+}%
+\newcommand*{\Glsxtrlongformat}[3]{%
+ \glsifattribute{#1}{markwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\Glsaccesslong{#1}\glsxtrgenentrytextfmt{#2}}%
+ \else
+ #3{\Glsaccesslong{#1}}\glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
+ {%
+ \ifglsxtrinsertinside
+ #3{\Glsaccessfmtlong{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ #3{\Glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{#1}}%
+ \glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
+}%
+\newcommand*{\Glsxtrlongplformat}[3]{%
+ \glsifattribute{#1}{markwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\Glsaccesslongpl{#1}\glsxtrgenentrytextfmt{#2}}%
+ \else
+ #3{\Glsaccesslongpl{#1}}\glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
+ {%
+ \ifglsxtrinsertinside
+ #3{\Glsaccessfmtlongpl{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ #3{\Glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{#1}}%
+ \glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
+}%
+\newcommand*{\GLSxtrlongformat}[3]{%
+ \glsifattribute{#1}{markwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\GLSaccesslong{#1}\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ #3{\GLSaccesslong{#1}}\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+ {%
+ \ifglsxtrinsertinside
+ #3{\GLSaccessfmtlong{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ #3{\GLSaccessfmtlong{}{\glsxtrgenentrytextfmt}{#1}}%
+ \mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+}%
+\newcommand*{\GLSxtrlongplformat}[3]{%
+ \glsifattribute{#1}{markwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\GLSaccesslongpl{#1}\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ #3{\GLSaccesslongpl{#1}}\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+ {%
+ \ifglsxtrinsertinside
+ #3{\GLSaccessfmtlongpl{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ #3{\GLSaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{#1}}%
+ \mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+}%
+\newcommand*{\glsxtrlongformatgrp}[3]{%
+ \glsifattribute{#1}{markwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\glsaccesslong{#1}{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ #3{\glsaccesslong{#1}}{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+ {%
+ #3{\glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{#1}}%
+ \ifglsxtrinsertinside
+ {#3{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ {\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+}%
+\newcommand*{\glsxtrlongplformatgrp}[3]{%
+ \glsifattribute{#1}{markwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\glsaccesslongpl{#1}{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ #3{\glsaccesslongpl{#1}}{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+ {%
+ #3{\glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{#1}}%
+ \ifglsxtrinsertinside
+ {#3{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ {\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+}%
+\newcommand*{\Glsxtrlongformatgrp}[3]{%
+ \glsifattribute{#1}{markwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\Glsaccesslong{#1}{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ #3{\Glsaccesslong{#1}}{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+ {%
+ #3{\Glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{#1}}%
+ \ifglsxtrinsertinside
+ {#3{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ {\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+}%
+\newcommand*{\Glsxtrlongplformatgrp}[3]{%
+ \glsifattribute{#1}{markwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\Glsaccesslongpl{#1}{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ #3{\Glsaccesslongpl{#1}}{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+ {%
+ #3{\Glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{#1}}%
+ \ifglsxtrinsertinside
+ {#3{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ {\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+}%
+\newcommand*{\GLSxtrlongformatgrp}[3]{%
+ \glsifattribute{#1}{markwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\GLSaccesslong{#1}{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}}%
+ \else
+ #3{\GLSaccesslong{#1}}{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
+ \fi
+ }%
+ {%
+ #3{\GLSaccessfmtlong{}{\glsxtrgenentrytextfmt}{#1}}%
+ \ifglsxtrinsertinside
+ {\mfirstucMakeUppercase{#3{\glsxtrgenentrytextfmt{#2}}}}%
+ \else
+ {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
+ \fi
+ }%
+}%
+\newcommand*{\GLSxtrlongplformatgrp}[3]{%
+ \glsifattribute{#1}{markwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\GLSaccesslongpl{#1}{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}}%
+ \else
+ #3{\GLSaccesslongpl{#1}}{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
+ \fi
+ }%
+ {%
+ #3{\GLSaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{#1}}%
+ \ifglsxtrinsertinside
+ {\mfirstucMakeUppercase{#3{\glsxtrgenentrytextfmt{#2}}}}%
+ \else
+ {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
+ \fi
+ }%
+}%
+\newcommand*{\glsxtrshortformat}[3]{%
+ \glsifattribute{#1}{markshortwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\glsaccessshort{#1}\glsxtrgenentrytextfmt{#2}}%
+ \else
+ #3{\glsaccessshort{#1}}\glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
+ {%
+ \ifglsxtrinsertinside
+ #3{\glsaccessfmtshort{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ #3{\glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{#1}}%
+ \glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
+}%
+\newcommand*{\glsxtrshortplformat}[3]{%
+ \glsifattribute{#1}{markshortwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\glsaccessshortpl{#1}\glsxtrgenentrytextfmt{#2}}%
+ \else
+ #3{\glsaccessshortpl{#1}}\glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
+ {%
+ \ifglsxtrinsertinside
+ #3{\glsaccessfmtshortpl{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ #3{\glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{#1}}%
+ \glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
+}%
+\newcommand*{\Glsxtrshortformat}[3]{%
+ \glsifattribute{#1}{markshortwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\Glsaccessshort{#1}\glsxtrgenentrytextfmt{#2}}%
+ \else
+ #3{\Glsaccessshort{#1}}\glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
+ {%
+ \ifglsxtrinsertinside
+ #3{\Glsaccessfmtshort{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ #3{\Glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{#1}}%
+ \glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
+}%
+\newcommand*{\Glsxtrshortplformat}[3]{%
+ \glsifattribute{#1}{markshortwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\Glsaccessshortpl{#1}\glsxtrgenentrytextfmt{#2}}%
+ \else
+ #3{\Glsaccessshortpl{#1}}\glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
+ {%
+ \ifglsxtrinsertinside
+ #3{\Glsaccessfmtshortpl{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ #3{\Glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{#1}}%
+ \glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
+}%
+\newcommand*{\GLSxtrshortformat}[3]{%
+ \glsifattribute{#1}{markshortwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\GLSaccessshort{#1}\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ #3{\GLSaccessshort{#1}}\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+ {%
+ \ifglsxtrinsertinside
+ #3{\GLSaccessfmtshort{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ #3{\GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{#1}}%
+ \mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+}%
+\newcommand*{\GLSxtrshortplformat}[3]{%
+ \glsifattribute{#1}{markshortwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\GLSaccessshortpl{#1}\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ #3{\GLSaccessshortpl{#1}}\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+ {%
+ \ifglsxtrinsertinside
+ #3{\GLSaccessfmtshortpl{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ #3{\GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{#1}}%
+ \mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+}%
+\newcommand*{\glsxtrshortformatgrp}[3]{%
+ \glsifattribute{#1}{markshortwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\glsaccessshort{#1}{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ #3{\glsaccessshort{#1}}{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+ {%
+ #3{\glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{#1}}%
+ \ifglsxtrinsertinside
+ {#3{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ {\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+}%
+\newcommand*{\glsxtrshortplformatgrp}[3]{%
+ \glsifattribute{#1}{markshortwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\glsaccessshortpl{#1}{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ #3{\glsaccessshortpl{#1}}{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+ {%
+ #3{\glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{#1}}%
+ \ifglsxtrinsertinside
+ {#3{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ {\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+}%
+\newcommand*{\Glsxtrshortformatgrp}[3]{%
+ \glsifattribute{#1}{markshortwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\Glsaccessshort{#1}{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ #3{\Glsaccessshort{#1}}{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+ {%
+ #3{\Glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{#1}}%
+ \ifglsxtrinsertinside
+ {#3{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ {\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+}%
+\newcommand*{\Glsxtrshortplformatgrp}[3]{%
+ \glsifattribute{#1}{markshortwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\Glsaccessshortpl{#1}{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ #3{\Glsaccessshortpl{#1}}{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+ {%
+ #3{\Glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{#1}}%
+ \ifglsxtrinsertinside
+ {#3{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ {\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+}%
+\newcommand*{\GLSxtrshortformatgrp}[3]{%
+ \glsifattribute{#1}{markshortwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\GLSaccessshort{#1}{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}}%
+ \else
+ #3{\GLSaccessshort{#1}}{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
+ \fi
+ }%
+ {%
+ #3{\GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{#1}}%
+ \ifglsxtrinsertinside
+ {\mfirstucMakeUppercase{#3{\glsxtrgenentrytextfmt{#2}}}}%
+ \else
+ {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
+ \fi
+ }%
+}%
+\newcommand*{\GLSxtrshortplformatgrp}[3]{%
+ \glsifattribute{#1}{markshortwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ #3{\GLSaccessshortpl{#1}{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}}%
+ \else
+ #3{\GLSaccessshortpl{#1}}{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
+ \fi
+ }%
+ {%
+ #3{\GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{#1}}%
+ \ifglsxtrinsertinside
+ {\mfirstucMakeUppercase{#3{\glsxtrgenentrytextfmt{#2}}}}%
+ \else
+ {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
+ \fi
+ }%
+}%
+\newcommand*{\glsxtrlongshortformat}[4]{%
+ \glsxtrlongformat{#1}{#2}{#3}%
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\glsxtrshortformat{#1}{}{#4}}%
+}%
+\newcommand*{\glsxtrlongshortplformat}[4]{%
+ \glsxtrlongplformat{#1}{#2}{#3}%
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\glsxtrshortplformat{#1}{}{#4}}%
+}%
+\newcommand*{\Glsxtrlongshortformat}[4]{%
+ \Glsxtrlongformat{#1}{#2}{#3}%
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\glsxtrshortformat{#1}{}{#4}}%
+}%
+\newcommand*{\Glsxtrlongshortplformat}[4]{%
+ \Glsxtrlongplformat{#1}{#2}{#3}%
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\glsxtrshortplformat{#1}{}{#4}}%
+}%
+\newcommand*{\GLSxtrlongshortformat}[4]{%
+ \GLSxtrlongformat{#1}{#2}{#3}%
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\GLSxtrshortformat{#1}{}{#4}}%
+}%
+\newcommand*{\GLSxtrlongshortplformat}[4]{%
+ \GLSxtrlongplformat{#1}{#2}{#3}%
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\GLSxtrshortplformat{#1}{}{#4}}%
+}%
+\newcommand*{\glsxtrshortlongformat}[4]{%
+ \glsxtrshortformat{#1}{#2}{#4}%
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\glsxtrlongformat{#1}{}{#3}}%
+}%
+\newcommand*{\glsxtrshortlongplformat}[4]{%
+ \glsxtrshortplformat{#1}{#2}{#4}%
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\glsxtrlongplformat{#1}{}{#3}}%
+}%
+\newcommand*{\Glsxtrshortlongformat}[4]{%
+ \Glsxtrshortformat{#1}{#2}{#4}%
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\glsxtrlongformat{#1}{}{#3}}%
+}%
+\newcommand*{\Glsxtrshortlongplformat}[4]{%
+ \Glsxtrshortplformat{#1}{#2}{#4}%
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\glsxtrlongplformat{#1}{}{#3}}%
+}%
+\newcommand*{\GLSxtrshortlongformat}[4]{%
+ \GLSxtrshortformat{#1}{#2}{#4}%
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\GLSxtrlongformat{#1}{}{#3}}%
+}%
+\newcommand*{\GLSxtrshortlongplformat}[4]{%
+ \GLSxtrshortplformat{#1}{#2}{#4}%
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\GLSxtrlongplformat{#1}{}{#3}}%
+}%
+\newcommand*{\glsxtrfootnotelongformat}[2]{%
+ \glsxtrlongformat{#1}{}{#2}%
+}%
+\newcommand*{\glsxtrfootnotelongplformat}[2]{%
+ \glsxtrlongplformat{#1}{}{#2}%
+}%
+\newcommand*{\glsxtrpostfootnotelongformat}{%
+ \glsxtrfootnotelongformat
+}%
+\newcommand*{\glsxtrpostusershortformat}[2]{%
+ \glsxtrifallcaps
+ {\GLSxtrusershortformat{#1}{#2}}%
+ {\glsxtrusershortformat{#1}{#2}}%
+}%
+\newcommand*{\glsxtrusershortformat}[2]{%
+ \glsxtruserparen{\glsxtrshortformat{#1}{}{#2}}{#1}%
+}%
+\newcommand*{\glsxtrusershortplformat}[2]{%
+ \glsxtruserparen{\glsxtrshortplformat{#1}{}{#2}}{#1}%
+}%
+\newcommand*{\GLSxtrusershortformat}[2]{%
+ \GLSxtruserparen{\GLSxtrshortformat{#1}{}{#2}}{#1}%
+}%
+\newcommand*{\GLSxtrusershortplformat}[2]{%
+ \GLSxtruserparen{\GLSxtrshortplformat{#1}{}{#2}}{#1}%
+}%
+\newcommand*{\glsxtrpostuserlongformat}[2]{%
+ \glsxtrifallcaps
+ {\GLSxtruserlongformat{#1}{#2}}%
+ {\glsxtruserlongformat{#1}{#2}}%
+}%
+\newcommand*{\glsxtruserlongformat}[2]{%
+ \glsxtruserparen{\glsxtrlongformat{#1}{}{#2}}{#1}%
+}%
+\newcommand*{\GLSxtruserlongformat}[2]{%
+ \GLSxtruserparen{\GLSxtrlongformat{#1}{}{#2}}{#1}%
+}%
+\newcommand*{\glsxtruserlongplformat}[2]{%
+ \glsxtruserparen{\glsxtrlongplformat{#1}{}{#2}}{#1}%
+}%
+\newcommand*{\GLSxtruserlongplformat}[2]{%
+ \GLSxtruserparen{\GLSxtrlongplformat{#1}{}{#2}}{#1}%
+}%
+\newcommand*{\glsxtruserlongshortformat}[4]{%
+ \glsxtrlongformat{#1}{#2}{#3}%
+ \glsxtrusershortformat{#1}{#4}%
+}%
+\newcommand*{\glsxtruserlongshortplformat}[4]{%
+ \glsxtrlongplformat{#1}{#2}{#3}%
+ \glsxtrusershortplformat{#1}{#4}%
+}%
+\newcommand*{\Glsxtruserlongshortformat}[4]{%
+ \Glsxtrlongformat{#1}{#2}{#3}%
+ \glsxtrusershortformat{#1}{#4}%
+}%
+\newcommand*{\Glsxtruserlongshortplformat}[4]{%
+ \Glsxtrlongplformat{#1}{#2}{#3}%
+ \glsxtrusershortplformat{#1}{#4}%
+}%
+\newcommand*{\GLSxtruserlongshortformat}[4]{%
+ \GLSxtrlongformat{#1}{#2}{#3}%
+ \GLSxtrusershortformat{#1}{#4}%
+}%
+\newcommand*{\GLSxtruserlongshortplformat}[4]{%
+ \GLSxtrlongplformat{#1}{#2}{#3}%
+ \GLSxtrusershortplformat{#1}{#4}%
+}%
+\newcommand*{\glsxtrusershortlongformat}[4]{%
+ \glsxtrshortformat{#1}{#2}{#3}%
+ \glsxtruserlongformat{#1}{#4}%
+}%
+\newcommand*{\glsxtrusershortlongplformat}[4]{%
+ \glsxtrshortplformat{#1}{#2}{#3}%
+ \glsxtruserlongplformat{#1}{#4}%
+}%
+\newcommand*{\Glsxtrusershortlongformat}[4]{%
+ \Glsxtrshortformat{#1}{#2}{#3}%
+ \glsxtruserlongformat{#1}{#4}%
+}%
+\newcommand*{\Glsxtrusershortlongplformat}[4]{%
+ \Glsxtrshortplformat{#1}{#2}{#3}%
+ \glsxtruserlongplformat{#1}{#4}%
+}%
+\newcommand*{\GLSxtrusershortlongformat}[4]{%
+ \GLSxtrshortformat{#1}{#2}{#3}%
+ \GLSxtruserlongformat{#1}{#4}%
+}%
+\newcommand*{\GLSxtrusershortlongplformat}[4]{%
+ \GLSxtrshortplformat{#1}{#2}{#3}%
+ \GLSxtruserlongplformat{#1}{#4}%
+}%
+\newabbreviationstyle{long-short}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortname},
+ sort={\the\glsshorttok},
+ first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}},%
+ firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ description={\the\glslongtok}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrrevert}[1]{\glsxtrdefaultrevert{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+}
+\setabbreviationstyle{long-short}
+\newcommand*{\glsxtrlongshortdescsort}{%
+ \expandonce\glsxtrorglong\space (\expandonce\glsxtrorgshort)%
+}
+\newcommand*{\glsxtrlongshortdescname}{%
+ \glsxplongfont{\the\glslongtok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}%
+}
+\newabbreviationstyle{long-short-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortdescname},
+ sort={\glsxtrlongshortdescsort},%
+ first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}},%
+ firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-short}%
+}
+\newcommand*{\glsxtrshortlongname}{%
+ \glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+}
+\newabbreviationstyle{short-long}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongname},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+}
+\newcommand*{\glsxtrshortlongdescsort}{\expandonce\glsxtrorgshort}
+\newcommand*{\glsxtrshortlongdescname}{%
+ \glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsxplongfont{\the\glslongtok}{\glscategorylabel}}%
+}
+\newabbreviationstyle{short-long-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongdescname},
+ sort={\glsxtrshortlongdescsort},
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-long}%
+}
+\newcommand*{\glsfirstlongfootnotefont}[1]{\glslongfootnotefont{#1}}%
+\newcommand*{\glslongfootnotefont}[1]{\glslongdefaultfont{#1}}%
+\newcommand*{\glsxtrabbrvfootnote}[2]{\footnote{#2}}
+\newrobustcmd*{\glsxtrpostabbrvfootnote}[2]{%
+ \glsxtrabbrvfootnote{#1}%
+ {#2\glsxtrpostfootnotelongformat{#1}{\glsfirstlongfootnotefont}}%
+}
+\newcommand*{\xpglsxtrpostabbrvfootnote}{%
+ \expandafter\expandafter\expandafter
+ \glsxtrpostabbrvfootnote
+ \expandafter\expandafter\expandafter
+ {\expandafter\glslabel\expandafter}\expandafter
+ {\glsxtrassignlinktextfmt}%
+}
+\newcommand*{\glsxtrfootnotename}{%
+ \glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+}
+\newabbreviationstyle{footnote}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotename},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
+ }%
+}
+\letabbreviationstyle{short-footnote}{footnote}
+\newcommand*{\glsxtrfootnotedescname}{%
+ \glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsxplongfont{\the\glslongtok}{\glscategorylabel}}%
+}
+\newcommand*{\glsxtrfootnotedescsort}{\the\glsshorttok}
+\newabbreviationstyle{short-footnote-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotedescname},
+ sort={\glsxtrfootnotedescsort},
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{footnote}%
+}
+\letabbreviationstyle{footnote-desc}{short-footnote-desc}
+\newabbreviationstyle{postfootnote}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotename},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasglslikeandfirstuse
+ {%
+ \glsxtrdopostpunc{\expandafter\expandafter\expandafter
+ \glsxtrpostabbrvfootnote
+ \expandafter\expandafter\expandafter
+ {\expandafter\glslabel\expandafter}\expandafter
+ {\glsxtrassignlinktextfmt}}%
+ }{}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvfont}%
+ }%
+}
+\letabbreviationstyle{short-postfootnote}{postfootnote}
+\newabbreviationstyle{short-postfootnote-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotedescname},
+ sort={\glsxtrfootnotedescsort},
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasglslikeandfirstuse
+ {%
+ \glsxtrdopostpunc{\expandafter\expandafter\expandafter
+ \glsxtrpostabbrvfootnote
+ \expandafter\expandafter\expandafter
+ {\expandafter\glslabel\expandafter}\expandafter
+ {\glsxtrassignlinktextfmt}}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{postfootnote}%
+}
+\letabbreviationstyle{postfootnote-desc}{short-postfootnote-desc}
+\newcommand*{\glsxtrshortnolongname}{%
+ \glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+}
+\newabbreviationstyle{short}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortnolongname},
+ sort={\the\glsshorttok},
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
+ description={\the\glslongtok}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
+ }%
+}
+\setabbreviationstyle[acronym]{short}
+\letabbreviationstyle{short-nolong}{short}
+\newabbreviationstyle{short-nolong-noreg}%
+{%
+ \GlsXtrUseAbbrStyleSetup{short-nolong}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-nolong}%
+}
+\newcommand*{\glsxtrshortdescname}{%
+ \glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsxplongfont{\the\glslongtok}{\glscategorylabel}}%
+}
+\newabbreviationstyle{short-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortdescname},
+ sort={\the\glsshorttok},
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvfont}%
+ }%
+}
+\letabbreviationstyle{short-nolong-desc}{short-desc}
+\newabbreviationstyle{short-nolong-desc-noreg}%
+{%
+ \GlsXtrUseAbbrStyleSetup{short-nolong-desc}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-nolong-desc}%
+}
+\newabbreviationstyle{nolong-short}%
+{%
+ \GlsXtrUseAbbrStyleSetup{short-nolong}%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-nolong}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+}
+\newabbreviationstyle{nolong-short-noreg}%
+{%
+ \GlsXtrUseAbbrStyleSetup{nolong-short}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{nolong-short}%
+}
+\newcommand*{\glsxtrlongnoshortdescname}{%
+ \glsxplongfont{\the\glslongtok}{\glscategorylabel}%
+}
+\newabbreviationstyle{long-desc}%
+{%
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongnoshortdescname},
+ sort={\the\glslongtok},
+ first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},
+ firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},
+ text={\glsxplongfont{\the\glslongtok}{\glscategorylabel}},
+ plural={\glsxplongfont{\the\glslongpltok}{\glscategorylabel}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glslongfont}%
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glslongfont}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glslongfont}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glslongfont}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glslongfont}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glslongfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongfont}{\glsfirstabbrvfont}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glsfirstlongfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glsfirstlongfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glsfirstlongfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glsfirstlongfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glsfirstlongfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glsfirstlongfont}%
+ }%
+}
+\letabbreviationstyle{long-noshort-desc}{long-desc}
+\newabbreviationstyle{long-noshort-desc-noreg}%
+{%
+ \GlsXtrUseAbbrStyleSetup{long-noshort-desc}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-noshort-desc}%
+}
+\newcommand*{\glsxtrlongnoshortname}{%
+ \glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+}
+\newabbreviationstyle{long}%
+{%
+ \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongnoshortname},
+ sort={\the\glsshorttok},
+ first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},
+ firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},
+ text={\glsxplongfont{\the\glslongtok}{\glscategorylabel}},
+ plural={\glsxplongfont{\the\glslongpltok}{\glscategorylabel}},%
+ description={\the\glslongtok}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-desc}%
+}
+\letabbreviationstyle{long-noshort}{long}
+\newabbreviationstyle{long-noshort-noreg}%
+{%
+ \GlsXtrUseAbbrStyleSetup{long-noshort}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-noshort}%
+}
+\newcommand*{\glsxtrscfont}[1]{\textsc{#1}}
+\newcommand*{\glsabbrvscfont}{\glsxtrscfont}
+\newcommand*{\glsxtrfirstscfont}[1]{\glsabbrvscfont{#1}}
+\newcommand*{\glsfirstabbrvscfont}{\glsxtrfirstscfont}
+\newcommand*{\glsxtrscsuffix}{\protect\glstextup{\glsxtrabbrvpluralsuffix}}
+\newcommand*{\glsxtrscrevert}[1]{\glstextup{#1}}%
+\newabbreviationstyle{long-short-sc}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortname},
+ sort={\the\glsshorttok},
+ first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}},%
+ firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
+ description={\the\glslongtok}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtrscrevert{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+}
+\newabbreviationstyle{long-short-sc-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortdescname},
+ sort={\glsxtrlongshortdescsort},%
+ first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}},%
+ firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-short-sc}%
+}
+\newabbreviationstyle{short-sc-long}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongname},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtrscrevert{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+}
+\newabbreviationstyle{short-sc-long-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongdescname},
+ sort={\glsxtrshortlongdescsort},
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-sc-long}%
+}
+\newabbreviationstyle{short-sc}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortnolongname},
+ sort={\the\glsshorttok},
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
+ description={\the\glslongtok}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtrscrevert{##1}}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
+ }%
+}
+\letabbreviationstyle{short-sc-nolong}{short-sc}
+\newabbreviationstyle{short-sc-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortdescname},
+ sort={\the\glsshorttok},
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtrscrevert{##1}}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
+ }%
+}
+\letabbreviationstyle{short-sc-nolong-desc}{short-sc-desc}
+\newabbreviationstyle{nolong-short-sc}%
+{%
+ \GlsXtrUseAbbrStyleSetup{short-sc-nolong}%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-sc-nolong}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+}
+\newabbreviationstyle{long-noshort-sc}%
+{%
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongnoshortname},
+ sort={\the\glsshorttok},
+ first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},
+ firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},
+ text={\glsxplongfont{\the\glslongtok}{\glscategorylabel}},
+ plural={\glsxplongfont{\the\glslongpltok}{\glscategorylabel}},%
+ description={\the\glslongtok}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtrscrevert{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{long-sc}{long-noshort-sc}
+\newabbreviationstyle{long-noshort-sc-desc}%
+{%
+ \GlsXtrUseAbbrStyleSetup{long-noshort-desc}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtrscrevert{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{long-desc-sc}{long-noshort-sc-desc}
+\newabbreviationstyle{short-sc-footnote}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotename},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtrscrevert{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{footnote-sc}{short-sc-footnote}
+\newabbreviationstyle{short-sc-footnote-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotedescname},
+ sort={\glsxtrfootnotedescsort},
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-sc-footnote}%
+}
+\newabbreviationstyle{short-sc-postfootnote}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotename},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasglslikeandfirstuse
+ {%
+ \glsxtrdopostpunc{\xpglsxtrpostabbrvfootnote}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtrscrevert{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvscfont}%
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{postfootnote-sc}{short-sc-postfootnote}
+\newabbreviationstyle{short-sc-postfootnote-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotedescname},
+ sort={\glsxtrfootnotedescsort},
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasglslikeandfirstuse
+ {%
+ \glsxtrdopostpunc{\xpglsxtrpostabbrvfootnote}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-sc-postfootnote}%
+}
+\newcommand*{\glsxtrsmfont}[1]{\textsmaller{#1}}
+\newcommand*{\glsabbrvsmfont}{\glsxtrsmfont}
+\newcommand*{\glsxtrfirstsmfont}[1]{\glsabbrvsmfont{#1}}
+\newcommand*{\glsfirstabbrvsmfont}{\glsxtrfirstsmfont}
+\newcommand*{\glsxtrsmsuffix}{\glsxtrabbrvpluralsuffix}
+\newcommand*{\glsxtrsmrevert}[1]{\textlarger{#1}}
+\newabbreviationstyle{long-short-sm}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortname},
+ sort={\the\glsshorttok},
+ first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}},%
+ firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
+ description={\the\glslongtok}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtrsmrevert{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+}
+\newabbreviationstyle{long-short-sm-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortdescname},
+ sort={\glsxtrlongshortdescsort},%
+ first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}},%
+ firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-short-sm}%
+}
+\newabbreviationstyle{short-sm-long}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongname},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtrsmrevert{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+}
+\newabbreviationstyle{short-sm-long-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongdescname},
+ sort={\glsxtrshortlongdescsort},
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-sm-long}%
+}
+\newabbreviationstyle{short-sm}%
+{%
+ \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortnolongname},
+ sort={\the\glsshorttok},
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
+ description={\the\glslongtok}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtrsmrevert{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ }%
+}
+\letabbreviationstyle{short-sm-nolong}{short-sm}
+\newabbreviationstyle{short-sm-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortdescname},
+ sort={\the\glsshorttok},
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtrsmrevert{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ }%
+}
+\letabbreviationstyle{short-sm-nolong-desc}{short-sm-desc}
+\newabbreviationstyle{nolong-short-sm}%
+{%
+ \GlsXtrUseAbbrStyleSetup{short-sm-nolong}%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-sm-nolong}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+}
+\newabbreviationstyle{long-noshort-sm}%
+{%
+ \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongnoshortname},
+ sort={\the\glsshorttok},
+ first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},
+ firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},
+ text={\glsxplongfont{\the\glslongtok}{\glscategorylabel}},
+ plural={\glsxplongfont{\the\glslongpltok}{\glscategorylabel}},%
+ description={\the\glslongtok}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtrsmrevert{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{long-sm}{long-noshort-sm}
+\newabbreviationstyle{long-noshort-sm-desc}%
+{%
+ \GlsXtrUseAbbrStyleSetup{long-noshort-desc}%
+}%
+{%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtrsmrevert{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{long-desc-sm}{long-noshort-sm-desc}
+\newabbreviationstyle{short-sm-footnote}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotename},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtrsmrevert{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{footnote-sm}{short-sm-footnote}
+\newabbreviationstyle{short-sm-footnote-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotedescname},
+ sort={\glsxtrfootnotedescsort},
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-sm-footnote}%
+}
+\newabbreviationstyle{short-sm-postfootnote}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotename},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasglslikeandfirstuse
+ {%
+ \glsxtrdopostpunc{\xpglsxtrpostabbrvfootnote}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtrsmrevert{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvsmfont}%
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{postfootnote-sm}{short-sm-postfootnote}
+\newabbreviationstyle{short-sm-postfootnote-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotedescname},
+ sort={\glsxtrfootnotedescsort},
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasglslikeandfirstuse
+ {%
+ \glsxtrdopostpunc{\xpglsxtrpostabbrvfootnote}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-sm-postfootnote}%
+}
+\newcommand*{\glsabbrvemfont}[1]{\emph{#1}}%
+\newcommand*{\glsfirstabbrvemfont}[1]{\glsabbrvemfont{#1}}%
+\newcommand*{\glsxtremsuffix}{\glsxtrabbrvpluralsuffix}
+\newcommand*{\glsfirstlongemfont}[1]{\glslongemfont{#1}}%
+\newcommand*{\glslongemfont}[1]{\emph{#1}}%
+\newcommand*{\glsxtremrevert}[1]{\textup{#1}}%
+\newabbreviationstyle{long-short-em}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortname},
+ sort={\the\glsshorttok},
+ first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}},%
+ firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
+ description={\the\glslongtok}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+}
+\newabbreviationstyle{long-short-em-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortdescname},
+ sort={\glsxtrlongshortdescsort},%
+ first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}},%
+ firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-short-em}%
+}
+\newabbreviationstyle{long-em-short-em}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortname},
+ sort={\the\glsshorttok},
+ first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}},%
+ firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
+ description={\protect\glslongemfont{\the\glslongtok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongemfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongemfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+}
+\newabbreviationstyle{long-em-short-em-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortdescname},
+ sort={\glsxtrlongshortdescsort},%
+ first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}}},%
+ firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-em-short-em}%
+}
+\newabbreviationstyle{short-em-long}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongname},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+}
+\newabbreviationstyle{short-em-long-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongdescname},
+ sort={\glsxtrshortlongdescsort},
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-em-long}%
+}
+\newabbreviationstyle{short-em-long-em}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongname},
+ sort={\the\glsshorttok},
+ description={\protect\glslongemfont{\the\glslongtok}},%
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongemfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongemfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+}
+\newabbreviationstyle{short-em-long-em-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongdescname},%
+ sort={\glsxtrshortlongdescsort},%
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-em-long-em}%
+}
+\newabbreviationstyle{short-em}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortnolongname},
+ sort={\the\glsshorttok},
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
+ description={\the\glslongtok}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
+ }%
+}
+\letabbreviationstyle{short-em-nolong}{short-em}
+\newabbreviationstyle{short-em-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortdescname},
+ sort={\the\glsshorttok},
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
+ }%
+}
+\letabbreviationstyle{short-em-nolong-desc}{short-em-desc}
+\newabbreviationstyle{nolong-short-em}%
+{%
+ \GlsXtrUseAbbrStyleSetup{short-em-nolong}%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-em-nolong}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+}
+\newabbreviationstyle{long-noshort-em}%
+{%
+ \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongnoshortname},
+ sort={\the\glsshorttok},
+ first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},
+ firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},
+ text={\glsxplongfont{\the\glslongtok}{\glscategorylabel}},
+ plural={\glsxplongfont{\the\glslongpltok}{\glscategorylabel}},%
+ description={\the\glslongtok}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{long-em}{long-noshort-em}
+\newabbreviationstyle{long-em-noshort-em}%
+{%
+ \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongnoshortname},
+ sort={\the\glsshorttok},
+ first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},
+ firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},
+ text={\glsxplongfont{\the\glslongtok}{\glscategorylabel}},
+ plural={\glsxplongfont{\the\glslongpltok}{\glscategorylabel}},%
+ description={\protect\glslongemfont{\the\glslongtok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongemfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongemfont{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glslongemfont}%
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glslongemfont}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glslongemfont}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glslongemfont}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glslongemfont}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glslongemfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glsfirstlongemfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glsfirstlongemfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glsfirstlongemfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glsfirstlongemfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glsfirstlongemfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glsfirstlongemfont}%
+ }%
+}
+\newabbreviationstyle{long-em-noshort-em-noreg}%
+{%
+ \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
+ \GlsXtrUseAbbrStyleSetup{long-em-noshort-em}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-em-noshort-em}%
+}
+\newabbreviationstyle{long-noshort-em-desc}%
+{%
+ \GlsXtrUseAbbrStyleSetup{long-noshort-desc}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glslongdefaultfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongdefaultfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glsfirstlongdefaultfont}%
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{long-desc-em}{long-noshort-em-desc}
+\newabbreviationstyle{long-em-noshort-em-desc}%
+{%
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongnoshortdescname},
+ sort={\the\glslongtok},
+ first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},
+ firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},
+ text={\glsxplongfont{\the\glslongtok}{\glscategorylabel}},
+ plural={\glsxplongfont{\the\glslongpltok}{\glscategorylabel}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{regular}{true}}%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongemfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongemfont{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glslongemfont}%
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glslongemfont}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glslongemfont}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glslongemfont}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glslongemfont}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glslongemfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongemfont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glsfirstlongemfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glsfirstlongemfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glsfirstlongemfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glsfirstlongemfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glsfirstlongemfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glsfirstlongemfont}%
+ }%
+}
+\newabbreviationstyle{long-em-noshort-em-desc-noreg}%
+{%
+ \GlsXtrUseAbbrStyleSetup{long-em-noshort-em-desc}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-em-noshort-em-desc}%
+}
+\newabbreviationstyle{short-em-footnote}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotename},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
+ \protect\glsxtrabbrvfootnote{##1}%
+ {\glsxtrfootnotelongplformat{##1}{\glsfirstlongfootnotefont}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{footnote-em}{short-em-footnote}
+\newabbreviationstyle{short-em-footnote-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotedescname},
+ sort={\glsxtrfootnotedescsort},
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}%
+ \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
+ {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-em-footnote}%
+}
+\newabbreviationstyle{short-em-postfootnote}%
+{%
+ \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotename},
+ sort={\the\glsshorttok},
+ description={\the\glslongtok},%
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasglslikeandfirstuse
+ {%
+ \glsxtrdopostpunc{\xpglsxtrpostabbrvfootnote}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtremrevert{##1}}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrshortlongformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrshortlongplformat{##1}{##2}%
+ {\glsfirstlongfootnotefont}{\glsfirstabbrvemfont}%
+ }%
+}
+\@glsxtr@deprecated@abbrstyle{postfootnote-em}{short-em-postfootnote}
+\newabbreviationstyle{short-em-postfootnote-desc}%
+{%
+ \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrfootnotedescname},
+ sort={\glsxtrfootnotedescsort},
+ first={\glsfirstxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ firstplural={\glsfirstxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasglslikeandfirstuse
+ {%
+ \glsxtrdopostpunc{\xpglsxtrpostabbrvfootnote}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-em-postfootnote}%
+}
+\newcommand*{\glsxtruserfield}{useri}
+\newcommand*{\glsxtruserparensep}{, }
+\newcommand*{\glsxtruserfieldfmt}[1]{#1}
+\ifdef\glscurrentfieldvalue
+{
+ \newcommand*{\glsxtruserparen}[2]{%
+ \glsxtrfullsep{#2}%
+ \glsxtrparen
+ {#1\ifglshasfield{\glsxtruserfield}{#2}%
+ {\expandafter\glsxtrgenentrytextfmt\expandafter{\glsxtruserparensep}%
+ \glsxtruserfieldfmt{\expandafter\glsxtrgenentrytextfmt\expandafter{\glscurrentfieldvalue}}%
+ }{}%
+ }%
+ }
+}
+{
+ \newcommand*{\glsxtruserparen}[2]{%
+ \glsxtrfullsep{#2}%
+ \glsxtrparen
+ {#1\ifglshasfield{\glsxtruserfield}{#2}%
+ {\expandafter\glsxtrgenentrytextfmt\expandafter{\glsxtruserparensep}%
+ \glsxtruserfieldfmt{\expandafter\glsxtrgenentrytextfmt\expandafter{\@glo@thisvalue}}%
+ }{}%
+ }%
+ }
+}
+\ifdef\glscurrentfieldvalue
+{
+ \newcommand*{\GLSxtruserparen}[2]{%
+ \glsxtrfullsep{#2}%
+ \glsxtrparen
+ {#1\ifglshasfield{\glsxtruserfield}{#2}%
+ {\expandafter\glsxtrgenentrytextfmt\expandafter{\glsxtruserparensep}%
+ \glsxtruserfieldfmt{\expandafter\mfirstucMakeUppercase\expandafter{\expandafter
+ \glsxtrgenentrytextfmt\expandafter{\glscurrentfieldvalue}}}%
+ }{}%
+ }%
+ }
+}
+{
+ \newcommand*{\GLSxtruserparen}[2]{%
+ \glsxtrfullsep{#2}%
+ \glsxtrparen
+ {#1\ifglshasfield{\glsxtruserfield}{#2}%
+ {\expandafter\glsxtrgenentrytextfmt\expandafter{\glsxtruserparensep}%
+ \glsxtruserfieldfmt{\expandafter\mfirstucMakeUppercase\expandafter{\expandafter
+ \glsxtrgenentrytextfmt\expandafter{\@glo@thisvalue}}}%
+ }{}%
+ }%
+ }
+}
+\newcommand*{\glsabbrvuserfont}[1]{\glsabbrvdefaultfont{#1}}
+\newcommand*{\glsfirstabbrvuserfont}[1]{\glsabbrvuserfont{#1}}
+\newcommand*{\glslonguserfont}[1]{\glslongdefaultfont{#1}}
+\newcommand*{\glsfirstlonguserfont}[1]{\glslonguserfont{#1}}
+\newcommand*{\glsxtrusersuffix}{\glsxtrabbrvpluralsuffix}
+\newcommand*{\glsuserdescription}[2]{\glslonguserfont{#1}}
+\newabbreviationstyle{long-short-user}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlonguserfont{\the\glslongtok}%
+ \protect\glsxtruserparen{\protect\glsfirstabbrvuserfont{\the\glsshorttok}}%
+ {\the\glslabeltok}},%
+ firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}%
+ \protect\glsxtruserparen
+ {\protect\glsfirstabbrvuserfont{\the\glsshortpltok}}{\the\glslabeltok}},%
+ text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvuserfont{\the\glsshortpltok}},%
+ description={\protect\glsuserdescription{\the\glslongtok}%
+ {\the\glslabeltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{2}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrusersuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvuserfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvuserfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonguserfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslonguserfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtruserlongshortformat{##1}{##2}%
+ {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtruserlongshortplformat{##1}{##2}%
+ {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtruserlongshortformat{##1}{##2}%
+ {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtruserlongshortplformat{##1}{##2}%
+ {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtruserlongshortformat{##1}{##2}%
+ {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtruserlongshortplformat{##1}{##2}%
+ {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
+ }%
+}
+\newabbreviationstyle{long-postshort-user}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
+ text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvuserfont{\the\glsshortpltok}},%
+ description={\protect\glsuserdescription{\the\glslongtok}%
+ {\the\glslabeltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtrpostusershortformat{\glslabel}{\glsfirstabbrvuserfont}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrusersuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvuserfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvuserfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonguserfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslonguserfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glsfirstlonguserfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glsfirstlonguserfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glsfirstlonguserfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glsfirstlonguserfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glsfirstlonguserfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glsfirstlonguserfont}%
+ }%
+}
+\newcommand*{\glsabbrvscuserfont}{\glsabbrvscfont}%
+\newcommand*{\glsfirstabbrvscuserfont}{\glsabbrvscuserfont}%
+\newcommand*{\glsxtrscusersuffix}{\glsxtrscsuffix}
+\newcommand*{\glsxtrscuserrevert}{\glsxtrscrevert}
+\newcommand*{\glsxtrlongshortscusername}{%
+ \protect\glsabbrvscuserfont{\the\glsshorttok}%
+}
+\newabbreviationstyle{long-postshort-sc-user}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortscusername},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
+ text={\protect\glsabbrvscuserfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvscuserfont{\the\glsshortpltok}},%
+ description={\protect\glsuserdescription{\the\glslongtok}%
+ {\the\glslabeltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtrpostusershortformat{\glslabel}{\glsfirstabbrvscuserfont}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrscusersuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvscuserfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvscuserfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonguserfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslonguserfont{##1}}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtrscuserrevert{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glsfirstlonguserfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glsfirstlonguserfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glsfirstlonguserfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glsfirstlonguserfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glsfirstlonguserfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glsfirstlonguserfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtruserlongshortformat{##1}{##2}%
+ {\glsfirstlonguserfont}{\glsfirstabbrvscuserfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtruserlongshortplformat{##1}{##2}%
+ {\glsfirstlonguserfont}{\glsfirstabbrvscuserfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtruserlongshortformat{##1}{##2}%
+ {\glsfirstlonguserfont}{\glsfirstabbrvscuserfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtruserlongshortplformat{##1}{##2}%
+ {\glsfirstlonguserfont}{\glsfirstabbrvscuserfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtruserlongshortformat{##1}{##2}%
+ {\glsfirstlonguserfont}{\glsfirstabbrvscuserfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtruserlongshortplformat{##1}{##2}%
+ {\glsfirstlonguserfont}{\glsfirstabbrvscuserfont}%
+ }%
+}
+\newcommand*{\glsxtrlongshortuserdescname}{%
+ \protect\glslonguserfont{\the\glslongtok}%
+ \protect\glsxtruserparen
+ {\protect\glsabbrvuserfont{\the\glsshorttok}}{\the\glslabeltok}%
+}
+\newabbreviationstyle{long-postshort-user-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortuserdescname},
+ sort={\the\glslongtok},
+ first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
+ text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvuserfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtrpostusershortformat{\glslabel}{\glsfirstabbrvuserfont}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-postshort-user}%
+}
+\newcommand*{\glsxtrlongshortscuserdescname}{%
+ \protect\glslonguserfont{\the\glslongtok}%
+ \protect\glsxtruserparen
+ {\protect\glsabbrvscuserfont{\the\glsshorttok}}{\the\glslabeltok}%
+}
+\newabbreviationstyle{long-postshort-sc-user-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortscuserdescname},
+ sort={\the\glslongtok},
+ first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
+ text={\protect\glsabbrvscuserfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvscuserfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtrpostusershortformat{\glslabel}{\glsfirstabbrvscuserfont}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-postshort-sc-user}%
+}
+\newabbreviationstyle{short-postlong-user}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
+ text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvuserfont{\the\glsshortpltok}},%
+ description={\protect\glsuserdescription{\the\glslongtok}%
+ {\the\glslabeltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtrpostuserlongformat{\glslabel}{\glsfirstlonguserfont}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrusersuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvuserfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvuserfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonguserfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslonguserfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshortformat{##1}{##2}{\glsfirstabbrvuserfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshortplformat{##1}{##2}{\glsfirstabbrvuserfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrshortformat{##1}{##2}{\glsfirstabbrvuserfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrshortplformat{##1}{##2}{\glsfirstabbrvuserfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshortformat{##1}{##2}{\glsfirstabbrvuserfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshortplformat{##1}{##2}{\glsfirstabbrvuserfont}%
+ }%
+}
+\newcommand*{\glsxtrshortlonguserdescname}{%
+ \protect\glsabbrvuserfont{\the\glsshorttok}%
+ \protect\glsxtruserparen
+ {\protect\glslonguserfont{\the\glslongpltok}}%
+ {\the\glslabeltok}%
+}
+\newabbreviationstyle{short-postlong-user-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlonguserdescname},
+ sort={\the\glsshorttok},
+ first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
+ text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvuserfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \glsxtrpostuserlongformat{\glslabel}{\glsfirstlonguserfont}%
+ }%
+ {}%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-postlong-user}%
+}
+\newabbreviationstyle{long-short-user-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortuserdescname},
+ sort={\glsxtrlongshortdescsort},%
+ first={\protect\glsfirstlonguserfont{\the\glslongtok}%
+ \protect\glsxtruserparen{\protect\glsfirstabbrvuserfont{\the\glsshorttok}}%
+ {\the\glslabeltok}},%
+ firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}%
+ \protect\glsxtruserparen
+ {\protect\glsfirstabbrvuserfont{\the\glsshortpltok}}{\the\glslabeltok}},%
+ text={\protect\glsabbrvfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{2}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-short-user}%
+}
+\newabbreviationstyle{short-long-user}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongname},
+ sort={\the\glsshorttok},
+ description={\protect\glsuserdescription{\the\glslongtok}%
+ {\the\glslabeltok}},%
+ first={\protect\glsfirstabbrvuserfont{\the\glsshorttok}%
+ \protect\glsxtruserparen{\protect\glsfirstlonguserfont{\the\glslongtok}}%
+ {\the\glslabeltok}},%
+ firstplural={\protect\glsfirstabbrvuserfont{\the\glsshortpltok}%
+ \protect\glsxtruserparen{\protect\glsfirstlonguserfont{\the\glslongpltok}}%
+ {\the\glslabeltok}},%
+ text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvuserfont{\the\glsshortpltok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{2}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrusersuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvuserfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvuserfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonguserfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslonguserfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrusershortlongformat{##1}{##2}%
+ {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrusershortlongplformat{##1}{##2}%
+ {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrusershortlongformat{##1}{##2}%
+ {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrusershortlongplformat{##1}{##2}%
+ {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrusershortlongformat{##1}{##2}%
+ {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrusershortlongplformat{##1}{##2}%
+ {\glsfirstlonguserfont}{\glsfirstabbrvuserfont}%
+ }%
+}
+\newabbreviationstyle{short-long-user-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlonguserdescname},
+ sort={\glsxtrshortlongdescsort},%
+ first={\protect\glsfirstabbrvuserfont{\the\glsshorttok}%
+ \protect\glsxtruserparen{\protect\glsfirstlonguserfont{\the\glslongtok}}%
+ {\the\glslabeltok}},%
+ firstplural={\protect\glsfirstabbrvuserfont{\the\glsshortpltok}%
+ \protect\glsxtruserparen{\protect\glsfirstlonguserfont{\the\glslongpltok}}%
+ {\the\glslabeltok}},%
+ text={\protect\glsabbrvfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{2}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-long-user}%
+}
+\newrobustcmd*{\glsxtrifhyphenstart}[3]{%
+ \ifx\glsinsert#1\relax
+ \expandafter\@glsxtrifhyphenstart#1\relax\relax
+ \@end@glsxtrifhyphenstart{#2}{#3}%
+ \else
+ \@glsxtrifhyphenstart#1\relax\relax\@end@glsxtrifhyphenstart{#2}{#3}%
+ \fi
+}
+\def\@glsxtrifhyphenstart#1#2\@end@glsxtrifhyphenstart#3#4{%
+ \ifx-#1\relax#3\else #4\fi
+}
+\newcommand*{\glsxtrlonghyphenshort}[4]{%
+ {%
+ \glsxtrifhyphenstart{#4}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
+ \glsfirstlonghyphenfont{#2\ifglsxtrinsertinside
+ {\glsxtrgenentrytextfmt{#4}}\fi}%
+ \ifglsxtrinsertinside\else{\glsxtrgenentrytextfmt{#4}}\fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\glsfirstabbrvhyphenfont{#3\ifglsxtrinsertinside
+ {\glsxtrgenentrytextfmt{#4}}\fi}%
+ \ifglsxtrinsertinside\else{\glsxtrgenentrytextfmt{#4}}\fi}%
+ }%
+}
+\newcommand*{\GLSxtrlonghyphenshort}[4]{%
+ {%
+ \glsxtrifhyphenstart{#4}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
+ \glsfirstlonghyphenfont{#2\ifglsxtrinsertinside
+ {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#4}}}\fi}%
+ \ifglsxtrinsertinside\else
+ {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#4}}}%
+ \fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\glsfirstabbrvhyphenfont{#3\ifglsxtrinsertinside
+ {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#4}}}\fi}%
+ \ifglsxtrinsertinside\else
+ {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#4}}}%
+ \fi}%
+ }%
+}
+\newcommand*{\glsxtrshorthyphennolong}[3]{%
+ {%
+ \glsxtrifhyphenstart{#3}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
+ \glsfirstabbrvhyphenfont{#2\ifglsxtrinsertinside
+ {\glsxtrgenentrytextfmt{#3}}\fi}%
+ \ifglsxtrinsertinside\else{\glsxtrgenentrytextfmt{#3}}\fi
+ }%
+}
+\newcommand*{\GLSxtrshorthyphennolong}[3]{%
+ {%
+ \glsxtrifhyphenstart{#3}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
+ \glsfirstabbrvhyphenfont{#2\ifglsxtrinsertinside
+ {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#3}}}\fi}%
+ \ifglsxtrinsertinside\else
+ {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#3}}}%
+ \fi
+ }%
+}
+\newcommand*{\glsabbrvhyphenfont}{\glsabbrvdefaultfont}%
+\newcommand*{\glsfirstabbrvhyphenfont}{\glsabbrvhyphenfont}%
+\newcommand*{\glslonghyphenfont}{\glslongdefaultfont}%
+\newcommand*{\glsfirstlonghyphenfont}{\glslonghyphenfont}%
+\newcommand*{\glsxtrhyphensuffix}{\glsxtrabbrvpluralsuffix}
+\newcommand*{\glsxtrlonghyphenshortsort}{\expandonce\glsxtrorgshort}
+\newabbreviationstyle{long-hyphen-short-hyphen}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortname},
+ sort={\glsxtrlonghyphenshortsort},
+ first={\protect\glsfirstlonghyphenfont{\the\glslongtok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}}},%
+ firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}}},%
+ text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}},%
+ description={\protect\glslonghyphenfont{\the\glslongtok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrhyphensuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvhyphenfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvhyphenfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonghyphenfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslonghyphenfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlonghyphenshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \glsaccesslong{##1}%
+ }%
+ {%
+ \glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \glsaccessshort{##1}%
+ }%
+ {%
+ \glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlonghyphenshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \glsaccesslongpl{##1}%
+ }%
+ {%
+ \glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \glsaccessshortpl{##1}%
+ }%
+ {%
+ \glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsxtrlonghyphenshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \Glsaccesslong{##1}%
+ }%
+ {%
+ \Glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \glsaccessshort{##1}%
+ }%
+ {%
+ \glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsxtrlonghyphenshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \Glsaccesslongpl{##1}%
+ }%
+ {%
+ \Glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \glsaccessshortpl{##1}%
+ }%
+ {%
+ \glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrlonghyphenshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \GLSaccesslong{##1}%
+ }%
+ {%
+ \GLSaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \GLSaccessshort{##1}%
+ }%
+ {%
+ \GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrlonghyphenshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \GLSaccesslongpl{##1}%
+ }%
+ {%
+ \GLSaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \GLSaccessshortpl{##1}%
+ }%
+ {%
+ \GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glsxtrshorthyphennolong{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \glsaccessshort{##1}%
+ }%
+ {%
+ \glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glsxtrshorthyphennolong{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \glsaccessshortpl{##1}%
+ }%
+ {%
+ \glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \glsxtrshorthyphennolong{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \Glsaccessshort{##1}%
+ }%
+ {%
+ \Glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \glsxtrshorthyphennolong{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \Glsaccessshortpl{##1}%
+ }%
+ {%
+ \Glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
+ \GLSxtrshorthyphennolong{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \GLSaccessshort{##1}%
+ }%
+ {%
+ \GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
+ \GLSxtrshorthyphennolong{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \GLSaccessshortpl{##1}%
+ }%
+ {%
+ \GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+}
+\newabbreviationstyle{long-hyphen-short-hyphen-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortdescname},
+ sort={\glsxtrlongshortdescsort},
+ first={\protect\glsfirstlonghyphenfont{\the\glslongtok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}}},%
+ firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}}},%
+ text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-hyphen-short-hyphen}%
+}
+\newcommand*{\glsxtrlonghyphennoshort}[3]{%
+ {%
+ \glsxtrifhyphenstart{#3}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
+ \glsfirstlonghyphenfont{#2\ifglsxtrinsertinside
+ {\glsxtrgenentrytextfmt{#3}}\fi}%
+ \ifglsxtrinsertinside\else{\glsxtrgenentrytextfmt{#3}}\fi
+ }%
+}
+\newcommand*{\GLSxtrlonghyphennoshort}[3]{%
+ {%
+ \glsxtrifhyphenstart{#3}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
+ \glsfirstlonghyphenfont{#2\ifglsxtrinsertinside
+ {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#3}}}\fi}%
+ \ifglsxtrinsertinside\else
+ {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#3}}}%
+ \fi
+ }%
+}
+\newcommand*{\glsxtrlonghyphennoshortdescsort}{\expandonce\glsxtrorglong}
+\newabbreviationstyle{long-hyphen-noshort-desc-noreg}%
+{%
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongnoshortdescname},
+ sort={\glsxtrlonghyphennoshortdescsort},
+ first={\protect\glsfirstlonghyphenfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}},%
+ text={\protect\glslonghyphenfont{\the\glslongtok}},%
+ plural={\protect\glslonghyphenfont{\the\glslongpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
+ \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonghyphenfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslonghyphenfont{##1}}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrlonghyphenshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \glsaccesslong{##1}%
+ }%
+ {%
+ \glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \glsaccessshort{##1}%
+ }%
+ {%
+ \glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrlonghyphenshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \glsaccesslongpl{##1}%
+ }%
+ {%
+ \glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \glsaccessshortpl{##1}%
+ }%
+ {%
+ \glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \glsxtrlonghyphenshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \Glsaccesslong{##1}%
+ }%
+ {%
+ \Glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \glsaccessshort{##1}%
+ }%
+ {%
+ \glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \glsxtrlonghyphenshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \Glsaccesslongpl{##1}%
+ }%
+ {%
+ \Glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \glsaccessshortpl{##1}%
+ }%
+ {%
+ \glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrlonghyphenshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \GLSaccesslong{##1}%
+ }%
+ {%
+ \GLSaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \GLSaccessshort{##1}%
+ }%
+ {%
+ \GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrlonghyphenshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \GLSaccesslongpl{##1}%
+ }%
+ {%
+ \GLSaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \GLSaccessshortpl{##1}%
+ }%
+ {%
+ \GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlonghyphennoshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \glsaccesslong{##1}%
+ }%
+ {%
+ \glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlonghyphennoshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \glsaccesslongpl{##1}%
+ }%
+ {%
+ \glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsxtrlonghyphennoshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \Glsaccesslong{##1}%
+ }%
+ {%
+ \Glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsxtrlonghyphennoshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \Glsaccesslongpl{##1}%
+ }%
+ {%
+ \Glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrlonghyphennoshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \GLSaccesslong{##1}%
+ }%
+ {%
+ \GLSaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrlonghyphennoshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \GLSaccesslongpl{##1}%
+ }%
+ {%
+ \GLSaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glsxtrlonghyphennoshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \glsaccesslong{##1}%
+ }%
+ {%
+ \glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glsxtrlonghyphennoshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \glsaccesslongpl{##1}%
+ }%
+ {%
+ \glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \glsxtrlonghyphennoshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \Glsaccesslong{##1}%
+ }%
+ {%
+ \Glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \glsxtrlonghyphennoshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \Glsaccesslongpl{##1}%
+ }%
+ {%
+ \Glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
+ \GLSxtrlonghyphennoshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \GLSaccesslong{##1}%
+ }%
+ {%
+ \GLSaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
+ \GLSxtrlonghyphennoshort{##1}%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \GLSaccesslongpl{##1}%
+ }%
+ {%
+ \GLSaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+}
+\newcommand*{\glsxtrlonghyphennoshortsort}{\expandonce\glsxtrorgshort}
+\newabbreviationstyle{long-hyphen-noshort-noreg}%
+{%
+ \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongnoshortname},
+ sort={\glsxtrlonghyphennoshortsort},
+ first={\protect\glsfirstlonghyphenfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}},%
+ text={\protect\glslonghyphenfont{\the\glslongtok}},%
+ plural={\protect\glslonghyphenfont{\the\glslongpltok}},%
+ description={\the\glslongtok}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-hyphen-noshort-desc-noreg}%
+}
+\newcommand*{\glsxtrlonghyphen}[3]{%
+ {%
+ \glsxtrifhyphenstart{#3}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
+ \glsfirstlonghyphenfont{#1}%
+ }%
+}
+\newcommand*{\glsxtrposthyphenshort}[2]{%
+ {%
+ \glsxtrifhyphenstart{#2}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
+ \ifglsxtrinsertinside
+ {\glsfirstlonghyphenfont{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ {\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen
+ {%
+ \glsxtrshortformat{#1}{#2}{\glsfirstabbrvhyphenfont}%
+ }%
+ }%
+}
+\newcommand*{\GLSxtrposthyphenshort}[2]{%
+ {%
+ \glsxtrifhyphenstart{#2}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
+ \ifglsxtrinsertinside
+ {\glsfirstlonghyphenfont{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}}%
+ \else
+ {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
+ \fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen
+ {%
+ \GLSxtrshortformat{#1}{#2}{\glsfirstabbrvhyphenfont}%
+ }%
+ }%
+}
+\newcommand*{\glsxtrposthyphenshortpl}[2]{%
+ {%
+ \glsxtrifhyphenstart{#2}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
+ \ifglsxtrinsertinside
+ {\glsfirstlonghyphenfont{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ {\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen
+ {%
+ \glsxtrshortplformat{#1}{#2}{\glsfirstabbrvhyphenfont}%
+ }%
+ }%
+}
+\newcommand*{\GLSxtrposthyphenshortpl}[2]{%
+ {%
+ \glsxtrifhyphenstart{#2}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
+ \ifglsxtrinsertinside
+ {\glsfirstlonghyphenfont{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}}%
+ \else
+ {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
+ \fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen
+ {%
+ \GLSxtrshortplformat{#1}{#2}{\glsfirstabbrvhyphenfont}%
+ }%
+ }%
+}
+\newcommand*{\xpglsxtrposthyphenshort}{%
+ \glsxtrifallcaps
+ {%
+ \expandafter\GLSxtrposthyphenshort\expandafter\glslabel
+ \expandafter{\glsinsert}%
+ }%
+ {%
+ \expandafter\glsxtrposthyphenshort\expandafter\glslabel
+ \expandafter{\glsinsert}%
+ }%
+}
+\newcommand*{\glsxtrposthyphensubsequent}[2]{%
+ \ifglsxtrinsertinside
+ \glsabbrvfont{{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ {\glsxtrgenentrytextfmt{#2}}%
+ \fi
+}
+\newcommand*{\GLSxtrposthyphensubsequent}[2]{%
+ \ifglsxtrinsertinside
+ \glsabbrvfont{{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}}%
+ \else
+ {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
+ \fi
+}
+\newcommand*{\xpglsxtrposthyphensubsequent}{%
+ \glsxtrifallcaps
+ {%
+ \expandafter\GLSxtrposthyphensubsequent\expandafter\glslabel
+ \expandafter{\glsinsert}%
+ }%
+ {%
+ \expandafter\glsxtrposthyphensubsequent\expandafter\glslabel
+ \expandafter{\glsinsert}%
+ }%
+}
+\newcommand*{\glsxtrshorthyphennoinsert}[3]{%
+ {%
+ \glsxtrifhyphenstart{#3}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
+ \glsfirstabbrvhyphenfont{#2}%
+ }%
+}
+\newabbreviationstyle{long-hyphen-postshort-hyphen}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortname},
+ sort={\glsxtrlonghyphenshortsort},
+ first={\protect\glsfirstlonghyphenfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}},%
+ text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}},%
+ description={\protect\glslonghyphenfont{\the\glslongtok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \xpglsxtrposthyphenshort
+ }%
+ {%
+ \xpglsxtrposthyphensubsequent
+ }%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvhyphenfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvhyphenfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonghyphenfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslonghyphenfont{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glsxtrshorthyphennoinsert{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \glsaccessshort{##1}%
+ }%
+ {%
+ \glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glsxtrshorthyphennoinsert{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \glsaccessshortpl{##1}%
+ }%
+ {%
+ \glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \glsxtrshorthyphennoinsert{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \Glsaccessshort{##1}%
+ }%
+ {%
+ \Glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \glsxtrshorthyphennoinsert{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \Glsaccessshortpl{##1}%
+ }%
+ {%
+ \Glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
+ \glsxtrshorthyphennoinsert{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \GLSaccessshort{##1}%
+ }%
+ {%
+ \GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
+ \glsxtrshorthyphennoinsert{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \GLSaccessshortpl{##1}%
+ }%
+ {%
+ \GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlonghyphen
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \glsaccesslong{##1}%
+ }%
+ {%
+ \glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##1}{##2}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlonghyphen
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \glsaccesslongpl{##1}%
+ }%
+ {%
+ \glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##1}{##2}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsxtrlonghyphen
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \Glsaccesslong{##1}%
+ }%
+ {%
+ \Glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##1}{##2}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsxtrlonghyphen
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \Glsaccesslongpl{##1}%
+ }%
+ {%
+ \Glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##1}{##2}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \glsxtrlonghyphen
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \GLSaccesslong{##1}%
+ }%
+ {%
+ \GLSaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##1}{##2}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \glsxtrlonghyphen
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \GLSaccesslongpl{##1}%
+ }%
+ {%
+ \GLSaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##1}{##2}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrlongformatgrp{##1}{##2}{\glsfirstlonghyphenfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrlongplformatgrp{##1}{##2}{\glsfirstlonghyphenfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrlongformatgrp{##1}{##2}{\glsfirstlonghyphenfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrlongplformatgrp{##1}{##2}{\glsfirstlonghyphenfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrlongformatgrp{##1}{##2}{\glsfirstlonghyphenfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrlongplformatgrp{##1}{##2}{\glsfirstlonghyphenfont}%
+ }%
+}
+\newabbreviationstyle{long-hyphen-postshort-hyphen-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrlongshortdescname},
+ sort={\glsxtrlongshortdescsort},%
+ first={\protect\glsfirstlonghyphenfont{\the\glslongtok}},%
+ firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}},%
+ text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \xpglsxtrposthyphenshort
+ }%
+ {%
+ \xpglsxtrposthyphensubsequent
+ }%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-hyphen-postshort-hyphen}%
+}
+\newcommand*{\glsxtrshorthyphenlong}[4]{%
+ {%
+ \glsxtrifhyphenstart{#4}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
+ \glsfirstabbrvhyphenfont{#2\ifglsxtrinsertinside
+ {\glsxtrgenentrytextfmt{#4}}\fi}%
+ \ifglsxtrinsertinside\else{\glsxtrgenentrytextfmt{#4}}\fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\glsfirstlonghyphenfont{#3%
+ \ifglsxtrinsertinside{\glsxtrgenentrytextfmt{#4}}\fi}%
+ \ifglsxtrinsertinside\else{\glsxtrgenentrytextfmt{#4}}\fi}%
+ }%
+}
+\newcommand*{\GLSxtrshorthyphenlong}[4]{%
+ {%
+ \glsxtrifhyphenstart{#4}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
+ \glsfirstabbrvhyphenfont{#2\ifglsxtrinsertinside
+ {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#4}}}\fi}%
+ \ifglsxtrinsertinside\else
+ {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#4}}}%
+ \fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\glsfirstlonghyphenfont{#3%
+ \ifglsxtrinsertinside{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#4}}}\fi}%
+ \ifglsxtrinsertinside\else
+ {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#4}}}%
+ \fi}%
+ }%
+}
+\newcommand*{\glsxtrshorthyphenlongsort}{\expandonce\glsxtrorgshort}
+\newabbreviationstyle{short-hyphen-long-hyphen}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongname},
+ sort={\glsxtrshorthyphenlongsort},
+ first={\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\protect\glsfirstlonghyphenfont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\protect\glsfirstlonghyphenfont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}},%
+ description={\protect\glslonghyphenfont{\the\glslongtok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrhyphensuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvhyphenfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvhyphenfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonghyphenfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslonghyphenfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshorthyphenlong{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \glsaccessshort{##1}%
+ }%
+ {%
+ \glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \glsaccesslong{##1}%
+ }%
+ {%
+ \glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshorthyphenlong{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \glsaccessshortpl{##1}%
+ }%
+ {%
+ \glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {%
+ \glsifattribute{##1}{marklongwords}{true}%
+ {%
+ \glsaccesslongpl{##1}%
+ }%
+ {%
+ \glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsxtrshorthyphenlong{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \Glsaccessshort{##1}%
+ }%
+ {%
+ \Glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \glsaccesslong{##1}%
+ }%
+ {%
+ \glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsxtrshorthyphenlong{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \Glsaccessshortpl{##1}%
+ }%
+ {%
+ \Glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \glsaccesslongpl{##1}%
+ }%
+ {%
+ \glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrshorthyphenlong{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \GLSaccessshort{##1}%
+ }%
+ {%
+ \GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \GLSaccesslong{##1}%
+ }%
+ {%
+ \GLSaccessfmtlong{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrshorthyphenlong{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \GLSaccessshortpl{##1}%
+ }%
+ {%
+ \GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {%
+ \glsifattribute{##1}{markwords}{true}%
+ {%
+ \GLSaccesslongpl{##1}%
+ }%
+ {%
+ \GLSaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glsxtrshorthyphennolong{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \glsaccessshort{##1}%
+ }%
+ {%
+ \glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glsxtrshorthyphennolong{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \glsaccessshortpl{##1}%
+ }%
+ {%
+ \glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \glsxtrshorthyphennolong{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \Glsaccessshort{##1}%
+ }%
+ {%
+ \Glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \glsxtrshorthyphennolong{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \Glsaccessshortpl{##1}%
+ }%
+ {%
+ \Glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
+ \GLSxtrshorthyphennolong{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \GLSaccessshort{##1}%
+ }%
+ {%
+ \GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
+ \GLSxtrshorthyphennolong{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \GLSaccessshortpl{##1}%
+ }%
+ {%
+ \GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+}
+\newabbreviationstyle{short-hyphen-long-hyphen-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongdescname},
+ sort={\glsxtrshortlongdescsort},
+ first={\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\protect\glsfirstlonghyphenfont{\the\glslongtok}}},%
+ firstplural={\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}%
+ \protect\glsxtrfullsep{\the\glslabeltok}%
+ \protect\glsxtrparen{\protect\glsfirstlonghyphenfont{\the\glslongpltok}}},%
+ text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsxtrsetcomplexstyle{\the\glslabeltok}{3}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-hyphen-long-hyphen}%
+}
+\newcommand*{\glsxtrshorthyphen}[3]{%
+ {%
+ \glsxtrifhyphenstart{#3}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
+ \glsfirstabbrvhyphenfont{#1}%
+ }%
+}
+\newcommand*{\glsxtrposthyphenlong}[2]{%
+ {%
+ \glsxtrifhyphenstart{#2}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
+ \ifglsxtrinsertinside
+ {\glsfirstabbrvhyphenfont{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ {\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen
+ {\glsxtrlongformatgrp{#1}{#2}{\glsfirstlonghyphenfont}}%
+ }%
+}
+\newcommand*{\GLSxtrposthyphenlong}[2]{%
+ {%
+ \glsxtrifhyphenstart{#2}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
+ \ifglsxtrinsertinside
+ {\glsfirstabbrvhyphenfont{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}}%
+ \else
+ {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
+ \fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen
+ {\GLSxtrlongformatgrp{#1}{#2}{\glsfirstlonghyphenfont}}%
+ }%
+}
+\newcommand*{\glsxtrposthyphenlongpl}[2]{%
+ {%
+ \glsxtrifhyphenstart{#2}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
+ \ifglsxtrinsertinside
+ {\glsfirstabbrvhyphenfont{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ {\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen
+ {\glsxtrlongplformatgrp{#1}{#2}{\glsfirstlonghyphenfont}}%
+ }%
+}
+\newcommand*{\GLSxtrposthyphenlongpl}[2]{%
+ {%
+ \glsxtrifhyphenstart{#2}{\let\glsxtrwordsep\glsxtrwordsephyphen}{}%
+ \ifglsxtrinsertinside
+ {\glsfirstabbrvhyphenfont{\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}}%
+ \else
+ {\mfirstucMakeUppercase{\glsxtrgenentrytextfmt{#2}}}%
+ \fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen
+ {\GLSxtrlongplformatgrp{#1}{#2}{\glsfirstlonghyphenfont}}%
+ }%
+}
+\newcommand*{\xpglsxtrposthyphenlong}{%
+ \glsxtrifallcaps
+ {%
+ \expandafter\GLSxtrposthyphenlong\expandafter\glslabel
+ \expandafter{\glsinsert}%
+ }%
+ {%
+ \expandafter\glsxtrposthyphenlong\expandafter\glslabel
+ \expandafter{\glsinsert}%
+ }%
+}
+\newabbreviationstyle{short-hyphen-postlong-hyphen}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongname},
+ sort={\glsxtrshorthyphenlongsort},
+ first={\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}},%
+ firstplural={\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}},%
+ text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}},%
+ description={\protect\glslonghyphenfont{\the\glslongtok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \xpglsxtrposthyphenlong
+ }%
+ {%
+ \xpglsxtrposthyphensubsequent
+ }%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvhyphenfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvhyphenfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonghyphenfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslonghyphenfont{##1}}%
+ \renewcommand*{\glsxtrsubsequentfmt}[2]{%
+ \glsxtrshorthyphennoinsert{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \glsaccessshort{##1}%
+ }%
+ {%
+ \glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
+ \glsxtrshorthyphennoinsert{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \glsaccessshortpl{##1}%
+ }%
+ {%
+ \glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
+ \glsxtrshorthyphennoinsert{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \Glsaccessshort{##1}%
+ }%
+ {%
+ \Glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
+ \glsxtrshorthyphennoinsert{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \Glsaccessshortpl{##1}%
+ }%
+ {%
+ \Glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentfmt}[2]{%
+ \glsxtrshorthyphennoinsert{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \GLSaccessshort{##1}%
+ }%
+ {%
+ \GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\GLSxtrsubsequentplfmt}[2]{%
+ \glsxtrshorthyphennoinsert{##1}%
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \GLSaccessshortpl{##1}%
+ }%
+ {%
+ \GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##2}%
+ }%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrshorthyphen
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \glsaccessshort{##1}%
+ }%
+ {%
+ \glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##1}{##2}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrshorthyphen
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \glsaccessshortpl{##1}%
+ }%
+ {%
+ \glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##1}{##2}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \glsxtrshorthyphen
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \Glsaccessshort{##1}%
+ }%
+ {%
+ \Glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##1}{##2}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \glsxtrshorthyphen
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \Glsaccessshortpl{##1}%
+ }%
+ {%
+ \Glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }{##1}{##2}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \glsxtrshorthyphen
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \GLSaccessshort{##1}%
+ }%
+ {%
+ \GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }%
+ {##1}{##2}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \glsxtrshorthyphen
+ {%
+ \glsifattribute{##1}{markshortwords}{true}%
+ {%
+ \GLSaccessshortpl{##1}%
+ }%
+ {%
+ \GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{##1}%
+ }%
+ }{##1}{##2}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrshortformatgrp{##1}{##2}{\glsfirstabbrvhyphenfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrshortplformatgrp{##1}{##2}{\glsfirstabbrvhyphenfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrshortformatgrp{##1}{##2}{\glsfirstabbrvhyphenfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrshortplformatgrp{##1}{##2}{\glsfirstabbrvhyphenfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrshortformatgrp{##1}{##2}{\glsfirstabbrvhyphenfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrshortplformatgrp{##1}{##2}{\glsfirstabbrvhyphenfont}%
+ }%
+}
+\newabbreviationstyle{short-hyphen-postlong-hyphen-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrshortlongdescname},
+ sort={\glsxtrshortlongdescsort},%
+ first={\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}},%
+ firstplural={\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}},%
+ text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \csdef{glsxtrpostlink\glscategorylabel}{%
+ \glsxtrifwasfirstuse
+ {%
+ \xpglsxtrposthyphenlong
+ }%
+ {%
+ \xpglsxtrposthyphensubsequent
+ }%
+ }%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-hyphen-postlong-hyphen}%
+}
+\newcommand*{\glsabbrvonlyfont}{\glsabbrvdefaultfont}%
+\newcommand*{\glsfirstabbrvonlyfont}{\glsabbrvonlyfont}%
+\newcommand*{\glslongonlyfont}{\glslongdefaultfont}%
+\newcommand*{\glsfirstlongonlyfont}{\glslongonlyfont}%
+\newcommand*{\glsxtronlysuffix}{\glsxtrabbrvpluralsuffix}
+\newcommand*{\glsxtronlyname}{%
+ \protect\glsabbrvonlyfont{\the\glsshorttok}%
+}
+\newabbreviationstyle{long-only-short-only}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtronlyname},
+ sort={\the\glsshorttok},
+ first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},%
+ firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}},%
+ description={\protect\glslongonlyfont{\the\glslongtok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtronlysuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvonlyfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvonlyfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongonlyfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongonlyfont{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glsfirstlongonlyfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glsfirstlongonlyfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glsfirstlongonlyfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glsfirstlongonlyfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glsfirstlongonlyfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glsfirstlongonlyfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongonlyfont}{\glsfirstabbrvonlyfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongonlyfont}{\glsfirstabbrvonlyfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongonlyfont}{\glsfirstabbrvonlyfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongonlyfont}{\glsfirstabbrvonlyfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongonlyfont}{\glsfirstabbrvonlyfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongonlyfont}{\glsfirstabbrvonlyfont}%
+ }%
+}
+\newcommand*{\glsxtronlydescsort}{\the\glslongtok}
+\newcommand*{\glsxtronlydescname}{%
+ \protect\glslongfont{\the\glslongtok}%
+}
+\newabbreviationstyle{long-only-short-only-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtronlydescname},
+ sort={\glsxtronlydescsort},%
+ first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},%
+ firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-only-short-only}%
+}
+\newcommand*{\glsabbrvsconlyfont}{\glsabbrvscfont}%
+\newcommand*{\glsfirstabbrvsconlyfont}{\glsabbrvsconlyfont}%
+\newcommand*{\glsxtrsconlysuffix}{\glsxtrscsuffix}
+\newcommand*{\glsxtrsconlyrevert}{\glsxtrscrevert}
+\newcommand*{\glsxtrsconlyname}{%
+ \protect\glsabbrvsconlyfont{\the\glsshorttok}%
+}
+\newabbreviationstyle{long-only-short-sc-only}%
+{%
+ \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrsconlyname},
+ sort={\the\glsshorttok},
+ first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},%
+ firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},%
+ text={\protect\glsabbrvsconlyfont{\the\glsshorttok}},%
+ plural={\protect\glsabbrvsconlyfont{\the\glsshortpltok}},%
+ description={\protect\glslongonlyfont{\the\glslongtok}}}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \renewcommand*{\abbrvpluralsuffix}{\glsxtrsconlysuffix}%
+ \renewcommand*{\glsabbrvfont}[1]{\glsabbrvsconlyfont{##1}}%
+ \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvsconlyfont{##1}}%
+ \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongonlyfont{##1}}%
+ \renewcommand*{\glslongfont}[1]{\glslongonlyfont{##1}}%
+ \renewcommand*\glsxtrrevert[1]{\glsxtrsconlyrevert{##1}}%
+ \renewcommand*{\glsxtrfullformat}[2]{%
+ \glsxtrlongformat{##1}{##2}{\glsfirstlongonlyfont}%
+ }%
+ \renewcommand*{\glsxtrfullplformat}[2]{%
+ \glsxtrlongplformat{##1}{##2}{\glsfirstlongonlyfont}%
+ }%
+ \renewcommand*{\Glsxtrfullformat}[2]{%
+ \Glsxtrlongformat{##1}{##2}{\glsfirstlongonlyfont}%
+ }%
+ \renewcommand*{\Glsxtrfullplformat}[2]{%
+ \Glsxtrlongplformat{##1}{##2}{\glsfirstlongonlyfont}%
+ }%
+ \renewcommand*{\GLSxtrfullformat}[2]{%
+ \GLSxtrlongformat{##1}{##2}{\glsfirstlongonlyfont}%
+ }%
+ \renewcommand*{\GLSxtrfullplformat}[2]{%
+ \GLSxtrlongplformat{##1}{##2}{\glsfirstlongonlyfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongonlyfont}{\glsfirstabbrvsconlyfont}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongonlyfont}{\glsfirstabbrvsconlyfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \Glsxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongonlyfont}{\glsfirstabbrvsconlyfont}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \Glsxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongonlyfont}{\glsfirstabbrvsconlyfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullformat}[2]{%
+ \GLSxtrlongshortformat{##1}{##2}%
+ {\glsfirstlongonlyfont}{\glsfirstabbrvsconlyfont}%
+ }%
+ \renewcommand*{\GLSxtrinlinefullplformat}[2]{%
+ \GLSxtrlongshortplformat{##1}{##2}%
+ {\glsfirstlongonlyfont}{\glsfirstabbrvsconlyfont}%
+ }%
+}
+\newcommand*{\glsxtrsconlydescsort}{\glsxtronlydescsort}
+\newcommand*{\glsxtrsconlydescname}{\glsxtronlydescname}
+\newabbreviationstyle{long-only-short-sc-only-desc}%
+{%
+ \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
+ \renewcommand*{\CustomAbbreviationFields}{%
+ name={\glsxtrsconlydescname},
+ sort={\glsxtrsconlydescsort},%
+ first={\glsfirstxplongfont{\the\glslongtok}{\glscategorylabel}},%
+ firstplural={\glsfirstxplongfont{\the\glslongpltok}{\glscategorylabel}},%
+ text={\glsxpabbrvfont{\the\glsshorttok}{\glscategorylabel}},%
+ plural={\glsxpabbrvfont{\the\glsshortpltok}{\glscategorylabel}}%
+ }%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{long-only-short-sc-only}%
+}
+\endinput
+%%
+%% End of file `glossaries-extra-abbrstyles.def'.
diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-bib2gls-2021-11-22.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-bib2gls-2021-11-22.sty
new file mode 100644
index 00000000000..c9eb82f71b3
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-bib2gls-2021-11-22.sty
@@ -0,0 +1,1791 @@
+%%
+%% This is file `glossaries-extra-bib2gls-2021-11-22.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries-extra.dtx (with options: `glossaries-extra-bib2gls-2021-11-22.sty,package')
+%%
+%% glossaries-extra.dtx
+%% Copyright 2022 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-abbrstyles.def, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, glossary-table.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib, glossaries-extra-2021-11-22.sty, glossaries-extra-bib2gls-2021-11-22.sty, glossaries-extra-stylemods-2021-11-22.sty, glossary-bookindex-2021-11-22.sty, glossary-longextra-2021-11-22.sty, glossary-topic-2021-11-22.sty.
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{glossaries-extra-bib2gls}[2021/11/22 v1.48 (NLCT)]
+\ifglsacronym
+ \providecommand*{\printunsrtacronyms}[1][]{%
+ \printunsrtglossary[type=\acronymtype,#1]}%
+\fi
+\ifglossaryexists{index}
+{
+ \providecommand*{\printunsrtindex}[1][]{%
+ \printunsrtglossary[type=index,#1]}%
+}{}
+\ifglossaryexists{symbols}
+{
+ \providecommand*{\printunsrtsymbols}[1][]{%
+ \printunsrtglossary[type=symbols,#1]}%
+}{}
+\ifglossaryexists{numbers}
+{
+ \providecommand*{\printunsrtnumbers}[1][]{%
+ \printunsrtglossary[type=numbers,#1]}%
+}{}
+\ifglossaryexists{abbreviations}
+{
+ \providecommand*{\printunsrtabbreviations}[1][]{%
+ \printunsrtglossary[type=abbreviations,#1]}%
+}{}
+\renewcommand*{\glsdisplaynumberlist}[1]{%
+ \glsdoifexists{#1}%
+ {%
+ {\let\bibglsdelimN\glsnumlistsep
+ \let\bibglslastDelimN\glsnumlistlastsep
+ \glsxtrusefield{#1}{location}%
+ }%
+ }%
+}
+\robustify\glsdisplaynumberlist
+\renewcommand*{\glsentrynumberlist}[1]{\glsxtrusefield{#1}{location}}
+\newcommand*{\glshex}{\string\u}
+\newcommand*{\glscapturedgroup}{\string\$}
+\newcommand*{\GlsXtrIfHasNonZeroChildCount}{%
+ \@ifstar\s@GlsXtrIfHasNonZeroChildCount\@GlsXtrIfHasNonZeroChildCount
+}
+\newcommand*{\@GlsXtrIfHasNonZeroChildCount}[3]{%
+ \@GlsXtrIfFieldNonZero{childcount}{#1}{#2}{#3}%
+}
+\newcommand*{\s@GlsXtrIfHasNonZeroChildCount}[3]{%
+ \s@GlsXtrIfFieldNonZero{childcount}{#1}{#2}{#3}%
+}
+\newcommand*{\glsxtrprovidecommand}{\providecommand}
+\newcommand*{\glsrenewcommand}{\@star@or@long\glsxtr@renewcommand}
+\newcommand*{\glsxtr@renewcommand}[1]{%
+ \begingroup \escapechar\m@ne\xdef\@gtempa{{\string#1}}\endgroup
+ \expandafter\@ifundefined\@gtempa
+ {%
+ \GlossariesExtraWarning{can't redefine \noexpand#1(not already defined)}%
+ }%
+ \relax
+ \relax
+ \let\@ifdefinable\@rc@ifdefinable
+ \new@command#1%
+}
+\newcommand*{\glsxtr@wrglossarylocation}[2]{#1}
+\ifdef\hyperref
+{%
+ \newcommand*{\GlsXtrIndexCounterLink}[2]{%
+ \glsxtrifhasfield{indexcounter}{#2}%
+ {\hyperref[wrglossary.\glscurrentfieldvalue]{#1}}%
+ {#1}%
+ }
+}
+{
+ \newcommand*{\GlsXtrIndexCounterLink}[2]{#1}
+}
+\newcommand*{\GlsXtrDualField}{dual}
+\newcommand*{\GlsXtrDualBackLink}[2]{%
+ \glsxtrifhasfield{\GlsXtrDualField}{#2}%
+ {\glshyperlink[#1]{\glscurrentfieldvalue}}%
+ {#2}%
+}
+\newcommand*{\GlsXtrBibTeXEntryAliases}{%
+ article=bibtexentry,
+ book=bibtexentry,
+ booklet=bibtexentry,
+ conference=bibtexentry,
+ inbook=bibtexentry,
+ incollection=bibtexentry,
+ inproceedings=bibtexentry,
+ manual=bibtexentry,
+ mastersthesis=bibtexentry,
+ misc=bibtexentry,
+ phdthesis=bibtexentry,
+ proceedings=bibtexentry,
+ techreport=bibtexentry,
+ unpublished=bibtexentry
+}
+\newcommand*{\GlsXtrProvideBibTeXFields}{%
+ \glsaddstoragekey{address}{}{\glsxtrbibaddress}%
+ \glsaddstoragekey{author}{}{\glsxtrbibauthor}%
+ \glsaddstoragekey{booktitle}{}{\glsxtrbibbooktitle}%
+ \glsaddstoragekey{chapter}{}{\glsxtrbibchapter}%
+ \glsaddstoragekey{edition}{}{\glsxtrbibedition}%
+ \glsaddstoragekey{howpublished}{}{\glsxtrbibhowpublished}%
+ \glsaddstoragekey{institution}{}{\glsxtrbibinstitution}%
+ \glsaddstoragekey{journal}{}{\glsxtrbibjournal}%
+ \glsaddstoragekey{month}{}{\glsxtrbibmonth}%
+ \glsaddstoragekey{note}{}{\glsxtrbibnote}%
+ \glsaddstoragekey{number}{}{\glsxtrbibnumber}%
+ \glsaddstoragekey{organization}{}{\glsxtrbiborganization}%
+ \glsaddstoragekey{pages}{}{\glsxtrbibpages}%
+ \glsaddstoragekey{publisher}{}{\glsxtrbibpublisher}%
+ \glsaddstoragekey{school}{}{\glsxtrbibschool}%
+ \glsaddstoragekey{series}{}{\glsxtrbibseries}%
+ \glsaddstoragekey{title}{}{\glsxtrbibtitle}%
+ \glsaddstoragekey{bibtextype}{}{\glsxtrbibtype}%
+ \glsaddstoragekey{volume}{}{\glsxtrbibvolume}%
+}
+\newcommand*{\glsxtrmultisupplocation}[3]{%
+ {%
+ \def\glsxtrsupplocationurl{#2}%
+ \glshypernumber{#1}%
+ }%
+}
+\newcommand*\glsxtrdisplaysupploc[5]{%
+ \setentrycounter[#1]{#2}%
+ \glsxtrmultisupplocation{#5}{#4}{#3}%
+}
+\ifundef\hyperlink
+{
+ \newcommand*{\glsxtrdisplaylocnameref}[8]{%
+ \glsnoidxdisplayloc{#1}{#2}{#3}{#4}%
+ }
+}
+{
+ \newcommand*{\glsxtrdisplaylocnameref}[8]{%
+ \ifcsdef{glsxtr#2locfmt}%
+ {\glsxtrnamereflink{#3}{\csuse{glsxtr#2locfmt}{#4}{#5}}{#2.#7}{#8}}%
+ {%
+ \ifstrempty{#5}%
+ {%
+ \glsxtrnamereflink{#3}{#4}{#2.#7}{#8}%
+ }%
+ {%
+ \ifstrequal{#2}{page}%
+ {\glsxtrnamereflink{#3}{#4}{#2.#7}{#8}}%
+ {\glsxtrnamereflink{#3}{#5}{#2.#7}{#8}}%
+ }%
+ }%
+ }
+}
+\newcommand*{\glsxtrequationlocfmt}[2]{(#1)}
+\newcommand*{\glsxtrnamereflink}[4]{%
+ \begingroup
+ \let\glshypernumber\@firstofone
+ \ifstrempty{#4}%
+ {\glsxtrfmtinternalnameref{#3}{#1}{#2}}%
+ {\glsxtrfmtexternalnameref{#3}{#1}{#2}{#4}}%
+ \endgroup
+}
+\newcommand{\glsxtrnameloclink}[6]{%
+ \begingroup
+ \setentrycounter[#1]{#2}%
+ \def\glsxtr@locationhypertext{#5}%
+ \let\glshypernumber\@firstofone
+ \def\@glsnumberformat{#3}%
+ \def\glsxtrsupplocationurl{#6}%
+ \toks@={}%
+ \@glsxtr@bibgls@removespaces#4 \@nil
+ \endgroup
+}
+\def\@glsxtr@bibgls@removespaces#1 #2\@nil{%
+ \toks@=\expandafter{\the\toks@#1}%
+ \ifx\\#2\\%
+ \edef\@glo@tmp{\the\toks@}%
+ \ifx\@glo@tmp\empty
+ \else
+ \protected@edef\@glo@tmp{\glsentrycounter\@glo@counterprefix\the\toks@}%
+ \ifdefvoid\glsxtrsupplocationurl
+ {%
+ \expandafter\glsxtrfmtinternalnameref\expandafter{\@glo@tmp}%
+ {\@glsnumberformat}{\glsxtr@locationhypertext}%
+ }%
+ {%
+ \expandafter\glsxtrfmtexternalnameref\expandafter{\@glo@tmp}%
+ {\@glsnumberformat}{\glsxtr@locationhypertext}{\glsxtrsupplocationurl}%
+ }%
+ \fi
+ \else
+ \@gls@ReturnAfterFi{%
+ \@glsxtr@bibgls@removespaces#2\@nil
+ }%
+ \fi
+}
+\newcommand*{\glsxtrfmtinternalnameref}[3]{%
+ \csuse{#2}{\glsdohyperlink{#1}{#3}}%
+}
+\newcommand*{\glsxtrfmtexternalnameref}[4]{%
+ \csuse{#2}{\hyperref{#4}{}{#1}{#3}}%
+}
+\newcommand*{\glsxtrSetWidest}[3]{%
+ \ifdef\glsupdatewidest
+ {%
+ \ifdef\glslongextraUpdateWidest
+ {%
+ \ifstrempty{#1}
+ {%
+ \glsupdatewidest[#2]{#3}%
+ \ifnum#2=0\relax
+ \glslongextraUpdateWidest{#3}%
+ \else
+ \glslongextraUpdateWidestChild{#2}{#3}%
+ \fi
+ }%
+ {%
+ \apptoglossarypreamble[#1]{\glsupdatewidest[#2]{#3}}%
+ \ifnum#2=0\relax
+ \apptoglossarypreamble[#1]{\glslongextraUpdateWidest{#3}}%
+ \else
+ \apptoglossarypreamble[#1]{\glslongextraUpdateWidestChild{#2}{#3}}%
+ \fi
+ }%
+ }%
+ {%
+ \ifstrempty{#1}
+ {%
+ \glsupdatewidest[#2]{#3}%
+ }%
+ {%
+ \apptoglossarypreamble[#1]{\glsupdatewidest[#2]{#3}}%
+ }%
+ }%
+ }%
+ {%
+ \ifdef\glssetwidest
+ {%
+ \ifdef\glslongextraUpdateWidest
+ {%
+ \ifstrempty{#1}
+ {%
+ \glssetwidest[#2]{#3}%
+ \ifnum#2=0\relax
+ \glslongextraUpdateWidest{#3}%
+ \else
+ \glslongextraUpdateWidestChild{#2}{#3}%
+ \fi
+ }%
+ {%
+ \apptoglossarypreamble[#1]{\glssetwidest[#2]{#3}}%
+ \ifnum#2=0\relax
+ \apptoglossarypreamble[#1]{\glslongextraUpdateWidest{#3}}%
+ \else
+ \apptoglossarypreamble[#1]{\glslongextraUpdateWidestChild{#2}{#3}}%
+ \fi
+ }%
+ }%
+ {%
+ \ifstrempty{#1}
+ {%
+ \glssetwidest[#2]{#3}%
+ }%
+ {%
+ \apptoglossarypreamble[#1]{\glssetwidest[#2]{#3}}%
+ }%
+ }%
+ }%
+ {%
+ \ifdef\glslongextraUpdateWidest
+ {%
+ \ifstrempty{#1}
+ {%
+ \ifnum#2=0\relax
+ \glslongextraUpdateWidest{#3}%
+ \else
+ \glslongextraUpdateWidestChild{#2}{#3}%
+ \fi
+ }%
+ {%
+ \ifnum#2=0\relax
+ \apptoglossarypreamble[#1]{\glslongextraUpdateWidest{#3}}%
+ \else
+ \apptoglossarypreamble[#1]{\glslongextraUpdateWidestChild{#2}{#3}}%
+ \fi
+ }%
+ }%
+ {}%
+ }%
+ }%
+}
+\newcommand*{\glsxtrSetWidestFallback}[2]{%
+ \ifnum#1=0\relax
+ \ifdef\glsFindWidestTopLevelName
+ {%
+ \glsFindWidestTopLevelName[#2]%
+ }%
+ {%
+ \GlossariesExtraWarning{You need stylemods={tree} to
+ provide a fallback for set-widest}%
+ }%
+ \else
+ \ifdef\glsFindWidestLevelTwo
+ {%
+ \glsFindWidestLevelTwo[#2]%
+ \ifdef\glslongextraUpdateWidestChild
+ {%
+ \glslongextraUpdateWidestChild{#1}{\csuse{@glswidestnamei}}%
+ \glslongextraUpdateWidestChild{#1}{\csuse{@glswidestnameii}}%
+ }%
+ {}%
+ }%
+ {%
+ \GlossariesExtraWarning{You need stylemods={tree} to
+ provide a fallback for set-widest}%
+ }%
+ \fi
+}
+\newcommand*{\@glsxtr@labelprefixes}{}
+\newcommand*{\glsxtrclearlabelprefixes}{%
+ \renewcommand*{\@glsxtr@labelprefixes}{}%
+}
+\newcommand*{\glsxtraddlabelprefix}[1]{%
+ \ifstrempty{#1}%
+ {\glsxtraddlabelprefix{\empty}}%
+ {%
+ \ifdefempty\@glsxtr@labelprefixes
+ {\def\@glsxtr@labelprefixes{#1}}%
+ {\appto\@glsxtr@labelprefixes{,#1}}%
+ }%
+}
+\newcommand*{\glsxtrprependlabelprefix}[1]{%
+ \ifstrempty{#1}%
+ {\glsxtrprependlabelprefix{\empty}}%
+ {%
+ \ifdefempty\@glsxtr@labelprefixes
+ {\def\@glsxtr@labelprefixes{#1}}%
+ {\preto\@glsxtr@labelprefixes{#1,}}%
+ }%
+}
+\newcommand*{\glsxtrifinlabelprefixlist}[3]{%
+ \ifstrempty{#1}%
+ {\glsxtrifinlabelprefixlist{\empty}{#2}{#3}}%
+ {%
+ \DTLifinlist{#1}{\@glsxtr@labelprefixes}{#2}{#3}%
+ }%
+}
+\AtBeginDocument{%
+ \protected@write\@auxout{}{\string\providecommand{\string\@glsxtr@prefixlabellist}[1]{}}%
+ \protected@write\@auxout{}{\string\@glsxtr@prefixlabellist{\@glsxtr@labelprefixes}}%
+}
+\newcommand*{\@glsxtr@get@prefixedlabel}[1]{%
+ \begingroup
+ \protected@edef\@gls@thislabel{#1}%
+ \@for\@glsxtr@prefix:=\@glsxtr@labelprefixes\do
+ {%
+ \protected@edef\@gls@thislabel{\@glsxtr@prefix#1}%
+ \ifglsentryexists{\@gls@thislabel}{\@endfortrue}{}%
+ }%
+ \edef\@glo@tmp{\endgroup\noexpand\def\noexpand\@gls@thislabel{\@gls@thislabel}}\@glo@tmp
+}
+\newrobustcmd*{\dgls}{\@gls@hyp@opt\@dgls}
+\newcommand*{\@dgls}[2][]{%
+ \@glsxtr@get@prefixedlabel{#2}%
+ \new@ifnextchar[{\@gls@{#1}{\@gls@thislabel}}{\@gls@{#1}{\@gls@thislabel}[]}%
+}
+\newrobustcmd*{\dglspl}{\@gls@hyp@opt\@dglspl}
+\newcommand*{\@dglspl}[2][]{%
+ \@glsxtr@get@prefixedlabel{#2}%
+ \new@ifnextchar[{\@glspl@{#1}{\@gls@thislabel}}{\@glspl@{#1}{\@gls@thislabel}[]}%
+}
+\newrobustcmd*{\dGls}{\@gls@hyp@opt\@dGls}
+\newcommand*{\@dGls}[2][]{%
+ \@glsxtr@get@prefixedlabel{#2}%
+ \new@ifnextchar[{\@Gls@{#1}{\@gls@thislabel}}{\@Gls@{#1}{\@gls@thislabel}[]}%
+}
+\newrobustcmd*{\dGlspl}{\@gls@hyp@opt\@dGlspl}
+\newcommand*{\@dGlspl}[2][]{%
+ \@glsxtr@get@prefixedlabel{#2}%
+ \new@ifnextchar[{\@Glspl@{#1}{\@gls@thislabel}}{\@Glspl@{#1}{\@gls@thislabel}[]}%
+}
+\newrobustcmd*{\dGLS}{\@gls@hyp@opt\@dGLS}
+\newcommand*{\@dGLS}[2][]{%
+ \@glsxtr@get@prefixedlabel{#2}%
+ \new@ifnextchar[{\@GLS@{#1}{\@gls@thislabel}}{\@GLS@{#1}{\@gls@thislabel}[]}%
+}
+\newrobustcmd*{\dGLSpl}{\@gls@hyp@opt\@dGLSpl}
+\newcommand*{\@dGLSpl}[2][]{%
+ \@glsxtr@get@prefixedlabel{#2}%
+ \new@ifnextchar[{\@GLSpl@{#1}{\@gls@thislabel}}{\@GLSpl@{#1}{\@gls@thislabel}[]}%
+}
+\newrobustcmd*{\dglslink}[3][]{%
+ \@glsxtr@get@prefixedlabel{#2}%
+ \glslink[#1]{\@gls@thislabel}{#3}%
+}
+\newrobustcmd*{\dglsdisp}[3][]{%
+ \@glsxtr@get@prefixedlabel{#2}%
+ \glsdisp[#1]{\@gls@thislabel}{#3}%
+}
+\newrobustcmd*{\glsxtrmultientryadjustedname}[4]{%
+ \bgroup
+ \let\@glsxtrmultientryadjustednamesep\glsxtrmultientryadjustednamesep
+ \let\@glsxtrmultientryadjustednamepresep\glsxtrmultientryadjustednamepresep
+ \let\@glsxtrmultientryadjustednamepostsep\glsxtrmultientryadjustednamepostsep
+ \let\@glsxtrmultientryadjustednameother\glsxtrmultientryadjustednameother
+ \let\@glsxtrmultientryadjustednamefmt\glsxtrmultientryadjustednamefmt
+ \let\@glsxtrmultientryadjustednamefirstother\glsxtrmultientryadjustednameother
+ \let\@glsxtrmultientryadjustednamefirstfmt\glsxtrmultientryadjustednamefmt
+ \@glsxtrmultientryadjustedname{#1}{#2}{#3}{#4}%
+ \egroup
+}
+\newrobustcmd*{\Glsxtrmultientryadjustedname}[4]{%
+ \bgroup
+ \let\@glsxtrmultientryadjustednamesep\glsxtrmultientryadjustednamesep
+ \let\@glsxtrmultientryadjustednamepresep\glsxtrmultientryadjustednamepresep
+ \let\@glsxtrmultientryadjustednamepostsep\glsxtrmultientryadjustednamepostsep
+ \let\@glsxtrmultientryadjustednameother\glsxtrmultientryadjustednameother
+ \let\@glsxtrmultientryadjustednamefmt\glsxtrmultientryadjustednamefmt
+ \let\@glsxtrmultientryadjustednamefirstother\Glsxtrmultientryadjustednameother
+ \let\@glsxtrmultientryadjustednamefirstfmt\Glsxtrmultientryadjustednamefmt
+ \@glsxtrmultientryadjustedname{#1}{#2}{#3}{#4}%
+ \egroup
+}
+\newrobustcmd*{\GlsXtrmultientryadjustedname}[4]{%
+ \bgroup
+ \let\@glsxtrmultientryadjustednamesep\glsxtrmultientryadjustednamesep
+ \let\@glsxtrmultientryadjustednamepresep\glsxtrmultientryadjustednamepresep
+ \let\@glsxtrmultientryadjustednamepostsep\glsxtrmultientryadjustednamepostsep
+ \let\@glsxtrmultientryadjustednameother\GlsXtrmultientryadjustednameother
+ \let\@glsxtrmultientryadjustednamefmt\GlsXtrmultientryadjustednamefmt
+ \let\@glsxtrmultientryadjustednamefirstother\GlsXtrmultientryadjustednameother
+ \let\@glsxtrmultientryadjustednamefirstfmt\GlsXtrmultientryadjustednamefmt
+ \@glsxtrmultientryadjustedname{#1}{#2}{#3}{#4}%
+ \egroup
+}
+\newrobustcmd*{\GLSxtrmultientryadjustedname}[4]{%
+ \bgroup
+ \let\@glsxtrmultientryadjustednamesep\glsxtrmultientryadjustednamesep
+ \let\@glsxtrmultientryadjustednamepresep\glsxtrmultientryadjustednamepresep
+ \let\@glsxtrmultientryadjustednamepostsep\glsxtrmultientryadjustednamepostsep
+ \let\@glsxtrmultientryadjustednameother\GLSxtrmultientryadjustednameother
+ \let\@glsxtrmultientryadjustednamefmt\GLSxtrmultientryadjustednamefmt
+ \let\@glsxtrmultientryadjustednamefirstother\GLSxtrmultientryadjustednameother
+ \let\@glsxtrmultientryadjustednamefirstfmt\GLSxtrmultientryadjustednamefmt
+ \@glsxtrmultientryadjustedname{#1}{#2}{#3}{#4}%
+ \egroup
+}
+\newcommand*{\@glsxtrmultientryadjustedname}[4]{%
+ \letcs\mglscurrentmainlabel{@gls@combined@#4@main}%
+ \letcs\mglscurrentmainlist{@gls@combined@#4@list}%
+ \letcs\mglscurrentmainoptions{@gls@combined@#4@options}%
+ \ifblank{#1}%
+ {%
+ \@glsxtrmultientryadjustednamefirstfmt{#2}%
+ }%
+ {%
+ \def\@mgls@previouslabel{}%
+ \let\@gls@xtradjustedother\@glsxtrmultientryadjustednamefirstother
+ \@for\mglscurrentlabel:=#1\do{%
+ \ifx\@mgls@previouslabel\empty
+ \else
+ \@glsxtrmultientryadjustednamesep{\@mgls@previouslabel}{\mglscurrentlabel}%
+ \fi
+ \@gls@xtradjustedother{\mglscurrentlabel}%
+ \let\@mgls@previouslabel\mglscurrentlabel
+ \let\@gls@xtradjustedother\@glsxtrmultientryadjustednameother
+ }%
+ \@glsxtrmultientryadjustednamepresep{\@mgls@previouslabel}{\mglscurrentmainlabel}%
+ \@glsxtrmultientryadjustednamefmt{#2}%
+ }%
+ \ifblank{#3}%
+ {}%
+ {%
+ \let\@mgls@previouslabel\mglscurrentmainlabel
+ \let\@gls@xtrmultientryadjustednamesep\@glsxtrmultientryadjustednamepostsep
+ \@for\mglscurrentlabel:=#3\do{%
+ \@gls@xtrmultientryadjustednamesep{\@mgls@previouslabel}{\mglscurrentlabel}%
+ \@glsxtrmultientryadjustednameother{\mglscurrentlabel}%
+ \let\@mgls@previouslabel\mglscurrentlabel
+ \let\@gls@xtrmultientryadjustednamesep\@glsxtrmultientryadjustednamesep
+ }%
+ }%
+}
+\newcommand*{\glsxtrmultientryadjustednamesep}{\glscombinedfirstsepfirst}
+\newcommand*{\glsxtrmultientryadjustednamepresep}{\glsxtrmultientryadjustednamesep}
+\newcommand*{\glsxtrmultientryadjustednamepostsep}{\glsxtrmultientryadjustednamesep}
+\newcommand*{\glsxtrmultientryadjustednamefmt}[1]{#1}
+\newcommand*{\glsxtrmultientryadjustednameother}[1]{\glsentryname{#1}}
+\newcommand*{\Glsxtrmultientryadjustednamefmt}[1]{\makefirstuc{#1}}
+\newcommand*{\Glsxtrmultientryadjustednameother}[1]{\Glsentryname{#1}}
+\newcommand*{\GlsXtrmultientryadjustednameother}[1]{%
+ \glsentrytitlecase{#1}{name}}
+\ifdef\glscapitalisewords
+{%
+ \newcommand*{\GlsXtrmultientryadjustednamefmt}[1]{\glscapitalisewords{#1}}
+}
+{
+ \newcommand*{\GlsXtrmultientryadjustednamefmt}[1]{\capitalisewords{#1}}
+}
+\newcommand*{\GLSxtrmultientryadjustednameother}[1]{%
+ \mfirstucMakeUppercase{\glsentryname{#1}}}
+\newcommand*{\GLSxtrmultientryadjustednamefmt}[1]{\mfirstucMakeUppercase{#1}}
+\providecommand*{\Alpha}{\mathrm{A}}
+\providecommand*{\Beta}{\mathrm{B}}
+\providecommand*{\Epsilon}{\mathrm{E}}
+\providecommand*{\Zeta}{\mathrm{Z}}
+\providecommand*{\Eta}{\mathrm{H}}
+\providecommand*{\Iota}{\mathrm{I}}
+\providecommand*{\Kappa}{\mathrm{K}}
+\providecommand*{\Mu}{\mathrm{M}}
+\providecommand*{\Nu}{\mathrm{N}}
+\providecommand*{\Omicron}{\mathrm{O}}
+\providecommand*{\Rho}{\mathrm{P}}
+\providecommand*{\Tau}{\mathrm{T}}
+\providecommand*{\Chi}{\mathrm{X}}
+\providecommand*{\Digamma}{\mathrm{F}}
+\providecommand*{\omicron}{\mathit{o}}
+\@ifpackageloaded{upgreek}%
+{
+ \providecommand*{\Upalpha}{\mathrm{A}}
+ \providecommand*{\Upbeta}{\mathrm{B}}
+ \providecommand*{\Upepsilon}{\mathrm{E}}
+ \providecommand*{\Upzeta}{\mathrm{Z}}
+ \providecommand*{\Upeta}{\mathrm{H}}
+ \providecommand*{\Upiota}{\mathrm{I}}
+ \providecommand*{\Upkappa}{\mathrm{K}}
+ \providecommand*{\Upmu}{\mathrm{M}}
+ \providecommand*{\Upnu}{\mathrm{N}}
+ \providecommand*{\Upomicron}{\mathrm{O}}
+ \providecommand*{\Uprho}{\mathrm{P}}
+ \providecommand*{\Uptau}{\mathrm{T}}
+ \providecommand*{\Upchi}{\mathrm{X}}
+ \providecommand*{\upomicron}{\mathrm{o}}
+}%
+{}% upgreek.sty not loaded
+\newcommand*{\glsxtrcontrolrules}{%
+ \string'\glshex 200B\string'\string=\glshex 200C\string=\glshex 200D
+ \string=\glshex 200E\string=\glshex 200F\string=\glshex 0000\string=\glshex 0001
+ \string=\glshex 0002\string=\glshex 0003\string=\glshex 0004\string=\glshex 0005
+ \string=\glshex 0006\string=\glshex 0007\string=\glshex 0008
+ \string=\string'\glshex 0009\string'\string=\string'\glshex 000B\string'
+ \string=\glshex 000E\string=\glshex 000F\string=\string'\glshex
+0010\string'\string=\glshex 0011
+ \string=\glshex 0012\string=\glshex 0013\string=\glshex 0014\string=\glshex 0015
+ \string=\glshex 0016\string=\glshex 0017\string=\glshex 0018\string=\glshex 0019
+ \string=\glshex 001A\string=\glshex 001B\string=\glshex 001C\string=\glshex 001D
+ \string=\glshex 001E\string=\glshex 001F\string=\glshex 007F\string=\glshex 0080
+ \string=\glshex 0081\string=\glshex 0082\string=\glshex 0083\string=\glshex 0084
+ \string=\glshex 0085\string=\glshex 0086\string=\glshex 0087\string=\glshex 0088
+ \string=\glshex 0089\string=\glshex 008A\string=\glshex 008B\string=\glshex 008C
+ \string=\glshex 008D\string=\glshex 008E\string=\glshex 008F\string=\glshex 0090
+ \string=\glshex 0091\string=\glshex 0092\string=\glshex 0093\string=\glshex 0094
+ \string=\glshex 0095\string=\glshex 0096\string=\glshex 0097\string=\glshex 0098
+ \string=\glshex 0099\string=\glshex 009A\string=\glshex 009B\string=\glshex 009C
+ \string=\glshex 009D\string=\glshex 009E\string=\glshex 009F
+}
+\newcommand*{\glsxtrspacerules}{%
+ \string' \string'\string;
+ \string'\glshex 00A0\string'\string;
+ \string'\glshex 2000\string'\string;
+ \string'\glshex 2001\string'\string;
+ \string'\glshex 2002\string'\string;
+ \string'\glshex 2003\string'\string;
+ \string'\glshex 2004\string'\string;
+ \string'\glshex 2005\string'\string;
+ \string'\glshex 2006\string'\string;
+ \string'\glshex 2007\string'\string;
+ \string'\glshex 2008\string'\string;
+ \string'\glshex 2009\string'\string;
+ \string'\glshex 200A\string'\string;
+ \string'\glshex 3000\string'
+}
+\newcommand*{\glsxtrnonprintablerules}{%
+ \string'\glshex FEFF\string'\string;
+ \string'\glshex 000A\string'\string;
+ \string'\glshex 0009\string'\string;
+ \string'\glshex 000C\string'\string;
+ \string'\glshex 000B\string'
+}
+
+\newcommand*{\glsxtrcombiningdiacriticrules}{%
+ \glsxtrcombiningdiacriticIrules\string;
+ \glsxtrcombiningdiacriticIIrules\string;
+ \glsxtrcombiningdiacriticIIIrules\string;
+ \glsxtrcombiningdiacriticIVrules
+}
+\newcommand*{\glsxtrcombiningdiacriticIrules}{%
+ \glshex 0301\string;% combining acute
+ \glshex 0300\string;% combining grave
+ \glshex 0306\string;% combining breve
+ \glshex 0302\string;% combining circumflex
+ \glshex 030C\string;% combining caron
+ \glshex 030A\string;% combining ring
+ \glshex 030D\string;% combining vertical line above
+ \glshex 0308\string;% combining diaeresis
+ \glshex 030B\string;% combining double acute
+ \glshex 0303\string;% combining tilde
+ \glshex 0307\string;% combining dot above
+ \glshex 0304% combining macron
+}
+\newcommand*{\glsxtrcombiningdiacriticIIrules}{%
+ \glshex 0337\string;% combining short solidus overlay
+ \glshex 0327\string;% combining cedilla
+ \glshex 0328\string;% combining ogonek
+ \glshex 0323\string;% combining dot below
+ \glshex 0332\string;% combining low line
+ \glshex 0305\string;% combining overline
+ \glshex 0309\string;% combining hook above
+ \glshex 030E\string;% combining double vertical line above
+ \glshex 030F\string;% combining double grave accent
+ \glshex 0310\string;% combining candrabindu
+ \glshex 0311\string;% combining inverted breve
+ \glshex 0312\string;% combining turned comma above
+ \glshex 0313\string;% combining comma above
+ \glshex 0314\string;% combining reversed comma above
+ \glshex 0315\string;% combining comma above right
+ \glshex 0316\string;% combining grave accent below
+ \glshex 0317% combining acute accent below
+}
+\newcommand*{\glsxtrcombiningdiacriticIIIrules}{%
+ \glshex 0318\string;% combining left tack below
+ \glshex 0319\string;% combining right tack below
+ \glshex 031A\string;% combining left angle above
+ \glshex 031B\string;% combining horn
+ \glshex 031C\string;% combining left half ring below
+ \glshex 031D\string;% combining up tack below
+ \glshex 031E\string;% combining down tack below
+ \glshex 031F\string;% combining plus sign below
+ \glshex 0320\string;% combining minus sign below
+ \glshex 0321\string;% combining palatalized hook below
+ \glshex 0322\string;% combining retroflex hook below
+ \glshex 0324\string;% combining diaresis below
+ \glshex 0325\string;% combining ring below
+ \glshex 0326\string;% combining comma below
+ \glshex 0329\string;% combining vertical line below
+ \glshex 032A\string;% combining bridge below
+ \glshex 032B\string;% combining inverted double arch below
+ \glshex 032C\string;% combining caron below
+ \glshex 032D\string;% combining circumflex accent below
+ \glshex 032E\string;% combining breve below
+ \glshex 032F\string;% combining inverted breve below
+ \glshex 0330\string;% combining tilde below
+ \glshex 0331\string;% combining macron below
+ \glshex 0333\string;% combining double low line
+ \glshex 0334\string;% combining tilde overlay
+ \glshex 0335\string;% combining short stroke overlay
+ \glshex 0336\string;% combining long stroke overlay
+ \glshex 0338\string;% combining long solidus overlay
+ \glshex 0339\string;% combining combining right half ring below
+ \glshex 033A\string;% combining inverted bridge below
+ \glshex 033B\string;% combining square below
+ \glshex 033C\string;% combining seagull below
+ \glshex 033D\string;% combining x above
+ \glshex 033E\string;% combining vertical tilde
+ \glshex 033F\string;% combining double overline
+ \glshex 0342\string;% combining Greek perispomeni
+ \glshex 0344\string;% combining Greek dialytika tonos
+ \glshex 0345\string;% combining Greek ypogegrammeni
+ \glshex 0360\string;% combining double tilde
+ \glshex 0361\string;% combining double inverted breve
+ \glshex 0483\string;% combining Cyrillic titlo
+ \glshex 0484\string;% combining Cyrillic palatalization
+ \glshex 0485\string;% combining Cyrillic dasia pneumata
+ \glshex 0486% combining Cyrillic psili pneumata
+}
+\newcommand*{\glsxtrcombiningdiacriticIVrules}{%
+ \glshex 20D0\string;% combining left harpoon above
+ \glshex 20D1\string;% combining right harpoon above
+ \glshex 20D2\string;% combining long vertical line overlay
+ \glshex 20D3\string;% combining short vertical line overlay
+ \glshex 20D4\string;% combining anticlockwise arrow above
+ \glshex 20D5\string;% combining clockwise arrow above
+ \glshex 20D6\string;% combining left arrow above
+ \glshex 20D7\string;% combining right arrow above
+ \glshex 20D8\string;% combining ring overlay
+ \glshex 20D9\string;% combining clockwise ring overlay
+ \glshex 20DA\string;% combining anticlockwise ring overlay
+ \glshex 20DB\string;% combining three dots above
+ \glshex 20DC\string;% combining four dots above
+ \glshex 20DD\string;% combining enclosing circle
+ \glshex 20DE\string;% combining enclosing square
+ \glshex 20DF\string;% combining enclosing diamond
+ \glshex 20E0\string;% combining enclosing circle backslash
+ \glshex 20E1% combining left right arrow above
+}
+\newcommand*{\glsxtrhyphenrules}{%
+ \string'\string-\string'\string;% ASCII hyphen
+ \glshex 00AD\string;% soft hyphen
+ \glshex 2010\string;% hyphen
+ \glshex 2011\string;% non-breaking hyphen
+ \glshex 2012\string;% figure dash
+ \glshex 2013\string;% en dash
+ \glshex 2014\string;% em dash
+ \glshex 2015\string;% horizontal bar
+ \glshex 2212\string=\glshex 207B\string=\glshex 208B% minus sign
+}
+\newcommand*{\glsxtrgeneralpuncrules}{%
+ \glsxtrgeneralpuncIrules
+ \string<\glsxtrcurrencyrules
+ \string<\glsxtrgeneralpuncIIrules
+}
+\newcommand*{\glsxtrgeneralpuncIrules}{%
+ \string'\glshex 005F\string'% underscore
+ \string<\glshex 00AF% macron
+ \string<\string'\glshex 002C\string'% comma
+ \string<\string'\glshex 003B\string'% semi-colon
+ \string<\string'\glshex 003A\string'% colon
+ \string<\string'\glshex 0021\string'% exclamation mark
+ \string<\glshex 00A1% inverted exclamation mark
+ \string<\string'\glshex 003F\string'% question mark
+ \string<\glshex 00BF% inverted question mark
+ \string<\string'\glshex 002F\string'% solidus
+ \string<\string'\glshex 002E\string'% full stop
+ \string<\glshex 00B4% acute accent
+ \string<\string'\glshex 0060\string'% grave accent
+ \string<\string'\glshex 005E\string'% circumflex accent
+ \string<\glshex 00A8% diaersis
+ \string<\string'\glshex 007E\string'% tilde
+ \string<\glshex 00B7% middle dot
+ \string<\glshex 00B8% cedilla
+ \string<\string'\glshex 0027\string'% straight apostrophe
+ \string<\string'\glshex 0022\string'% straight double quote
+ \string<\glshex 00AB% left guillemet
+ \string<\glshex 00BB% right guillemet
+ \string<\string'\glshex 0028\string'% left parenthesis
+ \string=\glshex 207D\string=\glshex 208D% super/subscript left parenthesis
+ \string<\string'\glshex 0029\string'% right parenthesis
+ \string=\glshex 207E\string=\glshex 208E% super/subscript right parenthesis
+ \string<\string'\glshex 005B\string'% left square bracket
+ \string<\string'\glshex 005D\string'% right square bracket
+ \string<\string'\glshex 007B\string'% left curly bracket
+ \string<\string'\glshex 007D\string'% right curly bracket
+ \string<\glshex 00A7% section sign
+ \string<\glshex 00B6% pilcrow sign
+ \string<\glshex 00A9% copyright sign
+ \string<\glshex 00AE% registered sign
+ \string<\string'\glshex 0040\string'% at sign
+}
+\newcommand*{\glsxtrcurrencyrules}{%
+ \glshex 00A4% currency sign
+ \string<\glshex 0E3F% Thai currency symbol baht
+ \string<\glshex 00A2% cent sign
+ \string<\glshex 20A1% colon sign
+ \string<\glshex 20A2% cruzeiro sign
+ \string<\string'\glshex 0024\string'% dollar sign
+ \string<\glshex 20AB% dong sign
+ \string<\glshex 20AC% euro sign
+ \string<\glshex 20A3% French franc sign
+ \string<\glshex 20A4% lira sign
+ \string<\glshex 20A5% mill sign
+ \string<\glshex 20A6% naira sign
+ \string<\glshex 20A7% peseta sign
+ \string<\glshex 00A3% pound sign
+ \string<\glshex 20A8% rupee sign
+ \string<\glshex 20AA% new sheqel sign
+ \string<\glshex 20A9% won sign
+ \string<\glshex 00A5% yen sign
+}
+\newcommand*{\glsxtrgeneralpuncIIrules}{%
+ \string'\glshex 002A\string'% asterisk
+ \string<\string'\glshex 005C\string'% backslash
+ \string<\string'\glshex 0026\string'% ampersand
+ \string<\string'\glshex 0023\string'% hash sign
+ \string<\string'\glshex 0025\string'% percent sign
+ \string<\string'\glshex 002B\string'% plus sign
+ \string=\glshex 207A\string=\glshex 208A% super/subscript plus sign
+ \string<\glshex 00B1% plus-minus sign
+ \string<\glshex 00F7% division sign
+ \string<\glshex 00D7% multiplication sign
+ \string<\string'\glshex 003C\string'% less-than sign
+ \string<\string'\glshex 003D\string'% equals sign
+ \string<\string'\glshex 003E\string'% greater-than sign
+ \string<\glshex 00AC% not sign
+ \string<\string'\glshex 007C\string'% vertical bar (pipe)
+ \string<\glshex 00A6% broken bar
+ \string<\glshex 00B0% degree sign
+ \string<\glshex 00B5% micron sign
+}
+\newcommand*{\glsxtrGeneralLatinIrules}{%
+ \glsxtrLatinA
+ \string<b,B%
+ \string<c,C%
+ \string<d,D%
+ \string<\glsxtrLatinE
+ \string<f,F%
+ \string<g,G%
+ \string<\glsxtrLatinH
+ \string<\glsxtrLatinI
+ \string<j,J%
+ \string<\glsxtrLatinK
+ \string<\glsxtrLatinL
+ \string<\glsxtrLatinM
+ \string<\glsxtrLatinN
+ \string<\glsxtrLatinO
+ \string<\glsxtrLatinP
+ \string<q,Q%
+ \string<r,R%
+ \string<\glsxtrLatinS
+ \string<\glsxtrLatinT
+ \string<u,U%
+ \string<v,V%
+ \string<w,W%
+ \string<\glsxtrLatinX
+ \string<y,Y%
+ \string<z,Z
+}
+\newcommand*{\glsxtrGeneralLatinIIrules}{%
+ \glsxtrLatinA
+ \string<b,B%
+ \string<c,C%
+ \string<d,D%
+ \string<\glsxtrLatinEth
+ \string<\glsxtrLatinE
+ \string<f,F%
+ \string<g,G%
+ \string<\glsxtrLatinH
+ \string<\glsxtrLatinI
+ \string<j,J%
+ \string<\glsxtrLatinK
+ \string<\glsxtrLatinL
+ \string<\glsxtrLatinM
+ \string<\glsxtrLatinN
+ \string<\glsxtrLatinO
+ \string<\glsxtrLatinP
+ \string<q,Q%
+ \string<r,R%
+ \string<\glsxtrLatinS
+ \string& SS \string, \glsxtrLatinEszettSs
+ \string<\glsxtrLatinT
+ \string<u,U%
+ \string<v,V%
+ \string<w,W%
+ \string<\glsxtrLatinX
+ \string<y,Y%
+ \string<z,Z%
+}
+\newcommand*{\glsxtrGeneralLatinIIIrules}{%
+ \glsxtrLatinA
+ \string<b,B%
+ \string<c,C%
+ \string<d,D%
+ \string<\glsxtrLatinEth
+ \string<\glsxtrLatinE
+ \string<f,F%
+ \string<g,G%
+ \string<\glsxtrLatinH
+ \string<\glsxtrLatinI
+ \string<j,J%
+ \string<\glsxtrLatinK
+ \string<\glsxtrLatinL
+ \string<\glsxtrLatinM
+ \string<\glsxtrLatinN
+ \string<\glsxtrLatinO
+ \string<\glsxtrLatinP
+ \string<q,Q%
+ \string<r,R%
+ \string<\glsxtrLatinS
+ \string& SZ, \glsxtrLatinEszettSz
+ \string<\glsxtrLatinT
+ \string<u,U%
+ \string<v,V%
+ \string<w,W%
+ \string<\glsxtrLatinX
+ \string<y,Y%
+ \string<z,Z%
+}
+\newcommand*{\glsxtrGeneralLatinIVrules}{%
+ \glsxtrLatinA
+ \string& AE , \glsxtrLatinAELigature
+ \string<b,B%
+ \string<c,C%
+ \string<d,D%
+ \string<\glsxtrLatinEth
+ \string<\glsxtrLatinE
+ \string<f,F%
+ \string<g,G%
+ \string<\glsxtrLatinH
+ \string<\glsxtrLatinI
+ \string<j,J%
+ \string<\glsxtrLatinK
+ \string<\glsxtrLatinL
+ \string<\glsxtrLatinM
+ \string<\glsxtrLatinN
+ \string<\glsxtrLatinO
+ \string& OE , \glsxtrLatinOELigature
+ \string<\glsxtrLatinP
+ \string<q,Q%
+ \string<r,R%
+ \string<\glsxtrLatinS
+ \string& SS , \glsxtrLatinEszettSs
+ \string<\glsxtrLatinT
+ \string& th =\glshex 00DE
+ \string& TH =\glshex 00FE
+ \string<u,U%
+ \string<v,V%
+ \string<w,W%
+ \string<\glsxtrLatinX
+ \string<y,Y%
+ \string<z,Z%
+}
+\newcommand*{\glsxtrGeneralLatinVrules}{%
+ \glsxtrLatinA
+ \string<b,B%
+ \string<c,C%
+ \string<d,D%
+ \string<\glsxtrLatinEth
+ \string<\glsxtrLatinE
+ \string<f,F%
+ \string<g,G%
+ \string<\glsxtrLatinH
+ \string<\glsxtrLatinI
+ \string<j,J%
+ \string<\glsxtrLatinK
+ \string<\glsxtrLatinL
+ \string<\glsxtrLatinM
+ \string<\glsxtrLatinN
+ \string<\glsxtrLatinO
+ \string<\glsxtrLatinP
+ \string<q,Q%
+ \string<r,R%
+ \string<\glsxtrLatinS
+ \string& SS , \glsxtrLatinEszettSs
+ \string<\glsxtrLatinT
+ \string& th =\glshex 00DE
+ \string& TH =\glshex 00FE
+ \string<u,U%
+ \string<v,V%
+ \string<w,W%
+ \string<\glsxtrLatinX
+ \string<y,Y%
+ \string<z,Z%
+}
+\newcommand*{\glsxtrGeneralLatinVIrules}{%
+ \glsxtrLatinA
+ \string<b,B%
+ \string<c,C%
+ \string<d,D%
+ \string<\glsxtrLatinEth
+ \string<\glsxtrLatinE
+ \string<f,F%
+ \string<g,G%
+ \string<\glsxtrLatinH
+ \string<\glsxtrLatinI
+ \string<j,J%
+ \string<\glsxtrLatinK
+ \string<\glsxtrLatinL
+ \string<\glsxtrLatinM
+ \string<\glsxtrLatinN
+ \string<\glsxtrLatinO
+ \string<\glsxtrLatinP
+ \string<q,Q%
+ \string<r,R%
+ \string<\glsxtrLatinS
+ \string& SZ , \glsxtrLatinEszettSz
+ \string<\glsxtrLatinT
+ \string& th =\glshex 00DE
+ \string& TH =\glshex 00FE
+ \string<u,U%
+ \string<v,V%
+ \string<w,W%
+ \string<\glsxtrLatinX
+ \string<y,Y%
+ \string<z,Z%
+}
+\newcommand*{\glsxtrGeneralLatinVIIrules}{%
+ \glsxtrLatinA
+ \string<\glsxtrLatinAELigature
+ \string<b,B%
+ \string<c,C%
+ \string<d,D%
+ \string<\glsxtrLatinEth
+ \string<\glsxtrLatinE
+ \string<f,F%
+ \string<\glsxtrLatinInsularG
+ \string<\glsxtrLatinH
+ \string<\glsxtrLatinI
+ \string<j,J%
+ \string<\glsxtrLatinK
+ \string<\glsxtrLatinL
+ \string<\glsxtrLatinM
+ \string<\glsxtrLatinN
+ \string<\glsxtrLatinO
+ \string<\glsxtrLatinOELigature
+ \string<\glsxtrLatinP
+ \string<q,Q%
+ \string<r,R%
+ \string<\glshex 017F=\glsxtrLatinS % s and long s
+ \string<\glsxtrLatinT
+ \string<\glsxtrLatinThorn
+ \string<u,U%
+ \string<v,V%
+ \string< w\string=\glshex 01BF, W\string=\glshex 01F7
+ \string<\glsxtrLatinX
+ \string<y,Y%
+ \string<z,Z%
+}
+\newcommand*{\glsxtrGeneralLatinVIIIrules}{%
+ \glsxtrLatinA
+ \string& AE , \glsxtrLatinAELigature
+ \string<b,B%
+ \string<c,C%
+ \string<\glshex 00F0\string;d,\glshex 00D0\string;D% D and eth
+ \string<\glsxtrLatinE
+ \string<f,F%
+ \string<g,G%
+ \string<\glsxtrLatinH
+ \string<\glsxtrLatinI
+ \string<j,J%
+ \string<\glsxtrLatinK
+ \string<\glshex 0142\string=\glsxtrLatinL\string=\glshex 0141% L and \L
+ \string<\glsxtrLatinM
+ \string<\glsxtrLatinN
+ \string<\glshex 00F8\string=\glsxtrLatinO\string=\glshex 00D8% O and \O
+ \string& OE , \glsxtrLatinOELigature
+ \string<\glsxtrLatinP
+ \string<q,Q%
+ \string<r,R%
+ \string<\glsxtrLatinS
+ \string& SS , \glsxtrLatinEszettSs
+ \string<\glsxtrLatinT
+ \string& th =\glshex 00DE
+ \string& TH =\glshex 00FE
+ \string<u,U%
+ \string<v,V%
+ \string<w,W%
+ \string<\glsxtrLatinX
+ \string<y,Y%
+ \string<z,Z%
+}
+\newcommand*{\glsxtrLatinA}{%
+ a\string=\glshex 00AA\string=\glshex 2090,A
+}
+\newcommand*{\glsxtrLatinE}{%
+ e\string=\glshex 2091,E
+}
+\newcommand*{\glsxtrLatinH}{%
+ h\string=\glshex 2095,H
+}
+\newcommand*{\glsxtrLatinI}{%
+ i\string=\glshex 2071,I
+}
+\newcommand*{\glsxtrLatinK}{%
+ k\string=\glshex 2096,K
+}
+\newcommand*{\glsxtrLatinL}{%
+ l\string=\glshex 2097,L
+}
+\newcommand*{\glsxtrLatinM}{%
+ m\string=\glshex 2098,M
+}
+\newcommand*{\glsxtrLatinN}{%
+ n\string=\glshex 207F\string=\glshex 2099,N
+}
+\newcommand*{\glsxtrLatinO}{%
+ o\string=\glshex 00BA\string=\glshex 2092,O
+}
+\newcommand*{\glsxtrLatinP}{%
+ p\string=\glshex 209A,P
+}
+\newcommand*{\glsxtrLatinS}{%
+ s\string=\glshex 209B,S
+}
+\newcommand*{\glsxtrLatinT}{%
+ t\string=\glshex 209C,T
+}
+\newcommand*{\glsxtrLatinX}{%
+ x\string=\glshex 2093,X
+}
+\newcommand*{\glsxtrLatinSchwa}{%
+ \glshex 0259\string=\glshex 2094,\glshex 018F
+}
+\newcommand*{\glsxtrLatinEszettSs}{%
+ \glshex 00DF% eszett
+ \string=\glshex 017Fs % long S s
+}
+\newcommand*{\glsxtrLatinEszettSz}{%
+ \glshex 00DF% eszett
+ \string= \glshex 017Fz % long S z
+}
+\newcommand*{\glsxtrLatinEth}{%
+ \glshex 00F0,\glshex 00D0% eth
+}
+\newcommand*{\glsxtrLatinThorn}{%
+ \glshex 00FE,\glshex 00DE% thorn
+}
+\newcommand*{\glsxtrLatinAELigature}{%
+ \glshex 00E6,\glshex 00C6% AE-ligature
+}
+\newcommand*{\glsxtrLatinOELigature}{%
+ \glshex 0153,\glshex 0152% OE-ligature
+}
+\newcommand*{\glsxtrLatinAA}{%
+ \glshex 00E5=a\glshex 030A,% \aa
+ \glshex 00C5=A\glshex 030A% \AA
+}
+\newcommand*{\glsxtrLatinWynn}{%
+ \glshex 01BF,\glshex 01F7% wynn
+}
+\newcommand*{\glsxtrLatinInsularG}{%
+ \glshex 1D79,\glshex A77D% insular G
+ \string; g, G
+}
+\newcommand*{\glsxtrLatinOslash}{%
+ \glshex 00F8,\glshex 00D8% \o, \O
+}
+\newcommand*{\glsxtrLatinLslash}{%
+ \glshex 0142,\glshex 0141% \l, \L
+}
+\newcommand*{\glsxtrMathUpGreekIrules}{%
+ \glsxtrUpAlpha
+ \string<\glsxtrUpBeta
+ \string<\glsxtrUpGamma
+ \string<\glsxtrUpDelta
+ \string<\glsxtrUpEpsilon
+ \string<\glsxtrUpDigamma
+ \string<\glsxtrUpZeta
+ \string<\glsxtrUpEta
+ \string<\glsxtrUpTheta
+ \string<\glsxtrUpIota
+ \string<\glsxtrUpKappa
+ \string<\glsxtrUpLambda
+ \string<\glsxtrUpMu
+ \string<\glsxtrUpNu
+ \string<\glsxtrUpXi
+ \string<\glsxtrUpOmicron
+ \string<\glsxtrUpPi
+ \string<\glsxtrUpRho
+ \string<\glsxtrUpSigma
+ \string<\glsxtrUpTau
+ \string<\glsxtrUpUpsilon
+ \string<\glsxtrUpPhi
+ \string<\glsxtrUpChi
+ \string<\glsxtrUpPsi
+ \string<\glsxtrUpOmega
+}
+\newcommand*{\glsxtrMathUpGreekIIrules}{%
+ \glsxtrUpAlpha
+ \string<\glsxtrUpBeta
+ \string<\glsxtrUpGamma
+ \string<\glsxtrUpDelta
+ \string<\glsxtrUpEpsilon
+ \string<\glsxtrUpZeta
+ \string<\glsxtrUpEta
+ \string<\glsxtrUpTheta
+ \string<\glsxtrUpIota
+ \string<\glsxtrUpKappa
+ \string<\glsxtrUpLambda
+ \string<\glsxtrUpMu
+ \string<\glsxtrUpNu
+ \string<\glsxtrUpXi
+ \string<\glsxtrUpOmicron
+ \string<\glsxtrUpPi
+ \string<\glsxtrUpRho
+ \string<\glsxtrUpSigma
+ \string<\glsxtrUpTau
+ \string<\glsxtrUpUpsilon
+ \string<\glsxtrUpPhi
+ \string<\glsxtrUpChi
+ \string<\glsxtrUpPsi
+ \string<\glsxtrUpOmega
+}
+\newcommand*{\glsxtrMathItalicGreekIrules}{%
+ \glsxtrMathItalicAlpha
+ \string<\glsxtrMathItalicBeta
+ \string<\glsxtrMathItalicGamma
+ \string<\glsxtrMathItalicDelta
+ \string<\glsxtrMathItalicEpsilon
+ \string<\glsxtrUpDigamma
+ \string<\glsxtrMathItalicZeta
+ \string<\glsxtrMathItalicEta
+ \string<\glsxtrMathItalicTheta
+ \string<\glsxtrMathItalicIota
+ \string<\glsxtrMathItalicKappa
+ \string<\glsxtrMathItalicLambda
+ \string<\glsxtrMathItalicMu
+ \string<\glsxtrMathItalicNu
+ \string<\glsxtrMathItalicXi
+ \string<\glsxtrMathItalicOmicron
+ \string<\glsxtrMathItalicPi
+ \string<\glsxtrMathItalicRho
+ \string<\glsxtrMathItalicSigma
+ \string<\glsxtrMathItalicTau
+ \string<\glsxtrMathItalicUpsilon
+ \string<\glsxtrMathItalicPhi
+ \string<\glsxtrMathItalicChi
+ \string<\glsxtrMathItalicPsi
+ \string<\glsxtrMathItalicOmega
+}
+\newcommand*{\glsxtrMathItalicGreekIIrules}{%
+ \glsxtrMathItalicAlpha
+ \string<\glsxtrMathItalicBeta
+ \string<\glsxtrMathItalicGamma
+ \string<\glsxtrMathItalicDelta
+ \string<\glsxtrMathItalicEpsilon
+ \string<\glsxtrMathItalicZeta
+ \string<\glsxtrMathItalicEta
+ \string<\glsxtrMathItalicTheta
+ \string<\glsxtrMathItalicIota
+ \string<\glsxtrMathItalicKappa
+ \string<\glsxtrMathItalicLambda
+ \string<\glsxtrMathItalicMu
+ \string<\glsxtrMathItalicNu
+ \string<\glsxtrMathItalicXi
+ \string<\glsxtrMathItalicOmicron
+ \string<\glsxtrMathItalicPi
+ \string<\glsxtrMathItalicRho
+ \string<\glsxtrMathItalicSigma
+ \string<\glsxtrMathItalicTau
+ \string<\glsxtrMathItalicUpsilon
+ \string<\glsxtrMathItalicPhi
+ \string<\glsxtrMathItalicChi
+ \string<\glsxtrMathItalicPsi
+ \string<\glsxtrMathItalicOmega
+}
+\newcommand*{\glsxtrMathItalicUpperGreekIrules}{%
+ \glshex 1D6E2% upper case alpha (maths italic)
+ \string<\glshex 1D6E3% upper case beta (maths italic)
+ \string<\glshex 1D6E4% upper case gamma (maths italic)
+ \string<\glshex 1D6E5% upper case delta (maths italic)
+ \string<\glshex 1D6E6% upper case epsilon (maths italic)
+ \string<\glshex 03DC% upper case digamma
+ \string<\glshex 1D6E7% upper case zeta (maths italic)
+ \string<\glshex 1D6E8% upper case eta (maths italic)
+ \string<\glshex 1D6E9% upper case theta (maths italic)
+ \string=\glshex 1D6F3% upper case theta variant (maths italic)
+ \string<\glshex 1D6EA% upper case iota (maths italic)
+ \string<\glshex 1D6EB% upper case kappa (maths italic)
+ \string<\glshex 1D6EC% upper case lambda (maths italic)
+ \string<\glshex 1D6ED% upper case mu (maths italic)
+ \string<\glshex 1D6EE% upper case nu (maths italic)
+ \string<\glshex 1D6EF% upper case xi (maths italic)
+ \string<\glshex 1D6F0% upper case omicron (maths italic)
+ \string<\glshex 1D6F1% upper case pi (maths italic)
+ \string<\glshex 1D6F2% upper case rho (maths italic)
+ \string<\glshex 1D6F4% upper case sigma (maths italic)
+ \string<\glshex 1D6F5% upper case tau (maths italic)
+ \string<\glshex 1D6F6% upper case upsilon (maths italic)
+ \string<\glshex 1D6F7% upper case phi (maths italic)
+ \string<\glshex 1D6F8% upper case chi (maths italic)
+ \string<\glshex 1D6F9% upper case psi (maths italic)
+ \string<\glshex 1D6FA% upper case omega (maths italic)
+}
+\newcommand*{\glsxtrMathItalicUpperGreekIIrules}{%
+ \glshex 1D6E2% upper case alpha (maths italic)
+ \string<\glshex 1D6E3% upper case beta (maths italic)
+ \string<\glshex 1D6E4% upper case gamma (maths italic)
+ \string<\glshex 1D6E5% upper case delta (maths italic)
+ \string<\glshex 1D6E6% upper case epsilon (maths italic)
+ \string<\glshex 1D6E7% upper case zeta (maths italic)
+ \string<\glshex 1D6E8% upper case eta (maths italic)
+ \string<\glshex 1D6E9% upper case theta (maths italic)
+ \string=\glshex 1D6F3% upper case theta variant (maths italic)
+ \string<\glshex 1D6EA% upper case iota (maths italic)
+ \string<\glshex 1D6EB% upper case kappa (maths italic)
+ \string<\glshex 1D6EC% upper case lambda (maths italic)
+ \string<\glshex 1D6ED% upper case mu (maths italic)
+ \string<\glshex 1D6EE% upper case nu (maths italic)
+ \string<\glshex 1D6EF% upper case xi (maths italic)
+ \string<\glshex 1D6F0% upper case omicron (maths italic)
+ \string<\glshex 1D6F1% upper case pi (maths italic)
+ \string<\glshex 1D6F2% upper case rho (maths italic)
+ \string<\glshex 1D6F4% upper case sigma (maths italic)
+ \string<\glshex 1D6F5% upper case tau (maths italic)
+ \string<\glshex 1D6F6% upper case upsilon (maths italic)
+ \string<\glshex 1D6F7% upper case phi (maths italic)
+ \string<\glshex 1D6F8% upper case chi (maths italic)
+ \string<\glshex 1D6F9% upper case psi (maths italic)
+ \string<\glshex 1D6FA% upper case omega (maths italic)
+}
+\newcommand*{\glsxtrMathItalicLowerGreekIrules}{%
+ \glshex 1D6FC% lower case alpha (maths italic)
+ \string<\glshex 1D6FD% lower case beta (maths italic)
+ \string<\glshex 1D6FE% lower case gamma (maths italic)
+ \string<\glshex 1D6FF% lower case delta (maths italic)
+ \string<\glshex 1D700% lower case epsilon (maths italic)
+ \string=\glshex 1D716% lower case epsilon variant (maths italic)
+ \string<\glshex 03DD% lower case digamma
+ \string<\glshex 1D701% lower case zeta (maths italic)
+ \string<\glshex 1D702% lower case eta (maths italic)
+ \string<\glshex 1D703% lower case theta (maths italic)
+ \string=\glshex 1D717% lower case theta variant (maths italic)
+ \string<\glshex 1D704% lower case iota (maths italic)
+ \string<\glshex 1D705% lower case kappa (maths italic)
+ \string=\glshex 1D718% lower case kappa variant (maths italic)
+ \string<\glshex 1D706% lower case lambda (maths italic)
+ \string<\glshex 1D707% lower case mu (maths italic)
+ \string<\glshex 1D708% lower case nu (maths italic)
+ \string<\glshex 1D709% lower case xi (maths italic)
+ \string<\glshex 1D70A% lower case omicron (maths italic)
+ \string<\glshex 1D70B% lower case pi (maths italic)
+ \string=\glshex 1D71B% lower case pi variant (maths italic)
+ \string<\glshex 1D70C% lower case rho (maths italic)
+ \string=\glshex 1D71A% lower case rho variant (maths italic)
+ \string<\glshex 1D70D% lower case final sigma (maths italic)
+ \string=\glshex 1D70E% lower case sigma (maths italic)
+ \string<\glshex 1D70F% lower case tau (maths italic)
+ \string<\glshex 1D710% lower case upsilon (maths italic)
+ \string<\glshex 1D711% lower case phi (maths italic)
+ \string=\glshex 1D719% lower case phi variant (maths italic)
+ \string<\glshex 1D712% lower case chi (maths italic)
+ \string<\glshex 1D713% lower case psi (maths italic)
+ \string<\glshex 1D714% lower case omega (maths italic)
+}
+\newcommand*{\glsxtrMathItalicLowerGreekIIrules}{%
+ \glshex 1D6FC% lower case alpha (maths italic)
+ \string<\glshex 1D6FD% lower case beta (maths italic)
+ \string<\glshex 1D6FE% lower case gamma (maths italic)
+ \string<\glshex 1D6FF% lower case delta (maths italic)
+ \string<\glshex 1D700% lower case epsilon (maths italic)
+ \string=\glshex 1D716% lower case epsilon variant (maths italic)
+ \string<\glshex 1D701% lower case zeta (maths italic)
+ \string<\glshex 1D702% lower case eta (maths italic)
+ \string<\glshex 1D703% lower case theta (maths italic)
+ \string=\glshex 1D717% lower case theta variant (maths italic)
+ \string<\glshex 1D704% lower case iota (maths italic)
+ \string<\glshex 1D705% lower case kappa (maths italic)
+ \string=\glshex 1D718% lower case kappa variant (maths italic)
+ \string<\glshex 1D706% lower case lambda (maths italic)
+ \string<\glshex 1D707% lower case mu (maths italic)
+ \string<\glshex 1D708% lower case nu (maths italic)
+ \string<\glshex 1D709% lower case xi (maths italic)
+ \string<\glshex 1D70A% lower case omicron (maths italic)
+ \string<\glshex 1D70B% lower case pi (maths italic)
+ \string=\glshex 1D71B% lower case pi variant (maths italic)
+ \string<\glshex 1D70C% lower case rho (maths italic)
+ \string=\glshex 1D71A% lower case rho variant (maths italic)
+ \string<\glshex 1D70D% lower case final sigma (maths italic)
+ \string=\glshex 1D70E% lower case sigma (maths italic)
+ \string<\glshex 1D70F% lower case tau (maths italic)
+ \string<\glshex 1D710% lower case upsilon (maths italic)
+ \string<\glshex 1D711% lower case phi (maths italic)
+ \string=\glshex 1D719% lower case phi variant (maths italic)
+ \string<\glshex 1D712% lower case chi (maths italic)
+ \string<\glshex 1D713% lower case psi (maths italic)
+ \string<\glshex 1D714% lower case omega (maths italic)
+}
+\newcommand*{\glsxtrMathGreekIrules}{%
+ \glsxtrMathItalicAlpha
+ \string;\glsxtrUpAlpha
+ \string<\glsxtrMathItalicBeta
+ \string;\glsxtrUpBeta
+ \string<\glsxtrMathItalicGamma
+ \string;\glsxtrUpGamma
+ \string<\glsxtrMathItalicDelta
+ \string;\glsxtrUpDelta
+ \string<\glsxtrMathItalicEpsilon
+ \string;\glsxtrUpEpsilon
+ \string<\glsxtrUpDigamma
+ \string<\glsxtrMathItalicZeta
+ \string;\glsxtrUpZeta
+ \string<\glsxtrMathItalicEta
+ \string;\glsxtrUpEta
+ \string<\glsxtrMathItalicTheta
+ \string;\glsxtrUpTheta
+ \string<\glsxtrMathItalicIota
+ \string;\glsxtrUpIota
+ \string<\glsxtrMathItalicKappa
+ \string;\glsxtrUpKappa
+ \string<\glsxtrMathItalicLambda
+ \string;\glsxtrUpLambda
+ \string<\glsxtrMathItalicMu
+ \string;\glsxtrUpMu
+ \string<\glsxtrMathItalicNu
+ \string;\glsxtrUpNu
+ \string<\glsxtrMathItalicXi
+ \string;\glsxtrUpXi
+ \string<\glsxtrMathItalicOmicron
+ \string;\glsxtrUpOmicron
+ \string<\glsxtrMathItalicPi
+ \string;\glsxtrUpPi
+ \string<\glsxtrMathItalicRho
+ \string;\glsxtrUpRho
+ \string<\glsxtrMathItalicSigma
+ \string;\glsxtrUpSigma
+ \string<\glsxtrMathItalicTau
+ \string;\glsxtrUpTau
+ \string<\glsxtrMathItalicUpsilon
+ \string;\glsxtrUpUpsilon
+ \string<\glsxtrMathItalicPhi
+ \string;\glsxtrUpPhi
+ \string<\glsxtrMathItalicChi
+ \string;\glsxtrUpChi
+ \string<\glsxtrMathItalicPsi
+ \string;\glsxtrUpPsi
+ \string<\glsxtrMathItalicOmega
+ \string;\glsxtrUpOmega
+}
+\newcommand*{\glsxtrMathGreekIIrules}{%
+ \glsxtrMathItalicAlpha
+ \string;\glsxtrUpAlpha
+ \string<\glsxtrMathItalicBeta
+ \string;\glsxtrUpBeta
+ \string<\glsxtrMathItalicGamma
+ \string;\glsxtrUpGamma
+ \string<\glsxtrMathItalicDelta
+ \string;\glsxtrUpDelta
+ \string<\glsxtrMathItalicEpsilon
+ \string;\glsxtrUpEpsilon
+ \string<\glsxtrMathItalicZeta
+ \string;\glsxtrUpZeta
+ \string<\glsxtrMathItalicEta
+ \string;\glsxtrUpEta
+ \string<\glsxtrMathItalicTheta
+ \string;\glsxtrUpTheta
+ \string<\glsxtrMathItalicIota
+ \string;\glsxtrUpIota
+ \string<\glsxtrMathItalicKappa
+ \string;\glsxtrUpKappa
+ \string<\glsxtrMathItalicLambda
+ \string;\glsxtrUpLambda
+ \string<\glsxtrMathItalicMu
+ \string;\glsxtrUpMu
+ \string<\glsxtrMathItalicNu
+ \string;\glsxtrUpNu
+ \string<\glsxtrMathItalicXi
+ \string;\glsxtrUpXi
+ \string<\glsxtrMathItalicOmicron
+ \string;\glsxtrUpOmicron
+ \string<\glsxtrMathItalicPi
+ \string;\glsxtrUpPi
+ \string<\glsxtrMathItalicRho
+ \string;\glsxtrUpRho
+ \string<\glsxtrMathItalicSigma
+ \string;\glsxtrUpSigma
+ \string<\glsxtrMathItalicTau
+ \string;\glsxtrUpTau
+ \string<\glsxtrMathItalicUpsilon
+ \string;\glsxtrUpUpsilon
+ \string<\glsxtrMathItalicPhi
+ \string;\glsxtrUpPhi
+ \string<\glsxtrMathItalicChi
+ \string;\glsxtrUpChi
+ \string<\glsxtrMathItalicPsi
+ \string;\glsxtrUpPsi
+ \string<\glsxtrMathItalicOmega
+ \string;\glsxtrUpOmega
+}
+\newcommand*{\glsxtrUpAlpha}{%
+ \glshex 03B1,% lower case alpha
+ \glshex 0391% upper case alpha
+}
+\newcommand*{\glsxtrUpBeta}{%
+ \glshex 03B2,% lower case beta
+ \glshex 0392% upper case beta
+}
+\newcommand*{\glsxtrUpGamma}{%
+ \glshex 03B3,% lower case gamma
+ \glshex 0393% upper case gamma
+}
+\newcommand*{\glsxtrUpDelta}{%
+ \glshex 03B4,% lower case delta
+ \glshex 0394% upper case delta
+}
+\newcommand*{\glsxtrUpEpsilon}{%
+ \glshex 03B5% lower case epsilon
+ \string=\glshex 03F5,% lower case epsilon variant
+ \glshex 0395% upper case epsilon
+}
+\newcommand*{\glsxtrUpDigamma}{%
+ \glshex 03DD,% lower case digamma
+ \glshex 03DC% upper case digamma
+}
+\newcommand*{\glsxtrUpZeta}{%
+ \glshex 03B6,% lower case zeta
+ \glshex 0396% upper case zeta
+}
+\newcommand*{\glsxtrUpEta}{%
+ \glshex 03B7,% lower case eta
+ \glshex 0397% upper case eta
+}
+\newcommand*{\glsxtrUpTheta}{%
+ \glshex 03B8% lower case theta
+ \string=\glshex 03D1,% lower case theta variant
+ \glshex 0398% upper case theta
+}
+\newcommand*{\glsxtrUpIota}{%
+ \glshex 03B9,% lower case iota
+ \glshex 0399% upper case iota
+}
+\newcommand*{\glsxtrUpKappa}{%
+ \glshex 03BA% lower case kappa
+ \string=\glshex 03F0,% lower case kappa variant
+ \glshex 039A% upper case kappa
+}
+\newcommand*{\glsxtrUpLambda}{%
+ \glshex 03BB,% lower lambda
+ \glshex 039B% upper case lambda
+}
+\newcommand*{\glsxtrUpMu}{%
+ \glshex 03BC,% lower case mu
+ \glshex 039C% upper case mu
+}
+\newcommand*{\glsxtrUpNu}{%
+ \glshex 03BD,% lower case nu
+ \glshex 039D% upper case nu
+}
+\newcommand*{\glsxtrUpXi}{%
+ \glshex 03BE,% lower case xi
+ \glshex 039E% upper case xi
+}
+\newcommand*{\glsxtrUpOmicron}{%
+ \glshex 03BF,% lower case omicron
+ \glshex 039F% upper case omicron
+}
+\newcommand*{\glsxtrUpPi}{%
+ \glshex 03C0% lower case pi
+ \string=\glshex 03D6,% lower case pi variant
+ \glshex 03A0% upper case pi
+}
+\newcommand*{\glsxtrUpRho}{%
+ \glshex 03C1% lower case rho
+ \string=\glshex 03F1,% lower case rho variant
+ \glshex 03A1% upper case rho
+}
+\newcommand*{\glsxtrUpSigma}{%
+ \glshex 03C2% lower case sigma
+ \string=\glshex 03C3,% lower case sigma
+ \glshex 03A3% upper case sigma
+}
+\newcommand*{\glsxtrUpTau}{%
+ \glshex 03C4,% lower case tau
+ \glshex 03A4% upper case tau
+}
+\newcommand*{\glsxtrUpUpsilon}{%
+ \glshex 03C5,% lower case upsilon
+ \glshex 03A5% upper case upsilon
+}
+\newcommand*{\glsxtrUpPhi}{%
+ \glshex 03C6% lower case phi
+ \string=\glshex 03D5,% lower case phi variant
+ \glshex 03A6% upper case phi
+}
+\newcommand*{\glsxtrUpChi}{%
+ \glshex 03C7,% lower case chi
+ \glshex 03A7% upper case chi
+}
+\newcommand*{\glsxtrUpPsi}{%
+ \glshex 03C8,% lower case psi
+ \glshex 03A8% upper case psi
+}
+\newcommand*{\glsxtrUpOmega}{%
+ \glshex 03C9,% lower case omega
+ \glshex 03A9% upper case omega
+}
+\newcommand*{\glsxtrMathItalicAlpha}{%
+ \glshex 1D6FC,% lower case alpha (maths italic)
+ \glshex 1D6E2% upper case alpha (maths italic)
+}
+\newcommand*{\glsxtrMathItalicBeta}{%
+ \glshex 1D6FD,% lower case beta (maths italic)
+ \glshex 1D6E3% upper case beta (maths italic)
+}
+\newcommand*{\glsxtrMathItalicGamma}{%
+ \glshex 1D6FE,% lower case gamma (maths italic)
+ \glshex 1D6E4% upper case gamma (maths italic)
+}
+\newcommand*{\glsxtrMathItalicDelta}{%
+ \glshex 1D6FF,% lower case delta (maths italic)
+ \glshex 1D6E5% upper case delta (maths italic)
+}
+\newcommand*{\glsxtrMathItalicEpsilon}{%
+ \glshex 1D700% lower case epsilon (maths italic)
+ \string=\glshex 1D716,% lower case epsilon variant (maths italic)
+ \glshex 1D6E6% upper case epsilon (maths italic)
+}
+\newcommand*{\glsxtrMathItalicZeta}{%
+ \glshex 1D701,% lower case zeta (maths italic)
+ \glshex 1D6E7% upper case zeta (maths italic)
+}
+\newcommand*{\glsxtrMathItalicEta}{%
+ \glshex 1D702,% lower case eta (maths italic)
+ \glshex 1D6E8% upper case eta (maths italic)
+}
+\newcommand*{\glsxtrMathItalicTheta}{%
+ \glshex 1D703% lower case theta (maths italic)
+ \string=\glshex 1D717,% lower case theta variant (maths italic)
+ \glshex 1D6E9% upper case theta (maths italic)
+ \string=\glshex 1D6F3% upper case theta variant (maths italic)
+}
+\newcommand*{\glsxtrMathItalicIota}{%
+ \glshex 1D704,% lower case iota (maths italic)
+ \glshex 1D6EA% upper case iota (maths italic)
+}
+\newcommand*{\glsxtrMathItalicKappa}{%
+ \glshex 1D705% lower case kappa (maths italic)
+ \string=\glshex 1D718,% lower case kappa variant (maths italic)
+ \glshex 1D6EB% upper case kappa (maths italic)
+}
+\newcommand*{\glsxtrMathItalicLambda}{%
+ \glshex 1D706,% lower case lambda (maths italic)
+ \glshex 1D6EC% upper case lambda (maths italic)
+}
+\newcommand*{\glsxtrMathItalicMu}{%
+ \glshex 1D707,% lower case mu (maths italic)
+ \glshex 1D6ED% upper case mu (maths italic)
+}
+\newcommand*{\glsxtrMathItalicNu}{%
+ \glshex 1D708,% lower case nu (maths italic)
+ \glshex 1D6EE% upper case nu (maths italic)
+}
+\newcommand*{\glsxtrMathItalicXi}{%
+ \glshex 1D709,% lower case xi (maths italic)
+ \glshex 1D6EF% upper case xi (maths italic)
+}
+\newcommand*{\glsxtrMathItalicOmicron}{%
+ \glshex 1D70A,% lower case omicron (maths italic)
+ \glshex 1D6F0% upper case omicron (maths italic)
+}
+\newcommand*{\glsxtrMathItalicPi}{%
+ \glshex 1D70B% lower case pi (maths italic)
+ \string=\glshex 1D71B,% lower case pi variant (maths italic)
+ \glshex 1D6F1% upper case pi (maths italic)
+}
+\newcommand*{\glsxtrMathItalicRho}{%
+ \glshex 1D70C% lower case rho (maths italic)
+ \string=\glshex 1D71A,% lower case rho variant (maths italic)
+ \glshex 1D6F2% upper case rho (maths italic)
+}
+\newcommand*{\glsxtrMathItalicSigma}{%
+ \glshex 1D70D% lower case final sigma (maths italic)
+ \string=\glshex 1D70E,% lower case sigma (maths italic)
+ \glshex 1D6F4% upper case sigma (maths italic)
+}
+\newcommand*{\glsxtrMathItalicTau}{%
+ \glshex 1D70F,% lower case tau (maths italic)
+ \glshex 1D6F5% upper case tau (maths italic)
+}
+\newcommand*{\glsxtrMathItalicUpsilon}{%
+ \glshex 1D710,% lower case upsilon (maths italic)
+ \glshex 1D6F6% upper case upsilon (maths italic)
+}
+\newcommand*{\glsxtrMathItalicPhi}{%
+ \glshex 1D711% lower case phi (maths italic)
+ \string=\glshex 1D719,% lower case phi variant (maths italic)
+ \glshex 1D6F7% upper case phi (maths italic)
+}
+\newcommand*{\glsxtrMathItalicChi}{%
+ \glshex 1D712,% lower case chi (maths italic)
+ \glshex 1D6F8% upper case chi (maths italic)
+}
+\newcommand*{\glsxtrMathItalicPsi}{%
+ \glshex 1D713,% lower case psi (maths italic)
+ \glshex 1D6F9% upper case psi (maths italic)
+}
+\newcommand*{\glsxtrMathItalicOmega}{%
+ \glshex 1D714,% lower case omega (maths italic)
+ \glshex 1D6FA% upper case omega (maths italic)
+}
+\newcommand*{\glsxtrMathItalicPartial}{%
+ \glshex 1D715% partial differential (maths italic)
+}
+\newcommand*{\glsxtrMathItalicNabla}{%
+ \glshex 1D6FB% nabla (maths italic)
+}
+\newcommand*{\glsxtrdigitrules}{%
+ 0\string=\glshex 2080\string=\glshex 2070
+ \string<1\string=\glshex 2081\string=\glshex 00B9
+ \string<2\string=\glshex 2082\string=\glshex 00B2
+ \string<3\string=\glshex 2083\string=\glshex 00B3
+ \string<4\string=\glshex 2084\string=\glshex 2074
+ \string<5\string=\glshex 2085\string=\glshex 2075
+ \string<6\string=\glshex 2086\string=\glshex 2076
+ \string<7\string=\glshex 2087\string=\glshex 2077
+ \string<8\string=\glshex 2088\string=\glshex 2078
+ \string<9\string=\glshex 2089\string=\glshex 2079
+}
+\newcommand*{\glsxtrBasicDigitrules}{%
+ 0\string<1\string<2\string<3\string<4%
+ \string<5\string<6\string<7\string<8\string<9%
+}
+\newcommand*{\glsxtrSubScriptDigitrules}{%
+ \glshex 2080% subscript 0
+ \string<\glshex 2081% subscript 1
+ \string<\glshex 2082% subscript 2
+ \string<\glshex 2083% subscript 3
+ \string<\glshex 2084% subscript 4
+ \string<\glshex 2085% subscript 5
+ \string<\glshex 2086% subscript 6
+ \string<\glshex 2087% subscript 7
+ \string<\glshex 2088% subscript 8
+ \string<\glshex 2089% subscript 9
+}
+\newcommand*{\glsxtrSuperScriptDigitrules}{%
+ \glshex 2070% superscript 0
+ \string<\glshex 00B9% superscript 1
+ \string<\glshex 00B2% superscript 2
+ \string<\glshex 00B3% superscript 3
+ \string<\glshex 2074% superscript 4
+ \string<\glshex 2075% superscript 5
+ \string<\glshex 2076% superscript 6
+ \string<\glshex 2077% superscript 7
+ \string<\glshex 2078% superscript 8
+ \string<\glshex 2079% superscript 9
+}
+\newcommand*{\glsxtrfractionrules}{%
+ \glshex 215F% fraction numerator one (1/)
+ \string<\glshex 2189% zero thirds (0/3 = 0)
+ \string<\glshex 2152% one tenth (1/10 = 0.1)
+ \string<\glshex 2151% one ninth (1/9 ~ 0.111)
+ \string<\glshex 215B% one eighth (1/8 = 0.125)
+ \string<\glshex 2150% one seventh (1/7 ~ 0.143)
+ \string<\glshex 2159% one sixth (1/6 ~ 0.167)
+ \string<\glshex 2155% one fifth (1/5 = 0.2)
+ \string<\glshex 00BC% one quarter (1/4 = 0.25)
+ \string<\glshex 2153% one third (1/3 ~ 0.333)
+ \string<\glshex 215C% three eighths (3/8 = 0.375)
+ \string<\glshex 2156% two fifths (2/5 = 0.4)
+ \string<\glshex 00BD% one half (1/2 = 0.5)
+ \string<\glshex 2157% three fifths (3/5 = 0.6)
+ \string<\glshex 215D% five eighths (5/8 = 0.625)
+ \string<\glshex 2154% two thirds (2/3 ~ 0.667)
+ \string<\glshex 00BE% three quarters (3/4 = 0.75)
+ \string<\glshex 2158% four fifths (4/5 = 0.8)
+ \string<\glshex 215A% five sixths (5/6 ~ 0.833)
+ \string<\glshex 215E% seven eighths (7/8 = 0.875)
+}
+\renewcommand{\@glsxtrdialecthook}{%
+ \ifundef\CurrentTrackedScript
+ {%
+ \TrackLangIfHasDefaultScript{\CurrentTrackedLanguage}%
+ {%
+ \edef\CurrentTrackedScript{%
+ \TrackLangGetDefaultScript\CurrentTrackedLanguage}%
+ }%
+ {}%
+ }%
+ {}%
+ \ifdef\CurrentTrackedScript
+ {%
+ \let\gls@orgTrackLangRequireDialectPrefix\TrackLangRequireDialectPrefix
+ \def\TrackLangRequireDialectPrefix{glossariesxtr-}%
+ \let\CurrentTrackedTag\CurrentTrackedScript
+ \IfFileExists{\TrackLangRequireDialectPrefix\CurrentTrackedTag.ldf}
+ {\RequireGlossariesExtraLang{\CurrentTrackedTag}}%
+ {}%
+ \let\TrackLangRequireDialectPrefix\gls@orgTrackLangRequireDialectPrefix
+ }%
+ {}%
+}
+\ifdef\glsxtr@loaddialect
+{%
+ \@ifpackageloaded{tracklang}
+ {%
+ \AnyTrackedLanguages
+ {%
+ \ForEachTrackedDialect{\this@dialect}{\glsxtr@loaddialect}%
+ }%
+ {}%
+ }
+ {}
+}
+{}
+\endinput
+%%
+%% End of file `glossaries-extra-bib2gls-2021-11-22.sty'.
diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-bib2gls.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-bib2gls.sty
index b6415a7136d..44a847ceb1b 100644
--- a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-bib2gls.sty
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-bib2gls.sty
@@ -7,7 +7,7 @@
%% glossaries-extra.dtx (with options: `glossaries-extra-bib2gls.sty,package')
%%
%% glossaries-extra.dtx
-%% Copyright 2021 Nicola Talbot
+%% Copyright 2022 Nicola Talbot
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -21,7 +21,7 @@
%%
%% The Current Maintainer of this work is Nicola Talbot.
%%
-%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib.
+%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-abbrstyles.def, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, glossary-table.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib, glossaries-extra-2021-11-22.sty, glossaries-extra-bib2gls-2021-11-22.sty, glossaries-extra-stylemods-2021-11-22.sty, glossary-bookindex-2021-11-22.sty, glossary-longextra-2021-11-22.sty, glossary-topic-2021-11-22.sty.
%%
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -39,7 +39,9 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossaries-extra-bib2gls}[2021/11/22 v1.48 (NLCT)]
+\DeclareRelease{v1.48}{2021-11-22}{glossaries-extra-bib2gls-2021-11-22.sty}
+\DeclareCurrentRelease{v1.49}{2022-10-14}
+\ProvidesPackage{glossaries-extra-bib2gls}[2022/10/14 v1.49 (NLCT)]
\ifglsacronym
\providecommand*{\printunsrtacronyms}[1][]{%
\printunsrtglossary[type=\acronymtype,#1]}%
@@ -75,8 +77,12 @@
}
\robustify\glsdisplaynumberlist
\renewcommand*{\glsentrynumberlist}[1]{\glsxtrusefield{#1}{location}}
+\providecommand{\IfTeXParserLib}[2]{#2}
\newcommand*{\glshex}{\string\u}
\newcommand*{\glscapturedgroup}{\string\$}
+\ifdef\glshashchar
+{}
+{\edef\glshashchar{\expandafter\@gobble\string\#}}
\newcommand*{\GlsXtrIfHasNonZeroChildCount}{%
\@ifstar\s@GlsXtrIfHasNonZeroChildCount\@GlsXtrIfHasNonZeroChildCount
}
@@ -115,7 +121,7 @@
\newcommand*{\GlsXtrDualBackLink}[2]{%
\glsxtrifhasfield{\GlsXtrDualField}{#2}%
{\glshyperlink[#1]{\glscurrentfieldvalue}}%
- {#2}%
+ {#1}%
}
\newcommand*{\GlsXtrBibTeXEntryAliases}{%
article=bibtexentry,
@@ -172,22 +178,35 @@
}
{
\newcommand*{\glsxtrdisplaylocnameref}[8]{%
+ \def\glsxtrrecentanchor{#6}%
+ \def\glsxtrlocationanchor{#2.#7}%
+ \let\glsxtractualanchor\glsxtrlocationanchor
+ \glsxtrsetactualanchor{#2}%
\ifcsdef{glsxtr#2locfmt}%
- {\glsxtrnamereflink{#3}{\csuse{glsxtr#2locfmt}{#4}{#5}}{#2.#7}{#8}}%
+ {\glsxtrnamereflink{#3}{\csuse{glsxtr#2locfmt}{#4}{#5}}{\glsxtractualanchor}{#8}}%
{%
\ifstrempty{#5}%
{%
- \glsxtrnamereflink{#3}{#4}{#2.#7}{#8}%
+ \glsxtrnamereflink{#3}{#4}{\glsxtractualanchor}{#8}%
}%
{%
\ifstrequal{#2}{page}%
- {\glsxtrnamereflink{#3}{#4}{#2.#7}{#8}}%
- {\glsxtrnamereflink{#3}{#5}{#2.#7}{#8}}%
+ {\glsxtrnamereflink{#3}{#4}{\glsxtractualanchor}{#8}}%
+ {\glsxtrtitlednamereflink{#3}{#4}{#5}{#8}}%
}%
}%
}
}
+\newcommand{\glsxtrsetactualanchor}[1]{}
+\newcommand{\glsxtrtitlednamereflink}[4]{%
+ \glsxtrnamereflink{#1}{#2}{\glsxtrrecentanchor}{#4}%
+}
\newcommand*{\glsxtrequationlocfmt}[2]{(#1)}
+\newcommand*{\glsxtrwrglossarylocfmt}[2]{%
+ {\@@glsxtrwrglosscountermark{#1}%
+ \let\glsxtr@wrglossarylocation\@secondoftwo
+ #1}%
+}
\newcommand*{\glsxtrnamereflink}[4]{%
\begingroup
\let\glshypernumber\@firstofone
@@ -385,54 +404,299 @@
\protected@write\@auxout{}{\string\providecommand{\string\@glsxtr@prefixlabellist}[1]{}}%
\protected@write\@auxout{}{\string\@glsxtr@prefixlabellist{\@glsxtr@labelprefixes}}%
}
+\def\@glsxtr@dglsnomatch#1#2[#3]{%
+ \begingroup
+ \let\glslabel\@gls@thislabel
+ \let\@glsnumberformat\@glsxtr@defaultnumberformat
+ \def\@glsxtr@thevalue{}%
+ \def\@glsxtr@theHvalue{\@glsxtr@thevalue}%
+ \let\@glsxtr@org@theHvalue\@glsxtr@theHvalue
+ \let\@gls@counter\glscounter
+ \if@glsxtr@equations
+ \@glsxtr@use@equation@counter
+ \fi
+ \@gls@setdefault@glslink@opts
+ \@glsxtr@glslink@prekeys
+ \setkeys{glslink}{#1}%
+ \glsxtr@do@autoadd{glslink}%
+ \ifKV@glslink@noindex
+ \GlossariesExtraWarning{Can't obtain a match for prefix
+ candidates: \@glsxtr@prefixedlist. Check the label spelling or rerun}%
+ \else
+ \ifdefempty{\@glsxtr@thevalue}%
+ {%
+ \ifx\@glsxtr@org@theHvalue\@glsxtr@theHvalue
+ \else
+ \let\theHglsentrycounter\@glsxtr@theHvalue
+ \fi
+ }%
+ {%
+ \let\theglsentrycounter\@glsxtr@thevalue
+ \let\theHglsentrycounter\@glsxtr@theHvalue
+ }%
+ \glsxtr@saveentrycounter
+ \@@glsxtr@dorecord\@glsxtr@prefixedlist
+ \glsxtr@select@entry\glsxtr@do@select@nameref@record
+ \GlossariesExtraWarning{Can't obtain a match for prefix
+ candidates: \@glsxtr@prefixedlist. Check the label spelling, use bib2gls v3.0+ to
+ select entry and rerun LaTeX}%
+ \fi
+ \@glsxtrundeftag#3%
+ \endgroup
+}
+\newcommand*{\glsxtr@select@entry}[5]{}
+\newcommand*{\glsxtr@select@entry@nameref}[8]{}
+\newcommand*{\glsxtr@do@select@nameref@record}[5]{%
+ \gls@ifnotmeasuring
+ {%
+ \protected@write\@auxout{}{\string\glsxtr@select@entry@nameref
+ {#1}{#2}{#3}{#4}{#5}%
+ {\csuse{@currentlabelname}}{\csuse{@currentHref}}%
+ {\theHglsentrycounter}}%
+ }%
+}
+\newif\ifGlsXtrPrefixLabelFallbackLast
+\GlsXtrPrefixLabelFallbackLasttrue
\newcommand*{\@glsxtr@get@prefixedlabel}[1]{%
\begingroup
\protected@edef\@gls@thislabel{#1}%
+ \let\@glsxtr@prefixedfirstlabel\@gls@thislabel
+ \def\@glsxtr@set@prefixedfirstlabel{%
+ \let\@glsxtr@prefixedfirstlabel\@gls@thislabel
+ \let\@glsxtr@set@prefixedfirstlabel\relax
+ }%
+ \let\@glsxtr@prefixedlist\@empty
+ \count@=0\relax
\@for\@glsxtr@prefix:=\@glsxtr@labelprefixes\do
{%
+ \advance\count@ by 1\relax
\protected@edef\@gls@thislabel{\@glsxtr@prefix#1}%
- \ifglsentryexists{\@gls@thislabel}{\@endfortrue}{}%
+ \@glsxtr@set@prefixedfirstlabel
+ \ifglsentryexists{\@gls@thislabel}%
+ {%
+ \@endfortrue
+ \let\@glsxtr@prefixedlist\@empty
+ }%
+ {%
+ \ifdefempty\@glsxtr@prefixedlist
+ {\let\@glsxtr@prefixedlist\@gls@thislabel}%
+ {%
+ \ifGlsXtrPrefixLabelFallbackLast
+ \epreto\@glsxtr@prefixedlist{\expandonce\@gls@thislabel,}%
+ \else
+ \eappto\@glsxtr@prefixedlist{,\expandonce\@gls@thislabel}%
+ \fi
+ }%
+ }%
}%
- \edef\@glo@tmp{\endgroup\noexpand\def\noexpand\@gls@thislabel{\@gls@thislabel}}\@glo@tmp
+ \if@endfor
+ \else
+ \ifnum\count@>1\relax
+ \ifGlsXtrPrefixLabelFallbackLast
+ \else
+ \let\@gls@thislabel\@glsxtr@prefixedfirstlabel
+ \fi
+ \else
+ \let\@glsxtr@prefixedlist\@empty
+ \fi
+ \fi
+ \edef\@glo@tmp{\endgroup
+ \noexpand\def\noexpand\@glsxtr@prefixedlist{\expandonce\@glsxtr@prefixedlist}%
+ \noexpand\def\noexpand\@gls@thislabel{\expandonce\@gls@thislabel}}\@glo@tmp
}
-\newrobustcmd*{\dgls}{\@gls@hyp@opt\@dgls}
-\newcommand*{\@dgls}[2][]{%
+\newcommand*{\@@dgls@}[3]{%
\@glsxtr@get@prefixedlabel{#2}%
- \new@ifnextchar[{\@gls@{#1}{\@gls@thislabel}}{\@gls@{#1}{\@gls@thislabel}[]}%
+ \ifx\@glsxtr@prefixedlist\@empty
+ \let\@dgls@@next#3%
+ \else
+ \let\@dgls@@next\@glsxtr@dglsnomatch
+ \fi
+ \new@ifnextchar[{\@dgls@@next{#1}{\@gls@thislabel}}%
+ {\@dgls@@next{#1}{\@gls@thislabel}[]}%
}
+\newrobustcmd*{\dgls}{\@gls@hyp@opt\@dgls}
+\newcommand*{\@dgls}[2][]{\@@dgls@{#1}{#2}{\@gls@}}
\newrobustcmd*{\dglspl}{\@gls@hyp@opt\@dglspl}
-\newcommand*{\@dglspl}[2][]{%
- \@glsxtr@get@prefixedlabel{#2}%
- \new@ifnextchar[{\@glspl@{#1}{\@gls@thislabel}}{\@glspl@{#1}{\@gls@thislabel}[]}%
-}
+\newcommand*{\@dglspl}[2][]{\@@dgls@{#1}{#2}{\@glspl@}}
\newrobustcmd*{\dGls}{\@gls@hyp@opt\@dGls}
-\newcommand*{\@dGls}[2][]{%
- \@glsxtr@get@prefixedlabel{#2}%
- \new@ifnextchar[{\@Gls@{#1}{\@gls@thislabel}}{\@Gls@{#1}{\@gls@thislabel}[]}%
-}
+\glsmfuaddmap{\dgls}{\dGls}
+\newcommand*{\@dGls}[2][]{\@@dgls@{#1}{#2}{\@Gls@}}
\newrobustcmd*{\dGlspl}{\@gls@hyp@opt\@dGlspl}
-\newcommand*{\@dGlspl}[2][]{%
- \@glsxtr@get@prefixedlabel{#2}%
- \new@ifnextchar[{\@Glspl@{#1}{\@gls@thislabel}}{\@Glspl@{#1}{\@gls@thislabel}[]}%
-}
+\glsmfuaddmap{\dglspl}{\dGlspl}
+\newcommand*{\@dGlspl}[2][]{\@@dgls@{#1}{#2}{\@Glspl@}}
\newrobustcmd*{\dGLS}{\@gls@hyp@opt\@dGLS}
-\newcommand*{\@dGLS}[2][]{%
- \@glsxtr@get@prefixedlabel{#2}%
- \new@ifnextchar[{\@GLS@{#1}{\@gls@thislabel}}{\@GLS@{#1}{\@gls@thislabel}[]}%
-}
+\glsmfublocker{\dGLS}
+\newcommand*{\@dGLS}[2][]{\@@dgls@{#1}{#2}{\@GLS@}}
\newrobustcmd*{\dGLSpl}{\@gls@hyp@opt\@dGLSpl}
-\newcommand*{\@dGLSpl}[2][]{%
- \@glsxtr@get@prefixedlabel{#2}%
- \new@ifnextchar[{\@GLSpl@{#1}{\@gls@thislabel}}{\@GLSpl@{#1}{\@gls@thislabel}[]}%
-}
-\newrobustcmd*{\dglslink}[3][]{%
+\glsmfublocker{\dGLSpl}
+\newcommand*{\@dGLSpl}[2][]{\@@dgls@{#1}{#2}{\@GLSpl@}}
+\newrobustcmd*{\dglslink}{\@gls@hyp@opt\@dglslink}
+\newcommand*{\@dglslink}[3][]{%
\@glsxtr@get@prefixedlabel{#2}%
\glslink[#1]{\@gls@thislabel}{#3}%
}
-\newrobustcmd*{\dglsdisp}[3][]{%
+\newrobustcmd*{\dGlslink}{\@gls@hyp@opt\@dGlslink}
+\glsmfuaddmap{\dglslink}{\dGlslink}
+\newcommand*{\@dGlslink}[3][]{%
+ \dglslink[#1]{#2}{\glssentencecase{#3}}%
+}
+\newrobustcmd*{\dglsdisp}{\@gls@hyp@opt\@dglsdisp}
+\newcommand*{\@dglsdisp}[3][]{%
\@glsxtr@get@prefixedlabel{#2}%
\glsdisp[#1]{\@gls@thislabel}{#3}%
}
+\newrobustcmd*{\dGlsdisp}{\@gls@hyp@opt\@dGlsdisp}
+\glsmfuaddmap{\dglsdisp}{\dGlsdisp}
+\newcommand*{\@dGlsdisp}[3][]{%
+ \dglsdisp[#1]{#2}{\glssentencecase{#3}}%
+}
+\newcommand*{\@glsxtr@get@prefixedlabel@field}[2]{%
+ \protected@edef\dglsfieldcurrentfieldlabel{#2}%
+ \let\dglsfieldactualfieldlabel\dglsfieldcurrentfieldlabel
+ \begingroup
+ \protected@edef\@gls@thislabel{#1}%
+ \let\@glsxtr@prefixedfirstlabel\@gls@thislabel
+ \def\@glsxtr@set@prefixedfirstlabel{%
+ \let\@glsxtr@prefixedfirstlabel\@gls@thislabel
+ \let\@glsxtr@set@prefixedfirstlabel\relax
+ }%
+ \let\@gls@fallbacklabel\relax
+ \let\@glsxtr@prefixedlist\@empty
+ \count@=0\relax
+ \@for\@glsxtr@prefix:=\@glsxtr@labelprefixes\do
+ {%
+ \advance\count@ by 1\relax
+ \protected@edef\@gls@thislabel{\@glsxtr@prefix#1}%
+ \@glsxtr@set@prefixedfirstlabel
+ \ifglsentryexists{\@gls@thislabel}%
+ {%
+ \ifcsvoid{glo@\glsdetoklabel{\@gls@thislabel}@#2}%
+ {%
+ \ifx\@gls@fallbacklabel\relax
+ \ifcsvoid
+ {glo@\glsdetoklabel{\@gls@thislabel}@\dglsfieldfallbackfieldlabel}%
+ {}%
+ {%
+ \let\@gls@fallbacklabel\@gls@thislabel
+ }%
+ \fi
+ }%
+ {%
+ \@endfortrue
+ \let\@glsxtr@prefixedlist\@empty
+ }%
+ }%
+ {%
+ \ifdefempty\@glsxtr@prefixedlist
+ {\let\@glsxtr@prefixedlist\@gls@thislabel}%
+ {%
+ \ifGlsXtrPrefixLabelFallbackLast
+ \epreto\@glsxtr@prefixedlist{\expandonce\@gls@thislabel,}%
+ \else
+ \eappto\@glsxtr@prefixedlist{,\expandonce\@gls@thislabel}%
+ \fi
+ }%
+ }%
+ }%
+ \if@endfor
+ \else
+ \ifx\@gls@fallbacklabel\relax
+ \ifnum\count@>1\relax
+ \ifGlsXtrPrefixLabelFallbackLast
+ \else
+ \let\@gls@thislabel\@glsxtr@prefixedfirstlabel
+ \fi
+ \else
+ \let\@glsxtr@prefixedlist\@empty
+ \fi
+ \else
+ \let\@gls@thislabel\@gls@fallbacklabel
+ \let\dglsfieldactualfieldlabel\dglsfieldfallbackfieldlabel
+ \fi
+ \fi
+ \edef\@glo@tmp{\endgroup
+ \noexpand\def\noexpand\@glsxtr@prefixedlist{\expandonce\@glsxtr@prefixedlist}%
+ \noexpand\def\noexpand\@gls@thislabel{\expandonce\@gls@thislabel}%
+ \noexpand\def\noexpand\dglsfieldactualfieldlabel
+ {\expandonce\dglsfieldactualfieldlabel}%
+ }%
+ \@glo@tmp
+}
+\newcommand*{\@@dgls@@field}[4]{%
+ \@glsxtr@get@prefixedlabel@field{#2}{#3}%
+ \ifx\@glsxtr@prefixedlist\@empty
+ \let\@dgls@@next#4%
+ \else
+ \let\@dgls@@next\@glsxtr@dglsnomatch
+ \fi
+ \new@ifnextchar[{\@dgls@@next{#1}{\@gls@thislabel}}%
+ {\@dgls@@next{#1}{\@gls@thislabel}[]}%
+}
+\newcommand*{\dglsfieldcurrentfieldlabel}{}
+\newcommand*{\dglsfieldfallbackfieldlabel}{text}
+\newcommand*{\dglsfieldactualfieldlabel}{\dglsfieldcurrentfieldlabel}
+\newrobustcmd*{\dglsfield}{\@gls@hyp@opt\@dglsfield}
+\newcommand*{\@dglsfield}[3][]{%
+ \@@dgls@@field{#1}{#2}{#3}{\@dgls@field}}
+\def\@dgls@field#1#2[#3]{%
+ \@gls@field@link{#1}{#2}{\glsxtrusefield{#2}{\dglsfieldactualfieldlabel}#3}%
+}
+\newrobustcmd*{\dGlsfield}{\@gls@hyp@opt\@dGlsfield}
+\glsmfuaddmap{\dglsfield}{\dGlsfield}
+\newcommand*{\@dGlsfield}[3][]{%
+ \@@dgls@@field{#1}{#2}{#3}{\@dGls@field}%
+}
+\def\@dGls@field#1#2[#3]{%
+ \@gls@field@link{#1}{#2}{\Glsxtrusefield{#2}{\dglsfieldactualfieldlabel}#3}%
+}
+\newrobustcmd*{\dGLSfield}{\@gls@hyp@opt\@dGLSfield}
+\glsmfublocker{\dGLSfield}
+\newcommand*{\@dGLSfield}[3][]{%
+ \@@dgls@@field{#1}{#2}{#3}{\@dGLS@field}%
+}
+\def\@dGLS@field#1#2[#3]{%
+ \@gls@field@link{#1}{#2}{\GLSxtrusefield{#2}{\dglsfieldactualfieldlabel}#3}%
+}
+\newrobustcmd*{\d@inner@glsfield}[2]{%
+ \ifstrempty{#1}
+ {\def\@d@inner@glsfield@opts{}}%
+ {\def\@d@inner@glsfield@opts{#1,}}%
+ \def\dglsfieldcurrentfieldlabel{#2}%
+ \@gls@hyp@opt\@d@inner@glsfield
+}
+\newcommand*{\@d@inner@glsfield}[2][]{%
+ \expandafter\@@dgls@@field\expandafter
+ {\@d@inner@glsfield@opts#1}{#2}{\dglsfieldcurrentfieldlabel}{\@dgls@field}}
+\newrobustcmd*{\d@inner@Glsfield}[2]{%
+ \ifstrempty{#1}
+ {\def\@d@inner@glsfield@opts{}}%
+ {\def\@d@inner@glsfield@opts{#1,}}%
+ \def\dglsfieldcurrentfieldlabel{#2}%
+ \@gls@hyp@opt\@d@inner@Glsfield
+}
+\newcommand*{\@d@inner@Glsfield}[2][]{%
+ \expandafter\@@dgls@@field\expandafter
+ {\@d@inner@glsfield@opts#1}{#2}{\dglsfieldcurrentfieldlabel}{\@dGls@field}}
+\newrobustcmd*{\d@inner@GLSfield}[2]{%
+ \ifstrempty{#1}
+ {\def\@d@inner@glsfield@opts{}}%
+ {\def\@d@inner@glsfield@opts{#1,}}%
+ \def\dglsfieldcurrentfieldlabel{#2}%
+ \@gls@hyp@opt\@d@inner@GLSfield
+}
+\newcommand*{\@d@inner@GLSfield}[2][]{%
+ \expandafter\@@dgls@@field\expandafter
+ {\@d@inner@glsfield@opts#1}{#2}{\dglsfieldcurrentfieldlabel}{\@dGLS@field}}
+\newrobustcmd*{\newdglsfield}[3][]{%
+ \newrobustcmd*{#3}{\d@inner@glsfield{#1}{#2}}%
+}
+\newrobustcmd*{\newdglsfieldlike}[5][]{%
+ \newrobustcmd*{#3}{\d@inner@glsfield{#1}{#2}}%
+ \newrobustcmd*{#4}{\d@inner@Glsfield{#1}{#2}}%
+ \newrobustcmd*{#5}{\d@inner@GLSfield{#1}{#2}}%
+ \glsmfuaddmap{#3}{#4}%
+ \glsmfublocker{#5}%
+}
\newrobustcmd*{\glsxtrmultientryadjustedname}[4]{%
\bgroup
\let\@glsxtrmultientryadjustednamesep\glsxtrmultientryadjustednamesep
@@ -457,6 +721,7 @@
\@glsxtrmultientryadjustedname{#1}{#2}{#3}{#4}%
\egroup
}
+\glsmfuaddmap{\glsxtrmultientryadjustedname}{\Glsxtrmultientryadjustedname}
\newrobustcmd*{\GlsXtrmultientryadjustedname}[4]{%
\bgroup
\let\@glsxtrmultientryadjustednamesep\glsxtrmultientryadjustednamesep
@@ -469,6 +734,7 @@
\@glsxtrmultientryadjustedname{#1}{#2}{#3}{#4}%
\egroup
}
+\glsmfublocker{\GlsXtrmultientryadjustedname}
\newrobustcmd*{\GLSxtrmultientryadjustedname}[4]{%
\bgroup
\let\@glsxtrmultientryadjustednamesep\glsxtrmultientryadjustednamesep
@@ -481,6 +747,7 @@
\@glsxtrmultientryadjustedname{#1}{#2}{#3}{#4}%
\egroup
}
+\glsmfublocker{\GLSxtrmultientryadjustedname}
\newcommand*{\@glsxtrmultientryadjustedname}[4]{%
\letcs\mglscurrentmainlabel{@gls@combined@#4@main}%
\letcs\mglscurrentmainlist{@gls@combined@#4@list}%
@@ -522,7 +789,7 @@
\newcommand*{\glsxtrmultientryadjustednamepostsep}{\glsxtrmultientryadjustednamesep}
\newcommand*{\glsxtrmultientryadjustednamefmt}[1]{#1}
\newcommand*{\glsxtrmultientryadjustednameother}[1]{\glsentryname{#1}}
-\newcommand*{\Glsxtrmultientryadjustednamefmt}[1]{\makefirstuc{#1}}
+\newcommand*{\Glsxtrmultientryadjustednamefmt}[1]{\glssentencecase{#1}}
\newcommand*{\Glsxtrmultientryadjustednameother}[1]{\Glsentryname{#1}}
\newcommand*{\GlsXtrmultientryadjustednameother}[1]{%
\glsentrytitlecase{#1}{name}}
@@ -534,8 +801,8 @@
\newcommand*{\GlsXtrmultientryadjustednamefmt}[1]{\capitalisewords{#1}}
}
\newcommand*{\GLSxtrmultientryadjustednameother}[1]{%
- \mfirstucMakeUppercase{\glsentryname{#1}}}
-\newcommand*{\GLSxtrmultientryadjustednamefmt}[1]{\mfirstucMakeUppercase{#1}}
+ \glsuppercase{\glsentryname{#1}}}
+\newcommand*{\GLSxtrmultientryadjustednamefmt}[1]{\glsuppercase{#1}}
\providecommand*{\Alpha}{\mathrm{A}}
\providecommand*{\Beta}{\mathrm{B}}
\providecommand*{\Epsilon}{\mathrm{E}}
@@ -569,6 +836,19 @@
\providecommand*{\upomicron}{\mathrm{o}}
}%
{}% upgreek.sty not loaded
+\newcommand{\glsxtrIgnorableRules}{%
+ \glsxtrcontrolrules
+ \string;\glsxtrspacerules
+ \string;\glsxtrnonprintablerules
+}
+\newcommand{\glsxtrGeneralInitRules}{%
+ \glsxtrIgnorableRules
+ \string;\glsxtrcombiningdiacriticrules
+ \string;\glsxtrhyphenrules
+ \string<\glsxtrgeneralpuncrules
+ \string<\glsxtrdigitrules
+ \string<\glsxtrfractionrules
+}
\newcommand*{\glsxtrcontrolrules}{%
\string'\glshex 200B\string'\string=\glshex 200C\string=\glshex 200D
\string=\glshex 200E\string=\glshex 200F\string=\glshex 0000\string=\glshex 0001
@@ -736,6 +1016,13 @@
\string<\glsxtrgeneralpuncIIrules
}
\newcommand*{\glsxtrgeneralpuncIrules}{%
+ \glsxtrgeneralpuncmarksrules
+ \string<\glsxtrgeneralpuncaccentsrules
+ \string<\glsxtrgeneralpuncquoterules
+ \string<\glsxtrgeneralpuncbracketrules
+ \string<\glsxtrgeneralpuncsignrules
+}
+\newcommand*{\glsxtrgeneralpuncmarksrules}{%
\string'\glshex 005F\string'% underscore
\string<\glshex 00AF% macron
\string<\string'\glshex 002C\string'% comma
@@ -747,18 +1034,24 @@
\string<\glshex 00BF% inverted question mark
\string<\string'\glshex 002F\string'% solidus
\string<\string'\glshex 002E\string'% full stop
- \string<\glshex 00B4% acute accent
+}
+\newcommand*{\glsxtrgeneralpuncaccentsrules}{%
+ \glshex 00B4% acute accent
\string<\string'\glshex 0060\string'% grave accent
\string<\string'\glshex 005E\string'% circumflex accent
\string<\glshex 00A8% diaersis
\string<\string'\glshex 007E\string'% tilde
\string<\glshex 00B7% middle dot
\string<\glshex 00B8% cedilla
- \string<\string'\glshex 0027\string'% straight apostrophe
+}
+\newcommand*{\glsxtrgeneralpuncquoterules}{%
+ \string'\glshex 0027\string'% straight apostrophe
\string<\string'\glshex 0022\string'% straight double quote
\string<\glshex 00AB% left guillemet
\string<\glshex 00BB% right guillemet
- \string<\string'\glshex 0028\string'% left parenthesis
+}
+\newcommand*{\glsxtrgeneralpuncbracketrules}{%
+ \string'\glshex 0028\string'% left parenthesis
\string=\glshex 207D\string=\glshex 208D% super/subscript left parenthesis
\string<\string'\glshex 0029\string'% right parenthesis
\string=\glshex 207E\string=\glshex 208E% super/subscript right parenthesis
@@ -766,7 +1059,9 @@
\string<\string'\glshex 005D\string'% right square bracket
\string<\string'\glshex 007B\string'% left curly bracket
\string<\string'\glshex 007D\string'% right curly bracket
- \string<\glshex 00A7% section sign
+}
+\newcommand*{\glsxtrgeneralpuncsignrules}{%
+ \glshex 00A7% section sign
\string<\glshex 00B6% pilcrow sign
\string<\glshex 00A9% copyright sign
\string<\glshex 00AE% registered sign
@@ -1063,6 +1358,70 @@
\string<y,Y%
\string<z,Z%
}
+\newcommand*{\glsxtrGeneralLatinAtoMrules}{%
+ \glsxtrLatinA
+ \string<b,B%
+ \string<c,C%
+ \string<d,D%
+ \string<\glsxtrLatinE
+ \string<f,F%
+ \string<g,G%
+ \string<\glsxtrLatinH
+ \string<\glsxtrLatinI
+ \string<j,J%
+ \string<\glsxtrLatinK
+ \string<\glsxtrLatinL
+ \string<\glsxtrLatinM
+}
+\newcommand*{\glsxtrGeneralLatinNtoZrules}{%
+ \string<\glsxtrLatinN
+ \string<\glsxtrLatinO
+ \string<\glsxtrLatinP
+ \string<q,Q%
+ \string<r,R%
+ \string<\glsxtrLatinS
+ \string<\glsxtrLatinT
+ \string<u,U%
+ \string<v,V%
+ \string<w,W%
+ \string<\glsxtrLatinX
+ \string<y,Y%
+ \string<z,Z
+}
+\newcommand*{\glsxtrGeneralLatinAtoGrules}{%
+ \glsxtrLatinA
+ \string<b,B%
+ \string<c,C%
+ \string<d,D%
+ \string<\glsxtrLatinE
+ \string<f,F%
+ \string<g,G%
+}
+\newcommand*{\glsxtrGeneralLatinHtoMrules}{%
+ \string<\glsxtrLatinH
+ \string<\glsxtrLatinI
+ \string<j,J%
+ \string<\glsxtrLatinK
+ \string<\glsxtrLatinL
+ \string<\glsxtrLatinM
+}
+\newcommand*{\glsxtrGeneralLatinNtoSrules}{%
+ \string<\glsxtrLatinN
+ \string<\glsxtrLatinO
+ \string<\glsxtrLatinP
+ \string<q,Q%
+ \string<r,R%
+ \string<\glsxtrLatinS
+}
+\newcommand*{\glsxtrGeneralLatinTtoZrules}{%
+ \string<\glsxtrLatinT
+ \string<u,U%
+ \string<v,V%
+ \string<w,W%
+ \string<\glsxtrLatinX
+ \string<y,Y%
+ \string<z,Z
+}
\newcommand*{\glsxtrLatinA}{%
a\string=\glshex 00AA\string=\glshex 2090,A
}
@@ -1107,11 +1466,11 @@
}
\newcommand*{\glsxtrLatinEszettSs}{%
\glshex 00DF% eszett
- \string=\glshex 017Fs % long S s
+ \string=\glshex 017Fs % "long S"s
}
\newcommand*{\glsxtrLatinEszettSz}{%
\glshex 00DF% eszett
- \string= \glshex 017Fz % long S z
+ \string= \glshex 017Fz % "long S"z
}
\newcommand*{\glsxtrLatinEth}{%
\glshex 00F0,\glshex 00D0% eth
diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-stylemods-2021-11-22.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-stylemods-2021-11-22.sty
new file mode 100644
index 00000000000..9c73ac2124e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-stylemods-2021-11-22.sty
@@ -0,0 +1,1575 @@
+%%
+%% This is file `glossaries-extra-stylemods-2021-11-22.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries-extra.dtx (with options: `glossaries-extra-stylemods-2021-11-22.sty,package')
+%%
+%% glossaries-extra.dtx
+%% Copyright 2022 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-abbrstyles.def, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, glossary-table.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib, glossaries-extra-2021-11-22.sty, glossaries-extra-bib2gls-2021-11-22.sty, glossaries-extra-stylemods-2021-11-22.sty, glossary-bookindex-2021-11-22.sty, glossary-longextra-2021-11-22.sty, glossary-topic-2021-11-22.sty.
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{glossaries-extra-stylemods}[2021/11/22 v1.48 (NLCT)]
+\newcommand*{\@glsxtr@loadstyles}{}
+\DeclareOption{all}{%
+ \appto\@glsxtr@loadstyles{%
+ \RequirePackage{glossary-inline}%
+ \RequirePackage{glossary-list}%
+ \RequirePackage{glossary-tree}%
+ \RequirePackage{glossary-mcols}%
+ \RequirePackage{glossary-long}%
+ \RequirePackage{glossary-longragged}%
+ \RequirePackage{glossary-longbooktabs}%
+ \RequirePackage{glossary-super}%
+ \RequirePackage{glossary-superragged}%
+ \RequirePackage{glossary-bookindex}[=v1.48]%
+ \RequirePackage{glossary-longextra}[=v1.48]%
+ \RequirePackage{glossary-topic}[=v1.48]%
+ }
+}
+\DeclareOption*{%
+ \IfFileExists{glossary-\CurrentOption.sty}
+ {\eappto\@glsxtr@loadstyles{%
+ \noexpand\RequirePackage{glossary-\CurrentOption}}%
+ }%
+ {%
+ \PackageError{glossaries-extra-styles}%
+ {Unknown option `\CurrentOption'}{}%
+ }%
+}
+\ProcessOptions
+\@glsxtr@loadstyles
+\providecommand*{\glsxtrprelocation}{\space}
+\providecommand{\renewglossarystyle}[2]{%
+ \ifcsundef{@glsstyle@#1}%
+ {%
+ \PackageError{glossaries-extra}{Glossary style `#1' isn't already defined}{}%
+ }%
+ {%
+ \csdef{@glsstyle@#1}{#2}%
+ }%
+}
+\ifdef{\@glsstyle@listdotted}
+{%
+ \renewglossarystyle{listdotted}{%
+ \setglossarystyle{list}%
+ \renewcommand*{\glossentry}[2]{%
+ \item[]\makebox[\glslistdottedwidth][l]{%
+ \glsentryitem{##1}%
+ \glstarget{##1}{\glossentryname{##1}}%
+ \unskip\leaders\hbox to 2.9mm{\hss.}\hfill\strut}%
+ \glossentrydesc{##1}\glspostdescription}%
+ \renewcommand*{\subglossentry}[3]{%
+ \item[]\makebox[\glslistdottedwidth][l]{%
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\glossentryname{##2}}%
+ \unskip\leaders\hbox to 2.9mm{\hss.}\hfill\strut}%
+ \glossentrydesc{##2}\glspostdescription}%
+ }
+}
+{%
+}
+\ifdef{\@glsstyle@list}
+{%
+ \newcommand{\glslistprelocation}{\glsxtrprelocation}
+ \newcommand{\glslistchildprelocation}{\glslistprelocation}
+ \newcommand{\glslistchildpostlocation}{.}
+ \newcommand{\glslistdesc}[1]{\glossentrydesc{#1}\glspostdescription}
+ \newcommand{\glslistgroupskip}{\nobreak\indexspace\nobreak}
+ \newcommand{\glslistitem}[1]{%
+ \item[\glsentryitem{#1}%
+ \glstarget{#1}{\glossentryname{#1}}]%
+ }
+ \providecommand{\glslistinit}{%
+ \ifdef\GetTitleStringDisableCommands
+ {%
+ \GetTitleStringSetup{expand}%
+ \GetTitleStringDisableCommands{%
+ \let\glsentryitem\@gobble
+ \let\glstarget\@secondoftwo
+ \let\glossentryname\glslistexpandedname
+ \let\glslistgroupheaderfmt\@firstofone
+ \let\glsgetgrouptitle\@firstofone
+ \let\glsnavhypertarget\@secondoftwo
+ \let\glsnavigation\relax
+ }%
+ }%
+ {}%
+ }
+ \providecommand{\glslistexpandedname}[1]{%
+ \ifcsname glo@\glsdetoklabel{#1}@name\endcsname
+ \expandafter\expandonce\csname glo@\glsdetoklabel{#1}@name\expandafter\endcsname
+ \fi
+ }
+ \renewglossarystyle{list}{%
+ \renewenvironment{theglossary}%
+ {\glslistinit\begin{description}}{\end{description}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glossentry}[2]{%
+ \glslistitem{##1}\glslistdesc{##1}\glslistprelocation ##2}%
+ \renewcommand*{\subglossentry}[3]{%
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}\space
+ \glslistdesc{##2}%
+ \glslistchildprelocation ##3\glslistchildpostlocation}%
+ \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\glslistgroupskip\fi}%
+ }
+}
+{}
+\ifdef{\@glsstyle@altlist}
+{%
+ \newcommand{\glsaltlistitem}[1]{%
+ \glslistitem{#1}%
+ \mbox{}\par\nobreak\@afterheading
+ }
+ \renewglossarystyle{altlist}{%
+ \setglossarystyle{list}%
+ \renewcommand*{\glossentry}[2]{%
+ \glsaltlistitem{##1}%
+ \glslistdesc{##1}\glslistprelocation ##2}%
+ \renewcommand{\subglossentry}[3]{%
+ \par
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}\glslistdesc{##2}%
+ \glslistchildprelocation ##3}%
+ }
+}
+{}
+\ifdef{\@glsstyle@listgroup}
+{%
+ \newcommand{\glslistgroupheaderitem}[2]{\item[{#2}]}
+ \newcommand{\glslistgroupafterheader}{%
+ \mbox{}\par\nobreak\@afterheading
+ }
+ \renewglossarystyle{listgroup}{%
+ \setglossarystyle{list}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \glslistgroupheaderitem{##1}{\glslistgroupheaderfmt{\glsgetgrouptitle{##1}}}%
+ \glslistgroupafterheader
+ }%
+ }
+}
+{}
+\ifdef{\@glsstyle@listhypergroup}
+{%
+ \renewglossarystyle{listhypergroup}{%
+ \setglossarystyle{list}%
+ \renewcommand*{\glossaryheader}{%
+ \glslistnavigationitem{\glsnavigation}}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \glslistgroupheaderitem{##1}{\glslistgroupheaderfmt
+ {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}}%
+ \glslistgroupafterheader
+ }%
+ }
+}
+{}
+\ifdef{\@glsstyle@altlistgroup}
+{%
+ \renewglossarystyle{altlistgroup}{%
+ \setglossarystyle{altlist}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \glslistgroupheaderitem{##1}%
+ {\glslistgroupheaderfmt{\glsgetgrouptitle{##1}}}%
+ \glslistgroupafterheader
+ }%
+ }
+}
+{}
+\ifdef{\@glsstyle@altlisthypergroup}
+{%
+ \renewglossarystyle{altlisthypergroup}{%
+ \setglossarystyle{altlist}%
+ \renewcommand*{\glossaryheader}{%
+ \glslistnavigationitem{\glsnavigation}}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \glslistgroupheaderitem{##1}{\glslistgroupheaderfmt
+ {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}}%
+ \glslistgroupafterheader
+ }%
+ }
+}
+{}
+\ifcsdef{@glsstyle@long}
+{%
+ \renewglossarystyle{long}{%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{lp{\glsdescwidth}}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossentry}[2]{%
+ \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
+ \glossentrydesc{##1}\glspostdescription
+ \glsxtrprelocation ##2\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription
+ \glsxtrprelocation ##3\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{ & \tabularnewline}%
+ \fi
+ }
+}
+{}
+\ifcsdef{@glsstyle@long3col}
+{%
+ \renewglossarystyle{long3col}{%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{lp{\glsdescwidth}p{\glspagelistwidth}}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossentry}[2]{%
+ \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
+ \glossentrydesc{##1}\glspostdescription & ##2\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription &
+ ##3\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{& &\tabularnewline}%
+ \fi
+ }
+}
+{}
+\ifcsdef{@glsstyle@long4col}
+{%
+ \renewglossarystyle{long4col}{%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{llll}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossentry}[2]{%
+ \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
+ \glossentrydesc{##1}\glspostdescription &
+ \glossentrysymbol{##1} &
+ ##2\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription &
+ \glossentrysymbol{##2} & ##3\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{& & &\tabularnewline}%
+ \fi
+ }
+}
+{}
+\ifcsdef{@glsstyle@longragged}
+{%
+ \renewglossarystyle{longragged}{%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{l>{\raggedright}p{\glsdescwidth}}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossentry}[2]{%
+ \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
+ \glossentrydesc{##1}\glspostdescription\glsxtrprelocation ##2%
+ \tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}\glossentrydesc{##2}%
+ \glspostdescription\glsxtrprelocation ##3%
+ \tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{ & \tabularnewline}%
+ \fi
+ }
+}
+{}
+\ifcsdef{@glsstyle@longragged3col}
+{%
+ \renewglossarystyle{longragged3col}{%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{l>{\raggedright}p{\glsdescwidth}%
+ >{\raggedright}p{\glspagelistwidth}}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossentry}[2]{%
+ \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
+ \glossentrydesc{##1}\glspostdescription & ##2\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription &
+ ##3\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{& &\tabularnewline}%
+ \fi
+ }
+}
+{}
+\ifcsdef{@glsstyle@altlongragged4col}
+{%
+ \renewglossarystyle{altlongragged4col}{%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{l>{\raggedright}p{\glsdescwidth}l%
+ >{\raggedright}p{\glspagelistwidth}}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossentry}[2]{%
+ \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
+ \glossentrydesc{##1}\glspostdescription & \glossentrysymbol{##1} &
+ ##2\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription &
+ \glossentrysymbol{##2} & ##3\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{& & &\tabularnewline}%
+ \fi
+ }
+}
+{}
+\ifcsdef{@glsstyle@super}
+{%
+ \renewglossarystyle{super}{%
+ \renewenvironment{theglossary}%
+ {\tablehead{}\tabletail{}%
+ \begin{supertabular}{lp{\glsdescwidth}}}%
+ {\end{supertabular}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossentry}[2]{%
+ \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
+ \glossentrydesc{##1}\glspostdescription
+ \glsxtrprelocation ##2\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription
+ \glsxtrprelocation ##3\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{& \tabularnewline}%
+ \fi
+ }
+}
+{}
+\ifcsdef{@glsstyle@super3col}
+{%
+ \renewglossarystyle{super3col}{%
+ \renewenvironment{theglossary}%
+ {\tablehead{}\tabletail{}%
+ \begin{supertabular}{lp{\glsdescwidth}p{\glspagelistwidth}}}%
+ {\end{supertabular}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossentry}[2]{%
+ \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
+ \glossentrydesc{##1}\glspostdescription & ##2\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription &
+ ##3\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{ & &\tabularnewline}%
+ \fi
+ }
+}
+{}
+\ifcsdef{@glsstyle@super4col}
+{%
+ \renewglossarystyle{super4col}{%
+ \renewenvironment{theglossary}%
+ {\tablehead{}\tabletail{}%
+ \begin{supertabular}{llll}}{%
+ \end{supertabular}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossentry}[2]{%
+ \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
+ \glossentrydesc{##1}\glspostdescription &
+ \glossentrysymbol{##1} & ##2\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription &
+ \glossentrysymbol{##2} & ##3\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{& & &\tabularnewline}%
+ \fi
+ }
+}
+{}
+\ifcsdef{@glsstyle@superragged}
+{%
+ \renewglossarystyle{superragged}{%
+ \renewenvironment{theglossary}%
+ {\tablehead{}\tabletail{}%
+ \begin{supertabular}{l>{\raggedright}p{\glsdescwidth}}}%
+ {\end{supertabular}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossentry}[2]{%
+ \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
+ \glossentrydesc{##1}\glspostdescription\glsxtrprelocation ##2%
+ \tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription
+ \glsxtrprelocation ##3%
+ \tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{& \tabularnewline}%
+ \fi
+ }
+}
+{}
+\ifcsdef{@glsstyle@superragged3col}
+{%
+ \renewglossarystyle{superragged3col}{%
+ \renewenvironment{theglossary}%
+ {\tablehead{}\tabletail{}%
+ \begin{supertabular}{l>{\raggedright}p{\glsdescwidth}%
+ >{\raggedright}p{\glspagelistwidth}}}%
+ {\end{supertabular}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossentry}[2]{%
+ \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
+ \glossentrydesc{##1}\glspostdescription &
+ ##2\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription &
+ ##3\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{ & &\tabularnewline}%
+ \fi
+ }
+}
+{}
+\ifcsdef{@glsstyle@altsuperragged4col}
+{%
+ \renewglossarystyle{altsuperragged4col}{%
+ \renewenvironment{theglossary}%
+ {\tablehead{}\tabletail{}%
+ \begin{supertabular}{l>{\raggedright}p{\glsdescwidth}l%
+ >{\raggedright}p{\glspagelistwidth}}}%
+ {\end{supertabular}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand{\glossentry}[2]{%
+ \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
+ \glossentrydesc{##1}\glspostdescription &
+ \glossentrysymbol{##1} & ##2\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription &
+ \glossentrysymbol{##2} & ##3\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{& & &\tabularnewline}%
+ \fi
+ }
+}
+{}
+\ifdef{\@glsstyle@inline}
+{%
+ \renewcommand*{\glspostinline}{.\spacefactor\sfcode`\.}
+ \renewcommand*{\glsinlinedescformat}[3]{%
+ \space#1\glsxtrpostdescription}
+ \renewcommand*{\glsinlinesubdescformat}[3]{%
+ #1\glsxtrpostdescription}
+}
+{}
+\ifdef\glstreenamefmt
+{
+ \newcommand{\glstreedefaultnamefmt}[1]{\textbf{#1}}
+ \renewcommand{\glstreenamefmt}[1]{\glstreedefaultnamefmt{#1}}
+ \def\glstreegroupheaderfmt#1{\glstreedefaultnamefmt{#1}}
+ \def\glstreenavigationfmt#1{\glstreedefaultnamefmt{#1}}
+ \newcommand{\glstreePreHeader}[2]{}
+}
+{}
+\ifdef{\@glsstyle@index}
+{
+ \newcommand*{\glstreeprelocation}{\glsxtrprelocation}
+ \newcommand*{\glstreechildprelocation}{\glstreeprelocation}
+ \newcommand{\glstreegroupskip}{\indexspace}
+ \newcommand{\glstreegroupheaderskip}{\nopagebreak\glstreegroupskip\nobreak}
+ \renewglossarystyle{index}{%
+ \renewenvironment{theglossary}%
+ {\setlength{\parindent}{0pt}%
+ \setlength{\parskip}{0pt plus 0.3pt}%
+ \let\item\glstreeitem
+ \let\subitem\glstreesubitem
+ \let\subsubitem\glstreesubsubitem
+ }%
+ {\par}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glossentry}[2]{%
+ \item\glsentryitem{##1}%
+ \glstreenamefmt{\glstarget{##1}{\glossentryname{##1}}}%
+ \glstreesymbol{##1}%
+ \glstreeDescLoc{##1}{##2}%
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \ifcase##1\relax
+ \item
+ \or
+ \subitem
+ \glssubentryitem{##2}%
+ \else
+ \subsubitem
+ \fi
+ \glstreenamefmt{\glstarget{##2}{\glossentryname{##2}}}%
+ \glstreechildsymbol{##2}%
+ \glstreeChildDescLoc{##2}{##3}%
+ }%
+ \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\glstreegroupskip\fi}%
+ }
+}
+{}
+\ifdef{\@glsstyle@indexgroup}
+{%
+ \renewglossarystyle{indexgroup}{%
+ \setglossarystyle{index}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}%
+ \glstreePreHeader{##1}{\glsxtr@grptitle}%
+ \item\glstreegroupheaderfmt{\glsxtr@grptitle}%
+ \glstreegroupheaderskip\@afterheading
+ }%
+ }
+}
+{}
+\ifdef{\@glsstyle@indexhypergroup}
+{%
+ \renewglossarystyle{indexhypergroup}{%
+ \setglossarystyle{index}%
+ \renewcommand*{\glossaryheader}{%
+ \item\glstreenavigationfmt{\glsnavigation}%
+ \glstreegroupheaderskip\@afterheading}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}%
+ \glstreePreHeader{##1}{\glsxtr@grptitle}%
+ \item\glstreegroupheaderfmt
+ {\glsnavhypertarget{##1}{\glsxtr@grptitle}}%
+ \glstreegroupheaderskip\@afterheading}%
+ }%
+}
+{}
+\ifdef{\@glsstyle@tree}
+{%
+\newcommand{\glsxtrtreepredesc}{\glstreepredesc}
+\newcommand{\glsxtrtreechildpredesc}{\glstreechildpredesc}
+ \newcommand{\glstreedesc}[1]{%
+ \glsxtrtreepredesc\glossentrydesc{#1}\glspostdescription
+ }
+ \newcommand{\glstreeDescLoc}[2]{%
+ \ifglshasdesc{#1}%
+ {\glstreedesc{#1}\glstreeprelocation}%
+ {\ifglshassymbol{#1}{\glstreeprelocation}{\glstreeNoDescSymbolPreLocation}}%
+ #2%
+ }
+ \newcommand{\glstreeNoDescSymbolPreLocation}{\space}
+ \newcommand{\glstreesymbol}[1]{%
+ \ifglshassymbol{#1}{\space(\glossentrysymbol{#1})}{}%
+ }%
+ \newcommand{\glstreechilddesc}[1]{%
+ \glsxtrtreechildpredesc\glossentrydesc{#1}\glspostdescription
+ }%
+ \newcommand{\glstreeChildDescLoc}[2]{%
+ \ifglshasdesc{#1}%
+ {\glstreechilddesc{#1}\glstreechildprelocation}%
+ {\ifglshassymbol{#1}{\glstreechildprelocation}%
+ {\glstreeNoDescSymbolPreLocation}%
+ }%
+ #2%
+ }%
+ \newcommand{\glstreechildsymbol}[1]{%
+ \glstreesymbol{#1}%
+ }%
+ \renewglossarystyle{tree}{%
+ \renewenvironment{theglossary}%
+ {\setlength{\parindent}{0pt}%
+ \setlength{\parskip}{0pt plus 0.3pt}}%
+ {}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossentry}[2]{%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \glsentryitem{##1}\glstreenamefmt{\glstarget{##1}{\glossentryname{##1}}}%
+ \glstreesymbol{##1}%
+ \glstreeDescLoc{##1}{##2}\par
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \hangindent##1\glstreeindent\relax
+ \parindent##1\glstreeindent\relax
+ \ifnum##1=1\relax
+ \glssubentryitem{##2}%
+ \fi
+ \glstreenamefmt{\glstarget{##2}{\glossentryname{##2}}}%
+ \glstreechildsymbol{##2}%
+ \glstreeChildDescLoc{##2}{##3}\par
+ }%
+ \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\glstreegroupskip\fi}%
+ }%
+}
+{}
+\ifdef{\@glsstyle@treegroup}
+{%
+ \renewglossarystyle{treegroup}{%
+ \setglossarystyle{tree}%
+ \renewcommand{\glsgroupheading}[1]{%
+ \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}%
+ \glstreePreHeader{##1}{\glsxtr@grptitle}%
+ \par\noindent\glstreegroupheaderfmt{\glsxtr@grptitle}%
+ \glstreegroupheaderskip\@afterheading}%
+ }
+}
+{}
+\ifdef{\@glsstyle@treehypergroup}
+{%
+ \renewglossarystyle{treehypergroup}{%
+ \setglossarystyle{tree}%
+ \renewcommand*{\glossaryheader}{%
+ \par\noindent\glstreenavigationfmt{\glsnavigation}%
+ \glstreegroupheaderskip\@afterheading}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}%
+ \glstreePreHeader{##1}{\glsxtr@grptitle}%
+ \par\noindent
+ \glstreegroupheaderfmt
+ {\glsnavhypertarget{##1}{\glsxtr@grptitle}}%
+ \glstreegroupheaderskip\@afterheading}%
+ }
+}
+{}
+\ifdef{\@glsstyle@treenoname}
+{%
+ \newcommand{\glstreenonamedesc}[1]{%
+ \glstreepredesc\glossentrydesc{#1}\glspostdescription
+ }%
+ \newcommand{\glstreenonamesymbol}[1]{%
+ \ifglshassymbol{#1}{\space(\glossentrysymbol{#1})}{}%
+ }%
+ \newcommand{\glstreenonameDescLoc}[2]{%
+ \glstreenonamedesc{#1}\glstreeprelocation#2%
+ }
+ \newcommand{\glstreenonamechilddesc}[1]{%
+ \glossentrydesc{#1}\glspostdescription
+ }%
+ \newcommand{\glstreenonameChildDescLoc}[2]{%
+ \glstreenonamechilddesc{#1}\glstreechildprelocation#2%
+ }
+ \renewglossarystyle{treenoname}{%
+ \renewenvironment{theglossary}%
+ {\setlength{\parindent}{0pt}%
+ \setlength{\parskip}{0pt plus 0.3pt}}%
+ {}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossentry}[2]{%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \glsentryitem{##1}\glstreenamefmt{\glstarget{##1}{\glossentryname{##1}}}%
+ \glstreenonamesymbol{##1}%
+ \glstreenonameDescLoc{##1}{##2}\par
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \hangindent##1\glstreeindent\relax
+ \parindent##1\glstreeindent\relax
+ \ifnum##1=1\relax
+ \glssubentryitem{##2}%
+ \fi
+ \glstarget{##2}{\strut}%
+ \glstreenonameChildDescLoc{##2}{##3}\par
+ }%
+ \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\glstreegroupskip\fi}%
+ }
+}
+{}
+\ifdef{\@glsstyle@treenonamegroup}
+{%
+ \renewglossarystyle{treenonamegroup}{%
+ \setglossarystyle{treenoname}%
+ \renewcommand{\glsgroupheading}[1]{%
+ \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}%
+ \glstreePreHeader{##1}{\glsxtr@grptitle}%
+ \par\noindent\glstreegroupheaderfmt{\glsxtr@grptitle}%
+ \glstreegroupheaderskip\@afterheading
+ }%
+ }
+}
+{}
+\ifdef{\@glsstyle@treenonamehypergroup}
+{%
+ \renewglossarystyle{treenonamehypergroup}{%
+ \setglossarystyle{treenoname}%
+ \renewcommand*{\glossaryheader}{%
+ \par\noindent\glstreenavigationfmt{\glsnavigation}%
+ \glstreegroupheaderskip\@afterheading}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}%
+ \glstreePreHeader{##1}{\glsxtr@grptitle}%
+ \par\noindent
+ \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}%
+ \glstreegroupheaderskip\@afterheading}%
+ }
+}
+{}
+\ifdef{\@glsstyle@alttree}
+{%
+\newcommand{\glsalttreepredesc}{}
+\newcommand{\glsalttreechildpredesc}{\glsalttreepredesc}
+ \newcommand{\glsxtralttreeSymbolDescLocation}[2]{%
+ {%
+ \let\par\glsxtrAltTreePar
+ \let\glsxtrtreepredesc\glsalttreepredesc
+ \let\glsxtrtreechildpredesc\glsalttreechildpredesc
+ \ifglshassymbol{#1}{(\glossentrysymbol{#1})\space}{}%
+ \glstreeDescLoc{#1}{#2}\par
+ }%
+ }
+ \newlength\glsxtrAltTreeIndent
+ \newcommand{\glsxtrAltTreePar}{%
+ \@@par
+ \glsxtrAltTreeSetHangIndent
+ \setlength{\parindent}{\dimexpr\hangindent+\glsxtrAltTreeIndent}%
+ }
+ \newcommand{\glsxtralttreeSubSymbolDescLocation}[3]{%
+ \glsxtralttreeSymbolDescLocation{#2}{#3}%
+ }
+ \newlength\glsxtrtreetopindent
+ \newcommand*{\glsxtralttreeInit}{%
+ \settowidth{\glsxtrtreetopindent}{\glstreenamefmt{\glsgetwidestname\space}}%
+ \glsxtrAltTreeIndent=\parindent
+ }
+ \newcommand*{\gglssetwidest}[2][0]{%
+ \csgdef{@glswidestname\romannumeral#1}{#2}%
+ }
+ \newcommand*{\eglssetwidest}[2][0]{%
+ \protected@csedef{@glswidestname\romannumeral#1}{#2}%
+ }
+ \newcommand*{\xglssetwidest}[2][0]{%
+ \protected@csxdef{@glswidestname\romannumeral#1}{#2}%
+ }
+ \newcommand*{\glsupdatewidest}[2][0]{%
+ \ifcsundef{@glswidestname\romannumeral#1}%
+ {\csdef{@glswidestname\romannumeral#1}{#2}}%
+ {%
+ \settowidth{\dimen@}{\csuse{@glswidestname\romannumeral#1}}%
+ \settowidth{\dimen@ii}{#2}%
+ \ifdim\dimen@ii>\dimen@
+ \csdef{@glswidestname\romannumeral#1}{#2}%
+ \fi
+ }%
+ }
+ \newcommand*{\gglsupdatewidest}[2][0]{%
+ \ifcsundef{@glswidestname\romannumeral#1}%
+ {\csgdef{@glswidestname\romannumeral#1}{#2}}%
+ {%
+ \settowidth{\dimen@}{\csuse{@glswidestname\romannumeral#1}}%
+ \settowidth{\dimen@ii}{#2}%
+ \ifdim\dimen@ii>\dimen@
+ \csgdef{@glswidestname\romannumeral#1}{#2}%
+ \fi
+ }%
+ }
+ \newcommand*{\eglsupdatewidest}[2][0]{%
+ \ifcsundef{@glswidestname\romannumeral#1}%
+ {\protected@csedef{@glswidestname\romannumeral#1}{#2}}%
+ {%
+ \settowidth{\dimen@}{\csuse{@glswidestname\romannumeral#1}}%
+ \settowidth{\dimen@ii}{#2}%
+ \ifdim\dimen@ii>\dimen@
+ \protected@csedef{@glswidestname\romannumeral#1}{#2}%
+ \fi
+ }%
+ }
+ \newcommand*{\xglsupdatewidest}[2][0]{%
+ \ifcsundef{@glswidestname\romannumeral#1}%
+ {\protected@csxdef{@glswidestname\romannumeral#1}{#2}}%
+ {%
+ \settowidth{\dimen@}{\csuse{@glswidestname\romannumeral#1}}%
+ \settowidth{\dimen@ii}{#2}%
+ \ifdim\dimen@ii>\dimen@
+ \protected@csxdef{@glswidestname\romannumeral#1}{#2}%
+ \fi
+ }%
+ }
+ \newcommand*{\glsgetwidestname}{\@glswidestname}
+ \newcommand*{\glsgetwidestsubname}[1]{%
+ \ifcsundef{@glswidestname\romannumeral#1}%
+ {\@glswidestname}%
+ {\csuse{@glswidestname\romannumeral#1}}%
+ }
+ \let\glsFindWidestTopLevelName\glsfindwidesttoplevelname
+ \newrobustcmd*{\glsFindWidestUsedTopLevelName}[1][\@glo@types]{%
+ \dimen@=0pt\relax
+ \gls@tmplen=0pt\relax
+ \forallglossaries[#1]{\@gls@type}%
+ {%
+ \forglsentries[\@gls@type]{\@glo@label}%
+ {%
+ \ifglsused{\@glo@label}%
+ {%
+ \ifglshasparent{\@glo@label}%
+ {}%
+ {%
+ \settowidth{\dimen@}%
+ {\glstreenamefmt{\glsentryname{\@glo@label}}}%
+ \ifdim\dimen@>\gls@tmplen
+ \gls@tmplen=\dimen@
+ \eglssetwidest{\glsentryname{\@glo@label}}%
+ \fi
+ }%
+ }%
+ {}%
+ }%
+ }%
+ }
+ \newrobustcmd*{\glsFindWidestUsedAnyName}[1][\@glo@types]{%
+ \dimen@=0pt\relax
+ \gls@tmplen=0pt\relax
+ \forallglossaries[#1]{\@gls@type}%
+ {%
+ \forglsentries[\@gls@type]{\@glo@label}%
+ {%
+ \ifglsused{\@glo@label}%
+ {%
+ \settowidth{\dimen@}%
+ {\glstreenamefmt{\glsentryname{\@glo@label}}}%
+ \ifdim\dimen@>\gls@tmplen
+ \gls@tmplen=\dimen@
+ \eglssetwidest{\glsentryname{\@glo@label}}%
+ \fi
+ }%
+ {}%
+ }%
+ }%
+ }
+ \newrobustcmd*{\glsFindWidestAnyName}[1][\@glo@types]{%
+ \dimen@=0pt\relax
+ \gls@tmplen=0pt\relax
+ \forallglossaries[#1]{\@gls@type}%
+ {%
+ \forglsentries[\@gls@type]{\@glo@label}%
+ {%
+ \settowidth{\dimen@}%
+ {\glstreenamefmt{\glsentryname{\@glo@label}}}%
+ \ifdim\dimen@>\gls@tmplen
+ \gls@tmplen=\dimen@
+ \eglssetwidest{\glsentryname{\@glo@label}}%
+ \fi
+ }%
+ }%
+ }
+ \newrobustcmd*{\glsFindWidestUsedLevelTwo}[1][\@glo@types]{%
+ \dimen@=0pt\relax
+ \dimen@i=0pt\relax
+ \dimen@ii=0pt\relax
+ \forallglossaries[#1]{\@gls@type}%
+ {%
+ \forglsentries[\@gls@type]{\@glo@label}%
+ {%
+ \ifglsused{\@glo@label}%
+ {%
+ \ifglshasparent{\@glo@label}%
+ {%
+ \protected@edef\@glo@parent{\csuse{glo@\glsdetoklabel{\@glo@label}@parent}}%
+ \ifglshasparent{\@glo@parent}%
+ {%
+ \protected@edef\@glo@parent{\csuse{glo@\glsdetoklabel{\@glo@parent}@parent}}%
+ \ifglshasparent{\@glo@parent}%
+ {}%
+ {%
+ \settowidth{\gls@tmplen}%
+ {\glstreenamefmt{\glsentryname{\@glo@label}}}%
+ \ifdim\gls@tmplen>\dimen@ii
+ \dimen@ii=\gls@tmplen
+ \eglssetwidest[2]{\glsentryname{\@glo@label}}%
+ \fi
+ }%
+ }%
+ {%
+ \settowidth{\gls@tmplen}%
+ {\glstreenamefmt{\glsentryname{\@glo@label}}}%
+ \ifdim\gls@tmplen>\dimen@i
+ \dimen@i=\gls@tmplen
+ \eglssetwidest[1]{\glsentryname{\@glo@label}}%
+ \fi
+ }%
+ }%
+ {%
+ \settowidth{\gls@tmplen}%
+ {\glstreenamefmt{\glsentryname{\@glo@label}}}%
+ \ifdim\gls@tmplen>\dimen@
+ \dimen@=\gls@tmplen
+ \eglssetwidest{\glsentryname{\@glo@label}}%
+ \fi
+ }%
+ }%
+ {}%
+ }%
+ }%
+ }
+ \newrobustcmd*{\glsFindWidestLevelTwo}[1][\@glo@types]{%
+ \dimen@=0pt\relax
+ \dimen@i=0pt\relax
+ \dimen@ii=0pt\relax
+ \forallglossaries[#1]{\@gls@type}%
+ {%
+ \forglsentries[\@gls@type]{\@glo@label}%
+ {%
+ \ifglshasparent{\@glo@label}%
+ {%
+ \protected@edef\@glo@parent{\csuse{glo@\glsdetoklabel{\@glo@label}@parent}}%
+ \ifglshasparent{\@glo@parent}%
+ {%
+ \protected@edef\@glo@parent{\csuse{glo@\glsdetoklabel{\@glo@parent}@parent}}%
+ \ifglshasparent{\@glo@parent}%
+ {}%
+ {%
+ \settowidth{\gls@tmplen}%
+ {\glstreenamefmt{\glsentryname{\@glo@label}}}%
+ \ifdim\gls@tmplen>\dimen@ii
+ \dimen@ii=\gls@tmplen
+ \eglssetwidest[2]{\glsentryname{\@glo@label}}%
+ \fi
+ }%
+ }%
+ {%
+ \settowidth{\gls@tmplen}%
+ {\glstreenamefmt{\glsentryname{\@glo@label}}}%
+ \ifdim\gls@tmplen>\dimen@i
+ \dimen@i=\gls@tmplen
+ \eglssetwidest[1]{\glsentryname{\@glo@label}}%
+ \fi
+ }%
+ }%
+ {%
+ \settowidth{\gls@tmplen}%
+ {\glstreenamefmt{\glsentryname{\@glo@label}}}%
+ \ifdim\gls@tmplen>\dimen@
+ \dimen@=\gls@tmplen
+ \eglssetwidest{\glsentryname{\@glo@label}}%
+ \fi
+ }%
+ }%
+ }%
+ }
+ \newrobustcmd*{\glsFindWidestUsedAnyNameSymbol}[2][\@glo@types]{%
+ \dimen@=0pt\relax
+ \gls@tmplen=0pt\relax
+ #2=0pt\relax
+ \forallglossaries[#1]{\@gls@type}%
+ {%
+ \forglsentries[\@gls@type]{\@glo@label}%
+ {%
+ \ifglsused{\@glo@label}%
+ {%
+ \settowidth{\dimen@}%
+ {\glstreenamefmt{\glsentryname{\@glo@label}}}%
+ \ifdim\dimen@>\gls@tmplen
+ \gls@tmplen=\dimen@
+ \eglssetwidest{\glsentryname{\@glo@label}}%
+ \fi
+ \settowidth{\dimen@}%
+ {\glsentrysymbol{\@glo@label}}%
+ \ifdim\dimen@>#2\relax
+ #2=\dimen@
+ \fi
+ }%
+ {}%
+ }%
+ }%
+ }
+ \newrobustcmd*{\glsFindWidestAnyNameSymbol}[2][\@glo@types]{%
+ \dimen@=0pt\relax
+ \gls@tmplen=0pt\relax
+ #2=0pt\relax
+ \forallglossaries[#1]{\@gls@type}%
+ {%
+ \forglsentries[\@gls@type]{\@glo@label}%
+ {%
+ \settowidth{\dimen@}%
+ {\glstreenamefmt{\glsentryname{\@glo@label}}}%
+ \ifdim\dimen@>\gls@tmplen
+ \gls@tmplen=\dimen@
+ \eglssetwidest{\glsentryname{\@glo@label}}%
+ \fi
+ \settowidth{\dimen@}%
+ {\glsentrysymbol{\@glo@label}}%
+ \ifdim\dimen@>#2\relax
+ #2=\dimen@
+ \fi
+ }%
+ }%
+ }
+ \newrobustcmd*{\glsFindWidestUsedAnyNameSymbolLocation}[3][\@glo@types]{%
+ \dimen@=0pt\relax
+ \gls@tmplen=0pt\relax
+ #2=0pt\relax
+ #3=0pt\relax
+ \forallglossaries[#1]{\@gls@type}%
+ {%
+ \forglsentries[\@gls@type]{\@glo@label}%
+ {%
+ \ifglsused{\@glo@label}%
+ {%
+ \settowidth{\dimen@}%
+ {\glstreenamefmt{\glsentryname{\@glo@label}}}%
+ \ifdim\dimen@>\gls@tmplen
+ \gls@tmplen=\dimen@
+ \eglssetwidest{\glsentryname{\@glo@label}}%
+ \fi
+ \settowidth{\dimen@}%
+ {\glsentrysymbol{\@glo@label}}%
+ \ifdim\dimen@>#2\relax
+ #2=\dimen@
+ \fi
+ \settowidth{\dimen@}%
+ {\GlsXtrFormatLocationList{\glsentrynumberlist{\@glo@label}}}%
+ \ifdim\dimen@>#3\relax
+ #3=\dimen@
+ \fi
+ }%
+ {}%
+ }%
+ }%
+ }
+ \newrobustcmd*{\glsFindWidestAnyNameSymbolLocation}[3][\@glo@types]{%
+ \dimen@=0pt\relax
+ \gls@tmplen=0pt\relax
+ #2=0pt\relax
+ #3=0pt\relax
+ \forallglossaries[#1]{\@gls@type}%
+ {%
+ \forglsentries[\@gls@type]{\@glo@label}%
+ {%
+ \settowidth{\dimen@}%
+ {\glstreenamefmt{\glsentryname{\@glo@label}}}%
+ \ifdim\dimen@>\gls@tmplen
+ \gls@tmplen=\dimen@
+ \eglssetwidest{\glsentryname{\@glo@label}}%
+ \fi
+ \settowidth{\dimen@}%
+ {\glsentrysymbol{\@glo@label}}%
+ \ifdim\dimen@>#2\relax
+ #2=\dimen@
+ \fi
+ \settowidth{\dimen@}%
+ {\GlsXtrFormatLocationList{\glsentrynumberlist{\@glo@label}}}%
+ \ifdim\dimen@>#3\relax
+ #3=\dimen@
+ \fi
+ }%
+ }%
+ }
+ \newrobustcmd*{\glsFindWidestUsedAnyNameLocation}[2][\@glo@types]{%
+ \dimen@=0pt\relax
+ \gls@tmplen=0pt\relax
+ #2=0pt\relax
+ \forallglossaries[#1]{\@gls@type}%
+ {%
+ \forglsentries[\@gls@type]{\@glo@label}%
+ {%
+ \ifglsused{\@glo@label}%
+ {%
+ \settowidth{\dimen@}%
+ {\glstreenamefmt{\glsentryname{\@glo@label}}}%
+ \ifdim\dimen@>\gls@tmplen
+ \gls@tmplen=\dimen@
+ \eglssetwidest{\glsentryname{\@glo@label}}%
+ \fi
+ \settowidth{\dimen@}%
+ {\GlsXtrFormatLocationList{\glsentrynumberlist{\@glo@label}}}%
+ \ifdim\dimen@>#2\relax
+ #2=\dimen@
+ \fi
+ }%
+ {}%
+ }%
+ }%
+ }
+ \newrobustcmd*{\glsFindWidestAnyNameLocation}[2][\@glo@types]{%
+ \dimen@=0pt\relax
+ \gls@tmplen=0pt\relax
+ #2=0pt\relax
+ \forallglossaries[#1]{\@gls@type}%
+ {%
+ \forglsentries[\@gls@type]{\@glo@label}%
+ {%
+ \settowidth{\dimen@}%
+ {\glstreenamefmt{\glsentryname{\@glo@label}}}%
+ \ifdim\dimen@>\gls@tmplen
+ \gls@tmplen=\dimen@
+ \eglssetwidest{\glsentryname{\@glo@label}}%
+ \fi
+ \settowidth{\dimen@}%
+ {\GlsXtrFormatLocationList{\glsentrynumberlist{\@glo@label}}}%
+ \ifdim\dimen@>#2\relax
+ #2=\dimen@
+ \fi
+ }%
+ }%
+ }
+ \newcommand*{\glsxtrComputeTreeIndent}[1]{%
+ \glstreeindent=\glsxtrtreetopindent\relax
+ }
+ \newcommand*{\glsxtrComputeTreeSubIndent}[3]{%
+ \ifcsundef{@glswidestname\romannumeral#1}%
+ {%
+ \settowidth{#3}{\glstreenamefmt{\@glswidestname\space}}%
+ }%
+ {%
+ \settowidth{#3}{\glstreenamefmt{%
+ \csname @glswidestname\romannumeral#1\endcsname\space}}%
+ }%
+ }
+ \newcommand*{\glsxtrAltTreeSetHangIndent}{\hangindent\glstreeindent}
+ \newcommand*{\glsxtrAltTreeSetSubHangIndent}[1]{\hangindent\glstreeindent}
+ \renewglossarystyle{alttree}{%
+ \renewenvironment{theglossary}%
+ {%
+ \glsxtralttreeInit
+ \def\@gls@prevlevel{-1}%
+ \mbox{}\par}%
+ {\par}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossentry}[2]{%
+ \ifnum\@gls@prevlevel=0\relax
+ \else
+ \glsxtrComputeTreeIndent{##1}%
+ \fi
+ \parindent\glstreeindent
+ \glsxtrAltTreeSetHangIndent
+ \makebox[0pt][r]%
+ {%
+ \glstreenamebox{\glstreeindent}%
+ {%
+ \glsentryitem{##1}%
+ \glstreenamefmt{\glstarget{##1}{\glossentryname{##1}}}%
+ }%
+ }%
+ \glsxtralttreeSymbolDescLocation{##1}{##2}%
+ \def\@gls@prevlevel{0}%
+ }
+ \renewcommand{\subglossentry}[3]{%
+ \ifnum##1=1\relax
+ \glssubentryitem{##2}%
+ \fi
+ \ifnum\@gls@prevlevel=##1\relax
+ \else
+ \glsxtrComputeTreeSubIndent{##1}{##2}{\gls@tmplen}%
+ \ifnum\@gls@prevlevel<##1\relax
+ \setlength\glstreeindent\gls@tmplen
+ \addtolength\glstreeindent\parindent
+ \parindent\glstreeindent
+ \else
+ \ifnum\@gls@prevlevel=0\relax
+ \glsxtrComputeTreeIndent{##2}%
+ \else
+ \glsxtrComputeTreeSubIndent{\@gls@prevlevel}{##2}{\glstreeindent}%
+ \fi
+ \addtolength\parindent{-\glstreeindent}%
+ \setlength\glstreeindent\parindent
+ \fi
+ \fi
+ \glsxtrAltTreeSetSubHangIndent{##1}%
+ \makebox[0pt][r]{\glstreenamebox{\gls@tmplen}{%
+ \glstreenamefmt{\glstarget{##2}{\glossentryname{##2}}}}}%
+ \glsxtralttreeSubSymbolDescLocation{##1}{##2}{##3}%
+ \def\@gls@prevlevel{##1}%
+ }%
+ \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\glstreegroupskip\fi}%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@alttreegroup}
+{%
+ \renewglossarystyle{alttreegroup}{%
+ \setglossarystyle{alttree}%
+ \renewcommand{\glsgroupheading}[1]{\par
+ \def\@gls@prevlevel{-1}%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}%
+ \glstreePreHeader{##1}{\glsxtr@grptitle}%
+ \glstreegroupheaderfmt{\glsxtr@grptitle}%
+ \glstreegroupheaderskip
+ }%
+ }%
+}%
+{%
+}
+\ifdef{\@glsstyle@alttreehypergroup}
+{%
+ \renewglossarystyle{alttreehypergroup}{%
+ \setglossarystyle{alttree}%
+ \renewcommand*{\glossaryheader}{%
+ \par
+ \def\@gls@prevlevel{-1}%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \glstreenavigationfmt{\glsnavigation}%
+ \glstreegroupheaderskip
+ }%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}%
+ \glstreePreHeader{##1}{\glsxtr@grptitle}%
+ \par
+ \def\@gls@prevlevel{-1}%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}%
+ \glstreegroupheaderskip
+ }%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcolindexgroup}
+{%
+ \renewglossarystyle{mcolindexgroup}{%
+ \setglossarystyle{mcolindex}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}%
+ \glstreePreHeader{##1}{\glsxtr@grptitle}%
+ \item\glstreegroupheaderfmt{\glsxtr@grptitle}%
+ \glstreegroupheaderskip\@afterheading
+ }%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcolindexhypergroup}
+{%
+ \renewglossarystyle{mcolindexhypergroup}{%
+ \setglossarystyle{mcolindex}%
+ \renewcommand*{\glossaryheader}{%
+ \item\glstreenavigationfmt{\glsnavigation}%
+ \glstreegroupheaderskip\@afterheading
+ }%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}%
+ \glstreePreHeader{##1}{\glsxtr@grptitle}%
+ \item\glstreegroupheaderfmt
+ {\glsnavhypertarget{##1}{\glsxtr@grptitle}}%
+ \glstreegroupheaderskip\@afterheading
+ }%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcolindexspannav}
+{%
+ \renewglossarystyle{mcolindexspannav}{%
+ \setglossarystyle{index}%
+ \renewenvironment{theglossary}%
+ {%
+ \begin{multicols}{\glsmcols}[\noindent\glstreenavigationfmt{\glsnavigation}]%
+ \setlength{\parindent}{0pt}%
+ \setlength{\parskip}{0pt plus 0.3pt}%
+ \let\item\glstreeitem}%
+ {\end{multicols}}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}%
+ \glstreePreHeader{##1}{\glsxtr@grptitle}%
+ \item\glstreegroupheaderfmt
+ {\glsnavhypertarget{##1}{\glsxtr@grptitle}}%
+ \glstreegroupheaderskip\@afterheading
+ }%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcoltreegroup}
+{%
+ \renewglossarystyle{mcoltreegroup}{%
+ \setglossarystyle{mcoltree}%
+ \renewcommand{\glsgroupheading}[1]{%
+ \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}%
+ \glstreePreHeader{##1}{\glsxtr@grptitle}%
+ \par\noindent\glstreegroupheaderfmt{\glsxtr@grptitle}%
+ \glstreegroupheaderskip\@afterheading
+ }%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcoltreehypergroup}
+{%
+ \renewglossarystyle{mcoltreehypergroup}{%
+ \setglossarystyle{mcoltree}%
+ \renewcommand*{\glossaryheader}{%
+ \par\noindent\glstreenavigationfmt{\glsnavigation}%
+ \glstreegroupheaderskip
+ }%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}%
+ \glstreePreHeader{##1}{\glsxtr@grptitle}%
+ \par\noindent
+ \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}%
+ \glstreegroupheaderskip\@afterheading
+ }%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcoltreespannav}
+{%
+ \renewglossarystyle{mcoltreespannav}{%
+ \setglossarystyle{tree}%
+ \renewenvironment{theglossary}%
+ {%
+ \begin{multicols}{\glsmcols}%
+ [\noindent\glstreenavigationfmt{\glsnavigation}]%
+ \setlength{\parindent}{0pt}%
+ \setlength{\parskip}{0pt plus 0.3pt}%
+ }%
+ {\end{multicols}}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}%
+ \glstreePreHeader{##1}{\glsxtr@grptitle}%
+ \par\noindent
+ \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}%
+ \glstreegroupheaderskip\@afterheading
+ }%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcoltreenonamegroup}
+{%
+ \renewglossarystyle{mcoltreenonamegroup}{%
+ \setglossarystyle{mcoltreenoname}%
+ \renewcommand{\glsgroupheading}[1]{%
+ \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}%
+ \glstreePreHeader{##1}{\glsxtr@grptitle}%
+ \par\noindent\glstreegroupheaderfmt{\glsxtr@grptitle}%
+ \glstreegroupheaderskip\@afterheading
+ }%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcoltreenonamehypergroup}
+{%
+ \renewglossarystyle{mcoltreenonamehypergroup}{%
+ \setglossarystyle{mcoltreenoname}%
+ \renewcommand*{\glossaryheader}{%
+ \par\noindent\glstreenavigationfmt{\glsnavigation}%
+ \glstreegroupheaderskip
+ }%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}%
+ \glstreePreHeader{##1}{\glsxtr@grptitle}%
+ \par\noindent
+ \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}%
+ \glstreegroupheaderskip\@afterheading}%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcoltreenonamespannav}
+{%
+ \renewglossarystyle{mcoltreenonamespannav}{%
+ \setglossarystyle{treenoname}%
+ \renewenvironment{theglossary}%
+ {%
+ \begin{multicols}{\glsmcols}%
+ [\noindent\glstreenavigationfmt{\glsnavigation}]%
+ \setlength{\parindent}{0pt}%
+ \setlength{\parskip}{0pt plus 0.3pt}%
+ }%
+ {\end{multicols}}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}%
+ \glstreePreHeader{##1}{\glsxtr@grptitle}%
+ \par\noindent
+ \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}%
+ \glstreegroupheaderskip\@afterheading}%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcolalttree}
+{%
+ \renewglossarystyle{mcolalttree}{%
+ \setglossarystyle{alttree}%
+ \renewenvironment{theglossary}%
+ {%
+ \glsxtralttreeInit
+ \def\@gls@prevlevel{-1}%
+ \begin{multicols}{\glsmcols}%
+ }%
+ {\par\end{multicols}}%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcolalttreegroup}
+{%
+ \renewglossarystyle{mcolalttreegroup}{%
+ \setglossarystyle{mcolalttree}%
+ \renewcommand{\glsgroupheading}[1]{%
+ \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}%
+ \glstreePreHeader{##1}{\glsxtr@grptitle}%
+ \par
+ \def\@gls@prevlevel{-1}%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \glstreegroupheaderfmt{\glsxtr@grptitle}%
+ \glstreegroupheaderskip
+ }%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcolalttreehypergroup}
+{%
+ \renewglossarystyle{mcolalttreehypergroup}{%
+ \setglossarystyle{mcolalttree}%
+ \renewcommand*{\glossaryheader}{%
+ \par
+ \def\@gls@prevlevel{-1}%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \glstreenavigationfmt{\glsnavigation}%
+ \glstreegroupheaderskip
+ }%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}%
+ \glstreePreHeader{##1}{\glsxtr@grptitle}%
+ \par
+ \def\@gls@prevlevel{-1}%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}%
+ \glstreegroupheaderskip
+ }%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcolalttreespannav}
+{%
+ \renewglossarystyle{mcolalttreespannav}{%
+ \setglossarystyle{alttree}%
+ \renewenvironment{theglossary}%
+ {%
+ \glsxtralttreeInit
+ \def\@gls@prevlevel{-1}%
+ \begin{multicols}{\glsmcols}%
+ [\noindent\glstreenavigationfmt{\glsnavigation}]%
+ }%
+ {\par\end{multicols}}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \glsxtrgetgrouptitle{##1}{\glsxtr@grptitle}%
+ \glstreePreHeader{##1}{\glsxtr@grptitle}%
+ \par
+ \def\@gls@prevlevel{-1}%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}%
+ \glstreegroupheaderskip
+ }%
+ }
+}%
+{%
+}
+\ifx\@glossary@default@style\relax
+\else
+ \setglossarystyle{\@glsxtr@current@style}
+\fi
+\endinput
+%%
+%% End of file `glossaries-extra-stylemods-2021-11-22.sty'.
diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-stylemods.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-stylemods.sty
index 49fbb4fa291..461bbd40bf7 100644
--- a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-stylemods.sty
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-stylemods.sty
@@ -7,7 +7,7 @@
%% glossaries-extra.dtx (with options: `glossaries-extra-stylemods.sty,package')
%%
%% glossaries-extra.dtx
-%% Copyright 2021 Nicola Talbot
+%% Copyright 2022 Nicola Talbot
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -21,7 +21,7 @@
%%
%% The Current Maintainer of this work is Nicola Talbot.
%%
-%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib.
+%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-abbrstyles.def, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, glossary-table.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib, glossaries-extra-2021-11-22.sty, glossaries-extra-bib2gls-2021-11-22.sty, glossaries-extra-stylemods-2021-11-22.sty, glossary-bookindex-2021-11-22.sty, glossary-longextra-2021-11-22.sty, glossary-topic-2021-11-22.sty.
%%
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -39,7 +39,9 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossaries-extra-stylemods}[2021/11/22 v1.48 (NLCT)]
+\DeclareRelease{v1.48}{2021-11-22}{glossaries-extra-stylemods-2021-11-22.sty}
+\DeclareCurrentRelease{v1.49}{2022-10-14}
+\ProvidesPackage{glossaries-extra-stylemods}[2022/10/14 v1.49 (NLCT)]
\newcommand*{\@glsxtr@loadstyles}{}
\DeclareOption{all}{%
\appto\@glsxtr@loadstyles{%
@@ -136,6 +138,7 @@
{\glslistinit\begin{description}}{\end{description}}%
\renewcommand*{\glossaryheader}{}%
\renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glssubgroupheading}[4]{}%
\renewcommand*{\glossentry}[2]{%
\glslistitem{##1}\glslistdesc{##1}\glslistprelocation ##2}%
\renewcommand*{\subglossentry}[3]{%
@@ -229,6 +232,7 @@
{\end{longtable}}%
\renewcommand*{\glossaryheader}{}%
\renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glssubgroupheading}[4]{}%
\renewcommand{\glossentry}[2]{%
\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
\glossentrydesc{##1}\glspostdescription
@@ -256,6 +260,7 @@
{\end{longtable}}%
\renewcommand*{\glossaryheader}{}%
\renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glssubgroupheading}[4]{}%
\renewcommand{\glossentry}[2]{%
\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
\glossentrydesc{##1}\glspostdescription & ##2\tabularnewline
@@ -282,6 +287,7 @@
{\end{longtable}}%
\renewcommand*{\glossaryheader}{}%
\renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glssubgroupheading}[4]{}%
\renewcommand{\glossentry}[2]{%
\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
\glossentrydesc{##1}\glspostdescription &
@@ -310,6 +316,7 @@
{\end{longtable}}%
\renewcommand*{\glossaryheader}{}%
\renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glssubgroupheading}[4]{}%
\renewcommand{\glossentry}[2]{%
\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
\glossentrydesc{##1}\glspostdescription\glsxtrprelocation ##2%
@@ -339,6 +346,7 @@
{\end{longtable}}%
\renewcommand*{\glossaryheader}{}%
\renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glssubgroupheading}[4]{}%
\renewcommand{\glossentry}[2]{%
\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
\glossentrydesc{##1}\glspostdescription & ##2\tabularnewline
@@ -366,6 +374,7 @@
{\end{longtable}}%
\renewcommand*{\glossaryheader}{}%
\renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glssubgroupheading}[4]{}%
\renewcommand{\glossentry}[2]{%
\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
\glossentrydesc{##1}\glspostdescription & \glossentrysymbol{##1} &
@@ -394,6 +403,7 @@
{\end{supertabular}}%
\renewcommand*{\glossaryheader}{}%
\renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glssubgroupheading}[4]{}%
\renewcommand{\glossentry}[2]{%
\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
\glossentrydesc{##1}\glspostdescription
@@ -422,6 +432,7 @@
{\end{supertabular}}%
\renewcommand*{\glossaryheader}{}%
\renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glssubgroupheading}[4]{}%
\renewcommand{\glossentry}[2]{%
\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
\glossentrydesc{##1}\glspostdescription & ##2\tabularnewline
@@ -449,6 +460,7 @@
\end{supertabular}}%
\renewcommand*{\glossaryheader}{}%
\renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glssubgroupheading}[4]{}%
\renewcommand{\glossentry}[2]{%
\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
\glossentrydesc{##1}\glspostdescription &
@@ -477,6 +489,7 @@
{\end{supertabular}}%
\renewcommand*{\glossaryheader}{}%
\renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glssubgroupheading}[4]{}%
\renewcommand{\glossentry}[2]{%
\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
\glossentrydesc{##1}\glspostdescription\glsxtrprelocation ##2%
@@ -507,6 +520,7 @@
{\end{supertabular}}%
\renewcommand*{\glossaryheader}{}%
\renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glssubgroupheading}[4]{}%
\renewcommand{\glossentry}[2]{%
\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
\glossentrydesc{##1}\glspostdescription &
@@ -570,6 +584,7 @@
\def\glstreegroupheaderfmt#1{\glstreedefaultnamefmt{#1}}
\def\glstreenavigationfmt#1{\glstreedefaultnamefmt{#1}}
\newcommand{\glstreePreHeader}[2]{}
+ \newcommand{\glstreeSubPreHeader}[5]{}
}
{}
\ifdef{\@glsstyle@index}
@@ -589,6 +604,7 @@
{\par}%
\renewcommand*{\glossaryheader}{}%
\renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glssubgroupheading}[4]{}%
\renewcommand*{\glossentry}[2]{%
\item\glsentryitem{##1}%
\glstreenamefmt{\glstarget{##1}{\glossentryname{##1}}}%
@@ -614,6 +630,20 @@
{}
\ifdef{\@glsstyle@indexgroup}
{%
+ \newcommand*{\glsindexsubgroupitem}[5]{%
+ \ifcase#2\relax
+ \item \glstreegroupheaderfmt{#5}%
+ \glstreegroupheaderskip
+ \or
+ \smallskip
+ \subitem \glstreegroupheaderfmt{#5}%
+ \smallskip
+ \else
+ \smallskip
+ \subsubitem \glstreegroupheaderfmt{#5}%
+ \smallskip
+ \fi
+ }
\renewglossarystyle{indexgroup}{%
\setglossarystyle{index}%
\renewcommand*{\glsgroupheading}[1]{%
@@ -622,6 +652,12 @@
\item\glstreegroupheaderfmt{\glsxtr@grptitle}%
\glstreegroupheaderskip\@afterheading
}%
+ \renewcommand*{\glssubgroupheading}[4]{%
+ \glsxtrgetgrouptitle{##4}{\glsxtr@grptitle}%
+ \glstreeSubPreHeader{##1}{##2}{##3}{##4}{\glsxtr@grptitle}%
+ \glsindexsubgroupitem{##1}{##2}{##3}{##4}{\glsxtr@grptitle}%
+ \@afterheading
+ }%
}
}
{}
@@ -638,13 +674,20 @@
\item\glstreegroupheaderfmt
{\glsnavhypertarget{##1}{\glsxtr@grptitle}}%
\glstreegroupheaderskip\@afterheading}%
+ \renewcommand*{\glssubgroupheading}[4]{%
+ \glsxtrgetgrouptitle{##4}{\glsxtr@grptitle}%
+ \glstreeSubPreHeader{##1}{##2}{##3}{##4}{\glsxtr@grptitle}%
+ \glsindexsubgroupitem{##1}{##2}{##3}{##4}%
+ {\glsnavhypertarget{##4}{\glsxtr@grptitle}}%
+ \@afterheading
+ }%
}%
}
{}
\ifdef{\@glsstyle@tree}
{%
-\newcommand{\glsxtrtreepredesc}{\glstreepredesc}
-\newcommand{\glsxtrtreechildpredesc}{\glstreechildpredesc}
+ \newcommand{\glsxtrtreepredesc}{\glstreepredesc}
+ \newcommand{\glsxtrtreechildpredesc}{\glstreechildpredesc}
\newcommand{\glstreedesc}[1]{%
\glsxtrtreepredesc\glossentrydesc{#1}\glspostdescription
}
@@ -679,6 +722,7 @@
{}%
\renewcommand*{\glossaryheader}{}%
\renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glssubgroupheading}[4]{}%
\renewcommand{\glossentry}[2]{%
\hangindent0pt\relax
\parindent0pt\relax
@@ -702,6 +746,10 @@
{}
\ifdef{\@glsstyle@treegroup}
{%
+ \newcommand*{\glstreesubgroupitem}[5]{%
+ \par\smallskip\noindent\hspace{#2\glstreeindent}%
+ \glstreegroupheaderfmt{#5}\smallskip\par
+ }
\renewglossarystyle{treegroup}{%
\setglossarystyle{tree}%
\renewcommand{\glsgroupheading}[1]{%
@@ -709,6 +757,11 @@
\glstreePreHeader{##1}{\glsxtr@grptitle}%
\par\noindent\glstreegroupheaderfmt{\glsxtr@grptitle}%
\glstreegroupheaderskip\@afterheading}%
+ \renewcommand*{\glssubgroupheading}[4]{%
+ \glsxtrgetgrouptitle{##4}{\glsxtr@grptitle}%
+ \glstreeSubPreHeader{##1}{##2}{##3}{##4}{\glsxtr@grptitle}%
+ \glstreesubgroupitem{##1}{##2}{##3}{##4}{\glsxtr@grptitle}%
+ }%
}
}
{}
@@ -726,6 +779,12 @@
\glstreegroupheaderfmt
{\glsnavhypertarget{##1}{\glsxtr@grptitle}}%
\glstreegroupheaderskip\@afterheading}%
+ \renewcommand*{\glssubgroupheading}[4]{%
+ \glsxtrgetgrouptitle{##4}{\glsxtr@grptitle}%
+ \glstreeSubPreHeader{##1}{##2}{##3}{##4}{\glsxtr@grptitle}%
+ \glstreesubgroupitem{##1}{##2}{##3}{##4}%
+ {\glsnavhypertarget{##4}{\glsxtr@grptitle}}%
+ }%
}
}
{}
@@ -753,6 +812,7 @@
{}%
\renewcommand*{\glossaryheader}{}%
\renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glssubgroupheading}[4]{}%
\renewcommand{\glossentry}[2]{%
\hangindent0pt\relax
\parindent0pt\relax
@@ -1223,6 +1283,7 @@
{\par}%
\renewcommand*{\glossaryheader}{}%
\renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glssubgroupheading}[4]{}%
\renewcommand{\glossentry}[2]{%
\ifnum\@gls@prevlevel=0\relax
\else
@@ -1274,7 +1335,13 @@
{%
}
\ifdef{\@glsstyle@alttreegroup}
-{%
+{
+ \newcommand*{\glsalttreesubgroupheader}[6]{%
+ \par\smallskip
+ \makebox[0pt][r]{\glstreenamebox{#6}%
+ {\glstreegroupheaderfmt{#5}}}%
+ \smallskip\par
+ }
\renewglossarystyle{alttreegroup}{%
\setglossarystyle{alttree}%
\renewcommand{\glsgroupheading}[1]{\par
@@ -1286,6 +1353,45 @@
\glstreegroupheaderfmt{\glsxtr@grptitle}%
\glstreegroupheaderskip
}%
+ \renewcommand*{\glssubgroupheading}[4]{%
+ \glsxtrgetgrouptitle{##4}{\glsxtr@grptitle}%
+ \glstreeSubPreHeader{##1}{##2}{##3}{##4}{\glsxtr@grptitle}%
+ \ifnum\@gls@prevlevel=##2\relax
+ \else
+ \ifcsundef{@glswidestname\romannumeral##2}%
+ {%
+ \settowidth{\gls@tmplen}{\glstreenamefmt{\@glswidestname\space}}%
+ }%
+ {%
+ \settowidth{\gls@tmplen}{\glstreenamefmt{%
+ \csname @glswidestname\romannumeral##2\endcsname\space}}%
+ }%
+ \ifnum\@gls@prevlevel<##2\relax
+ \setlength\glstreeindent\gls@tmplen
+ \addtolength\glstreeindent\parindent
+ \parindent\glstreeindent
+ \else
+ \ifnum\@gls@prevlevel=0\relax
+ \glsxtrComputeTreeIndent{##2}%
+ \else
+ \ifcsundef{@glswidestname\romannumeral##2}%
+ {%
+ \settowidth{\glstreeindent}{\glstreenamefmt{\@glswidestname\space}}%
+ }%
+ {%
+ \settowidth{\glstreeindent}{\glstreenamefmt{%
+ \csname @glswidestname\romannumeral##2\endcsname\space}}%
+ }%
+ \fi
+ \addtolength\parindent{-\glstreeindent}%
+ \setlength\glstreeindent\parindent
+ \fi
+ \fi
+ \glsxtrAltTreeSetSubHangIndent{##2}%
+ \glsalttreesubgroupheader{##1}{##2}{##3}{##4}{\glsxtr@grptitle}{\gls@tmplen}%
+ \def\@gls@prevlevel{##2}%
+ \par
+ }%
}%
}%
{%
@@ -1312,6 +1418,46 @@
\glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}%
\glstreegroupheaderskip
}%
+ \renewcommand*{\glssubgroupheading}[4]{%
+ \glsxtrgetgrouptitle{##4}{\glsxtr@grptitle}%
+ \glstreeSubPreHeader{##1}{##2}{##3}{##4}{\glsxtr@grptitle}%
+ \ifnum\@gls@prevlevel=##2\relax
+ \else
+ \ifcsundef{@glswidestname\romannumeral##2}%
+ {%
+ \settowidth{\gls@tmplen}{\glstreenamefmt{\@glswidestname\space}}%
+ }%
+ {%
+ \settowidth{\gls@tmplen}{\glstreenamefmt{%
+ \csname @glswidestname\romannumeral##2\endcsname\space}}%
+ }%
+ \ifnum\@gls@prevlevel<##2\relax
+ \setlength\glstreeindent\gls@tmplen
+ \addtolength\glstreeindent\parindent
+ \parindent\glstreeindent
+ \else
+ \ifnum\@gls@prevlevel=0\relax
+ \glsxtrComputeTreeIndent{##2}%
+ \else
+ \ifcsundef{@glswidestname\romannumeral##2}%
+ {%
+ \settowidth{\glstreeindent}{\glstreenamefmt{\@glswidestname\space}}%
+ }%
+ {%
+ \settowidth{\glstreeindent}{\glstreenamefmt{%
+ \csname @glswidestname\romannumeral##2\endcsname\space}}%
+ }%
+ \fi
+ \addtolength\parindent{-\glstreeindent}%
+ \setlength\glstreeindent\parindent
+ \fi
+ \fi
+ \glsxtrAltTreeSetSubHangIndent{##2}%
+ \glsalttreesubgroupheader{##1}{##2}{##3}{##4}%
+ {\glsnavhypertarget{##4}{\glsxtr@grptitle}}{\gls@tmplen}%
+ \def\@gls@prevlevel{##2}%
+ \par
+ }%
}
}%
{%
@@ -1326,6 +1472,12 @@
\item\glstreegroupheaderfmt{\glsxtr@grptitle}%
\glstreegroupheaderskip\@afterheading
}%
+ \renewcommand*{\glssubgroupheading}[4]{%
+ \glsxtrgetgrouptitle{##4}{\glsxtr@grptitle}%
+ \glstreeSubPreHeader{##1}{##2}{##3}{##4}{\glsxtr@grptitle}%
+ \glsindexsubgroupitem{##1}{##2}{##3}{##4}{\glsxtr@grptitle}%
+ \@afterheading
+ }%
}
}%
{%
@@ -1345,6 +1497,13 @@
{\glsnavhypertarget{##1}{\glsxtr@grptitle}}%
\glstreegroupheaderskip\@afterheading
}%
+ \renewcommand*{\glssubgroupheading}[4]{%
+ \glsxtrgetgrouptitle{##4}{\glsxtr@grptitle}%
+ \glstreeSubPreHeader{##1}{##2}{##3}{##4}{\glsxtr@grptitle}%
+ \glsindexsubgroupitem{##1}{##2}{##3}{##4}%
+ {\glsnavhypertarget{##4}{\glsxtr@grptitle}}%
+ \@afterheading
+ }%
}
}%
{%
@@ -1367,6 +1526,13 @@
{\glsnavhypertarget{##1}{\glsxtr@grptitle}}%
\glstreegroupheaderskip\@afterheading
}%
+ \renewcommand*{\glssubgroupheading}[4]{%
+ \glsxtrgetgrouptitle{##4}{\glsxtr@grptitle}%
+ \glstreeSubPreHeader{##1}{##2}{##3}{##4}{\glsxtr@grptitle}%
+ \glsindexsubgroupitem{##1}{##2}{##3}{##4}%
+ {\glsnavhypertarget{##4}{\glsxtr@grptitle}}%
+ \@afterheading
+ }%
}
}%
{%
@@ -1381,6 +1547,11 @@
\par\noindent\glstreegroupheaderfmt{\glsxtr@grptitle}%
\glstreegroupheaderskip\@afterheading
}%
+ \renewcommand*{\glssubgroupheading}[4]{%
+ \glsxtrgetgrouptitle{##4}{\glsxtr@grptitle}%
+ \glstreeSubPreHeader{##1}{##2}{##3}{##4}{\glsxtr@grptitle}%
+ \glstreesubgroupitem{##1}{##2}{##3}{##4}{\glsxtr@grptitle}%
+ }%
}
}%
{%
@@ -1400,6 +1571,12 @@
\glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}%
\glstreegroupheaderskip\@afterheading
}%
+ \renewcommand*{\glssubgroupheading}[4]{%
+ \glsxtrgetgrouptitle{##4}{\glsxtr@grptitle}%
+ \glstreeSubPreHeader{##1}{##2}{##3}{##4}{\glsxtr@grptitle}%
+ \glstreesubgroupitem{##1}{##2}{##3}{##4}%
+ {\glsnavhypertarget{##4}{\glsxtr@grptitle}}%
+ }%
}
}%
{%
@@ -1423,6 +1600,12 @@
\glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}%
\glstreegroupheaderskip\@afterheading
}%
+ \renewcommand*{\glssubgroupheading}[4]{%
+ \glsxtrgetgrouptitle{##4}{\glsxtr@grptitle}%
+ \glstreeSubPreHeader{##1}{##2}{##3}{##4}{\glsxtr@grptitle}%
+ \glstreesubgroupitem{##1}{##2}{##3}{##4}%
+ {\glsnavhypertarget{##4}{\glsxtr@grptitle}}%
+ }%
}
}%
{%
@@ -1510,6 +1693,45 @@
\glstreegroupheaderfmt{\glsxtr@grptitle}%
\glstreegroupheaderskip
}%
+ \renewcommand*{\glssubgroupheading}[4]{%
+ \glsxtrgetgrouptitle{##4}{\glsxtr@grptitle}%
+ \glstreeSubPreHeader{##1}{##2}{##3}{##4}{\glsxtr@grptitle}%
+ \ifnum\@gls@prevlevel=##2\relax
+ \else
+ \ifcsundef{@glswidestname\romannumeral##2}%
+ {%
+ \settowidth{\gls@tmplen}{\glstreenamefmt{\@glswidestname\space}}%
+ }%
+ {%
+ \settowidth{\gls@tmplen}{\glstreenamefmt{%
+ \csname @glswidestname\romannumeral##2\endcsname\space}}%
+ }%
+ \ifnum\@gls@prevlevel<##2\relax
+ \setlength\glstreeindent\gls@tmplen
+ \addtolength\glstreeindent\parindent
+ \parindent\glstreeindent
+ \else
+ \ifnum\@gls@prevlevel=0\relax
+ \glsxtrComputeTreeIndent{##2}%
+ \else
+ \ifcsundef{@glswidestname\romannumeral##2}%
+ {%
+ \settowidth{\glstreeindent}{\glstreenamefmt{\@glswidestname\space}}%
+ }%
+ {%
+ \settowidth{\glstreeindent}{\glstreenamefmt{%
+ \csname @glswidestname\romannumeral##2\endcsname\space}}%
+ }%
+ \fi
+ \addtolength\parindent{-\glstreeindent}%
+ \setlength\glstreeindent\parindent
+ \fi
+ \fi
+ \glsxtrAltTreeSetSubHangIndent{##2}%
+ \glsalttreesubgroupheader{##1}{##2}{##3}{##4}{\glsxtr@grptitle}{\gls@tmplen}%
+ \def\@gls@prevlevel{##2}%
+ \par
+ }%
}
}%
{%
@@ -1536,6 +1758,46 @@
\glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}%
\glstreegroupheaderskip
}%
+ \renewcommand*{\glssubgroupheading}[4]{%
+ \glsxtrgetgrouptitle{##4}{\glsxtr@grptitle}%
+ \glstreeSubPreHeader{##1}{##2}{##3}{##4}{\glsxtr@grptitle}%
+ \ifnum\@gls@prevlevel=##2\relax
+ \else
+ \ifcsundef{@glswidestname\romannumeral##2}%
+ {%
+ \settowidth{\gls@tmplen}{\glstreenamefmt{\@glswidestname\space}}%
+ }%
+ {%
+ \settowidth{\gls@tmplen}{\glstreenamefmt{%
+ \csname @glswidestname\romannumeral##2\endcsname\space}}%
+ }%
+ \ifnum\@gls@prevlevel<##2\relax
+ \setlength\glstreeindent\gls@tmplen
+ \addtolength\glstreeindent\parindent
+ \parindent\glstreeindent
+ \else
+ \ifnum\@gls@prevlevel=0\relax
+ \glsxtrComputeTreeIndent{##2}%
+ \else
+ \ifcsundef{@glswidestname\romannumeral##2}%
+ {%
+ \settowidth{\glstreeindent}{\glstreenamefmt{\@glswidestname\space}}%
+ }%
+ {%
+ \settowidth{\glstreeindent}{\glstreenamefmt{%
+ \csname @glswidestname\romannumeral##2\endcsname\space}}%
+ }%
+ \fi
+ \addtolength\parindent{-\glstreeindent}%
+ \setlength\glstreeindent\parindent
+ \fi
+ \fi
+ \glsxtrAltTreeSetSubHangIndent{##2}%
+ \glsalttreesubgroupheader{##1}{##2}{##3}{##4}%
+ {\glsnavhypertarget{##4}{\glsxtr@grptitle}}{\gls@tmplen}%
+ \def\@gls@prevlevel{##2}%
+ \par
+ }%
}
}%
{%
@@ -1562,6 +1824,46 @@
\glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsxtr@grptitle}}%
\glstreegroupheaderskip
}%
+ \renewcommand*{\glssubgroupheading}[4]{%
+ \glsxtrgetgrouptitle{##4}{\glsxtr@grptitle}%
+ \glstreeSubPreHeader{##1}{##2}{##3}{##4}{\glsxtr@grptitle}%
+ \ifnum\@gls@prevlevel=##2\relax
+ \else
+ \ifcsundef{@glswidestname\romannumeral##2}%
+ {%
+ \settowidth{\gls@tmplen}{\glstreenamefmt{\@glswidestname\space}}%
+ }%
+ {%
+ \settowidth{\gls@tmplen}{\glstreenamefmt{%
+ \csname @glswidestname\romannumeral##2\endcsname\space}}%
+ }%
+ \ifnum\@gls@prevlevel<##2\relax
+ \setlength\glstreeindent\gls@tmplen
+ \addtolength\glstreeindent\parindent
+ \parindent\glstreeindent
+ \else
+ \ifnum\@gls@prevlevel=0\relax
+ \glsxtrComputeTreeIndent{##2}%
+ \else
+ \ifcsundef{@glswidestname\romannumeral##2}%
+ {%
+ \settowidth{\glstreeindent}{\glstreenamefmt{\@glswidestname\space}}%
+ }%
+ {%
+ \settowidth{\glstreeindent}{\glstreenamefmt{%
+ \csname @glswidestname\romannumeral##2\endcsname\space}}%
+ }%
+ \fi
+ \addtolength\parindent{-\glstreeindent}%
+ \setlength\glstreeindent\parindent
+ \fi
+ \fi
+ \glsxtrAltTreeSetSubHangIndent{##2}%
+ \glsalttreesubgroupheader{##1}{##2}{##3}{##4}%
+ {\glsnavhypertarget{##4}{\glsxtr@grptitle}}{\gls@tmplen}%
+ \def\@gls@prevlevel{##2}%
+ \par
+ }%
}
}%
{%
diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty
index d35fa885846..a770da97b50 100644
--- a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty
@@ -7,7 +7,7 @@
%% glossaries-extra.dtx (with options: `glossaries-extra.sty,package')
%%
%% glossaries-extra.dtx
-%% Copyright 2021 Nicola Talbot
+%% Copyright 2022 Nicola Talbot
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -21,7 +21,7 @@
%%
%% The Current Maintainer of this work is Nicola Talbot.
%%
-%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib.
+%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-abbrstyles.def, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, glossary-table.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib, glossaries-extra-2021-11-22.sty, glossaries-extra-bib2gls-2021-11-22.sty, glossaries-extra-stylemods-2021-11-22.sty, glossary-bookindex-2021-11-22.sty, glossary-longextra-2021-11-22.sty, glossary-topic-2021-11-22.sty.
%%
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -39,7 +39,9 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossaries-extra}[2021/11/22 v1.48 (NLCT)]
+\DeclareRelease{v1.48}{2021-11-22}{glossaries-extra-2021-11-22.sty}
+\DeclareCurrentRelease{v1.49}{2022-10-14}
+\ProvidesPackage{glossaries-extra}[2022/10/14 v1.49 (NLCT)]
\RequirePackage{xkeyval}
\RequirePackage{etoolbox}
\@ifpackageloaded{glossaries}
@@ -212,6 +214,10 @@
\newcommand{\@glsxtr@glossadd@prekeys}{\glsaddpresetkeys}
\newcommand{\@glsxtr@glossadd@postkeys}{\glsaddpostsetkeys}
\newcommand*\@glsxtr@dorecord{%
+ \@@glsxtr@dorecord\@gls@label\glsxtr@record\@glsxtr@do@nameref@record
+}
+
+\newcommand*\@@glsxtr@dorecord[3]{%
\global\let\@glsrecordlocref\theglsentrycounter
\let\@glsxtr@orgprefix\@glo@counterprefix
\ifx\theglsentrycounter\theHglsentrycounter
@@ -221,18 +227,16 @@
\protected@edef\@glsxtr@theHentrycounter{\theHglsentrycounter}%
\@onelevel@sanitize\@glsxtr@theentrycounter
\@onelevel@sanitize\@glsxtr@theHentrycounter
- \protected@edef\@do@gls@getcounterprefix{\noexpand\@gls@getcounterprefix
+ \@xp@gls@getcounterprefix
{\@glsxtr@theentrycounter}{\@glsxtr@theHentrycounter}%
- }%
- \@do@gls@getcounterprefix
\fi
\ifx\@glsxtr@record@setting\@glsxtr@record@setting@nameref
- \@glsxtr@do@nameref@record
- {\@gls@label}{\@glo@counterprefix}{\@gls@counter}{\@glsnumberformat}%
+ #3%
+ {#1}{\@glo@counterprefix}{\@gls@counter}{\@glsnumberformat}%
{\@glsrecordlocref}%
\else
- \protected@write\@auxout{}{\string\glsxtr@record
- {\@gls@label}{\@glo@counterprefix}{\@gls@counter}{\@glsnumberformat}%
+ \@bibgls@write@aux{}{\string#2%
+ {#1}{\@glo@counterprefix}{\@gls@counter}{\@glsnumberformat}%
{\@glsrecordlocref}}%
\fi
\@glsxtr@counterrecordhook
@@ -245,21 +249,18 @@
{\@gls@label}{}{\@gls@counter}{\@glsnumberformat}%
{\theglsentrycounter}%
\else
- \protected@write\@auxout{}{\string\glsxtr@record
+ \@bibgls@write@aux{}{\string\glsxtr@record
{\@gls@label}{}{\@gls@counter}{\@glsnumberformat}%
{\theglsentrycounter}}%
\fi
\else
- \edef\@do@gls@getcounterprefix{\noexpand\@gls@getcounterprefix
- {\theglsentrycounter}{\theHglsentrycounter}%
- }%
- \@do@gls@getcounterprefix
+ \@xp@gls@getcounterprefix{\theglsentrycounter}{\theHglsentrycounter}%
\ifx\@glsxtr@record@setting\@glsxtr@record@setting@nameref
\@glsxtr@do@nameref@record
{\@gls@label}{\@glo@counterprefix}{\@gls@counter}%
{\@glsnumberformat}{\theglsentrycounter}%
\else
- \protected@write\@auxout{}{\string\glsxtr@record
+ \@bibgls@write@aux{}{\string\glsxtr@record
{\@gls@label}{\@glo@counterprefix}{\@gls@counter}{\@glsnumberformat}%
{\theglsentrycounter}}%
\fi
@@ -280,7 +281,7 @@
\newcommand*{\@glsxtr@do@nameref@record}[5]{%
\gls@ifnotmeasuring
{%
- \protected@write\@auxout{}{\string\glsxtr@record@nameref
+ \@bibgls@write@aux{}{\string\glsxtr@record@nameref
{#1}{#2}{#3}{#4}{#5}%
{\csuse{@currentlabelname}}{\csuse{@currentHref}}%
{\theHglsentrycounter}}%
@@ -300,7 +301,7 @@
\@@glsxtrwrglossmark
\def\@gls@xref{#2}%
\@onelevel@sanitize\@gls@xref
- \protected@write\@auxout{}{\string\glsxtr@recordsee{#1}{\@gls@xref}}%
+ \@bibgls@write@aux{}{\string\glsxtr@recordsee{#1}{\@gls@xref}}%
}
\newcommand{\printunsrtglossaryunit}{%
\print@noop@unsrtglossaryunit
@@ -452,6 +453,35 @@
}%
\fi
}
+\define@key{glossaries-extra.sty}{bibglsaux}{%
+ \glsxtrsetbibglsaux{#1}%
+}
+\newcommand{\glsxtrsetbibglsaux}[1]{%
+ \renewcommand{\@glsxtr@setup@bibglsaux}{\@@glsxtr@setup@bibglsaux{#1}}%
+}
+\newcommand{\@glsxtr@setup@bibglsaux}{%
+ \renewcommand{\glsxtrsetbibglsaux}[1]{%
+ \@@glsxtr@setup@bibglsaux{##1}%
+ }%
+}
+\AtBeginDocument{\@glsxtr@setup@bibglsaux}
+\newcommand{\@@glsxtr@setup@bibglsaux}[1]{%
+ \ifstrempty{#1}%
+ {\renewcommand{\@bibgls@write@aux}{\protected@write\@auxout}}%
+ {\@set@bibgls@write@aux{#1.aux}}%
+}
+\newcommand{\@bibgls@write@aux}{\protected@write\@auxout}
+\newcommand{\@set@bibgls@write@aux}[1]{%
+ \protected@write\@auxout{}%
+ {\string\providecommand{\string\@bibgls@input}[1]{}}%
+ \protected@write\@auxout{}{\string\@bibgls@input{#1}}%
+ \global\newwrite\@bibgls@auxout
+ \openout\@bibgls@auxout=#1
+ \AtEndDocument{\closeout\@bibgls@auxout}%
+ \gdef\@bibgls@write@aux{\protected@write\@bibgls@auxout}%
+ \gdef\@set@bibgls@write@aux##1{\GlossariesExtraWarning{repeated
+ invocation of bibglsaux option ignored}}%
+}
\newcommand*{\@glsxtr@docdefval}{0}
\newcommand*{\if@glsxtrdocdef}{\ifnum\@glsxtr@docdefval>0 }
\newcommand*{\@glsxtrdocdeftrue}{\def\@glsxtr@docdefval{1}}
@@ -570,59 +600,97 @@
\@glsxtr@declareoption{abbreviations}{%
\let\@glsxtr@abbreviationsdef\@glsxtr@doabbreviationsdef
}
+\newcommand{\shortcut@gls}{\cgls}
+\newcommand{\shortcut@glspl}{\cglspl}
+\newcommand{\shortcut@Gls}{\cGls}
+\newcommand{\shortcut@Glspl}{\cGlspl}
+\newcommand{\shortcut@GLS}{\cGLS}
+\newcommand{\shortcut@GLSpl}{\cGLSpl}
\newcommand*{\GlsXtrDefineAbbreviationShortcuts}{%
- \newcommand*{\ab}{\cgls}%
- \newcommand*{\abp}{\cglspl}%
+ \newcommand*{\ab}{\shortcut@gls}%
+ \newcommand*{\abp}{\shortcut@glspl}%
\newcommand*{\as}{\glsxtrshort}%
\newcommand*{\asp}{\glsxtrshortpl}%
\newcommand*{\al}{\glsxtrlong}%
\newcommand*{\alp}{\glsxtrlongpl}%
\newcommand*{\af}{\glsxtrfull}%
\newcommand*{\afp}{\glsxtrfullpl}%
- \newcommand*{\Ab}{\cGls}%
- \newcommand*{\Abp}{\cGlspl}%
+ \newcommand*{\Ab}{\shortcut@Gls}%
+ \newcommand*{\Abp}{\shortcut@Glspl}%
\newcommand*{\As}{\Glsxtrshort}%
\newcommand*{\Asp}{\Glsxtrshortpl}%
\newcommand*{\Al}{\Glsxtrlong}%
\newcommand*{\Alp}{\Glsxtrlongpl}%
\newcommand*{\Af}{\Glsxtrfull}%
\newcommand*{\Afp}{\Glsxtrfullpl}%
- \newcommand*{\AB}{\cGLS}%
- \newcommand*{\ABP}{\cGLSpl}%
+ \newcommand*{\AB}{\shortcut@GLS}%
+ \newcommand*{\ABP}{\shortcut@GLSpl}%
\newcommand*{\AS}{\GLSxtrshort}%
\newcommand*{\ASP}{\GLSxtrshortpl}%
\newcommand*{\AL}{\GLSxtrlong}%
\newcommand*{\ALP}{\GLSxtrlongpl}%
\newcommand*{\AF}{\GLSxtrfull}%
\newcommand*{\AFP}{\GLSxtrfullpl}%
+ \glsmfuaddmap{\ab}{\Ab}%
+ \glsmfublocker{\AB}%
+ \glsmfuaddmap{\abp}{\Abp}%
+ \glsmfublocker{\ABP}%
+ \glsmfuaddmap{\as}{\As}%
+ \glsmfublocker{\AS}%
+ \glsmfuaddmap{\asp}{\Asp}%
+ \glsmfublocker{\ASP}%
+ \glsmfuaddmap{\al}{\Al}%
+ \glsmfublocker{\AL}%
+ \glsmfuaddmap{\alp}{\Alp}%
+ \glsmfublocker{\ALP}%
+ \glsmfuaddmap{\af}{\Af}%
+ \glsmfublocker{\AF}%
+ \glsmfuaddmap{\afp}{\Afp}%
+ \glsmfublocker{\AFP}%
\providecommand*{\newabbr}{\newabbreviation}%
\let\GlsXtrDefineAbbreviationShortcuts\relax
}
\newcommand*{\GlsXtrDefineAcShortcuts}{%
- \newcommand*{\ac}{\cgls}%
- \newcommand*{\acp}{\cglspl}%
+ \newcommand*{\ac}{\shortcut@gls}%
+ \newcommand*{\acp}{\shortcut@glspl}%
\newcommand*{\acs}{\glsxtrshort}%
\newcommand*{\acsp}{\glsxtrshortpl}%
\newcommand*{\acl}{\glsxtrlong}%
\newcommand*{\aclp}{\glsxtrlongpl}%
\newcommand*{\acf}{\glsxtrfull}%
\newcommand*{\acfp}{\glsxtrfullpl}%
- \newcommand*{\Ac}{\cGls}%
- \newcommand*{\Acp}{\cGlspl}%
+ \newcommand*{\Ac}{\shortcut@Gls}%
+ \newcommand*{\Acp}{\shortcut@Glspl}%
\newcommand*{\Acs}{\Glsxtrshort}%
\newcommand*{\Acsp}{\Glsxtrshortpl}%
\newcommand*{\Acl}{\Glsxtrlong}%
\newcommand*{\Aclp}{\Glsxtrlongpl}%
\newcommand*{\Acf}{\Glsxtrfull}%
\newcommand*{\Acfp}{\Glsxtrfullpl}%
- \newcommand*{\AC}{\cGLS}%
- \newcommand*{\ACP}{\cGLSpl}%
+ \newcommand*{\AC}{\shortcut@GLS}%
+ \newcommand*{\ACP}{\shortcut@GLSpl}%
\newcommand*{\ACS}{\GLSxtrshort}%
\newcommand*{\ACSP}{\GLSxtrshortpl}%
\newcommand*{\ACL}{\GLSxtrlong}%
\newcommand*{\ACLP}{\GLSxtrlongpl}%
\newcommand*{\ACF}{\GLSxtrfull}%
\newcommand*{\ACFP}{\GLSxtrfullpl}%
+ \glsmfuaddmap{\ac}{\Ac}%
+ \glsmfublocker{\AC}%
+ \glsmfuaddmap{\acp}{\Acp}%
+ \glsmfublocker{\ACP}%
+ \glsmfuaddmap{\acs}{\Acs}%
+ \glsmfublocker{\ACS}%
+ \glsmfuaddmap{\acsp}{\Acsp}%
+ \glsmfublocker{\ACSP}%
+ \glsmfuaddmap{\acl}{\Acl}%
+ \glsmfublocker{\ACL}%
+ \glsmfuaddmap{\aclp}{\Aclp}%
+ \glsmfublocker{\ACLP}%
+ \glsmfuaddmap{\acf}{\Acf}%
+ \glsmfublocker{\ACF}%
+ \glsmfuaddmap{\acfp}{\Acfp}%
+ \glsmfublocker{\ACFP}%
\providecommand*{\newabbr}{\newabbreviation}%
\let\GlsXtrDefineAcShortcuts\relax
}
@@ -642,7 +710,7 @@
\newcommand*{\@glsxtr@shortcutsval}{\ifglsacrshortcuts acro\else none\fi}%
\define@choicekey{glossaries-extra.sty}{shortcuts}%
[\@glsxtr@shortcutsval\@glsxtr@shortcutsnr]%
- {acronyms,acro,abbreviations,abbr,other,all,true,ac,none,false}[true]{%
+ {acronyms,acro,abbreviations,abbr,other,all,true,ac,acother,abother,none,false}[true]{%
\ifcase\@glsxtr@shortcutsnr\relax % acronyms
\renewcommand*{\@glsxtr@setupshortcuts}{%
\glsacrshortcutstrue
@@ -684,6 +752,18 @@
\glsacrshortcutstrue
\GlsXtrDefineAcShortcuts
}%
+ \or % acother
+ \renewcommand*{\@glsxtr@setupshortcuts}{%
+ \glsacrshortcutstrue
+ \GlsXtrDefineAcShortcuts
+ \GlsXtrDefineOtherShortcuts
+ }%
+ \or % abother
+ \renewcommand*{\@glsxtr@setupshortcuts}{%
+ \glsacrshortcutstrue
+ \GlsXtrDefineAbbreviationShortcuts
+ \GlsXtrDefineOtherShortcuts
+ }%
\else % none, false
\renewcommand*{\@glsxtr@setupshortcuts}{}%
\fi
@@ -772,6 +852,7 @@
{%
\refstepcounter{wrglossary}%
\label{wrglossary.\thewrglossary}%
+ \@@glsxtrwrglosscountermark{\thewrglossary}%
}%
{}%
}%
@@ -787,27 +868,41 @@
\newcommand*{\@@glsxtrwrglossmark}{}
\AtBeginDocument{\renewcommand*{\@@glsxtrwrglossmark}{\@glsxtrwrglossmark}}
\newcommand*{\glsxtrwrglossmark}{\ensuremath{\cdot}}
+\newcommand*{\@glsxtrwrglosscountermark}[1]{}
+\newcommand*{\@@glsxtrwrglosscountermark}[1]{}
+\AtBeginDocument{\renewcommand*{\@@glsxtrwrglosscountermark}{\@glsxtrwrglosscountermark}}
+\newcommand*{\glsxtrwrglosscountermark}[1]{\glsshowtargetfonttext{[#1]}}
\newcommand\@glsxtr@doshowtarget[2]{#2}
+\newcommand*{\glsxtrundefdebug}[1]{}
+\newcommand*{\@glsxtrundefdebug}[1]{%
+ \if@gls@debug \glsshowtargetfonttext{[#1]}\fi
+}
\define@choicekey{glossaries-extra.sty}{debug}
[\@glsxtr@debugval\@glsxtr@debugnr]%
{true,false,showtargets,showwrgloss,all,showaccsupp}[true]{%
\ifcase\@glsxtr@debugnr\relax % true
\glsxtr@dooption{debug=true}%
\renewcommand*{\@glsxtrwrglossmark}{}%
+ \renewcommand*{\@glsxtrwrglosscountermark}[1]{}%
\or % false
\glsxtr@dooption{debug=false}%
\renewcommand*{\@glsxtrwrglossmark}{}%
- \let\@glsxtr@doshowtarget\@secondoftwo
+ \renewcommand*{\@glsxtrwrglosscountermark}[1]{}%
+ \let\@glsxtr@doshowtarget\@secondoftwo
\or % showtargets
\glsxtr@dooption{debug=showtargets}%
- \def\@glsxtr@doshowtarget{\@glsxtrshowtargetleft}%
+ \def\@glsxtr@doshowtarget{\@glsxtrshowtargetleft}%
\or % showwrgloss
\glsxtr@dooption{debug=true}%
\renewcommand*{\@glsxtrwrglossmark}{\glsxtrwrglossmark}%
+ \renewcommand*{\@glsxtrwrglosscountermark}{\glsxtrwrglosscountermark}%
\or % all
- \glsxtr@dooption{debug=showtargets,debug=showaccsupp}%
+ \glsxtr@dooption{debug=true,debug=showaccsupp}%
+ % debug=showwrgloss:
\renewcommand*{\@glsxtrwrglossmark}{\glsxtrwrglossmark}%
- \def\@glsxtr@doshowtarget{\@glsxtrshowtargetleft}%
+ \renewcommand*{\@glsxtrwrglosscountermark}{\glsxtrwrglosscountermark}%
+ % debug=showtargets:
+ \def\@glsxtr@doshowtarget{\@glsxtrshowtargetleft}%
\or % showaccsupp
\glsxtr@dooption{debug=showaccsupp}%
\fi
@@ -854,18 +949,90 @@
\def\@glsxtrshowtargetmark{\@glsshowtargetmarkfmt\glsxtrshowtargetsymbolleft}%
\fi
}
-\DeclareOptionX*{%
- \expandafter\glsxtr@dooption\expandafter{\CurrentOption}}
+\newcommand*{\glsxtr@processunknownoptions}{}
+\@ifpackageloaded{glossaries}
+{%
+ \DeclareOptionX*{%
+ \edef\glsxtr@processunknownoptions{%
+ \noexpand\setupglossaries{\expandonce\CurrentOption}}}
+}
+{%
+ \DeclareOptionX*{%
+ \expandafter\glsxtr@dooption\expandafter{\CurrentOption}}
+}
\ProcessOptionsX
\RequirePackage{glossaries}
+\glsxtr@processunknownoptions
\@glsxtr@doaccsupp
\@glsxtr@doloadprefix
\@glsxtr@defpostpunc
+\let\@glsxtr@org@indexingsetting\glsindexingsetting
+\providecommand{\glsindexingsetting}{\ifglsxindy xindy\else makeindex\fi}
+\ifx\@glsxtr@org@indexingsetting\glsindexingsetting
+ \renewcommand{\glsindexingsetting}{%
+ \@glsxtr@if@record@only{bib2gls}{\ifglsxindy xindy\else makeindex\fi}%
+ }
+\else
+ \@glsxtr@if@record@only{\renewcommand{\glsindexingsetting}{bib2gls}}{}%
+\fi
+\providecommand{\glssentencecase}[1]{\makefirstuc{#1}}
+\providecommand{\glslowercase}[1]{\MakeTextLowercase{#1}}
+\providecommand{\glsuppercase}[1]{\mfirstucMakeUppercase{#1}}
+\providecommand{\@Glsentryfield}[2]{%
+ \glstexorpdfstring{\@Gls@entry@field{#1}{#2}}%
+ {\MFUsentencecase{\@gls@entry@field{#1}{#2}}}%
+}
+\ifdef\glstexorpdfstring
+{}
+{
+ \ifdef\texorpdfstring
+ {\newcommand{\glstexorpdfstring}{\texorpdfstring}}
+ {\newcommand{\glstexorpdfstring}[2]{#1}}
+}
+\let\@glsxtr@org@MakeUppercase\MakeUppercase
+\ExplSyntaxOn
+\ifdef\MFUsentencecase
+{%
+ \providecommand{\glsmfuexcl}[1]{\MFUexcl{#1}}
+ \providecommand{\glsmfublocker}[1]{\MFUblocker{#1}}
+ \providecommand{\glsmfuaddmap}[2]{\MFUaddmap{#1}{#2}}
+ \newcommand{\@glsxtr@saveMakeUppercase}{}
+ \newcommand{\@glsxtr@restoreMakeUppercase}{}
+ \newcommand{\@glsxtr@assignMakeUppercase}{}
+}
+{
+ \providecommand{\MFUsentencecase}[1]{\text_titlecase_first:n{#1}}
+ \providecommand{\glsmfuexcl}[1]{
+ \tl_if_in:NnF \l_text_case_exclude_arg_tl {#1}
+ {
+ \tl_put_right:Nn \l_text_case_exclude_arg_tl {#1}
+ }
+ }
+ \providecommand{\glsmfublocker}[1]{\glsmfuexcl{#1}}
+ \providecommand{\glsmfuaddmap}[2]{\glsmfuexcl{#1}\glsmfublocker{#2}}
+ \newcommand{\@glsxtr@saveMakeUppercase}{%
+ \let\@glsxtr@org@MakeUppercase\MakeUppercase
+ }
+ \newcommand{\@glsxtr@restoreMakeUppercase}{%
+ \let\MakeUppercase\@glsxtr@org@MakeUppercase
+ }
+ \newcommand{\@glsxtr@assignMakeUppercase}{%
+ \let\MakeUppercase\MakeTextUppercase
+ }
+}
+\ExplSyntaxOff
\def\glsdoshowtarget{\@glsxtr@doshowtarget}
-\newcommand{\glsxtrshowtargetsymbolright}{{\tiny$\triangleleft$}}%
-\newcommand{\glsxtrshowtargetsymbolleft}{{\tiny$\triangleright$}}%
-\providecommand*{\glsshowtargetinner}[1]{{\glsshowtargetfont [#1]}}
+\newcommand{\glsxtrshowtargetsymbolright}{%
+ \ifmmode \mbox{\tiny$\triangleleft$}\else {\tiny$\triangleleft$}\fi
+}
+\newcommand{\glsxtrshowtargetsymbolleft}{%
+ \ifmmode \mbox{\tiny$\triangleright$}\else {\tiny$\triangleright$}\fi
+}
+\providecommand*{\glsshowtargetinner}[1]{\glsshowtargetfonttext{[#1]}}
\providecommand*{\glsshowtargetfont}{\ttfamily\footnotesize}
+\providecommand*{\glsshowtargetfonttext}[1]{%
+ \ifmmode \nfss@text{\glsshowtargetfont #1}\else {\glsshowtargetfont #1}\fi
+}
\newcommand*{\glsshowtargetinnersymleft}[1]{%
\glsshowtargetinner{#1}\allowbreak\glsxtrshowtargetsymbolleft}
\newcommand*{\glsshowtargetinnersymright}[1]{%
@@ -955,8 +1122,18 @@
}
\let\glsxtr@saveentrycounter\@gls@saveentrycounter
\let\@gls@saveentrycounter\glsxtr@indexonly@saveentrycounter
+\providecommand*\@xp@gls@getcounterprefix[2]{%
+ \bgroup
+ \glswrglossdisableanchorcmds
+ \protected@edef\@do@gls@getcounterprefix{%
+ \noexpand\egroup
+ \noexpand\@gls@getcounterprefix{#1}{#2}%
+ }%
+ \@do@gls@getcounterprefix
+}
+\providecommand{\glswrglossdisableanchorcmds}{\let\glstexorpdfstring\@secondoftwo}
\renewcommand*\@gls@getcounterprefix[2]{%
- \protected@edef\@gls@thisloc{#1}\protected@edef\@gls@thisHloc{#2}%
+ \def\@gls@thisloc{#1}\def\@gls@thisHloc{#2}%
\ifx\@gls@thisloc\@gls@thisHloc
\def\@glo@counterprefix{}%
\else
@@ -988,6 +1165,7 @@
\glsxtr@setup@record
\AtBeginDocument{%
\disable@keys{glossaries-extra.sty}{abbreviations,docdef,record}%
+ \def\glsxtrundefdebug{\@glsxtrundefdebug}%
\def\@glsxtrundeftag{\glsxtrundeftag}%
}
\newcommand*{\GlsXtrIfUnusedOrUndefined}[3]{%
@@ -1018,6 +1196,19 @@
#2%
}%
}
+\newcommand*{\GlsXtrIfInGlossary}[4]{%
+ \ifcsdef{glolist@#2}%
+ {%
+ \protected@edef\@glsxtr@tmp{#1}%
+ \letcs\@glsxtr@tmplist{glolist@#2}%
+ \expandafter\DTLifinlist\expandafter{\@glsxtr@tmp}{\@glsxtr@tmplist}%
+ {#3}{#4}%
+ }%
+ {%
+ \glsxtrundefaction{Glossary type `#1' doesn't exist}{}%
+ #4%
+ }%
+}
\newcommand*{\glsxtrifkeydefined}[3]{%
\key@ifundefined{glossentry}{#1}{#3}{#2}%
}
@@ -1091,15 +1282,16 @@
}%
\endgroup
}
-\newcommand{\glsxtrfmtdisplay}[3]{\csuse{#1}{#2}#3}
-\ifdef\texorpdfstring
-{
- \newcommand*{\glsxtrentryfmt}[2]{%
- \texorpdfstring{\@glsxtrentryfmt{#1}{#2}}{\glsxtrpdfentryfmt{#1}{#2}}%
- }
+\newrobustcmd*{\Glsxtrfmt}{\@ifstar\s@Glsxtrfmt\@Glsxtrfmt}
+\glsmfuaddmap{\glsxtrfmt}{\Glsxtrfmt}
+\newcommand*{\@Glsxtrfmt}[3][]{\@@glsxtrfmt{#1}{#2}{\glssentencecase{#3}}{}}
+\newcommand*{\s@Glsxtrfmt}[3][]{%
+ \new@ifnextchar[{\s@@glsxtrfmt{#1}{#2}{\glssentencecase{#3}}}%
+ {\@@glsxtrfmt{#1}{#2}{\glssentencecase{#3}}{}}%
}
-{
- \newcommand*{\glsxtrentryfmt}{\@glsxtrentryfmt}
+\newcommand{\glsxtrfmtdisplay}[3]{\csuse{#1}{#2}#3}
+\newcommand*{\glsxtrentryfmt}[2]{%
+ \glstexorpdfstring{\@glsxtrentryfmt{#1}{#2}}{\glsxtrpdfentryfmt{#1}{#2}}%
}
\newcommand*{\glsxtrpdfentryfmt}[2]{#2}
\newrobustcmd*{\@glsxtrentryfmt}[2]{%
@@ -1116,6 +1308,13 @@
{#2}%
}%
}
+\newcommand*{\Glsxtrentryfmt}[2]{%
+ \glstexorpdfstring
+ {\@glsxtrentryfmt{#1}{\glssentencecase{#2}}}%
+ {\Glsxtrpdfentryfmt{#1}{#2}}%
+}
+\glsmfuaddmap{\glsxtrentryfmt}{\Glsxtrentryfmt}
+\newcommand*{\Glsxtrpdfentryfmt}[2]{\MFUsentencecase{#2}}
\newcommand*{\glsxtrfieldlistadd}[3]{%
\listcsadd{glo@\glsdetoklabel{#1}@#2}{#3}%
}
@@ -1294,32 +1493,14 @@
\newcommand*{\glsxtrusefield}[2]{%
\@gls@entry@field{#1}{#2}%
}
-\ifdef\texorpdfstring
-{
- \newcommand*{\Glsxtrusefield}[2]{%
- \texorpdfstring
- {\@Gls@entry@field{#1}{#2}}
- {\@gls@entry@field{#1}{#2}}%
- }
-}
-{
- \newcommand*{\Glsxtrusefield}[2]{%
- \@Gls@entry@field{#1}{#2}%
- }
+\newcommand*{\Glsxtrusefield}[2]{%
+ \@Glsentryfield{#1}{#2}%
}
-\ifdef\texorpdfstring
-{
- \newcommand*{\GLSxtrusefield}[2]{%
- \texorpdfstring
- {\glsdoifexists{#1}{\mfirstucMakeUppercase{\@gls@entry@field{#1}{#2}}}}%
- {\@gls@entry@field{#1}{#2}}%
- }
-}
-{
- \newcommand*{\GLSxtrusefield}[2]{%
- \glsdoifexists{#1}{\mfirstucMakeUppercase{\@gls@entry@field{#1}{#2}}}%
- }
+\glsmfuaddmap{\glsxtrusefield}{\Glsxtrusefield}
+\newcommand*{\GLSxtrusefield}[2]{%
+ \glsuppercase{\csuse{glo@\glsdetoklabel{#1}@#2}}%
}
+\glsmfublocker{\GLSxtrusefield}
\newcommand*{\glsxtrentryparentname}[1]{%
\ifcsdef{glo@\glsdetoklabel{#1}@parent}%
{\csuse{glo@\csuse{glo@\glsdetoklabel{#1}@parent}@name}}%
@@ -1337,7 +1518,7 @@
\glsxtrsetfieldifexists{#1}{#2}%
{\csdef{glo@\glsdetoklabel{#1}@#2}{#3}}%
}
-\newrobustcmd*{\GlstrLetField}[3]{%
+\newrobustcmd*{\GlsXtrLetField}[3]{%
\glsxtrsetfieldifexists{#1}{#2}%
{\cslet{glo@\glsdetoklabel{#1}@#2}{#3}}%
}
@@ -1545,6 +1726,19 @@
\GlossariesExtraWarning{Glossary `#1' is not defined}%
}%
}
+\renewcommand*{\@p@glossarysection}[2]{%
+ \glsclearpage
+ \ifdefempty\@@glossarysecstar
+ {%
+ \csname\@@glossarysec\endcsname{#2}%
+ }%
+ {%
+ \phantomsection
+ \@gls@toc{#1}{\@@glossarysec}%
+ \csname\@@glossarysec\endcsname*{#2}%
+ }%
+ \@@glossaryseclabel
+}
\ifdef\@gls@entry@field
{
\renewcommand*{\@gls@entry@field}[2]{\csuse{glo@\glsdetoklabel{#1}@#2}}
@@ -1553,6 +1747,70 @@
\renewcommand*{\ifglsused}[3]{%
\glsdoifexists{#1}{\ifbool{glo@\glsdetoklabel{#1}@flag}{#2}{#3}}%
}
+\renewcommand{\@@gls@noexpand@field}[3]{%
+ \glsifcategoryattributehasitem{\@glo@category}{encapnocaseinnerfmt}{#2}%
+ {%
+ \csxdef{glo@#1@#2}{\noexpand\NoCaseChange{\noexpand\glsxtrgenentrytextfmt
+ {\expandonce{#3}}}}%
+ \glsexclapplyinnerfmtfield{#1}{#2}%
+ }%
+ {%
+ \glsifcategoryattributehasitem{\@glo@category}{encapnocase}{#2}%
+ {%
+ \glsifcategoryattributehasitem{\@glo@category}{encapinnerfmt}{#2}%
+ {%
+ \csxdef{glo@#1@#2}{\noexpand\NoCaseChange{\noexpand\glsxtrgenentrytextfmt
+ {\expandonce{#3}}}}%
+ \glsexclapplyinnerfmtfield{#1}{#2}%
+ }%
+ {%
+ \csxdef{glo@#1@#2}{\noexpand\NoCaseChange{\expandonce{#3}}}%
+ }%
+ }%
+ {%
+ \glsifcategoryattributehasitem{\@glo@category}{encapinnerfmt}{#2}%
+ {%
+ \csxdef{glo@#1@#2}{\noexpand\glsxtrgenentrytextfmt{\expandonce{#3}}}%
+ \glsexclapplyinnerfmtfield{#1}{#2}%
+ }%
+ {%
+ \expandafter\global\expandafter\let\csname glo@#1@#2\endcsname#3%
+ }%
+ }%
+ }%
+}
+\renewcommand{\@@gls@expand@field}[3]{%
+ \glsifcategoryattributehasitem{\@glo@category}{encapnocaseinnerfmt}{#2}%
+ {%
+ \protected@csxdef{glo@#1@#2}{\noexpand\NoCaseChange
+ {\noexpand\glsxtrgenentrytextfmt{#3}}}%
+ \glsexclapplyinnerfmtfield{#1}{#2}%
+ }%
+ {%
+ \glsifcategoryattributehasitem{\@glo@category}{encapnocase}{#2}%
+ {%
+ \glsifcategoryattributehasitem{\@glo@category}{encapinnerfmt}{#2}%
+ {%
+ \protected@csxdef{glo@#1@#2}{\noexpand\NoCaseChange
+ {\noexpand\glsxtrgenentrytextfmt{#3}}}%
+ \glsexclapplyinnerfmtfield{#1}{#2}%
+ }%
+ {%
+ \protected@csxdef{glo@#1@#2}{\noexpand\NoCaseChange{#3}}%
+ }%
+ }%
+ {%
+ \glsifcategoryattributehasitem{\@glo@category}{encapinnerfmt}{#2}%
+ {%
+ \protected@csxdef{glo@#1@#2}{\noexpand\glsxtrgenentrytextfmt{#3}}%
+ \glsexclapplyinnerfmtfield{#1}{#2}%
+ }%
+ {%
+ \protected@csxdef{glo@#1@#2}{#3}%
+ }%
+ }%
+ }%
+}
\renewcommand*{\longnewglossaryentry}{%
\@ifstar\@glsxtr@s@longnewglossaryentry\@glsxtr@longnewglossaryentry
}
@@ -1712,7 +1970,10 @@
{}%
}%
}
-\newcommand*{\glsxtrcopytoglossary}[2]{%
+\newcommand*{\glsxtrcopytoglossary}{%
+ \@ifstar\s@glsxtrcopytoglossary\@glsxtrcopytoglossary
+}
+\newcommand*{\@glsxtrcopytoglossary}[2]{%
\glsdoifexists{#1}%
{%
\ifcsdef{glolist@#2}
@@ -1724,19 +1985,35 @@
}%
}%
}
-\renewcommand{\glsdoifexists}[2]{%
- \ifglsentryexists{#1}{#2}%
+\newcommand*{\s@glsxtrcopytoglossary}[2]{%
+ \glsdoifexists{#1}%
{%
- \protected@edef\glslabel{\glsdetoklabel{#1}}%
- \glsxtrundefaction{Glossary entry `\glslabel'
- has not been defined}{You need to define a glossary entry before
- you can reference it.}%
+ \ifcsdef{glolist@#2}
+ {%
+ \protected@csxappto{glolist@#2}{#1,}%
+ }%
+ {%
+ \glsxtrundefaction{Glossary type `#2' doesn't exist}{}%
+ }%
}%
}
+\renewcommand{\glsdoifexists}[2]{%
+ \ifglsentryexists{#1}{#2}{\glsxtr@doifexists{#1}}%
+}
+\newrobustcmd{\glsxtr@doifexists}[1]{%
+ \protected@edef\glslabel{\glsdetoklabel{#1}}%
+ \expandafter\glsxtrundefdebug\expandafter
+ {\expandafter\detokenize\expandafter{\glslabel}}%
+ \glsxtrundefaction{Glossary entry `\glslabel'
+ has not been defined}{You need to define a glossary entry before
+ you can reference it.}%
+}
\renewcommand{\glsdoifnoexists}[2]{%
- \ifglsentryexists{#1}{%
- \glsxtrundefaction{Glossary entry `\glsdetoklabel{#1}'
- has already been defined}{}}{#2}%
+ \ifglsentryexists{#1}{\glsxtr@doifnoexists{#1}}{#2}%
+}
+\newrobustcmd{\glsxtr@doifnoexists}[1]{%
+ \glsxtrundefaction{Glossary entry `\glsdetoklabel{#1}'
+ has already been defined}%
}
\ifdef\glsdoifexistsordo
{%
@@ -1796,6 +2073,44 @@
}%
}
\appto\@gls@keymap{,{see}{see}}
+\newcommand*{\glsxtrseelistsencap}[1]{\space #1}
+\newcommand*{\glsxtrseelistsdelim}{, }
+\newcommand*{\glsxtrseelists}[1]{%
+ \glsdoifexists{#1}%
+ {%
+ \def\@glsxtr@seelists{}%
+ \letcs{\@glo@see}{glo@\glsdetoklabel{#1}@see}%
+ \ifdefempty\@glo@see
+ {}%
+ {%
+ \protected@edef\@glsxtr@seelists{%
+ \noexpand\glsxtr@usesee\@glo@see\noexpand\@end@glsxtr@usesee
+ }%
+ }%
+ \letcs{\@glo@see}{glo@\glsdetoklabel{#1}@seealso}%
+ \ifdefempty\@glo@see
+ {}%
+ {%
+ \ifdefempty\@glsxtr@seelists{}%
+ {\appto\@glsxtr@seelists{\glsxtrseelistsdelim}}%
+ \protected@edef\@glsxtr@seelists{%
+ \noexpand\glsxtruseseealsoformat{\@glo@see}%
+ }%
+ }%
+ \letcs{\@glo@see}{glo@\glsdetoklabel{#1}@alias}%
+ \ifdefempty\@glo@see
+ {}%
+ {%
+ \ifdefempty\@glsxtr@seelists{}%
+ {\appto\@glsxtr@seelists{\glsxtrseelistsdelim}}%
+ \protected@edef\@glsxtr@seelists{%
+ \noexpand\glsxtruseseeformat{\noexpand\seename}{\@glo@see}%
+ }%
+ }%
+ \ifdefempty\@glsxtr@seelists{}%
+ {\glsxtrseelistsencap\@glsxtr@seelists}%
+ }%
+}
\newcommand*{\glsxtrusesee}[1]{%
\glsdoifexists{#1}%
{%
@@ -1820,54 +2135,88 @@
\ifglshasshort{#1}{\glsfmttext{#1}}{\glsfmtname{#1}}%
}
\newcommand*{\glsxtrhiername}[1]{%
+ \glstexorpdfstring
+ {\@glsxtrhiername{#1}}%
+ {\glsentryname{#1}}%
+}
+\newrobustcmd*{\@glsxtrhiername}[1]{%
\glsdoifexists{#1}%
{%
\glsxtrifhasfield{parent}{#1}%
- {\glsxtrhiername{\glscurrentfieldvalue}\glsxtrhiernamesep}%
+ {\expandafter\glsxtrhiername\expandafter
+ {\glscurrentfieldvalue}\glsxtrhiernamesep}%
{}%
\ifglshasshort{#1}{\glsfmttext{#1}}{\glsfmtname{#1}}%
}%
}
\newcommand*{\Glsxtrhiername}[1]{%
+ \glstexorpdfstring
+ {\@Glsxtrhiername{#1}}%
+ {\MFUsentencecase{\glsentryname{#1}}}%
+}
+\newrobustcmd*{\@Glsxtrhiername}[1]{%
\glsdoifexists{#1}%
{%
\glsxtrifhasfield{parent}{#1}%
{%
- \Glsxtrhiername{\glscurrentfieldvalue}\glsxtrhiernamesep
+ \expandafter\Glsxtrhiername\expandafter
+ {\glscurrentfieldvalue}\glsxtrhiernamesep
\ifglshasshort{#1}{\glsfmttext{#1}}{\glsfmtname{#1}}%
}%
{\ifglshasshort{#1}{\Glsfmttext{#1}}{\Glsfmtname{#1}}}%
}%
}
+\glsmfuaddmap{\glsxtrhiername}{\Glsxtrhiername}
\newcommand*{\GlsXtrhiername}[1]{%
+ \glstexorpdfstring
+ {\@GlsXtrhiername{#1}}%
+ {\glsentryname{#1}}%
+}
+\newrobustcmd*{\@GlsXtrhiername}[1]{%
\glsdoifexists{#1}%
{%
\glsxtrifhasfield{parent}{#1}%
- {\GlsXtrhiername{\glscurrentfieldvalue}\glsxtrhiernamesep}%
+ {\expandafter\GlsXtrhiername\expandafter
+ {\glscurrentfieldvalue}\glsxtrhiernamesep}%
{}%
\ifglshasshort{#1}{\Glsfmttext{#1}}{\Glsfmtname{#1}}%
}%
}
+\glsmfublocker{\GlsXtrhiername}
\newcommand*{\GLSxtrhiername}[1]{%
+ \glstexorpdfstring
+ {\@GLSxtrhiername{#1}}%
+ {\GLSxtrusefield{#1}{name}}%
+}
+\newrobustcmd*{\@GLSxtrhiername}[1]{%
\glsdoifexists{#1}%
{%
\glsxtrifhasfield{parent}{#1}%
{%
- \GLSxtrhiername{\glscurrentfieldvalue}\glsxtrhiernamesep
+ \expandafter\GLSxtrhiername\expandafter
+ {\glscurrentfieldvalue}\glsxtrhiernamesep
\ifglshasshort{#1}{\glsfmttext{#1}}{\glsfmtname{#1}}%
}%
{\ifglshasshort{#1}{\GLSfmttext{#1}}{\GLSfmtname{#1}}}%
}%
}
+\glsmfublocker{\GLSxtrhiername}
\newcommand*{\GLSXTRhiername}[1]{%
- \glsdoifexists{#1}%
- {%
- \glsxtrifhasfield{parent}{#1}%
- {\GLSXTRhiername{\glscurrentfieldvalue}\glsxtrhiernamesep}%
- {}
- \ifglshasshort{#1}{\GLSfmttext{#1}}{\GLSfmtname{#1}}%
- }%
+ \glstexorpdfstring
+ {\@GLSXTRhiername{#1}}%
+ {\GLSxtrusefield{#1}{name}}%
+}
+\newrobustcmd*{\@GLSXTRhiername}[1]{%
+ \glsdoifexists{#1}%
+ {%
+ \glsxtrifhasfield{parent}{#1}%
+ {\expandafter\GLSXTRhiername\expandafter
+ {\glscurrentfieldvalue}\glsxtrhiernamesep}%
+ {}%
+ \ifglshasshort{#1}{\GLSfmttext{#1}}{\GLSfmtname{#1}}%
+ }%
}
+\glsmfublocker{\GLSXTRhiername}
\newcommand*{\glsxtrhiernamesep}{\,{\small$\triangleright$}\,}
\newcommand*{\glsxtruseseealso}[1]{%
\glsdoifexists{#1}%
@@ -1915,6 +2264,43 @@
\let\@glsseelastsep\glsseelastoxfordsep
}%
}
+\newcommand{\glsxtrtaggedlistsep}{\space}
+\newrobustcmd*{\glsxtrtaggedlist}[4]{%
+ \begingroup
+ \protected@edef\@gls@taggedlist@labels{#4}%
+ \let\@gls@dolast\relax
+ \let\@gls@donext\relax
+ \let\@glsseeitem\@glsxtr@seefirstitem
+ \let\@glsseelastsep\glsseelastsep
+ \def\@gls@taggedlist@content{}%
+ \let\@gls@taggedlist@tag\relax
+ \@for\@gls@thislabel:=\@gls@taggedlist@labels\do{%
+ \ifx\@xfor@nextelement\@nnil
+ \ifx\@gls@dolast\relax
+ \else
+ \eappto\@gls@taggedlist@content{\expandonce\@gls@dolast}%
+ \fi
+ \else
+ \ifx\@gls@dolast\relax
+ \else
+ \eappto\@gls@taggedlist@content{\expandonce\@gls@donext}%
+ \fi
+ \fi
+ \protected@eappto\@gls@taggedlist@content{\noexpand\@glsseeitem
+ {#3\@gls@thislabel}}%
+ \let\@gls@dolast\@glsseelastsep
+ \let\@gls@donext\glsseesep
+ \let\@glsseeitem\@glsxtr@seeitem
+ \let\@glsseelastsep\glsseelastoxfordsep
+ \ifx\@gls@taggedlist@tag\relax
+ \def\@gls@taggedlist@tag{#1\glsxtrtaggedlistsep}%
+ \else
+ \def\@gls@taggedlist@tag{#2\glsxtrtaggedlistsep}%
+ \fi
+ }%
+ \@gls@taggedlist@tag\@gls@taggedlist@content
+ \endgroup
+}
\newcommand*{\@glsxtr@seeitem}[1]{%
\glsxtrifmulti{#1}{\mglsseeitem{#1}}{\glsseeitem{#1}}%
}
@@ -1942,21 +2328,24 @@
}
\appto\@xdylocationclassorder{\space\string"seealso\string"}
\newrobustcmd*{\glsxtrindexseealso}[2]{%
- \ifx\@glsxtr@record@setting\@glsxtr@record@setting@alsoindex
- \@glsxtr@recordsee{#1}{#2}%
- \fi
- \glsdoifexists{#1}%
+ \glsxtr@wrglossary@encap{#1}
{%
- \@@glsxtrwrglossmark
- \def\@gls@xref{#2}%
- \@onelevel@sanitize\@gls@xref
- \@gls@checkmkidxchars\@gls@xref
- \gls@glossary{\csname glo@#1@type\endcsname}{%
- (indexentry
- :tkey (\csname glo@#1@index\endcsname)
- :xref (\string"\@gls@xref\string")
- :attr \string"seealso\string"
- )
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@alsoindex
+ \@glsxtr@recordsee{#1}{#2}%
+ \fi
+ \glsdoifexists{#1}%
+ {%
+ \@@glsxtrwrglossmark
+ \def\@gls@xref{#2}%
+ \@onelevel@sanitize\@gls@xref
+ \@gls@checkmkidxchars\@gls@xref
+ \gls@glossary{\csname glo@#1@type\endcsname}{%
+ (indexentry
+ :tkey (\csname glo@#1@index\endcsname)
+ :xref (\string"\@gls@xref\string")
+ :attr \string"seealso\string"
+ )
+ }%
}%
}%
}
@@ -1987,6 +2376,7 @@
{\csxdef{glo@\@glo@label @alias}{}}%
{%
\csxdef{glo@\@glo@label @alias}{\@glo@alias}%
+ \glsxtraliashook{\@glo@label}%
}%
}
\newcommand*{\glsxtralias}[1]{\@gls@entry@field{#1}{alias}}
@@ -2007,6 +2397,7 @@
{%
\protected@edef\@do@glssee{\noexpand\glssee{\@glo@label}{\@glo@alias}}%
\@do@glssee
+ \glsxtraliashook{\@glo@label}%
}%
{}%
}%
@@ -2037,17 +2428,18 @@
}%
}
}
+\newcommand*{\glsxtraliashook}[1]{}
\AtEndDocument{\if@glsxtrindexcrossrefs\glsxtraddallcrossrefs\fi}
\newcommand*{\glsxtraddallcrossrefs}{%
\forallglossaries{\@glo@type}%
{%
\forglsentries[\@glo@type]{\@glo@label}%
{%
- \ifglsused{\@glo@label}%
- {\expandafter\@glsxtr@addunusedxrefs\expandafter{\@glo@label}}{}%
+ \ifglsused{\@glo@label}{\glsxtraddunusedxrefs{\@glo@label}}{}%
}%
}%
}
+\newcommand*{\glsxtraddunusedxrefs}[1]{\expandafter\@glsxtr@addunusedxrefs\expandafter{#1}}
\newcommand*{\@glsxtr@addunusedxrefs}[1]{%
\letcs{\@glo@see}{glo@\glsdetoklabel{#1}@see}%
\ifdefvoid\@glo@see
@@ -2122,6 +2514,7 @@
}
\let\glsxtr@orgmakenoidxglossaries\makenoidxglossaries
\renewcommand{\makenoidxglossaries}{%
+ \def\glsindexingsetting{noidx}%
\@domakeglossaries
{%
\ifdefequal\@glsxtr@record@setting\@glsxtr@record@setting@off
@@ -2162,8 +2555,17 @@
{You may only use \string\makenoidxglossaries\ space with the
record=off option}%
}%
+ \let\gls@warn@noidx@incompatible\@gls@warn@noidx@incompatible
}%
}
+\newcommand*{\gls@warn@noidx@incompatible}[2]{}
+\newcommand*{\@gls@warn@noidx@incompatible}[2]{%
+ #2\GlossariesExtraWarning{#1\space is incompatible with \string\makenoidxglossaries}%
+}
+\newcommand*{\gls@warn@noidxmakegloss@incompatible}[2]{%
+ \gls@warn@noidx@incompatible{#1}{#2}%
+ \gls@warn@makegloss@incompatible{#1}{#2}%
+}
\renewcommand*{\gls@defdocnewglossaryentry}{%
\ifcase\@glsxtr@docdefval
\renewcommand*{\newglossaryentry}[2]{%
@@ -2227,6 +2629,7 @@
\def\glsxtr@keylist{##1}%
\@Glsxtr
}
+ \glsmfuaddmap{\glsxtr}{\Glsxtr}
\newcommand*{\@Glsxtr}[2][]{%
\ifglsentryexists{##2}%
{%
@@ -2257,6 +2660,7 @@
\def\glsxtr@keylist{##1}%
\@Glsxtrpl
}
+ \glsmfuaddmap{\glsxtrpl}{\Glsxtrpl}
\newcommand*{\@Glsxtrpl}[2][]{%
\ifglsentryexists{##2}
{%
@@ -2299,12 +2703,16 @@
}
\@onlypreamble\GlsXtrEnableOnTheFly
\newcommand*{\@glsxtr@current@style}{\@glossary@default@style}
+\newcommand{\glsxtrpreglossarystyle}{%
+ \renewcommand*{\glssubgroupheading}[4]{\glsgroupheading{##4}}%
+}
\renewcommand*{\setglossarystyle}[1]{%
\ifcsundef{@glsstyle@#1}%
{%
\PackageError{glossaries-extra}{Glossary style `#1' undefined}{}%
}%
{%
+ \glsxtrpreglossarystyle
\csname @glsstyle@#1\endcsname
\protected@edef\@glsxtr@current@style{#1}%
}%
@@ -2455,12 +2863,234 @@
}
\newcommand*{\glsxtrregularfont}[1]{#1}
\newcommand*{\glsxtrabbreviationfont}[1]{#1}
+\newcommand{\glsxtrdefaultentrytextfmt}[1]{#1}
+\newcommand{\glsxtrattrentrytextfmt}[1]{%
+ \glshasattribute{\glslabel}{innertextformat}%
+ {%
+ \csuse{\glsgetattribute{\glslabel}{innertextformat}}{#1}%
+ }%
+ {#1}%
+}
+\newcommand*{\glsxtrgenentrytextfmt}{\glsxtrdefaultentrytextfmt}
+\newcommand*{\glsfmtfield}[4]{%
+ \expandafter\expandafter\expandafter
+ #2\expandafter\expandafter\expandafter
+ {\csname glo@\glsdetoklabel{#3}@#4\endcsname #1}%
+}
+\newcommand*{\Glsfmtfield}[4]{%
+ \ifx#2\@firstofone
+ \expandafter\expandafter\expandafter
+ \glssentencecase\expandafter\expandafter\expandafter
+ {%
+ \csname glo@\glsdetoklabel{#3}@#4\endcsname #1%
+ }%
+ \else
+ \expandafter\expandafter\expandafter
+ \glssentencecase\expandafter\expandafter\expandafter
+ {%
+ \expandafter\expandafter\expandafter
+ #2\expandafter\expandafter\expandafter
+ {\csname glo@\glsdetoklabel{#3}@#4\endcsname #1}%
+ }%
+ \fi
+}
+\glsmfuaddmap{\glsfmtfield}{\Glsfmtfield}
+\newcommand*{\GLSfmtfield}[4]{%
+ \ifx#2\@firstofone
+ \expandafter\expandafter\expandafter
+ \glsuppercase\expandafter\expandafter\expandafter
+ {%
+ \csname glo@\glsdetoklabel{#3}@#4\endcsname #1%
+ }%
+ \else
+ \expandafter\expandafter\expandafter
+ \glsuppercase\expandafter\expandafter\expandafter
+ {%
+ \expandafter\expandafter\expandafter
+ #2\expandafter\expandafter\expandafter
+ {\csname glo@\glsdetoklabel{#3}@#4\endcsname #1}%
+ }%
+ \fi
+}
+\glsmfublocker{\GLSfmtfield}
+\newcommand*{\glsfmtinsert}{%
+ \ifdefempty\glsinsert{}%
+ {\expandafter\glsxtrgenentrytextfmt\expandafter{\glsinsert}}%
+}
+\newcommand*{\GLSfmtinsert}{%
+ \ifdefempty\glsinsert{}%
+ {%
+ \expandafter\glsuppercase\expandafter
+ {\expandafter\glsxtrgenentrytextfmt\expandafter{\glsinsert}}%
+ }%
+}
+\newcommand*{\glsifapplyinnerfmtfield}[4]{%
+ \ifcsundef{@glo@\glsdetoklabel{#1}@innerfmt@fields}%
+ {#3}%
+ {\xifinlistcs{#2}{@glo@\glsdetoklabel{#1}@innerfmt@fields}{#4}{#3}}%
+}
+\newcommand*{\glsexclapplyinnerfmtfield}[2]{%
+ \listcseadd{@glo@\glsdetoklabel{#1}@innerfmt@fields}{#2}%
+}
+\renewcommand*{\glsgenentryfmt}{%
+ \ifdefempty\glscustomtext
+ {%
+ \glsifplural
+ {%
+ \glscapscase
+ {%
+ \ifglsused\glslabel
+ {%
+ \glsifapplyinnerfmtfield{\glslabel}{plural}%
+ {%
+ \expandafter\glsaccessfmtplural\expandafter{\glsinsert}%
+ {\glsxtrgenentrytextfmt}{\glslabel}%
+ }%
+ {\glsaccessplural{\glslabel}\glsfmtinsert}%
+ }%
+ {%
+ \glsifapplyinnerfmtfield{\glslabel}{firstpl}%
+ {%
+ \expandafter\glsaccessfmtfirstplural\expandafter{\glsinsert}%
+ {\glsxtrgenentrytextfmt}{\glslabel}%
+ }%
+ {\glsaccessfirstplural{\glslabel}\glsfmtinsert}%
+ }%
+ }%
+ {%
+ \ifglsused\glslabel
+ {%
+ \glsifapplyinnerfmtfield{\glslabel}{plural}%
+ {%
+ \expandafter\Glsaccessfmtplural\expandafter
+ {\glsinsert}{\glsxtrgenentrytextfmt}{\glslabel}%
+ }%
+ {\Glsaccessplural{\glslabel}\glsfmtinsert}%
+ }%
+ {%
+ \glsifapplyinnerfmtfield{\glslabel}{firstpl}%
+ {%
+ \expandafter\Glsaccessfmtfirstplural\expandafter
+ {\glsinsert}{\glsxtrgenentrytextfmt}{\glslabel}%
+ }%
+ {\Glsaccessfirstplural{\glslabel}\glsfmtinsert}%
+ }%
+ }%
+ {%
+ \ifglsused\glslabel
+ {%
+ \glsifapplyinnerfmtfield{\glslabel}{plural}%
+ {%
+ \expandafter\GLSaccessfmtplural\expandafter
+ {\glsinsert}{\glsxtrgenentrytextfmt}{\glslabel}%
+ }%
+ {\GLSaccessplural{\glslabel}\GLSfmtinsert}%
+ }%
+ {%
+ \glsifapplyinnerfmtfield{\glslabel}{firstpl}%
+ {%
+ \expandafter\GLSaccessfmtfirstplural\expandafter
+ {\glsinsert}{\glsxtrgenentrytextfmt}{\glslabel}%
+ }%
+ {\GLSaccessfirstplural{\glslabel}\GLSfmtinsert}%
+ }%
+ }%
+ }%
+ {%
+ \glscapscase
+ {%
+ \ifglsused\glslabel
+ {%
+ \glsifapplyinnerfmtfield{\glslabel}{text}%
+ {%
+ \expandafter\glsaccessfmttext\expandafter
+ {\glsinsert}{\glsxtrgenentrytextfmt}{\glslabel}%
+ }%
+ {\glsaccesstext{\glslabel}\glsfmtinsert}%
+ }%
+ {%
+ \glsifapplyinnerfmtfield{\glslabel}{first}%
+ {%
+ \expandafter\glsaccessfmtfirst\expandafter
+ {\glsinsert}{\glsxtrgenentrytextfmt}{\glslabel}%
+ }%
+ {\glsaccessfirst{\glslabel}\glsfmtinsert}%
+ }%
+ }%
+ {%
+ \ifglsused\glslabel
+ {%
+ \glsifapplyinnerfmtfield{\glslabel}{text}%
+ {%
+ \expandafter\Glsaccessfmttext\expandafter
+ {\glsinsert}{\glsxtrgenentrytextfmt}{\glslabel}%
+ }%
+ {\Glsaccesstext{\glslabel}\glsfmtinsert}%
+ }%
+ {%
+ \glsifapplyinnerfmtfield{\glslabel}{first}%
+ {%
+ \expandafter\Glsaccessfmtfirst\expandafter
+ {\glsinsert}{\glsxtrgenentrytextfmt}{\glslabel}%
+ }%
+ {\Glsaccessfirst{\glslabel}\glsfmtinsert}%
+ }%
+ }%
+ {%
+ \ifglsused\glslabel
+ {%
+ \glsifapplyinnerfmtfield{\glslabel}{text}%
+ {%
+ \expandafter\GLSaccessfmttext\expandafter
+ {\glsinsert}{\glsxtrgenentrytextfmt}{\glslabel}%
+ }%
+ {\GLSaccesstext{\glslabel}\GLSfmtinsert}%
+ }%
+ {%
+ \glsifapplyinnerfmtfield{\glslabel}{first}%
+ {%
+ \expandafter\GLSaccessfmtfirst\expandafter
+ {\glsinsert}{\glsxtrgenentrytextfmt}{\glslabel}%
+ }%
+ {\GLSaccessfirst{\glslabel}\GLSfmtinsert}%
+ }%
+ }%
+ }%
+ }%
+ {%
+ \glscustomtext
+ }%
+}
+\newcommand*{\glsxtrifwasglslike}[2]{#2}
+\newcommand*{\glsxtrifwasglslikeandfirstuse}[2]{%
+ \glsxtrifwasglslike
+ {%
+ \glsxtrifwasfirstuse{#1}{#2}%
+ }{#2}%
+}
+\newcommand*{\glsxtrifwassubsequentuse}[2]{%
+ \glsxtrifwasglslike
+ {%
+ \glsxtrifwasfirstuse{#2}{#1}%
+ }{#2}%
+}
+\newcommand*{\glsxtrifallcaps}[2]{\glscapscase{#2}{#1}{#1}}
+\newcommand*{\glsxtrcurrentfield}{}
+\newcommand*{\glsxtr@shortfieldname}{short}
+\newcommand*{\glsxtrifwassubsequentorshort}[2]{%
+ \glsxtrifwasglslike
+ {%
+ \glsxtrifwasfirstuse{#2}{#1}%
+ }%
+ {\ifdefequal\glsxtrcurrentfield\glsxtr@shortfieldname{#1}{#2}}%
+}
\renewcommand{\@gls@field@link}[4][]{%
\@glsxtr@record{#2}{#3}{glslink}%
\glsdoifexists{#3}%
{%
\let\glsxtrorg@ifKV@glslink@hyper\ifKV@glslink@hyper
\@gls@save@glslocal
+ \glsinitreunsets
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
\def\glscustomtext{#4}%
\@glsxtr@field@linkdefs
@@ -2473,41 +3103,48 @@
}
\let\@glsxtr@org@gls@\@gls@
\def\@gls@#1#2{%
+ \def\glsxtrcurrentfield{}%
\@glsxtr@record{#1}{#2}{glslink}%
\@glsxtr@org@gls@{#1}{#2}%
}%
\let\@glsxtr@org@glspl@\@glspl@
\def\@glspl@#1#2{%
+ \def\glsxtrcurrentfield{}%
\@glsxtr@record{#1}{#2}{glslink}%
\@glsxtr@org@glspl@{#1}{#2}%
}%
\let\@glsxtr@org@Gls@\@Gls@
\def\@Gls@#1#2{%
+ \def\glsxtrcurrentfield{}%
\@glsxtr@record{#1}{#2}{glslink}%
\@glsxtr@org@Gls@{#1}{#2}%
}%
\let\@glsxtr@org@Glspl@\@Glspl@
\def\@Glspl@#1#2{%
+ \def\glsxtrcurrentfield{}%
\@glsxtr@record{#1}{#2}{glslink}%
\@glsxtr@org@Glspl@{#1}{#2}%
}%
\let\@glsxtr@org@GLS@\@GLS@
\def\@GLS@#1#2{%
+ \def\glsxtrcurrentfield{}%
\@glsxtr@record{#1}{#2}{glslink}%
\@glsxtr@org@GLS@{#1}{#2}%
}%
\let\@glsxtr@org@GLSpl@\@GLSpl@
\def\@GLSpl@#1#2{%
+ \def\glsxtrcurrentfield{}%
\@glsxtr@record{#1}{#2}{glslink}%
\@glsxtr@org@GLSpl@{#1}{#2}%
}%
\renewcommand*{\@glsdisp}[3][]{%
+ \def\glsxtrcurrentfield{}%
\@glsxtr@record{#1}{#2}{glslink}%
\glsdoifexists{#2}{%
\let\do@gls@link@checkfirsthyper\@gls@link@checkfirsthyper
\let\glsifplural\@secondoftwo
\let\glscapscase\@firstofthree
- \def\glscustomtext{#3}%
+ \def\glscustomtext{\glsxtrgenentrytextfmt{#3}}%
\def\glsinsert{}%
\def\@glo@text{\csname gls@\glstype @entryfmt\endcsname}%
\@gls@link[#1]{#2}{\@glo@text}%
@@ -2516,13 +3153,15 @@
\glspostlinkhook
}
\renewcommand*{\@gls@@link}[3][]{%
+ \def\glsxtrcurrentfield{}%
\@glsxtr@record{#1}{#2}{glslink}%
\glsdoifexistsordo{#2}%
{%
\let\do@gls@link@checkfirsthyper\relax
\def\glscustomtext{#3}%
+ \def\glsinsert{}%
\@glsxtr@field@linkdefs
- \@gls@link[#1]{#2}{#3}%
+ \@gls@link[#1]{#2}{\glsxtrgenentrytextfmt{#3}}%
}%
{%
\glstextformat{#3}%
@@ -2540,6 +3179,78 @@
}
\newif\ifglsxtrinitwrglossbefore
\glsxtrinitwrglossbeforetrue
+\newcommand*{\setupglslink}[1]{\setkeys{glslink}{#1}}
+\newcommand*{\setupglsadd}[1]{\setkeys{glsadd}{#1}}
+\newcommand*{\@gls@do@glsprereset}[1]{}
+\define@choicekey{glslink}{prereset}%
+[\@glsxtr@preresetval\@glsxtr@preresetnr]%
+{none,local,global}[local]%
+{%
+ \ifcase\@glsxtr@preresetnr
+ \let\@gls@do@glsprereset\@gobble
+ \or
+ \def\@gls@do@glsprereset{%
+ \let\@gls@link@postkeys@checkfirsthyper\do@gls@link@checkfirsthyper
+ \let\glsxtrifwasfirstuse\@firstoftwo\glslocalreset}%
+ \or
+ \def\@gls@do@glsprereset{%
+ \let\@gls@link@postkeys@checkfirsthyper\do@gls@link@checkfirsthyper
+ \let\glsxtrifwasfirstuse\@firstoftwo\glsreset}%
+ \fi
+}
+\newcommand*{\@gls@do@glspreunset}[1]{}
+\ifdef\@gls@glslink@hyper@update@hook
+{%
+ \renewcommand*{\@gls@glslink@hyper@update@hook}{%
+ \let\@gls@if@glslink@hyper@updated\@firstoftwo
+ }
+}
+{
+ \newcommand*{\@gls@glslink@hyper@update@hook}{%
+ \let\@gls@if@glslink@hyper@updated\@firstoftwo
+ }
+ \renewcommand*{\KV@glslink@hyper}[1]{%
+ \XKV@plfalse\XKV@sttrue
+ \XKV@checkchoice[\XKV@resa ]{#1}{true,false}%
+ {\csname KV@glslink@hyper\XKV@resa\endcsname\@gls@glslink@hyper@update@hook}%
+ }
+}
+\define@choicekey{glslink}{preunset}%
+[\@glsxtr@preunsetval\@glsxtr@preunsetnr]%
+{none,local,global}[local]%
+{%
+ \ifcase\@glsxtr@preunsetnr
+ \let\@gls@do@glspreunset\@gobble
+ \or
+ \def\@gls@do@glspreunset{%
+ \let\@gls@link@postkeys@checkfirsthyper\do@gls@link@checkfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo\glslocalunset}%
+ \or
+ \def\@gls@do@glspreunset{%
+ \let\@gls@link@postkeys@checkfirsthyper\do@gls@link@checkfirsthyper
+ \let\glsxtrifwasfirstuse\@secondoftwo\glsunset}%
+ \fi
+}
+\define@choicekey{glslink}{postunset}%
+[\@glsxtr@postunsetval\@glsxtr@postunsetnr]%
+{none,local,global}[global]%
+{%
+ \ifcase\@glsxtr@postunsetnr
+ \let\@gls@restore@glslocal\@gls@ignore@restore@glslocal
+ \or
+ \let\@gls@restore@glslocal\@gls@default@restore@glslocal
+ \KV@glslink@localtrue
+ \or
+ \let\@gls@restore@glslocal\@gls@default@restore@glslocal
+ \KV@glslink@localfalse
+ \fi
+}
+\newcommand*{\glsinitreunsets}{%
+ \let\@gls@do@glspreunset\@gobble
+ \let\@gls@do@glsprereset\@gobble
+ \let\@gls@restore@glslocal\@gls@default@restore@glslocal
+ \@glsxtrbuffer@check@repeats
+}
\define@choicekey{glslink}{wrgloss}%
[\@glsxtr@wrglossval\@glsxtr@wrglossnr]%
{before,after}%
@@ -2554,10 +3265,24 @@
\define@key{glslink}{theHvalue}{\def\@glsxtr@theHvalue{#1}}
\define@boolkey{glslink}[glsxtr@]{hyperoutside}[true]{}
\glsxtr@hyperoutsidetrue
+\newcommand*{\@glsxtr@current@textformat@csname}{glstextformat}
+\newcommand*{\@glsxtr@current@innertextformat@csname}{glsxtrdefaultentrytextfmt}
+\newcommand*{\glsxtrassignlinktextfmt}{}
\define@key{glslink}{textformat}{%
\ifcsdef{#1}
{%
\letcs{\@glsxtr@local@textformat}{#1}%
+ \def\@glsxtr@current@textformat@csname{#1}%
+ }%
+ {%
+ \PackageError{glossaries-extra}{Unknown control sequence name `#1'}{}%
+ }%
+}
+\define@key{glslink}{innertextformat}{%
+ \ifcsdef{#1}
+ {%
+ \letcs{\@glsxtr@local@innertextformat}{#1}%
+ \def\@glsxtr@current@innertextformat@csname{#1}%
}%
{%
\PackageError{glossaries-extra}{Unknown control sequence name `#1'}{}%
@@ -2597,7 +3322,11 @@
\endgroup
}%
}
-\providecommand*{\glslinkwrcontent}[1]{{#1}}
+\providecommand*{\glslinkwrcontent}[1]{#1}
+\newcommand*{\@glslink@prefix@label}[1]{%
+ \@glslink{\glolinkprefix\glslabel}{#1}}
+\newcommand*{\@noglslink@prefix@label}[1]{%
+ \glsdonohyperlink{\glolinkprefix\glslabel}{#1}}
\def\@gls@link[#1]#2#3{%
\leavevmode
\protected@edef\glslabel{\glsdetoklabel{#2}}%
@@ -2608,8 +3337,12 @@
\protected@edef\glstype{\csname glo@\glslabel @type\endcsname}%
\let\org@ifKV@glslink@hyper\ifKV@glslink@hyper
\@gls@save@glslocal
+ \glsinitreunsets
\let\@glsxtr@org@glolinkprefix\glolinkprefix
\let\@glsxtr@local@textformat\relax
+ \def\@glsxtr@current@textformat@csname{glstextformat}%
+ \let\@glsxtr@local@innertextformat\glsxtrdefaultentrytextfmt
+ \def\@glsxtr@current@innertextformat@csname{glsxtrdefaultentrytextfmt}%
\def\@glsxtr@thevalue{}%
\def\@glsxtr@theHvalue{\@glsxtr@thevalue}%
\glsxtrinitwrgloss
@@ -2621,10 +3354,16 @@
\fi
\do@glsdisablehyperinlist
\do@gls@link@checkfirsthyper
+ \let\@gls@if@glslink@hyper@updated\@secondoftwo
+ \let\@gls@link@postkeys@checkfirsthyper\relax
\glslinkpresetkeys
\setkeys{glslink}{#1}%
\glsxtr@do@autoadd{glslink}%
\glslinkpostsetkeys
+ \@gls@do@glsprereset{#2}%
+ \@gls@do@glspreunset{#2}%
+ \@gls@if@glslink@hyper@updated{}{\@gls@link@postkeys@checkfirsthyper}%
+ \let\glsxtrgenentrytextfmt\@glsxtr@local@innertextformat
\ifdefempty{\@glsxtr@thevalue}%
{%
\@gls@saveentrycounter
@@ -2641,6 +3380,7 @@
\ifcsdef{\@glsxtr@attrval}%
{%
\letcs{\@glsxtr@textformat}{\@glsxtr@attrval}%
+ \let\@glsxtr@current@textformat@csname\@glsxtr@attrval
}%
{%
\GlossariesExtraWarning{Unknown control sequence name
@@ -2655,27 +3395,33 @@
\else
\let\@glsxtr@textformat\@glsxtr@local@textformat
\fi
+ \edef\glsxtrassignlinktextfmt{%
+ \noexpand\def\noexpand\glslabel{\expandonce\glslabel}%
+ \noexpand\letcs\noexpand\glstextformat{\@glsxtr@current@textformat@csname}%
+ \noexpand\letcs\noexpand\glsxtrgenentrytextfmt
+ {\@glsxtr@current@innertextformat@csname}%
+ }%
\glslinkwrcontent
{%
\ifglsxtrinitwrglossbefore
- \@do@wrglossary{#2}%
+ \glsxtr@wrglossary@encap{#2}{\@do@wrglossary{#2}}%
\fi
\ifKV@glslink@hyper
\ifglsxtr@hyperoutside
- \@glslink{\glolinkprefix\glslabel}{\@glsxtr@textformat{#3}}%
+ \@glslink@prefix@label{\@glsxtr@textformat{#3}}%
\else
- \@glsxtr@textformat{\@glslink{\glolinkprefix\glslabel}{#3}}%
+ \@glsxtr@textformat{\@glslink@prefix@label{#3}}%
\fi
\else
\ifglsxtr@hyperoutside
- \glsdonohyperlink{\glolinkprefix\glslabel}{\@glsxtr@textformat{#3}}%
+ \@noglslink@prefix@label{\@glsxtr@textformat{#3}}%
\else
- \@glsxtr@textformat{\glsdonohyperlink{\glolinkprefix\glslabel}{#3}}%
+ \@glsxtr@textformat{\@noglslink@prefix@label{#3}}%
\fi
\fi
\ifglsxtrinitwrglossbefore
\else
- \@do@wrglossary{#2}%
+ \glsxtr@wrglossary@encap{#2}{\@do@wrglossary{#2}}%
\fi
}%
\let\glolinkprefix\@glsxtr@org@glolinkprefix
@@ -2713,7 +3459,7 @@
}%
\@gls@setsort{#2}%
\KV@glslink@noindexfalse
- \@@do@wrglossary{#2}%
+ \glsxtr@wrglossary@encap{#2}{\@@do@wrglossary{#2}}%
}%
\endgroup
}%
@@ -2722,10 +3468,10 @@
\@for\@gls@thislabel:=#2\do{\glsadd[#1]{\@gls@thislabel}}%
}
\newcommand*{\@glsxtr@field@linkdefs}{%
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsxtrifwasfirstuse\@secondoftwo
\let\glsifplural\@secondoftwo
\let\glscapscase\@firstofthree
- \let\glsinsert\@empty
}
\newcommand*{\glsxtrassignfieldfont}[1]{%
\ifglsentryexists{#1}%
@@ -2747,258 +3493,857 @@
\let\@gls@field@font\@gobble
}%
}
+\newcommand*{\glsxtrsaveinsert}[2]{\def\glsinsert{}}
+\newcommand*{\glsxtrfullsaveinsert}{\glsxtrsaveinsert}
\def\@glstext@#1#2[#3]{%
+ \def\glsxtrcurrentfield{text}%
\glsxtrassignfieldfont{#2}%
- \@gls@field@link{#1}{#2}{\@gls@field@font{\glsaccesstext{#2}#3}}%
+ \glsxtrsaveinsert{#2}{#3}%
+ \@gls@field@link{#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{text}%
+ {%
+ \@gls@field@font{\glsaccessfmttext{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\glsaccesstext{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@GLStext@#1#2[#3]{%
+ \def\glsxtrcurrentfield{text}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link[\let\glscapscase\@thirdofthree]{#1}{#2}%
- {\@gls@field@font{\GLSaccesstext{#2}\mfirstucMakeUppercase{#3}}}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{text}%
+ {%
+ \@gls@field@font{\GLSaccessfmttext{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \ifx\glscapscase\@thirdofthree
+ \@gls@field@font{\GLSaccesstext{#2}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#3}}}%
+ \else
+ \@gls@field@font{\glsaccesstext{#2}\glsxtrgenentrytextfmt{#3}}%
+ \fi
+ }%
+ }%
}
\def\@Glstext@#1#2[#3]{%
+ \def\glsxtrcurrentfield{text}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link[\let\glscapscase\@secondofthree]{#1}{#2}%
- {\@gls@field@font{\Glsaccesstext{#2}#3}}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{text}%
+ {%
+ \@gls@field@font{\Glsaccessfmttext{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\Glsaccesstext{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\newcommand*{\glsxtrchecknohyperfirst}[1]{%
\glsifattribute{#1}{nohyperfirst}{true}{\KV@glslink@hyperfalse}{}%
}
\def\@glsfirst@#1#2[#3]{%
+ \def\glsxtrcurrentfield{first}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
[\let\glsxtrifwasfirstuse\@firstoftwo
\glsxtrchecknohyperfirst{#2}%
+ \glsxtr@check@complexstyle{#2}{#3}%
]{#1}{#2}%
- {\@gls@field@font{\glsaccessfirst{#2}#3}}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{first}%
+ {%
+ \@gls@field@font{\glsaccessfmtfirst{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\glsaccessfirst{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@Glsfirst@#1#2[#3]{%
+ \def\glsxtrcurrentfield{first}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
[\let\glsxtrifwasfirstuse\@firstoftwo
\let\glscapscase\@secondofthree
\glsxtrchecknohyperfirst{#2}%
+ \glsxtr@check@complexstyle{#2}{#3}%
]%
- {#1}{#2}{\@gls@field@font{\Glsaccessfirst{#2}#3}}%
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{first}%
+ {%
+ \@gls@field@font{\Glsaccessfmtfirst{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\Glsaccessfirst{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@GLSfirst@#1#2[#3]{%
+ \def\glsxtrcurrentfield{first}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
[\let\glsxtrifwasfirstuse\@firstoftwo
\let\glscapscase\@thirdofthree
\glsxtrchecknohyperfirst{#2}%
+ \glsxtr@check@complexstyle{#2}{#3}%
]%
- {#1}{#2}{\@gls@field@font{\GLSaccessfirst{#2}\mfirstucMakeUppercase{#3}}}%
+ {#1}{#2}%
+ {%
+ \ifx\glscapscase\@thirdofthree
+ \glsifapplyinnerfmtfield{#2}{first}%
+ {%
+ \@gls@field@font{\GLSaccessfmtfirst{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\GLSaccessfirst{#2}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#3}}}%
+ }%
+ \else
+ \glsifapplyinnerfmtfield{#2}{first}%
+ {%
+ \@gls@field@font{\glsaccessfmtfirst{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\glsaccessfirst{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ \fi
+ }%
}
\def\@glsplural@#1#2[#3]{%
+ \def\glsxtrcurrentfield{text}%
\glsxtrassignfieldfont{#2}%
- \@gls@field@link[\let\glsifplural\@firstoftwo]{#1}{#2}%
- {\@gls@field@font{\glsaccessplural{#2}#3}}%
+ \glsxtrsaveinsert{#2}{#3}%
+ \@gls@field@link
+ [\let\glsifplural\@firstoftwo
+ \glsxtr@check@complexstyle{#2}{#3}%
+ ]{#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{plural}%
+ {%
+ \@gls@field@font{\glsaccessfmtplural{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\glsaccessplural{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@Glsplural@#1#2[#3]{%
+ \def\glsxtrcurrentfield{text}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
[\let\glsifplural\@firstoftwo
\let\glscapscase\@secondofthree
+ \glsxtr@check@complexstyle{#2}{#3}%
]%
- {#1}{#2}{\@gls@field@font{\Glsaccessplural{#2}#3}}%
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{plural}%
+ {%
+ \@gls@field@font{\Glsaccessfmtplural{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\Glsaccessplural{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@GLSplural@#1#2[#3]{%
+ \def\glsxtrcurrentfield{text}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
[\let\glsifplural\@firstoftwo
\let\glscapscase\@thirdofthree
+ \glsxtr@check@complexstyle{#2}{#3}%
]%
- {#1}{#2}{\@gls@field@font{\GLSaccessplural{#2}\mfirstucMakeUppercase{#3}}}%
+ {#1}{#2}%
+ {%
+ \ifx\glscapscase\@thirdofthree
+ \glsifapplyinnerfmtfield{#2}{plural}%
+ {%
+ \@gls@field@font{\GLSaccessfmtplural{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\GLSaccessplural{#2}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#3}}}%
+ }%
+ \else
+ \glsifapplyinnerfmtfield{#2}{plural}%
+ {%
+ \@gls@field@font{\glsaccessfmtplural{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\glsaccessplural{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ \fi
+ }%
}
\def\@glsfirstplural@#1#2[#3]{%
+ \def\glsxtrcurrentfield{first}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
[\let\glsxtrifwasfirstuse\@firstoftwo
\let\glsifplural\@firstoftwo
\glsxtrchecknohyperfirst{#2}%
+ \glsxtr@check@complexstyle{#2}{#3}%
]%
- {#1}{#2}{\@gls@field@font{\glsaccessfirstplural{#2}#3}}%
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{firstpl}%
+ {%
+ \@gls@field@font{\glsaccessfmtfirstplural{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\glsaccessfirstplural{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@Glsfirstplural@#1#2[#3]{%
+ \def\glsxtrcurrentfield{first}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
[\let\glsxtrifwasfirstuse\@firstoftwo
\let\glsifplural\@firstoftwo
\let\glscapscase\@secondofthree
\glsxtrchecknohyperfirst{#2}%
+ \glsxtr@check@complexstyle{#2}{#3}%
]%
- {#1}{#2}{\@gls@field@font{\Glsaccessfirstplural{#2}#3}}%
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{firstpl}%
+ {%
+ \@gls@field@font{\Glsaccessfmtfirstplural{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\Glsaccessfirstplural{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@GLSfirstplural@#1#2[#3]{%
+ \def\glsxtrcurrentfield{first}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
[\let\glsxtrifwasfirstuse\@firstoftwo
\let\glsifplural\@firstoftwo
\let\glscapscase\@thirdofthree
\glsxtrchecknohyperfirst{#2}%
+ \glsxtr@check@complexstyle{#2}{#3}%
]%
- {#1}{#2}%
- {\@gls@field@font{\GLSaccessfirstplural{#2}\mfirstucMakeUppercase{#3}}}%
+ {#1}{#2}%
+ {%
+ \ifx\glscapscase\@thirdofthree
+ \glsifapplyinnerfmtfield{#2}{firstpl}%
+ {%
+ \@gls@field@font{\GLSaccessfmtfirstplural{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\GLSaccessfirstplural{#2}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#3}}}%
+ }%
+ \else
+ \glsifapplyinnerfmtfield{#2}{firstpl}%
+ {%
+ \@gls@field@font{\glsaccessfmtfirstplural{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\glsaccessfirstplural{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ \fi
+ }%
}
\def\@glsname@#1#2[#3]{%
+ \def\glsxtrcurrentfield{name}%
\glsxtrassignfieldfont{#2}%
- \@gls@field@link{#1}{#2}{\@gls@field@font{\glsaccessname{#2}#3}}%
+ \glsxtrsaveinsert{#2}{#3}%
+ \@gls@field@link{#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{name}%
+ {%
+ \@gls@field@font{\glsaccessfmtname{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\glsaccessname{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@Glsname@#1#2[#3]{%
+ \def\glsxtrcurrentfield{name}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
- [\let\glscapscase\@secondoftwo]{#1}{#2}%
- {\@gls@field@font{\Glsaccessname{#2}#3}}%
+ [\let\glscapscase\@secondofthree]{#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{name}%
+ {%
+ \@gls@field@font{\Glsaccessfmtname{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\Glsaccessname{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@GLSname@#1#2[#3]{%
+ \def\glsxtrcurrentfield{name}%
\glsxtrassignfieldfont{#2}%
- \@gls@field@link[\let\glscapscase\@thirdoftwo]%
- {#1}{#2}%
- {\@gls@field@font{\GLSaccessname{#2}\mfirstucMakeUppercase{#3}}}%
+ \glsxtrsaveinsert{#2}{#3}%
+ \@gls@field@link[\let\glscapscase\@thirdofthree]%
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{name}%
+ {%
+ \@gls@field@font{\GLSaccessfmtname{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\GLSaccessname{#2}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#3}}}%
+ }%
+ }%
}
\def\@glsdesc@#1#2[#3]{%
+ \def\glsxtrcurrentfield{description}%
\glsxtrassignfieldfont{#2}%
- \@gls@field@link{#1}{#2}{\@gls@field@font{\glsaccessdesc{#2}#3}}%
+ \glsxtrsaveinsert{#2}{#3}%
+ \@gls@field@link{#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{desc}%
+ {%
+ \@gls@field@font{\glsaccessfmtdesc{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\glsaccessdesc{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@Glsdesc@#1#2[#3]{%
+ \def\glsxtrcurrentfield{description}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
- [\let\glscapscase\@secondoftwo]{#1}{#2}%
- {\@gls@field@font{\Glsaccessdesc{#2}#3}}%
+ [\let\glscapscase\@secondofthree]{#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{desc}%
+ {%
+ \@gls@field@font{\Glsaccessfmtdesc{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\Glsaccessdesc{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@GLSdesc@#1#2[#3]{%
+ \def\glsxtrcurrentfield{description}%
\glsxtrassignfieldfont{#2}%
- \@gls@field@link[\let\glscapscase\@thirdoftwo]%
- {#1}{#2}{\@gls@field@font{\GLSaccessdesc{#2}\mfirstucMakeUppercase{#3}}}%
+ \glsxtrsaveinsert{#2}{#3}%
+ \@gls@field@link[\let\glscapscase\@thirdofthree]%
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{desc}%
+ {%
+ \@gls@field@font{\GLSaccessfmtdesc{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\GLSaccessdesc{#2}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#3}}}%
+ }%
+ }%
}
\def\@glsdescplural@#1#2[#3]{%
+ \def\glsxtrcurrentfield{description}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
- [\let\glscapscase\@secondoftwo
+ [\let\glscapscase\@secondofthree
\let\glsifplural\@firstoftwo
- ]{#1}{#2}{\@gls@field@font{\glsaccessdescplural{#2}#3}}%
+ ]{#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{descplural}%
+ {%
+ \@gls@field@font{\glsaccessfmtdescpl{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\glsaccessdescplural{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@Glsdescplural@#1#2[#3]{%
+ \def\glsxtrcurrentfield{description}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
- [\let\glscapscase\@secondoftwo
+ [\let\glscapscase\@secondofthree
\let\glsifplural\@firstoftwo
- ]{#1}{#2}{\@gls@field@font{\Glsaccessdescplural{#2}#3}}%
+ ]{#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{descplural}%
+ {%
+ \@gls@field@font{\Glsaccessfmtdescpl{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\Glsaccessdescplural{#2}#3}%
+ }%
+ }%
}
-\def\@GLSdesc@#1#2[#3]{%
+\def\@GLSdescplural@#1#2[#3]{%
+ \def\glsxtrcurrentfield{description}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
- [\let\glscapscase\@thirdoftwo
+ [\let\glscapscase\@thirdofthree
\let\glsifplural\@firstoftwo
]%
- {#1}{#2}%
- {\@gls@field@font{\GLSaccessdescplural{#2}\mfirstucMakeUppercase{#3}}}%
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{descplural}%
+ {%
+ \@gls@field@font{\GLSaccessfmtdescplural{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\GLSaccessdescplural{#2}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#3}}}%
+ }%
+ }%
}
\def\@glssymbol@#1#2[#3]{%
+ \def\glsxtrcurrentfield{symbol}%
\glsxtrassignfieldfont{#2}%
- \@gls@field@link{#1}{#2}{\@gls@field@font{\glsaccesssymbol{#2}#3}}%
+ \glsxtrsaveinsert{#2}{#3}%
+ \@gls@field@link{#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{symbol}%
+ {%
+ \@gls@field@font{\glsaccessfmtsymbol{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\glsaccesssymbol{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@Glssymbol@#1#2[#3]{%
+ \def\glsxtrcurrentfield{symbol}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
- [\let\glscapscase\@secondoftwo]%
- {#1}{#2}{\@gls@field@font{\Glsaccesssymbol{#2}#3}}%
+ [\let\glscapscase\@secondofthree]%
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{symbol}%
+ {%
+ \@gls@field@font{\Glsaccessfmtsymbol{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\Glsaccesssymbol{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@GLSsymbol@#1#2[#3]{%
+ \def\glsxtrcurrentfield{symbol}%
\glsxtrassignfieldfont{#2}%
- \@gls@field@link[\let\glscapscase\@thirdoftwo]%
- {#1}{#2}{\@gls@field@font{\GLSaccesssymbol{#2}\mfirstucMakeUppercase{#3}}}%
+ \glsxtrsaveinsert{#2}{#3}%
+ \@gls@field@link[\let\glscapscase\@thirdofthree]%
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{symbol}%
+ {%
+ \@gls@field@font{\GLSaccessfmtsymbol{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\GLSaccesssymbol{#2}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#3}}}%
+ }%
+ }%
}
\def\@glssymbolplural@#1#2[#3]{%
+ \def\glsxtrcurrentfield{symbol}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
- [\let\glscapscase\@secondoftwo
+ [\let\glscapscase\@secondofthree
\let\glsifplural\@firstoftwo
- ]{#1}{#2}{\@gls@field@font{\glsaccesssymbolplural{#2}#3}}%
+ ]{#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{symbolplural}%
+ {%
+ \@gls@field@font{\glsaccessfmtsymbolplural{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\glsaccesssymbolplural{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@Glssymbolplural@#1#2[#3]{%
+ \def\glsxtrcurrentfield{symbol}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
- [\let\glscapscase\@secondoftwo
+ [\let\glscapscase\@secondofthree
\let\glsifplural\@firstoftwo
- ]{#1}{#2}{\@gls@field@font{\Glsaccesssymbolplural{#2}#3}}%
+ ]{#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{symbolplural}%
+ {%
+ \@gls@field@font{\Glsaccessfmtsymbolplural{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\Glsaccesssymbolplural{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
-\def\@GLSsymbol@#1#2[#3]{%
+\def\@GLSsymbolplural@#1#2[#3]{%
+ \def\glsxtrcurrentfield{symbol}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
- [\let\glscapscase\@thirdoftwo
+ [\let\glscapscase\@thirdofthree
\let\glsifplural\@firstoftwo
]%
- {#1}{#2}%
- {\@gls@field@font{\GLSaccesssymbolplural{#2}\mfirstucMakeUppercase{#3}}}%
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{symbolplural}%
+ {%
+ \@gls@field@font{\GLSaccessfmtsymbolplural{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\GLSaccesssymbolplural{#2}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#3}}}%
+ }%
+ }%
+}
+\def\@glsuseri@#1#2[#3]{%
+ \def\glsxtrcurrentfield{user1}%
+ \glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
+ \@gls@field@link
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{useri}%
+ {%
+ \@gls@field@font{\glsaccessfmtuseri{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\glsaccessuseri{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@Glsuseri@#1#2[#3]{%
+ \def\glsxtrcurrentfield{user1}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
- [\let\glscapscase\@secondoftwo]{#1}{#2}%
- {\@gls@field@font{\Glsentryuseri{#2}#3}}%
+ [\let\glscapscase\@secondofthree]{#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{useri}%
+ {%
+ \@gls@field@font{\Glsaccessfmtuseri{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\Glsaccessuseri{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@GLSuseri@#1#2[#3]{%
+ \def\glsxtrcurrentfield{user1}%
+ \glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
+ \@gls@field@link[\let\glscapscase\@thirdofthree]%
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{useri}%
+ {%
+ \@gls@field@font{\GLSaccessfmtuseri{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \ifx\glscapscase\@thirdofthree
+ \@gls@field@font{\GLSaccessuseri{#2}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#3}}}%
+ \else
+ \@gls@field@font{\glsaccessuseri{#2}\glsxtrgenentrytextfmt{#3}}%
+ \fi
+ }%
+ }%
+}
+\def\@glsuserii@#1#2[#3]{%
+ \def\glsxtrcurrentfield{user2}%
\glsxtrassignfieldfont{#2}%
- \@gls@field@link[\let\glscapscase\@thirdoftwo]%
- {#1}{#2}{\@gls@field@font{\mfirstucMakeUppercase{\glsentryuseri{#2}#3}}}%
+ \glsxtrsaveinsert{#2}{#3}%
+ \@gls@field@link
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{userii}%
+ {%
+ \@gls@field@font{\glsaccessfmtuserii{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\glsaccessuserii{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@Glsuserii@#1#2[#3]{%
+ \def\glsxtrcurrentfield{user2}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
- [\let\glscapscase\@secondoftwo]%
- {#1}{#2}{\@gls@field@font{\Glsentryuserii{#2}#3}}%
+ [\let\glscapscase\@secondofthree]%
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{userii}%
+ {%
+ \@gls@field@font{\Glsaccessfmtuserii{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\Glsaccessuserii{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@GLSuserii@#1#2[#3]{%
+ \def\glsxtrcurrentfield{user2}%
+ \glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
+ \@gls@field@link[\let\glscapscase\@thirdofthree]%
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{userii}%
+ {%
+ \@gls@field@font{\GLSaccessfmtuserii{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \ifx\glscapscase\@thirdofthree
+ \@gls@field@font{\GLSaccessuserii{#2}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#3}}}%
+ \else
+ \@gls@field@font{\glsaccessuserii{#2}\glsxtrgenentrytextfmt{#3}}%
+ \fi
+ }%
+ }%
+}
+\def\@glsuseriii@#1#2[#3]{%
+ \def\glsxtrcurrentfield{user3}%
\glsxtrassignfieldfont{#2}%
- \@gls@field@link[\let\glscapscase\@thirdoftwo]%
- {#1}{#2}{\@gls@field@font{\mfirstucMakeUppercase{\glsentryuserii{#2}#3}}}%
+ \glsxtrsaveinsert{#2}{#3}%
+ \@gls@field@link
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{useriii}%
+ {%
+ \@gls@field@font{\glsaccessfmtuseriii{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\glsaccessuseriii{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@Glsuseriii@#1#2[#3]{%
+ \def\glsxtrcurrentfield{user3}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
- [\let\glscapscase\@secondoftwo]%
- {#1}{#2}{\@gls@field@font{\Glsentryuseriii{#2}#3}}%
+ [\let\glscapscase\@secondofthree]%
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{useriii}%
+ {%
+ \@gls@field@font{\Glsaccessfmtuseriii{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\Glsaccessuseriii{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@GLSuseriii@#1#2[#3]{%
+ \def\glsxtrcurrentfield{user3}%
\glsxtrassignfieldfont{#2}%
- \@gls@field@link[\let\glscapscase\@thirdoftwo]%
- {#1}{#2}{\@gls@field@font{\mfirstucMakeUppercase{\glsentryuseriii{#2}#3}}}%
+ \glsxtrsaveinsert{#2}{#3}%
+ \@gls@field@link[\let\glscapscase\@thirdofthree]%
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{useriii}%
+ {%
+ \@gls@field@font{\GLSaccessfmtuseriii{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \ifx\glscapscase\@thirdofthree
+ \@gls@field@font{\GLSaccessuseriii{#2}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#3}}}%
+ \else
+ \@gls@field@font{\glsaccessuseriii{#2}\glsxtrgenentrytextfmt{#3}}%
+ \fi
+ }%
+ }%
+}
+\def\@glsuseriv@#1#2[#3]{%
+ \def\glsxtrcurrentfield{user4}%
+ \glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
+ \@gls@field@link
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{useriv}%
+ {%
+ \@gls@field@font{\glsaccessfmtuseriv{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\glsaccessuseriv{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@Glsuseriv@#1#2[#3]{%
+ \def\glsxtrcurrentfield{user4}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
- [\let\glscapscase\@secondoftwo]%
- {#1}{#2}{\@gls@field@font{\Glsentryuseriv{#2}#3}}%
+ [\let\glscapscase\@secondofthree]%
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{useriv}%
+ {%
+ \@gls@field@font{\Glsaccessfmtuseriv{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\Glsaccessuseriv{#2}#3}%
+ }%
+ }%
}
\def\@GLSuseriv@#1#2[#3]{%
+ \def\glsxtrcurrentfield{user4}%
\glsxtrassignfieldfont{#2}%
- \@gls@field@link[\let\glscapscase\@thirdoftwo]%
- {#1}{#2}%
- {\@gls@field@font{\mfirstucMakeUppercase{\glsentryuseriv{#2}#3}}}%
+ \glsxtrsaveinsert{#2}{#3}%
+ \@gls@field@link[\let\glscapscase\@thirdofthree]%
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{useriv}%
+ {%
+ \@gls@field@font{\GLSaccessfmtuseriv{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \ifx\glscapscase\@thirdofthree
+ \@gls@field@font{\GLSaccessuseriv{#2}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#3}}}%
+ \else
+ \@gls@field@font{\glsaccessuseriv{#2}\glsxtrgenentrytextfmt{#3}}%
+ \fi
+ }%
+ }%
+}
+\def\@glsuserv@#1#2[#3]{%
+ \def\glsxtrcurrentfield{user5}%
+ \glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
+ \@gls@field@link
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{userv}%
+ {%
+ \@gls@field@font{\glsaccessfmtuserv{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\glsaccessuserv{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@Glsuserv@#1#2[#3]{%
+ \def\glsxtrcurrentfield{user5}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
- [\let\glscapscase\@secondoftwo]%
- {#1}{#2}{\@gls@field@font{\Glsentryuserv{#2}#3}}%
+ [\let\glscapscase\@secondofthree]%
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{userv}%
+ {%
+ \@gls@field@font{\Glsfmtfield{#3}{\glsxtrgenentrytextfmt}{#2}{userv}}%
+ }%
+ {%
+ \@gls@field@font{\Glsentryuserv{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@GLSuserv@#1#2[#3]{%
+ \def\glsxtrcurrentfield{user5}%
+ \glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
+ \@gls@field@link[\let\glscapscase\@thirdofthree]%
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{userv}%
+ {%
+ \@gls@field@font{\GLSaccessfmtuserv{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \ifx\glscapscase\@thirdofthree
+ \@gls@field@font{\GLSaccessuserv{#2}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#3}}}%
+ \else
+ \@gls@field@font{\glsaccessuserv{#2}\glsxtrgenentrytextfmt{#3}}%
+ \fi
+ }%
+ }%
+}
+\def\@glsuservi@#1#2[#3]{%
+ \def\glsxtrcurrentfield{user6}%
\glsxtrassignfieldfont{#2}%
- \@gls@field@link[\let\glscapscase\@thirdoftwo]%
- {#1}{#2}{\@gls@field@font{\mfirstucMakeUppercase{\glsentryuserv{#2}#3}}}%
+ \glsxtrsaveinsert{#2}{#3}%
+ \@gls@field@link
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{uservi}%
+ {%
+ \@gls@field@font{\glsaccessfmtuservi{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\glsaccessuservi{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@Glsuservi@#1#2[#3]{%
+ \def\glsxtrcurrentfield{user6}%
\glsxtrassignfieldfont{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\@gls@field@link
- [\let\glscapscase\@secondoftwo]%
- {#1}{#2}{\@gls@field@font{\Glsentryuservi{#2}#3}}%
+ [\let\glscapscase\@secondofthree]%
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{uservi}%
+ {%
+ \@gls@field@font{\Glsaccessfmtuservi{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \@gls@field@font{\Glsaccessuservi{#2}\glsxtrgenentrytextfmt{#3}}%
+ }%
+ }%
}
\def\@GLSuservi@#1#2[#3]{%
+ \def\glsxtrcurrentfield{user6}%
\glsxtrassignfieldfont{#2}%
- \@gls@field@link[\let\glscapscase\@thirdoftwo]%
- {#1}{#2}{\@gls@field@font{\mfirstucMakeUppercase{\glsentryuservi{#2}#3}}}%
+ \glsxtrsaveinsert{#2}{#3}%
+ \@gls@field@link[\let\glscapscase\@thirdofthree]%
+ {#1}{#2}%
+ {%
+ \glsifapplyinnerfmtfield{#2}{uservi}%
+ {%
+ \@gls@field@font{\GLSaccessfmtuservi{#3}{\glsxtrgenentrytextfmt}{#2}}%
+ }%
+ {%
+ \ifx\glscapscase\@thirdofthree
+ \@gls@field@font{\GLSaccessuservi{#2}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#3}}}%
+ \else
+ \@gls@field@font{\glsaccessuservi{#2}\glsxtrgenentrytextfmt{#3}}%
+ \fi
+ }%
+ }%
}
\newcommand*{\@@glsxtr@base@acrcmd@warn}[2]{%
\GlossariesExtraWarning{Base acronym command \string#1\space
@@ -3007,10 +4352,12 @@
}
\let\@glsxtr@base@acrcmd\@@glsxtr@base@acrcmd@warn
\def\@acrshort#1#2[#3]{%
+ \def\glsxtrcurrentfield{short}%
\@glsxtr@base@acrcmd\acrshort\glsxtrshort
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsxtrifwasfirstuse\@secondoftwo
\let\glsifplural\@secondoftwo
\let\glscapscase\@firstofthree
@@ -3023,10 +4370,12 @@
\glspostlinkhook
}
\def\@Acrshort#1#2[#3]{%
+ \def\glsxtrcurrentfield{short}%
\@glsxtr@base@acrcmd\Acrshort\Glsxtrshort
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsxtrifwasfirstuse\@secondoftwo
\let\glsifplural\@secondoftwo
\let\glscapscase\@secondofthree
@@ -3039,26 +4388,30 @@
\glspostlinkhook
}
\def\@ACRshort#1#2[#3]{%
+ \def\glsxtrcurrentfield{short}%
\@glsxtr@base@acrcmd\ACRshort\GLSxtrshort
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsxtrifwasfirstuse\@secondoftwo
\let\glsifplural\@secondoftwo
\let\glscapscase\@thirdofthree
\let\glsinsert\@empty
\def\glscustomtext{%
- \mfirstucMakeUppercase{\acronymfont{\glsaccessshort{#2}}#3}%
+ \glsuppercase{\acronymfont{\glsaccessshort{#2}}#3}%
}%
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
}%
\glspostlinkhook
}
\def\@acrshortpl#1#2[#3]{%
+ \def\glsxtrcurrentfield{short}%
\@glsxtr@base@acrcmd\acrshortpl\glsxtrshortpl
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsxtrifwasfirstuse\@secondoftwo
\let\glsifplural\@firstoftwo
\let\glscapscase\@firstofthree
@@ -3071,10 +4424,12 @@
\glspostlinkhook
}
\def\@Acrshortpl#1#2[#3]{%
+ \def\glsxtrcurrentfield{short}%
\@glsxtr@base@acrcmd\Acrshortpl\Glsxtrshortpl
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsxtrifwasfirstuse\@secondoftwo
\let\glsifplural\@firstoftwo
\let\glscapscase\@secondofthree
@@ -3087,26 +4442,30 @@
\glspostlinkhook
}
\def\@ACRshortpl#1#2[#3]{%
+ \def\glsxtrcurrentfield{short}%
\@glsxtr@base@acrcmd\ACRshortpl\GLSxtrshortpl
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsxtrifwasfirstuse\@secondoftwo
\let\glsifplural\@firstoftwo
\let\glscapscase\@thirdofthree
\let\glsinsert\@empty
\def\glscustomtext{%
- \mfirstucMakeUppercase{\acronymfont{\glsaccessshortpl{#2}}#3}%
+ \glsuppercase{\acronymfont{\glsaccessshortpl{#2}}#3}%
}%
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
}%
\glspostlinkhook
}
\def\@acrlong#1#2[#3]{%
+ \def\glsxtrcurrentfield{long}%
\@glsxtr@base@acrcmd\acrlong\glsxtrlong
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsxtrifwasfirstuse\@secondoftwo
\let\glsifplural\@secondoftwo
\let\glscapscase\@firstofthree
@@ -3119,10 +4478,12 @@
\glspostlinkhook
}
\def\@Acrlong#1#2[#3]{%
+ \def\glsxtrcurrentfield{long}%
\@glsxtr@base@acrcmd\Acrlong\Glsxtrlong
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsxtrifwasfirstuse\@secondoftwo
\let\glsifplural\@secondoftwo
\let\glscapscase\@secondofthree
@@ -3135,26 +4496,30 @@
\glspostlinkhook
}
\def\@ACRlong#1#2[#3]{%
+ \def\glsxtrcurrentfield{long}%
\@glsxtr@base@acrcmd\ACRlong\GLSxtrlong
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsxtrifwasfirstuse\@secondoftwo
\let\glsifplural\@secondoftwo
\let\glscapscase\@thirdofthree
\let\glsinsert\@empty
\def\glscustomtext{%
- \mfirstucMakeUppercase{\acronymfont{\glsaccesslong{#2}}#3}%
+ \glsuppercase{\acronymfont{\glsaccesslong{#2}}#3}%
}%
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
}%
\glspostlinkhook
}
\def\@acrlongpl#1#2[#3]{%
+ \def\glsxtrcurrentfield{long}%
\@glsxtr@base@acrcmd\acrlongpl\glsxtrlongpl
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsxtrifwasfirstuse\@secondoftwo
\let\glsifplural\@firstoftwo
\let\glscapscase\@firstofthree
@@ -3167,10 +4532,12 @@
\glspostlinkhook
}
\def\@Acrlongpl#1#2[#3]{%
+ \def\glsxtrcurrentfield{long}%
\@glsxtr@base@acrcmd\Acrlongpl\Glsxtrlongpl
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsxtrifwasfirstuse\@secondoftwo
\let\glsifplural\@firstoftwo
\let\glscapscase\@secondofthree
@@ -3183,42 +4550,50 @@
\glspostlinkhook
}
\def\@ACRlongpl#1#2[#3]{%
+ \def\glsxtrcurrentfield{long}%
\@glsxtr@base@acrcmd\ACRlongpl\GLSxtrlongpl
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsxtrifwasfirstuse\@secondoftwo
\let\glsifplural\@firstoftwo
\let\glscapscase\@thirdofthree
\let\glsinsert\@empty
\def\glscustomtext{%
- \mfirstucMakeUppercase{\acronymfont{\glsaccesslongpl{#2}}#3}%
+ \glsuppercase{\acronymfont{\glsaccesslongpl{#2}}#3}%
}%
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
}%
\glspostlinkhook
}
\def\@acrfull#1#2[#3]{%
+ \def\glsxtrcurrentfield{}%
\@glsxtr@base@acrcmd\acrfull\glsxtrfull
\acrfullfmt{#1}{#2}{#3}%
}
\def\@Acrfull#1#2[#3]{%
+ \def\glsxtrcurrentfield{}%
\@glsxtr@base@acrcmd\Acrfull\Glsxtrfull
\Acrfullfmt{#1}{#2}{#3}%
}
\def\@ACRfull#1#2[#3]{%
+ \def\glsxtrcurrentfield{}%
\@glsxtr@base@acrcmd\ACRfull\GLSxtrfull
\ACRfullfmt{#1}{#2}{#3}%
}
\def\@acrfullpl#1#2[#3]{%
+ \def\glsxtrcurrentfield{}%
\@glsxtr@base@acrcmd\acrfullpl\glsxtrfullpl
\acrfullplfmt{#1}{#2}{#3}%
}
\def\@Acrfullpl#1#2[#3]{%
+ \def\glsxtrcurrentfield{}%
\@glsxtr@base@acrcmd\Acrfullpl\Glsxtrfullpl
\Acrfullplfmt{#1}{#2}{#3}%
}
\def\@ACRfullpl#1#2[#3]{%
+ \def\glsxtrcurrentfield{}%
\@glsxtr@base@acrcmd\ACRfullpl\GLSxtrfullpl
\ACRfullplfmt{#1}{#2}{#3}%
}
@@ -3233,7 +4608,7 @@
\gls@assign@field{#2}{\@glo@label}{#1}{\@glo@tmp}%
}%
\newcommand*{#3}[1]{\@gls@entry@field{##1}{#1}}%
- \newcommand*{#4}[1]{\@Gls@entry@field{##1}{#1}}%
+ \newcommand*{#4}[1]{\@Glsentryfield{##1}{#1}}%
\ifcsdef{@gls@user@#1@}%
{%
\PackageError{glossaries}%
@@ -3249,7 +4624,10 @@
{\csuse{@gls@user@#1@}{##1}{##2}}%
{\csuse{@gls@user@#1@}{##1}{##2}[]}}%
\csdef{@gls@user@#1@}##1##2[##3]{%
- \@gls@field@link{##1}{##2}{#3{##2}##3}%
+ \def\glsxtrcurrentfield{#1}%
+ \glsxtrassignfieldfont{##2}%
+ \glsxtrsaveinsert{##2}{##3}%
+ \@gls@field@link{##1}{##2}{\@gls@field@font{#3{##2}##3}}%
}%
\newrobustcmd*{#5}{%
\expandafter\@gls@hyp@opt\csname @gls@user@#1\endcsname}%
@@ -3269,8 +4647,11 @@
{\csuse{@Gls@user@#1@}{##1}{##2}}%
{\csuse{@Gls@user@#1@}{##1}{##2}[]}}%
\csdef{@Gls@user@#1@}##1##2[##3]{%
+ \def\glsxtrcurrentfield{#1}%
+ \glsxtrassignfieldfont{##2}%
+ \glsxtrsaveinsert{##2}{##3}%
\@gls@field@link[\let\glscapscase\@secondofthree]%
- {##1}{##2}{#4{##2}##3}%
+ {##1}{##2}{\@gls@field@font{#4{##2}##3}}%
}%
\newrobustcmd*{#6}{%
\expandafter\@gls@hyp@opt\csname @Gls@user@#1\endcsname}%
@@ -3290,31 +4671,39 @@
{\csuse{@GLS@user@#1@}{##1}{##2}}%
{\csuse{@GLS@user@#1@}{##1}{##2}[]}}%
\csdef{@GLS@user@#1@}##1##2[##3]{%
+ \def\glsxtrcurrentfield{#1}%
+ \glsxtrassignfieldfont{##2}%
+ \glsxtrsaveinsert{##2}{##3}%
\@gls@field@link[\let\glscapscase\@thirdofthree]%
- {##1}{##2}{\mfirstucMakeUppercase{#3{##2}##3}}%
+ {##1}{##2}{\@gls@field@font{\glsuppercase{#3{##2}##3}}}%
}%
\newrobustcmd*{#7}{%
\expandafter\@gls@hyp@opt\csname @GLS@user@#1\endcsname}%
}%
+ \glsmfuaddmap{#3}{#4}%
+ \glsmfuaddmap{#5}{#6}%
+ \glsmfublocker{#7}%
}%
{%
\PackageError{glossaries-extra}{Key `#1' already exists}{}%
}%
}
\providecommand*{\@gls@link@nocheckfirsthyper}{}
+\newcommand*{\@gls@link@postkeys@checkfirsthyper}{}
\let\@glsxtr@org@checkfirsthyper\@gls@link@checkfirsthyper
\renewcommand*{\@gls@link@checkfirsthyper}{%
\ifglsused{\glslabel}%
{\let\glsxtrifwasfirstuse\@secondoftwo}
{\let\glsxtrifwasfirstuse\@firstoftwo}%
+ \let\glsxtrifwasglslike\@firstoftwo
\protected@edef\glscategorylabel{\glscategory{\glslabel}}%
- \ifglsused{\glslabel}%
+ \glsxtrifwasfirstuse
{%
- \glsifcategoryattribute{\glscategorylabel}{nohypernext}{true}%
+ \glsifcategoryattribute{\glscategorylabel}{nohyperfirst}{true}%
{\KV@glslink@hyperfalse}{}%
}%
{%
- \glsifcategoryattribute{\glscategorylabel}{nohyperfirst}{true}%
+ \glsifcategoryattribute{\glscategorylabel}{nohypernext}{true}%
{\KV@glslink@hyperfalse}{}%
}%
\glslinkcheckfirsthyperhook
@@ -3339,18 +4728,27 @@
\else
\let\@gls@do@glsunset\glsunset
\fi
+ \let\ifKV@glslink@local\if@org@KV@glslink@local
+}
+\let\@gls@default@restore@glslocal\@gls@restore@glslocal
+\newcommand*{\@gls@ignore@restore@glslocal}{%
+ \let\@gls@do@glsunset\@gobble
+ \let\ifKV@glslink@local\if@org@KV@glslink@local
}
\providecommand*{\@gls@do@glsunset}[1]{\glsunset{#1}}
+\newcommand*{\@gls@default@glslink@opts}{}
\ifdef\@gls@setdefault@glslink@opts
{
\renewcommand*{\@gls@setdefault@glslink@opts}{%
\KV@glslink@noindexfalse
+ \expandafter\setupglslink\expandafter{\@gls@default@glslink@opts}%
\@glsxtrsetaliasnoindex
}
}
{
\newcommand*{\@gls@setdefault@glslink@opts}{%
\KV@glslink@noindexfalse
+ \expandafter\setupglslink\expandafter{\@gls@default@glslink@opts}%
\@glsxtrsetaliasnoindex
}
\preto\do@glsdisablehyperinlist{\@gls@setdefault@glslink@opts}
@@ -3374,7 +4772,7 @@
\let\@glsnumberformat\@glsxtr@defaultnumberformat
\protected@edef\@gls@counter{\csname glo@\glsdetoklabel{\glslabel}@counter\endcsname}%
\glsxtr@saveentrycounter
- \@@do@wrglossary{\glsxtralias{\glslabel}}%
+ \glsxtr@wrglossary@encap{\glsxtralias{\glslabel}}{\@@do@wrglossary{\glsxtralias{\glslabel}}}%
\endgroup
\fi
}
@@ -3385,14 +4783,45 @@
}
\let\glsxtrindexaliased\@no@glsxtrindexaliased
\newcommand*{\GlsXtrSetDefaultGlsOpts}[1]{%
- \renewcommand*{\@gls@setdefault@glslink@opts}{%
- \setkeys{glslink}{#1}%
- \@glsxtrsetaliasnoindex
- }%
+ \renewcommand*{\@gls@default@glslink@opts}{#1}%
+}
+\newcommand*{\GlsXtrAppToDefaultGlsOpts}[1]{%
+ \appto\@gls@default@glslink@opts{,#1}%
+}
+\newcommand*{\GlsXtrPreToDefaultGlsOpts}[1]{%
+ \preto\@gls@default@glslink@opts{#1,}%
}
\newcommand*{\glsxtrifindexing}[2]{%
\ifKV@glslink@noindex #2\else #1\fi
}
+\newcommand*{\glsxtr@wrglossary@encap}[2]{\glsencapwrcontent{#2\@glsxtr@inc@indexcount{#1}}}
+\newcommand*{\@glsxtr@inc@indexcount}[1]{%
+ \ifcsdef{glo@\glsdetoklabel{#1}@indexed}
+ {%
+ \csxdef{glo@\glsdetoklabel{#1}@indexed}{%
+ \expandafter\number\expandafter\numexpr\csname glo@\glsdetoklabel{#1}@indexed\endcsname+1}%
+ }%
+ {%
+ \csgdef{glo@\glsdetoklabel{#1}@indexed}{1}%
+ }%
+}
+\newcommand*{\glsentryindexcount}[1]{%
+ \ifcsdef{glo@\glsdetoklabel{#1}@indexed}
+ {\csuse{glo@\glsdetoklabel{#1}@indexed}}%
+ {0}%
+}
+\newcommand*{\glsifindexed}[3]{%
+ \ifcsdef{glo@\glsdetoklabel{#1}@indexed}%
+ {\expandafter\ifnum\csname glo@\glsdetoklabel{#1}@indexed\endcsname>0 #2\else#3\fi}%
+ {#3}%
+}
+\newcommand*{\glsaddallunindexed}[1][\@glo@types]{%
+ \forallglsentries[#1]{\@glo@entry}%
+ {%
+ \glsifindexed{\@glo@entry}{}{\glsadd[format=glsignore]{\@glo@entry}}%
+ }%
+}
+\providecommand*{\glsencapwrcontent}[1]{{#1}}
\renewcommand*{\glswriteentry}[2]{%
\glsxtrifindexing
{%
@@ -3424,7 +4853,7 @@
\newcommand*{\glsxtrdowrglossaryhook}[1]{}
\newcommand*{\@gls@alt@hyp@opt}[1]{%
\let\glslinkvar\@firstofthree
- \let\@gls@hyp@opt@cs#1\relax
+ \def\@gls@hyp@opt@cs{#1}%
\@ifstar{\s@gls@hyp@opt}%
{\@ifnextchar+%
{\@firstoftwo{\p@gls@hyp@opt}}%
@@ -3460,6 +4889,18 @@
\protected@write\@auxout{}{\string\@glsxtr@altmodifier{#1}}%
}%
}
+\newcommand*{\GlsXtrSetPlusModifier}[1]{%
+ \renewcommand*{\p@gls@hyp@opt}[1][]{%
+ \let\glslinkvar\@thirdofthree
+ \@gls@hyp@opt@cs[#1,##1]%
+ }%
+}
+\newcommand*{\GlsXtrSetStarModifier}[1]{%
+ \renewcommand*{\s@gls@hyp@opt}[1][]{%
+ \let\glslinkvar\@secondofthree
+ \@gls@hyp@opt@cs[#1,##1]%
+ }
+}
\let\glsxtr@org@dohyperlink\glsdohyperlink
\ifdef\glsnavhyperlink
{
@@ -3635,7 +5076,7 @@
\def\@GLSxtr@p@short@#1#2[#3]{%
{%
\glssetabbrvfmt{\glscategory{#2}}%
- \mfirstucMakeUppercase{\glsabbrvfont{\glsentryshort{#2}}#3}%
+ \glsuppercase{\glsabbrvfont{\glsentryshort{#2}}#3}%
}%
}
\def\@glsxtr@p@shortpl@#1#2[#3]{%
@@ -3653,33 +5094,33 @@
\def\@GLSxtr@p@shortpl@#1#2[#3]{%
{%
\glssetabbrvfmt{\glscategory{#2}}%
- \mfirstucMakeUppercase{\glsabbrvfont{\glsentryshortpl{#2}}#3}%
+ \glsuppercase{\glsabbrvfont{\glsentryshortpl{#2}}#3}%
}%
}
\def\@glsxtr@p@long@#1#2[#3]{{\glsentrylong{#2}#3}}
\def\@Glsxtr@p@long@#1#2[#3]{{\Glsentrylong{#2}#3}}
\def\@GLSxtr@p@long@#1#2[#3]{%
- {\mfirstucMakeUppercase{\glslongfont{\glsentrylong{#2}}#3}}}
+ {\glsuppercase{\glslongfont{\glsentrylong{#2}}#3}}}
\def\@glsxtr@p@longpl@#1#2[#3]{{\glsentrylongpl{#2}#3}}
\def\@Glsxtr@p@longpl@#1#2[#3]{{\glslongfont{\Glsentrylongpl{#2}}#3}}
\def\@GLSxtr@p@longpl@#1#2[#3]{%
- {\mfirstucMakeUppercase{\glslongfont{\glsentrylongpl{#2}}#3}}}
+ {\glsuppercase{\glslongfont{\glsentrylongpl{#2}}#3}}}
\def\@glsxtr@p@acrshort@#1#2[#3]{{\acronymfont{\glsentryshort{#2}}#3}}
\def\@Glsxtr@p@acrshort@#1#2[#3]{{\acronymfont{\Glsentryshort{#2}}#3}}
\def\@GLSxtr@p@acrshort@#1#2[#3]{%
- {\mfirstucMakeUppercase{\acronymfont{\glsentryshort{#2}}#3}}}
+ {\glsuppercase{\acronymfont{\glsentryshort{#2}}#3}}}
\def\@glsxtr@p@acrshortpl@#1#2[#3]{{\acronymfont{\glsentryshortpl{#2}}#3}}
\def\@Glsxtr@p@acrshortpl@#1#2[#3]{{\acronymfont{\Glsentryshortpl{#2}}#3}}
\def\@GLSxtr@p@acrshortpl@#1#2[#3]{%
- {\mfirstucMakeUppercase{\acronymfont{\glsentryshortpl{#2}}#3}}}
+ {\glsuppercase{\acronymfont{\glsentryshortpl{#2}}#3}}}
\def\@glsxtr@p@acrlong@#1#2[#3]{{\glsentrylong{#2}#3}}
\def\@Glsxtr@p@acrlong@#1#2[#3]{{\Glsentrylong{#2}#3}}
\def\@GLSxtr@p@acrlong@#1#2[#3]{%
- {\mfirstucMakeUppercase{\glsentrylong{#2}#3}}}
+ {\glsuppercase{\glsentrylong{#2}#3}}}
\def\@glsxtr@p@acrlongpl@#1#2[#3]{{\glsentrylongpl{#2}#3}}
\def\@Glsxtr@p@acrlongpl@#1#2[#3]{{\Glsentrylongpl{#2}#3}}
\def\@GLSxtr@p@acrlongpl@#1#2[#3]{%
- {\mfirstucMakeUppercase{\glsentrylongpl{#2}#3}}}
+ {\glsuppercase{\glsentrylongpl{#2}#3}}}
\newcommand*{\@glsxtrp@opt}{hyper=false,noindex}
\newcommand*{\glsxtrsetpopts}[1]{%
\renewcommand*{\@glsxtrp@opt}{#1}%
@@ -3741,51 +5182,29 @@
}%
}%
}
+\newcommand{\glsxtrifintoc}[2]{#2}
+\newcommand*{\glsxtrifheaduc}[3]{%
+ \glsxtrifintoc{#3}{\glsifattribute{#1}{headuc}{true}{#2}{#3}}%
+}
\newrobustcmd*{\glsxtr@headentry@p}[2]{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
- \mfirstucMakeUppercase{\@gls@entry@field{#1}{#2}}%
+ \glsuppercase{\@gls@entry@field{#1}{#2}}%
}%
{%
\@gls@entry@field{#1}{#2}%
}%
}
-\ifdef\texorpdfstring
-{
- \newcommand{\glsxtrp}[2]{%
- \protect\NoCaseChange
- {%
- \protect\texorpdfstring
- {%
- \protect\glsxtrifinmark
- {%
- \ifcsdef{glsxtrhead#1}%
- {%
- {\protect\csuse{glsxtrhead#1}{#2}}%
- }%
- {%
- \glsxtr@headentry@p{#2}{#1}%
- }%
- }%
- {%
- \@glsxtrp{#1}{#2}%
- }%
- }%
- {%
- \protect\@gls@entry@field{#2}{#1}%
- }%
- }%
- }
-}
-{
- \newcommand{\glsxtrp}[2]{%
- \protect\NoCaseChange
+\newcommand{\glsxtrp}[2]{%
+ \protect\NoCaseChange
+ {%
+ \protect\glstexorpdfstring
{%
\protect\glsxtrifinmark
{%
\ifcsdef{glsxtrhead#1}%
{%
- {\protect\csuse{glsxtrhead#1}}%
+ {\protect\csuse{glsxtrhead#1}{#2}}%
}%
{%
\glsxtr@headentry@p{#2}{#1}%
@@ -3795,46 +5214,23 @@
\@glsxtrp{#1}{#2}%
}%
}%
- }
-}
-\newcommand*{\glsps}{\glsxtrp{short}}
-\newcommand*{\glspt}{\glsxtrp{text}}
-\ifdef\texorpdfstring
-{
- \newcommand{\Glsxtrp}[2]{%
- \protect\NoCaseChange
{%
- \protect\texorpdfstring
- {%
- \protect\glsxtrifinmark
- {%
- \ifcsdef{Glsxtrhead#1}%
- {%
- {\protect\csuse{Glsxtrhead#1}{#2}}%
- }%
- {%
- \protect\@Gls@entry@field{#2}{#1}%
- }%
- }%
- {%
- \@Glsxtrp{#1}{#2}%
- }%
- }%
- {%
- \protect\@gls@entry@field{#2}{#1}%
- }%
+ \protect\@gls@entry@field{#2}{#1}%
}%
- }
+ }%
}
-{
- \newcommand{\Glsxtrp}[2]{%
- \protect\NoCaseChange
+\newcommand*{\glsps}{\glsxtrp{short}}
+\newcommand*{\glspt}{\glsxtrp{text}}
+\newcommand{\Glsxtrp}[2]{%
+ \protect\NoCaseChange
+ {%
+ \protect\glstexorpdfstring
{%
\protect\glsxtrifinmark
{%
\ifcsdef{Glsxtrhead#1}%
{%
- {\protect\csuse{Glsxtrhead#1}}%
+ {\protect\csuse{Glsxtrhead#1}{#2}}%
}%
{%
\protect\@Gls@entry@field{#2}{#1}%
@@ -3844,41 +5240,16 @@
\@Glsxtrp{#1}{#2}%
}%
}%
- }
-}
-\ifdef\texorpdfstring
-{
- \newcommand{\GLSxtrp}[2]{%
- \protect\NoCaseChange
{%
- \protect\texorpdfstring
- {%
- \protect\glsxtrifinmark
- {%
- \ifcsdef{GLSxtr#1}%
- {%
- {\protect\GLSxtrshort[noindex,hyper=false]{#1}[]}%
- }%
- {%
- \protect\mfirstucMakeUppercase
- {%
- \protect\@gls@entry@field{#2}{#1}%
- }%
- }%
- }%
- {%
- \@GLSxtrp{#1}{#2}%
- }%
- }%
- {%
- \protect\@gls@entry@field{#2}{#1}%
- }%
+ \MFUsentencecase{\@gls@entry@field{#2}{#1}}%
}%
- }
+ }%
}
-{
- \newcommand{\GLSxtrp}[2]{%
- \protect\NoCaseChange
+\glsmfuaddmap{\glsxtrp}{\Glsxtrp}
+\newcommand{\GLSxtrp}[2]{%
+ \protect\NoCaseChange
+ {%
+ \protect\glstexorpdfstring
{%
\protect\glsxtrifinmark
{%
@@ -3887,7 +5258,7 @@
{\protect\GLSxtrshort[noindex,hyper=false]{#1}[]}%
}%
{%
- \protect\mfirstucMakeUppercase
+ \protect\glsuppercase
{%
\protect\@gls@entry@field{#2}{#1}%
}%
@@ -3897,8 +5268,12 @@
\@GLSxtrp{#1}{#2}%
}%
}%
- }
+ {%
+ \protect\GLSxtrusefield{#2}{#1}%
+ }%
+ }%
}
+\glsmfublocker{\GLSxtrp}
\newcommand*{\@glsxtr@unset}[1]{%
\@@glsunset{#1}%
\glsxtrpostunset{#1}%
@@ -3910,13 +5285,21 @@
}
\newcommand*{\@GlsXtrStartUnsetBuffering}{%
\let\@glsxtr@org@unset@buffer\@glsxtr@unset@buffer
- \def\@glsxtr@unset@buffer{}%
+ \GlsXtrClearUnsetBuffer
\let\@glsunset\@glsxtrbuffer@unset
+ \let\org@glsxtrbuffer@check@repeats\@glsxtrbuffer@check@repeats
+ \renewcommand*{\@glsxtrbuffer@check@repeats}{%
+ \@@glsxtrbuffer@check@repeats
+ }%
}
\newcommand*{\s@GlsXtrStartUnsetBuffering}{%
\let\@glsxtr@org@unset@buffer\@glsxtr@unset@buffer
- \def\@glsxtr@unset@buffer{}%
+ \GlsXtrClearUnsetBuffer
\let\@glsunset\@glsxtrbuffer@nodup@unset
+ \let\org@glsxtrbuffer@check@repeats\@glsxtrbuffer@check@repeats
+ \renewcommand*{\@glsxtrbuffer@check@repeats}{%
+ \@@glsxtrbuffer@check@repeats
+ }%
}
\newcommand*{\@glsxtrbuffer@unset}[1]{%
\listxadd\@glsxtr@unset@buffer{#1}%
@@ -3925,6 +5308,31 @@
\expandafter\ifinlist\expandafter{#1}{\@glsxtr@unset@buffer}{}%
{\listxadd\@glsxtr@unset@buffer{#1}}%
}
+\newcommand*{\@glsxtrbuffer@check@repeats}{}
+\newcommand*{\@@glsxtrbuffer@check@repeats}{}
+\newcommand*{\@@glsxtrbuffer@check@repeats@notused}{}
+\newrobustcmd*{\@@glsxtrbuffer@do@check@repeat}{%
+ \expandafter\ifinlist\expandafter{\glslabel}{\@glsxtr@unset@buffer}%
+ {\@glslocalunset{\glslabel}}%
+ {\GlsXtrIfUnusedOrUndefined\glslabel
+ {\listxadd\@@glsxtrbuffer@check@repeats@notused{\glslabel}}{}}%
+}
+\newcommand*{\GlsXtrUnsetBufferEnableRepeatLocal}{%
+ \def\@@glsxtrbuffer@check@repeats{\@@glsxtrbuffer@do@check@repeat}%
+ \def\@@glsxtrbuffer@check@repeats@notused{}%
+}
+\newcommand*{\GlsXtrUnsetBufferDisableRepeatLocal}{%
+ \def\@@glsxtrbuffer@check@repeats{}%
+ \def\@@glsxtrbuffer@check@repeats@notused{}%
+}
+\newcommand*{\GlsXtrResetLocalBuffer}{%
+ \forlistloop\@glslocalreset\@@glsxtrbuffer@check@repeats@notused
+ \GlsXtrClearUnsetBuffer
+}
+\newcommand*{\GlsXtrClearUnsetBuffer}{%
+ \def\@@glsxtrbuffer@check@repeats@notused{}%
+ \def\@glsxtr@unset@buffer{}%
+}
\newcommand*{\GlsXtrStopUnsetBuffering}{%
\@ifstar\s@GlsXtrStopUnsetBuffering\@GlsXtrStopUnsetBuffering
}
@@ -3932,14 +5340,17 @@
\let\@glsunset\@glsxtr@unset
\forlistloop\@glsunset\@glsxtr@unset@buffer
\let\@glsxtr@unset@buffer\@glsxtr@org@unset@buffer
+ \let\@glsxtrbuffer@check@repeats\org@glsxtrbuffer@check@repeats
}
\newcommand*{\s@GlsXtrStopUnsetBuffering}{%
\forlistloop\@glslocalunset\@glsxtr@unset@buffer
\let\@glsunset\@glsxtr@unset
+ \let\@glsxtrbuffer@check@repeats\org@glsxtrbuffer@check@repeats
}
\newcommand*{\GlsXtrDiscardUnsetBuffering}{%
\let\@glsunset\@glsxtr@unset
\let\@glsxtr@unset@buffer\@glsxtr@org@unset@buffer
+ \let\@glsxtrbuffer@check@repeats\org@glsxtrbuffer@check@repeats
}
\newcommand*{\GlsXtrForUnsetBufferedList}[1]{%
\forlistloop#1\@glsxtr@unset@buffer
@@ -4005,6 +5416,8 @@
}%
}%
}
+\ifdef\glsresetcurrcountfalse{}{\newif\ifglsresetcurrcount}
+\glsresetcurrcountfalse
\renewcommand*{\glsenableentrycount}{%
\appto\@newglossaryentry@defcounters{\@@newglossaryentry@defcounters}%
\renewcommand*{\gls@defdocnewglossaryentry}{%
@@ -4037,12 +5450,16 @@
\let\@glsxtr@entrycount@org@reset\glsxtrpostreset
\renewcommand*{\glsxtrpostreset}[1]{%
\@glsxtr@entrycount@org@reset{##1}%
- \csgdef{glo@\glsdetoklabel{##1}@currcount}{0}%
+ \ifglsresetcurrcount
+ \csgdef{glo@\glsdetoklabel{##1}@currcount}{0}%
+ \fi
}%
\let\@glsxtr@entrycount@org@localreset\glsxtrpostlocalreset
\renewcommand*{\glsxtrpostlocalreset}[1]{%
\@glsxtr@entrycount@org@localreset{##1}%
- \csdef{glo@\glsdetoklabel{##1}@currcount}{0}%
+ \ifglsresetcurrcount
+ \csdef{glo@\glsdetoklabel{##1}@currcount}{0}%
+ \fi
}%
\let\@cgls@\@@cgls@
\let\@cglspl@\@@cglspl@
@@ -4061,6 +5478,14 @@
{Use one or other but not both commands}%
}%
}
+\renewcommand*{\@@newglossaryentry@defcounters}{%
+ \csdef{glo@\@glo@label @currcount}{0}%
+ \ifnum\@glsxtr@docdefval=2\relax
+ \ifcsdef{glo@\@glo@label @prevcount}{}{\csdef{glo@\@glo@label @prevcount}{0}}%
+ \else
+ \csdef{glo@\@glo@label @prevcount}{0}%
+ \fi
+}
\renewcommand*{\@gls@write@entrycounts}{%
\immediate\write\@auxout
{\string\providecommand*{\string\@gls@entry@count}[2]{}}%
@@ -4162,20 +5587,22 @@
\def\@cglspl@#1#2[#3]{\@glspl@{#1}{#2}[#3]}
\def\@cGlspl@#1#2[#3]{\@Glspl@{#1}{#2}[#3]}
\newrobustcmd*{\cGLS}{\@gls@hyp@opt\@cGLS}
+\glsmfublocker{\cGLS}
\newcommand*{\@cGLS}[2][]{%
\new@ifnextchar[{\@cGLS@{#1}{#2}}{\@cGLS@{#1}{#2}[]}%
}
\def\@cGLS@#1#2[#3]{\@GLS@{#1}{#2}[#3]}
\newcommand*{\cGLSformat}[2]{%
- \expandafter\mfirstucMakeUppercase\expandafter{\cglsformat{#1}{#2}}%
+ \expandafter\glsuppercase\expandafter{\cglsformat{#1}{#2}}%
}
\newrobustcmd*{\cGLSpl}{\@gls@hyp@opt\@cGLSpl}
+\glsmfublocker{\cGLSpl}
\newcommand*{\@cGLSpl}[2][]{%
\new@ifnextchar[{\@cGLSpl@{#1}{#2}}{\@cGLSpl@{#1}{#2}[]}%
}
\def\@cGLSpl@#1#2[#3]{\@GLSpl@{#1}{#2}[#3]}
\newcommand*{\cGLSplformat}[2]{%
- \expandafter\mfirstucMakeUppercase\expandafter{\cglsplformat{#1}{#2}}%
+ \expandafter\glsuppercase\expandafter{\cglsplformat{#1}{#2}}%
}
\renewcommand*{\cglsformat}[2]{%
\glsifregular{#1}
@@ -4331,7 +5758,7 @@
\protected@edef\@glsxtr@csname{\@glsxtr@currentunitcount{##1}}%
\ifcsundef{\@glsxtr@csname}%
{}%
- {\csgdef{\@glsxtr@csname}{0}}%
+ {\ifglsresetcurrcount\csgdef{\@glsxtr@csname}{0}\fi}%
}%
{}%
}%
@@ -4343,7 +5770,7 @@
\protected@edef\@glsxtr@csname{\@glsxtr@currentunitcount{##1}}%
\ifcsundef{\@glsxtr@csname}%
{}%
- {\csdef{\@glsxtr@csname}{0}}%
+ {\ifglsresetcurrcount\csdef{\@glsxtr@csname}{0}\fi}%
}%
{}%
}%
@@ -4484,14 +5911,14 @@
\glslink[##1]{##2}{\Genacrfullformat{##2}{##3}}}%
\renewcommand*{\ACRfullfmt}[3]{%
\glslink[##1]{##2}{%
- \mfirstucMakeUppercase{\genacrfullformat{##2}{##3}}}}%
+ \glsuppercase{\genacrfullformat{##2}{##3}}}}%
\renewcommand*{\acrfullplfmt}[3]{%
\glslink[##1]{##2}{\genplacrfullformat{##2}{##3}}}%
\renewcommand*{\Acrfullplfmt}[3]{%
\glslink[##1]{##2}{\Genplacrfullformat{##2}{##3}}}%
\renewcommand*{\ACRfullplfmt}[3]{%
\glslink[##1]{##2}{%
- \mfirstucMakeUppercase{\genplacrfullformat{##2}{##3}}}}%
+ \glsuppercase{\genplacrfullformat{##2}{##3}}}}%
\renewcommand*{\glsentryfull}[1]{\genacrfullformat{##1}{}}%
\renewcommand*{\Glsentryfull}[1]{\Genacrfullformat{##1}{}}%
\renewcommand*{\glsentryfullpl}[1]{\genplacrfullformat{##1}{}}%
@@ -4579,6 +6006,14 @@
\ifdim\dimen@<\glsacspacemax~\else\space\fi
}
\newcommand*{\glsacspacemax}{3em}
+\newrobustcmd*{\glsabspace}[1]{%
+ \settowidth{\dimen@}{(\glsfirstabbrvfont{\glsentryshort{#1}})}%
+ \ifdim\dimen@<\glsacspacemax
+ \glsxtrgenentrytextfmt{~}%
+ \else
+ \glsxtrgenentrytextfmt{ }%
+ \fi
+}
\newcommand*{\@glsxtr@reg@glosslist}{}
\let\@glsxtr@org@makeglossaries\makeglossaries
\providecommand\@makeglossaries@warn@noprintglossary{%
@@ -4595,7 +6030,17 @@
}%
}%
\providecommand{\@domakeglossaries}[1]{#1}
+\providecommand{\@gls@automake@types}{\@glo@types}
\renewcommand*{\makeglossaries}[1][]{%
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@alsoindex
+ \edef\glsindexingsetting{bib2gls-\ifglsxindy xindy\else makeindex\fi}%
+ \else
+ \ifglsxindy
+ \def\glsindexingsetting{xindy}%
+ \else
+ \def\glsindexingsetting{makeindex}%
+ \fi
+ \fi
\@domakeglossaries
{%
\@glsxtr@if@record@only
@@ -4621,8 +6066,10 @@
{You may only use the hybrid \string\makeglossaries[...]\space with
record=off option}%
\else
- \ifdef\@gls@@automake@immediate{\@gls@@automake@immediate}{}%
+ \appto\glsindexingsetting{-noidx}%
\protected@edef\@glsxtr@reg@glosslist{#1}%
+ \let\@gls@automake@types\@glsxtr@reg@glosslist
+ \ifdef\@gls@@automake@immediate{\@gls@@automake@immediate}{}%
\ifundef{\glswrite}{\newwrite\glswrite}{}%
\protected@write\@auxout{}{\string\providecommand
\string\@glsorder[1]{}}
@@ -4739,9 +6186,15 @@
\ifdef\@glo@check@sortallowed{\@glo@check@sortallowed\makeglossaries}{}%
\fi
}%
+ \prohibit@glsxtrnoidxgroups
+ \let\gls@warn@makegloss@incompatible\@gls@warn@makegloss@incompatible
}%
}%
}
+\newcommand*{\gls@warn@makegloss@incompatible}[2]{}
+\newcommand*{\@gls@warn@makegloss@incompatible}[2]{%
+ #2\GlossariesExtraWarning{#1\space is incompatible with \string\makeglossaries}%
+}
\ifdef\@printgloss@checkexists
{\newcommand{\glsxtr@printgloss@checkexists}{\@printgloss@checkexists}}
{\newcommand{\glsxtr@printgloss@checkexists}[2]{#2}}
@@ -4757,7 +6210,7 @@
\ifx\@glossary@default@style\relax
\GlossariesWarning{No default glossary style provided \MessageBreak
for the glossary `\@glo@type'. \MessageBreak
- Using deprecated fallback. \MessageBreak
+ Using fallback. \MessageBreak
To fix this set the style with \MessageBreak
\string\setglossarystyle\space or use the \MessageBreak
style key=value option}%
@@ -4851,6 +6304,12 @@
\define@key{printgloss}{label}{%
\glsxtrsetglossarylabel{#1}%
}
+\define@key{printgloss}{preamble}{%
+ \renewcommand{\glossarypreamble}{#1}%
+}
+\define@key{printgloss}{postamble}{%
+ \renewcommand{\glossarypostamble}{#1}%
+}
\newcommand{\glsxtrsetglossarylabel}[1]{%
\renewcommand*{\@@glossaryseclabel}{%
\protected@edef\@currentlabelname{\glossarytoctitle}%
@@ -4860,6 +6319,8 @@
\newcount\@glsxtr@leveloffset
\define@key{printgloss}{leveloffset}{%
\@glsxtr@assign@leveloffset#1\relax
+ \gls@warn@noidxmakegloss@incompatible{option `leveloffset'}
+ {\@glsxtr@leveloffset=0\relax}%
}
\newcommand*{\@glsxtr@assign@leveloffset}{%
\@ifnextchar+{\p@glsxtr@assign@leveloffset}{\np@glsxtr@assign@leveloffset}%
@@ -4869,8 +6330,21 @@
}
\def\np@glsxtr@assign@leveloffset#1\relax{\@glsxtr@leveloffset=#1\relax}
\def\pp@glsxtr@assign@leveloffset#1\relax{\advance\@glsxtr@leveloffset by #1\relax}
-\define@boolkey{printgloss}[glsxtr@printgloss@]{groups}[true]{}
+\define@boolkey{printgloss}[glsxtr@printgloss@]{groups}[true]{%
+ \ifglsxtr@printgloss@groups
+ \else
+ \gls@warn@noidxmakegloss@incompatible{option `groups'}%
+ {\glsxtr@printgloss@groupstrue}%
+ \fi
+}
\glsxtr@printgloss@groupstrue
+\define@boolkey{printgloss}[glsxtrprintgloss]{flatten}[true]{%
+ \ifglsxtrprintglossflatten
+ \gls@warn@noidxmakegloss@incompatible{option `flatten'}%
+ {\glsxtrprintglossflattenfalse}%
+ \fi
+}
+\glsxtrprintglossflattenfalse
\let\@glsxtr@org@glsdohypertarget\glsdohypertarget
\renewcommand{\glsdohypertarget}[2]{%
\@glsxtr@org@glsdohypertarget{\@glsxtrhypernameprefix#1}{#2}%
@@ -4992,11 +6466,29 @@
}%
}
\let\glsxtr@org@getgrouptitle\@gls@getgrouptitle
+\newcommand*{\glsxtrnoidxgroups}{%
+ \ifdefequal\@glsxtr@record@setting\@glsxtr@record@setting@off
+ {%
+ \let\@gls@getgrouptitle\@gls@noidx@getgrouptitle
+ \let\glsxtr@org@getgrouptitle\@gls@getgrouptitle
+ }%
+ {\PackageError{glossaries-extra}{Can't use
+ \string\glsxtrunsrtgrouptonoidx\space with record=\@glsxtr@record@setting}
+ {\string\glsxtrunsrtgrouptonoidx\space is only available with record=off}}%
+ \global\let\prohibit@glsxtrnoidxgroups\@glsxtrnoidxgroups@nomakegloss
+}
+\newcommand{\@glsxtrnoidxgroups@nomakegloss}{%
+ \PackageError{glossaries-extra}{Can't use
+ \string\glsxtrunsrtgrouptonoidx\space with \string\makeglossaries}{}
+}
+\newcommand{\prohibit@glsxtrnoidxgroups}{%
+ \global\let\glsxtrnoidxgroups\@glsxtrnoidxgroups@nomakegloss
+}
\newrobustcmd{\glsxtrgetgrouptitle}[2]{%
- \protected@edef\@glsxtr@titlelabel{glsxtr@grouptitle@#1}%
- \@onelevel@sanitize\@glsxtr@titlelabel
- \ifcsdef{\@glsxtr@titlelabel}
- {\letcs{#2}{\@glsxtr@titlelabel}}%
+ \protected@edef\@glsxtr@titlecsname{glsxtr@grouptitle@#1}%
+ \@onelevel@sanitize\@glsxtr@titlecsname
+ \ifcsdef{\@glsxtr@titlecsname}
+ {\letcs{#2}{\@glsxtr@titlecsname}}%
{\glsxtr@org@getgrouptitle{#1}{#2}}%
}
\let\@gls@getgrouptitle\glsxtrgetgrouptitle
@@ -5347,8 +6839,12 @@
}
\newcommand*{\GlsXtrDefaultResourceOptions}{}
\newcommand*{\glsxtrresourcefile}[2][]{%
+ \@glsxtr@if@record@only
+ {\renewcommand{\glsindexingsetting}{bib2gls}}%
+ {\edef\glsindexingsetting{bib2gls-\ifglsxindy xindy\else makeindex\fi}}%
\disable@keys{glossaries-extra.sty}{record}%
\glsxtr@writefields
+ \glsxtr@save@mfu
\ifdefempty\GlsXtrDefaultResourceOptions
{%
\protected@write\@auxout{\glsxtrresourceinit}%
@@ -5396,6 +6892,28 @@
\advance\glsxtrresourcecount by 1\relax
}
\newcommand*{\glsxtr@resource}[2]{}
+\newcommand*{\glsxtrMFUsave}{%
+ \ifdef\MFUsave
+ {%
+ \AtBeginDocument{\MFUsave}%
+ }%
+ {%
+ \GlossariesExtraWarning{mfirstuc.sty too old,
+ \string\glsxtrMFUsave\space has no effect. You need to upgrade
+ to mfirstuc v2.08}%
+ }%
+ \let\glsxtrMFUsave\relax
+}
+\ifdef\MFUsave
+{
+ \newcommand*{\glsxtr@save@mfu}{%
+ \glsxtrMFUsave
+ \let\glsxtr@save@mfu\relax
+ }
+}
+{
+ \newcommand*{\glsxtr@save@mfu}{}
+}
\newcommand*{\glsxtr@fields}[1]{}
\newcommand*{\glsxtr@texencoding}[1]{}
\newcommand*{\glsxtr@langtag}[1]{}
@@ -5429,14 +6947,12 @@
\protected@write\@auxout{}{\string\glsxtr@pluralsuffixes
{\glspluralsuffix}{\abbrvpluralsuffix}{\acrpluralsuffix}%
{\glsxtrabbrvpluralsuffix}}%
- \ifdef\inputencodingname
+ \ifdefvoid\inputencodingname
{%
- \protected@write\@auxout{}{\string\glsxtr@texencoding{\inputencodingname}}%
+ \protected@write\@auxout{}{\string\glsxtr@texencoding{utf8}}%
}%
{%
- \@ifpackageloaded{fontspec}%
- {\protected@write\@auxout{}{\string\glsxtr@texencoding{utf8}}}%
- {}%
+ \protected@write\@auxout{}{\string\glsxtr@texencoding{\inputencodingname}}%
}%
\protected@write\@auxout{}{\string\glsxtr@shortcutsval{\@glsxtr@shortcutsval}}%
\AtBeginDocument
@@ -5458,33 +6974,41 @@
}%
{}%
}
-\newcommand*{\@gls@doautomake@err}{%
- \PackageError{glossaries}{You must use
- \string\makeglossaries\space with automake=true}
- {%
- Either remove the automake=true setting or
- add \string\makeglossaries\space to your document preamble.%
- }%
+\ifdef{\@gls@do@automake@err}
+{
+ \let\@gls@doautomake@err\@gls@do@automake@err
+}
+{
+ \newcommand*{\@gls@doautomake@err}{%
+ \PackageError{glossaries}{You must use
+ \string\makeglossaries\space with automake=true}
+ {%
+ Either remove the automake=true setting or
+ add \string\makeglossaries\space to your document preamble.%
+ }%
+ }
}
\newcommand*{\glsxtr@record}[5]{}
\newcommand*{\glsxtr@record@nameref}[8]{}
\newcommand*{\glsxtr@counterrecord}[3]{%
\glsxtrfieldlistgadd{#1}{record.#2}{#3}%
+ \glsxtrAddCounterRecordHook{#1}{#2}{#3}%
}
+\newcommand{\glsxtrAddCounterRecordHook}[3]{}
\newcommand*{\@glsxtr@counterrecordhook}{}
\newcommand*{\GlsXtrRecordCounter}[1]{%
\@@glsxtr@recordcounter{#1}%
}
\@onlypreamble\GlsXtrRecordCounter
\newcommand*{\@glsxtr@docounterrecord}[1]{%
- \protected@write\@auxout{}{\string\glsxtr@counterrecord
+ \@bibgls@write@aux{}{\string\glsxtr@counterrecord
{\@gls@label}{#1}{\csuse{the#1}}}%
}
\newcommand*{\glsxtrglossentry}[1]{%
\glsxtrtitleorpdforheading
{\@glsxtrglossentry{#1}}%
- {\glsentryname{#1}}%
- {\glsxtrheadname{#1}}%
+ {\GlsXtrStandaloneEntryPdfName{#1}}%
+ {\GlsXtrStandaloneEntryHeadName{#1}}%
}
\newrobustcmd*{\@glsxtrglossentry}[1]{%
\glsxtrtitleorpdforheading
@@ -5501,8 +7025,14 @@
\endgroup
}%
}%
- {\glsentryname{#1}}%
- {\glsxtrheadname{#1}}%
+ {\GlsXtrStandaloneEntryPdfName{#1}}%
+ {\GlsXtrStandaloneEntryHeadName{#1}}%
+}
+\newcommand*{\GlsXtrStandaloneEntryHeadName}[1]{%
+ \glsxtrheadname{#1}%
+}
+\newcommand*{\GlsXtrStandaloneEntryPdfName}[1]{%
+ \glsentryname{#1}%
}
\newcommand*{\GlsXtrStandaloneEntryName}[1]{%
\glstarget{#1}{\glossentryname{#1}}%
@@ -5514,27 +7044,26 @@
\newcommand*{\glsxtrglossentryother}[3]{%
\ifstrempty{#1}%
{%
- \ifcsdef{glsxtrhead#3}%
- {%
- \glsxtrtitleorpdforheading
- {\@glsxtrglossentryother{#2}{#3}{#1}}%
- {\@gls@entry@field{#2}{#3}}%
- {\csuse{glsxtrhead#3}{#2}}%
- }%
- {%
- \glsxtrtitleorpdforheading
- {\@glsxtrglossentryother{#2}{#3}{#1}}%
- {\@gls@entry@field{#2}{#3}}%
- {\@gls@entry@field{\NoCaseChange{#2}}{#3}}%
- }%
+ \glsxtrtitleorpdforheading
+ {\@glsxtrglossentryother{#2}{#3}{\GlsXtrStandaloneEntryHeadOther{#3}{#2}}}%
+ {\GlsXtrStandaloneEntryPdfOther{#2}{#3}}%
+ {\GlsXtrStandaloneEntryHeadOther{#3}{#2}}%
}%
{%
\glsxtrtitleorpdforheading
{\@glsxtrglossentryother{#2}{#3}{#1}}%
- {\@gls@entry@field{#2}{#3}}%
+ {\GlsXtrStandaloneEntryPdfOther{#2}{#3}}%
{#1}%
}%
}
+\newcommand*{\GlsXtrStandaloneEntryHeadOther}[2]{%
+ \ifcsdef{glsxtrhead#2}%
+ {\csuse{glsxtrhead#2}{#1}}%
+ {\@gls@entry@field{\NoCaseChange{#1}}{#2}}%
+}
+\newcommand*{\GlsXtrStandaloneEntryPdfOther}[2]{%
+ \@gls@entry@field{#1}{#2}%
+}
\newrobustcmd*{\@glsxtrglossentryother}[3]{%
\glsxtrtitleorpdforheading
{%
@@ -5546,11 +7075,11 @@
\ifglshasparent{#1}%
{\GlsXtrStandaloneSubEntryItem{#1}}%
{\glsentryitem{#1}}%
- \GlsXtrStandaloneEntryOther{#1}%
+ \GlsXtrStandaloneEntryOther{#1}{#2}%
\endgroup
}%
}%
- {\@gls@entry@field{#1}{#2}}%
+ {\GlsXtrStandaloneEntryPdfOther{#1}{#2}}%
{#3}%
}
\newcommand*{\GlsXtrStandaloneEntryOther}[2]{%
@@ -5589,10 +7118,7 @@
\GlossariesExtraWarning{No entries defined in glossary `\@glo@type'}%
}%
{%
- \key@ifundefined{glossentry}{group}%
- {\let\@gls@getgrouptitle\@gls@noidx@getgrouptitle}%
- {\let\@gls@getgrouptitle\@glsxtr@unsrt@getgrouptitle}%
- \def\@gls@currentlettergroup{}%
+ \@glsxtr@unsrt@gloss@init
\def\@glsxtr@doglossary{%
\begin{theglossary}%
\glossaryheader
@@ -5603,18 +7129,15 @@
\ifdefempty{\glscurrententrylabel}
{}%
{%
- \let\glsxtr@process\@firstofone
- \let\printunsrtglossaryskipentry
- \@glsxtr@printunsrtglossaryskipentry
- \printunsrtglossaryentryprocesshook{\glscurrententrylabel}%
+ \@gls@xtr@initprocess
\glsxtr@process
{%
\ifglsxtr@printgloss@groups
- \ifglshasparent{\glscurrententrylabel}{}%
+ \glsxtraddgroup\glscurrententrylabel
{%
- \@glsxtr@checkgroup\glscurrententrylabel
- \expandafter\appto\expandafter\@glsxtr@doglossary\expandafter
- {\@glsxtr@groupheading}%
+ \@glsxtr@checkgroup\glscurrententrylabel
+ \expandafter\appto\expandafter\@glsxtr@doglossary\expandafter
+ {\@glsxtr@groupheading}%
}%
\fi
\protected@eappto\@glsxtr@doglossary{%
@@ -5628,6 +7151,37 @@
}%
\glossarypostamble
}
+\newcommand*{\@glsxtr@unsrt@gloss@init}{%
+ \key@ifundefined{glossentry}{group}%
+ {\let\@gls@getgrouptitle\@gls@noidx@getgrouptitle}%
+ {\let\@gls@getgrouptitle\@glsxtr@unsrt@getgrouptitle}%
+ \def\@gls@currentlettergroup{}%
+ \def\@gls@currentlettergroup@level{-1}%
+ \def\glscurrententrylevel{-1}%
+ \def\glscurrentrootentry{}%
+ \def\glscurrenttoplevelentry{}%
+}
+\newcommand*{\@gls@xtr@initprocess}{%
+ \ifglsxtrprintglossflatten
+ \edef\glscurrententrylevel{\number\@glsxtr@leveloffset}%
+ \else
+ \edef\glscurrententrylevel{%
+ \number\numexpr\csname glo@\glscurrententrylabel @level\endcsname
+ + \@glsxtr@leveloffset}%
+ \fi
+ \ifnum\glscurrententrylevel=0\relax
+ \let\glscurrenttoplevelentry\glscurrententrylabel
+ \fi
+ \ifglsxtrprintglossflatten
+ \let\glscurrentrootentry\glscurrententrylabel
+ \else
+ \ifglshasparent{\glscurrententrylabel}{}%
+ {\let\glscurrentrootentry\glscurrententrylabel}%
+ \fi
+ \let\glsxtr@process\@firstofone
+ \let\printunsrtglossaryskipentry\@glsxtr@printunsrtglossaryskipentry
+ \printunsrtglossaryentryprocesshook{\glscurrententrylabel}%
+}
\newcommand*{\printunsrtinnerglossary}[3][]{%
\begingroup
\def\@glsxtr@printglossopts{#1}%
@@ -5650,7 +7204,7 @@
\ifx\@glossary@default@style\relax
\GlossariesWarning{No default glossary style provided \MessageBreak
for the glossary `\@glo@type'. \MessageBreak
- Using deprecated fallback. \MessageBreak
+ Using fallback. \MessageBreak
To fix this set the style with \MessageBreak
\string\setglossarystyle\space or use the \MessageBreak
style key=value option}%
@@ -5705,28 +7259,22 @@
\GlossariesExtraWarning{No entries defined in glossary `\@glo@type'}%
}%
{%
- \key@ifundefined{glossentry}{group}%
- {\let\@gls@getgrouptitle\@gls@noidx@getgrouptitle}%
- {\let\@gls@getgrouptitle\@glsxtr@unsrt@getgrouptitle}%
- \def\@gls@currentlettergroup{}%
+ \@glsxtr@unsrt@gloss@init
\def\@glsxtr@doglossary{}%
\expandafter\@for\expandafter\glscurrententrylabel\expandafter
:\expandafter=\csname glolist@\@glo@type\endcsname\do{%
\ifdefempty{\glscurrententrylabel}
{}%
{%
- \let\glsxtr@process\@firstofone
- \let\printunsrtglossaryskipentry
- \@glsxtr@printunsrtglossaryskipentry
- \printunsrtglossaryentryprocesshook{\glscurrententrylabel}%
+ \@gls@xtr@initprocess
\glsxtr@process
{%
\ifglsxtr@printgloss@groups
- \ifglshasparent{\glscurrententrylabel}{}%
+ \glsxtraddgroup\glscurrententrylabel
{%
- \@glsxtr@checkgroup\glscurrententrylabel
- \expandafter\appto\expandafter\@glsxtr@doglossary\expandafter
- {\@glsxtr@groupheading}%
+ \@glsxtr@checkgroup\glscurrententrylabel
+ \expandafter\appto\expandafter\@glsxtr@doglossary\expandafter
+ {\@glsxtr@groupheading}%
}%
\fi
\protected@eappto\@glsxtr@doglossary{%
@@ -5738,6 +7286,13 @@
\@glsxtr@doglossary
}%
}
+\newcommand*{\glsxtraddgroup}[2]{%
+ \ifglsxtrprintglossflatten
+ #2%
+ \else
+ \ifglshasparent{#1}{}{#2}%
+ \fi
+}
\newcommand*{\printunsrtglossaryentryprocesshook}[1]{}
\newcommand*{\printunsrtglossaryskipentry}{%
\PackageError{glossaries-extra}{\string\printunsrtglossaryskipentry\space
@@ -5777,8 +7332,9 @@ can only be used within \string\printunsrtglossaryentryprocesshook}{}%
\renewcommand*{\@glsxtrhypernameprefix}{record.#1.\csuse{theH#1}.\@gobble}%
}%
\renewcommand*{\glossarysection}[2][]{}%
- \appto\glossarypostamble{\glspar\medskip\glspar}%
+ \appto\glossarypostamble{\printunsrtglossaryunitpostskip}%
}
+\newcommand*{\printunsrtglossaryunitpostskip}{\glspar\medskip\glspar}
\newcommand{\print@noop@unsrtglossaryunit}[2][]{%
\PackageError{glossaries-extra}{\string\printunsrtglossaryunit\space
requires the record=only or record=alsoindex package option}{}%
@@ -5803,24 +7359,47 @@ can only be used within \string\printunsrtglossaryentryprocesshook}{}%
\protected@edef\@glo@thislettergrp{%
\csuse{glo@\glsdetoklabel{#1}@\glsxtrgroupfield}}%
}%
- \ifdefequal{\@glo@thislettergrp}{\@gls@currentlettergroup}%
+ \ifcsundef{@gls@currentlettergroup\romannumeral\glscurrententrylevel}%
+ {\csdef{@gls@currentlettergroup\romannumeral\glscurrententrylevel}{}}{}%
+ \ifcsequal{@glo@thislettergrp}{@gls@currentlettergroup\romannumeral\glscurrententrylevel}%
{}%
{%
- \ifdefempty{\@gls@currentlettergroup}{}%
- {\def\@glsxtr@groupheading{\glsgroupskip}}%
- \protected@eappto\@glsxtr@groupheading{%
- \noexpand\glsgroupheading{\expandonce\@glo@thislettergrp}%
+ \ifdefempty\@glo@thislettergrp
+ {}%
+ {%
+ \ifnum\glscurrententrylevel>0\relax
+ \protected@eappto\@glsxtr@groupheading{%
+ \noexpand\glssubgroupheading
+ {\@gls@currentlettergroup@level}{\glscurrententrylevel}%
+ {\csuse{glo@\glsdetoklabel{#1}@parent}}%
+ {\expandonce\@glo@thislettergrp}%
+ }%
+ \else
+ \ifdefempty{\@gls@currentlettergroup}{}%
+ {%
+ \def\@glsxtr@groupheading{\glsgroupskip}%
+ }%
+ \protected@eappto\@glsxtr@groupheading{%
+ \noexpand\glsgroupheading{\expandonce\@glo@thislettergrp}%
+ }%
+ \fi
+ \let\@gls@currentlettergroup@level\glscurrententrylevel
+ \cslet{@gls@currentlettergroup\romannumeral\glscurrententrylevel}\@glo@thislettergrp
}%
}%
- \let\@gls@currentlettergroup\@glo@thislettergrp
}
+\newcommand*{\glssubgroupheading}[4]{\glsgroupheading{#4}}
\newcommand*{\GlsXtrLocationField}{location}
\newcommand{\@glsxtr@noidx@do}[1]{%
\ifglsentryexists{#1}%
{%
\global\letcs{\@gls@loclist}{glo@\glsdetoklabel{#1}@loclist}%
\global\letcs{\@gls@location}{glo@\glsdetoklabel{#1}@\GlsXtrLocationField}%
- \gls@level=\numexpr\csuse{glo@\glsdetoklabel{#1}@level}+\@glsxtr@leveloffset\relax
+ \ifglsxtrprintglossflatten
+ \gls@level=\@glsxtr@leveloffset\relax
+ \else
+ \gls@level=\numexpr\csuse{glo@\glsdetoklabel{#1}@level}+\@glsxtr@leveloffset\relax
+ \fi
\ifnum\gls@level>0
\let\@glsxtr@ifischild\@firstoftwo
\else
@@ -5830,16 +7409,22 @@ can only be used within \string\printunsrtglossaryentryprocesshook}{}%
{%
\ifdefvoid{\@gls@location}%
{%
- \ifdefvoid{\@gls@loclist}%
+ \ifdefstring{\GlsXtrLocationField}{location}%
{%
- \expandafter\subglossentry\expandafter{\number\gls@level}{#1}{}%
- }%
- {%
- \expandafter\subglossentry\expandafter{\number\gls@level}{#1}%
+ \ifdefvoid{\@gls@loclist}%
+ {%
+ \expandafter\subglossentry\expandafter{\number\gls@level}{#1}{}%
+ }%
{%
- \glossaryentrynumbers{\glsnoidxloclist{\@gls@loclist}}%
+ \expandafter\subglossentry\expandafter{\number\gls@level}{#1}%
+ {%
+ \glossaryentrynumbers{\glsnoidxloclist{\@gls@loclist}}%
+ }%
}%
}%
+ {%
+ \expandafter\subglossentry\expandafter{\number\gls@level}{#1}{}%
+ }%
}%
{%
\expandafter\subglossentry\expandafter
@@ -5849,16 +7434,22 @@ can only be used within \string\printunsrtglossaryentryprocesshook}{}%
{%
\ifdefvoid{\@gls@location}%
{%
- \ifdefvoid{\@gls@loclist}
+ \ifdefstring{\GlsXtrLocationField}{location}%
{%
- \glossentry{#1}{}%
- }%
- {%
- \glossentry{#1}%
+ \ifdefvoid{\@gls@loclist}
+ {%
+ \glossentry{#1}{}%
+ }%
{%
- \glossaryentrynumbers{\glsnoidxloclist{\@gls@loclist}}%
+ \glossentry{#1}%
+ {%
+ \glossaryentrynumbers{\glsnoidxloclist{\@gls@loclist}}%
+ }%
}%
}%
+ {%
+ \glossentry{#1}{}%
+ }%
}%
{%
\glossentry{#1}%
@@ -5871,18 +7462,83 @@ can only be used within \string\printunsrtglossaryentryprocesshook}{}%
{}%
}
\newcount\@glsxtrnewgls@inner
+\newcommand*{\glsxtrdoidentify}[1]{%
+ \ifdefequal\@glsxtr@record@setting\@glsxtr@record@setting@off{}{#1}%
+}
\newcommand*{\@glsxtr@providenewgls}{%
\protected@write\@auxout{}{\string\providecommand{\string\@glsxtr@newglslike}[2]{}}%
\let\@glsxtr@providenewgls\relax
}
\newcommand{\glsxtridentifyglslike}[2]{%
- \ifdefequal\@glsxtr@record@setting\@glsxtr@record@setting@off
- {}%
+ \glsmfublocker{#2}%
+ \glsxtrdoidentify
{%
\@glsxtr@providenewgls
\protected@write\@auxout{}{\string\@glsxtr@newglslike{#1}{\string#2}}%
}%
}
+\newcommand*{\@glsxtr@providenewglsfamily}{%
+ \protected@write\@auxout{}{\string\providecommand{\string\@glsxtr@newglslikefamily}[8]{}}%
+ \let\@glsxtr@providenewglsfamily\relax
+}
+\newcommand{\glsxtridentifyglsfamily}[8]{%
+ \glsmfuaddmap{#3}{#5}%
+ \glsmfuaddmap{#4}{#6}%
+ \glsmfublocker{#7}%
+ \glsmfublocker{#8}%
+ \glsxtrdoidentify
+ {%
+ \@glsxtr@providenewglsfamily
+ \protected@write\@auxout{}{\string\@glsxtr@newglslikefamily{\detokenize{#1}}{\detokenize{#2}}{\detokenize{#3}}{\detokenize{#4}}{\detokenize{#5}}{\detokenize{#6}}{\detokenize{#7}}{\detokenize{#8}}}%
+ }%
+}
+\newcommand*{\@glsxtr@providenewglslink}{%
+ \protected@write\@auxout{}{\string\providecommand{\string\@glsxtr@newglslink}[2]{}}%
+ \let\@glsxtr@providenewglslink\relax
+}
+\newcommand{\glsxtridentifyglslink}[2]{%
+ \glsmfublocker{#2}%
+ \glsxtrdoidentify
+ {%
+ \@glsxtr@providenewglslink
+ \protected@write\@auxout{}{\string\@glsxtr@newglslink{#1}{\string#2}}%
+ }%
+}
+\newcommand*{\@glsxtrnewglslink}[4]{%
+ \ifdef{#3}%
+ {%
+ \PackageError{glossaries-extra}{Command \string#3\space already
+defined}{}%
+ }%
+ {%
+ \glsxtridentifyglslink{#2}{#3}%
+ \ifcsdef{@#4link@#2}%
+ {%
+ \advance\@glsxtrnewgls@inner by \@ne
+ \def\@glsxtrnewgls@innercsname{@#4link\number\@glsxtrnewgls@inner @#2}%
+ }%
+ {\def\@glsxtrnewgls@innercsname{@#4link@#2}}%
+ \expandafter\newrobustcmd\expandafter*\expandafter
+ #3\expandafter{\expandafter\@gls@hyp@opt\csname\@glsxtrnewgls@innercsname\endcsname}%
+ \ifstrempty{#1}%
+ {%
+ \expandafter\newcommand\expandafter*\csname\@glsxtrnewgls@innercsname\endcsname[2][]{%
+ \csname #4\endcsname{##1}{#2##2}%
+ }%
+ }%
+ {%
+ \expandafter\newcommand\expandafter*\csname\@glsxtrnewgls@innercsname\endcsname[2][]{%
+ \csname #4\endcsname{#1,##1}{#2##2}%
+ }%
+ }%
+ }%
+}
+\newrobustcmd*{\glsxtrnewglslink}[3][]{%
+ \@glsxtrnewglslink{#1}{#2}{#3}{@gls@@link}%
+}
+\newrobustcmd*{\glsxtrnewglsdisp}[3][]{%
+ \@glsxtrnewglslink{#1}{#2}{#3}{@glsdisp}%
+}
\newcommand*{\@glsxtrnewgls}[4]{%
\ifdef{#3}%
{%
@@ -5920,12 +7576,14 @@ defined}{}%
\@glsxtrnewgls{#1}{#2}{#3}{gls}%
}
\newrobustcmd*{\glsxtrnewglslike}[6][]{%
+ \glsxtridentifyglsfamily{#1}{#2}{#3}{#4}{#5}{#6}{}{}%
\@glsxtrnewgls{#1}{#2}{#3}{gls}%
\@glsxtrnewgls{#1}{#2}{#4}{glspl}%
\@glsxtrnewgls{#1}{#2}{#5}{Gls}%
\@glsxtrnewgls{#1}{#2}{#6}{Glspl}%
}
\newrobustcmd*{\glsxtrnewGLSlike}[4][]{%
+ \glsxtridentifyglsfamily{#1}{#2}{}{}{}{}{#3}{#4}%
\@glsxtrnewgls{#1}{#2}{#3}{GLS}%
\@glsxtrnewgls{#1}{#2}{#4}{GLSpl}%
}
@@ -5933,12 +7591,14 @@ defined}{}%
\@glsxtrnewgls{#1}{#2}{#3}{rgls}%
}
\newrobustcmd*{\glsxtrnewrglslike}[6][]{%
+ \glsxtridentifyglsfamily{#1}{#2}{#3}{#4}{#5}{#6}{}{}%
\@glsxtrnewgls{#1}{#2}{#3}{rgls}%
\@glsxtrnewgls{#1}{#2}{#4}{rglspl}%
\@glsxtrnewgls{#1}{#2}{#5}{rGls}%
\@glsxtrnewgls{#1}{#2}{#6}{rGlspl}%
}
\newrobustcmd*{\glsxtrnewrGLSlike}[4][]{%
+ \glsxtridentifyglsfamily{#1}{#2}{}{}{}{}{#3}{#4}%
\@glsxtrnewgls{#1}{#2}{#3}{rGLS}%
\@glsxtrnewgls{#1}{#2}{#4}{rGLSpl}%
}
@@ -5965,6 +7625,12 @@ defined}{}%
\renewcommand*{\Glspl}{\rGlspl}%
\renewcommand*{\GLS}{\rGLS}%
\renewcommand*{\GLSpl}{\rGLSpl}%
+ \renewcommand{\shortcut@gls}{\rgls}%
+ \renewcommand{\shortcut@glspl}{\rglspl}%
+ \renewcommand{\shortcut@Gls}{\rGls}%
+ \renewcommand{\shortcut@Glspl}{\rGlspl}%
+ \renewcommand{\shortcut@GLS}{\rGLS}%
+ \renewcommand{\shortcut@GLSpl}{\rGLSpl}%
}
\newcommand*{\glsxtrrecordtriggervalue}[1]{%
\GlsXtrTotalRecordCount{#1}%
@@ -6000,6 +7666,7 @@ defined}{}%
\def\@glsxtr@thevalue{}%
\def\@glsxtr@theHvalue{\@glsxtr@thevalue}%
\@gls@save@glslocal
+ \glsinitreunsets
\glsxtrinitwrgloss
\glslinkpresetkeys
\setkeys{glslink}{#1}%
@@ -6015,12 +7682,12 @@ defined}{}%
\glslinkwrcontent
{%
\ifglsxtrinitwrglossbefore
- \@do@wrglossary{#2}%
+ \glsxtr@wrglossary@encap{#2}{\@do@wrglossary{#2}}%
\fi
#3%
\ifglsxtrinitwrglossbefore
\else
- \@do@wrglossary{#2}%
+ \glsxtr@wrglossary@encap{#2}{\@do@wrglossary{#2}}%
\fi
}%
\@gls@restore@glslocal
@@ -6054,6 +7721,7 @@ defined}{}%
}%
}%
\newrobustcmd*{\rGls}{\@gls@hyp@opt\@rGls}
+\glsmfuaddmap{\rgls}{\rGls}
\newcommand*{\@rGls}[2][]{%
\new@ifnextchar[{\@rGls@{#1}{#2}}{\@rGls@{#1}{#2}[]}%
}
@@ -6067,6 +7735,7 @@ defined}{}%
}%
}%
\newrobustcmd*{\rGlspl}{\@gls@hyp@opt\@rGlspl}
+\glsmfuaddmap{\rglspl}{\rGlspl}
\newcommand*{\@rGlspl}[2][]{%
\new@ifnextchar[{\@rGlspl@{#1}{#2}}{\@rGlspl@{#1}{#2}[]}%
}
@@ -6080,6 +7749,7 @@ defined}{}%
}%
}%
\newrobustcmd*{\rGLS}{\@gls@hyp@opt\@rGLS}
+\glsmfublocker{\rGLS}%
\newcommand*{\@rGLS}[2][]{%
\new@ifnextchar[{\@rGLS@{#1}{#2}}{\@rGLS@{#1}{#2}[]}%
}
@@ -6093,6 +7763,7 @@ defined}{}%
}%
}%
\newrobustcmd*{\rGLSpl}{\@gls@hyp@opt\@rGLSpl}
+\glsmfublocker{\rGLSpl}%
\newcommand*{\@rGLSpl}[2][]{%
\new@ifnextchar[{\@rGLSpl@{#1}{#2}}{\@rGLSpl@{#1}{#2}[]}%
}
@@ -6126,10 +7797,10 @@ defined}{}%
{\ifglshaslong{#1}{\Glsentrylongplural{#1}}{\Glsentryfirstplural{#1}}}#2%
}
\newcommand*{\rGLSformat}[2]{%
- \expandafter\mfirstucMakeUppercase\expandafter{\rglsformat{#1}{#2}}%
+ \expandafter\glsuppercase\expandafter{\rglsformat{#1}{#2}}%
}
\newcommand*{\rGLSplformat}[2]{%
- \expandafter\mfirstucMakeUppercase\expandafter{\rglsplformat{#1}{#2}}%
+ \expandafter\glsuppercase\expandafter{\rglsplformat{#1}{#2}}%
}
\newcommand{\@glsxtr@do@inc@linkcount}{%
\glsifattribute{\glslabel}{linkcount}{true}%
@@ -6185,6 +7856,13 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\glsaccessfmtname}[3]{%
+ \glsnameaccessdisplay
+ {%
+ \glsfmtfield{#1}{#2}{#3}{name}%
+ }%
+ {#3}%
+ }
\newcommand*{\Glsaccessname}[1]{%
\glsnameaccessdisplay
{%
@@ -6192,13 +7870,27 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\Glsaccessfmtname}[3]{%
+ \glsnameaccessdisplay
+ {%
+ \Glsfmtfield{#1}{#2}{#3}{name}%
+ }%
+ {#3}%
+ }
\newcommand*{\GLSaccessname}[1]{%
\glsnameaccessdisplay
{%
- \mfirstucMakeUppercase{\glsentryname{#1}}%
+ \glsuppercase{\glsentryname{#1}}%
}%
{#1}%
}
+ \newcommand*{\GLSaccessfmtname}[3]{%
+ \glsnameaccessdisplay
+ {%
+ \GLSfmtfield{#1}{#2}{#3}{name}%
+ }%
+ {#3}%
+ }
\newcommand*{\glsaccesstext}[1]{%
\glstextaccessdisplay
{%
@@ -6206,6 +7898,13 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\glsaccessfmttext}[3]{%
+ \glstextaccessdisplay
+ {%
+ \glsfmtfield{#1}{#2}{#3}{text}%
+ }%
+ {#3}%
+ }
\newcommand*{\Glsaccesstext}[1]{%
\glstextaccessdisplay
{%
@@ -6213,13 +7912,27 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\Glsaccessfmttext}[3]{%
+ \glstextaccessdisplay
+ {%
+ \Glsfmtfield{#1}{#2}{#3}{text}%
+ }%
+ {#3}%
+ }
\newcommand*{\GLSaccesstext}[1]{%
\glstextaccessdisplay
{%
- \mfirstucMakeUppercase{\glsentrytext{#1}}%
+ \glsuppercase{\glsentrytext{#1}}%
}%
{#1}%
}
+ \newcommand*{\GLSaccessfmttext}[3]{%
+ \glstextaccessdisplay
+ {%
+ \GLSfmtfield{#1}{#2}{#3}{text}%
+ }%
+ {#3}%
+ }
\newcommand*{\glsaccessplural}[1]{%
\glspluralaccessdisplay
{%
@@ -6227,6 +7940,13 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\glsaccessfmtplural}[3]{%
+ \glspluralaccessdisplay
+ {%
+ \glsfmtfield{#1}{#2}{#3}{plural}%
+ }%
+ {#3}%
+ }
\newcommand*{\Glsaccessplural}[1]{%
\glspluralaccessdisplay
{%
@@ -6234,13 +7954,27 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\Glsaccessfmtplural}[3]{%
+ \glspluralaccessdisplay
+ {%
+ \Glsfmtfield{#1}{#2}{#3}{plural}%
+ }%
+ {#3}%
+ }
\newcommand*{\GLSaccessplural}[1]{%
\glspluralaccessdisplay
{%
- \mfirstucMakeUppercase{\glsentryplural{#1}}%
+ \glsuppercase{\glsentryplural{#1}}%
}%
{#1}%
}
+ \newcommand*{\GLSaccessfmtplural}[3]{%
+ \glspluralaccessdisplay
+ {%
+ \GLSfmtfield{#1}{#2}{#3}{plural}%
+ }%
+ {#3}%
+ }
\newcommand*{\glsaccessfirst}[1]{%
\glsfirstaccessdisplay
{%
@@ -6248,6 +7982,13 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\glsaccessfmtfirst}[3]{%
+ \glsfirstaccessdisplay
+ {%
+ \glsfmtfield{#1}{#2}{#3}{first}%
+ }%
+ {#3}%
+ }
\newcommand*{\Glsaccessfirst}[1]{%
\glsfirstaccessdisplay
{%
@@ -6255,13 +7996,27 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\Glsaccessfmtfirst}[3]{%
+ \glsfirstaccessdisplay
+ {%
+ \Glsfmtfield{#1}{#2}{#3}{first}%
+ }%
+ {#3}%
+ }
\newcommand*{\GLSaccessfirst}[1]{%
\glsfirstaccessdisplay
{%
- \mfirstucMakeUppercase{\glsentryfirst{#1}}%
+ \glsuppercase{\glsentryfirst{#1}}%
}%
{#1}%
}
+ \newcommand*{\GLSaccessfmtfirst}[3]{%
+ \glsfirstaccessdisplay
+ {%
+ \GLSfmtfield{#1}{#2}{#3}{first}%
+ }%
+ {#3}%
+ }
\newcommand*{\glsaccessfirstplural}[1]{%
\glsfirstpluralaccessdisplay
{%
@@ -6269,6 +8024,13 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\glsaccessfmtfirstplural}[3]{%
+ \glsfirstpluralaccessdisplay
+ {%
+ \glsfmtfield{#1}{#2}{#3}{firstpl}%
+ }%
+ {#3}%
+ }
\newcommand*{\Glsaccessfirstplural}[1]{%
\glsfirstpluralaccessdisplay
{%
@@ -6276,13 +8038,27 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\Glsaccessfmtfirstplural}[3]{%
+ \glsfirstpluralaccessdisplay
+ {%
+ \Glsfmtfield{#1}{#2}{#3}{firstpl}%
+ }%
+ {#3}%
+ }
\newcommand*{\GLSaccessfirstplural}[1]{%
\glsfirstpluralaccessdisplay
{%
- \mfirstucMakeUppercase{\glsentryfirstplural{#1}}%
+ \glsuppercase{\glsentryfirstplural{#1}}%
}%
{#1}%
}
+ \newcommand*{\GLSaccessfmtfirstplural}[3]{%
+ \glsfirstpluralaccessdisplay
+ {%
+ \GLSfmtfield{#1}{#2}{#3}{firstpl}%
+ }%
+ {#3}%
+ }
\newcommand*{\glsaccesssymbol}[1]{%
\glssymbolaccessdisplay
{%
@@ -6290,6 +8066,13 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\glsaccessfmtsymbol}[3]{%
+ \glssymbolaccessdisplay
+ {%
+ \glsfmtfield{#1}{#2}{#3}{symbol}%
+ }%
+ {#3}%
+ }
\newcommand*{\Glsaccesssymbol}[1]{%
\glssymbolaccessdisplay
{%
@@ -6297,13 +8080,27 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\Glsaccessfmtsymbol}[3]{%
+ \glssymbolaccessdisplay
+ {%
+ \Glsfmtfield{#1}{#2}{#3}{symbol}%
+ }%
+ {#3}%
+ }
\newcommand*{\GLSaccesssymbol}[1]{%
\glssymbolaccessdisplay
{%
- \mfirstucMakeUppercase{\glsentrysymbol{#1}}%
+ \glsuppercase{\glsentrysymbol{#1}}%
}%
{#1}%
}
+ \newcommand*{\GLSaccessfmtsymbol}[3]{%
+ \glssymbolaccessdisplay
+ {%
+ \GLSfmtfield{#1}{#2}{#3}{symbol}%
+ }%
+ {#3}%
+ }
\newcommand*{\glsaccesssymbolplural}[1]{%
\glssymbolpluralaccessdisplay
{%
@@ -6311,6 +8108,13 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\glsaccessfmtsymbolplural}[3]{%
+ \glssymbolpluralaccessdisplay
+ {%
+ \glsfmtfield{#1}{#2}{#3}{symbolplural}%
+ }%
+ {#3}%
+ }
\newcommand*{\Glsaccesssymbolplural}[1]{%
\glssymbolpluralaccessdisplay
{%
@@ -6318,13 +8122,27 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\Glsaccessfmtsymbolplural}[3]{%
+ \glssymbolpluralaccessdisplay
+ {%
+ \Glsfmtfield{#1}{#2}{#3}{symbolplural}%
+ }%
+ {#3}%
+ }
\newcommand*{\GLSaccesssymbolplural}[1]{%
\glssymbolpluralaccessdisplay
{%
- \mfirstucMakeUppercase{\glsentrysymbolplural{#1}}%
+ \glsuppercase{\glsentrysymbolplural{#1}}%
}%
{#1}%
}
+ \newcommand*{\GLSaccessfmtsymbolplural}[3]{%
+ \glssymbolpluralaccessdisplay
+ {%
+ \GLSfmtfield{#1}{#2}{#3}{symbolplural}%
+ }%
+ {#3}%
+ }
\newcommand*{\glsaccessdesc}[1]{%
\glsdescriptionaccessdisplay
{%
@@ -6332,6 +8150,13 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\glsaccessfmtdesc}[3]{%
+ \glsdescaccessdisplay
+ {%
+ \glsfmtfield{#1}{#2}{#3}{desc}%
+ }%
+ {#3}%
+ }
\newcommand*{\Glsaccessdesc}[1]{%
\glsdescriptionaccessdisplay
{%
@@ -6339,13 +8164,27 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\Glsaccessfmtdesc}[3]{%
+ \glsdescaccessdisplay
+ {%
+ \Glsfmtfield{#1}{#2}{#3}{desc}%
+ }%
+ {#3}%
+ }
\newcommand*{\GLSaccessdesc}[1]{%
\glsdescriptionaccessdisplay
{%
- \mfirstucMakeUppercase{\glsentrydesc{#1}}%
+ \glsuppercase{\glsentrydesc{#1}}%
}%
{#1}%
}
+ \newcommand*{\GLSaccessfmtdesc}[3]{%
+ \glsdescaccessdisplay
+ {%
+ \GLSfmtfield{#1}{#2}{#3}{desc}%
+ }%
+ {#3}%
+ }
\newcommand*{\glsaccessdescplural}[1]{%
\glsdescriptionpluralaccessdisplay
{%
@@ -6353,6 +8192,13 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\glsaccessfmtdescplural}[3]{%
+ \glsdescpluralaccessdisplay
+ {%
+ \glsfmtfield{#1}{#2}{#3}{descplural}%
+ }%
+ {#3}%
+ }
\newcommand*{\Glsaccessdescplural}[1]{%
\glsdescriptionpluralaccessdisplay
{%
@@ -6360,13 +8206,27 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\Glsaccessfmtdescplural}[3]{%
+ \glsdescpluralaccessdisplay
+ {%
+ \Glsfmtfield{#1}{#2}{#3}{descplural}%
+ }%
+ {#3}%
+ }
\newcommand*{\GLSaccessdescplural}[1]{%
\glsdescriptionpluralaccessdisplay
{%
- \mfirstucMakeUppercase{\glsentrydescplural{#1}}%
+ \glsuppercase{\glsentrydescplural{#1}}%
}%
{#1}%
}
+ \newcommand*{\GLSaccessfmtdescplural}[3]{%
+ \glsdescpluralaccessdisplay
+ {%
+ \GLSfmtfield{#1}{#2}{#3}{descplural}%
+ }%
+ {#3}%
+ }
\newcommand*{\glsaccessshort}[1]{%
\glsshortaccessdisplay
{%
@@ -6374,6 +8234,13 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\glsaccessfmtshort}[3]{%
+ \glsshortaccessdisplay
+ {%
+ \glsfmtfield{#1}{#2}{#3}{short}%
+ }%
+ {#3}%
+ }
\newcommand*{\Glsaccessshort}[1]{%
\glsshortaccessdisplay
{%
@@ -6381,13 +8248,27 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\Glsaccessfmtshort}[3]{%
+ \glsshortaccessdisplay
+ {%
+ \Glsfmtfield{#1}{#2}{#3}{short}%
+ }%
+ {#3}%
+ }
\newcommand*{\GLSaccessshort}[1]{%
\glsshortaccessdisplay
{%
- \mfirstucMakeUppercase{\glsentryshort{#1}}%
+ \glsuppercase{\glsentryshort{#1}}%
}%
{#1}%
}
+ \newcommand*{\GLSaccessfmtshort}[3]{%
+ \glsshortaccessdisplay
+ {%
+ \GLSfmtfield{#1}{#2}{#3}{short}%
+ }%
+ {#3}%
+ }
\newcommand*{\glsaccessshortpl}[1]{%
\glsshortpluralaccessdisplay
{%
@@ -6395,6 +8276,13 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\glsaccessfmtshortpl}[3]{%
+ \glsshortpluralaccessdisplay
+ {%
+ \glsfmtfield{#1}{#2}{#3}{shortpl}%
+ }%
+ {#3}%
+ }
\newcommand*{\Glsaccessshortpl}[1]{%
\glsshortpluralaccessdisplay
{%
@@ -6402,41 +8290,636 @@ defined}{}%
}%
{#1}%
}
+ \newcommand*{\Glsaccessfmtshortpl}[3]{%
+ \glsshortpluralaccessdisplay
+ {%
+ \Glsfmtfield{#1}{#2}{#3}{shortpl}%
+ }%
+ {#3}%
+ }
\newcommand*{\GLSaccessshortpl}[1]{%
\glsshortpluralaccessdisplay
{%
- \mfirstucMakeUppercase{\glsentryshortpl{#1}}%
+ \glsuppercase{\glsentryshortpl{#1}}%
}%
{#1}%
}
+ \newcommand*{\GLSaccessfmtshortpl}[3]{%
+ \glsshortpluralaccessdisplay
+ {%
+ \GLSfmtfield{#1}{#2}{#3}{shortpl}%
+ }%
+ {#3}%
+ }
\newcommand*{\glsaccesslong}[1]{%
\glslongaccessdisplay{\glsentrylong{#1}}{#1}%
}
-
+ \newcommand*{\glsaccessfmtlong}[3]{%
+ \glslongaccessdisplay
+ {%
+ \glsfmtfield{#1}{#2}{#3}{long}%
+ }%
+ {#3}%
+ }
\newcommand*{\Glsaccesslong}[1]{%
\glslongaccessdisplay{\Glsentrylong{#1}}{#1}%
}
+ \newcommand*{\Glsaccessfmtlong}[3]{%
+ \glslongaccessdisplay
+ {%
+ \Glsfmtfield{#1}{#2}{#3}{long}%
+ }%
+ {#3}%
+ }
\newcommand*{\GLSaccesslong}[1]{%
\glslongaccessdisplay
{%
- \mfirstucMakeUppercase{\glsentrylong{#1}}%
+ \glsuppercase{\glsentrylong{#1}}%
}%
{#1}%
}
+ \newcommand*{\GLSaccessfmtlong}[3]{%
+ \glslongaccessdisplay
+ {%
+ \GLSfmtfield{#1}{#2}{#3}{long}%
+ }%
+ {#3}%
+ }
\newcommand*{\glsaccesslongpl}[1]{%
\glslongpluralaccessdisplay{\glsentrylongpl{#1}}{#1}%
}
+ \newcommand*{\glsaccessfmtlongpl}[3]{%
+ \glslongpluralaccessdisplay
+ {%
+ \glsfmtfield{#1}{#2}{#3}{longpl}%
+ }%
+ {#3}%
+ }
\newcommand*{\Glsaccesslongpl}[1]{%
\glslongpluralaccessdisplay{\Glsentrylongpl{#1}}{#1}%
}
+ \newcommand*{\Glsaccessfmtlongpl}[3]{%
+ \glslongpluralaccessdisplay
+ {%
+ \Glsfmtfield{#1}{#2}{#3}{longpl}%
+ }%
+ {#3}%
+ }
\newcommand*{\GLSaccesslongpl}[1]{%
\glslongpluralaccessdisplay
{%
- \mfirstucMakeUppercase{\glsentrylongpl{#1}}%
+ \glsuppercase{\glsentrylongpl{#1}}%
}%
{#1}%
}
+ \newcommand*{\GLSaccessfmtlongpl}[3]{%
+ \glslongpluralaccessdisplay
+ {%
+ \GLSfmtfield{#1}{#2}{#3}{longpl}%
+ }%
+ {#3}%
+ }
+ \ifdef\glsuseriaccessdisplay
+ {
+ \newcommand*{\glsaccessuseri}[1]{%
+ \glsuseriaccessdisplay
+ {%
+ \glsentryuseri{#1}%
+ }%
+ {#1}%
+ }
+ }
+ {
+ \newcommand*{\glsaccessuseri}[1]{%
+ \glsentryuseri{#1}%
+ }
+ }
+ \ifdef\glsuseriaccessdisplay
+ {
+ \newcommand*{\glsaccessfmtuseri}[3]{%
+ \glsuseriaccessdisplay
+ {%
+ \glsfmtfield{#1}{#2}{#3}{useri}%
+ }%
+ {#3}%
+ }
+ }
+ {
+ \newcommand*{\glsaccessfmtuseri}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{useri}%
+ }
+ }
+ \ifdef\glsuseriaccessdisplay
+ {
+ \newcommand*{\Glsaccessuseri}[1]{%
+ \glsuseriaccessdisplay
+ {%
+ \Glsentryuseri{#1}%
+ }%
+ {#1}%
+ }
+ }
+ {
+ \newcommand*{\Glsaccessuseri}[1]{%
+ \Glsentryuseri{#1}%
+ }
+ }
+ \ifdef\glsuseriaccessdisplay
+ {
+ \newcommand*{\Glsaccessfmtuseri}[3]{%
+ \glsuseriaccessdisplay
+ {%
+ \Glsfmtfield{#1}{#2}{#3}{useri}%
+ }%
+ {#3}%
+ }
+ }
+ {
+ \newcommand*{\Glsaccessfmtuseri}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{useri}%
+ }
+ }
+ \ifdef\glsuseriaccessdisplay
+ {
+ \newcommand*{\GLSaccessuseri}[1]{%
+ \glsuseriaccessdisplay
+ {%
+ \glsuppercase{\glsentryuseri{#1}}%
+ }%
+ {#1}%
+ }
+ }
+ {
+ \newcommand*{\GLSaccessuseri}[1]{%
+ \glsuppercase{\glsentryuseri{#1}}%
+ }
+ }
+ \ifdef\glsuseriaccessdisplay
+ {
+ \newcommand*{\GLSaccessfmtuseri}[3]{%
+ \glsuseriaccessdisplay
+ {%
+ \GLSfmtfield{#1}{#2}{#3}{useri}%
+ }%
+ {#3}%
+ }
+ }
+ {
+ \newcommand*{\GLSaccessfmtuseri}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{useri}%
+ }
+ }
+ \ifdef\glsuseriiaccessdisplay
+ {
+ \newcommand*{\glsaccessuserii}[1]{%
+ \glsuseriiaccessdisplay
+ {%
+ \glsentryuserii{#1}%
+ }%
+ {#1}%
+ }
+ }
+ {
+ \newcommand*{\glsaccessuserii}[1]{%
+ \glsentryuserii{#1}%
+ }
+ }
+ \ifdef\glsuseriiaccessdisplay
+ {
+ \newcommand*{\glsaccessfmtuserii}[3]{%
+ \glsuseriiaccessdisplay
+ {%
+ \glsfmtfield{#1}{#2}{#3}{userii}%
+ }%
+ {#3}%
+ }
+ }
+ {
+ \newcommand*{\glsaccessfmtuserii}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{userii}%
+ }
+ }
+ \ifdef\glsuseriiaccessdisplay
+ {
+ \newcommand*{\Glsaccessuserii}[1]{%
+ \glsuseriiaccessdisplay
+ {%
+ \Glsentryuserii{#1}%
+ }%
+ {#1}%
+ }
+ }
+ {
+ \newcommand*{\Glsaccessuserii}[1]{%
+ \Glsentryuserii{#1}%
+ }
+ }
+ \ifdef\glsuseriiaccessdisplay
+ {
+ \newcommand*{\Glsaccessfmtuserii}[3]{%
+ \glsuseriiaccessdisplay
+ {%
+ \Glsfmtfield{#1}{#2}{#3}{userii}%
+ }%
+ {#3}%
+ }
+ }
+ {
+ \newcommand*{\Glsaccessfmtuserii}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{userii}%
+ }
+ }
+ \ifdef\glsuseriiaccessdisplay
+ {
+ \newcommand*{\GLSaccessuserii}[1]{%
+ \glsuseriiaccessdisplay
+ {%
+ \glsuppercase{\glsentryuserii{#1}}%
+ }%
+ {#1}%
+ }
+ }
+ {
+ \newcommand*{\GLSaccessuserii}[1]{%
+ \glsuppercase{\glsentryuserii{#1}}%
+ }
+ }
+ \ifdef\glsuseriiaccessdisplay
+ {
+ \newcommand*{\GLSaccessfmtuserii}[3]{%
+ \glsuseriiaccessdisplay
+ {%
+ \GLSfmtfield{#1}{#2}{#3}{userii}%
+ }%
+ {#3}%
+ }
+ }
+ {
+ \newcommand*{\GLSaccessfmtuserii}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{userii}%
+ }
+ }
+ \ifdef\glsuseriiiaccessdisplay
+ {
+ \newcommand*{\glsaccessuseriii}[1]{%
+ \glsuseriiiaccessdisplay
+ {%
+ \glsentryuseriii{#1}%
+ }%
+ {#1}%
+ }
+ }
+ {
+ \newcommand*{\glsaccessuseriii}[1]{%
+ \glsentryuseriii{#1}%
+ }
+ }
+ \ifdef\glsuseriiiaccessdisplay
+ {
+ \newcommand*{\glsaccessfmtuseriii}[3]{%
+ \glsuseriiiaccessdisplay
+ {%
+ \glsfmtfield{#1}{#2}{#3}{useriii}%
+ }%
+ {#3}%
+ }
+ }
+ {
+ \newcommand*{\glsaccessfmtuseriii}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{useriii}%
+ }
+ }
+ \ifdef\glsuseriiiaccessdisplay
+ {
+ \newcommand*{\Glsaccessuseriii}[1]{%
+ \glsuseriiiaccessdisplay
+ {%
+ \Glsentryuseriii{#1}%
+ }%
+ {#1}%
+ }
+ }
+ {
+ \newcommand*{\Glsaccessuseriii}[1]{%
+ \Glsentryuseriii{#1}%
+ }
+ }
+ \ifdef\glsuseriiiaccessdisplay
+ {
+ \newcommand*{\Glsaccessfmtuseriii}[3]{%
+ \glsuseriiiaccessdisplay
+ {%
+ \Glsfmtfield{#1}{#2}{#3}{useriii}%
+ }%
+ {#3}%
+ }
+ }
+ {
+ \newcommand*{\Glsaccessfmtuseriii}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{useriii}%
+ }
+ }
+ \ifdef\glsuseriiiaccessdisplay
+ {
+ \newcommand*{\GLSaccessuseriii}[1]{%
+ \glsuseriiiaccessdisplay
+ {%
+ \glsuppercase{\glsentryuseriii{#1}}%
+ }%
+ {#1}%
+ }
+ }
+ {
+ \newcommand*{\GLSaccessuseriii}[1]{%
+ \glsuppercase{\glsentryuseriii{#1}}%
+ }
+ }
+ \ifdef\glsuseriiiaccessdisplay
+ {
+ \newcommand*{\GLSaccessfmtuseriii}[3]{%
+ \glsuseriiiaccessdisplay
+ {%
+ \GLSfmtfield{#1}{#2}{#3}{useriii}%
+ }%
+ {#3}%
+ }
+ }
+ {
+ \newcommand*{\GLSaccessfmtuseriii}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{useriii}%
+ }
+ }
+ \ifdef\glsuserivaccessdisplay
+ {
+ \newcommand*{\glsaccessuseriv}[1]{%
+ \glsuserivaccessdisplay
+ {%
+ \glsentryuseriv{#1}%
+ }%
+ {#1}%
+ }
+ }
+ {
+ \newcommand*{\glsaccessuseriv}[1]{%
+ \glsentryuseriv{#1}%
+ }
+ }
+ \ifdef\glsuserivaccessdisplay
+ {
+ \newcommand*{\glsaccessfmtuseriv}[3]{%
+ \glsuserivaccessdisplay
+ {%
+ \glsfmtfield{#1}{#2}{#3}{useriv}%
+ }%
+ {#3}%
+ }
+ }
+ {
+ \newcommand*{\glsaccessfmtuseriv}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{useriv}%
+ }
+ }
+ \ifdef\glsuserivaccessdisplay
+ {
+ \newcommand*{\Glsaccessuseriv}[1]{%
+ \glsuserivaccessdisplay
+ {%
+ \Glsentryuseriv{#1}%
+ }%
+ {#1}%
+ }
+ }
+ {
+ \newcommand*{\Glsaccessuseriv}[1]{%
+ \Glsentryuseriv{#1}%
+ }
+ }
+ \ifdef\glsuserivaccessdisplay
+ {
+ \newcommand*{\Glsaccessfmtuseriv}[3]{%
+ \glsuserivaccessdisplay
+ {%
+ \Glsfmtfield{#1}{#2}{#3}{useriv}%
+ }%
+ {#3}%
+ }
+ }
+ {
+ \newcommand*{\Glsaccessfmtuseriv}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{useriv}%
+ }
+ }
+ \ifdef\glsuserivaccessdisplay
+ {
+ \newcommand*{\GLSaccessuseriv}[1]{%
+ \glsuserivaccessdisplay
+ {%
+ \glsuppercase{\glsentryuseriv{#1}}%
+ }%
+ {#1}%
+ }
+ }
+ {
+ \newcommand*{\GLSaccessuseriv}[1]{%
+ \glsuppercase{\glsentryuseriv{#1}}%
+ }
+ }
+ \ifdef\glsuserivaccessdisplay
+ {
+ \newcommand*{\GLSaccessfmtuseriv}[3]{%
+ \glsuserivaccessdisplay
+ {%
+ \GLSfmtfield{#1}{#2}{#3}{useriv}%
+ }%
+ {#3}%
+ }
+ }
+ {
+ \newcommand*{\GLSaccessfmtuseriv}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{useriv}%
+ }
+ }
+ \ifdef\glsuservaccessdisplay
+ {
+ \newcommand*{\glsaccessuserv}[1]{%
+ \glsuservaccessdisplay
+ {%
+ \glsentryuserv{#1}%
+ }%
+ {#1}%
+ }
+ }
+ {
+ \newcommand*{\glsaccessuserv}[1]{%
+ \glsentryuserv{#1}%
+ }
+ }
+ \ifdef\glsuservaccessdisplay
+ {
+ \newcommand*{\glsaccessfmtuserv}[3]{%
+ \glsuservaccessdisplay
+ {%
+ \glsfmtfield{#1}{#2}{#3}{userv}%
+ }%
+ {#3}%
+ }
+ }
+ {
+ \newcommand*{\glsaccessfmtuserv}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{userv}%
+ }
+ }
+ \ifdef\glsuservaccessdisplay
+ {
+ \newcommand*{\Glsaccessuserv}[1]{%
+ \glsuservaccessdisplay
+ {%
+ \Glsentryuserv{#1}%
+ }%
+ {#1}%
+ }
+ }
+ {
+ \newcommand*{\Glsaccessuserv}[1]{%
+ \Glsentryuserv{#1}%
+ }
+ }
+ \ifdef\glsuservaccessdisplay
+ {
+ \newcommand*{\Glsaccessfmtuserv}[3]{%
+ \glsuservaccessdisplay
+ {%
+ \Glsfmtfield{#1}{#2}{#3}{userv}%
+ }%
+ {#3}%
+ }
+ }
+ {
+ \newcommand*{\Glsaccessfmtuserv}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{userv}%
+ }
+ }
+ \ifdef\glsuservaccessdisplay
+ {
+ \newcommand*{\GLSaccessuserv}[1]{%
+ \glsuservaccessdisplay
+ {%
+ \glsuppercase{\glsentryuserv{#1}}%
+ }%
+ {#1}%
+ }
+ }
+ {
+ \newcommand*{\GLSaccessuserv}[1]{%
+ \glsuppercase{\glsentryuserv{#1}}%
+ }
+ }
+ \ifdef\glsuservaccessdisplay
+ {
+ \newcommand*{\GLSaccessfmtuserv}[3]{%
+ \glsuservaccessdisplay
+ {%
+ \GLSfmtfield{#1}{#2}{#3}{userv}%
+ }%
+ {#3}%
+ }
+ }
+ {
+ \newcommand*{\GLSaccessfmtuserv}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{userv}%
+ }
+ }
+ \ifdef\glsuserviaccessdisplay
+ {
+ \newcommand*{\glsaccessuservi}[1]{%
+ \glsuserviaccessdisplay
+ {%
+ \glsentryuservi{#1}%
+ }%
+ {#1}%
+ }
+ }
+ {
+ \newcommand*{\glsaccessuservi}[1]{%
+ \glsentryuservi{#1}%
+ }
+ }
+ \ifdef\glsuserviaccessdisplay
+ {
+ \newcommand*{\glsaccessfmtuservi}[3]{%
+ \glsuserviaccessdisplay
+ {%
+ \glsfmtfield{#1}{#2}{#3}{uservi}%
+ }%
+ {#3}%
+ }
+ }
+ {
+ \newcommand*{\glsaccessfmtuservi}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{uservi}%
+ }
+ }
+ \ifdef\glsuserviaccessdisplay
+ {
+ \newcommand*{\Glsaccessuservi}[1]{%
+ \glsuserviaccessdisplay
+ {%
+ \Glsentryuservi{#1}%
+ }%
+ {#1}%
+ }
+ }
+ {
+ \newcommand*{\Glsaccessuservi}[1]{%
+ \Glsentryuservi{#1}%
+ }
+ }
+ \ifdef\glsuserviaccessdisplay
+ {
+ \newcommand*{\Glsaccessfmtuservi}[3]{%
+ \glsuserviaccessdisplay
+ {%
+ \Glsfmtfield{#1}{#2}{#3}{uservi}%
+ }%
+ {#3}%
+ }
+ }
+ {
+ \newcommand*{\Glsaccessfmtuservi}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{uservi}%
+ }
+ }
+ \ifdef\glsuserviaccessdisplay
+ {
+ \newcommand*{\GLSaccessuservi}[1]{%
+ \glsuserviaccessdisplay
+ {%
+ \glsuppercase{\glsentryuservi{#1}}%
+ }%
+ {#1}%
+ }
+ }
+ {
+ \newcommand*{\GLSaccessuservi}[1]{%
+ \glsuppercase{\glsentryuservi{#1}}%
+ }
+ }
+ \ifdef\glsuserviaccessdisplay
+ {
+ \newcommand*{\GLSaccessfmtuservi}[3]{%
+ \glsuserviaccessdisplay
+ {%
+ \GLSfmtfield{#1}{#2}{#3}{uservi}%
+ }%
+ {#3}%
+ }
+ }
+ {
+ \newcommand*{\GLSaccessfmtuservi}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{uservi}%
+ }
+ }
\define@key{glsxtrabbrv}{access}{%
\def\@gls@nameaccess{#1}%
}
@@ -6461,7 +8944,7 @@ defined}{}%
\define@key{glsxtrabbrv}{longaccess}{%
\def\@gls@longaccess{#1}%
}
- \define@key{glsxtrabbrv}{shortlonglaccess}{%
+ \define@key{glsxtrabbrv}{longpluralaccess}{%
\def\@gls@longaccesspl{#1}%
}
\newcommand*{\@gls@initaccesskeys}{%
@@ -6475,20 +8958,20 @@ defined}{}%
\def\@gls@longaccess{}%
\def\@gls@longaccesspl{}%
}
-\newcommand*{\@gls@ifaccessattribute@set}[3]{%
- \glsifcategoryattribute{\glscategorylabel}{access#1}{true}%
- {#2}%
- {%
- \glsifcategoryattribute{\glscategorylabel}{access#1}{false}%
- {#3}%
+ \newcommand*{\@gls@ifaccessattribute@set}[3]{%
+ \glsifcategoryattribute{\glscategorylabel}{access#1}{true}%
+ {#2}%
{%
- \glsifcategoryattribute{\glscategorylabel}{#1}{true}%
- {#2}%
+ \glsifcategoryattribute{\glscategorylabel}{access#1}{false}%
{#3}%
+ {%
+ \glsifcategoryattribute{\glscategorylabel}{#1}{true}%
+ {#2}%
+ {#3}%
+ }%
}%
- }%
-}
- \def\glsdefaultshortaccess#1#2{#1 (#2)}
+ }
+ \providecommand*{\glsdefaultshortaccess}[2]{#1}
\newcommand{\glsxtrassignactualsetup}{%
\let\@\empty
\let\emph\@firstofone
@@ -6500,37 +8983,18 @@ defined}{}%
\let\textrm\@firstofone
\let\textsf\@firstofone
\let\texttt\@firstofone
+ \let\glstextup\@firstofone
}
- \ifdef\pdfstringdef
- {
- \newcommand{\@gls@assign@actual}{%
- \begingroup
- \glsxtrassignactualsetup
- \pdfstringdef\@gls@actualshort{\glsxtrorgshort}%
- \pdfstringdef\@gls@actuallong{\glsxtrorglong}%
- \pdfstringdef\@gls@actualshortpl{\@gls@shortpl}%
- \pdfstringdef\@gls@actuallongpl{\@gls@longpl}%
- \protected@edef\@gls@tmp{\endgroup
- \def\noexpand\@gls@actualshort{\expandonce\@gls@actualshort}%
- \def\noexpand\@gls@actuallong{\expandonce\@gls@actuallong}%
- \def\noexpand\@gls@actualshortpl{\expandonce\@gls@actualshortpl}%
- \def\noexpand\@gls@actuallongpl{\expandonce\@gls@actuallongpl}%
- }%
- \@gls@tmp
- }
- }
- {
- \newcommand{\@gls@assign@actual}{%
- \begingroup
- \glsxtrassignactualsetup
- \protected@edef\@gls@tmp{\endgroup
- \def\noexpand\@gls@actualshort{\glsxtrorgshort}%
- \def\noexpand\@gls@actuallong{\glsxtrorglong}%
- \def\noexpand\@gls@actualshortpl{\@gls@shortpl}%
- \def\noexpand\@gls@actuallongpl{\@gls@longpl}%
- }%
- \@gls@tmp
- }
+ \newcommand{\@gls@assign@actual}{%
+ \begingroup
+ \glsxtrassignactualsetup
+ \protected@edef\@gls@tmp{\endgroup
+ \def\noexpand\@gls@actualshort{\glsxtrorgshort}%
+ \def\noexpand\@gls@actuallong{\glsxtrorglong}%
+ \def\noexpand\@gls@actualshortpl{\@gls@shortpl}%
+ \def\noexpand\@gls@actuallongpl{\@gls@longpl}%
+ }%
+ \@gls@tmp
}
\newcommand{\@gls@setup@default@access}{%
\@gls@assign@actual
@@ -6678,57 +9142,252 @@ defined}{}%
}
{
\newcommand*{\glsaccessname}[1]{\glsentryname{#1}}
+ \newcommand*{\glsaccessfmtname}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{name}%
+ }
\newcommand*{\Glsaccessname}[1]{\Glsentryname{#1}}
+ \newcommand*{\Glsaccessfmtname}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{name}%
+ }
\newcommand*{\GLSaccessname}[1]{%
- \protect\mfirstucMakeUppercase{\glsentryname{#1}}}
+ \protect\glsuppercase{\glsentryname{#1}}}
+ \newcommand*{\GLSaccessfmtname}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{name}%
+ }
\newcommand*{\glsaccesstext}[1]{\glsentrytext{#1}}
+ \newcommand*{\glsaccessfmttext}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{text}%
+ }
\newcommand*{\Glsaccesstext}[1]{\Glsentrytext{#1}}
+ \newcommand*{\Glsaccessfmttext}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{text}%
+ }
\newcommand*{\GLSaccesstext}[1]{%
- \protect\mfirstucMakeUppercase{\glsentrytext{#1}}}
+ \protect\glsuppercase{\glsentrytext{#1}}}
+ \newcommand*{\GLSaccessfmttext}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{text}%
+ }
\newcommand*{\glsaccessplural}[1]{\glsentryplural{#1}}
+ \newcommand*{\glsaccessfmtplural}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{plural}%
+ }
\newcommand*{\Glsaccessplural}[1]{\Glsentryplural{#1}}
+ \newcommand*{\Glsaccessfmtplural}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{plural}%
+ }
\newcommand*{\GLSaccessplural}[1]{%
- \protect\mfirstucMakeUppercase{\glsentryplural{#1}}}
+ \protect\glsuppercase{\glsentryplural{#1}}}
+ \newcommand*{\GLSaccessfmtplural}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{plural}%
+ }
\newcommand*{\glsaccessfirst}[1]{\glsentryfirst{#1}}
+ \newcommand*{\glsaccessfmtfirst}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{first}%
+ }
\newcommand*{\Glsaccessfirst}[1]{\Glsentryfirst{#1}}
+ \newcommand*{\Glsaccessfmtfirst}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{first}%
+ }
\newcommand*{\GLSaccessfirst}[1]{%
- \protect\mfirstucMakeUppercase{\glsentryfirst{#1}}}
+ \protect\glsuppercase{\glsentryfirst{#1}}}
+ \newcommand*{\GLSaccessfmtfirst}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{first}%
+ }
\newcommand*{\glsaccessfirstplural}[1]{\glsentryfirstplural{#1}}
+ \newcommand*{\glsaccessfmtfirstplural}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{firstpl}%
+ }
\newcommand*{\Glsaccessfirstplural}[1]{\Glsentryfirstplural{#1}}
+ \newcommand*{\Glsaccessfmtfirstplural}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{firstpl}%
+ }
\newcommand*{\GLSaccessfirstplural}[1]{%
- \protect\mfirstucMakeUppercase{\glsentryfirstplural{#1}}}
+ \protect\glsuppercase{\glsentryfirstplural{#1}}}
+ \newcommand*{\GLSaccessfmtfirstplural}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{firstpl}%
+ }
\newcommand*{\glsaccesssymbol}[1]{\glsentrysymbol{#1}}
+ \newcommand*{\glsaccessfmtsymbol}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{symbol}%
+ }
\newcommand*{\Glsaccesssymbol}[1]{\Glsentrysymbol{#1}}
+ \newcommand*{\Glsaccessfmtsymbol}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{symbol}%
+ }
\newcommand*{\GLSaccesssymbol}[1]{%
- \protect\mfirstucMakeUppercase{\glsentrysymbol{#1}}}
+ \protect\glsuppercase{\glsentrysymbol{#1}}}
+ \newcommand*{\GLSaccessfmtsymbol}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{symbol}%
+ }
\newcommand*{\glsaccesssymbolplural}[1]{\glsentrysymbolplural{#1}}
+ \newcommand*{\glsaccessfmtsymbolplural}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{symbolplural}%
+ }
\newcommand*{\Glsaccesssymbolplural}[1]{\Glsentrysymbolplural{#1}}
+ \newcommand*{\Glsaccessfmtsymbolplural}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{symbolplural}%
+ }
\newcommand*{\GLSaccesssymbolplural}[1]{%
- \protect\mfirstucMakeUppercase{\glsentrysymbolplural{#1}}}
+ \protect\glsuppercase{\glsentrysymbolplural{#1}}}
+ \newcommand*{\GLSaccessfmtsymbolplural}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{symbolplural}%
+ }
\newcommand*{\glsaccessdesc}[1]{\glsentrydesc{#1}}
+ \newcommand*{\glsaccessfmtdesc}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{desc}%
+ }
\newcommand*{\Glsaccessdesc}[1]{\Glsentrydesc{#1}}
+ \newcommand*{\Glsaccessfmtdesc}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{desc}%
+ }
\newcommand*{\GLSaccessdesc}[1]{%
- \protect\mfirstucMakeUppercase{\glsentrydesc{#1}}}
+ \protect\glsuppercase{\glsentrydesc{#1}}}
+ \newcommand*{\GLSaccessfmtdesc}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{desc}%
+ }
\newcommand*{\glsaccessdescplural}[1]{\glsentrydescplural{#1}}
+ \newcommand*{\glsaccessfmtdescplural}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{descplural}%
+ }
\newcommand*{\Glsaccessdescplural}[1]{\Glsentrydescplural{#1}}
+ \newcommand*{\Glsaccessfmtdescplural}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{descplural}%
+ }
\newcommand*{\GLSaccessdescplural}[1]{%
- \protect\mfirstucMakeUppercase{\glsentrydescplural{#1}}}
+ \protect\glsuppercase{\glsentrydescplural{#1}}}
+ \newcommand*{\GLSaccessfmtdescplural}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{descplural}%
+ }
\newcommand*{\glsaccessshort}[1]{\glsentryshort{#1}}
+ \newcommand*{\glsaccessfmtshort}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{short}%
+ }
\newcommand*{\Glsaccessshort}[1]{\Glsentryshort{#1}}
+ \newcommand*{\Glsaccessfmtshort}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{short}%
+ }
\newcommand*{\GLSaccessshort}[1]{%
- \protect\mfirstucMakeUppercase{\glsentryshort{#1}}}
+ \protect\glsuppercase{\glsentryshort{#1}}}
+ \newcommand*{\GLSaccessfmtshort}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{short}%
+ }
\newcommand*{\glsaccessshortpl}[1]{\glsentryshortpl{#1}}
+ \newcommand*{\glsaccessfmtshortpl}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{shortpl}%
+ }
\newcommand*{\Glsaccessshortpl}[1]{\Glsentryshortpl{#1}}
+ \newcommand*{\Glsaccessfmtshortpl}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{shortpl}%
+ }
\newcommand*{\GLSaccessshortpl}[1]{%
- \protect\mfirstucMakeUppercase{\glsentryshortpl{#1}}}
+ \protect\glsuppercase{\glsentryshortpl{#1}}}
+ \newcommand*{\GLSaccessfmtshortpl}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{shortpl}%
+ }
\newcommand*{\glsaccesslong}[1]{\glsentrylong{#1}}
+ \newcommand*{\glsaccessfmtlong}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{long}%
+ }
\newcommand*{\Glsaccesslong}[1]{\Glsentrylong{#1}}
+ \newcommand*{\Glsaccessfmtlong}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{long}%
+ }
\newcommand*{\GLSaccesslong}[1]{%
- \protect\mfirstucMakeUppercase{\glsentrylong{#1}}}
+ \protect\glsuppercase{\glsentrylong{#1}}}
+ \newcommand*{\GLSaccessfmtlong}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{long}%
+ }
\newcommand*{\glsaccesslongpl}[1]{\glsentrylongpl{#1}}
+ \newcommand*{\glsaccessfmtlongpl}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{longpl}%
+ }
\newcommand*{\Glsaccesslongpl}[1]{\Glsentrylongpl{#1}}
+ \newcommand*{\Glsaccessfmtlongpl}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{longpl}%
+ }
\newcommand*{\GLSaccesslongpl}[1]{%
- \protect\mfirstucMakeUppercase{\glsentrylongpl{#1}}}
+ \protect\glsuppercase{\glsentrylongpl{#1}}}
+ \newcommand*{\GLSaccessfmtlongpl}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{longpl}%
+ }
+ \newcommand*{\glsaccessuseri}[1]{\glsentryuseri{#1}}
+ \newcommand*{\glsaccessfmtuseri}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{useri}%
+ }
+ \newcommand*{\Glsaccessuseri}[1]{\Glsentryuseri{#1}}
+ \newcommand*{\Glsaccessfmtuseri}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{useri}%
+ }
+ \newcommand*{\GLSaccessuseri}[1]{%
+ \protect\glsuppercase{\glsentryuseri{#1}}}
+ \newcommand*{\GLSaccessfmtuseri}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{useri}%
+ }
+ \newcommand*{\glsaccessuserii}[1]{\glsentryuserii{#1}}
+ \newcommand*{\glsaccessfmtuserii}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{userii}%
+ }
+ \newcommand*{\Glsaccessuserii}[1]{\Glsentryuserii{#1}}
+ \newcommand*{\Glsaccessfmtuserii}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{userii}%
+ }
+ \newcommand*{\GLSaccessuserii}[1]{%
+ \protect\glsuppercase{\glsentryuserii{#1}}}
+ \newcommand*{\GLSaccessfmtuserii}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{userii}%
+ }
+ \newcommand*{\glsaccessuseriii}[1]{\glsentryuseriii{#1}}
+ \newcommand*{\glsaccessfmtuseriii}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{useriii}%
+ }
+ \newcommand*{\Glsaccessuseriii}[1]{\Glsentryuseriii{#1}}
+ \newcommand*{\Glsaccessfmtuseriii}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{useriii}%
+ }
+ \newcommand*{\GLSaccessuseriii}[1]{%
+ \protect\glsuppercase{\glsentryuseriii{#1}}}
+ \newcommand*{\GLSaccessfmtuseriii}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{useriii}%
+ }
+ \newcommand*{\glsaccessuseriv}[1]{\glsentryuseriv{#1}}
+ \newcommand*{\glsaccessfmtuseriv}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{useriv}%
+ }
+ \newcommand*{\Glsaccessuseriv}[1]{\Glsentryuseriv{#1}}
+ \newcommand*{\Glsaccessfmtuseriv}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{useriv}%
+ }
+ \newcommand*{\GLSaccessuseriv}[1]{%
+ \protect\glsuppercase{\glsentryuseriv{#1}}}
+ \newcommand*{\GLSaccessfmtuseriv}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{useriv}%
+ }
+ \newcommand*{\glsaccessuserv}[1]{\glsentryuserv{#1}}
+ \newcommand*{\glsaccessfmtuserv}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{userv}%
+ }
+ \newcommand*{\Glsaccessuserv}[1]{\Glsentryuserv{#1}}
+ \newcommand*{\Glsaccessfmtuserv}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{userv}%
+ }
+ \newcommand*{\GLSaccessuserv}[1]{%
+ \protect\glsuppercase{\glsentryuserv{#1}}}
+ \newcommand*{\GLSaccessfmtuserv}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{userv}%
+ }
+ \newcommand*{\glsaccessuservi}[1]{\glsentryuservi{#1}}
+ \newcommand*{\glsaccessfmtuservi}[3]{%
+ \glsfmtfield{#1}{#2}{#3}{uservi}%
+ }
+ \newcommand*{\Glsaccessuservi}[1]{\Glsentryuservi{#1}}
+ \newcommand*{\Glsaccessfmtuservi}[3]{%
+ \Glsfmtfield{#1}{#2}{#3}{uservi}%
+ }
+ \newcommand*{\GLSaccessuservi}[1]{%
+ \protect\glsuppercase{\glsentryuservi{#1}}}
+ \newcommand*{\GLSaccessfmtuservi}[3]{%
+ \GLSfmtfield{#1}{#2}{#3}{uservi}%
+ }
\newcommand*{\@gls@initaccesskeys}{}
\newcommand{\@gls@setup@default@access}{}
\newcommand*{\glsxtrAccSuppAbbrSetNoLongAttrs}[1]{}
@@ -6737,6 +9396,82 @@ defined}{}%
\newcommand*{\glsxtrAccSuppAbbrSetNameShortAttrs}[1]{}
\newcommand*{\glsxtrAccSuppAbbrSetNameLongAttrs}[1]{}
}
+\glsmfuaddmap{\glsaccessname}{\Glsaccessname}
+\glsmfuaddmap{\glsaccessfmtname}{\Glsaccessfmtname}
+\glsmfublocker{\GLSaccessname}
+\glsmfublocker{\GLSaccessfmtname}
+\glsmfuaddmap{\glsaccesstext}{\Glsaccesstext}
+\glsmfuaddmap{\glsaccessfmttext}{\Glsaccessfmttext}
+\glsmfublocker{\GLSaccesstext}
+\glsmfublocker{\GLSaccessfmttext}
+\glsmfuaddmap{\glsaccessplural}{\Glsaccessplural}
+\glsmfuaddmap{\glsaccessfmtplural}{\Glsaccessfmtplural}
+\glsmfublocker{\GLSaccessplural}
+\glsmfublocker{\GLSaccessfmtplural}
+\glsmfuaddmap{\glsaccessfirst}{\Glsaccessfirst}
+\glsmfuaddmap{\glsaccessfmtfirst}{\Glsaccessfmtfirst}
+\glsmfublocker{\GLSaccessfirst}
+\glsmfublocker{\GLSaccessfmtfirst}
+\glsmfuaddmap{\glsaccessfirstplural}{\Glsaccessfirstplural}
+\glsmfuaddmap{\glsaccessfmtfirstplural}{\Glsaccessfmtfirstplural}
+\glsmfublocker{\GLSaccessfirstplural}
+\glsmfublocker{\GLSaccessfmtfirstplural}
+\glsmfuaddmap{\glsaccesssymbol}{\Glsaccesssymbol}
+\glsmfuaddmap{\glsaccessfmtsymbol}{\Glsaccessfmtsymbol}
+\glsmfublocker{\GLSaccesssymbol}
+\glsmfublocker{\GLSaccessfmtsymbol}
+\glsmfuaddmap{\glsaccesssymbolplural}{\Glsaccesssymbolplural}
+\glsmfuaddmap{\glsaccessfmtsymbolplural}{\Glsaccessfmtsymbolplural}
+\glsmfublocker{\GLSaccesssymbolplural}
+\glsmfublocker{\GLSaccessfmtsymbolplural}
+\glsmfuaddmap{\glsaccessdesc}{\Glsaccessdesc}
+\glsmfuaddmap{\glsaccessfmtdesc}{\Glsaccessfmtdesc}
+\glsmfublocker{\GLSaccessdesc}
+\glsmfublocker{\GLSaccessfmtdesc}
+\glsmfuaddmap{\glsaccessdescplural}{\Glsaccessdescplural}
+\glsmfuaddmap{\glsaccessfmtdescplural}{\Glsaccessfmtdescplural}
+\glsmfublocker{\GLSaccessdescplural}
+\glsmfublocker{\GLSaccessfmtdescplural}
+\glsmfuaddmap{\glsaccessshort}{\Glsaccessshort}
+\glsmfuaddmap{\glsaccessfmtshort}{\Glsaccessfmtshort}
+\glsmfublocker{\GLSaccessshort}
+\glsmfublocker{\GLSaccessfmtshort}
+\glsmfuaddmap{\glsaccessshortpl}{\Glsaccessshortpl}
+\glsmfuaddmap{\glsaccessfmtshortpl}{\Glsaccessfmtshortpl}
+\glsmfublocker{\GLSaccessshortpl}
+\glsmfublocker{\GLSaccessfmtshortpl}
+\glsmfuaddmap{\glsaccesslong}{\Glsaccesslong}
+\glsmfuaddmap{\glsaccessfmtlong}{\Glsaccessfmtlong}
+\glsmfublocker{\GLSaccesslong}
+\glsmfublocker{\GLSaccessfmtlong}
+\glsmfuaddmap{\glsaccesslongpl}{\Glsaccesslongpl}
+\glsmfuaddmap{\glsaccessfmtlongpl}{\Glsaccessfmtlongpl}
+\glsmfublocker{\GLSaccesslongpl}
+\glsmfublocker{\GLSaccessfmtlongpl}
+\glsmfuaddmap{\glsaccessuseri}{\Glsaccessuseri}
+\glsmfuaddmap{\glsaccessfmtuseri}{\Glsaccessfmtuseri}
+\glsmfublocker{\GLSaccessuseri}
+\glsmfublocker{\GLSaccessfmtuseri}
+\glsmfuaddmap{\glsaccessuserii}{\Glsaccessuserii}
+\glsmfuaddmap{\glsaccessfmtuserii}{\Glsaccessfmtuserii}
+\glsmfublocker{\GLSaccessuserii}
+\glsmfublocker{\GLSaccessfmtuserii}
+\glsmfuaddmap{\glsaccessuseriii}{\Glsaccessuseriii}
+\glsmfuaddmap{\glsaccessfmtuseriii}{\Glsaccessfmtuseriii}
+\glsmfublocker{\GLSaccessuseriii}
+\glsmfublocker{\GLSaccessfmtuseriii}
+\glsmfuaddmap{\glsaccessuseriv}{\Glsaccessuseriv}
+\glsmfuaddmap{\glsaccessfmtuseriv}{\Glsaccessfmtuseriv}
+\glsmfublocker{\GLSaccessuseriv}
+\glsmfublocker{\GLSaccessfmtuseriv}
+\glsmfuaddmap{\glsaccessuserv}{\Glsaccessuserv}
+\glsmfuaddmap{\glsaccessfmtuserv}{\Glsaccessfmtuserv}
+\glsmfublocker{\GLSaccessuserv}
+\glsmfublocker{\GLSaccessfmtuserv}
+\glsmfuaddmap{\glsaccessuservi}{\Glsaccessuservi}
+\glsmfuaddmap{\glsaccessfmtuservi}{\Glsaccessfmtuservi}
+\glsmfublocker{\GLSaccessuservi}
+\glsmfublocker{\GLSaccessfmtuservi}
\glsaddstoragekey{category}{general}{\glscategory}
\newcommand{\glsifcategory}[4]{%
\ifglsfieldeq{#1}{category}{#2}{#3}{#4}%
@@ -6756,6 +9491,11 @@ defined}{}%
}%
}%
}
+\newcommand*{\glssetcategoryattributes}[3]{%
+ \@for\@gls@thisattrlabel:=#2\do{%
+ \csgdef{@glsxtr@categoryattr@@#1@\@gls@thisattrlabel}{#3}%
+ }%
+}
\newcommand*{\glsgetcategoryattribute}[2]{%
\csuse{@glsxtr@categoryattr@@#1@#2}%
}
@@ -6786,6 +9526,30 @@ defined}{}%
{\glsifcategoryattribute{\glscategory{#1}}{#2}{#3}{#4}{#5}}%
{#5}%
}
+\newcommand*{\@glsxtr@truevalue}{true}
+\newcommand*{\glsifcategoryattributetrue}[4]{%
+ \ifcsequal{@glsxtr@categoryattr@@#1@#2}%
+ {@glsxtr@truevalue}%
+ {#3}{#4}%
+}
+\newcommand*{\glsifattributetrue}[4]{%
+ \ifcsundef{glo@\glsdetoklabel{#1}@category}%
+ {#4}
+ {\ifcsequal
+ {@glsxtr@categoryattr@@\csname glo@\glsdetoklabel{#1}@category\endcsname @#2}%
+ {@glsxtr@truevalue}%
+ {#3}{#4}%
+ }%
+}
+\newrobustcmd{\glsifcategoryattributehasitem}[5]{%
+ \ifcsundef{@glsxtr@categoryattr@@#1@#2}%
+ {#5}%
+ {%
+ \protected@edef\gls@tmp{%
+ \noexpand\DTLifinlist{#3}{\csuse{@glsxtr@categoryattr@@#1@#2}}}%
+ \gls@tmp{#4}{#5}%
+ }%
+}
\glssetcategoryattribute{general}{regular}{true}
\glssetcategoryattribute{acronym}{regular}{true}
\newcommand*{\glssetregularcategory}[1]{%
@@ -7001,7 +9765,7 @@ defined}{}%
\glsnameaccessdisplay
{%
\letcs{\glo@name}{glo@\glsdetoklabel{#1}@name}%
- \@glsxtr@glossnamefont{\mfirstucMakeUppercase{\glo@name}}%
+ \@glsxtr@glossnamefont{\glsuppercase{\glo@name}}%
}%
{#1}%
}%
@@ -7053,7 +9817,7 @@ defined}{}%
\glsifattribute{#1}{glossname}{uc}%
{%
\letcs{\glo@name}{glo@\glsdetoklabel{#1}@name}%
- \@glsxtr@glossnamefont{\mfirstucMakeUppercase{\glo@name}}%
+ \@glsxtr@glossnamefont{\glsuppercase{\glo@name}}%
}%
{%
\letcs{\glo@name}{glo@\glsdetoklabel{#1}@name}%
@@ -7195,7 +9959,7 @@ defined}{}%
{%
\letcs{\glo@name}{glo@\glsdetoklabel{#1}@#2}%
\@glsxtr@accessdisplay
- {\@glsxtr@glossnamefont{\mfirstucMakeUppercase{\glo@name}}}%
+ {\@glsxtr@glossnamefont{\glsuppercase{\glo@name}}}%
{#1}%
}%
{%
@@ -7206,7 +9970,7 @@ defined}{}%
}%
}%
}%
- \glsxtrpostnamehook{#1}%
+ \glsxtrpostnamehook{#1}%
}%
}
\newif\if@glsxtr@format@override
@@ -7382,14 +10146,8 @@ defined}{}%
\Glsaccessdesc{#1}%
}%
}
-\ifdef\texorpdfstring
-{
- \renewcommand*{\glossentrysymbol}[1]{%
- \texorpdfstring{\@glossentrysymbol{#1}}{\glsentrypdfsymbol{#1}}%
- }
-}
-{
- \renewcommand*{\glossentrysymbol}[1]{\@glossentrysymbol{#1}}
+\renewcommand*{\glossentrysymbol}[1]{%
+ \glstexorpdfstring{\@glossentrysymbol{#1}}{\glsentrypdfsymbol{#1}}%
}
\newcommand{\glsentrypdfsymbol}[1]{\glsentrysymbol{#1}}
\newrobustcmd*{\@glossentrysymbol}[1]{%
@@ -7534,6 +10292,26 @@ defined}{}%
{Invalid empty category label in \string\glsdefpostlink}{}}%
{\csdef{glsxtrpostlink#1}{#2}}%
}
+\newcommand*{\glspretopostlink}[2]{%
+ \ifthenelse{\equal{#1}{}}%
+ {\PackageError{glossaries-extra}
+ {Invalid empty category label in \string\glspretopostlink}{}}%
+ {%
+ \ifcsundef{glsxtrpostlink#1}
+ {\csdef{glsxtrpostlink#1}{#2}}%
+ {\cspreto{glsxtrpostlink#1}{#2}}%
+ }%
+}
+\newcommand*{\glsapptopostlink}[2]{%
+ \ifthenelse{\equal{#1}{}}%
+ {\PackageError{glossaries-extra}
+ {Invalid empty category label in \string\glspretopostlink}{}}%
+ {%
+ \ifcsundef{glsxtrpostlink#1}
+ {\csdef{glsxtrpostlink#1}{#2}}%
+ {\csappto{glsxtrpostlink#1}{#2}}%
+ }%
+}
\newcommand*{\glsxtrpostlinkendsentence}{%
\ifcsdef{glsxtrpostlink\glscategory{\glslabel}}
{%
@@ -7545,13 +10323,15 @@ defined}{}%
}%
}
\newcommand*{\glsxtrpostlinkAddDescOnFirstUse}{%
- \glsxtrifwasfirstuse{\space\glsxtrparen{\glsaccessdesc{\glslabel}}}{}%
+ \glsxtrifwasfirstuse{\glsxtrgenentrytextfmt{ }%
+ \glsxtrparen{\glsaccessfmtdesc{}{\glsxtrgenentrytextfmt}{\glslabel}}}{}%
}
\newcommand*{\glsxtrpostlinkAddSymbolOnFirstUse}{%
\glsxtrifwasfirstuse
{%
\ifglshassymbol{\glslabel}%
- {\space\glsxtrparen{\glsaccesssymbol{\glslabel}}}%
+ {\glsxtrgenentrytextfmt{ }%
+ \glsxtrparen{\glsaccessfmtsymbol{}{\glsxtrgenentrytextfmt}{\glslabel}}}%
{}%
}%
{}%
@@ -7559,37 +10339,24 @@ defined}{}%
\newcommand*{\glsxtrpostlinkAddSymbolDescOnFirstUse}{%
\glsxtrifwasfirstuse
{%
- \space\glsxtrparen
+ \glsxtrgenentrytextfmt{ }\glsxtrparen
{%
\ifglshassymbol{\glslabel}%
- {\glsaccesssymbol{\glslabel}, }%
+ {\glsaccessfmtsymbol{}{\glsxtrgenentrytextfmt}{\glslabel}%
+ \expandafter\glsxtrgenentrytextfmt\expandafter{\glsxtrpostlinkSymbolDescSep}}%
{}%
- \glsaccessdesc{\glslabel}%
+ \glsaccessfmtdesc{}{\glsxtrgenentrytextfmt}{\glslabel}%
}%
}%
{}%
}
+\newcommand*{\glsxtrpostlinkSymbolDescSep}{, }
+\newcommand*{\glsxtrdiscardperiodretainfirstuse}[3]{%
+ \glsxtrifwassubsequentorshort{\glsxtrifperiod{#2}{#3}}{#3}%
+}
\newcommand*{\glsxtrdiscardperiod}[3]{%
- \glsxtrifwasfirstuse
- {%
- \glsifattribute{#1}{retainfirstuseperiod}{true}%
- {#3}%
- {%
- \glsifattribute{#1}{discardperiod}{true}%
- {%
- \glsifplural
- {%
- \glsifattribute{#1}{pluraldiscardperiod}{true}%
- {\glsxtrifperiod{#2}{#3}}%
- {#3}%
- }%
- {%
- \glsxtrifperiod{#2}{#3}%
- }%
- }%
- {#3}%
- }%
- }%
+ \glsifattribute{#1}{retainfirstuseperiod}{true}%
+ {\glsxtrdiscardperiodretainfirstuse{#1}{#2}{#3}}%
{%
\glsifattribute{#1}{discardperiod}{true}%
{%
@@ -7637,17 +10404,17 @@ defined}{}%
}
\def\@glsxtr@foundinlist#1\@nnil{\@firstoftwo}
\def\@glsxtr@notfoundinlist#1{\@secondoftwo}
-\newcommand{\glsxtrdopostpunc}[1]{%
+\newrobustcmd{\glsxtrdopostpunc}[1]{%
\glsxtrifnextpunc{\@glsxtr@swaptwo{#1}}{#1}%
}
\newcommand{\@glsxtr@swaptwo}[2]{#2#1}
\define@key{glsxtrabbrv}{category}{%
\protected@edef\glscategorylabel{#1}%
}
-\define@key{glsxtrabbrv}{shortplural}{%
+\define@key{glsxtrabbrvpl}{shortplural}{%
\def\@gls@shortpl{#1}%
}
-\define@key{glsxtrabbrv}{longplural}{%
+\define@key{glsxtrabbrvpl}{longplural}{%
\def\@gls@longpl{#1}%
}
\newtoks\glsshortpltok
@@ -7668,8 +10435,9 @@ defined}{}%
\fi
\@glsxtr@insert@dots@next#1%
}
-\newcommand*{\glsxtrwordsep}{\space}
-\newcommand*{\glsxtrword}[1]{#1}
+\newcommand*{\glsxtrwordsep}{\glsxtrgenentrytextfmt{ }}
+\newcommand*{\glsxtrwordsephyphen}{\glsxtrgenentrytextfmt{-}}
+\newcommand*{\glsxtrword}[1]{\glsxtrgenentrytextfmt{#1}}
\newcommand*{\@glsxtr@markwordseps}[2]{%
\def#1{}%
\@glsxtr@mark@wordseps#1#2 \@nnil
@@ -7696,10 +10464,12 @@ defined}{}%
\glslongtok{#4}%
\def\glsxtrorgshort{#3}%
\def\glsxtrorglong{#4}%
+ \def\glsxtrorgkeylist{#1}%
\def\ExtraCustomAbbreviationFields{}%
\@gls@initaccesskeys
\def\glscategorylabel{abbreviation}%
- \setkeys*{glsxtrabbrv}[shortplural,longplural]{#1}%
+ \setkeys*{glsxtrabbrv}{#1}%
+ \let\@glsxtrabbrv@rmkeys\XKV@rm
\ifcsdef{@glsabbrv@current@\glscategorylabel}%
{%
\let\@glsxtr@orgwarndep\GlsXtrWarnDeprecatedAbbrStyle
@@ -7711,19 +10481,18 @@ defined}{}%
\glsxtr@applyabbrvstyle{\@glsabbrv@current@abbreviation}%
}%
\def\@gls@longpl{#4\glspluralsuffix}%
- \let\@gls@default@longpl\@gls@longpl
\glsifcategoryattribute{\glscategorylabel}{markwords}{true}%
{%
\@glsxtr@markwordseps\@gls@long{#4}%
- \expandafter\def\expandafter\@gls@longpl\expandafter
- {\@gls@long\glspluralsuffix}%
- \let\@gls@default@longpl\@gls@longpl
\expandafter\glslongtok\expandafter{\@gls@long}%
+ \glsexclapplyinnerfmtfield{\the\glslabeltok}{desc}%
}%
{}%
+ \let\@glsxtr@if@markshortwords\@secondoftwo
\glsifcategoryattribute{\glscategorylabel}{markshortwords}{true}%
{%
- \@glsxtr@markwordseps\@gls@short{#3}%
+ \let\@glsxtr@if@markshortwords\@firstoftwo
+ \def\@gls@short{#3}%
}%
{%
\glsifcategoryattribute{\glscategorylabel}{insertdots}{true}%
@@ -7743,25 +10512,48 @@ defined}{}%
{%
\let\@gls@shortpl\@gls@short
}%
- {%
+ {%
\expandafter\def\expandafter\@gls@shortpl\expandafter{\@gls@short
\abbrvpluralsuffix}%
}%
}%
+ \@glsxtr@if@markshortwords
+ {%
+ \expandafter\@glsxtr@markwordseps\expandafter\@gls@short
+ \expandafter{\@gls@short}%
+ }%
+ {}%
\expandafter\glsshorttok\expandafter{\@gls@short}%
\glsxtrnewabbrevpresetkeyhook{#1}{#2}{#3}%
- \setkeys*{glsxtrabbrv}[category]{#1}%
- \let\@gls@org@longpl\@gls@longpl
- \let\@gls@org@shortpl\@gls@shortpl
- \ifx\@gls@default@longpl\@gls@longpl
- \else
- \glsifcategoryattribute{\glscategorylabel}{markwords}{true}%
- {%
- \expandafter\@glsxtr@markwordseps\expandafter\@gls@longpl\expandafter
- {\@gls@longpl}%
- }%
- {}%
- \fi
+ \let\@gls@default@shortpl\@gls@shortpl
+ \let\XKV@rm\@glsxtrabbrv@rmkeys
+ \setrmkeys*{glsxtrabbrvpl}%
+ \expandafter\glskeylisttok\expandafter{\XKV@rm}%
+ \let\@gls@org@longpl\@gls@longpl
+ \let\@gls@org@shortpl\@gls@shortpl
+ \glsifcategoryattribute{\glscategorylabel}{markwords}{true}%
+ {%
+ \expandafter\@glsxtr@markwordseps\expandafter\@gls@longpl\expandafter
+ {\@gls@longpl}%
+ }%
+ {}%
+ \@glsxtr@if@markshortwords
+ {%
+ \expandafter\@glsxtr@markwordseps\expandafter\@gls@shortpl
+ \expandafter{\@gls@shortpl}%
+ }%
+ {%
+ \ifx\@gls@default@shortpl\@gls@shortpl
+ \else
+ \glsifcategoryattribute{\glscategorylabel}{insertdots}{true}%
+ {%
+ \expandafter\@glsxtr@insertdots\expandafter\@gls@shortpl
+ \expandafter{\@gls@shortpl}%
+ \appto\@gls@shortpl{\@}%
+ }%
+ {}%
+ \fi
+ }%
\expandafter\glsshortpltok\expandafter{\@gls@shortpl}%
\expandafter\glslongpltok\expandafter{\@gls@longpl}%
\@gls@setup@default@access
@@ -7769,8 +10561,8 @@ defined}{}%
\protected@edef\@do@newglossaryentry{%
\noexpand\newglossaryentry{\the\glslabeltok}%
{%
- type=\glsxtrabbrvtype,%
- category=abbreviation,%
+ type={\glsxtrabbrvtype},%
+ category={\glscategorylabel},%
short={\the\glsshorttok},%
shortplural={\the\glsshortpltok},%
long={\the\glslongtok},%
@@ -7783,62 +10575,168 @@ defined}{}%
}%
\@do@newglossaryentry
\@glsxtr@addabbreviationlist{\glsentrytype{\the\glslabeltok}}%
+ \glsexclapplyinnerfmtfield{\the\glslabeltok}{first}%
+ \glsexclapplyinnerfmtfield{\the\glslabeltok}{firstpl}%
+ \glsexclapplyinnerfmtfield{\the\glslabeltok}{text}%
+ \glsexclapplyinnerfmtfield{\the\glslabeltok}{plural}%
+ \glsexclapplyinnerfmtfield{\the\glslabeltok}{name}%
\GlsXtrPostNewAbbreviation
}
\newcommand*{\glsxtrnewabbrevpresetkeyhook}[3]{}
\newcommand*{\GlsXtrPostNewAbbreviation}{}
\newcommand*{\newabbreviationhook}{}
\newcommand*{\CustomAbbreviationFields}{}
-\newcommand*{\glsxtrparen}[1]{(#1)}
+\newcommand*{\glsxtrparen}[1]{%
+ \glsxtrgenentrytextfmt{(}#1\glsxtrgenentrytextfmt{)}}
\newcommand*{\glsxtrfullformat}[2]{%
- \glsfirstlongfont{\glsaccesslong{#1}}#2\glsxtrfullsep{#1}%
- \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshort{#1}}}%
+ \ifglsxtrinsertinside
+ \glsfirstlongfont{\glsaccessfmtlong{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ \glsfirstlongfont{\glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{#1}}%
+ \glsxtrgenentrytextfmt{#2}%
+ \fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\protect\glsfirstabbrvfont
+ {\glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{#1}}}%
}
\newcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstlongfont{\Glsaccesslong{#1}}#2\glsxtrfullsep{#1}%
- \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshort{#1}}}%
+ \ifglsxtrinsertinside
+ \glsfirstlongfont{\Glsaccessfmtlong{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ \glsfirstlongfont{\Glsaccessfmtlong{}{\glsxtrgenentrytextfmt}{#1}}%
+ \glsxtrgenentrytextfmt{#2}%
+ \fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\protect\glsfirstabbrvfont
+ {\glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{#1}}}%
+}
+\glsmfuaddmap{\glsxtrfullformat}{\Glsxtrfullformat}
+\newcommand*{\GLSxtrfullformat}[2]{%
+ \ifglsxtrinsertinside
+ \glsfirstlongfont{\GLSaccessfmtlong{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ \glsfirstlongfont{\GLSaccessfmtlong{}{\glsxtrgenentrytextfmt}{#1}}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\protect\glsfirstabbrvfont
+ {\GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{#1}}}%
}
+\glsmfublocker{\GLSxtrfullformat}
\newcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstlongfont{\glsaccesslongpl{#1}}#2\glsxtrfullsep{#1}%
- \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshortpl{#1}}}%
+ \ifglsxtrinsertinside
+ \glsfirstlongfont{\glsaccessfmtlongpl{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ \glsfirstlongfont{\glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{#1}}%
+ \glsxtrgenentrytextfmt{#2}%
+ \fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\protect\glsfirstabbrvfont
+ {\glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{#1}}}%
}
\newcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstlongfont{\Glsaccesslongpl{#1}}#2\glsxtrfullsep{#1}%
- \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshortpl{#1}}}%
+ \ifglsxtrinsertinside
+ \glsfirstlongfont{\Glsaccessfmtlongpl{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ \glsfirstlongfont{\Glsaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{#1}}%
+ \glsxtrgenentrytextfmt{#2}%
+ \fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\protect\glsfirstabbrvfont
+ {\glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{#1}}}%
+}
+\glsmfuaddmap{\glsxtrfullplformat}{\Glsxtrfullplformat}
+\newcommand*{\GLSxtrfullplformat}[2]{%
+ \ifglsxtrinsertinside
+ \glsfirstlongfont{\GLSaccessfmtlongpl{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ \glsfirstlongfont{\GLSaccessfmtlongpl{}{\glsxtrgenentrytextfmt}{#1}}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ \glsxtrfullsep{#1}%
+ \glsxtrparen{\protect\glsfirstabbrvfont
+ {\GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{#1}}}%
}
-\newcommand*{\glsxtrfullsep}[1]{\space}
+\glsmfublocker{\GLSxtrfullplformat}
+\newcommand*{\GLSxtr@fullformat@fallback}[2]{%
+ \glsuppercase{\glsxtrfullformat{##1}{##2}}%
+}%
+\newcommand*{\GLSxtr@fullplformat@fallback}[2]{%
+ \glsuppercase{\glsxtrfullplformat{##1}{##2}}%
+}%
+\newcommand*{\glsxtrfullsep}[1]{\glsxtrgenentrytextfmt{ }}
\newcommand*{\glsxtrinlinefullformat}{\glsxtrfullformat}
\newcommand*{\Glsxtrinlinefullformat}{\Glsxtrfullformat}
+\newcommand*{\GLSxtrinlinefullformat}{\GLSxtrfullformat}
\newcommand*{\glsxtrinlinefullplformat}{\glsxtrfullplformat}
\newcommand*{\Glsxtrinlinefullplformat}{\Glsxtrfullplformat}
+\newcommand*{\GLSxtrinlinefullplformat}{\GLSxtrfullplformat}
\renewcommand*{\glsentryfull}[1]{\glsxtrinlinefullformat{#1}{}}
\renewcommand*{\Glsentryfull}[1]{\Glsxtrinlinefullformat{#1}{}}
+\glsmfuaddmap{\glsentryfull}{\Glsentryfull}
\renewcommand*{\glsentryfullpl}[1]{\glsxtrinlinefullplformat{#1}{}}
\renewcommand*{\Glsentryfullpl}[1]{\Glsxtrinlinefullplformat{#1}{}}
+\glsmfuaddmap{\glsentryfullpl}{\Glsentryfullpl}
\newcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{#1}}
+\newrobustcmd*{\glsfirstinnerfmtabbrvfont}[1]{%
+ \glsfirstabbrvfont{\glsxtrgenentrytextfmt{#1}}%
+}
+\newcommand*{\glsfirstxpabbrvfont}[2]{%
+ \glsifcategoryattributetrue{#2}{markshortwords}%
+ {\protect\glsfirstabbrvfont{#1}}%
+ {\glsfirstinnerfmtabbrvfont{#1}}%
+}
\newcommand*{\glsfirstabbrvdefaultfont}[1]{\glsabbrvdefaultfont{#1}}
\newcommand*{\glsabbrvfont}[1]{\glsabbrvdefaultfont{#1}}
+\newrobustcmd*{\glsinnerfmtabbrvfont}[1]{%
+ \glsabbrvfont{\glsxtrgenentrytextfmt{#1}}%
+}
+\newcommand*{\glsxpabbrvfont}[2]{%
+ \glsifcategoryattributetrue{#2}{markshortwords}%
+ {\protect\glsabbrvfont{#1}}%
+ {\glsinnerfmtabbrvfont{#1}}%
+}
\newcommand*{\glsabbrvdefaultfont}[1]{#1}
\newcommand*{\glslongfont}[1]{\glslongdefaultfont{#1}}
+\newrobustcmd*{\glsinnerfmtlongfont}[1]{%
+ \glslongfont{\glsxtrgenentrytextfmt{#1}}%
+}
+\newcommand*{\glsxplongfont}[2]{%
+ \glsifcategoryattributetrue{#2}{markwords}%
+ {\protect\glslongfont{#1}}%
+ {\glsinnerfmtlongfont{#1}}%
+}
\newcommand*{\glslongdefaultfont}[1]{#1}
\newcommand*{\glsfirstlongfont}[1]{\glslongfont{#1}}
+\newrobustcmd*{\glsfirstinnerfmtlongfont}[1]{%
+ \glsfirstlongfont{\glsxtrgenentrytextfmt{#1}}%
+}
+\newcommand*{\glsfirstxplongfont}[2]{%
+ \glsifcategoryattributetrue{#2}{markwords}%
+ {\protect\glsfirstlongfont{#1}}%
+ {\glsfirstinnerfmtlongfont{#1}}%
+}
\newcommand*{\glsfirstlongdefaultfont}[1]{\glslongdefaultfont{#1}}
\newcommand*{\glsxtrabbrvpluralsuffix}{\glspluralsuffix}
\newcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}
+\newcommand*{\glsxtrrevert}[1]{\glsxtrdefaultrevert{#1}}%
+\newcommand*{\glsxtrdefaultrevert}[1]{#1}%
\newrobustcmd*{\glsxtrfull}{\@gls@hyp@opt\ns@glsxtrfull}
\newcommand*\ns@glsxtrfull[2][]{%
\new@ifnextchar[{\@glsxtr@full{#1}{#2}}%
{\@glsxtr@full{#1}{#2}[]}%
}
\def\@glsxtr@full#1#2[#3]{%
+ \def\glsxtrcurrentfield{}%
\@glsxtr@record{#1}{#2}{glslink}%
\glsdoifexists{#2}%
{%
\glssetabbrvfmt{\glscategory{#2}}%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsifplural\@secondoftwo
\let\glscapscase\@firstofthree
- \let\glsinsert\@empty
+ \glsxtrfullsaveinsert{#2}{#3}%
\def\glscustomtext{\glsxtrinlinefullformat{#2}{#3}}%
\glsxtrsetupfulldefs
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
@@ -7853,14 +10751,17 @@ defined}{}%
\new@ifnextchar[{\@Glsxtr@full{#1}{#2}}%
{\@Glsxtr@full{#1}{#2}[]}%
}
+\glsmfuaddmap{\glsxtrfull}{\Glsxtrfull}
\def\@Glsxtr@full#1#2[#3]{%
+ \def\glsxtrcurrentfield{}%
\glsdoifexists{#2}%
{%
\glssetabbrvfmt{\glscategory{#2}}%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsifplural\@secondoftwo
\let\glscapscase\@secondofthree
- \let\glsinsert\@empty
+ \glsxtrfullsaveinsert{#2}{#3}%
\def\glscustomtext{\Glsxtrinlinefullformat{#2}{#3}}%
\glsxtrsetupfulldefs
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
@@ -7873,33 +10774,38 @@ defined}{}%
{\@GLSxtr@full{#1}{#2}[]}%
}
\def\@GLSxtr@full#1#2[#3]{%
+ \def\glsxtrcurrentfield{}%
\glsdoifexists{#2}%
{%
\glssetabbrvfmt{\glscategory{#2}}%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsifplural\@secondoftwo
\let\glscapscase\@thirdofthree
- \let\glsinsert\@empty
- \def\glscustomtext{\mfirstucMakeUppercase{\glsxtrinlinefullformat{#2}{#3}}}%
+ \glsxtrfullsaveinsert{#2}{#3}%
+ \def\glscustomtext{\GLSxtrinlinefullformat{#2}{#3}}%
\glsxtrsetupfulldefs
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
}%
\glspostlinkhook
}
+\glsmfublocker{\GLSxtrfull}
\newrobustcmd*{\glsxtrfullpl}{\@gls@hyp@opt\ns@glsxtrfullpl}
\newcommand*\ns@glsxtrfullpl[2][]{%
\new@ifnextchar[{\@glsxtr@fullpl{#1}{#2}}%
{\@glsxtr@fullpl{#1}{#2}[]}%
}
\def\@glsxtr@fullpl#1#2[#3]{%
+ \def\glsxtrcurrentfield{}%
\@glsxtr@record{#1}{#2}{glslink}%
\glsdoifexists{#2}%
{%
\glssetabbrvfmt{\glscategory{#2}}%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsifplural\@firstoftwo
\let\glscapscase\@firstofthree
- \let\glsinsert\@empty
+ \glsxtrfullsaveinsert{#2}{#3}%
\def\glscustomtext{\glsxtrinlinefullplformat{#2}{#3}}%
\glsxtrsetupfulldefs
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
@@ -7911,15 +10817,18 @@ defined}{}%
\new@ifnextchar[{\@Glsxtr@fullpl{#1}{#2}}%
{\@Glsxtr@fullpl{#1}{#2}[]}%
}
+\glsmfuaddmap{\glsxtrfullpl}{\Glsxtrfullpl}
\def\@Glsxtr@fullpl#1#2[#3]{%
+ \def\glsxtrcurrentfield{}%
\@glsxtr@record{#1}{#2}{glslink}%
\glsdoifexists{#2}%
{%
\glssetabbrvfmt{\glscategory{#2}}%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsifplural\@firstoftwo
\let\glscapscase\@secondofthree
- \let\glsinsert\@empty
+ \glsxtrfullsaveinsert{#2}{#3}%
\def\glscustomtext{\Glsxtrinlinefullplformat{#2}{#3}}%
\glsxtrsetupfulldefs
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
@@ -7931,16 +10840,19 @@ defined}{}%
\new@ifnextchar[{\@GLSxtr@fullpl{#1}{#2}}%
{\@GLSxtr@fullpl{#1}{#2}[]}%
}
+\glsmfublocker{\GLSxtrfullpl}
\def\@GLSxtr@fullpl#1#2[#3]{%
+ \def\glsxtrcurrentfield{}%
\@glsxtr@record{#1}{#2}{glslink}%
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsifplural\@firstoftwo
\let\glscapscase\@thirdofthree
- \let\glsinsert\@empty
+ \glsxtrfullsaveinsert{#2}{#3}%
\def\glscustomtext{%
- \mfirstucMakeUppercase{\glsxtrinlinefullplformat{#2}{#3}}}%
+ \GLSxtrinlinefullplformat{#2}{#3}}%
\glsxtrsetupfulldefs
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
}%
@@ -7951,129 +10863,136 @@ defined}{}%
\new@ifnextchar[{\@glsxtrshort{#1}{#2}}{\@glsxtrshort{#1}{#2}[]}%
}
\def\@glsxtrshort#1#2[#3]{%
+ \def\glsxtrcurrentfield{short}%
\@glsxtr@record{#1}{#2}{glslink}%
\glsdoifexists{#2}%
{%
\glssetabbrvfmt{\glscategory{#2}}%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsxtrifwasfirstuse\@secondoftwo
\let\glsifplural\@secondoftwo
\let\glscapscase\@firstofthree
- \let\glsinsert\@empty
+ \glsxtrsaveinsert{#2}{#3}%
\def\glscustomtext{%
- \glsabbrvfont{\glsaccessshort{#2}\ifglsxtrinsertinside#3\fi}%
- \ifglsxtrinsertinside\else#3\fi
+ \glsxtrshortformat{#2}{#3}{\glsabbrvfont}%
}%
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
}%
\glspostlinkhook
}
\newrobustcmd*{\Glsxtrshort}{\@gls@hyp@opt\ns@Glsxtrshort}
+\glsmfuaddmap{\glsxtrshort}{\Glsxtrshort}
\newcommand*{\ns@Glsxtrshort}[2][]{%
\new@ifnextchar[{\@Glsxtrshort{#1}{#2}}{\@Glsxtrshort{#1}{#2}[]}%
}
\def\@Glsxtrshort#1#2[#3]{%
+ \def\glsxtrcurrentfield{short}%
\@glsxtr@record{#1}{#2}{glslink}%
\glsdoifexists{#2}%
{%
\glssetabbrvfmt{\glscategory{#2}}%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsxtrifwasfirstuse\@secondoftwo
\let\glsifplural\@secondoftwo
\let\glscapscase\@secondofthree
- \let\glsinsert\@empty
+ \glsxtrsaveinsert{#2}{#3}%
\def\glscustomtext{%
- \glsabbrvfont{\Glsaccessshort{#2}\ifglsxtrinsertinside#3\fi}%
- \ifglsxtrinsertinside\else#3\fi
+ \Glsxtrshortformat{#2}{#3}{\glsabbrvfont}%
}%
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
}%
\glspostlinkhook
}
\newrobustcmd*{\GLSxtrshort}{\@gls@hyp@opt\ns@GLSxtrshort}
+\glsmfublocker{\GLSxtrshort}
\newcommand*{\ns@GLSxtrshort}[2][]{%
\new@ifnextchar[{\@GLSxtrshort{#1}{#2}}{\@GLSxtrshort{#1}{#2}[]}%
}
\def\@GLSxtrshort#1#2[#3]{%
+ \def\glsxtrcurrentfield{short}%
\@glsxtr@record{#1}{#2}{glslink}%
\glsdoifexists{#2}%
{%
\glssetabbrvfmt{\glscategory{#2}}%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsxtrifwasfirstuse\@secondoftwo
\let\glsifplural\@secondoftwo
\let\glscapscase\@thirdofthree
- \let\glsinsert\@empty
- \def\glscustomtext{%
- \mfirstucMakeUppercase
- {\glsabbrvfont{\glsaccessshort{#2}\ifglsxtrinsertinside#3\fi}%
- \ifglsxtrinsertinside\else#3\fi
- }%
- }%
+ \glsxtrsaveinsert{#2}{#3}%
+ \def\glscustomtext{\GLSxtrshortformat{#2}{#3}{\glsabbrvfont}}%
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
}%
\glspostlinkhook
}
+\newcommand{\glsxtrsetlongfirstuse}[1]{%
+ \let\glsxtrifwasfirstuse\@firstoftwo
+}
\newrobustcmd*{\glsxtrlong}{\@gls@hyp@opt\ns@glsxtrlong}
\newcommand*{\ns@glsxtrlong}[2][]{%
\new@ifnextchar[{\@glsxtrlong{#1}{#2}}{\@glsxtrlong{#1}{#2}[]}%
}
\def\@glsxtrlong#1#2[#3]{%
+ \def\glsxtrcurrentfield{long}%
\@glsxtr@record{#1}{#2}{glslink}%
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
- \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsifplural\@secondoftwo
\let\glscapscase\@firstofthree
- \let\glsinsert\@empty
+ \glsxtrsetlongfirstuse{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\def\glscustomtext{%
- \glslongfont{\glsaccesslong{#2}\ifglsxtrinsertinside#3\fi}%
- \ifglsxtrinsertinside\else#3\fi
+ \glsxtrlongformat{#2}{#3}{\glslongfont}%
}%
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
}%
\glspostlinkhook
}
\newrobustcmd*{\Glsxtrlong}{\@gls@hyp@opt\ns@Glsxtrlong}
+\glsmfuaddmap{\glsxtrlong}{\Glsxtrlong}
\newcommand*{\ns@Glsxtrlong}[2][]{%
\new@ifnextchar[{\@Glsxtrlong{#1}{#2}}{\@Glsxtrlong{#1}{#2}[]}%
}
\def\@Glsxtrlong#1#2[#3]{%
+ \def\glsxtrcurrentfield{long}%
\@glsxtr@record{#1}{#2}{glslink}%
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
- \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsifplural\@secondoftwo
\let\glscapscase\@secondofthree
- \let\glsinsert\@empty
+ \glsxtrsetlongfirstuse{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\def\glscustomtext{%
- \glslongfont{\Glsaccesslong{#2}\ifglsxtrinsertinside#3\fi}%
- \ifglsxtrinsertinside\else#3\fi
+ \Glsxtrlongformat{#2}{#3}{\glslongfont}%
}%
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
}%
\glspostlinkhook
}
\newrobustcmd*{\GLSxtrlong}{\@gls@hyp@opt\ns@GLSxtrlong}
+\glsmfublocker{\GLSxtrlong}
\newcommand*{\ns@GLSxtrlong}[2][]{%
\new@ifnextchar[{\@GLSxtrlong{#1}{#2}}{\@GLSxtrlong{#1}{#2}[]}%
}
\def\@GLSxtrlong#1#2[#3]{%
+ \def\glsxtrcurrentfield{long}%
\@glsxtr@record{#1}{#2}{glslink}%
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
- \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsifplural\@secondoftwo
\let\glscapscase\@thirdofthree
- \let\glsinsert\@empty
+ \glsxtrsetlongfirstuse{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\def\glscustomtext{%
- \mfirstucMakeUppercase
- {\glslongfont{\glsaccesslong{#2}\ifglsxtrinsertinside#3\fi}%
- \ifglsxtrinsertinside\else#3\fi
- }%
+ \GLSxtrlongformat{#2}{#3}{\glslongfont}%
}%
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
}%
@@ -8084,64 +11003,67 @@ defined}{}%
\new@ifnextchar[{\@glsxtrshortpl{#1}{#2}}{\@glsxtrshortpl{#1}{#2}[]}%
}
\def\@glsxtrshortpl#1#2[#3]{%
+ \def\glsxtrcurrentfield{short}%
\@glsxtr@record{#1}{#2}{glslink}%
\glsdoifexists{#2}%
{%
\glssetabbrvfmt{\glscategory{#2}}%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsxtrifwasfirstuse\@secondoftwo
\let\glsifplural\@firstoftwo
\let\glscapscase\@firstofthree
- \let\glsinsert\@empty
+ \glsxtrsaveinsert{#2}{#3}%
\def\glscustomtext{%
- \glsabbrvfont{\glsaccessshortpl{#2}\ifglsxtrinsertinside#3\fi}%
- \ifglsxtrinsertinside\else#3\fi
+ \glsxtrshortplformat{#2}{#3}{\glsabbrvfont}%
}%
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
}%
\glspostlinkhook
}
\newrobustcmd*{\Glsxtrshortpl}{\@gls@hyp@opt\ns@Glsxtrshortpl}
+\glsmfuaddmap{\glsxtrshortpl}{\Glsxtrshortpl}
\newcommand*{\ns@Glsxtrshortpl}[2][]{%
\new@ifnextchar[{\@Glsxtrshortpl{#1}{#2}}{\@Glsxtrshortpl{#1}{#2}[]}%
}
\def\@Glsxtrshortpl#1#2[#3]{%
+ \def\glsxtrcurrentfield{short}%
\@glsxtr@record{#1}{#2}{glslink}%
\glsdoifexists{#2}%
{%
\glssetabbrvfmt{\glscategory{#2}}%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsxtrifwasfirstuse\@secondoftwo
\let\glsifplural\@firstoftwo
\let\glscapscase\@secondofthree
- \let\glsinsert\@empty
+ \glsxtrsaveinsert{#2}{#3}%
\def\glscustomtext{%
- \glsabbrvfont{\Glsaccessshortpl{#2}\ifglsxtrinsertinside#3\fi}%
- \ifglsxtrinsertinside\else#3\fi
+ \Glsxtrshortplformat{#2}{#3}{\glsabbrvfont}%
}%
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
}%
\glspostlinkhook
}
\newrobustcmd*{\GLSxtrshortpl}{\@gls@hyp@opt\ns@GLSxtrshortpl}
+\glsmfublocker{\GLSxtrshortpl}
\newcommand*{\ns@GLSxtrshortpl}[2][]{%
\new@ifnextchar[{\@GLSxtrshortpl{#1}{#2}}{\@GLSxtrshortpl{#1}{#2}[]}%
}
\def\@GLSxtrshortpl#1#2[#3]{%
+ \def\glsxtrcurrentfield{short}%
\@glsxtr@record{#1}{#2}{glslink}%
\glsdoifexists{#2}%
{%
\glssetabbrvfmt{\glscategory{#2}}%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsxtrifwasfirstuse\@secondoftwo
\let\glsifplural\@firstoftwo
\let\glscapscase\@thirdofthree
- \let\glsinsert\@empty
+ \glsxtrsaveinsert{#2}{#3}%
\def\glscustomtext{%
- \mfirstucMakeUppercase
- {\glsabbrvfont{\glsaccessshortpl{#2}\ifglsxtrinsertinside#3\fi}%
- \ifglsxtrinsertinside\else#3\fi
- }%
+ \GLSxtrshortplformat{#2}{#3}{\glsabbrvfont}%
}%
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
}%
@@ -8152,61 +11074,64 @@ defined}{}%
\new@ifnextchar[{\@glsxtrlongpl{#1}{#2}}{\@glsxtrlongpl{#1}{#2}[]}%
}
\def\@glsxtrlongpl#1#2[#3]{%
+ \def\glsxtrcurrentfield{long}%
\@glsxtr@record{#1}{#2}{glslink}%
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
- \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsifplural\@firstoftwo
\let\glscapscase\@firstofthree
- \let\glsinsert\@empty
+ \glsxtrsetlongfirstuse{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\def\glscustomtext{%
- \glslongfont{\glsaccesslongpl{#2}\ifglsxtrinsertinside#3\fi}%
- \ifglsxtrinsertinside\else#3\fi
+ \glsxtrlongplformat{#2}{#3}{\glslongfont}%
}%
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
}%
\glspostlinkhook
}
\newrobustcmd*{\Glsxtrlongpl}{\@gls@hyp@opt\ns@Glsxtrlongpl}
+\glsmfuaddmap{\glsxtrlongpl}{\Glsxtrlongpl}
\newcommand*{\ns@Glsxtrlongpl}[2][]{%
\new@ifnextchar[{\@Glsxtrlongpl{#1}{#2}}{\@Glsxtrlongpl{#1}{#2}[]}%
}
\def\@Glsxtrlongpl#1#2[#3]{%
+ \def\glsxtrcurrentfield{long}%
\@glsxtr@record{#1}{#2}{glslink}%
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
- \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsifplural\@firstoftwo
\let\glscapscase\@secondofthree
- \let\glsinsert\@empty
+ \glsxtrsetlongfirstuse{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\def\glscustomtext{%
- \glslongfont{\Glsaccesslongpl{#2}\ifglsxtrinsertinside#3\fi}%
- \ifglsxtrinsertinside\else#3\fi
+ \Glsxtrlongplformat{#2}{#3}{\glslongfont}%
}%
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
}%
\glspostlinkhook
}
\newrobustcmd*{\GLSxtrlongpl}{\@gls@hyp@opt\ns@GLSxtrlongpl}
+\glsmfublocker{\GLSxtrlongpl}
\newcommand*{\ns@GLSxtrlongpl}[2][]{%
\new@ifnextchar[{\@GLSxtrlongpl{#1}{#2}}{\@GLSxtrlongpl{#1}{#2}[]}%
}
\def\@GLSxtrlongpl#1#2[#3]{%
+ \def\glsxtrcurrentfield{long}%
\@glsxtr@record{#1}{#2}{glslink}%
\glsdoifexists{#2}%
{%
\let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper
- \let\glsxtrifwasfirstuse\@secondoftwo
+ \let\glsxtrifwasglslike\@secondoftwo
\let\glsifplural\@firstoftwo
\let\glscapscase\@thirdofthree
- \let\glsinsert\@empty
+ \glsxtrsetlongfirstuse{#2}%
+ \glsxtrsaveinsert{#2}{#3}%
\def\glscustomtext{%
- \mfirstucMakeUppercase
- {\glslongfont{\glsaccesslongpl{#2}\ifglsxtrinsertinside#3\fi}%
- \ifglsxtrinsertinside\else#3\fi
- }%
+ \GLSxtrlongplformat{#2}{#3}{\glslongfont}%
}%
\@gls@link[#1]{#2}{\csname gls@\glstype @entryfmt\endcsname}%
}%
@@ -8228,27 +11153,31 @@ defined}{}%
{%
\glscapscase
{%
- \glsxtrsubsequentplfmt{\glslabel}{\glsinsert}%
+ \expandafter\glsxtrsubsequentplfmt\expandafter\glslabel
+ \expandafter{\glsinsert}%
}%
{%
- \Glsxtrsubsequentplfmt{\glslabel}{\glsinsert}%
+ \expandafter\Glsxtrsubsequentplfmt\expandafter\glslabel
+ \expandafter{\glsinsert}%
}%
{%
- \mfirstucMakeUppercase
- {\glsxtrsubsequentplfmt{\glslabel}{\glsinsert}}%
+ \expandafter\GLSxtrsubsequentplfmt\expandafter\glslabel
+ \expandafter{\glsinsert}%
}%
}%
{%
\glscapscase
{%
- \glsxtrsubsequentfmt{\glslabel}{\glsinsert}%
+ \expandafter\glsxtrsubsequentfmt\expandafter\glslabel
+ \expandafter{\glsinsert}%
}%
{%
- \Glsxtrsubsequentfmt{\glslabel}{\glsinsert}%
+ \expandafter\Glsxtrsubsequentfmt\expandafter
+ \glslabel\expandafter{\glsinsert}%
}%
{%
- \mfirstucMakeUppercase
- {\glsxtrsubsequentfmt{\glslabel}{\glsinsert}}%
+ \expandafter\GLSxtrsubsequentfmt\expandafter
+ \glslabel\expandafter{\glsinsert}%
}%
}%
}%
@@ -8257,27 +11186,31 @@ defined}{}%
{%
\glscapscase
{%
- \glsxtrfullplformat{\glslabel}{\glsinsert}%
+ \expandafter\glsxtrfullplformat\expandafter\glslabel
+ \expandafter{\glsinsert}%
}%
{%
- \Glsxtrfullplformat{\glslabel}{\glsinsert}%
+ \expandafter\Glsxtrfullplformat\expandafter\glslabel
+ \expandafter{\glsinsert}%
}%
{%
- \mfirstucMakeUppercase
- {\glsxtrfullplformat{\glslabel}{\glsinsert}}%
+ \expandafter\GLSxtrfullplformat\expandafter\glslabel
+ \expandafter{\glsinsert}%
}%
}%
{%
\glscapscase
{%
- \glsxtrfullformat{\glslabel}{\glsinsert}%
+ \expandafter\glsxtrfullformat\expandafter\glslabel
+ \expandafter{\glsinsert}%
}%
{%
- \Glsxtrfullformat{\glslabel}{\glsinsert}%
+ \expandafter\Glsxtrfullformat\expandafter\glslabel
+ \expandafter{\glsinsert}%
}%
{%
- \mfirstucMakeUppercase
- {\glsxtrfullformat{\glslabel}{\glsinsert}}%
+ \expandafter\GLSxtrfullformat\expandafter\glslabel
+ \expandafter{\glsinsert}%
}%
}%
}%
@@ -8287,25 +11220,127 @@ defined}{}%
}%
}
\newcommand*{\glsxtrsubsequentfmt}[2]{%
- \glsabbrvfont{\glsaccessshort{#1}\ifglsxtrinsertinside #2\fi}%
- \ifglsxtrinsertinside \else#2\fi
+ \glsifattribute{#1}{markshortwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ \glsabbrvfont{\glsaccessshort{#1}\glsxtrgenentrytextfmt{#2}}%
+ \else
+ \glsabbrvfont{\glsaccessshort{#1}}\glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
+ {%
+ \ifglsxtrinsertinside
+ \glsabbrvfont{\glsaccessfmtshort{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ \glsabbrvfont{\glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{#1}}%
+ \glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
}
\let\glsxtrdefaultsubsequentfmt\glsxtrsubsequentfmt
\newcommand*{\glsxtrsubsequentplfmt}[2]{%
- \glsabbrvfont{\glsaccessshortpl{#1}\ifglsxtrinsertinside #2\fi}%
- \ifglsxtrinsertinside \else#2\fi
+ \glsifattribute{#1}{markshortwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ \glsabbrvfont{\glsaccessshortpl{#1}\glsxtrgenentrytextfmt{#2}}%
+ \else
+ \glsabbrvfont{\glsaccessshortpl{#1}}\glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
+ {%
+ \ifglsxtrinsertinside
+ \glsabbrvfont{\glsaccessfmtshortpl{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ \glsabbrvfont{\glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{#1}}%
+ \glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
}
\let\glsxtrdefaultsubsequentplfmt\glsxtrsubsequentplfmt
\newcommand*{\Glsxtrsubsequentfmt}[2]{%
- \glsabbrvfont{\Glsaccessshort{#1}\ifglsxtrinsertinside #2\fi}%
- \ifglsxtrinsertinside \else#2\fi
+ \glsifattribute{#1}{markshortwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ \glsabbrvfont{\Glsaccessshort{#1}\glsxtrgenentrytextfmt{#2}}%
+ \else
+ \glsabbrvfont{\Glsaccessshort{#1}}\glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
+ {%
+ \ifglsxtrinsertinside
+ \glsabbrvfont{\Glsaccessfmtshort{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ \glsabbrvfont{\Glsaccessfmtshort{}{\glsxtrgenentrytextfmt}{#1}}%
+ \glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
}
\let\Glsxtrdefaultsubsequentfmt\Glsxtrsubsequentfmt
+\glsmfuaddmap{\glsxtrsubsequentfmt}{\Glsxtrsubsequentfmt}
\newcommand*{\Glsxtrsubsequentplfmt}[2]{%
- \glsabbrvfont{\Glsaccessshortpl{#1}\ifglsxtrinsertinside #2\fi}%
- \ifglsxtrinsertinside \else#2\fi
+ \glsifattribute{#1}{markshortwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ \glsabbrvfont{\Glsaccessshortpl{#1}\glsxtrgenentrytextfmt{#2}}%
+ \else
+ \glsabbrvfont{\Glsaccessshortpl{#1}}\glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
+ {%
+ \ifglsxtrinsertinside
+ \glsabbrvfont{\Glsaccessfmtshortpl{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ \glsabbrvfont{\Glsaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{#1}}%
+ \glsxtrgenentrytextfmt{#2}%
+ \fi
+ }%
}
\let\Glsxtrdefaultsubsequentplfmt\Glsxtrsubsequentplfmt
+\glsmfuaddmap{\glsxtrsubsequentplfmt}{\Glsxtrsubsequentplfmt}
+\newcommand*{\GLSxtrsubsequentfmt}[2]{%
+ \glsifattribute{#1}{markshortwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ \glsabbrvfont{\GLSaccessshort{#1}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ \glsabbrvfont{\GLSaccessshort{#1}}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+ {%
+ \ifglsxtrinsertinside
+ \glsabbrvfont{\GLSaccessfmtshort{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ \glsabbrvfont{\GLSaccessfmtshort{}{\glsxtrgenentrytextfmt}{#1}}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+}
+\glsmfublocker{\GLSxtrsubsequentfmt}
+\let\GLSxtrdefaultsubsequentfmt\GLSxtrsubsequentfmt
+\newcommand*{\GLSxtrsubsequentplfmt}[2]{%
+ \glsifattribute{#1}{markshortwords}{true}%
+ {%
+ \ifglsxtrinsertinside
+ \glsabbrvfont{\GLSaccessshortpl{#1}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#2}}}%
+ \else
+ \glsabbrvfont{\GLSaccessshortpl{#1}}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+ {%
+ \ifglsxtrinsertinside
+ \glsabbrvfont{\GLSaccessfmtshortpl{#2}{\glsxtrgenentrytextfmt}{#1}}%
+ \else
+ \glsabbrvfont{\GLSaccessfmtshortpl{}{\glsxtrgenentrytextfmt}{#1}}%
+ \glsuppercase{\glsxtrgenentrytextfmt{#2}}%
+ \fi
+ }%
+}
+\glsmfublocker{\GLSxtrsubsequentplfmt}
+\let\GLSxtrdefaultsubsequentplfmt\GLSxtrsubsequentplfmt
\newcommand*{\setabbreviationstyle}[2][abbreviation]{%
\ifcsundef{@glsabbrv@dispstyle@setup@#2}
{%
@@ -8341,6 +11376,83 @@ defined}{}%
\newcommand*{\glsxtr@applyabbrvfmt}[1]{%
\csuse{@glsabbrv@dispstyle@fmts@#1}%
}
+\newcommand*{\glsxtrsetcomplexstyle}[2]{%
+ \csdef{@glsxtr@has@complexstyle@#1}{#2}%
+}
+\newcommand*{\glsxtr@do@ifcomplexstyle@allcaps}[2]{%
+ \ifcsdef{@glsxtr@has@complexstyle@#1}%
+ {%
+ \ifnum\csuse{@glsxtr@has@complexstyle@#1}<1
+ \else
+ \ifnum\csuse{@glsxtr@has@complexstyle@#1}<3
+ #2%
+ \fi
+ \fi
+ }%
+ {}%
+}
+\newcommand*{\glsxtr@do@ifcomplexstyle@insert}[2]{%
+ \ifcsdef{@glsxtr@has@complexstyle@#1}%
+ {%
+ \ifnum\csuse{@glsxtr@has@complexstyle@#1}<2
+ \else
+ #2%
+ \fi
+ }%
+ {}%
+}
+\newcommand*{\GlossariesAbbrStyleTooComplexWarning}[2]{%
+ \GlossariesExtraWarning{Abbreviation style used by `#1' too complex #2}%
+}
+\newcommand*{\glsxtr@check@complexstyle}[2]{%
+ \ifx\glscapscase\@thirdofthree
+ \glsxtr@do@ifcomplexstyle@allcaps{#1}%
+ {%
+ \glsxtrifwasfirstuse
+ {%
+ \glsifplural
+ {%
+ \GlossariesAbbrStyleTooComplexWarning{#1}{for \string\GLSfirstplural.
+ Use \string\GLSpl{#1} or \string\GLSxtrfullpl{#1} instead.
+ Switching off all-caps%
+ }%
+ }%
+ {%
+ \GlossariesAbbrStyleTooComplexWarning{#1}{for \string\GLSfirst.
+ Use \string\GLS{#1} or \string\GLSxtrfull{#1} instead.
+ Switching off all-caps%
+ }%
+ }%
+ }%
+ {%
+ \glsifplural
+ {%
+ \GlossariesAbbrStyleTooComplexWarning{#1}{for \string\GLSplural.
+ Use \string\GLSpl{#1} or \string\GLSxtrshortpl{#1} instead.
+ Switching off all-caps%
+ }%
+ }%
+ {%
+ \GlossariesAbbrStyleTooComplexWarning{#1}{for \string\GLStext.
+ Use \string\GLS{#1} or \string\GLSxtrshort{#1} instead.
+ Switching off all-caps%
+ }%
+ }%
+ }%
+ \let\glscapscase\@firstofthree
+ }%
+ \fi
+ \ifstrempty{#2}{}%
+ {%
+ \glsxtr@do@ifcomplexstyle@insert{#1}%
+ {%
+ \GlossariesAbbrStyleTooComplexWarning{#1}%
+ {to support insert argument with commands like \string\glsfirst\space or
+ \string\glstext. Unexpected results may occur. Use commands
+ like \string\gls\space or \string\glsxtrshort\space instead}%
+ }%
+ }%
+}
\newcommand*{\newabbreviationstyle}[3]{%
\ifcsdef{@glsabbrv@dispstyle@setup@#1}
{%
@@ -8354,12 +11466,18 @@ defined}{}%
\csdef{@glsabbrv@dispstyle@fmts@#1}{%
\renewcommand*{\glsxtrinlinefullformat}{\glsxtrfullformat}%
\renewcommand*{\Glsxtrinlinefullformat}{\Glsxtrfullformat}%
+ \renewcommand*{\GLSxtrinlinefullformat}{\GLSxtrfullformat}%
\renewcommand*{\glsxtrinlinefullplformat}{\glsxtrfullplformat}%
\renewcommand*{\Glsxtrinlinefullplformat}{\Glsxtrfullplformat}%
+ \renewcommand*{\GLSxtrinlinefullplformat}{\GLSxtrfullplformat}%
+ \renewcommand*{\GLSxtrfullformat}{\GLSxtr@fullformat@fallback}%
+ \renewcommand*{\GLSxtrfullplformat}{\GLSxtr@fullplformat@fallback}%
\let\glsxtrsubsequentfmt\glsxtrdefaultsubsequentfmt
\let\glsxtrsubsequentplfmt\glsxtrdefaultsubsequentplfmt
\let\Glsxtrsubsequentfmt\Glsxtrdefaultsubsequentfmt
\let\Glsxtrsubsequentplfmt\Glsxtrdefaultsubsequentplfmt
+ \let\GLSxtrsubsequentfmt\GLSxtrdefaultsubsequentfmt
+ \let\GLSxtrsubsequentplfmt\GLSxtrdefaultsubsequentplfmt
#3}%
}%
}
@@ -8375,8 +11493,18 @@ defined}{}%
\csdef{@glsabbrv@dispstyle@fmts@#1}{%
\renewcommand*{\glsxtrinlinefullformat}{\glsxtrfullformat}%
\renewcommand*{\Glsxtrinlinefullformat}{\Glsxtrfullformat}%
+ \renewcommand*{\GLSxtrinlinefullformat}{\GLSxtrfullformat}%
\renewcommand*{\glsxtrinlinefullplformat}{\glsxtrfullplformat}%
\renewcommand*{\Glsxtrinlinefullplformat}{\Glsxtrfullplformat}%
+ \renewcommand*{\GLSxtrinlinefullplformat}{\GLSxtrfullplformat}%
+ \renewcommand*{\GLSxtrfullformat}{\GLSxtr@fullformat@fallback}%
+ \renewcommand*{\GLSxtrfullplformat}{\GLSxtr@fullplformat@fallback}%
+ \let\glsxtrsubsequentfmt\glsxtrdefaultsubsequentfmt
+ \let\glsxtrsubsequentplfmt\glsxtrdefaultsubsequentplfmt
+ \let\Glsxtrsubsequentfmt\Glsxtrdefaultsubsequentfmt
+ \let\Glsxtrsubsequentplfmt\Glsxtrdefaultsubsequentplfmt
+ \let\GLSxtrsubsequentfmt\GLSxtrdefaultsubsequentfmt
+ \let\GLSxtrsubsequentplfmt\GLSxtrdefaultsubsequentplfmt
#3}%
}%
}
@@ -8417,4266 +11545,7 @@ defined}{}%
}
\newif\ifglsxtrinsertinside
\glsxtrinsertinsidefalse
-\newcommand*{\glsxtrlongshortname}{%
- \protect\glsabbrvfont{\the\glsshorttok}%
-}
-\newabbreviationstyle{long-short}%
-{%
- \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongshortname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstlongfont{\the\glslongtok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvfont{\the\glsshorttok}}},%
- firstplural={\protect\glsfirstlongfont{\the\glslongpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvfont{\the\glsshortpltok}}},%
- plural={\protect\glsabbrvfont{\the\glsshortpltok}},%
- text={\protect\glsabbrvfont{\the\glsshorttok}},%
- description={\the\glslongtok}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
- \renewcommand*{\glsabbrvfont}[1]{\glsabbrvdefaultfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstlongfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstlongfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstlongfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstlongfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvfont{\glsaccessshortpl{##1}}}%
- }%
-}
-\setabbreviationstyle{long-short}
-\newcommand*{\glsxtrlongshortdescsort}{%
- \expandonce\glsxtrorglong\space (\expandonce\glsxtrorgshort)%
-}
-\newcommand*{\glsxtrlongshortdescname}{%
- \protect\glslongfont{\the\glslongtok}
- \glsxtrparen{\protect\glsabbrvfont{\the\glsshorttok}}%
-}
-\newabbreviationstyle{long-short-desc}%
-{%
- \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongshortdescname},
- sort={\glsxtrlongshortdescsort},%
- first={\protect\glsfirstlongfont{\the\glslongtok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvfont{\the\glsshorttok}}},%
- firstplural={\protect\glsfirstlongfont{\the\glslongpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvfont{\the\glsshortpltok}}},%
- text={\protect\glsabbrvfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvfont{\the\glsshortpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{long-short}%
-}
-\newcommand*{\glsxtrshortlongname}{%
- \protect\glsabbrvfont{\the\glsshorttok}%
-}
-\newabbreviationstyle{short-long}%
-{%
- \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortlongname},
- sort={\the\glsshorttok},
- description={\the\glslongtok},%
- first={\protect\glsfirstabbrvfont{\the\glsshorttok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlongfont{\the\glslongtok}}},%
- firstplural={\protect\glsfirstabbrvfont{\the\glsshortpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlongfont{\the\glslongpltok}}},%
- text={\protect\glsabbrvfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfont{\glsaccesslongpl{##1}}}%
- }%
-}
-\newcommand*{\glsxtrshortlongdescsort}{\the\glsshorttok}
-\newcommand*{\glsxtrshortlongdescname}{%
- \protect\glsabbrvfont{\the\glsshorttok}
- \glsxtrparen{\protect\glslongfont{\the\glslongtok}}%
-}
-\newabbreviationstyle{short-long-desc}%
-{%
- \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortlongdescname},
- sort={\glsxtrshortlongdescsort},
- first={\protect\glsfirstabbrvfont{\the\glsshorttok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlongfont{\the\glslongtok}}},%
- firstplural={\protect\glsfirstabbrvfont{\the\glsshortpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlongfont{\the\glslongpltok}}},%
- text={\protect\glsabbrvfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvfont{\the\glsshortpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{short-long}%
-}
-\newcommand*{\glsfirstlongfootnotefont}[1]{\glslongfootnotefont{#1}}%
-\newcommand*{\glslongfootnotefont}[1]{\glslongdefaultfont{#1}}%
-\newcommand*{\glsxtrabbrvfootnote}[2]{\footnote{#2}}
-\newcommand*{\glsxtrfootnotename}{%
- \protect\glsabbrvfont{\the\glsshorttok}%
-}
-\newabbreviationstyle{footnote}%
-{%
- \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrfootnotename},
- sort={\the\glsshorttok},
- description={\the\glslongtok},%
- first={\protect\glsfirstabbrvfont{\the\glsshorttok}%
- \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
- {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
- firstplural={\protect\glsfirstabbrvfont{\the\glsshortpltok}%
- \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
- {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
- text={\protect\glsabbrvfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \protect\glsxtrabbrvfootnote{##1}%
- {\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \protect\glsxtrabbrvfootnote{##1}%
- {\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \protect\glsxtrabbrvfootnote{##1}%
- {\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \protect\glsxtrabbrvfootnote{##1}%
- {\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
-}
-\letabbreviationstyle{short-footnote}{footnote}
-\newcommand*{\glsxtrfootnotedescname}{%
- \protect\glsabbrvfont{\the\glsshorttok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \protect\glsxtrparen{\protect\glslongfont{\the\glslongtok}}%
-}
-\newcommand*{\glsxtrfootnotedescsort}{\the\glsshorttok}
-\newabbreviationstyle{short-footnote-desc}%
-{%
- \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrfootnotedescname},
- sort={\glsxtrfootnotedescsort},
- first={\protect\glsfirstabbrvfont{\the\glsshorttok}%
- \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
- {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
- firstplural={\protect\glsfirstabbrvfont{\the\glsshortpltok}%
- \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
- {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
- text={\protect\glsabbrvfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{footnote}%
-}
-\letabbreviationstyle{footnote-desc}{short-footnote-desc}
-\newabbreviationstyle{postfootnote}%
-{%
- \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrfootnotename},
- sort={\the\glsshorttok},
- description={\the\glslongtok},%
- first={\protect\glsfirstabbrvfont{\the\glsshorttok}},%
- firstplural={\protect\glsfirstabbrvfont{\the\glsshortpltok}},%
- text={\protect\glsabbrvfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \csdef{glsxtrpostlink\glscategorylabel}{%
- \glsxtrifwasfirstuse
- {%
- \glsxtrdopostpunc{\protect\glsxtrabbrvfootnote{\glslabel}%
- {\glsfirstlongfootnotefont{\glsentrylong{\glslabel}}}}%
- }%
- {}%
- }%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
- \renewcommand*{\glsxtrsetupfulldefs}{%
- \let\glsxtrifwasfirstuse\@secondoftwo
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
-}
-\letabbreviationstyle{short-postfootnote}{postfootnote}
-\newabbreviationstyle{short-postfootnote-desc}%
-{%
- \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrfootnotedescname},
- sort={\glsxtrfootnotedescsort},
- first={\protect\glsfirstabbrvfont{\the\glsshorttok}},%
- firstplural={\protect\glsfirstabbrvfont{\the\glsshortpltok}},%
- text={\protect\glsabbrvfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \csdef{glsxtrpostlink\glscategorylabel}{%
- \glsxtrifwasfirstuse
- {%
- \glsxtrdopostpunc{\protect\glsxtrabbrvfootnote{\glslabel}%
- {\glsfirstlongfootnotefont{\glsentrylong{\glslabel}}}}%
- }%
- {}%
- }%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
- \renewcommand*{\glsxtrsetupfulldefs}{%
- \let\glsxtrifwasfirstuse\@secondoftwo
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{postfootnote}%
-}
-\letabbreviationstyle{postfootnote-desc}{short-postfootnote-desc}
-\newcommand*{\glsxtrshortnolongname}{%
- \protect\glsabbrvfont{\the\glsshorttok}%
-}
-\newabbreviationstyle{short}%
-{%
- \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortnolongname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstabbrvfont{\the\glsshorttok}},
- firstplural={\protect\glsfirstabbrvfont{\the\glsshortpltok}},
- text={\protect\glsabbrvfont{\the\glsshorttok}},
- plural={\protect\glsabbrvfont{\the\glsshortpltok}},
- description={\the\glslongtok}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{regular}{true}}%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \protect\glsfirstabbrvfont{\glsaccessshort{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \protect\glsfirstabbrvfont{\glsaccessshortpl{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \protect\glsfirstabbrvfont{\glsaccessshort{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfont{\Glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \protect\glsfirstabbrvfont{\glsaccessshortpl{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfont{\Glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
-}
-\setabbreviationstyle[acronym]{short}
-\letabbreviationstyle{short-nolong}{short}
-\newabbreviationstyle{short-nolong-noreg}%
-{%
- \GlsXtrUseAbbrStyleSetup{short-nolong}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{short-nolong}%
-}
-\newcommand*{\glsxtrshortdescname}{%
- \protect\glsabbrvfont{\the\glsshorttok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \protect\glsxtrparen{\protect\glslongfont{\the\glslongtok}}%
-}
-\newabbreviationstyle{short-desc}%
-{%
- \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortdescname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstabbrvfont{\the\glsshorttok}},
- firstplural={\protect\glsfirstabbrvfont{\the\glsshortpltok}},
- text={\protect\glsabbrvfont{\the\glsshorttok}},
- plural={\protect\glsabbrvfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{regular}{true}}%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
-}
-\letabbreviationstyle{short-nolong-desc}{short-desc}
-\newabbreviationstyle{short-nolong-desc-noreg}%
-{%
- \GlsXtrUseAbbrStyleSetup{short-nolong-desc}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{short-nolong-desc}%
-}
-\newabbreviationstyle{nolong-short}%
-{%
- \GlsXtrUseAbbrStyleSetup{short-nolong}%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{short-nolong}%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \protect\glsfirstlongfont{\glsaccesslong{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \protect\glsfirstlongfont{\glsaccesslongpl{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \protect\glsfirstlongfont{\glsaccesslong{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvfont{\Glsaccessshort{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \protect\glsfirstlongfont{\glsaccesslongpl{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvfont{\Glsaccessshortpl{##1}}}%
- }%
-}
-\newabbreviationstyle{nolong-short-noreg}%
-{%
- \GlsXtrUseAbbrStyleSetup{nolong-short}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{nolong-short}%
-}
-\newcommand*{\glsxtrlongnoshortdescname}{%
- \protect\glslongfont{\the\glslongtok}%
-}
-\newabbreviationstyle{long-desc}%
-{%
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongnoshortdescname},
- sort={\the\glslongtok},
- first={\protect\glsfirstlongfont{\the\glslongtok}},
- firstplural={\protect\glsfirstlongfont{\the\glslongpltok}},
- text={\glslongfont{\the\glslongtok}},
- plural={\glslongfont{\the\glslongpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{regular}{true}}%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrsubsequentfmt}[2]{%
- \glslongfont{\glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
- \glslongfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
- \glslongfont{\Glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
- \glslongfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstlongfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstlongfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstlongfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstlongfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstlongfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstlongfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstlongfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstlongfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
-}
-\letabbreviationstyle{long-noshort-desc}{long-desc}
-\newabbreviationstyle{long-noshort-desc-noreg}%
-{%
- \GlsXtrUseAbbrStyleSetup{long-noshort-desc}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{long-noshort-desc}%
-}
-\newcommand*{\glsxtrlongnoshortname}{%
- \protect\glsabbrvfont{\the\glsshorttok}%
-}
-\newabbreviationstyle{long}%
-{%
- \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongnoshortname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstlongfont{\the\glslongtok}},
- firstplural={\protect\glsfirstlongfont{\the\glslongpltok}},
- text={\glslongfont{\the\glslongtok}},
- plural={\glslongfont{\the\glslongpltok}},%
- description={\the\glslongtok}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{regular}{true}}%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{long-desc}%
-}
-\letabbreviationstyle{long-noshort}{long}
-\newabbreviationstyle{long-noshort-noreg}%
-{%
- \GlsXtrUseAbbrStyleSetup{long-noshort}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{long-noshort}%
-}
-\newcommand*{\glsxtrscfont}[1]{\textsc{#1}}
-\newcommand*{\glsabbrvscfont}{\glsxtrscfont}
-\newcommand*{\glsxtrfirstscfont}[1]{\glsabbrvscfont{#1}}
-\newcommand*{\glsfirstabbrvscfont}{\glsxtrfirstscfont}
-\newcommand*{\glsxtrscsuffix}{\protect\glstextup{\glsxtrabbrvpluralsuffix}}
-\newabbreviationstyle{long-short-sc}%
-{%
- \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongshortname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstlongdefaultfont{\the\glslongtok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvscfont{\the\glsshorttok}}},%
- firstplural={\protect\glsfirstlongdefaultfont{\the\glslongpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvscfont{\the\glsshortpltok}}},%
- text={\protect\glsabbrvscfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvscfont{\the\glsshortpltok}},%
- description={\the\glslongtok}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
- \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvscfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvscfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstlongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvscfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstlongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvscfont{\glsaccessshortpl{##1}}}%
- }%
-}
-\newabbreviationstyle{long-short-sc-desc}%
-{%
- \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongshortdescname},
- sort={\glsxtrlongshortdescsort},%
- first={\protect\glsfirstlongdefaultfont{\the\glslongtok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvscfont{\the\glsshorttok}}},%
- firstplural={\protect\glsfirstlongdefaultfont{\the\glslongpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvscfont{\the\glsshortpltok}}},%
- text={\protect\glsabbrvscfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvscfont{\the\glsshortpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{long-short-sc}%
-}
-\newabbreviationstyle{short-sc-long}%
-{%
- \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortlongname},
- sort={\the\glsshorttok},
- description={\the\glslongtok},%
- first={\protect\glsfirstabbrvscfont{\the\glsshorttok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongtok}}},%
- firstplural={\protect\glsfirstabbrvscfont{\the\glsshortpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongpltok}}},%
- text={\protect\glsabbrvscfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvscfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
- \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvscfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvscfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvscfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvscfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
- }%
-}
-\newabbreviationstyle{short-sc-long-desc}%
-{%
- \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortlongdescname},
- sort={\glsxtrshortlongdescsort},
- first={\protect\glsfirstabbrvscfont{\the\glsshorttok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongtok}}},%
- firstplural={\protect\glsfirstabbrvscfont{\the\glsshortpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongpltok}}},%
- text={\protect\glsabbrvscfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvscfont{\the\glsshortpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{short-sc-long}%
-}
-\newabbreviationstyle{short-sc}%
-{%
- \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortnolongname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstabbrvscfont{\the\glsshorttok}},
- firstplural={\protect\glsfirstabbrvscfont{\the\glsshortpltok}},
- text={\protect\glsabbrvscfont{\the\glsshorttok}},
- plural={\protect\glsabbrvscfont{\the\glsshortpltok}},
- description={\the\glslongtok}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{regular}{true}}%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
- \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \protect\glsfirstabbrvscfont{\glsaccessshort{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \protect\glsfirstabbrvscfont{\glsaccessshortpl{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \protect\glsfirstabbrvscfont{\Glsaccessshort{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \protect\glsfirstabbrvscfont{\Glsaccessshortpl{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvscfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvscfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvscfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvscfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
-}
-\letabbreviationstyle{short-sc-nolong}{short-sc}
-\newabbreviationstyle{short-sc-desc}%
-{%
- \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortdescname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstabbrvscfont{\the\glsshorttok}},
- firstplural={\protect\glsfirstabbrvscfont{\the\glsshortpltok}},
- text={\protect\glsabbrvscfont{\the\glsshorttok}},
- plural={\protect\glsabbrvscfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{regular}{true}}%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
- \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvscfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvscfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvscfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvscfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvscfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvscfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvscfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvscfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
-}
-\letabbreviationstyle{short-sc-nolong-desc}{short-sc-desc}
-\newabbreviationstyle{nolong-short-sc}%
-{%
- \GlsXtrUseAbbrStyleSetup{short-sc-nolong}%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{short-sc-nolong}%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \protect\glsfirstlongdefaultfont{\glsaccesslong{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvscfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \protect\glsfirstlongdefaultfont{\glsaccesslongpl{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvscfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \protect\glsfirstlongdefaultfont{\Glsaccesslong{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvscfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \protect\glsfirstlongdefaultfont{\Glsaccesslongpl{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvscfont{\glsaccessshortpl{##1}}}%
- }%
-}
-\newabbreviationstyle{long-noshort-sc}%
-{%
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongnoshortname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstlongdefaultfont{\the\glslongtok}},
- firstplural={\protect\glsfirstlongdefaultfont{\the\glslongpltok}},
- text={\protect\glslongdefaultfont{\the\glslongtok}},
- plural={\protect\glslongdefaultfont{\the\glslongpltok}},%
- description={\the\glslongtok}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{regular}{true}}%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
- \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrsubsequentfmt}[2]{%
- \glslongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
- \glslongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
- \glslongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
- \glslongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvscfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvscfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstlongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvscfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstlongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvscfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
-}
-\@glsxtr@deprecated@abbrstyle{long-sc}{long-noshort-sc}
-\newabbreviationstyle{long-noshort-sc-desc}%
-{%
- \GlsXtrUseAbbrStyleSetup{long-noshort-desc}%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
- \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrsubsequentfmt}[2]{%
- \glslongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
- \glslongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
- \glslongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
- \glslongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvscfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvscfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstlongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvscfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstlongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvscfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
-}
-\@glsxtr@deprecated@abbrstyle{long-desc-sc}{long-noshort-sc-desc}
-\newabbreviationstyle{short-sc-footnote}%
-{%
- \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrfootnotename},
- sort={\the\glsshorttok},
- description={\the\glslongtok},%
- first={\protect\glsfirstabbrvscfont{\the\glsshorttok}%
- \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
- {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
- firstplural={\protect\glsfirstabbrvscfont{\the\glsshortpltok}%
- \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
- {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
- text={\protect\glsabbrvscfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvscfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
- \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvscfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \protect\glsxtrabbrvfootnote{##1}%
- {\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvscfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \protect\glsxtrabbrvfootnote{##1}%
- {\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvscfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \protect\glsxtrabbrvfootnote{##1}%
- {\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvscfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \protect\glsxtrabbrvfootnote{##1}%
- {\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvscfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvscfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvscfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvscfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
-}
-\@glsxtr@deprecated@abbrstyle{footnote-sc}{short-sc-footnote}
-\newabbreviationstyle{short-sc-footnote-desc}%
-{%
- \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrfootnotedescname},
- sort={\glsxtrfootnotedescsort},
- first={\protect\glsfirstabbrvscfont{\the\glsshorttok}%
- \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
- {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
- firstplural={\protect\glsfirstabbrvscfont{\the\glsshortpltok}%
- \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
- {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
- text={\protect\glsabbrvscfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvscfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{short-sc-footnote}%
-}
-\newabbreviationstyle{short-sc-postfootnote}%
-{%
- \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrfootnotename},
- sort={\the\glsshorttok},
- description={\the\glslongtok},%
- first={\protect\glsfirstabbrvscfont{\the\glsshorttok}},%
- firstplural={\protect\glsfirstabbrvscfont{\the\glsshortpltok}},%
- text={\protect\glsabbrvscfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvscfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \csdef{glsxtrpostlink\glscategorylabel}{%
- \glsxtrifwasfirstuse
- {%
- \glsxtrdopostpunc{\protect\glsxtrabbrvfootnote{\glslabel}%
- {\glsfirstlongfootnotefont{\glsentrylong{\glslabel}}}}%
- }%
- {}%
- }%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
- \renewcommand*{\glsxtrsetupfulldefs}{%
- \let\glsxtrifwasfirstuse\@secondoftwo
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrscsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvscfont{##1}}%
- \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvscfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvscfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvscfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvscfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvscfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvscfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvscfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvscfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvscfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
-}
-\@glsxtr@deprecated@abbrstyle{postfootnote-sc}{short-sc-postfootnote}
-\newabbreviationstyle{short-sc-postfootnote-desc}%
-{%
- \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrfootnotedescname},
- sort={\glsxtrfootnotedescsort},
- first={\protect\glsfirstabbrvscfont{\the\glsshorttok}},%
- firstplural={\protect\glsfirstabbrvscfont{\the\glsshortpltok}},%
- text={\protect\glsabbrvscfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvscfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \csdef{glsxtrpostlink\glscategorylabel}{%
- \glsxtrifwasfirstuse
- {%
- \glsxtrdopostpunc{\protect\glsxtrabbrvfootnote{\glslabel}%
- {\glsfirstlongfootnotefont{\glsentrylong{\glslabel}}}}%
- }%
- {}%
- }%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
- \renewcommand*{\glsxtrsetupfulldefs}{%
- \let\glsxtrifwasfirstuse\@secondoftwo
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{short-sc-postfootnote}%
-}
-\newcommand*{\glsxtrsmfont}[1]{\textsmaller{#1}}
-\newcommand*{\glsabbrvsmfont}{\glsxtrsmfont}
-\newcommand*{\glsxtrfirstsmfont}[1]{\glsabbrvsmfont{#1}}
-\newcommand*{\glsfirstabbrvsmfont}{\glsxtrfirstsmfont}
-\newcommand*{\glsxtrsmsuffix}{\glsxtrabbrvpluralsuffix}
-\newabbreviationstyle{long-short-sm}%
-{%
- \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongshortname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstlongdefaultfont{\the\glslongtok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvsmfont{\the\glsshorttok}}},%
- firstplural={\protect\glsfirstlongdefaultfont{\the\glslongpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvsmfont{\the\glsshortpltok}}},%
- text={\protect\glsabbrvsmfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvsmfont{\the\glsshortpltok}},%
- description={\the\glslongtok}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
- \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvsmfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvsmfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstlongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvsmfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstlongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvsmfont{\glsaccessshortpl{##1}}}%
- }%
-}
-\newabbreviationstyle{long-short-sm-desc}%
-{%
- \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongshortdescname},
- sort={\glsxtrlongshortdescsort},%
- first={\protect\glsfirstlongdefaultfont{\the\glslongtok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvsmfont{\the\glsshorttok}}},%
- firstplural={\protect\glsfirstlongdefaultfont{\the\glslongpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvsmfont{\the\glsshortpltok}}},%
- text={\protect\glsabbrvsmfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvsmfont{\the\glsshortpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{long-short-sm}%
-}
-\newabbreviationstyle{short-sm-long}%
-{%
- \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortlongname},
- sort={\the\glsshorttok},
- description={\the\glslongtok},%
- first={\protect\glsfirstabbrvsmfont{\the\glsshorttok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongtok}}},%
- firstplural={\protect\glsfirstabbrvsmfont{\the\glsshortpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongpltok}}},%
- text={\protect\glsabbrvsmfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvsmfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
- \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvsmfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvsmfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvsmfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvsmfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
- }%
-}
-\newabbreviationstyle{short-sm-long-desc}%
-{%
- \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortlongdescname},
- sort={\glsxtrshortlongdescsort},
- first={\protect\glsfirstabbrvsmfont{\the\glsshorttok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongtok}}},%
- firstplural={\protect\glsfirstabbrvsmfont{\the\glsshortpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongpltok}}},%
- text={\protect\glsabbrvsmfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvsmfont{\the\glsshortpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{short-sm-long}%
-}
-\newabbreviationstyle{short-sm}%
-{%
- \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortnolongname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstabbrvsmfont{\the\glsshorttok}},
- firstplural={\protect\glsfirstabbrvsmfont{\the\glsshortpltok}},
- text={\protect\glsabbrvsmfont{\the\glsshorttok}},
- plural={\protect\glsabbrvsmfont{\the\glsshortpltok}},
- description={\the\glslongtok}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{regular}{true}}%
-}%
-{%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
- \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \protect\glsfirstabbrvsmfont{\glsaccessshort{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \protect\glsfirstabbrvsmfont{\glsaccessshortpl{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \protect\glsfirstabbrvsmfont{\Glsaccessshort{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \protect\glsfirstabbrvsmfont{\Glsaccessshortpl{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvsmfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvsmfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvsmfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvsmfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
-}
-\letabbreviationstyle{short-sm-nolong}{short-sm}
-\newabbreviationstyle{short-sm-desc}%
-{%
- \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortdescname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstabbrvsmfont{\the\glsshorttok}},
- firstplural={\protect\glsfirstabbrvsmfont{\the\glsshortpltok}},
- text={\protect\glsabbrvsmfont{\the\glsshorttok}},
- plural={\protect\glsabbrvsmfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{regular}{true}}%
-}%
-{%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
- \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvsmfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvsmfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvsmfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvsmfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvsmfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvsmfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvsmfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvsmfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
-}
-\letabbreviationstyle{short-sm-nolong-desc}{short-sm-desc}
-\newabbreviationstyle{nolong-short-sm}%
-{%
- \GlsXtrUseAbbrStyleSetup{short-sm-nolong}%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{short-sm-nolong}%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \protect\glsfirstlongdefaultfont{\glsaccesslong{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvsmfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \protect\glsfirstlongdefaultfont{\glsaccesslongpl{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvsmfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \protect\glsfirstlongdefaultfont{\Glsaccesslong{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvsmfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \protect\glsfirstlongdefaultfont{\Glsaccesslongpl{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvsmfont{\glsaccessshortpl{##1}}}%
- }%
-}
-\newabbreviationstyle{long-noshort-sm}%
-{%
- \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongnoshortname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstlongdefaultfont{\the\glslongtok}},
- firstplural={\protect\glsfirstlongdefaultfont{\the\glslongpltok}},
- text={\protect\glslongdefaultfont{\the\glslongtok}},
- plural={\protect\glslongdefaultfont{\the\glslongpltok}},%
- description={\the\glslongtok}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{regular}{true}}%
-}%
-{%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
- \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrsubsequentfmt}[2]{%
- \glslongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
- \glslongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
- \glslongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
- \glslongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvsmfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvsmfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstlongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvsmfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstlongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvsmfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
-}
-\@glsxtr@deprecated@abbrstyle{long-sm}{long-noshort-sm}
-\newabbreviationstyle{long-noshort-sm-desc}%
-{%
- \GlsXtrUseAbbrStyleSetup{long-noshort-desc}%
-}%
-{%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
- \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrsubsequentfmt}[2]{%
- \glslongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
- \glslongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
- \glslongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
- \glslongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvsmfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvsmfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstlongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvsmfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstlongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvsmfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
-}
-\@glsxtr@deprecated@abbrstyle{long-desc-sm}{long-noshort-sm-desc}
-\newabbreviationstyle{short-sm-footnote}%
-{%
- \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrfootnotename},
- sort={\the\glsshorttok},
- description={\the\glslongtok},%
- first={\protect\glsfirstabbrvsmfont{\the\glsshorttok}%
- \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
- {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
- firstplural={\protect\glsfirstabbrvsmfont{\the\glsshortpltok}%
- \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
- {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
- text={\protect\glsabbrvsmfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvsmfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
- \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvsmfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \protect\glsxtrabbrvfootnote{##1}%
- {\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvsmfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \protect\glsxtrabbrvfootnote{##1}%
- {\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvsmfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \protect\glsxtrabbrvfootnote{##1}%
- {\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvsmfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \protect\glsxtrabbrvfootnote{##1}%
- {\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvsmfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvsmfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvsmfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvsmfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
-}
-\@glsxtr@deprecated@abbrstyle{footnote-sm}{short-sm-footnote}
-\newabbreviationstyle{short-sm-footnote-desc}%
-{%
- \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrfootnotedescname},
- sort={\glsxtrfootnotedescsort},
- first={\protect\glsfirstabbrvsmfont{\the\glsshorttok}%
- \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
- {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
- firstplural={\protect\glsfirstabbrvsmfont{\the\glsshortpltok}%
- \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
- {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
- text={\protect\glsabbrvsmfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvsmfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{short-sm-footnote}%
-}
-\newabbreviationstyle{short-sm-postfootnote}%
-{%
- \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrfootnotename},
- sort={\the\glsshorttok},
- description={\the\glslongtok},%
- first={\protect\glsfirstabbrvsmfont{\the\glsshorttok}},%
- firstplural={\protect\glsfirstabbrvsmfont{\the\glsshortpltok}},%
- text={\protect\glsabbrvsmfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvsmfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \csdef{glsxtrpostlink\glscategorylabel}{%
- \glsxtrifwasfirstuse
- {%
- \glsxtrdopostpunc{\protect\glsxtrabbrvfootnote{\glslabel}%
- {\glsfirstlongfootnotefont{\glsentrylong{\glslabel}}}}%
- }%
- {}%
- }%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
- \renewcommand*{\glsxtrsetupfulldefs}{%
- \let\glsxtrifwasfirstuse\@secondoftwo
- }%
-}%
-{%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvsmfont{##1}}%
- \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvsmfont{##1}}%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrsmsuffix}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvsmfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvsmfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvsmfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvsmfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvsmfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvsmfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvsmfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvsmfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
-}
-\@glsxtr@deprecated@abbrstyle{postfootnote-sm}{short-sm-postfootnote}
-\newabbreviationstyle{short-sm-postfootnote-desc}%
-{%
- \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrfootnotedescname},
- sort={\glsxtrfootnotedescsort},
- first={\protect\glsfirstabbrvsmfont{\the\glsshorttok}},%
- firstplural={\protect\glsfirstabbrvsmfont{\the\glsshortpltok}},%
- text={\protect\glsabbrvsmfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvsmfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \csdef{glsxtrpostlink\glscategorylabel}{%
- \glsxtrifwasfirstuse
- {%
- \glsxtrdopostpunc{\protect\glsxtrabbrvfootnote{\glslabel}%
- {\glsfirstlongfootnotefont{\glsentrylong{\glslabel}}}}%
- }%
- {}%
- }%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
- \renewcommand*{\glsxtrsetupfulldefs}{%
- \let\glsxtrifwasfirstuse\@secondoftwo
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{short-sm-postfootnote}%
-}
-\newcommand*{\glsabbrvemfont}[1]{\emph{#1}}%
-\newcommand*{\glsfirstabbrvemfont}[1]{\glsabbrvemfont{#1}}%
-\newcommand*{\glsxtremsuffix}{\glsxtrabbrvpluralsuffix}
-\newcommand*{\glsfirstlongemfont}[1]{\glslongemfont{#1}}%
-\newcommand*{\glslongemfont}[1]{\emph{#1}}%
-\newabbreviationstyle{long-short-em}%
-{%
- \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongshortname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstlongdefaultfont{\the\glslongtok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\the\glsshorttok}}},%
- firstplural={\protect\glsfirstlongdefaultfont{\the\glslongpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\the\glsshortpltok}}},%
- text={\protect\glsabbrvemfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvemfont{\the\glsshortpltok}},%
- description={\the\glslongtok}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
- \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvemfont{##1}}%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstlongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstlongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
- }%
-}
-\newabbreviationstyle{long-short-em-desc}%
-{%
- \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongshortdescname},
- sort={\glsxtrlongshortdescsort},%
- first={\protect\glsfirstlongdefaultfont{\the\glslongtok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\the\glsshorttok}}},%
- firstplural={\protect\glsfirstlongdefaultfont{\the\glslongpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\the\glsshortpltok}}},%
- text={\protect\glsabbrvemfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvemfont{\the\glsshortpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{long-short-em}%
-}
-\newabbreviationstyle{long-em-short-em}%
-{%
- \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongshortname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstlongemfont{\the\glslongtok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\the\glsshorttok}}},%
- firstplural={\protect\glsfirstlongemfont{\the\glslongpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\the\glsshortpltok}}},%
- text={\protect\glsabbrvemfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvemfont{\the\glsshortpltok}},%
- description={\protect\glslongemfont{\the\glslongtok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
- \renewcommand*{\glsabbrvfont}[1]{\glsabbrvemfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongemfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongemfont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstlongemfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstlongemfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstlongemfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstlongemfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
- }%
-}
-\newabbreviationstyle{long-em-short-em-desc}%
-{%
- \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongshortdescname},
- sort={\glsxtrlongshortdescsort},%
- first={\protect\glsfirstlongemfont{\the\glslongtok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\the\glsshorttok}}},%
- firstplural={\protect\glsfirstlongemfont{\the\glslongpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\the\glsshortpltok}}},%
- text={\protect\glsabbrvemfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvemfont{\the\glsshortpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{long-em-short-em}%
-}
-\newabbreviationstyle{short-em-long}%
-{%
- \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortlongname},
- sort={\the\glsshorttok},
- description={\the\glslongtok},%
- first={\protect\glsfirstabbrvemfont{\the\glsshorttok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongtok}}},%
- firstplural={\protect\glsfirstabbrvemfont{\the\glsshortpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongpltok}}},%
- text={\protect\glsabbrvemfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvemfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
- \renewcommand*\glsfirstabbrvfont[1]{\glsfirstabbrvemfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvemfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvemfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
- }%
-}
-\newabbreviationstyle{short-em-long-desc}%
-{%
- \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortlongdescname},
- sort={\glsxtrshortlongdescsort},
- first={\protect\glsfirstabbrvemfont{\the\glsshorttok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongtok}}},%
- firstplural={\protect\glsfirstabbrvemfont{\the\glsshortpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlongdefaultfont{\the\glslongpltok}}},%
- text={\protect\glsabbrvemfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvemfont{\the\glsshortpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{short-em-long}%
-}
-\newabbreviationstyle{short-em-long-em}%
-{%
- \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortlongname},
- sort={\the\glsshorttok},
- description={\protect\glslongemfont{\the\glslongtok}},%
- first={\protect\glsfirstabbrvemfont{\the\glsshorttok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlongemfont{\the\glslongtok}}},%
- firstplural={\protect\glsfirstabbrvemfont{\the\glsshortpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlongemfont{\the\glslongpltok}}},%
- text={\protect\glsabbrvemfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvemfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
- \renewcommand*{\glsabbrvfont}[1]{\glsabbrvemfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongemfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongemfont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongemfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongemfont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvemfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongemfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvemfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongemfont{\glsaccesslongpl{##1}}}%
- }%
-}
-\newabbreviationstyle{short-em-long-em-desc}%
-{%
- \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortlongdescname},%
- sort={\glsxtrshortlongdescsort},%
- first={\protect\glsfirstabbrvemfont{\the\glsshorttok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlongemfont{\the\glslongtok}}},%
- firstplural={\protect\glsfirstabbrvemfont{\the\glsshortpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlongemfont{\the\glslongpltok}}},%
- text={\protect\glsabbrvemfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvemfont{\the\glsshortpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{short-em-long-em}%
-}
-\newabbreviationstyle{short-em}%
-{%
- \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortnolongname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstabbrvemfont{\the\glsshorttok}},
- firstplural={\protect\glsfirstabbrvemfont{\the\glsshortpltok}},
- text={\protect\glsabbrvemfont{\the\glsshorttok}},
- plural={\protect\glsabbrvemfont{\the\glsshortpltok}},
- description={\the\glslongtok}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{regular}{true}}%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \protect\glsfirstabbrvemfont{\glsaccessshort{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \protect\glsfirstabbrvemfont{\glsaccessshortpl{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \protect\glsfirstabbrvemfont{\Glsaccessshort{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \protect\glsfirstabbrvemfont{\Glsaccessshortpl{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
-}
-\letabbreviationstyle{short-em-nolong}{short-em}
-\newabbreviationstyle{short-em-desc}%
-{%
- \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortdescname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstabbrvemfont{\the\glsshorttok}},
- firstplural={\protect\glsfirstabbrvemfont{\the\glsshortpltok}},
- text={\protect\glsabbrvemfont{\the\glsshorttok}},
- plural={\protect\glsabbrvemfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{regular}{true}}%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvemfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvemfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
-}
-\letabbreviationstyle{short-em-nolong-desc}{short-em-desc}
-\newabbreviationstyle{nolong-short-em}%
-{%
- \GlsXtrUseAbbrStyleSetup{short-em-nolong}%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{short-em-nolong}%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \protect\glsfirstlongdefaultfont{\glsaccesslong{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \protect\glsfirstlongdefaultfont{\glsaccesslongpl{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \protect\glsfirstlongdefaultfont{\Glsaccesslong{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \protect\glsfirstlongdefaultfont{\Glsaccesslongpl{##1}%
- \ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
- }%
-}
-\newabbreviationstyle{long-noshort-em}%
-{%
- \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongnoshortname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstlongdefaultfont{\the\glslongtok}},
- firstplural={\protect\glsfirstlongdefaultfont{\the\glslongpltok}},
- text={\protect\glslongdefaultfont{\the\glslongtok}},
- plural={\protect\glslongdefaultfont{\the\glslongpltok}},%
- description={\the\glslongtok}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{regular}{true}}%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrsubsequentfmt}[2]{%
- \glslongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
- \glslongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
- \glslongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
- \glslongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstlongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstlongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
-}
-\@glsxtr@deprecated@abbrstyle{long-em}{long-noshort-em}
-\newabbreviationstyle{long-em-noshort-em}%
-{%
- \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongnoshortname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstlongemfont{\the\glslongtok}},
- firstplural={\protect\glsfirstlongemfont{\the\glslongpltok}},
- text={\protect\glslongemfont{\the\glslongtok}},
- plural={\protect\glslongemfont{\the\glslongpltok}},%
- description={\protect\glslongemfont{\the\glslongtok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{regular}{true}}%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongemfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongemfont{##1}}%
- \renewcommand*{\glsxtrsubsequentfmt}[2]{%
- \glslongemfont{\glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
- \glslongemfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
- \glslongemfont{\Glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
- \glslongemfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstlongemfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstlongemfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstlongemfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstlongemfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstlongemfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstlongemfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstlongemfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstlongemfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
-}
-\newabbreviationstyle{long-em-noshort-em-noreg}%
-{%
- \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
- \GlsXtrUseAbbrStyleSetup{long-em-noshort-em}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{long-em-noshort-em}%
-}
-\newabbreviationstyle{long-noshort-em-desc}%
-{%
- \GlsXtrUseAbbrStyleSetup{long-noshort-desc}%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongdefaultfont{##1}}%
- \renewcommand*{\glsxtrsubsequentfmt}[2]{%
- \glslongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
- \glslongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
- \glslongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
- \glslongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstlongdefaultfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstlongdefaultfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstlongdefaultfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
-}
-\@glsxtr@deprecated@abbrstyle{long-desc-em}{long-noshort-em-desc}
-\newabbreviationstyle{long-em-noshort-em-desc}%
-{%
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongnoshortdescname},
- sort={\the\glslongtok},
- first={\protect\glsfirstlongemfont{\the\glslongtok}},
- firstplural={\protect\glsfirstlongemfont{\the\glslongpltok}},
- text={\glslongemfont{\the\glslongtok}},
- plural={\glslongemfont{\the\glslongpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{regular}{true}}%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongemfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongemfont{##1}}%
- \renewcommand*{\glsxtrsubsequentfmt}[2]{%
- \glslongemfont{\glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
- \glslongemfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
- \glslongemfont{\Glsaccesslong{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
- \glslongemfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside ##2\fi}%
- \ifglsxtrinsertinside \else##2\fi
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstlongemfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstlongemfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstlongemfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstlongemfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstlongemfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstlongemfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstlongemfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstlongemfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
-}
-\newabbreviationstyle{long-em-noshort-em-desc-noreg}%
-{%
- \GlsXtrUseAbbrStyleSetup{long-em-noshort-em-desc}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{long-em-noshort-em-desc}%
-}
-\newabbreviationstyle{short-em-footnote}%
-{%
- \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrfootnotename},
- sort={\the\glsshorttok},
- description={\the\glslongtok},%
- first={\protect\glsfirstabbrvemfont{\the\glsshorttok}%
- \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
- {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
- firstplural={\protect\glsfirstabbrvemfont{\the\glsshortpltok}%
- \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
- {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
- text={\protect\glsabbrvemfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvemfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \protect\glsxtrabbrvfootnote{##1}%
- {\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \protect\glsxtrabbrvfootnote{##1}%
- {\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvemfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \protect\glsxtrabbrvfootnote{##1}%
- {\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvemfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \protect\glsxtrabbrvfootnote{##1}%
- {\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvemfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvemfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
-}
-\@glsxtr@deprecated@abbrstyle{footnote-em}{short-em-footnote}
-\newabbreviationstyle{short-em-footnote-desc}%
-{%
- \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrfootnotedescname},
- sort={\glsxtrfootnotedescsort},
- first={\protect\glsfirstabbrvemfont{\the\glsshorttok}%
- \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
- {\protect\glsfirstlongfootnotefont{\the\glslongtok}}},%
- firstplural={\protect\glsfirstabbrvemfont{\the\glsshortpltok}%
- \protect\glsxtrabbrvfootnote{\the\glslabeltok}%
- {\protect\glsfirstlongfootnotefont{\the\glslongpltok}}},%
- text={\protect\glsabbrvemfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvemfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{short-em-footnote}%
-}
-\newabbreviationstyle{short-em-postfootnote}%
-{%
- \glsxtrAccSuppAbbrSetNoLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrfootnotename},
- sort={\the\glsshorttok},
- description={\the\glslongtok},%
- first={\protect\glsfirstabbrvemfont{\the\glsshorttok}},%
- firstplural={\protect\glsfirstabbrvemfont{\the\glsshortpltok}},%
- text={\protect\glsabbrvemfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvemfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \csdef{glsxtrpostlink\glscategorylabel}{%
- \glsxtrifwasfirstuse
- {%
- \glsxtrdopostpunc{\protect\glsxtrabbrvfootnote{\glslabel}%
- {\glsfirstlongfootnotefont{\glsentrylong{\glslabel}}}}%
- }%
- {}%
- }%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
- \renewcommand*{\glsxtrsetupfulldefs}{%
- \let\glsxtrifwasfirstuse\@secondoftwo
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtremsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvemfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvemfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongfootnotefont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongfootnotefont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvemfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvemfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvemfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvemfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslong{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvemfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongfootnotefont{\glsaccesslongpl{##1}}}%
- }%
-}
-\@glsxtr@deprecated@abbrstyle{postfootnote-em}{short-em-postfootnote}
-\newabbreviationstyle{short-em-postfootnote-desc}%
-{%
- \glsxtrAccSuppAbbrSetNameLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrfootnotedescname},
- sort={\glsxtrfootnotedescsort},
- first={\protect\glsfirstabbrvemfont{\the\glsshorttok}},%
- firstplural={\protect\glsfirstabbrvemfont{\the\glsshortpltok}},%
- text={\protect\glsabbrvemfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvemfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \csdef{glsxtrpostlink\glscategorylabel}{%
- \glsxtrifwasfirstuse
- {%
- \glsxtrdopostpunc{\protect\glsxtrabbrvfootnote{\glslabel}%
- {\glsfirstlongfootnotefont{\glsentrylong{\glslabel}}}}%
- }%
- {}%
- }%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
- \renewcommand*{\glsxtrsetupfulldefs}{%
- \let\glsxtrifwasfirstuse\@secondoftwo
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{short-em-postfootnote}%
-}
-\newcommand*{\glsxtruserfield}{useri}
-\ifdef\glscurrentfieldvalue
-{
- \newcommand*{\glsxtruserparen}[2]{%
- \glsxtrfullsep{#2}%
- \glsxtrparen
- {#1\ifglshasfield{\glsxtruserfield}{#2}{, \glscurrentfieldvalue}{}}%
- }
-}
-{
- \newcommand*{\glsxtruserparen}[2]{%
- \glsxtrfullsep{#2}%
- \glsxtrparen
- {#1\ifglshasfield{\glsxtruserfield}{#2}{, \@glo@thisvalue}{}}%
- }
-}
-\newcommand*{\glsabbrvuserfont}[1]{\glsabbrvdefaultfont{#1}}
-\newcommand*{\glsfirstabbrvuserfont}[1]{\glsabbrvuserfont{#1}}
-\newcommand*{\glslonguserfont}[1]{\glslongdefaultfont{#1}}
-\newcommand*{\glsfirstlonguserfont}[1]{\glslonguserfont{#1}}
-\newcommand*{\glsxtrusersuffix}{\glsxtrabbrvpluralsuffix}
-\newcommand*{\glsuserdescription}[2]{\glslonguserfont{#1}}
-\newabbreviationstyle{long-short-user}%
-{%
- \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongshortname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstlonguserfont{\the\glslongtok}%
- \protect\glsxtruserparen{\protect\glsfirstabbrvuserfont{\the\glsshorttok}}%
- {\the\glslabeltok}},%
- firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}%
- \protect\glsxtruserparen
- {\protect\glsfirstabbrvuserfont{\the\glsshortpltok}}{\the\glslabeltok}},%
- text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvuserfont{\the\glsshortpltok}},%
- description={\protect\glsuserdescription{\the\glslongtok}%
- {\the\glslabeltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrusersuffix}%
- \renewcommand*{\glsabbrvfont}[1]{\glsabbrvuserfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvuserfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonguserfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslonguserfont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstlonguserfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtruserparen{\glsfirstabbrvuserfont{\glsaccessshort{##1}}}{##1}%
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstlonguserfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtruserparen{\glsfirstabbrvuserfont{\glsaccessshortpl{##1}}}{##1}%
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstlonguserfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtruserparen{\glsfirstabbrvuserfont{\glsaccessshort{##1}}}{##1}%
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstlonguserfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtruserparen{\glsfirstabbrvuserfont{\glsaccessshortpl{##1}}}{##1}%
- }%
-}
-\newabbreviationstyle{long-postshort-user}%
-{%
- \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongshortname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
- firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
- text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvuserfont{\the\glsshortpltok}},%
- description={\protect\glsuserdescription{\the\glslongtok}%
- {\the\glslabeltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \csdef{glsxtrpostlink\glscategorylabel}{%
- \glsxtrifwasfirstuse
- {%
- \glsxtruserparen
- {\glsfirstabbrvuserfont{\glsentryshort{\glslabel}}}%
- {\glslabel}%
- }%
- {}%
- }%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrusersuffix}%
- \renewcommand*{\glsabbrvfont}[1]{\glsabbrvuserfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvuserfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonguserfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslonguserfont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstlonguserfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstlonguserfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstlonguserfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstlonguserfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstlonguserfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtruserparen{\glsfirstabbrvuserfont{\glsaccessshort{##1}}}{##1}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstlonguserfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtruserparen{\glsfirstabbrvuserfont{\glsaccessshortpl{##1}}}{##1}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstlonguserfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtruserparen{\glsfirstabbrvuserfont{\glsaccessshort{##1}}}{##1}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstlonguserfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtruserparen{\glsfirstabbrvuserfont{\glsaccessshortpl{##1}}}{##1}%
- }%
-}
-\newcommand*{\glsabbrvscuserfont}{\glsabbrvscfont}%
-\newcommand*{\glsfirstabbrvscuserfont}{\glsabbrvscuserfont}%
-\newcommand*{\glsxtrscusersuffix}{\glsxtrscsuffix}
-\newcommand*{\glsxtrlongshortscusername}{%
- \protect\glsabbrvscuserfont{\the\glsshorttok}%
-}
-\newabbreviationstyle{long-postshort-sc-user}%
-{%
- \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongshortscusername},
- sort={\the\glsshorttok},
- first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
- firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
- text={\protect\glsabbrvscuserfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvscuserfont{\the\glsshortpltok}},%
- description={\protect\glsuserdescription{\the\glslongtok}%
- {\the\glslabeltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \csdef{glsxtrpostlink\glscategorylabel}{%
- \glsxtrifwasfirstuse
- {%
- \glsxtruserparen
- {\glsfirstabbrvscuserfont{\glsentryshort{\glslabel}}}%
- {\glslabel}%
- }%
- {}%
- }%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrscusersuffix}%
- \renewcommand*{\glsabbrvfont}[1]{\glsabbrvscuserfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvscuserfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonguserfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslonguserfont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstlonguserfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstlonguserfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstlonguserfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstlonguserfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstlonguserfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtruserparen{\glsfirstabbrvscuserfont{\glsaccessshort{##1}}}{##1}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstlonguserfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtruserparen{\glsfirstabbrvscuserfont{\glsaccessshortpl{##1}}}{##1}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstlonguserfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtruserparen{\glsfirstabbrvscuserfont{\glsaccessshort{##1}}}{##1}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstlonguserfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtruserparen{\glsfirstabbrvscuserfont{\glsaccessshortpl{##1}}}{##1}%
- }%
-}
-\newcommand*{\glsxtrlongshortuserdescname}{%
- \protect\glslonguserfont{\the\glslongtok}%
- \protect\glsxtruserparen
- {\protect\glsabbrvuserfont{\the\glsshorttok}}{\the\glslabeltok}%
-}
-\newabbreviationstyle{long-postshort-user-desc}%
-{%
- \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongshortuserdescname},
- sort={\the\glslongtok},
- first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
- firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
- text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvuserfont{\the\glsshortpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \csdef{glsxtrpostlink\glscategorylabel}{%
- \glsxtrifwasfirstuse
- {%
- \glsxtruserparen
- {\glsfirstabbrvuserfont{\glsentryshort{\glslabel}}}%
- {\glslabel}%
- }%
- {}%
- }%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{long-postshort-user}%
-}
-\newcommand*{\glsxtrlongshortscuserdescname}{%
- \protect\glslonguserfont{\the\glslongtok}%
- \protect\glsxtruserparen
- {\protect\glsabbrvscuserfont{\the\glsshorttok}}{\the\glslabeltok}%
-}
-\newabbreviationstyle{long-postshort-sc-user-desc}%
-{%
- \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongshortscuserdescname},
- sort={\the\glslongtok},
- first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
- firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
- text={\protect\glsabbrvscuserfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvscuserfont{\the\glsshortpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \csdef{glsxtrpostlink\glscategorylabel}{%
- \glsxtrifwasfirstuse
- {%
- \glsxtruserparen
- {\glsfirstabbrvscuserfont{\glsentryshort{\glslabel}}}%
- {\glslabel}%
- }%
- {}%
- }%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{long-postshort-sc-user}%
-}
-\newabbreviationstyle{short-postlong-user}%
-{%
- \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortlongname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
- firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
- text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvuserfont{\the\glsshortpltok}},%
- description={\protect\glsuserdescription{\the\glslongtok}%
- {\the\glslabeltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \csdef{glsxtrpostlink\glscategorylabel}{%
- \glsxtrifwasfirstuse
- {%
- \glsxtruserparen
- {\glsfirstlonguserfont{\glsentrylong{\glslabel}}}%
- {\glslabel}%
- }%
- {}%
- }%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrusersuffix}%
- \renewcommand*{\glsabbrvfont}[1]{\glsabbrvuserfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvuserfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonguserfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslonguserfont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvuserfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvuserfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvuserfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvuserfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvuserfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtruserparen{\glsfirstlonguserfont{\glsaccesslong{##1}}}{##1}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvuserfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtruserparen{\glsfirstlonguserfont{\glsaccesslongpl{##1}}}{##1}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvuserfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtruserparen{\glsfirstlonguserfont{\glsaccesslong{##1}}}{##1}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvuserfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtruserparen{\glsfirstlonguserfont{\glsaccesslongpl{##1}}}{##1}%
- }%
-}
-\newcommand*{\glsxtrshortlonguserdescname}{%
- \protect\glsabbrvuserfont{\the\glsshorttok}%
- \protect\glsxtruserparen
- {\protect\glslonguserfont{\the\glslongpltok}}%
- {\the\glslabeltok}%
-}
-\newabbreviationstyle{short-postlong-user-desc}%
-{%
- \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortlonguserdescname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstlonguserfont{\the\glslongtok}},%
- firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}},%
- text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvuserfont{\the\glsshortpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \csdef{glsxtrpostlink\glscategorylabel}{%
- \glsxtrifwasfirstuse
- {%
- \glsxtruserparen
- {\glsfirstlonguserfont{\glsentrylong{\glslabel}}}%
- {\glslabel}%
- }%
- {}%
- }%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{short-postlong-user}%
-}
-\newabbreviationstyle{long-short-user-desc}%
-{%
- \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongshortuserdescname},
- sort={\glsxtrlongshortdescsort},%
- first={\protect\glsfirstlonguserfont{\the\glslongtok}%
- \protect\glsxtruserparen{\protect\glsfirstabbrvuserfont{\the\glsshorttok}}%
- {\the\glslabeltok}},%
- firstplural={\protect\glsfirstlonguserfont{\the\glslongpltok}%
- \protect\glsxtruserparen
- {\protect\glsfirstabbrvuserfont{\the\glsshortpltok}}{\the\glslabeltok}},%
- text={\protect\glsabbrvfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvfont{\the\glsshortpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{long-short-user}%
-}
-\newabbreviationstyle{short-long-user}%
-{%
- \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortlongname},
- sort={\the\glsshorttok},
- description={\protect\glsuserdescription{\the\glslongtok}%
- {\the\glslabeltok}},%
- first={\protect\glsfirstabbrvuserfont{\the\glsshorttok}%
- \protect\glsxtruserparen{\protect\glsfirstlonguserfont{\the\glslongtok}}%
- {\the\glslabeltok}},%
- firstplural={\protect\glsfirstabbrvuserfont{\the\glsshortpltok}%
- \protect\glsxtruserparen{\protect\glsfirstlonguserfont{\the\glslongpltok}}%
- {\the\glslabeltok}},%
- text={\protect\glsabbrvuserfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvuserfont{\the\glsshortpltok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrusersuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvuserfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvuserfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonguserfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslonguserfont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstabbrvuserfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtruserparen{\glsfirstlonguserfont{\glsaccesslong{##1}}}{##1}%
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstabbrvuserfont{\glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtruserparen{\glsfirstlonguserfont{\glsaccesslongpl{##1}}}{##1}%
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstabbrvuserfont{\Glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtruserparen{\glsfirstlonguserfont{\glsaccesslong{##1}}}{##1}%
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstabbrvuserfont{\Glsaccessshortpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtruserparen{\glsfirstlonguserfont{\glsaccesslongpl{##1}}}{##1}%
- }%
-}
-\newabbreviationstyle{short-long-user-desc}%
-{%
- \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortlonguserdescname},
- sort={\glsxtrshortlongdescsort},%
- first={\protect\glsfirstabbrvuserfont{\the\glsshorttok}%
- \protect\glsxtruserparen{\protect\glsfirstlonguserfont{\the\glslongtok}}%
- {\the\glslabeltok}},%
- firstplural={\protect\glsfirstabbrvuserfont{\the\glsshortpltok}%
- \protect\glsxtruserparen{\protect\glsfirstlonguserfont{\the\glslongpltok}}%
- {\the\glslabeltok}},%
- text={\protect\glsabbrvfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvfont{\the\glsshortpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{short-long-user}%
-}
-\newrobustcmd*{\glsxtrifhyphenstart}[3]{%
- \ifx\glsinsert#1\relax
- \expandafter\@glsxtrifhyphenstart#1\relax\relax
- \@end@glsxtrifhyphenstart{#2}{#3}%
- \else
- \@glsxtrifhyphenstart#1\relax\relax\@end@glsxtrifhyphenstart{#2}{#3}%
- \fi
-}
-\def\@glsxtrifhyphenstart#1#2\@end@glsxtrifhyphenstart#3#4{%
- \ifx-#1\relax#3\else #4\fi
-}
-\newcommand*{\glsxtrlonghyphenshort}[4]{%
- {%
- \glsxtrifhyphenstart{#4}{\def\glsxtrwordsep{-}}{}%
- \glsfirstlonghyphenfont{#2\ifglsxtrinsertinside{#4}\fi}%
- \ifglsxtrinsertinside\else{#4}\fi
- \glsxtrfullsep{#1}%
- \glsxtrparen{\glsfirstabbrvhyphenfont{#3\ifglsxtrinsertinside{#4}\fi}%
- \ifglsxtrinsertinside\else{#4}\fi}%
- }%
-}
-\newcommand*{\glsabbrvhyphenfont}{\glsabbrvdefaultfont}%
-\newcommand*{\glsfirstabbrvhyphenfont}{\glsabbrvhyphenfont}%
-\newcommand*{\glslonghyphenfont}{\glslongdefaultfont}%
-\newcommand*{\glsfirstlonghyphenfont}{\glslonghyphenfont}%
-\newcommand*{\glsxtrhyphensuffix}{\glsxtrabbrvpluralsuffix}
-\newabbreviationstyle{long-hyphen-short-hyphen}%
-{%
- \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongshortname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstlonghyphenfont{\the\glslongtok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}}},%
- firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}}},%
- text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}},%
- description={\protect\glslonghyphenfont{\the\glslongtok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrhyphensuffix}%
- \renewcommand*{\glsabbrvfont}[1]{\glsabbrvhyphenfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvhyphenfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonghyphenfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslonghyphenfont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsxtrlonghyphenshort{##1}{\glsaccesslong{##1}}{\glsaccessshort{##1}}{##2}%
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsxtrlonghyphenshort{##1}{\glsaccesslongpl{##1}}%
- {\glsaccessshortpl{##1}}{##2}%
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsxtrlonghyphenshort{##1}{\Glsaccesslong{##1}}{\glsaccessshort{##1}}{##2}%
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsxtrlonghyphenshort{##1}{\Glsaccesslongpl{##1}}%
- {\glsaccessshortpl{##1}}{##2}%
- }%
-}
-\newabbreviationstyle{long-hyphen-short-hyphen-desc}%
-{%
- \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongshortdescname},
- sort={\glsxtrlongshortdescsort},
- first={\protect\glsfirstlonghyphenfont{\the\glslongtok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}}},%
- firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}}},%
- text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{long-hyphen-short-hyphen}%
-}
-\newcommand*{\glsxtrlonghyphennoshort}[3]{%
- {%
- \glsxtrifhyphenstart{#3}{\def\glsxtrwordsep{-}}{}%
- \glsfirstlonghyphenfont{#2\ifglsxtrinsertinside{#3}\fi}%
- \ifglsxtrinsertinside\else{#3}\fi
- }%
-}
-\newabbreviationstyle{long-hyphen-noshort-desc-noreg}%
-{%
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongnoshortdescname},
- sort={\expandonce\glsxtrorglong},
- first={\protect\glsfirstlonghyphenfont{\the\glslongtok}},%
- firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}},%
- text={\protect\glslonghyphenfont{\the\glslongtok}},%
- plural={\protect\glslonghyphenfont{\the\glslongpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{long-hyphen-short-hyphen}%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
- \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonghyphenfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslonghyphenfont{##1}}%
- \renewcommand*{\glsxtrsubsequentfmt}[2]{%
- \glsxtrlonghyphennoshort{##1}{\glsaccesslong{##1}}{##2}%
- }%
- \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
- \glsxtrlonghyphennoshort{##1}{\glsaccesslongpl{##1}}{##2}%
- }%
- \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
- \glsxtrlonghyphennoshort{##1}{\Glsaccesslong{##1}}{##2}%
- }%
- \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
- \glsxtrlonghyphennoshort{##1}{\Glsaccesslongpl{##1}}{##2}%
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsxtrlonghyphennoshort{##1}{\glsaccesslong{##1}}{##2}%
- \glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsxtrlonghyphennoshort{##1}{\glsaccesslongpl{##1}}{##2}%
- \glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsxtrlonghyphennoshort{##1}{\Glsaccesslong{##1}}{##2}%
- \glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsxtrlonghyphennoshort{##1}{\Glsaccesslongpl{##1}}{##2}%
- \glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsxtrlonghyphennoshort{##1}{\glsaccesslong{##1}}{##2}%
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsxtrlonghyphennoshort{##1}{\glsaccesslongpl{##1}}{##2}%
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsxtrlonghyphennoshort{##1}{\Glsaccesslong{##1}}{##2}%
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsxtrlonghyphennoshort{##1}{\Glsaccesslongpl{##1}}{##2}%
- }%
-}
-\newabbreviationstyle{long-hyphen-noshort-noreg}%
-{%
- \glsxtrAccSuppAbbrSetNameShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongnoshortname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstlonghyphenfont{\the\glslongtok}},%
- firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}},%
- text={\protect\glslonghyphenfont{\the\glslongtok}},%
- plural={\protect\glslonghyphenfont{\the\glslongpltok}},%
- description={\the\glslongtok}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{long-hyphen-noshort-desc-noreg}%
-}
-\newcommand*{\glsxtrlonghyphen}[3]{%
- {%
- \glsxtrifhyphenstart{#3}{\def\glsxtrwordsep{-}}{}%
- \glsfirstlonghyphenfont{#1}%
- }%
-}
-\newcommand*{\glsxtrposthyphenshort}[2]{%
- {%
- \glsxtrifhyphenstart{#2}{\def\glsxtrwordsep{-}}{}%
- \ifglsxtrinsertinside{\glsfirstlonghyphenfont{#2}}\else{#2}\fi
- \glsxtrfullsep{#1}%
- \glsxtrparen
- {\glsfirstabbrvhyphenfont{\glsentryshort{#1}\ifglsxtrinsertinside{#2}\fi}%
- \ifglsxtrinsertinside\else{#2}\fi
- }%
- }%
-}
-\newcommand*{\glsxtrposthyphensubsequent}[2]{%
- \glsabbrvfont{\ifglsxtrinsertinside {#2}\fi}%
- \ifglsxtrinsertinside \else{#2}\fi
-}
-\newabbreviationstyle{long-hyphen-postshort-hyphen}%
-{%
- \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongshortname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstlonghyphenfont{\the\glslongtok}},%
- firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}},%
- text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}},%
- description={\protect\glslonghyphenfont{\the\glslongtok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \csdef{glsxtrpostlink\glscategorylabel}{%
- \glsxtrifwasfirstuse
- {%
- \glsxtrposthyphenshort{\glslabel}{\glsinsert}%
- }%
- {%
- \glsxtrposthyphensubsequent{\glslabel}{\glsinsert}%
- }%
- }%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
- \renewcommand*{\glsabbrvfont}[1]{\glsabbrvhyphenfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvhyphenfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonghyphenfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslonghyphenfont{##1}}%
- \renewcommand*{\glsxtrsubsequentfmt}[2]{%
- \glsabbrvfont{\glsaccessshort{##1}}%
- }%
- \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
- \glsabbrvfont{\glsaccessshortpl{##1}}%
- }%
- \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
- \glsabbrvfont{\Glsaccessshort{##1}}%
- }%
- \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
- \glsabbrvfont{\Glsaccessshortpl{##1}}%
- }%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsxtrlonghyphen{\glsaccesslong{##1}}{##1}{##2}%
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsxtrlonghyphen{\glsaccesslongpl{##1}}{##1}{##2}%
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsxtrlonghyphen{\Glsaccesslong{##1}}{##1}{##2}%
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsxtrlonghyphen{\Glsaccesslongpl{##1}}{##1}{##2}%
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstlonghyphenfont{\glsaccesslong{##1}%
- \ifglsxtrinsertinside{##2}\fi}%
- \ifglsxtrinsertinside \else{##2}\fi
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstlonghyphenfont{\glsaccesslongpl{##1}%
- \ifglsxtrinsertinside{##2}\fi}%
- \ifglsxtrinsertinside \else{##2}\fi
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstlonghyphenfont{\Glsaccesslong{##1}%
- \ifglsxtrinsertinside{##2}\fi}%
- \ifglsxtrinsertinside \else{##2}\fi
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstlonghyphenfont{\Glsaccesslongpl{##1}%
- \ifglsxtrinsertinside{##2}\fi}%
- \ifglsxtrinsertinside \else{##2}\fi
- }%
-}
-\newabbreviationstyle{long-hyphen-postshort-hyphen-desc}%
-{%
- \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrlongshortdescname},
- sort={\glsxtrlongshortdescsort},%
- first={\protect\glsfirstlonghyphenfont{\the\glslongtok}},%
- firstplural={\protect\glsfirstlonghyphenfont{\the\glslongpltok}},%
- text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \csdef{glsxtrpostlink\glscategorylabel}{%
- \glsxtrifwasfirstuse
- {%
- \glsxtrposthyphenshort{\glslabel}{\glsinsert}%
- }%
- {%
- \glsxtrposthyphensubsequent{\glslabel}{\glsinsert}%
- }%
- }%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{long-hyphen-postshort-hyphen}%
-}
-\newcommand*{\glsxtrshorthyphenlong}[4]{%
- {%
- \glsxtrifhyphenstart{#4}{\def\glsxtrwordsep{-}}{}%
- \glsfirstabbrvhyphenfont{#2\ifglsxtrinsertinside{#4}\fi}%
- \ifglsxtrinsertinside\else{#4}\fi
- \glsxtrfullsep{#1}%
- \glsxtrparen{\glsfirstlonghyphenfont{#3\ifglsxtrinsertinside{#4}\fi}%
- \ifglsxtrinsertinside\else{#4}\fi}%
- }%
-}
-\newabbreviationstyle{short-hyphen-long-hyphen}%
-{%
- \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortlongname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlonghyphenfont{\the\glslongtok}}},%
- firstplural={\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlonghyphenfont{\the\glslongpltok}}},%
- text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}},%
- description={\protect\glslonghyphenfont{\the\glslongtok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrhyphensuffix}%
- \renewcommand*{\glsabbrvfont}[1]{\glsabbrvhyphenfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvhyphenfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonghyphenfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslonghyphenfont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsxtrshorthyphenlong{##1}{\glsaccessshort{##1}}{\glsaccesslong{##1}}{##2}%
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsxtrshorthyphenlong{##1}%
- {\glsaccessshortpl{##1}}{\glsaccesslongpl{##1}}{##2}%
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsxtrshorthyphenlong{##1}{\glsaccessshort{##1}}{\Glsaccesslong{##1}}{##2}%
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsxtrshorthyphenlong{##1}%
- {\glsaccessshortpl{##1}}{\Glsaccesslongpl{##1}}{##2}%
- }%
-}
-\newabbreviationstyle{short-hyphen-long-hyphen-desc}%
-{%
- \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortlongdescname},
- sort={\glsxtrshortlongdescsort},
- first={\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlonghyphenfont{\the\glslongtok}}},%
- firstplural={\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}%
- \protect\glsxtrfullsep{\the\glslabeltok}%
- \glsxtrparen{\protect\glsfirstlonghyphenfont{\the\glslongpltok}}},%
- text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{short-hyphen-long-hyphen}%
-}
-\newcommand*{\glsxtrshorthyphen}[3]{%
- {%
- \glsxtrifhyphenstart{#3}{\def\glsxtrwordsep{-}}{}%
- \glsfirstabbrvhyphenfont{#1}%
- }%
-}
-\newcommand*{\glsxtrposthyphenlong}[2]{%
- {%
- \glsxtrifhyphenstart{#2}{\def\glsxtrwordsep{-}}{}%
- \ifglsxtrinsertinside{\glsfirstabbrvhyphenfont{#2}}\else{#2}\fi
- \glsxtrfullsep{#1}%
- \glsxtrparen
- {\glsfirstlonghyphenfont{\glsentrylong{#1}\ifglsxtrinsertinside{#2}\fi}%
- \ifglsxtrinsertinside\else{#2}\fi
- }%
- }%
-}
-\newabbreviationstyle{short-hyphen-postlong-hyphen}%
-{%
- \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortlongname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}},%
- firstplural={\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}},%
- text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}},%
- description={\protect\glslonghyphenfont{\the\glslongtok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \csdef{glsxtrpostlink\glscategorylabel}{%
- \glsxtrifwasfirstuse
- {%
- \glsxtrposthyphenlong{\glslabel}{\glsinsert}%
- }%
- {%
- \glsxtrposthyphensubsequent{\glslabel}{\glsinsert}%
- }%
- }%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrabbrvpluralsuffix}%
- \renewcommand*{\glsabbrvfont}[1]{\glsabbrvhyphenfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvhyphenfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlonghyphenfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslonghyphenfont{##1}}%
- \renewcommand*{\glsxtrsubsequentfmt}[2]{%
- \glsabbrvfont{\glsaccessshort{##1}}%
- }%
- \renewcommand*{\glsxtrsubsequentplfmt}[2]{%
- \glsabbrvfont{\glsaccessshortpl{##1}}%
- }%
- \renewcommand*{\Glsxtrsubsequentfmt}[2]{%
- \glsabbrvfont{\Glsaccessshort{##1}}%
- }%
- \renewcommand*{\Glsxtrsubsequentplfmt}[2]{%
- \glsabbrvfont{\Glsaccessshortpl{##1}}%
- }%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsxtrshorthyphen{\glsaccessshort{##1}}{##1}{##2}%
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsxtrshorthyphen{\glsaccessshortpl{##1}}{##1}{##2}%
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsxtrshorthyphen{\Glsaccessshort{##1}}{##1}{##2}%
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsxtrshorthyphen{\Glsaccessshortpl{##1}}{##1}{##2}%
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvhyphenfont{\glsaccessshort{##1}%
- \ifglsxtrinsertinside{##2}\fi}%
- \ifglsxtrinsertinside \else{##2}\fi
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvhyphenfont{\glsaccessshortpl{##1}%
- \ifglsxtrinsertinside{##2}\fi}%
- \ifglsxtrinsertinside \else{##2}\fi
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstabbrvhyphenfont{\Glsaccessshort{##1}%
- \ifglsxtrinsertinside{##2}\fi}%
- \ifglsxtrinsertinside \else{##2}\fi
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstabbrvhyphenfont{\Glsaccessshortpl{##1}%
- \ifglsxtrinsertinside{##2}\fi}%
- \ifglsxtrinsertinside \else{##2}\fi
- }%
-}
-\newabbreviationstyle{short-hyphen-postlong-hyphen-desc}%
-{%
- \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrshortlongdescname},
- sort={\glsxtrshortlongdescsort},%
- first={\protect\glsfirstabbrvhyphenfont{\the\glsshorttok}},%
- firstplural={\protect\glsfirstabbrvhyphenfont{\the\glsshortpltok}},%
- text={\protect\glsabbrvhyphenfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvhyphenfont{\the\glsshortpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \csdef{glsxtrpostlink\glscategorylabel}{%
- \glsxtrifwasfirstuse
- {%
- \glsxtrposthyphenlong{\glslabel}{\glsinsert}%
- }%
- {%
- \glsxtrposthyphensubsequent{\glslabel}{\glsinsert}%
- }%
- }%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{short-hyphen-postlong-hyphen}%
-}
-\newcommand*{\glsabbrvonlyfont}{\glsabbrvdefaultfont}%
-\newcommand*{\glsfirstabbrvonlyfont}{\glsabbrvonlyfont}%
-\newcommand*{\glslongonlyfont}{\glslongdefaultfont}%
-\newcommand*{\glsfirstlongonlyfont}{\glslongonlyfont}%
-\newcommand*{\glsxtronlysuffix}{\glsxtrabbrvpluralsuffix}
-\newcommand*{\glsxtronlyname}{%
- \protect\glsabbrvonlyfont{\the\glsshorttok}%
-}
-\newabbreviationstyle{long-only-short-only}%
-{%
- \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtronlyname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstlongonlyfont{\the\glslongtok}},%
- firstplural={\protect\glsfirstlongonlyfont{\the\glslongpltok}},%
- text={\protect\glsabbrvonlyfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvonlyfont{\the\glsshortpltok}},%
- description={\protect\glslongonlyfont{\the\glslongtok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtronlysuffix}%
- \renewcommand*{\glsabbrvfont}[1]{\glsabbrvonlyfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvonlyfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongonlyfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongonlyfont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstlongonlyfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstlongonlyfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstlongonlyfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstlongonlyfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstlongonlyfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvonlyfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstlongonlyfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvonlyfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstlongonlyfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvonlyfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstlongonlyfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvonlyfont{\Glsaccessshortpl{##1}}}%
- }%
-}
-\newcommand*{\glsxtronlydescsort}{\the\glslongtok}
-\newcommand*{\glsxtronlydescname}{%
- \protect\glslongfont{\the\glslongtok}%
-}
-\newabbreviationstyle{long-only-short-only-desc}%
-{%
- \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtronlydescname},
- sort={\glsxtronlydescsort},%
- first={\protect\glsfirstlongonlyfont{\the\glslongtok}},%
- firstplural={\protect\glsfirstlongonlyfont{\the\glslongpltok}},%
- text={\protect\glsabbrvonlyfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvonlyfont{\the\glsshortpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{long-only-short-only}%
-}
-\newcommand*{\glsabbrvsconlyfont}{\glsabbrvscfont}%
-\newcommand*{\glsfirstabbrvsconlyfont}{\glsabbrvsconlyfont}%
-\newcommand*{\glsxtrsconlysuffix}{\glsxtrscsuffix}
-\newcommand*{\glsxtrsconlyname}{%
- \protect\glsabbrvsconlyfont{\the\glsshorttok}%
-}
-\newabbreviationstyle{long-only-short-sc-only}%
-{%
- \glsxtrAccSuppAbbrSetFirstLongAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrsconlyname},
- sort={\the\glsshorttok},
- first={\protect\glsfirstlongonlyfont{\the\glslongtok}},%
- firstplural={\protect\glsfirstlongonlyfont{\the\glslongpltok}},%
- text={\protect\glsabbrvsconlyfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvsconlyfont{\the\glsshortpltok}},%
- description={\protect\glslongonlyfont{\the\glslongtok}}}%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \renewcommand*{\abbrvpluralsuffix}{\glsxtrsconlysuffix}%
- \renewcommand*{\glsabbrvfont}[1]{\glsabbrvsconlyfont{##1}}%
- \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvsconlyfont{##1}}%
- \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongonlyfont{##1}}%
- \renewcommand*{\glslongfont}[1]{\glslongonlyfont{##1}}%
- \renewcommand*{\glsxtrfullformat}[2]{%
- \glsfirstlongonlyfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrfullplformat}[2]{%
- \glsfirstlongonlyfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullformat}[2]{%
- \glsfirstlongonlyfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\Glsxtrfullplformat}[2]{%
- \glsfirstlongonlyfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- }%
- \renewcommand*{\glsxtrinlinefullformat}[2]{%
- \glsfirstlongonlyfont{\glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvsconlyfont{\glsaccessshort{##1}}}%
- }%
- \renewcommand*{\glsxtrinlinefullplformat}[2]{%
- \glsfirstlongonlyfont{\glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvsconlyfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \glsfirstlongonlyfont{\Glsaccesslong{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvsconlyfont{\glsaccessshortpl{##1}}}%
- }%
- \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \glsfirstlongonlyfont{\Glsaccesslongpl{##1}\ifglsxtrinsertinside##2\fi}%
- \ifglsxtrinsertinside\else##2\fi
- \glsxtrfullsep{##1}%
- \glsxtrparen{\protect\glsfirstabbrvsconlyfont{\Glsaccessshortpl{##1}}}%
- }%
-}
-\newcommand*{\glsxtrsconlydescsort}{\glsxtronlydescsort}
-\newcommand*{\glsxtrsconlydescname}{\glsxtronlydescname}
-\newabbreviationstyle{long-only-short-sc-only-desc}%
-{%
- \glsxtrAccSuppAbbrSetTextShortAttrs\glscategorylabel
- \renewcommand*{\CustomAbbreviationFields}{%
- name={\glsxtrsconlydescname},
- sort={\glsxtrsconlydescsort},%
- first={\protect\glsfirstlongonlyfont{\the\glslongtok}},%
- firstplural={\protect\glsfirstlongonlyfont{\the\glslongpltok}},%
- text={\protect\glsabbrvsconlyfont{\the\glsshorttok}},%
- plural={\protect\glsabbrvsconlyfont{\the\glsshortpltok}}%
- }%
- \renewcommand*{\GlsXtrPostNewAbbreviation}{%
- \glshasattribute{\the\glslabeltok}{regular}%
- {%
- \glssetattribute{\the\glslabeltok}{regular}{false}%
- }%
- {}%
- }%
-}%
-{%
- \GlsXtrUseAbbrStyleFmts{long-only-short-sc-only}%
-}
+\input{glossaries-extra-abbrstyles.def}
\let\@glsxtr@org@markright\markright
\renewcommand*{\markright}[1]{%
\glsxtrmarkhook
@@ -12693,11 +11562,13 @@ defined}{}%
}
\let\@glsxtr@org@@starttoc\@starttoc
\renewcommand*{\@starttoc}[1]{%
+ \let\glsxtrifintoc\@firstoftwo
\glsxtrmarkhook
\@glsxtrinmark
\@glsxtr@org@@starttoc{#1}%
\@glsxtrnotinmark
\glsxtrrestoremarkhook
+ \let\glsxtrifintoc\@secondoftwo
}
\newcommand*{\glsxtrRevertMarks}{%
\let\markright\@glsxtr@org@markright
@@ -12714,30 +11585,34 @@ defined}{}%
\newrobustcmd*{\@glsxtrnotinmark}{%
\let\glsxtrifinmark\@secondoftwo
}
-\ifdef\texorpdfstring
-{
- \newcommand*{\glsxtrtitleorpdforheading}[3]{\texorpdfstring{#1}{#2}}
-}
-{
- \newcommand*{\glsxtrtitleorpdforheading}[3]{#1}
-}
+\newcommand*{\glsxtrtitleorpdforheading}[3]{%
+ \glsxtrifinmark{#3}{\glstexorpdfstring{#1}{#2}}}
+\ifdef\GetTitleStringDisableCommands
+{\GetTitleStringDisableCommands{\let\glsxtrtitleorpdforheading\@thirdofthree
+ \let\glsxtrifinmark\@firstoftwo}}
+{}
\newcommand*{\glsxtrmarkhook}{%
- \let\@glsxtr@org@MakeUppercase\MakeUppercase
+ \@glsxtr@saveMakeUppercase
\let\@glsxtr@org@glsxtrtitleorpdforheading\glsxtrtitleorpdforheading
\let\@glsxtr@org@glsxtrtitleshort\glsxtrtitleshort
\let\@glsxtr@org@glsxtrtitleshortpl\glsxtrtitleshortpl
\let\@glsxtr@org@Glsxtrtitleshort\Glsxtrtitleshort
\let\@glsxtr@org@Glsxtrtitleshortpl\Glsxtrtitleshortpl
+ \let\@glsxtr@org@GLSxtrtitleshort\GLSxtrtitleshort
+ \let\@glsxtr@org@GLSxtrtitleshortpl\GLSxtrtitleshortpl
\let\@glsxtr@org@glsxtrtitlename\glsxtrtitlename
\let\@glsxtr@org@Glsxtrtitlename\Glsxtrtitlename
\let\@glsxtr@org@glsxtrtitletext\glsxtrtitletext
\let\@glsxtr@org@Glsxtrtitletext\Glsxtrtitletext
+ \let\@glsxtr@org@GLSxtrtitletext\GLSxtrtitletext
\let\@glsxtr@org@glsxtrtitleplural\glsxtrtitleplural
\let\@glsxtr@org@Glsxtrtitleplural\Glsxtrtitleplural
+ \let\@glsxtr@org@GLSxtrtitleplural\GLSxtrtitleplural
\let\@glsxtr@org@glsxtrtitlefirst\glsxtrtitlefirst
\let\@glsxtr@org@Glsxtrtitlefirst\Glsxtrtitlefirst
\let\@glsxtr@org@glsxtrtitlefirstplural\glsxtrtitlefirstplural
\let\@glsxtr@org@Glsxtrtitlefirstplural\Glsxtrtitlefirstplural
+ \let\@glsxtr@org@GLSxtrtitlefirstplural\GLSxtrtitlefirstplural
\let\@glsxtr@org@glsxtrtitlelong\glsxtrtitlelong
\let\@glsxtr@org@glsxtrtitlelongpl\glsxtrtitlelongpl
\let\@glsxtr@org@Glsxtrtitlelong\Glsxtrtitlelong
@@ -12746,23 +11621,32 @@ defined}{}%
\let\@glsxtr@org@glsxtrtitlefullpl\glsxtrtitlefullpl
\let\@glsxtr@org@Glsxtrtitlefull\Glsxtrtitlefull
\let\@glsxtr@org@Glsxtrtitlefullpl\Glsxtrtitlefullpl
+ \let\@glsxtr@org@GLSxtrtitlefull\GLSxtrtitlefull
+ \let\@glsxtr@org@GLSxtrtitlefullpl\GLSxtrtitlefullpl
\let\glsxtrifinmark\@firstoftwo
- \let\MakeUppercase\MakeTextUppercase
+ \@glsxtr@assignMakeUppercase
\let\glsxtrtitleorpdforheading\@thirdofthree
\let\glsxtrtitleshort\glsxtrheadshort
\let\glsxtrtitleshortpl\glsxtrheadshortpl
\let\Glsxtrtitleshort\Glsxtrheadshort
\let\Glsxtrtitleshortpl\Glsxtrheadshortpl
+ \let\GLSxtrtitleshort\GLSxtrheadshort
+ \let\GLSxtrtitleshortpl\GLSxtrheadshortpl
\let\glsxtrtitlename\glsxtrheadname
\let\Glsxtrtitlename\Glsxtrheadname
+ \let\GLSxtrtitlename\GLSxtrheadname
\let\glsxtrtitletext\glsxtrheadtext
\let\Glsxtrtitletext\Glsxtrheadtext
+ \let\GLSxtrtitletext\GLSxtrheadtext
\let\glsxtrtitleplural\glsxtrheadplural
\let\Glsxtrtitleplural\Glsxtrheadplural
+ \let\GLSxtrtitleplural\GLSxtrheadplural
\let\glsxtrtitlefirst\glsxtrheadfirst
\let\Glsxtrtitlefirst\Glsxtrheadfirst
+ \let\GLSxtrtitlefirst\GLSxtrheadfirst
\let\glsxtrtitlefirstplural\glsxtrheadfirstplural
\let\Glsxtrtitlefirstplural\Glsxtrheadfirstplural
+ \let\GLSxtrtitlefirstplural\GLSxtrheadfirstplural
\let\glsxtrtitlelong\glsxtrheadlong
\let\glsxtrtitlelongpl\glsxtrheadlongpl
\let\Glsxtrtitlelong\Glsxtrheadlong
@@ -12771,25 +11655,34 @@ defined}{}%
\let\glsxtrtitlefullpl\glsxtrheadfullpl
\let\Glsxtrtitlefull\Glsxtrheadfull
\let\Glsxtrtitlefullpl\Glsxtrheadfullpl
+ \let\GLSxtrtitlefull\GLSxtrheadfull
+ \let\GLSxtrtitlefullpl\GLSxtrheadfullpl
}
\newcommand*{\glsxtrrestoremarkhook}{%
\let\glsxtrifinmark\@secondoftwo
- \let\MakeUppercase\@glsxtr@org@MakeUppercase
+ \@glsxtr@restoreMakeUppercase
\let\glsxtrtitleorpdforheading\@glsxtr@org@glsxtrtitleorpdforheading
\let\glsxtrtitleshort\@glsxtr@org@glsxtrtitleshort
\let\glsxtrtitleshortpl\@glsxtr@org@glsxtrtitleshortpl
\let\Glsxtrtitleshort\@glsxtr@org@Glsxtrtitleshort
\let\Glsxtrtitleshortpl\@glsxtr@org@Glsxtrtitleshortpl
+ \let\GLSxtrtitleshort\@glsxtr@org@GLSxtrtitleshort
+ \let\GLSxtrtitleshortpl\@glsxtr@org@GLSxtrtitleshortpl
\let\glsxtrtitlename\@glsxtr@org@glsxtrtitlename
\let\Glsxtrtitlename\@glsxtr@org@Glsxtrtitlename
+ \let\GLSxtrtitlename\@glsxtr@org@GLSxtrtitlename
\let\glsxtrtitletext\@glsxtr@org@glsxtrtitletext
\let\Glsxtrtitletext\@glsxtr@org@Glsxtrtitletext
+ \let\GLSxtrtitletext\@glsxtr@org@GLSxtrtitletext
\let\glsxtrtitleplural\@glsxtr@org@glsxtrtitleplural
\let\Glsxtrtitleplural\@glsxtr@org@Glsxtrtitleplural
+ \let\GLSxtrtitleplural\@glsxtr@org@GLSxtrtitleplural
\let\glsxtrtitlefirst\@glsxtr@org@glsxtrtitlefirst
\let\Glsxtrtitlefirst\@glsxtr@org@Glsxtrtitlefirst
+ \let\GLSxtrtitlefirst\@glsxtr@org@GLSxtrtitlefirst
\let\glsxtrtitlefirstplural\@glsxtr@org@glsxtrtitlefirstplural
\let\Glsxtrtitlefirstplural\@glsxtr@org@Glsxtrtitlefirstplural
+ \let\GLSxtrtitlefirstplural\@glsxtr@org@GLSxtrtitlefirstplural
\let\glsxtrtitlelong\@glsxtr@org@glsxtrtitlelong
\let\glsxtrtitlelongpl\@glsxtr@org@glsxtrtitlelongpl
\let\Glsxtrtitlelong\@glsxtr@org@Glsxtrtitlelong
@@ -12798,11 +11691,17 @@ defined}{}%
\let\glsxtrtitlefullpl\@glsxtr@org@glsxtrtitlefullpl
\let\Glsxtrtitlefull\@glsxtr@org@Glsxtrtitlefull
\let\Glsxtrtitlefullpl\@glsxtr@org@Glsxtrtitlefullpl
+ \let\GLSxtrtitlefull\@glsxtr@org@GLSxtrtitlefull
+ \let\GLSxtrtitlefullpl\@glsxtr@org@GLSxtrtitlefullpl
+}
+\newcommand*{\glsxtrtitleopts}{noindex,hyper=false}
+\newcommand*{\glsxtr@title@field}[2]{%
+ \expandafter#1\expandafter[\glsxtrtitleopts]{#2}[]%
}
\newcommand*{\glsxtrheadshort}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLSxtrshort[noindex,hyper=false]{#1}[]%
}%
@@ -12812,12 +11711,12 @@ defined}{}%
}%
}
\newrobustcmd*{\glsxtrtitleshort}[1]{%
- \glsxtrshort[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\glsxtrshort{#1}%
}
\newcommand*{\glsxtrheadshortpl}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLSxtrshortpl[noindex,hyper=false]{#1}[]%
}%
@@ -12827,12 +11726,12 @@ defined}{}%
}%
}
\newrobustcmd*{\glsxtrtitleshortpl}[1]{%
- \glsxtrshortpl[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\glsxtrshortpl{#1}%
}
\newcommand*{\Glsxtrheadshort}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLSxtrshort[noindex,hyper=false]{#1}[]%
}%
@@ -12842,15 +11741,27 @@ defined}{}%
}%
}
\newrobustcmd*{\Glsxtrtitleshort}[1]{%
- \Glsxtrshort[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\Glsxtrshort{#1}%
+}
+\newcommand*{\GLSxtrheadshort}[1]{%
+ \protect\NoCaseChange
+ {%
+ \GLSxtrshort[noindex,hyper=false]{#1}[]%
+ }%
}
\newrobustcmd*{\GLSxtrtitleshort}[1]{%
- \GLSxtrshort[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\GLSxtrshort{#1}%
+}
+\newcommand*{\GLSxtrheadshortpl}[1]{%
+ \protect\NoCaseChange
+ {%
+ \GLSxtrshortpl[noindex,hyper=false]{#1}[]%
+ }%
}
\newcommand*{\Glsxtrheadshortpl}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLSxtrshortpl[noindex,hyper=false]{#1}[]%
}%
@@ -12860,15 +11771,15 @@ defined}{}%
}%
}
\newrobustcmd*{\Glsxtrtitleshortpl}[1]{%
- \Glsxtrshortpl[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\Glsxtrshortpl{#1}%
}
\newrobustcmd*{\GLSxtrtitleshortpl}[1]{%
- \GLSxtrshortpl[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\GLSxtrshortpl{#1}%
}
\newcommand*{\glsxtrheadname}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLSname[noindex,hyper=false]{#1}[]%
}%
@@ -12878,12 +11789,12 @@ defined}{}%
}%
}
\newrobustcmd*{\glsxtrtitlename}[1]{%
- \glsname[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\glsname{#1}%
}
\newcommand*{\Glsxtrheadname}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLSname[noindex,hyper=false]{#1}[]%
}%
@@ -12893,15 +11804,21 @@ defined}{}%
}%
}
\newrobustcmd*{\Glsxtrtitlename}[1]{%
- \Glsname[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\Glsname{#1}%
+}
+\newcommand*{\GLSxtrheadname}[1]{%
+ \protect\NoCaseChange
+ {%
+ \GLSname[noindex,hyper=false]{#1}[]%
+ }%
}
\newrobustcmd*{\GLSxtrtitlename}[1]{%
- \GLSname[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\GLSname{#1}%
}
\newcommand*{\glsxtrheadtext}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLStext[noindex,hyper=false]{#1}[]%
}%
@@ -12911,12 +11828,12 @@ defined}{}%
}%
}
\newrobustcmd*{\glsxtrtitletext}[1]{%
- \glstext[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\glstext{#1}%
}
\newcommand*{\Glsxtrheadtext}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLStext[noindex,hyper=false]{#1}[]%
}%
@@ -12926,15 +11843,21 @@ defined}{}%
}%
}
\newrobustcmd*{\Glsxtrtitletext}[1]{%
- \Glstext[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\Glstext{#1}%
+}
+\newcommand*{\GLSxtrheadtext}[1]{%
+ \protect\NoCaseChange
+ {%
+ \GLStext[noindex,hyper=false]{#1}[]%
+ }%
}
\newrobustcmd*{\GLSxtrtitletext}[1]{%
- \GLStext[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\GLStext{#1}%
}
\newcommand*{\glsxtrheadplural}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLSplural[noindex,hyper=false]{#1}[]%
}%
@@ -12944,12 +11867,12 @@ defined}{}%
}%
}
\newrobustcmd*{\glsxtrtitleplural}[1]{%
- \glsplural[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\glsplural{#1}%
}
\newcommand*{\Glsxtrheadplural}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLSplural[noindex,hyper=false]{#1}[]%
}%
@@ -12959,15 +11882,21 @@ defined}{}%
}%
}
\newrobustcmd*{\Glsxtrtitleplural}[1]{%
- \Glsplural[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\Glsplural{#1}%
+}
+\newcommand*{\GLSxtrheadplural}[1]{%
+ \protect\NoCaseChange
+ {%
+ \GLSplural[noindex,hyper=false]{#1}[]%
+ }%
}
\newrobustcmd*{\GLSxtrtitleplural}[1]{%
- \GLSplural[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\GLSplural{#1}%
}
\newcommand*{\glsxtrheadfirst}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLSfirst[noindex,hyper=false]{#1}[]%
}%
@@ -12977,12 +11906,12 @@ defined}{}%
}%
}
\newrobustcmd*{\glsxtrtitlefirst}[1]{%
- \glsfirst[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\glsfirst{#1}%
}
\newcommand*{\Glsxtrheadfirst}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLSfirst[noindex,hyper=false]{#1}[]%
}%
@@ -12992,15 +11921,21 @@ defined}{}%
}%
}
\newrobustcmd*{\Glsxtrtitlefirst}[1]{%
- \Glsfirst[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\Glsfirst{#1}%
+}
+\newcommand*{\GLSxtrheadfirst}[1]{%
+ \protect\NoCaseChange
+ {%
+ \GLSfirst[noindex,hyper=false]{#1}[]%
+ }%
}
\newrobustcmd*{\GLSxtrtitlefirst}[1]{%
- \GLSfirst[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\GLSfirst{#1}%
}
\newcommand*{\glsxtrheadfirstplural}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLSfirstplural[noindex,hyper=false]{#1}[]%
}%
@@ -13010,12 +11945,12 @@ defined}{}%
}%
}
\newrobustcmd*{\glsxtrtitlefirstplural}[1]{%
- \glsfirstplural[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\glsfirstplural{#1}%
}
\newcommand*{\Glsxtrheadfirstplural}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLSfirstplural[noindex,hyper=false]{#1}[]%
}%
@@ -13025,15 +11960,21 @@ defined}{}%
}%
}
\newrobustcmd*{\Glsxtrtitlefirstplural}[1]{%
- \Glsfirstplural[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\Glsfirstplural{#1}%
+}
+\newcommand*{\GLSxtrheadfirstplural}[1]{%
+ \protect\NoCaseChange
+ {%
+ \GLSfirstplural[noindex,hyper=false]{#1}[]%
+ }%
}
\newrobustcmd*{\GLSxtrtitlefirstplural}[1]{%
- \GLSfirstplural[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\GLSfirstplural{#1}%
}
\newcommand*{\glsxtrheadlong}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLSxtrlong[noindex,hyper=false]{#1}[]%
}%
@@ -13043,12 +11984,12 @@ defined}{}%
}%
}
\newrobustcmd*{\glsxtrtitlelong}[1]{%
- \glsxtrlong[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\glsxtrlong{#1}%
}
\newcommand*{\glsxtrheadlongpl}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLSxtrlongpl[noindex,hyper=false]{#1}[]%
}%
@@ -13058,12 +11999,12 @@ defined}{}%
}%
}
\newrobustcmd*{\glsxtrtitlelongpl}[1]{%
- \glsxtrlongpl[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\glsxtrlongpl{#1}%
}
\newcommand*{\Glsxtrheadlong}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLSxtrlong[noindex,hyper=false]{#1}[]%
}%
@@ -13073,15 +12014,21 @@ defined}{}%
}%
}
\newrobustcmd*{\Glsxtrtitlelong}[1]{%
- \Glsxtrlong[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\Glsxtrlong{#1}%
}
\newrobustcmd*{\GLSxtrtitlelong}[1]{%
- \GLSxtrlong[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\GLSxtrlong{#1}%
+}
+\newcommand*{\GLSxtrheadlong}[1]{%
+ \protect\NoCaseChange
+ {%
+ \GLSxtrlong[noindex,hyper=false]{#1}[]%
+ }%
}
\newcommand*{\Glsxtrheadlongpl}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLSxtrlongpl[noindex,hyper=false]{#1}[]%
}%
@@ -13091,15 +12038,21 @@ defined}{}%
}%
}
\newrobustcmd*{\Glsxtrtitlelongpl}[1]{%
- \Glsxtrlongpl[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\Glsxtrlongpl{#1}%
}
\newrobustcmd*{\GLSxtrtitlelongpl}[1]{%
- \GLSxtrlongpl[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\GLSxtrlongpl{#1}%
+}
+\newcommand*{\GLSxtrheadlongpl}[1]{%
+ \protect\NoCaseChange
+ {%
+ \GLSxtrlongpl[noindex,hyper=false]{#1}[]%
+ }%
}
\newcommand*{\glsxtrheadfull}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLSxtrfull[noindex,hyper=false]{#1}[]%
}%
@@ -13109,12 +12062,12 @@ defined}{}%
}%
}
\newrobustcmd*{\glsxtrtitlefull}[1]{%
- \glsxtrfull[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\glsxtrfull{#1}%
}
\newcommand*{\glsxtrheadfullpl}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLSxtrfullpl[noindex,hyper=false]{#1}[]%
}%
@@ -13124,12 +12077,12 @@ defined}{}%
}%
}
\newrobustcmd*{\glsxtrtitlefullpl}[1]{%
- \glsxtrfullpl[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\glsxtrfullpl{#1}%
}
\newcommand*{\Glsxtrheadfull}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLSxtrfull[noindex,hyper=false]{#1}[]%
}%
@@ -13139,15 +12092,21 @@ defined}{}%
}%
}
\newrobustcmd*{\Glsxtrtitlefull}[1]{%
- \Glsxtrfull[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\Glsxtrfull{#1}%
+}
+\newcommand*{\GLSxtrheadfull}[1]{%
+ \protect\NoCaseChange
+ {%
+ \GLSxtrfull[noindex,hyper=false]{#1}[]%
+ }%
}
\newrobustcmd*{\GLSxtrtitlefull}[1]{%
- \GLSxtrfull[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\GLSxtrfull{#1}%
}
\newcommand*{\Glsxtrheadfullpl}[1]{%
\protect\NoCaseChange
{%
- \glsifattribute{#1}{headuc}{true}%
+ \glsxtrifheaduc{#1}%
{%
\GLSxtrfullpl[noindex,hyper=false]{#1}[]%
}%
@@ -13157,385 +12116,428 @@ defined}{}%
}%
}
\newrobustcmd*{\Glsxtrtitlefullpl}[1]{%
- \Glsxtrfullpl[noindex,hyper=false]{#1}[]%
-}
-\newrobustcmd*{\GLSxtrtitlefullpl}[1]{%
- \GLSxtrfullpl[noindex,hyper=false]{#1}[]%
+ \glsxtr@title@field\Glsxtrfullpl{#1}%
}
-\ifdef\texorpdfstring
-{
- \newcommand*{\glsfmtshort}[1]{%
- \texorpdfstring
- {\glsxtrtitleshort{#1}}%
- {\glsentryshort{#1}}%
- }
-}
-{
- \newcommand*{\glsfmtshort}[1]{%
- \glsxtrtitleshort{#1}}
-}
-\ifdef\texorpdfstring
-{
- \newcommand*{\glsfmtshortpl}[1]{%
- \texorpdfstring
- {\glsxtrtitleshortpl{#1}}%
- {\glsentryshortpl{#1}}%
- }
-}
-{
- \newcommand*{\glsfmtshortpl}[1]{%
- \glsxtrtitleshortpl{#1}}
+\newcommand*{\GLSxtrheadfullpl}[1]{%
+ \protect\NoCaseChange
+ {%
+ \GLSxtrfullpl[noindex,hyper=false]{#1}[]%
+ }%
}
-\ifdef\texorpdfstring
-{
- \newcommand*{\Glsfmtshort}[1]{%
- \texorpdfstring
- {\Glsxtrtitleshort{#1}}%
- {\glsentryshort{#1}}%
- }
+\newrobustcmd*{\GLSxtrtitlefullpl}[1]{%
+ \glsxtr@title@field\GLSxtrfullpl{#1}%
}
-{
- \newcommand*{\Glsfmtshort}[1]{%
- \Glsxtrtitleshort{#1}}
+\newcommand*{\glsfmtshort}[1]{%
+ \glstexorpdfstring
+ {\glsxtrtitleshort{#1}}%
+ {\glsentryshort{#1}}%
}
-\ifdef\texorpdfstring
-{
- \newcommand*{\Glsfmtshortpl}[1]{%
- \texorpdfstring
- {\Glsxtrtitleshortpl{#1}}%
+\newcommand*{\glsfmtshortpl}[1]{%
+ \glstexorpdfstring
+ {\glsxtrtitleshortpl{#1}}%
{\glsentryshortpl{#1}}%
- }
-}
-{
- \newcommand*{\Glsfmtshortpl}[1]{%
- \Glsxtrtitleshortpl{#1}}
-}
-\ifdef\texorpdfstring
-{
- \newcommand*{\glsfmtname}[1]{%
- \texorpdfstring
- {\glsxtrtitlename{#1}}%
- {\glsentryname{#1}}%
- }
-}
-{
- \newcommand*{\glsfmtname}[1]{%
- \glsxtrtitlename{#1}}
-}
-\ifdef\texorpdfstring
-{
- \newcommand*{\Glsfmtname}[1]{%
- \texorpdfstring
- {\Glsxtrtitlename{#1}}%
- {\glsentryname{#1}}%
- }
-}
-{
- \newcommand*{\Glsfmtname}[1]{%
- \Glsxtrtitlename{#1}}
-}
-\ifdef\texorpdfstring
-{
- \newcommand*{\GLSfmtname}[1]{%
- \texorpdfstring
- {\GLSxtrtitlename{#1}}%
- {\glsentryname{#1}}%
- }
-}
-{
- \newcommand*{\GLSfmtname}[1]{%
- \GLSxtrtitlename{#1}}
-}
-\ifdef\texorpdfstring
-{
- \newcommand*{\glsfmttext}[1]{%
- \texorpdfstring
- {\glsxtrtitletext{#1}}%
- {\glsentrytext{#1}}%
- }
-}
-{
- \newcommand*{\glsfmttext}[1]{%
- \glsxtrtitletext{#1}}
-}
-\ifdef\texorpdfstring
-{
- \newcommand*{\Glsfmttext}[1]{%
- \texorpdfstring
- {\Glsxtrtitletext{#1}}%
- {\glsentrytext{#1}}%
- }
-}
-{
- \newcommand*{\Glsfmttext}[1]{%
- \Glsxtrtitletext{#1}}
-}
-\ifdef\texorpdfstring
-{
- \newcommand*{\GLSfmttext}[1]{%
- \texorpdfstring
- {\GLSxtrtitletext{#1}}%
- {\glsentrytext{#1}}%
- }
-}
-{
- \newcommand*{\GLSfmttext}[1]{%
- \GLSxtrtitletext{#1}}
-}
-\ifdef\texorpdfstring
-{
- \newcommand*{\glsfmtplural}[1]{%
- \texorpdfstring
- {\glsxtrtitleplural{#1}}%
- {\glsentryplural{#1}}%
- }
-}
-{
- \newcommand*{\glsfmtplural}[1]{%
- \glsxtrtitleplural{#1}}
-}
-\ifdef\texorpdfstring
-{
- \newcommand*{\Glsfmtplural}[1]{%
- \texorpdfstring
- {\Glsxtrtitleplural{#1}}%
- {\glsentryplural{#1}}%
- }
-}
-{
- \newcommand*{\Glsfmtplural}[1]{%
- \Glsxtrtitleplural{#1}}
-}
-\ifdef\texorpdfstring
-{
- \newcommand*{\GLSfmtplural}[1]{%
- \texorpdfstring
- {\GLSxtrtitleplural{#1}}%
- {\glsentryplural{#1}}%
- }
-}
-{
- \newcommand*{\GLSfmtplural}[1]{%
- \GLSxtrtitleplural{#1}}
-}
-\ifdef\texorpdfstring
-{
- \newcommand*{\glsfmtfirst}[1]{%
- \texorpdfstring
- {\glsxtrtitlefirst{#1}}%
- {\glsentryfirst{#1}}%
- }
-}
-{
- \newcommand*{\glsfmtfirst}[1]{%
- \glsxtrtitlefirst{#1}}
-}
-\ifdef\texorpdfstring
-{
- \newcommand*{\Glsfmtfirst}[1]{%
- \texorpdfstring
- {\Glsxtrtitlefirst{#1}}%
- {\glsentryfirst{#1}}%
- }
-}
-{
- \newcommand*{\Glsfmtfirst}[1]{%
- \Glsxtrtitlefirst{#1}}
}
-\ifdef\texorpdfstring
-{
- \newcommand*{\GLSfmtfirst}[1]{%
- \texorpdfstring
- {\GLSxtrtitlefirst{#1}}%
- {\glsentryfirst{#1}}%
- }
-}
-{
- \newcommand*{\GLSfmtfirst}[1]{%
- \Glsxtrtitlefirst{#1}}
-}
-\ifdef\texorpdfstring
-{
- \newcommand*{\glsfmtfirstpl}[1]{%
- \texorpdfstring
- {\glsxtrtitlefirstplural{#1}}%
- {\glsentryfirstplural{#1}}%
- }
-}
-{
- \newcommand*{\glsfmtfirstpl}[1]{%
- \glsxtrtitlefirstplural{#1}}
+\newcommand*{\Glsfmtshort}[1]{%
+ \glstexorpdfstring
+ {\Glsxtrtitleshort{#1}}%
+ {\MFUsentencecase{\glsentryshort{#1}}}%
+}
+\glsmfuaddmap{\glsfmtshort}{\Glsfmtshort}
+\newcommand*{\Glsfmtshortpl}[1]{%
+ \glstexorpdfstring
+ {\Glsxtrtitleshortpl{#1}}%
+ {\MFUsentencecase{\glsentryshortpl{#1}}}%
+}
+\glsmfuaddmap{\glsfmtshortpl}{\Glsfmtshortpl}
+\newcommand*{\GLSfmtshort}[1]{%
+ \glstexorpdfstring
+ {\GLSxtrtitleshort{#1}}%
+ {\GLSxtrusefield{#1}{short}}%
+}
+\glsmfublocker{\GLSfmtshort}
+\newcommand*{\GLSfmtshortpl}[1]{%
+ \glstexorpdfstring
+ {\GLSxtrtitleshortpl{#1}}%
+ {\GLSxtrusefield{#1}{shortpl}}%
+}
+\glsmfublocker{\GLSfmtshortpl}
+\newcommand*{\glsfmtname}[1]{%
+ \glstexorpdfstring
+ {\glsxtrtitlename{#1}}%
+ {\glsentryname{#1}}%
}
-\ifdef\texorpdfstring
-{
- \newcommand*{\Glsfmtfirstpl}[1]{%
- \texorpdfstring
- {\Glsxtrtitlefirstplural{#1}}%
- {\glsentryfirstplural{#1}}%
- }
+\newcommand*{\Glsfmtname}[1]{%
+ \glstexorpdfstring
+ {\Glsxtrtitlename{#1}}%
+ {\MFUsentencecase{\glsentryname{#1}}}%
+}
+\glsmfuaddmap{\glsfmtname}{\Glsfmtname}
+\newcommand*{\GLSfmtname}[1]{%
+ \glstexorpdfstring
+ {\GLSxtrtitlename{#1}}%
+ {\GLSxtrusefield{#1}{name}}%
+}
+\glsmfublocker{\GLSfmtname}
+\newcommand*{\glsfmttext}[1]{%
+ \glstexorpdfstring
+ {\glsxtrtitletext{#1}}%
+ {\glsentrytext{#1}}%
+}
+\newcommand*{\Glsfmttext}[1]{%
+ \glstexorpdfstring
+ {\Glsxtrtitletext{#1}}%
+ {\MFUsentencecase{\glsentrytext{#1}}}%
+}
+\glsmfuaddmap{\glsfmttext}{\Glsfmttext}
+\newcommand*{\GLSfmttext}[1]{%
+ \glstexorpdfstring
+ {\GLSxtrtitletext{#1}}%
+ {\GLSxtrusefield{#1}{text}}%
+}
+\glsmfublocker{\GLSfmttext}
+\newcommand*{\glsfmtplural}[1]{%
+ \glstexorpdfstring
+ {\glsxtrtitleplural{#1}}%
+ {\glsentryplural{#1}}%
+}
+\newcommand*{\Glsfmtplural}[1]{%
+ \glstexorpdfstring
+ {\Glsxtrtitleplural{#1}}%
+ {\MFUsentencecase{\glsentryplural{#1}}}%
+}
+\glsmfuaddmap{\glsfmtplural}{\Glsfmtplural}
+\newcommand*{\GLSfmtplural}[1]{%
+ \glstexorpdfstring
+ {\GLSxtrtitleplural{#1}}%
+ {\GLSxtrusefield{#1}{plural}}%
+}
+\glsmfublocker{\GLSfmtplural}
+\newcommand*{\glsfmtfirst}[1]{%
+ \glstexorpdfstring
+ {\glsxtrtitlefirst{#1}}%
+ {\glsentryfirst{#1}}%
}
-{
- \newcommand*{\Glsfmtfirstpl}[1]{%
- \Glsxtrtitlefirstplural{#1}}
+\newcommand*{\Glsfmtfirst}[1]{%
+ \glstexorpdfstring
+ {\Glsxtrtitlefirst{#1}}%
+ {\MFUsentencecase{\glsentryfirst{#1}}}%
+}
+\glsmfuaddmap{\glsfmtfirst}{\Glsfmtfirst}
+\newcommand*{\GLSfmtfirst}[1]{%
+ \glstexorpdfstring
+ {\GLSxtrtitlefirst{#1}}%
+ {\GLSxtrusefield{#1}{first}}%
+}
+\glsmfublocker{\GLSfmtfirst}
+\newcommand*{\glsfmtfirstpl}[1]{%
+ \glstexorpdfstring
+ {\glsxtrtitlefirstplural{#1}}%
+ {\GLSxtrusefield{#1}{firstpl}}%
+}
+\newcommand*{\Glsfmtfirstpl}[1]{%
+ \glstexorpdfstring
+ {\Glsxtrtitlefirstplural{#1}}%
+ {\MFUsentencecase{\glsentryfirstplural{#1}}}%
+}
+\newcommand*{\GLSfmtfirstpl}[1]{%
+ \glstexorpdfstring
+ {\GLSxtrtitlefirstplural{#1}}%
+ {\GLSxtrusefield{#1}{firstpl}}%
+}
+\glsmfublocker{\GLSfmtfirstpl}
+\newcommand*{\glsfmtlong}[1]{%
+ \glstexorpdfstring
+ {\glsxtrtitlelong{#1}}%
+ {\glsentrylong{#1}}%
+}
+\newcommand*{\Glsfmtlong}[1]{%
+ \glstexorpdfstring
+ {\Glsxtrtitlelong{#1}}%
+ {\MFUsentencecase{\glsentrylong{#1}}}%
+}
+\glsmfuaddmap{\glsfmtlong}{\Glsfmtlong}
+\newcommand*{\GLSfmtlong}[1]{%
+ \glstexorpdfstring
+ {\GLSxtrtitlelong{#1}}%
+ {\GLSxtrusefield{#1}{long}}%
+}
+\glsmfublocker{\GLSfmtlong}
+\newcommand*{\glsfmtlongpl}[1]{%
+ \glstexorpdfstring
+ {\glsxtrtitlelongpl{#1}}%
+ {\glsentrylongpl{#1}}%
+}
+\newcommand*{\Glsfmtlongpl}[1]{%
+ \glstexorpdfstring
+ {\Glsxtrtitlelongpl{#1}}%
+ {\MFUsentencecase{\glsentrylongpl{#1}}}%
+}
+\glsmfuaddmap{\glsfmtlongpl}{\Glsfmtlongpl}
+\newcommand*{\GLSfmtlongpl}[1]{%
+ \glstexorpdfstring
+ {\GLSxtrtitlelongpl{#1}}%
+ {\GLSxtrusefield{#1}{longpl}}%
+}
+\glsmfublocker{\GLSfmtlongpl}
+\newcommand*{\glspdffmtfull}[1]{\glsentrylong{#1} (\glsentryshort{#1})}%
+\newcommand*{\glspdffmtfullpl}[1]{\glsentrylongpl{#1} (\glsentryshortpl{#1})}%
+\newcommand*{\glsfmtfull}[1]{%
+ \glstexorpdfstring
+ {\glsxtrtitlefull{#1}}%
+ {\glspdffmtfull{#1}}%
+}
+\newcommand*{\Glsfmtfull}[1]{%
+ \glstexorpdfstring
+ {\Glsxtrtitlefull{#1}}%
+ {\MFUsentencecase{\glspdffmtfull{#1}{}}}%
+}
+\glsmfuaddmap{\glsfmtfull}{\Glsfmtfull}
+\ExplSyntaxOn
+\newcommand*{\GLSfmtfull}[1]{%
+ \glstexorpdfstring
+ {\GLSxtrtitlefull{#1}}%
+ {\text_uppercase:n{\glspdffmtfull{#1}}}%
+}
+\ExplSyntaxOff
+\glsmfublocker{\GLSfmtfull}
+\newcommand*{\glsfmtfullpl}[1]{%
+ \glstexorpdfstring
+ {\glsxtrtitlefullpl{#1}}%
+ {\glspdffmtfullpl{#1}}%
+}
+\newcommand*{\Glsfmtfullpl}[1]{%
+ \glstexorpdfstring
+ {\Glsxtrtitlefullpl{#1}}%
+ {\MFUsentencecase{\glspdffmtfullpl{#1}{}}}%
+}
+\glsmfuaddmap{\glsfmtfullpl}{\Glsfmtfullpl}
+\ExplSyntaxOn
+\newcommand*{\GLSfmtfullpl}[1]{%
+ \glstexorpdfstring
+ {\GLSxtrtitlefullpl{#1}}%
+ {\text_uppercase:n{\glspdffmtfullpl{#1}{}}}%
+}
+\ExplSyntaxOff
+\glsmfublocker{\GLSfmtfullpl}
+\newcommand{\pglsprefix}[2]{%
+ \ifcsempty{glo@\glsdetoklabel{#1}@#2}{}%
+ {\csuse{glo@\glsdetoklabel{#1}@#2}\glsprefixsep}%
+}
+\newcommand{\Pglsprefix}[2]{%
+ \Glsxtrusefield{#1}{#2}\glsprefixsep
+}
+\newcommand{\PGLSprefix}[2]{%
+ \ifcsempty{glo@\glsdetoklabel{#1}@#2}{}%
+ {\glsuppercase{\csuse{glo@\glsdetoklabel{#1}@#2}\glsprefixsep}}%
+}
+\newrobustcmd*{\pglsxtrshort}{\@gls@hyp@opt\ns@pglsxtrshort}
+\newcommand*{\ns@pglsxtrshort}[2][]{%
+ \new@ifnextchar[{\@pglsxtrshort{#1}{#2}}{\@pglsxtrshort{#1}{#2}[]}%
+}
+\def\@pglsxtrshort#1#2[#3]{%
+ \pglsprefix{#2}{prefix}%
+ \@glsxtrshort{#1}{#2}[#3]%
+}
+\newrobustcmd*{\Pglsxtrshort}{\@gls@hyp@opt\ns@Pglsxtrshort}
+\newcommand*{\ns@Pglsxtrshort}[2][]{%
+ \new@ifnextchar[{\@Pglsxtrshort{#1}{#2}}{\@Pglsxtrshort{#1}{#2}[]}%
+}
+\def\@Pglsxtrshort#1#2[#3]{%
+ \ifglshasprefix{#2}%
+ {%
+ \Pglsprefix{#2}{prefix}%
+ \@glsxtrshort{#1}{#2}[#3]%
+ }%
+ {\@Glsxtrshort{#1}{#2}[#3]}%
+}
+\glsmfuaddmap{\pglsxtrshort}{\Pglsxtrshort}
+\newrobustcmd*{\PGLSxtrshort}{\@gls@hyp@opt\ns@PGLSxtrshort}
+\newcommand*{\ns@PGLSxtrshort}[2][]{%
+ \new@ifnextchar[{\@PGLSxtrshort{#1}{#2}}{\@PGLSxtrshort{#1}{#2}[]}%
+}
+\def\@PGLSxtrshort#1#2[#3]{%
+ \PGLSprefix{#2}{prefix}%
+ \@GLSxtrshort{#1}{#2}[#3]%
+}
+\glsmfublocker{\PGLSxtrshort}
+\newrobustcmd*{\pglsxtrshortpl}{\@gls@hyp@opt\ns@pglsxtrshortpl}
+\newcommand*{\ns@pglsxtrshortpl}[2][]{%
+ \new@ifnextchar[{\@pglsxtrshortpl{#1}{#2}}{\@pglsxtrshortpl{#1}{#2}[]}%
+}
+\def\@pglsxtrshortpl#1#2[#3]{%
+ \pglsprefix{#2}{prefixplural}%
+ \@glsxtrshortpl{#1}{#2}[#3]%
+}
+\newrobustcmd*{\Pglsxtrshortpl}{\@gls@hyp@opt\ns@Pglsxtrshortpl}
+\newcommand*{\ns@Pglsxtrshortpl}[2][]{%
+ \new@ifnextchar[{\@Pglsxtrshortpl{#1}{#2}}{\@Pglsxtrshortpl{#1}{#2}[]}%
+}
+\def\@Pglsxtrshortpl#1#2[#3]{%
+ \ifglshasprefixplural{#2}%
+ {%
+ \Pglsprefix{#2}{prefixplural}%
+ \@glsxtrshortpl{#1}{#2}[#3]%
+ }%
+ {\@Glsxtrshortpl{#1}{#2}[#3]}%
+}
+\glsmfuaddmap{\pglsxtrshortpl}{\Pglsxtrshortpl}
+\newrobustcmd*{\PGLSxtrshortpl}{\@gls@hyp@opt\ns@PGLSxtrshortpl}
+\newcommand*{\ns@PGLSxtrshortpl}[2][]{%
+ \new@ifnextchar[{\@PGLSxtrshortpl{#1}{#2}}{\@PGLSxtrshortpl{#1}{#2}[]}%
+}
+\def\@PGLSxtrshortpl#1#2[#3]{%
+ \PGLSprefix{#2}{prefixplural}%
+ \@GLSxtrshortpl{#1}{#2}[#3]%
+}
+\glsmfublocker{\PGLSxtrshortpl}
+\newrobustcmd*{\pglsxtrlong}{\@gls@hyp@opt\ns@pglsxtrlong}
+\newcommand*{\ns@pglsxtrlong}[2][]{%
+ \new@ifnextchar[{\@pglsxtrlong{#1}{#2}}{\@pglsxtrlong{#1}{#2}[]}%
+}
+\def\@pglsxtrlong#1#2[#3]{%
+ \pglsprefix{#2}{prefixfirst}%
+ \@glsxtrlong{#1}{#2}[#3]%
}
-\ifdef\texorpdfstring
-{
- \newcommand*{\GLSfmtfirstpl}[1]{%
- \texorpdfstring
- {\GLSxtrtitlefirstplural{#1}}%
- {\glsentryfirstplural{#1}}%
- }
+\newrobustcmd*{\Pglsxtrlong}{\@gls@hyp@opt\ns@Pglsxtrlong}
+\newcommand*{\ns@Pglsxtrlong}[2][]{%
+ \new@ifnextchar[{\@Pglsxtrlong{#1}{#2}}{\@Pglsxtrlong{#1}{#2}[]}%
}
-{
- \newcommand*{\GLSfmtfirstpl}[1]{%
- \GLSxtrtitlefirstplural{#1}}
+\def\@Pglsxtrlong#1#2[#3]{%
+ \ifglshasprefixfirst{#2}%
+ {%
+ \Pglsprefix{#2}{prefixfirst}%
+ \@glsxtrlong{#1}{#2}[#3]%
+ }%
+ {\@Glsxtrlong{#1}{#2}[#3]}%
}
-\ifdef\texorpdfstring
-{
- \newcommand*{\glsfmtlong}[1]{%
- \texorpdfstring
- {\glsxtrtitlelong{#1}}%
- {\glsentrylong{#1}}%
- }
+\glsmfuaddmap{\pglsxtrlong}{\Pglsxtrlong}
+\newrobustcmd*{\PGLSxtrlong}{\@gls@hyp@opt\ns@PGLSxtrlong}
+\newcommand*{\ns@PGLSxtrlong}[2][]{%
+ \new@ifnextchar[{\@PGLSxtrlong{#1}{#2}}{\@PGLSxtrlong{#1}{#2}[]}%
}
-{
- \newcommand*{\glsfmtlong}[1]{%
- \glsxtrtitlelong{#1}}
+\def\@PGLSxtrlong#1#2[#3]{%
+ \PGLSprefix{#2}{prefixfirst}%
+ \@GLSxtrlong{#1}{#2}[#3]%
}
-\ifdef\texorpdfstring
-{
- \newcommand*{\Glsfmtlong}[1]{%
- \texorpdfstring
- {\Glsxtrtitlelong{#1}}%
- {\glsentrylong{#1}}%
- }
+\glsmfublocker{\PGLSxtrlong}
+\newrobustcmd*{\pglsxtrlongpl}{\@gls@hyp@opt\ns@pglsxtrlongpl}
+\newcommand*{\ns@pglsxtrlongpl}[2][]{%
+ \new@ifnextchar[{\@pglsxtrlongpl{#1}{#2}}{\@pglsxtrlongpl{#1}{#2}[]}%
}
-{
- \newcommand*{\Glsfmtlong}[1]{%
- \Glsxtrtitlelong{#1}}
+\def\@pglsxtrlongpl#1#2[#3]{%
+ \pglsprefix{#2}{prefixfirstplural}%
+ \@glsxtrlongpl{#1}{#2}[#3]%
}
-\ifdef\texorpdfstring
-{
- \newcommand*{\GLSfmtlong}[1]{%
- \texorpdfstring
- {\GLSxtrtitlelong{#1}}%
- {\glsentrylong{#1}}%
- }
+\newrobustcmd*{\Pglsxtrlongpl}{\@gls@hyp@opt\ns@Pglsxtrlongpl}
+\newcommand*{\ns@Pglsxtrlongpl}[2][]{%
+ \new@ifnextchar[{\@Pglsxtrlongpl{#1}{#2}}{\@Pglsxtrlongpl{#1}{#2}[]}%
}
-{
- \newcommand*{\GLSfmtlong}[1]{%
- \GLSxtrtitlelong{#1}}
+\def\@Pglsxtrlongpl#1#2[#3]{%
+ \ifglshasprefixfirstplural{#2}%
+ {%
+ \Pglsprefix{#2}{prefixfirstplural}%
+ \@glsxtrlongpl{#1}{#2}[#3]%
+ }%
+ {\@Glsxtrlongpl{#1}{#2}[#3]}%
}
-\ifdef\texorpdfstring
-{
- \newcommand*{\glsfmtlongpl}[1]{%
- \texorpdfstring
- {\glsxtrtitlelongpl{#1}}%
- {\glsentrylongpl{#1}}%
- }
+\glsmfuaddmap{\pglsxtrlongpl}{\Pglsxtrlongpl}
+\newrobustcmd*{\PGLSxtrlongpl}{\@gls@hyp@opt\ns@PGLSxtrlongpl}
+\newcommand*{\ns@PGLSxtrlongpl}[2][]{%
+ \new@ifnextchar[{\@PGLSxtrlongpl{#1}{#2}}{\@PGLSxtrlongpl{#1}{#2}[]}%
}
-{
- \newcommand*{\glsfmtlongpl}[1]{%
- \glsxtrtitlelongpl{#1}}
+\def\@PGLSxtrlongpl#1#2[#3]{%
+ \PGLSprefix{#2}{prefixfirstplural}%
+ \@GLSxtrlongpl{#1}{#2}[#3]%
}
-\ifdef\texorpdfstring
-{
- \newcommand*{\Glsfmtlongpl}[1]{%
- \texorpdfstring
- {\Glsxtrtitlelongpl{#1}}%
- {\glsentrylongpl{#1}}%
- }
+\glsmfublocker{\PGLSxtrlongpl}
+\newcommand*{\pglsfmtshort}[1]{%
+ \pglsprefix{#1}{prefix}%
+ \glsfmtshort{#1}%
}
-{
- \newcommand*{\Glsfmtlongpl}[1]{%
- \Glsxtrtitlelongpl{#1}}
+\newcommand*{\Pglsfmtshort}[1]{%
+ \glstexorpdfstring
+ {\Pglsxtrtitleshort{#1}}%
+ {\MFUsentencecase{%
+ \pglsprefix{#1}{prefix}%
+ \glsentryshort{#1}}%
+ }%
}
-\ifdef\texorpdfstring
-{
- \newcommand*{\GLSfmtlongpl}[1]{%
- \texorpdfstring
- {\GLSxtrtitlelongpl{#1}}%
- {\glsentrylongpl{#1}}%
- }
+\glsmfuaddmap{\pglsfmtshort}{\Pglsfmtshort}
+\newrobustcmd*{\Pglsxtrtitleshort}[1]{%
+ \glsxtr@title@field\Pglsxtrshort{#1}%
}
-{
- \newcommand*{\GLSfmtlongpl}[1]{%
- \GLSxtrtitlelongpl{#1}}
+\newcommand*{\PGLSfmtshort}[1]{%
+ \PGLSprefix{#1}{prefix}%
+ \GLSfmtshort{#1}%
}
-\newcommand*{\glspdffmtfull}[1]{\glsentrylong{#1} (\glsentryshort{#1})}%
-\newcommand*{\glspdffmtfullpl}[1]{\glsentrylongpl{#1} (\glsentryshortpl{#1})}%
-\ifdef\texorpdfstring
-{
- \newcommand*{\glsfmtfull}[1]{%
- \texorpdfstring
- {\glsxtrtitlefull{#1}}%
- {\glspdffmtfull{#1}}%
- }
+\glsmfublocker{\PGLSfmtshort}
+\newcommand*{\pglsfmtshortpl}[1]{%
+ \pglsprefix{#1}{prefixplural}%
+ \glsfmtshortpl{#1}%
}
-{
- \newcommand*{\glsfmtfull}[1]{%
- \glsxtrtitlefull{#1}}
+\newcommand*{\Pglsfmtshortpl}[1]{%
+ \glstexorpdfstring
+ {\Pglsxtrtitleshortpl{#1}}%
+ {\MFUsentencecase
+ {%
+ \pglsprefix{#1}{prefixplural}%
+ \glsentryshortpl{#1}%
+ }%
+ }%
}
-\ifdef\texorpdfstring
-{
- \newcommand*{\Glsfmtfull}[1]{%
- \texorpdfstring
- {\Glsxtrtitlefull{#1}}%
- {\glspdffmtfull{#1}{}}%
- }
+\glsmfuaddmap{\pglsfmtshortpl}{\Pglsfmtshortpl}
+\newrobustcmd*{\Pglsxtrtitleshortpl}[1]{%
+ \glsxtr@title@field\Pglsxtrshortpl{#1}%
}
-{
- \newcommand*{\Glsfmtfull}[1]{%
- \Glsxtrtitlefull{#1}}
+\newcommand*{\PGLSfmtshortpl}[1]{%
+ \PGLSprefix{#1}{prefixplural}%
+ \GLSfmtshortpl{#1}%
}
-\ifdef\texorpdfstring
-{
- \newcommand*{\GLSfmtfull}[1]{%
- \texorpdfstring
- {\GLSxtrtitlefull{#1}}%
- {\glspdffmtfull{#1}}%
- }
+\glsmfublocker{\PGLSfmtshortpl}
+\newcommand*{\pglsfmtlong}[1]{%
+ \pglsprefix{#1}{prefixfirst}%
+ \glsfmtlong{#1}%
}
-{
- \newcommand*{\GLSfmtfull}[1]{%
- \GLSxtrtitlefull{#1}}
+\newcommand*{\Pglsfmtlong}[1]{%
+ \glstexorpdfstring
+ {\Pglsxtrtitlelong{#1}}%
+ {\MFUsentencecase{%
+ \pglsprefix{#1}{prefixfirst}%
+ \glsentrylong{#1}}%
+ }%
}
-\ifdef\texorpdfstring
-{
- \newcommand*{\glsfmtfullpl}[1]{%
- \texorpdfstring
- {\glsxtrtitlefullpl{#1}}%
- {\glspdffmtfullpl{#1}}%
- }
+\glsmfuaddmap{\pglsfmtlong}{\Pglsfmtlong}
+\newrobustcmd*{\Pglsxtrtitlelong}[1]{%
+ \glsxtr@title@field\Pglsxtrlong{#1}%
}
-{
- \newcommand*{\glsfmtfullpl}[1]{%
- \glsxtrtitlefullpl{#1}}
+\newcommand*{\PGLSfmtlong}[1]{%
+ \PGLSprefix{#1}{prefixfirst}%
+ \GLSfmtlong{#1}%
}
-\ifdef\texorpdfstring
-{
- \newcommand*{\Glsfmtfullpl}[1]{%
- \texorpdfstring
- {\Glsxtrtitlefullpl{#1}}%
- {\glspdffmtfullpl{#1}{}}%
- }
+\glsmfublocker{\PGLSfmtlong}
+\newcommand*{\pglsfmtlongpl}[1]{%
+ \pglsprefix{#1}{prefixfirstplural}%
+ \glsfmtlongpl{#1}%
}
-{
- \newcommand*{\Glsfmtfullpl}[1]{%
- \Glsxtrtitlefullpl{#1}}
+\newcommand*{\Pglsfmtlongpl}[1]{%
+ \glstexorpdfstring
+ {\Pglsxtrtitlelongpl{#1}}%
+ {\MFUsentencecase
+ {%
+ \pglsprefix{#1}{prefixfirstplural}%
+ \glsentrylongpl{#1}%
+ }%
+ }%
}
-\ifdef\texorpdfstring
-{
- \newcommand*{\GLSfmtfullpl}[1]{%
- \texorpdfstring
- {\GLSxtrtitlefullpl{#1}}%
- {\glspdffmtfullpl{#1}{}}%
- }
+\glsmfuaddmap{\pglsfmtlongpl}{\Pglsfmtlongpl}
+\newrobustcmd*{\Pglsxtrtitlelongpl}[1]{%
+ \glsxtr@title@field\Pglsxtrlongpl{#1}%
}
-{
- \newcommand*{\GLSfmtfullpl}[1]{%
- \GLSxtrtitlefullpl{#1}}
+\newcommand*{\PGLSfmtlongpl}[1]{%
+ \PGLSprefix{#1}{prefixfirstplural}%
+ \GLSfmtlongpl{#1}%
}
+\glsmfublocker{\PGLSfmtlongpl}
\newcommand*{\multiglossaryentrysetup}[1]{\setkeys{glsxtrcombined}{#1}}
\newcommand*{\@gls@combined@indexmain}{1}
\define@choicekey{glsxtrcombined}{indexmain}%
@@ -14233,6 +13235,9 @@ defined}{}%
}%
}%
{%
+ \let\glsxtrifwasfirstuse\@firstoftwo
+ \let\glsifplural\@secondoftwo
+ \let\glscapscase\@firstofthree
\protected@edef\mglscurrentmultilabel{#2}%
\letcs\mglscurrentmainlabel{@gls@combined@#2@main}%
\letcs\mglscurrentlist{@gls@combined@#2@list}%
@@ -14749,12 +13754,12 @@ defined}{}%
\renewcommand*{\glscombinedsep}[2]{%
\glshasattribute{##1}{combinedsep}%
{\glsgetattribute{##1}{combinedsep}}%
- {\ifhasshort{##1}{~}{ }}%
+ {\ifglshasshort{##1}{~}{ }}%
}%
\renewcommand*{\glscombinedsepfirst}[2]{%
\glshasattribute{##1}{combinedsepfirst}%
{\glsgetattribute{##1}{combinedsepfirst}}%
- {\ifhasshort{##1}{~}{ }}%
+ {\ifglshasshort{##1}{~}{ }}%
}%
\renewcommand*{\glscombinedfirstsep}[2]{%
\glshasattribute{##1}{combinedfirstsep}%
@@ -14771,17 +13776,17 @@ defined}{}%
\renewcommand*{\glscombinedsep}[2]{%
\glshasattribute{##1}{combinedsep}%
{\glsgetattribute{##1}{combinedsep}}%
- {\ifhasshort{##1}{}{\ifhasshort{##2}{}{ }}}%
+ {\ifglshasshort{##1}{}{\ifglshasshort{##2}{}{ }}}%
}%
\renewcommand*{\glscombinedsepfirst}[2]{%
\glshasattribute{##1}{combinedsepfirst}%
{\glsgetattribute{##1}{combinedsepfirst}}%
- {\ifhasshort{##1}{}{ }}%
+ {\ifglshasshort{##1}{}{ }}%
}%
\renewcommand*{\glscombinedfirstsep}[2]{%
\glshasattribute{##1}{combinedfirstsep}%
{\glsgetattribute{##1}{combinedfirstsep}}%
- {\ifhasshort{##2}{}{ }}%
+ {\ifglshasshort{##2}{}{ }}%
}%
\renewcommand*{\glscombinedfirstsepfirst}[2]{%
\glshasattribute{##1}{combinedfirstsepfirst}%
@@ -14794,13 +13799,13 @@ defined}{}%
\glshasattribute{##1}{combinedsep}%
{\glsgetattribute{##1}{combinedsep}}%
{%
- \ifhasshort{##1}%
+ \ifglshasshort{##1}%
{\settowidth{\dimen@}{\glsentryshort{##1}}}%
{\settowidth{\dimen@}{\glsentrytext{##1}}}%
\ifdim\dimen@<#1\relax
#2%
\else
- \ifhasshort{##2}%
+ \ifglshasshort{##2}%
{\settowidth{\dimen@}{\glsentryshort{##2}}}%
{\settowidth{\dimen@}{\glsentrytext{##2}}}%
\ifdim\dimen@<#1\relax
@@ -14815,7 +13820,7 @@ defined}{}%
\glshasattribute{##1}{combinedsepfirst}%
{\glsgetattribute{##1}{combinedsepfirst}}%
{%
- \ifhasshort{##1}%
+ \ifglshasshort{##1}%
{\settowidth{\dimen@}{\glsentryshort{##1}}}%
{\settowidth{\dimen@}{\glsentrytext{##1}}}%
\ifdim\dimen@<#1\relax
@@ -14842,7 +13847,7 @@ defined}{}%
\ifdim\dimen@<#1\relax
#2%
\else
- \ifhasshort{##2}%
+ \ifglshasshort{##2}%
{\settowidth{\dimen@}{\glsentryshort{##2}}}%
{\settowidth{\dimen@}{\glsentrytext{##2}}}%
\ifdim\dimen@<#1\relax
@@ -14949,7 +13954,7 @@ defined}{}%
\def\@glsxtr@mgls@or@gls@gcs{#2}%
\@ifstar{\s@GlsXtrMglsOrGls}%
{%
- \@ifnextchar+{\PLUS\@firstoftwo{\p@GlsXtrMglsOrGls}}%
+ \@ifnextchar+{\@firstoftwo{\p@GlsXtrMglsOrGls}}%
{%
\ifdefempty\@gls@alt@hyp@opt@char\@GlsXtrMglsOrGls\alt@GlsXtrMglsOrGls
}%
@@ -14983,14 +13988,23 @@ defined}{}%
\glsxtr@newmgls{mglspl}{\@glspl@}{\@glspl@}{\@glspl@}{\@glspl@}%
\glsxtr@newmgls{mglsmainpl}{\@gls@}{\@gls@}{\@glspl@}{\@glspl@}%
\glsxtr@newmgls{Mgls}{\@Gls@}{\@gls@}{\@Gls@}{\@gls@}%
+\glsmfuaddmap{\mgls}{\Mgls}
\glsxtr@newmgls{Mglspl}{\@Glspl@}{\@glspl@}{\@Glspl@}{\@glspl@}%
+\glsmfuaddmap{\mglspl}{\Mglspl}
\glsxtr@newmgls{Mglsmainpl}{\@Gls@}{\@gls@}{\@Glspl@}{\@glspl@}%
+\glsmfuaddmap{\mglsmainpl}{\Mglsmainpl}
\glsxtr@newmgls{MGls}{\@Gls@}{\@Gls@}{\@Gls@}{\@Gls@}%
+\glsmfublocker{\MGls}
\glsxtr@newmgls{MGlspl}{\@Glspl@}{\@Glspl@}{\@Glspl@}{\@Glspl@}%
+\glsmfublocker{\MGlspl}
\glsxtr@newmgls{MGlsmainpl}{\@Gls@}{\@Gls@}{\@Glspl@}{\@Glspl@}%
+\glsmfublocker{\MGlsmainpl}
\glsxtr@newmgls{MGLS}{\@GLS@}{\@GLS@}{\@GLS@}{\@GLS@}%
+\glsmfublocker{\MGLS}
\glsxtr@newmgls{MGLSpl}{\@GLSpl@}{\@GLSpl@}{\@GLSpl@}{\@GLSpl@}%
+\glsmfublocker{\MGLSpl}
\glsxtr@newmgls{MGLSmainpl}{\@GLS@}{\@GLS@}{\@GLSpl@}{\@GLSpl@}%
+\glsmfublocker{\MGLSmainpl}
\def\@glslongortext#1#2[#3]{%
\ifglshaslong{#2}{\@glsxtrlong{#1}{#2}[#3]}{\@glstext@{#1}{#2}[#3]}%
}
@@ -15017,16 +14031,21 @@ defined}{}%
{\@glsfullorfirst}{\@glsfullorfirst}{\@glsfullorfirst}{\@glsfullorfirst}%
\glsxtr@newmgls{Mglsshort}%
{\@Glsshortortext}{\@glsshortortext}{\@Glsshortortext}{\@glsshortortext}%
+\glsmfuaddmap{\mglsshort}{\Mglsshort}
\glsxtr@newmgls{Mglslong}%
{\@Glslongortext}{\@glslongortext}{\@Glslongortext}{\@glslongortext}%
+\glsmfuaddmap{\mglslong}{\Mglslong}
\glsxtr@newmgls{Mglsfull}%
{\@Glsfullorfirst}{\@glsfullorfirst}{\@Glsfullorfirst}{\@glsfullorfirst}%
+\glsmfuaddmap{\mglsfull}{\Mglsfull}
\glsxtr@newmgls{mglsname}%
{\@glsname@}{\@glsname@}{\@glsname@}{\@glsname@}%
\glsxtr@newmgls{Mglsname}%
{\@Glsname@}{\@glsname@}{\@Glsname@}{\@glsname@}%
+\glsmfuaddmap{\mglsname}{\Mglsname}
\glsxtr@newmgls{MGlsname}%
{\@Glsname@}{\@Glsname@}{\@Glsname@}{\@Glsname@}%
+\glsmfublocker{\MGlsname}
\def\@glssymbolorgls#1#2[#3]{%
\ifglshassymbol{#2}{\@glssymbol@{#1}{#2}[#3]}{\@gls@{#1}{#2}[#3]}%
}
@@ -15037,8 +14056,10 @@ defined}{}%
{\@glssymbolorgls}{\@glssymbolorgls}{\@glssymbolorgls}{\@glssymbolorgls}%
\glsxtr@newmgls{Mglssymbol}%
{\@glssymbolorGls}{\@glssymbolorgls}{\@glssymbolorGls}{\@glssymbolorgls}%
+\glsmfuaddmap{\mglssymbol}{\Mglssymbol}
\glsxtr@newmgls{MGlssymbol}%
{\@glssymbolorGls}{\@glssymbolorGls}{\@glssymbolorGls}{\@glssymbolorGls}%
+\glsmfublocker{\MGlssymbol}
\newcommand{\mglsfield}{useri}
\def\@glsfieldorgls#1#2[#3]{%
\glsxtrifhasfield{\mglsfield}{#2}%
@@ -15047,19 +14068,21 @@ defined}{}%
}
\def\@Glsfieldorgls#1#2[#3]{%
\glsxtrifhasfield{\mglsfield}{#2}%
- {\@glsdisp[#1]{#2}{\xmakefirstuc\glscurrentfieldvalue#3}}%
+ {\@glsdisp[#1]{#2}{%
+ \expandafter\glssentencecase\expandafter{\glscurrentfieldvalue#3}}}%
{\@Gls@{#1}{#2}[#3]}%
}
\glsxtr@newmgls{mglsusefield}%
{\@glsfieldorgls}{\@glsfieldorgls}{\@glsfieldorgls}{\@glsfieldorgls}%
\glsxtr@newmgls{Mglsusefield}%
{\@Glsfieldorgls}{\@glsfieldorgls}{\@Glsfieldorgls}{\@glsfieldorgls}%
+\glsmfuaddmap{\mglsusefield}{\Mglsusefield}
\glsxtr@newmgls{MGlsusefield}%
{\@Glsfieldorgls}{\@Glsfieldorgls}{\@Glsfieldorgls}{\@Glsfieldorgls}%
+\glsmfublocker{\MGlsusefield}
\newcommand*{\mpglsWarning}{%
\GlossariesExtraWarning{glossaries-prefix.sty is required for
- \string\mpgls\space family of commands (either load after
- glossaries-extra.sty or use the `prefix' package option)}%
+ \string\mpgls\space family of commands}%
}
\def\@pglsorgls#1#2[#3]{%
\ifdef\@pgls@{\@pgls@{#1}{#2}[#3]}{\mpglsWarning\@gls@{#1}{#2}[#3]}%
@@ -15086,14 +14109,23 @@ defined}{}%
\glsxtr@newmgls{mpglspl}{\@pglsorglspl@}{\@glspl@}{\@pglsorglspl@}{\@glspl@}%
\glsxtr@newmgls{mpglsmainpl}{\@pglsorgls@}{\@gls@}{\@pglsorglspl@}{\@glspl@}%
\glsxtr@newmgls{Mpgls}{\@Pglsorgls@}{\@gls@}{\@Pglsorgls@}{\@gls@}%
+\glsmfuaddmap{\mpgls}{\Mpgls}
\glsxtr@newmgls{Mpglspl}{\@Pglsorglspl@}{\@glspl@}{\@Pglsorglspl@}{\@glspl@}%
+\glsmfuaddmap{\mpglspl}{\Mpglspl}
\glsxtr@newmgls{Mpglsmainpl}{\@Pglsorgls@}{\@gls@}{\@Pglsorglspl@}{\@glspl@}%
+\glsmfuaddmap{\mpglsmainpl}{\Mpglsmainpl}
\glsxtr@newmgls{MPGls}{\@Pglsorgls@}{\@Gls@}{\@Pglsorgls@}{\@Gls@}%
+\glsmfublocker{\MPGls}
\glsxtr@newmgls{MPGlspl}{\@Pglsorglspl@}{\@Glspl@}{\@Pglsorglspl@}{\@Glspl@}%
+\glsmfublocker{\MPGlspl}
\glsxtr@newmgls{MPGlsmainpl}{\@Pglsorgls@}{\@Gls@}{\@Pglsorglspl@}{\@Glspl@}%
+\glsmfublocker{\MPGlsmainpl}
\glsxtr@newmgls{MPGLS}{\@PGLSorgls@}{\@GLS@}{\@PGLSorgls@}{\@GLS@}%
+\glsmfublocker{\MPGLS}
\glsxtr@newmgls{MPGLSpl}{\@PGLSorglspl@}{\@GLSpl@}{\@PGLSorglspl@}{\@GLSpl@}%
+\glsmfublocker{\MPGLSpl}
\glsxtr@newmgls{MPGLSmainpl}{\@PGLSorgls@}{\@GLS@}{\@PGLSorglspl@}{\@GLSpl@}%
+\glsmfublocker{\MPGLSmainpl}
\newcommand*{\RequireGlossariesExtraLang}[1]{%
\@ifundefined{ver@glossariesxtr-#1.ldf}{\input{glossariesxtr-#1.ldf}}{}%
}
diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex-2021-11-22.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex-2021-11-22.sty
new file mode 100644
index 00000000000..aff48c6bf52
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex-2021-11-22.sty
@@ -0,0 +1,238 @@
+%%
+%% This is file `glossary-bookindex-2021-11-22.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries-extra.dtx (with options: `glossary-bookindex-2021-11-22.sty,package')
+%%
+%% glossaries-extra.dtx
+%% Copyright 2022 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-abbrstyles.def, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, glossary-table.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib, glossaries-extra-2021-11-22.sty, glossaries-extra-bib2gls-2021-11-22.sty, glossaries-extra-stylemods-2021-11-22.sty, glossary-bookindex-2021-11-22.sty, glossary-longextra-2021-11-22.sty, glossary-topic-2021-11-22.sty.
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{glossary-bookindex}[2021/11/22 v1.48 (NLCT)]
+\RequirePackage{multicol}
+\RequirePackage{glossary-tree}
+\newcommand{\glsxtrbookindexcols}{2}
+\newcommand*{\glsxtrbookindexname}[1]{\glossentryname{#1}}
+\newcommand*{\glsxtrbookindexsubname}[1]{\glsxtrbookindexname{#1}}
+\providecommand*{\glsxtrprelocation}{\space}
+
+\newcommand*{\glsxtrbookindexprelocation}[1]{%
+ \glsxtrifhasfield{location}{#1}%
+ {,\glsxtrprelocation}%
+ {\glsxtrprelocation}%
+}
+\newcommand*{\glsxtrbookindexsubprelocation}[1]{%
+ \glsxtrbookindexprelocation{#1}%
+}
+\newcommand*{\glsxtrbookindexlocation}[2]{#2}
+\newcommand*{\glsxtrbookindexsublocation}{\glsxtrbookindexlocation}
+\newcommand{\glsxtrbookindexparentchildsep}{\nopagebreak}
+\newcommand{\glsxtrbookindexparentsubchildsep}{\glsxtrbookindexparentchildsep}
+\newcommand{\glsxtrbookindexbetween}[2]{}
+\newcommand{\glsxtrbookindexsubbetween}[2]{}
+\newcommand{\glsxtrbookindexsubsubbetween}[2]{}
+\newcommand{\glsxtrbookindexatendgroup}[1]{}
+\newcommand{\glsxtrbookindexsubatendgroup}[1]{}
+\newcommand{\glsxtrbookindexsubsubatendgroup}[1]{}
+\newcommand{\glsxtrbookindexgroupskip}{\ifglsnogroupskip\else\indexspace\fi}
+\newcommand*{\glsxtrbookindexformatheader}[1]{%
+ \par{\centering\glstreegroupheaderfmt{#1}\par}%
+}
+\ifdef\pdfbookmark
+{%
+ \newcommand*{\glsxtrbookindexbookmark}[2]{%
+ \ifdefstring{\@@glossarysec}{chapter}%
+ {\pdfbookmark[1]{#1}{#2}}%
+ {\pdfbookmark[2]{#1}{#2}}%
+ }
+}
+{%
+ \newcommand*{\glsxtrbookindexbookmark}[2]{}
+}
+\newcommand*{\glsxtrbookindexbookmarkprefix}{\currentglossary.}
+\newcommand*{\glsxtrbookindexcolspread}{}
+\newcommand*{\glsxtrbookindexmulticolsenv}{multicols}
+\newglossarystyle{bookindex}{%
+ \setglossarystyle{index}%
+ \renewenvironment{theglossary}%
+ {%
+ \ifnum\glsxtrbookindexcols>1\relax
+ \ifdefempty\glsxtrbookindexcolspread
+ {%
+ \edef\glsxtr@beginbookindex{%
+ \noexpand\begin{\glsxtrbookindexmulticolsenv}
+ {\glsxtrbookindexcols}%
+ }%
+ }%
+ {%
+ \edef\glsxtr@beginbookindex{%
+ \noexpand\begin{\glsxtrbookindexmulticolsenv}%
+ {\glsxtrbookindexcols}[\glsxtrbookindexcolspread]%
+ }%
+ }%
+ \else
+ \def\glsxtr@beginbookindex{}%
+ \fi
+ \glsxtr@beginbookindex
+ \setlength{\parindent}{0pt}%
+ \setlength{\parskip}{0pt plus 0.3pt}%
+ \let\@glsxtr@bookindex@sep\glsxtrbookindexparentchildsep
+ \let\@glsxtr@bookindex@subsep\glsxtrbookindexparentsubchildsep
+ \let\@glsxtr@bookindex@between\@gobble
+ \let\@glsxtr@bookindex@subbetween\@gobble
+ \let\@glsxtr@bookindex@subsubbetween\@gobble
+ \let\@glsxtr@bookindex@atendgroup\relax
+ \let\@glsxtr@bookindex@subatendgroup\relax
+ \let\@glsxtr@bookindex@subsubatendgroup\relax
+ \let\@glsxtr@bookindexgroupskip\relax
+ }%
+ {%
+ \@glsxtr@bookindex@subsubatendgroup
+ \@glsxtr@bookindex@subatendgroup
+ \@glsxtr@bookindex@atendgroup
+ \ifnum\glsxtrbookindexcols>1\relax
+ \edef\glsxtr@endbookindex{%
+ \noexpand\end{\glsxtrbookindexmulticolsenv}%
+ }%
+ \else
+ \def\glsxtr@endbookindex{}%
+ \fi
+ \glsxtr@endbookindex
+ }%
+ \renewcommand*{\glossaryheader}{\raggedright}%
+ \renewcommand*{\glossentry}[2]{%
+ \@glsxtr@bookindex@between{##1}%
+ \let\@glsxtr@bookindex@sep\glsxtrbookindexparentchildsep
+ \let\@glsxtr@bookindex@subsep\glsxtrbookindexparentsubchildsep
+ \let\@glsxtr@bookindex@subbetween\@gobble
+ \let\@glsxtr@bookindex@subsubbetween\@gobble
+ \edef\@glsxtr@bookindex@between{%
+ \noexpand\glsxtrbookindexbetween{##1}%
+ }%
+ \edef\@glsxtr@bookindex@atendgroup{%
+ \noexpand\glsxtrbookindexatendgroup{##1}%
+ }%
+ \let\@glsxtr@bookindex@subatendgroup\relax
+ \let\@glsxtr@bookindex@subsubatendgroup\relax
+ \glstreeitem
+ \glsentryitem{##1}%
+ \glstarget{##1}{\glsxtrbookindexname{##1}}%
+ \glsxtrbookindexprelocation{##1}%
+ \glsxtrbookindexlocation{##1}{##2}%
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \ifcase##1\relax
+ \glstreeitem
+ \or
+ \@glsxtr@bookindex@sep
+ \@glsxtr@bookindex@subbetween{##2}%
+ \let\@glsxtr@bookindex@sep\relax
+ \let\@glsxtr@bookindex@subsubbetween\@gobble
+ \let\@glsxtr@bookindex@subsep\glsxtrbookindexparentsubchildsep
+ \edef\@glsxtr@bookindex@subbetween{%
+ \noexpand\glsxtrbookindexsubbetween{##2}%
+ }%
+ \edef\@glsxtr@bookindex@atsubendgroup{%
+ \noexpand\glsxtrbookindexatsubendgroup{##1}%
+ }%
+ \glstreesubitem
+ \glssubentryitem{##2}%
+ \else
+ \@glsxtr@bookindex@subsep
+ \@glsxtr@bookindex@subsubbetween{##2}%
+ \let\@glsxtr@bookindex@subsep\relax
+ \edef\@glsxtr@bookindex@subsubbetween{%
+ \noexpand\glsxtrbookindexsubsubbetween{##2}%
+ }%
+ \edef\@glsxtr@bookindex@atsubsubendgroup{%
+ \noexpand\glsxtrbookindexatsubsubendgroup{##1}%
+ }%
+ \glstreesubsubitem
+ \fi
+ \glstarget{##2}{\glsxtrbookindexsubname{##2}}%
+ \glsxtrbookindexsubprelocation{##2}%
+ \glsxtrbookindexsublocation{##2}{##3}%
+ }%
+ \renewcommand*{\glsgroupskip}{}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \@glsxtr@bookindex@subsubatendgroup
+ \@glsxtr@bookindex@subatendgroup
+ \@glsxtr@bookindex@atendgroup
+ \@glsxtr@bookindexgroupskip
+ \let\@glsxtr@bookindexgroupskip\glsxtrbookindexgroupskip
+ \let\@glsxtr@bookindex@between\@gobble
+ \let\@glsxtr@bookindex@atendgroup\relax
+ \let\@glsxtr@bookindex@subatendgroup\relax
+ \let\@glsxtr@bookindex@subsubatendgroup\relax
+ \glsxtrgetgrouptitle{##1}{\glsxtrcurrentgrptitle}%
+ \glsxtrbookindexbookmark{\glsxtrcurrentgrptitle}{\glsxtrbookindexbookmarkprefix##1}%
+ \glsxtrbookindexformatheader{\glsxtrcurrentgrptitle}%
+ \nopagebreak\indexspace\nopagebreak\@afterheading
+ }%
+}
+\newcommand{\glsxtrbookindexthepage}{%
+ \ifdef\currentglossary{\currentglossary.\arabic{page}}{\arabic{page}}%
+}
+\newcommand*{\glsxtrbookindexmarkentry}[1]{%
+ \protected@write\@auxout
+ {\let\glsxtrbookindexthepage\relax}%
+ {\string\glsxtr@setbookindexmark{\glsxtrbookindexthepage}{#1}}%
+}
+\newcommand*{\glsxtr@setbookindexmark}[2]{%
+ \ifcsundef{glsxtr@idxfirstmark@#1}%
+ {\csgdef{glsxtr@idxfirstmark@#1}{#2}}%
+ {}%
+ \csgdef{glsxtr@idxlastmark@#1}{#2}%
+}
+\newcommand*{\glsxtrbookindexfirstmarkfmt}[1]{%
+ \glsentryname{#1}%
+}
+\newcommand*{\glsxtrbookindexfirstmark}{%
+ \letcs{\glsxtr@label}{glsxtr@idxfirstmark@\glsxtrbookindexthepage}%
+ \ifdef\glsxtr@label
+ {\glsxtrbookindexfirstmarkfmt{\glsxtr@label}}%
+ {}%
+}
+\newcommand*{\glsxtrbookindexlastmarkfmt}[1]{%
+ \glsentryname{#1}%
+}
+\newcommand*{\glsxtrbookindexlastmark}{%
+ \letcs{\glsxtr@label}{glsxtr@idxlastmark@\glsxtrbookindexthepage}%
+ \ifdef\glsxtr@label
+ {\glsxtrbookindexlastmarkfmt{\glsxtr@label}}%
+ {}%
+}
+\endinput
+%%
+%% End of file `glossary-bookindex-2021-11-22.sty'.
diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex.sty
index 17c89c07654..d389bcf40f3 100644
--- a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex.sty
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex.sty
@@ -7,7 +7,7 @@
%% glossaries-extra.dtx (with options: `glossary-bookindex.sty,package')
%%
%% glossaries-extra.dtx
-%% Copyright 2021 Nicola Talbot
+%% Copyright 2022 Nicola Talbot
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -21,7 +21,7 @@
%%
%% The Current Maintainer of this work is Nicola Talbot.
%%
-%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib.
+%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-abbrstyles.def, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, glossary-table.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib, glossaries-extra-2021-11-22.sty, glossaries-extra-bib2gls-2021-11-22.sty, glossaries-extra-stylemods-2021-11-22.sty, glossary-bookindex-2021-11-22.sty, glossary-longextra-2021-11-22.sty, glossary-topic-2021-11-22.sty.
%%
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -39,7 +39,9 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossary-bookindex}[2021/11/22 v1.48 (NLCT)]
+\DeclareRelease{v1.48}{2021-11-22}{glossary-bookindex-2021-11-22.sty}
+\DeclareCurrentRelease{v1.49}{2022-10-14}
+\ProvidesPackage{glossary-bookindex}[2022/10/14 v1.49 (NLCT)]
\RequirePackage{multicol}
\RequirePackage{glossary-tree}
\newcommand{\glsxtrbookindexcols}{2}
@@ -66,9 +68,20 @@
\newcommand{\glsxtrbookindexsubatendgroup}[1]{}
\newcommand{\glsxtrbookindexsubsubatendgroup}[1]{}
\newcommand{\glsxtrbookindexgroupskip}{\ifglsnogroupskip\else\indexspace\fi}
+\newcommand{\glsxtrbookindexpregroupskip}[1]{#1}
+\newcommand{\glsxtrbookindexpostgroupskip}{\indexspace}
+\newcommand{\glsxtrbookindexpresubgroupskip}[3]{\par\medskip}
+\newcommand{\glsxtrbookindexpostsubgroupskip}[2]{\par\medskip}
\newcommand*{\glsxtrbookindexformatheader}[1]{%
\par{\centering\glstreegroupheaderfmt{#1}\par}%
}
+\newcommand*{\glsxtrbookindexformatsubheader}[5]{%
+ \ifnum#2>1\relax
+ \glstreesubsubitem\glstreegroupheaderfmt{#5}%
+ \else
+ \glstreesubitem\glstreegroupheaderfmt{#5}%
+ \fi
+}
\ifdef\pdfbookmark
{%
\newcommand*{\glsxtrbookindexbookmark}[2]{%
@@ -80,6 +93,17 @@
{%
\newcommand*{\glsxtrbookindexbookmark}[2]{}
}
+\ifdef\pdfbookmark
+{%
+ \newcommand*{\glsxtrbookindexsubbookmark}[3]{%
+ \ifdefstring{\@@glossarysec}{chapter}%
+ {\expandafter\pdfbookmark\expandafter[\number\numexpr#1+1]{#3}{#2}}%
+ {\expandafter\pdfbookmark\expandafter[\number\numexpr#1+2]{#3}{#2}}%
+ }
+}
+{%
+ \newcommand*{\glsxtrbookindexsubbookmark}[3]{}
+}
\newcommand*{\glsxtrbookindexbookmarkprefix}{\currentglossary.}
\newcommand*{\glsxtrbookindexcolspread}{}
\newcommand*{\glsxtrbookindexmulticolsenv}{multicols}
@@ -137,10 +161,10 @@
\let\@glsxtr@bookindex@subsep\glsxtrbookindexparentsubchildsep
\let\@glsxtr@bookindex@subbetween\@gobble
\let\@glsxtr@bookindex@subsubbetween\@gobble
- \edef\@glsxtr@bookindex@between{%
+ \protected@edef\@glsxtr@bookindex@between{%
\noexpand\glsxtrbookindexbetween{##1}%
}%
- \edef\@glsxtr@bookindex@atendgroup{%
+ \protected@edef\@glsxtr@bookindex@atendgroup{%
\noexpand\glsxtrbookindexatendgroup{##1}%
}%
\let\@glsxtr@bookindex@subatendgroup\relax
@@ -189,7 +213,7 @@
\@glsxtr@bookindex@subsubatendgroup
\@glsxtr@bookindex@subatendgroup
\@glsxtr@bookindex@atendgroup
- \@glsxtr@bookindexgroupskip
+ \glsxtrbookindexpregroupskip\@glsxtr@bookindexgroupskip
\let\@glsxtr@bookindexgroupskip\glsxtrbookindexgroupskip
\let\@glsxtr@bookindex@between\@gobble
\let\@glsxtr@bookindex@atendgroup\relax
@@ -198,8 +222,23 @@
\glsxtrgetgrouptitle{##1}{\glsxtrcurrentgrptitle}%
\glsxtrbookindexbookmark{\glsxtrcurrentgrptitle}{\glsxtrbookindexbookmarkprefix##1}%
\glsxtrbookindexformatheader{\glsxtrcurrentgrptitle}%
- \nopagebreak\indexspace\nopagebreak\@afterheading
+ \nopagebreak\glsxtrbookindexpostgroupskip\nopagebreak\@afterheading
}%
+ \renewcommand*{\glssubgroupheading}[4]{%
+ \@glsxtr@bookindex@subsubatendgroup
+ \@glsxtr@bookindex@subatendgroup
+ \@glsxtr@bookindex@atendgroup
+ \glsxtrbookindexpresubgroupskip\@glsxtr@bookindexgroupskip{##1}{##2}%
+ \let\@glsxtr@bookindexgroupskip\glsxtrbookindexgroupskip
+ \let\@glsxtr@bookindex@between\@gobble
+ \let\@glsxtr@bookindex@atendgroup\relax
+ \let\@glsxtr@bookindex@subatendgroup\relax
+ \let\@glsxtr@bookindex@subsubatendgroup\relax
+ \glsxtrgetgrouptitle{##4}{\glsxtrcurrentgrptitle}%
+ \glsxtrbookindexsubbookmark{##2}{##4}{\glsxtrcurrentgrptitle}%
+ \glsxtrbookindexformatsubheader{##1}{##2}{##3}{##4}{\glsxtrcurrentgrptitle}%
+ \nopagebreak\glsxtrbookindexpostsubgroupskip{##1}{##2}\nopagebreak\@afterheading
+ }
}
\newcommand{\glsxtrbookindexthepage}{%
\ifdef\currentglossary{\currentglossary.\arabic{page}}{\arabic{page}}%
diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-longextra-2021-11-22.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-longextra-2021-11-22.sty
new file mode 100644
index 00000000000..b9f13e4f19e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-longextra-2021-11-22.sty
@@ -0,0 +1,910 @@
+%%
+%% This is file `glossary-longextra-2021-11-22.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries-extra.dtx (with options: `glossary-longextra-2021-11-22.sty,package')
+%%
+%% glossaries-extra.dtx
+%% Copyright 2022 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-abbrstyles.def, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, glossary-table.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib, glossaries-extra-2021-11-22.sty, glossaries-extra-bib2gls-2021-11-22.sty, glossaries-extra-stylemods-2021-11-22.sty, glossary-bookindex-2021-11-22.sty, glossary-longextra-2021-11-22.sty, glossary-topic-2021-11-22.sty.
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{glossary-longextra}[2021/11/22 v1.48 (NLCT)]
+\RequirePackage{glossary-longbooktabs}
+\newcommand{\glslongextraNameFmt}[1]{%
+ \glsentryitem{#1}\glstarget{#1}{\glossentryname{#1}}%
+}
+\newcommand{\glslongextraDescFmt}[1]{%
+ \glossentrydesc{#1}\glspostdescription
+}
+\newcommand{\glslongextraSymbolFmt}[1]{\glossentrysymbol{#1}}
+\newcommand{\glslongextraLocationFmt}[2]{#2}
+\newcommand{\glslongextraSubNameFmt}[2]{%
+ \glssubentryitem{#2}\glstarget{#2}{\strut}%
+}
+\newcommand{\glslongextraSubDescFmt}[2]{%
+ \glslongextraDescFmt{#2}%
+}
+\newcommand{\glslongextraSubSymbolFmt}[2]{%
+ \glslongextraSymbolFmt{#2}%
+}
+\newcommand{\glslongextraSubLocationFmt}[3]{#3}
+\newcommand{\glslongextraNameAlign}{l}
+\newcommand{\glslongextraDescAlign}{>{\raggedright}p{\glsdescwidth}}
+\newcommand{\glslongextraSymbolAlign}{c}
+\newcommand{\glslongextraLocationAlign}{>{\raggedright}p{\glspagelistwidth}}
+\newcommand{\glslongextraGroupHeading}[2]{}
+\newcommand{\glslongextraHeaderFmt}[1]{\textbf{#1}}
+\newcommand{\glslongextraNameDescHeader}{%
+ \glslongextraNameDescTabularHeader\endhead
+ \glslongextraNameDescTabularFooter\endfoot
+}
+\newcommand{\glslongextraNameDescTabularHeader}{%
+ \toprule
+ \glslongextraHeaderFmt\entryname &
+ \glslongextraHeaderFmt\descriptionname\tabularnewline
+ \midrule
+}
+\newcommand{\glslongextraNameDescTabularFooter}{%
+ \bottomrule
+}
+\newcommand*{\glslongextraSetWidest}[1]{%
+ \def\@glslongextrawidestname{#1}%
+}
+\newcommand*{\@glslongextrawidestname}{\csuse{@glswidestname}}
+\newcommand*{\glslongextraUpdateWidest}[1]{%
+ \ifundef\@glslongextrawidestname
+ {\def\@glslongextrawidestname{#1}}%
+ {%
+ \settowidth{\dimen@}{\@glslongextrawidestname}%
+ \settowidth{\dimen@ii}{#1}%
+ \ifdim\dimen@ii>\dimen@
+ \def\@glslongextrawidestname{#1}%
+ \fi
+ }%
+}
+\newcommand*{\glslongextraUpdateWidestChild}[2]{}
+\newcommand{\glslongextraSetDescWidth}{%
+ \settowidth{\gls@tmplen}{\glslongextraHeaderFmt\entryname}%
+ \settowidth{\dimen@}{\glsnamefont{\@glslongextrawidestname}}%
+ \ifdim\dimen@>\gls@tmplen
+ \gls@tmplen=\dimen@
+ \fi
+ \setlength{\glsdescwidth}{\dimexpr\linewidth-4\tabcolsep-\gls@tmplen}%
+}
+\newcommand{\glslongextraSymSetDescWidth}{%
+ \glslongextraSetDescWidth
+ \settowidth{\gls@tmplen}{\glslongextraHeaderFmt\symbolname}%
+ \setlength{\glsdescwidth}{\dimexpr\glsdescwidth-2\tabcolsep-\gls@tmplen}%
+}
+\newcommand{\glslongextraLocSetDescWidth}{%
+ \glslongextraSetDescWidth
+ \setlength{\glsdescwidth}{\dimexpr\glsdescwidth-2\tabcolsep-\glspagelistwidth}%
+}
+\newcommand{\glslongextraSymLocSetDescWidth}{%
+ \glslongextraSymSetDescWidth
+ \setlength{\glsdescwidth}{\dimexpr\glsdescwidth-2\tabcolsep-\glspagelistwidth}%
+}
+\newif\ifGlsLongExtraUseTabular
+\GlsLongExtraUseTabularfalse
+\newcommand*{\glslongextraTabularVAlign}{c}
+\newglossarystyle{long-name-desc}%
+{%
+ \ifGlsLongExtraUseTabular
+ \renewenvironment{theglossary}%
+ {%
+ \glslongextraSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
+ \expandonce\glslongextraNameAlign
+ \expandonce\glslongextraDescAlign}}%
+ \@glslongextra@begintab
+ }%
+ {%
+ \glslongextraNameDescTabularFooter
+ \end{tabular}%
+ }%
+ \renewcommand*{\glossaryheader}{\glslongextraNameDescTabularHeader}%
+ \else
+ \renewenvironment{theglossary}%
+ {%
+ \glspatchLToutput
+ \glslongextraSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{longtable}{%
+ \expandonce\glslongextraNameAlign
+ \expandonce\glslongextraDescAlign}}%
+ \@glslongextra@begintab
+ }%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\glslongextraNameDescHeader}%
+ \fi
+ \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{2}{##1}}%
+ \renewcommand{\glossentry}[2]{%
+ \glslongextraNameFmt{##1} &
+ \glslongextraDescFmt{##1}\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \glslongextraSubNameFmt{##1}{##2}
+ &
+ \glslongextraSubDescFmt{##1}{##2}%
+ \tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
+ \fi
+}
+\newcommand{\glslongextraNameDescLocationHeader}{%
+ \glslongextraNameDescLocationTabularHeader\endhead
+ \glslongextraNameDescLocationTabularFooter\endfoot
+}
+\newcommand{\glslongextraNameDescLocationTabularHeader}{%
+ \toprule
+ \glslongextraHeaderFmt\entryname &
+ \glslongextraHeaderFmt\descriptionname &
+ \glslongextraHeaderFmt\pagelistname\tabularnewline
+ \midrule
+}
+\newcommand{\glslongextraNameDescLocationTabularFooter}{%
+ \bottomrule
+}
+\newglossarystyle{long-name-desc-loc}%
+{%
+ \ifGlsLongExtraUseTabular
+ \renewenvironment{theglossary}%
+ {%
+ \glslongextraLocSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
+ \expandonce\glslongextraNameAlign
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraLocationAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {%
+ \glslongextraNameDescLocationTabularFooter
+ \end{tabular}%
+ }%
+ \renewcommand*{\glossaryheader}{\glslongextraNameDescLocationTabularHeader}%
+ \else
+ \renewenvironment{theglossary}%
+ {%
+ \glspatchLToutput
+ \glslongextraLocSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{longtable}{%
+ \expandonce\glslongextraNameAlign
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraLocationAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\glslongextraNameDescLocationHeader}%
+ \fi
+ \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
+ \renewcommand{\glossentry}[2]{%
+ \glslongextraNameFmt{##1} &
+ \glslongextraDescFmt{##1} &
+ \glslongextraLocationFmt{##1}{##2}\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \glslongextraSubNameFmt{##1}{##2}&
+ \glslongextraSubDescFmt{##1}{##2}&
+ \glslongextraSubLocationFmt{##1}{##2}{##3}%
+ \tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
+ \fi
+}
+\newcommand{\glslongextraDescNameHeader}{%
+ \glslongextraDescNameTabularHeader\endhead
+ \glslongextraDescNameTabularFooter\endfoot
+}
+\newcommand{\glslongextraDescNameTabularHeader}{%
+ \toprule
+ \glslongextraHeaderFmt\descriptionname&
+ \glslongextraHeaderFmt\entryname \tabularnewline
+ \midrule
+}
+\newcommand{\glslongextraDescNameTabularFooter}{%
+ \bottomrule
+}
+\newglossarystyle{long-desc-name}%
+{%
+ \ifGlsLongExtraUseTabular
+ \renewenvironment{theglossary}%
+ {%
+ \glslongextraSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraNameAlign}}%
+ \@glslongextra@begintab
+ }%
+ {%
+ \glslongextraDescNameTabularFooter
+ \end{tabular}%
+ }%
+ \renewcommand*{\glossaryheader}{\glslongextraDescNameTabularHeader}%
+ \else
+ \renewenvironment{theglossary}%
+ {%
+ \glspatchLToutput
+ \glslongextraSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{longtable}{%
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraNameAlign}}%
+ \@glslongextra@begintab
+ }%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\glslongextraDescNameHeader}%
+ \fi
+ \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{2}{##1}}%
+ \renewcommand{\glossentry}[2]{%
+ \glslongextraDescFmt{##1} &
+ \glslongextraNameFmt{##1}\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \glslongextraSubDescFmt{##1}{##2} &
+ \glslongextraSubNameFmt{##1}{##2}\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
+ \fi
+}
+\newcommand{\glslongextraLocationDescNameHeader}{%
+ \glslongextraLocationDescNameTabularHeader\endhead
+ \glslongextraLocationDescNameTabularFooter\endfoot
+}
+\newcommand{\glslongextraLocationDescNameTabularHeader}{%
+ \toprule
+ \glslongextraHeaderFmt\pagelistname&
+ \glslongextraHeaderFmt\descriptionname&
+ \glslongextraHeaderFmt\entryname \tabularnewline
+ \midrule
+}
+\newcommand{\glslongextraLocationDescNameTabularFooter}{%
+ \bottomrule
+}
+\newglossarystyle{long-loc-desc-name}%
+{%
+ \ifGlsLongExtraUseTabular
+ {%
+ \glslongextraLocSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
+ \expandonce\glslongextraLocationAlign
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraNameAlign}}%
+ \@glslongextra@begintab
+ }%
+ {%
+ \glslongextraLocationDescNameTabularFooter
+ \end{tabular}%
+ }%
+ \renewcommand*{\glossaryheader}{\glslongextraLocationDescNameTabularHeader}%
+ \else
+ \renewenvironment{theglossary}%
+ {%
+ \glspatchLToutput
+ \glslongextraLocSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{longtable}{%
+ \expandonce\glslongextraLocationAlign
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraNameAlign}}%
+ \@glslongextra@begintab
+ }%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\glslongextraLocationDescNameHeader}%
+ \fi
+ \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
+ \renewcommand{\glossentry}[2]{%
+ \glslongextraLocationFmt{##1}{##2} &
+ \glslongextraDescFmt{##1} &
+ \glslongextraNameFmt{##1}\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \glslongextraSubLocationFmt{##1}{##2}{##3} &
+ \glslongextraSubDescFmt{##1}{##2} &
+ \glslongextraSubNameFmt{##1}{##2}\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
+ \fi
+}
+\newcommand{\glslongextraNameDescSymHeader}{%
+ \glslongextraNameDescSymTabularHeader\endhead
+ \glslongextraNameDescSymTabularFooter\endfoot
+}
+\newcommand{\glslongextraNameDescSymTabularHeader}{%
+ \toprule
+ \glslongextraHeaderFmt\entryname &
+ \glslongextraHeaderFmt\descriptionname &
+ \glslongextraHeaderFmt\symbolname\tabularnewline
+ \midrule
+}
+\newcommand{\glslongextraNameDescSymTabularFooter}{%
+ \bottomrule
+}
+\newglossarystyle{long-name-desc-sym}%
+{%
+ \ifGlsLongExtraUseTabular
+ \renewenvironment{theglossary}%
+ {%
+ \glslongextraSymSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
+ \expandonce\glslongextraNameAlign
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraSymbolAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {%
+ \glslongextraNameDescSymTabularFooter
+ \end{tabular}%
+ }%
+ \renewcommand*{\glossaryheader}{\glslongextraNameDescSymTabularHeader}%
+ \else
+ \renewenvironment{theglossary}%
+ {%
+ \glspatchLToutput
+ \glslongextraSymSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{longtable}{%
+ \expandonce\glslongextraNameAlign
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraSymbolAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\glslongextraNameDescSymHeader}%
+ \fi
+ \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
+ \renewcommand{\glossentry}[2]{%
+ \glslongextraNameFmt{##1} &
+ \glslongextraDescFmt{##1} &
+ \glslongextraSymbolFmt{##1}\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \glslongextraSubNameFmt{##1}{##2} &
+ \glslongextraSubDescFmt{##1}{##2} &
+ \glslongextraSubSymbolFmt{##1}{##2}%
+ \tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
+ \fi
+}
+\newcommand{\glslongextraNameDescSymLocationHeader}{%
+ \glslongextraNameDescSymLocationTabularHeader\endhead
+ \glslongextraNameDescSymLocationTabularFooter\endfoot
+}
+\newcommand{\glslongextraNameDescSymLocationTabularHeader}{%
+ \toprule
+ \glslongextraHeaderFmt\entryname &
+ \glslongextraHeaderFmt\descriptionname &
+ \glslongextraHeaderFmt\symbolname &
+ \glslongextraHeaderFmt\pagelistname\tabularnewline
+ \midrule
+}
+\newcommand{\glslongextraNameDescSymLocationTabularFooter}{%
+ \bottomrule
+}
+\newglossarystyle{long-name-desc-sym-loc}%
+{%
+ \ifGlsLongExtraUseTabular
+ \renewenvironment{theglossary}%
+ {%
+ \glslongextraSymLocSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
+ \expandonce\glslongextraNameAlign
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraSymbolAlign
+ \expandonce\glslongextraLocationAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {%
+ \glslongextraNameDescSymLocationTabularFooter
+ \end{tabular}%
+ }%
+ \renewcommand*{\glossaryheader}{\glslongextraNameDescSymLocationTabularHeader}%
+ \else
+ \renewenvironment{theglossary}%
+ {%
+ \glspatchLToutput
+ \glslongextraSymLocSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{longtable}{%
+ \expandonce\glslongextraNameAlign
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraSymbolAlign
+ \expandonce\glslongextraLocationAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\glslongextraNameDescSymLocationHeader}%
+ \fi
+ \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{4}{##1}}%
+ \renewcommand{\glossentry}[2]{%
+ \glslongextraNameFmt{##1} &
+ \glslongextraDescFmt{##1} &
+ \glslongextraSymbolFmt{##1}&
+ \glslongextraLocationFmt{##1}{##2}\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \glslongextraSubNameFmt{##1}{##2} &
+ \glslongextraSubDescFmt{##1}{##2} &
+ \glslongextraSubSymbolFmt{##1}{##2}&
+ \glslongextraSubLocationFmt{##1}{##2}{##3}%
+ \tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
+ \fi
+}
+\newcommand{\glslongextraNameSymDescHeader}{%
+ \glslongextraNameSymDescTabularHeader\endhead
+ \glslongextraNameSymDescTabularFooter\endfoot
+}
+\newcommand{\glslongextraNameSymDescTabularHeader}{%
+ \toprule
+ \glslongextraHeaderFmt\entryname &
+ \glslongextraHeaderFmt\symbolname &
+ \glslongextraHeaderFmt\descriptionname\tabularnewline
+ \midrule
+}
+\newcommand{\glslongextraNameSymDescTabularFooter}{%
+ \bottomrule
+}
+\newglossarystyle{long-name-sym-desc}%
+{%
+ \ifGlsLongExtraUseTabular
+ \renewenvironment{theglossary}%
+ {%
+ \glslongextraSymSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
+ \expandonce\glslongextraNameAlign
+ \expandonce\glslongextraSymbolAlign
+ \expandonce\glslongextraDescAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {%
+ \glslongextraNameSymDescTabularFooter
+ \end{tabular}%
+ }%
+ \renewcommand*{\glossaryheader}{\glslongextraNameSymDescTabularHeader}%
+ \else
+ \renewenvironment{theglossary}%
+ {%
+ \glspatchLToutput
+ \glslongextraSymSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{longtable}{%
+ \expandonce\glslongextraNameAlign
+ \expandonce\glslongextraSymbolAlign
+ \expandonce\glslongextraDescAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\glslongextraNameSymDescHeader}%
+ \fi
+ \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
+ \renewcommand{\glossentry}[2]{%
+ \glslongextraNameFmt{##1} &
+ \glslongextraSymbolFmt{##1} &
+ \glslongextraDescFmt{##1}\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \glslongextraSubNameFmt{##1}{##2} &
+ \glslongextraSubSymbolFmt{##1}{##2} &
+ \glslongextraSubDescFmt{##1}{##2}\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
+ \fi
+}
+\newcommand{\glslongextraNameSymDescLocationHeader}{%
+ \glslongextraNameSymDescLocationTabularHeader\endhead
+ \glslongextraNameSymDescLocationTabularFooter\endfoot
+}
+\newcommand{\glslongextraNameSymDescLocationTabularHeader}{%
+ \toprule
+ \glslongextraHeaderFmt\entryname &
+ \glslongextraHeaderFmt\symbolname &
+ \glslongextraHeaderFmt\descriptionname &
+ \glslongextraHeaderFmt\pagelistname\tabularnewline
+ \midrule
+}
+\newcommand{\glslongextraNameSymDescLocationTabularFooter}{%
+ \bottomrule
+}
+\newglossarystyle{long-name-sym-desc-loc}%
+{%
+ \ifGlsLongExtraUseTabular
+ \renewenvironment{theglossary}%
+ {%
+ \glslongextraSymLocSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
+ \expandonce\glslongextraNameAlign
+ \expandonce\glslongextraSymbolAlign
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraLocationAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {%
+ \glslongextraNameSymDescLocationTabularFooter
+ \end{tabular}%
+ }%
+ \renewcommand*{\glossaryheader}{\glslongextraNameSymDescLocationTabularHeader}%
+ \else
+ \renewenvironment{theglossary}%
+ {%
+ \glspatchLToutput
+ \glslongextraSymLocSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{longtable}{%
+ \expandonce\glslongextraNameAlign
+ \expandonce\glslongextraSymbolAlign
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraLocationAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\glslongextraNameSymDescLocationHeader}%
+ \fi
+ \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{4}{##1}}%
+ \renewcommand{\glossentry}[2]{%
+ \glslongextraNameFmt{##1} &
+ \glslongextraSymbolFmt{##1} &
+ \glslongextraDescFmt{##1} &
+ \glslongextraLocationFmt{##1}{##2}\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \glslongextraSubNameFmt{##1}{##2} &
+ \glslongextraSubSymbolFmt{##1}{##2} &
+ \glslongextraSubDescFmt{##1}{##2} &
+ \glslongextraSubLocationFmt{##1}{##2}{##3}\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
+ \fi
+}
+\newcommand{\glslongextraSymDescNameHeader}{%
+ \glslongextraSymDescNameTabularHeader\endhead
+ \glslongextraSymDescNameTabularFooter\endfoot
+}
+\newcommand{\glslongextraSymDescNameTabularHeader}{%
+ \toprule
+ \glslongextraHeaderFmt\symbolname &
+ \glslongextraHeaderFmt\descriptionname &
+ \glslongextraHeaderFmt\entryname\tabularnewline
+ \midrule
+}
+\newcommand{\glslongextraSymDescNameTabularFooter}{%
+ \bottomrule
+}
+\newglossarystyle{long-sym-desc-name}%
+{%
+ \ifGlsLongExtraUseTabular
+ \renewenvironment{theglossary}%
+ {%
+ \glslongextraSymSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
+ \expandonce\glslongextraSymbolAlign
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraNameAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {%
+ \glslongextraSymDescNameTabularFooter
+ \end{tabular}%
+ }%
+ \renewcommand*{\glossaryheader}{\glslongextraSymDescNameTabularHeader}%
+ \else
+ \renewenvironment{theglossary}%
+ {%
+ \glspatchLToutput
+ \glslongextraSymSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{longtable}{%
+ \expandonce\glslongextraSymbolAlign
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraNameAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\glslongextraSymDescNameHeader}%
+ \fi
+ \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
+ \renewcommand{\glossentry}[2]{%
+ \glslongextraSymbolFmt{##1} &
+ \glslongextraDescFmt{##1} &
+ \glslongextraNameFmt{##1}\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \glslongextraSubSymbolFmt{##1}{##2} &
+ \glslongextraSubDescFmt{##1}{##2} &
+ \glslongextraSubNameFmt{##1}{##2}\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
+ \fi
+}
+\newcommand{\glslongextraLocationSymDescNameHeader}{%
+ \glslongextraLocationSymDescNameTabularHeader\endhead
+ \glslongextraLocationSymDescNameTabularFooter\endfoot
+}
+\newcommand{\glslongextraLocationSymDescNameTabularHeader}{%
+ \toprule
+ \glslongextraHeaderFmt\pagelistname &
+ \glslongextraHeaderFmt\symbolname &
+ \glslongextraHeaderFmt\descriptionname &
+ \glslongextraHeaderFmt\entryname\tabularnewline
+ \midrule
+}
+\newcommand{\glslongextraLocationSymDescNameTabularFooter}{%
+ \bottomrule
+}
+\newglossarystyle{long-loc-sym-desc-name}%
+{%
+ \ifGlsLongExtraUseTabular
+ \renewenvironment{theglossary}%
+ {%
+ \glslongextraSymLocSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
+ \expandonce\glslongextraLocationAlign
+ \expandonce\glslongextraSymbolAlign
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraNameAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {%
+ \glslongextraLocationSymDescNameTabularFooter
+ \end{tabular}%
+ }%
+ \renewcommand*{\glossaryheader}{\glslongextraLocationSymDescNameTabularHeader}%
+ \else
+ \renewenvironment{theglossary}%
+ {%
+ \glspatchLToutput
+ \glslongextraSymLocSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{longtable}{%
+ \expandonce\glslongextraLocationAlign
+ \expandonce\glslongextraSymbolAlign
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraNameAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\glslongextraLocationSymDescNameHeader}%
+ \fi
+ \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{4}{##1}}%
+ \renewcommand{\glossentry}[2]{%
+ \glslongextraLocationFmt{##1}{##2} &
+ \glslongextraSymbolFmt{##1} &
+ \glslongextraDescFmt{##1} &
+ \glslongextraNameFmt{##1}\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \glslongextraSubLocationFmt{##1}{##2}{##3} &
+ \glslongextraSubSymbolFmt{##1}{##2} &
+ \glslongextraSubDescFmt{##1}{##2} &
+ \glslongextraSubNameFmt{##1}{##2}\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
+ \fi
+}
+\newcommand{\glslongextraDescSymNameHeader}{%
+ \glslongextraDescSymNameTabularHeader\endhead
+ \glslongextraDescSymNameTabularFooter\endfoot
+}
+\newcommand{\glslongextraDescSymNameTabularHeader}{%
+ \toprule
+ \glslongextraHeaderFmt\descriptionname &
+ \glslongextraHeaderFmt\symbolname &
+ \glslongextraHeaderFmt\entryname\tabularnewline
+ \midrule
+}
+\newcommand{\glslongextraDescSymNameTabularFooter}{%
+ \bottomrule
+}
+\newglossarystyle{long-desc-sym-name}%
+{%
+ \ifGlsLongExtraUseTabular
+ \renewenvironment{theglossary}%
+ {%
+ \glslongextraSymSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraSymbolAlign
+ \expandonce\glslongextraNameAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {%
+ \glslongextraDescSymNameTabularFooter
+ \end{tabular}%
+ }%
+ \renewcommand*{\glossaryheader}{\glslongextraDescSymNameTabularHeader}%
+ \else
+ \renewenvironment{theglossary}%
+ {%
+ \glspatchLToutput
+ \glslongextraSymSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{longtable}{%
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraSymbolAlign
+ \expandonce\glslongextraNameAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\glslongextraDescSymNameHeader}%
+ \fi
+ \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
+ \renewcommand{\glossentry}[2]{%
+ \glslongextraDescFmt{##1} &
+ \glslongextraSymbolFmt{##1} &
+ \glslongextraNameFmt{##1}\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \glslongextraSubDescFmt{##1}{##2} &
+ \glslongextraSubSymbolFmt{##1}{##2} &
+ \glslongextraSubNameFmt{##1}{##2}\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
+ \fi
+}
+\newcommand{\glslongextraLocationDescSymNameHeader}{%
+ \glslongextraLocationDescSymNameTabularHeader\endhead
+ \glslongextraLocationDescSymNameTabularFooter\endfoot
+}
+\newcommand{\glslongextraLocationDescSymNameTabularHeader}{%
+ \toprule
+ \glslongextraHeaderFmt\pagelistname &
+ \glslongextraHeaderFmt\descriptionname &
+ \glslongextraHeaderFmt\symbolname &
+ \glslongextraHeaderFmt\entryname\tabularnewline
+ \midrule
+}
+\newcommand{\glslongextraLocationDescSymNameTabularFooter}{%
+ \bottomrule
+}
+\newglossarystyle{long-loc-desc-sym-name}%
+{%
+ \ifGlsLongExtraUseTabular
+ \renewenvironment{theglossary}%
+ {%
+ \glslongextraSymLocSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
+ \expandonce\glslongextraLocationAlign
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraSymbolAlign
+ \expandonce\glslongextraNameAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {%
+ \glslongextraLocationDescSymNameTabularFooter
+ \end{tabular}%
+ }%
+ \renewcommand*{\glossaryheader}{\glslongextraLocationDescSymNameTabularHeader}%
+ \else
+ \renewenvironment{theglossary}%
+ {%
+ \glspatchLToutput
+ \glslongextraSymLocSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{longtable}{%
+ \expandonce\glslongextraLocationAlign
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraSymbolAlign
+ \expandonce\glslongextraNameAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\glslongextraLocationDescSymNameHeader}%
+ \fi
+ \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{4}{##1}}%
+ \renewcommand{\glossentry}[2]{%
+ \glslongextraLocationFmt{##1}{##2} &
+ \glslongextraDescFmt{##1} &
+ \glslongextraSymbolFmt{##1} &
+ \glslongextraNameFmt{##1}\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \glslongextraSubLocationFmt{##1}{##2}{##3} &
+ \glslongextraSubDescFmt{##1}{##2} &
+ \glslongextraSubSymbolFmt{##1}{##2} &
+ \glslongextraSubNameFmt{##1}{##2}\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
+ \fi
+}
+\endinput
+%%
+%% End of file `glossary-longextra-2021-11-22.sty'.
diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-longextra.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-longextra.sty
index a69976433a3..364aa72fe05 100644
--- a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-longextra.sty
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-longextra.sty
@@ -7,7 +7,7 @@
%% glossaries-extra.dtx (with options: `glossary-longextra.sty,package')
%%
%% glossaries-extra.dtx
-%% Copyright 2021 Nicola Talbot
+%% Copyright 2022 Nicola Talbot
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -21,7 +21,7 @@
%%
%% The Current Maintainer of this work is Nicola Talbot.
%%
-%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib.
+%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-abbrstyles.def, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, glossary-table.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib, glossaries-extra-2021-11-22.sty, glossaries-extra-bib2gls-2021-11-22.sty, glossaries-extra-stylemods-2021-11-22.sty, glossary-bookindex-2021-11-22.sty, glossary-longextra-2021-11-22.sty, glossary-topic-2021-11-22.sty.
%%
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -39,7 +39,9 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossary-longextra}[2021/11/22 v1.48 (NLCT)]
+\DeclareRelease{v1.48}{2021-11-22}{glossary-longextra-2021-11-22.sty}
+\DeclareCurrentRelease{v1.49}{2022-10-14}
+\ProvidesPackage{glossary-longextra}[2022/10/14 v1.49 (NLCT)]
\RequirePackage{glossary-longbooktabs}
\newcommand{\glslongextraNameFmt}[1]{%
\glsentryitem{#1}\glstarget{#1}{\glossentryname{#1}}%
@@ -48,7 +50,21 @@
\glossentrydesc{#1}\glspostdescription
}
\newcommand{\glslongextraSymbolFmt}[1]{\glossentrysymbol{#1}}
+\newcommand{\glslongextraSymbolTargetFmt}[1]{%
+ \glsentryitem{#1}\glstarget{#1}{\glslongextraSymbolFmt{#1}}}
+\newcommand{\glslongextraSymbolOrName}[1]{%
+ \ifglshassymbol{#1}%
+ {\glslongextraSymbolTargetFmt{#1}}%
+ {\glslongextraNameFmt{#1}}%
+}
\newcommand{\glslongextraLocationFmt}[2]{#2}
+\newcommand{\glslongextraShortTargetFmt}[1]{%
+ \glsentryitem{#1}\glstarget{#1}{{\glsxtrshort[noindex,hyper=false]{#1}}}%
+ \glsxtrpostnamehook{#1}%
+}
+\newcommand{\glslongextraLongFmt}[1]{%
+ {\glsxtrlong[noindex,hyper=false]{#1}}\glspostdescription
+}
\newcommand{\glslongextraSubNameFmt}[2]{%
\glssubentryitem{#2}\glstarget{#2}{\strut}%
}
@@ -58,12 +74,27 @@
\newcommand{\glslongextraSubSymbolFmt}[2]{%
\glslongextraSymbolFmt{#2}%
}
+\newcommand{\glslongextraSubSymbolTargetFmt}[2]{%
+ \glssubentryitem{#2}\glstarget{#2}{\glslongextraSymbolFmt{#2}}%
+}
+\newcommand{\glslongextraSubSymbolOrName}[2]{%
+ \ifglshassymbol{#2}%
+ {\glslongextraSubSymbolTargetFmt{#1}{#2}}%
+ {\glslongextraSubNameFmt{#1}{#2}}%
+}
+\newcommand{\glslongextraSubShortTargetFmt}[2]{%
+ \glssubentryitem{#2}\glstarget{#2}{{\glsxtrshort[noindex,hyper=false]{#2}}}%
+ \glsxtrpostnamehook{#2}%
+}
+\newcommand{\glslongextraSubLongFmt}[2]{\glslongextraLongFmt{#2}}
\newcommand{\glslongextraSubLocationFmt}[3]{#3}
\newcommand{\glslongextraNameAlign}{l}
\newcommand{\glslongextraDescAlign}{>{\raggedright}p{\glsdescwidth}}
\newcommand{\glslongextraSymbolAlign}{c}
+\newcommand{\glslongextraSymbolNameAlign}{l}
\newcommand{\glslongextraLocationAlign}{>{\raggedright}p{\glspagelistwidth}}
\newcommand{\glslongextraGroupHeading}[2]{}
+\newcommand*{\glslongextraSubGroupHeading}[5]{}
\newcommand{\glslongextraHeaderFmt}[1]{\textbf{#1}}
\newcommand{\glslongextraNameDescHeader}{%
\glslongextraNameDescTabularHeader\endhead
@@ -107,6 +138,10 @@
\settowidth{\gls@tmplen}{\glslongextraHeaderFmt\symbolname}%
\setlength{\glsdescwidth}{\dimexpr\glsdescwidth-2\tabcolsep-\gls@tmplen}%
}
+\newcommand{\glslongextraSymNoNameSetDescWidth}{%
+ \settowidth{\gls@tmplen}{\glslongextraHeaderFmt\symbolname}%
+ \setlength{\glsdescwidth}{\dimexpr\linewidth-4\tabcolsep-\gls@tmplen}%
+}
\newcommand{\glslongextraLocSetDescWidth}{%
\glslongextraSetDescWidth
\setlength{\glsdescwidth}{\dimexpr\glsdescwidth-2\tabcolsep-\glspagelistwidth}%
@@ -115,6 +150,10 @@
\glslongextraSymSetDescWidth
\setlength{\glsdescwidth}{\dimexpr\glsdescwidth-2\tabcolsep-\glspagelistwidth}%
}
+\newcommand{\glslongextraShortNoNameSetDescWidth}{%
+ \settowidth{\gls@tmplen}{\glslongextraHeaderFmt\glslongextraShortHeader}%
+ \setlength{\glsdescwidth}{\dimexpr\linewidth-4\tabcolsep-\gls@tmplen}%
+}
\newif\ifGlsLongExtraUseTabular
\GlsLongExtraUseTabularfalse
\newcommand*{\glslongextraTabularVAlign}{c}
@@ -150,6 +189,7 @@
\renewcommand*{\glossaryheader}{\glslongextraNameDescHeader}%
\fi
\renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{2}{##1}}%
+ \renewcommand*{\glssubgroupheading}{\glslongextraSubGroupHeading{2}}%
\renewcommand{\glossentry}[2]{%
\glslongextraNameFmt{##1} &
\glslongextraDescFmt{##1}\tabularnewline
@@ -216,6 +256,7 @@
\renewcommand*{\glossaryheader}{\glslongextraNameDescLocationHeader}%
\fi
\renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
+ \renewcommand*{\glssubgroupheading}{\glslongextraSubGroupHeading{3}}%
\renewcommand{\glossentry}[2]{%
\glslongextraNameFmt{##1} &
\glslongextraDescFmt{##1} &
@@ -278,6 +319,7 @@
\renewcommand*{\glossaryheader}{\glslongextraDescNameHeader}%
\fi
\renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{2}{##1}}%
+ \renewcommand*{\glssubgroupheading}{\glslongextraSubGroupHeading{2}}%
\renewcommand{\glossentry}[2]{%
\glslongextraDescFmt{##1} &
\glslongextraNameFmt{##1}\tabularnewline
@@ -339,6 +381,7 @@
\renewcommand*{\glossaryheader}{\glslongextraLocationDescNameHeader}%
\fi
\renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
+ \renewcommand*{\glssubgroupheading}{\glslongextraSubGroupHeading{3}}%
\renewcommand{\glossentry}[2]{%
\glslongextraLocationFmt{##1}{##2} &
\glslongextraDescFmt{##1} &
@@ -405,6 +448,7 @@
\renewcommand*{\glossaryheader}{\glslongextraNameDescSymHeader}%
\fi
\renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
+ \renewcommand*{\glssubgroupheading}{\glslongextraSubGroupHeading{3}}%
\renewcommand{\glossentry}[2]{%
\glslongextraNameFmt{##1} &
\glslongextraDescFmt{##1} &
@@ -475,6 +519,7 @@
\renewcommand*{\glossaryheader}{\glslongextraNameDescSymLocationHeader}%
\fi
\renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{4}{##1}}%
+ \renewcommand*{\glssubgroupheading}{\glslongextraSubGroupHeading{4}}%
\renewcommand{\glossentry}[2]{%
\glslongextraNameFmt{##1} &
\glslongextraDescFmt{##1} &
@@ -544,6 +589,7 @@
\renewcommand*{\glossaryheader}{\glslongextraNameSymDescHeader}%
\fi
\renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
+ \renewcommand*{\glssubgroupheading}{\glslongextraSubGroupHeading{3}}%
\renewcommand{\glossentry}[2]{%
\glslongextraNameFmt{##1} &
\glslongextraSymbolFmt{##1} &
@@ -613,6 +659,7 @@
\renewcommand*{\glossaryheader}{\glslongextraNameSymDescLocationHeader}%
\fi
\renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{4}{##1}}%
+ \renewcommand*{\glssubgroupheading}{\glslongextraSubGroupHeading{4}}%
\renewcommand{\glossentry}[2]{%
\glslongextraNameFmt{##1} &
\glslongextraSymbolFmt{##1} &
@@ -681,6 +728,7 @@
\renewcommand*{\glossaryheader}{\glslongextraSymDescNameHeader}%
\fi
\renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
+ \renewcommand*{\glssubgroupheading}{\glslongextraSubGroupHeading{3}}%
\renewcommand{\glossentry}[2]{%
\glslongextraSymbolFmt{##1} &
\glslongextraDescFmt{##1} &
@@ -750,6 +798,7 @@
\renewcommand*{\glossaryheader}{\glslongextraLocationSymDescNameHeader}%
\fi
\renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{4}{##1}}%
+ \renewcommand*{\glssubgroupheading}{\glslongextraSubGroupHeading{4}}%
\renewcommand{\glossentry}[2]{%
\glslongextraLocationFmt{##1}{##2} &
\glslongextraSymbolFmt{##1} &
@@ -818,6 +867,7 @@
\renewcommand*{\glossaryheader}{\glslongextraDescSymNameHeader}%
\fi
\renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
+ \renewcommand*{\glssubgroupheading}{\glslongextraSubGroupHeading{3}}%
\renewcommand{\glossentry}[2]{%
\glslongextraDescFmt{##1} &
\glslongextraSymbolFmt{##1} &
@@ -887,6 +937,7 @@
\renewcommand*{\glossaryheader}{\glslongextraLocationDescSymNameHeader}%
\fi
\renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{4}{##1}}%
+ \renewcommand*{\glssubgroupheading}{\glslongextraSubGroupHeading{4}}%
\renewcommand{\glossentry}[2]{%
\glslongextraLocationFmt{##1}{##2} &
\glslongextraDescFmt{##1} &
@@ -905,6 +956,280 @@
\renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
\fi
}
+\newglossarystyle{long-sym-desc}%
+{%
+ \ifGlsLongExtraUseTabular
+ \renewenvironment{theglossary}%
+ {%
+ \glslongextraSymNoNameSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
+ \expandonce\glslongextraSymbolNameAlign
+ \expandonce\glslongextraDescAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {%
+ \glslongextraSymDescTabularFooter
+ \end{tabular}%
+ }%
+ \renewcommand*{\glossaryheader}{\glslongextraSymDescTabularHeader}%
+ \else
+ \renewenvironment{theglossary}%
+ {%
+ \glspatchLToutput
+ \glslongextraSymNoNameSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{longtable}{%
+ \expandonce\glslongextraSymbolNameAlign
+ \expandonce\glslongextraDescAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\glslongextraSymDescHeader}%
+ \fi
+ \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
+ \renewcommand*{\glssubgroupheading}{\glslongextraSubGroupHeading{3}}%
+ \renewcommand{\glossentry}[2]{%
+ \glslongextraSymbolOrName{##1} &
+ \glslongextraDescFmt{##1}\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \glslongextraSubSymbolOrName{##1}{##2} &
+ \glslongextraSubDescFmt{##1}{##2}\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
+ \fi
+}
+\newcommand{\glslongextraSymDescHeader}{%
+ \glslongextraSymDescTabularHeader\endhead
+ \glslongextraSymDescTabularFooter\endfoot
+}
+\newcommand{\glslongextraSymDescTabularHeader}{%
+ \toprule
+ \glslongextraHeaderFmt\symbolname &
+ \glslongextraHeaderFmt\descriptionname\tabularnewline
+ \midrule
+}
+\newcommand{\glslongextraSymDescTabularFooter}{%
+ \bottomrule
+}
+\newglossarystyle{long-desc-sym}%
+{%
+ \ifGlsLongExtraUseTabular
+ \renewenvironment{theglossary}%
+ {%
+ \glslongextraSymNoNameSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraSymbolNameAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {%
+ \glslongextraDescSymTabularFooter
+ \end{tabular}%
+ }%
+ \renewcommand*{\glossaryheader}{\glslongextraDescSymTabularHeader}%
+ \else
+ \renewenvironment{theglossary}%
+ {%
+ \glspatchLToutput
+ \glslongextraSymNoNameSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{longtable}{%
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraSymbolNameAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\glslongextraDescSymHeader}%
+ \fi
+ \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
+ \renewcommand*{\glssubgroupheading}{\glslongextraSubGroupHeading{3}}%
+ \renewcommand{\glossentry}[2]{%
+ \glslongextraDescFmt{##1} &
+ \glslongextraSymbolOrName{##1}\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \glslongextraSubDescFmt{##1}{##2} &
+ \glslongextraSubSymbolOrName{##1}{##2}\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
+ \fi
+}
+\newcommand{\glslongextraDescSymHeader}{%
+ \glslongextraDescSymTabularHeader\endhead
+ \glslongextraDescSymTabularFooter\endfoot
+}
+\newcommand{\glslongextraDescSymTabularHeader}{%
+ \toprule
+ \glslongextraHeaderFmt\descriptionname &
+ \glslongextraHeaderFmt\symbolname\tabularnewline
+ \midrule
+}
+\newcommand{\glslongextraDescSymTabularFooter}{%
+ \bottomrule
+}
+\newglossarystyle{abbr-short-long}%
+{%
+ \ifGlsLongExtraUseTabular
+ \renewenvironment{theglossary}%
+ {%
+ \glslongextraShortNoNameSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
+ \expandonce\glslongextraNameAlign
+ \expandonce\glslongextraDescAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {%
+ \glslongextraShortLongTabularFooter
+ \end{tabular}%
+ }%
+ \renewcommand*{\glossaryheader}{\glslongextraShortLongTabularHeader}%
+ \else
+ \renewenvironment{theglossary}%
+ {%
+ \glspatchLToutput
+ \glslongextraShortNoNameSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{longtable}{%
+ \expandonce\glslongextraNameAlign
+ \expandonce\glslongextraDescAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\glslongextraShortLongHeader}%
+ \fi
+ \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
+ \renewcommand*{\glssubgroupheading}{\glslongextraSubGroupHeading{3}}%
+ \renewcommand{\glossentry}[2]{%
+ \ifglshasshort{##1}%
+ {\glslongextraShortTargetFmt{##1}}%
+ {\glslongextraNameFmt{##1}}%
+ &
+ \ifglshaslong{##1}%
+ {\glslongextraLongFmt{##1}}%
+ {\glslongextraDescFmt{##1}}%
+ \tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \ifglshasshort{##2}%
+ {\glslongextraSubShortTargetFmt{##1}{##2}}%
+ {\glslongextraSubNameFmt{##1}{##2}}%
+ &
+ \ifglshaslong{##2}%
+ {\glslongextraSubLongFmt{##1}{##2}}%
+ {\glslongextraSubDescFmt{##1}{##2}}%
+ \tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
+ \fi
+}
+\newcommand{\glslongextraShortLongHeader}{%
+ \glslongextraShortLongTabularHeader\endhead
+ \glslongextraShortLongTabularFooter\endfoot
+}
+\newcommand{\glslongextraShortHeader}{\entryname}
+\newcommand{\glslongextraLongHeader}{\descriptionname}
+\newcommand{\glslongextraShortLongTabularHeader}{%
+ \toprule
+ \glslongextraHeaderFmt\glslongextraShortHeader &
+ \glslongextraHeaderFmt\glslongextraLongHeader\tabularnewline
+ \midrule
+}
+\newcommand{\glslongextraShortLongTabularFooter}{%
+ \bottomrule
+}
+\newglossarystyle{abbr-long-short}%
+{%
+ \ifGlsLongExtraUseTabular
+ \renewenvironment{theglossary}%
+ {%
+ \glslongextraShortNoNameSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{tabular}[\glslongextraTabularVAlign]{%
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraNameAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {%
+ \glslongextraLongShortTabularFooter
+ \end{tabular}%
+ }%
+ \renewcommand*{\glossaryheader}{\glslongextraLongShortTabularHeader}%
+ \else
+ \renewenvironment{theglossary}%
+ {%
+ \glspatchLToutput
+ \glslongextraShortNoNameSetDescWidth
+ \edef\@glslongextra@begintab{%
+ \noexpand\begin{longtable}{%
+ \expandonce\glslongextraDescAlign
+ \expandonce\glslongextraNameAlign
+ }}%
+ \@glslongextra@begintab
+ }%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{\glslongextraLongShortHeader}%
+ \fi
+ \renewcommand*{\glsgroupheading}[1]{\glslongextraGroupHeading{3}{##1}}%
+ \renewcommand*{\glssubgroupheading}{\glslongextraSubGroupHeading{3}}%
+ \renewcommand{\glossentry}[2]{%
+ \ifglshaslong{##1}%
+ {\glslongextraLongFmt{##1}}%
+ {\glslongextraDescFmt{##1}}%
+ &
+ \ifglshasshort{##1}%
+ {\glslongextraShortTargetFmt{##1}}%
+ {\glslongextraNameFmt{##1}}%
+ \tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \ifglshaslong{##2}%
+ {\glslongextraSubLongFmt{##1}{##2}}%
+ {\glslongextraSubDescFmt{##1}{##2}}%
+ &
+ \ifglshasshort{##2}%
+ {\glslongextraSubShortTargetFmt{##1}{##2}}%
+ {\glslongextraSubNameFmt{##1}{##2}}%
+ \tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{\glspenaltygroupskip}%
+ \fi
+}
+\newcommand{\glslongextraLongShortHeader}{%
+ \glslongextraLongShortTabularHeader\endhead
+ \glslongextraLongShortTabularFooter\endfoot
+}
+\newcommand{\glslongextraLongShortTabularHeader}{%
+ \toprule
+ \glslongextraHeaderFmt\glslongextraLongHeader &
+ \glslongextraHeaderFmt\glslongextraShortHeader\tabularnewline
+ \midrule
+}
+\newcommand{\glslongextraLongShortTabularFooter}{%
+ \bottomrule
+}
\endinput
%%
%% End of file `glossary-longextra.sty'.
diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-table.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-table.sty
new file mode 100644
index 00000000000..e2fec653505
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-table.sty
@@ -0,0 +1,925 @@
+%%
+%% This is file `glossary-table.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries-extra.dtx (with options: `glossary-table.sty,package')
+%%
+%% glossaries-extra.dtx
+%% Copyright 2022 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-abbrstyles.def, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, glossary-table.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib, glossaries-extra-2021-11-22.sty, glossaries-extra-bib2gls-2021-11-22.sty, glossaries-extra-stylemods-2021-11-22.sty, glossary-bookindex-2021-11-22.sty, glossary-longextra-2021-11-22.sty, glossary-topic-2021-11-22.sty.
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{glossary-table}[2022/10/14 v1.49 (NLCT)]
+\RequirePackage{glossary-longbooktabs}
+\newcount\glstableblockperrowcount
+\glstableblockperrowcount=2\relax
+\define@key{printglosstable}{blocks}{\glstableblockperrowcount=#1\relax}
+\newcount\glstablecurrentblockindex
+\newcount\glstabletotalcols
+\glstabletotalcols=4\relax
+\newcommand{\glstablenameheader}{\entryname}
+\newcommand{\glstabledescheader}{\descriptionname}
+\newcommand{\glstableotherheader}{\MFUsentencecase{\glstableotherfield}}
+\newcommand{\glstablesymbolheader}{\symbolname}
+\define@boolkey{printglosstable}{header}[true]{}
+\KV@printglosstable@headertrue
+\define@boolkey{printglosstable}{rules}[true]{}
+\KV@printglosstable@rulestrue
+\define@key{printglosstable}{blocksep}{\renewcommand{\glstable@blockalignsep}{#1}}
+\newcommand{\glstable@blockalignsep}{|}
+\newenvironment{glstablesubentries}{\begin{tabular}[t]{l}}{\end{tabular}}
+\newcommand{\glstablePreChildren}{\glstableifpar{\par}}
+\newcommand{\glstableblocksubentrysep}{\\}
+\define@choicekey{printglosstable}{par}
+[\@glstable@par@val\@glstable@par@n]
+{false,justified,ragged}
+{%
+ \ifcase\@glstable@par@n
+ \renewcommand{\glstable@parcase}[3]{##1}%
+ \or
+ \renewcommand{\glstable@parcase}[3]{##2}%
+ \or
+ \renewcommand{\glstable@parcase}[3]{##3}%
+ \fi
+}
+\newcommand{\glstable@parcase}[3]{#1}
+\newcommand{\glstableifpar}[1]{\glstable@parcase{}{#1}{#1}}
+\newcommand{\glstableleftalign}[1]{%
+ \glstable@parcase{l}{p{#1}}{>{\protect\raggedright}p{#1}}%
+}
+\newcommand{\glstablerightalign}[1]{%
+ \glstable@parcase{r}{p{#1}}{>{\protect\raggedleft}p{#1}}%
+}
+\newcommand{\glstablecenteralign}[1]{%
+ \glstable@parcase{c}{p{#1}}{>{\protect\centering}p{#1}}%
+}
+\newcommand{\glstablenamecolalign}{\glstableleftalign{\glstablenamewidth}}
+\newcommand{\glstabledesccolalign}{\glstableleftalign{\glstabledescwidth}}
+\newcommand{\glstablesymbolcolalign}{\glstablecenteralign{\glstablesymbolwidth}}
+\newcommand{\glstableNameTarget}[1]{%
+ \glstarget{#1}{\glstableNameFmt{#1}}%
+}
+\newcommand{\glstableNameFmt}[1]{\glsentryitem{#1}\glossentryname{#1}}
+\newcommand{\glstableSubNameTarget}[1]{%
+ \glstarget{#1}{\glstableSubNameFmt{#1}}%
+}
+\newcommand{\glstableSubNameFmt}[1]{%
+ \glssubentryitem{#1}%
+}
+\newcommand{\glstableotherfield}{}
+\define@key{printglosstable}{other}{\renewcommand{\glstableotherfield}{#1}}
+\newcommand{\glstableOther}[1]{%
+ \glsxtrusefield{#1}{\glstableotherfield}}
+\newcommand{\glstableNameSingleFmt}[1]{%
+ \glstableNameTarget{#1}%
+ \ifglshasdesc{#1}%
+ {%
+ \glstableNameSinglePostName
+ \glstableNameSingleSuppl
+ {%
+ \ifglshassymbol{#1}%
+ {\glstableSymbolFmt{#1}\glstableNameSingleSymSep}%
+ {}%
+ \ifdefempty\glstableotherfield{}%
+ {%
+ \GlsXtrIfFieldUndef{\glstableotherfield}{#1}{}%
+ {\glstableOther{#1}\glstableOtherSep}%
+ }%
+ \glstableDescFmt{#1}%
+ }%
+ }%
+ {%
+ \ifglshassymbol{#1}%
+ {%
+ \glstableNameSinglePostName
+ \glstableNameSingleSuppl{\glstableSymbolFmt{#1}}%
+ \ifdefempty\glstableotherfield{}%
+ {%
+ \GlsXtrIfFieldUndef{\glstableotherfield}{#1}{}%
+ {\glstableNameSingleSymSep\glstableOther{#1}}%
+ }%
+ }%
+ {%
+ \ifdefempty\glstableotherfield{}%
+ {%
+ \glstableNameSinglePostName
+ \GlsXtrIfFieldUndef{\glstableotherfield}{#1}{}%
+ {\glstableOther{#1}}%
+ }%
+ }%
+ }%
+}
+\newcommand{\glstableNameSingleSuppl}[1]{(#1)}
+\newcommand{\glstableNameSinglePostName}{ }
+\newcommand{\glstableNameSingleSymSep}{ }
+\newcommand{\glstableOtherSep}{, }
+\newcommand{\glstableSubNameSingleFmt}[1]{%
+ \glstableSubNameTarget{#1}%
+ \GlsXtrIfFieldUndef{desc}{#1}{}%
+ {%
+ \GlsXtrIfFieldUndef{symbol}{#1}{}{}%
+ {%
+ \glstableNameSinglePostSubName
+ \glstableNameSingleSubSuppl{\glstableSubSymbolFmt{#1}}%
+ }%
+ }%
+ {%
+ \glstableNameSinglePostSubName
+ \glstableNameSingleSubSuppl
+ {%
+ \GlsXtrIfFieldUndef{symbol}{#1}{}%
+ {\glstableSubSymbolFmt{#1}\glstableNameSingleSymSep}%
+ \glstableSubDescFmt{#1}%
+ }%
+ }%
+}
+\newcommand{\glstableNameSingleSubSuppl}[1]{#1}
+\newcommand{\glstableNameSinglePostSubName}{ }
+\newcommand{\glstableNameNoDesc}[1]{%
+ \glstableNameTarget{#1}%
+ \ifdefempty\glstableotherfield{}%
+ {%
+ \GlsXtrIfFieldUndef{\glstableotherfield}{#1}{}%
+ {\glstableOtherSep\glstableOther{#1}}%
+ }%
+}
+\newcommand{\glstableSubNameNoDesc}[1]{%
+ \glstableSubNameTarget{#1}%
+ \ifdefempty\glstableotherfield{}%
+ {%
+ \GlsXtrIfFieldUndef{\glstableotherfield}{#1}{}%
+ {\glstableOtherSep\glstableOther{#1}}%
+ }%
+}
+\newcommand{\glstableSymbolFmt}[1]{\glossentrysymbol{#1}}
+\newcommand{\glstableSubSymbolFmt}[1]{\glstableSymbolFmt{#1}}
+\newcommand{\glstableSymbolNameTarget}[1]{%
+ \glstarget{#1}{\glstableSymbolNameFmt{#1}}%
+}
+\newcommand{\glstableSymbolNameFmt}[1]{\glsentryitem{#1}\glossentrysymbol{#1}}
+\newcommand{\glstableSubSymbolNameTarget}[1]{%
+ \glstarget{#1}{\glstableSubSymbolNameFmt{#1}}%
+}
+\newcommand{\glstableSubSymbolNameFmt}[1]{\glssubentryitem{#1}}
+\newcommand{\glstableDesc}[1]{%
+ \ifdefempty\glstableotherfield{}%
+ {%
+ \GlsXtrIfFieldUndef{\glstableotherfield}{#1}{}%
+ {\glstableOther{#1}\ifglshasdesc{#1}{\glstableOtherSep}{}}%
+ }%
+ \glstableDescFmt{#1}%
+}
+\newcommand{\glstableDescFmt}[1]{\glossentrydesc{#1}\glspostdescription}
+\newcommand{\glstableSubDesc}[1]{\glstableDesc{#1}}
+\newcommand{\glstableSubDescFmt}[1]{\glstableDescFmt{#1}}
+\newcommand{\glstableOtherNoDesc}[1]{%
+ \ifdefempty\glstableotherfield{}%
+ {%
+ \GlsXtrIfFieldUndef{\glstableotherfield}{#1}{}%
+ {\glstableOther{#1}}%
+ }%
+}
+\newcommand{\glstableSubOtherNoDesc}[1]{%
+ \glstableOtherNoDesc{#1}%
+}
+\newcommand{\glstableHeaderFmt}[1]{\textbf{#1}}
+\define@key{printglosstable}{block-style}
+{\glstablesetstyle{#1}}
+\newcount\glstablecolsperblock
+\glstablecolsperblock=2\relax
+\newcommand{\glstableblockheader}{}
+\newcommand{\glstableblockalign}{}
+\newcommand{\glstableblockentry}[1]{}
+\newcommand{\glstableblocksubentry}[1]{}
+\newcommand{\glstableinitlengthupdates}{}
+\newcommand{\glstablelengthupdate}[1]{}
+\newcommand{\glstablefinishlengthupdates}{}
+\newcommand{\glstablesetstyle}[1]{%
+ \ifcsdef{@glstable@style@#1}%
+ {\csuse{@glstable@style@#1}}%
+ {\PackageError{glossary-table}{Unknown style `#1'}{}}%
+}
+\newcommand{\glstablenewstyle}[2]{%
+ \ifcsdef{@glstable@style@#1}%
+ {\PackageError{glossary-table}{style `#1' already defined}{}}%
+ {\csdef{@glstable@style@#1}{#2}}%
+}
+\glstablenewstyle{name-desc}{%
+ \glstablecolsperblock=2\relax
+ \renewcommand{\glstableinitlengthupdates}{%
+ \ifKV@printglosstable@header
+ \settowidth{\glstablenamewidth}%
+ {\glstableHeaderFmt\glstablenameheader}%
+ \else
+ \setlength{\glstablenamewidth}{0pt}%
+ \fi
+ \setlength{\glstabledescwidth}{0pt}%
+ }%
+ \renewcommand{\glstablelengthupdate}[1]{%
+ \glstablemeasureandupdate{\glstablenamewidth}{\glstableNameFmt{##1}}%
+ }%
+ \renewcommand{\glstablefinishlengthupdates}{%
+ \setlength{\glstabledescwidth}{\dimexpr\glstableblockwidth
+ - \glstablenamewidth}%
+ \ifdim\glstabledescwidth<0pt\relax
+ \setlength{\glstablenamewidth}{\dimexpr0.5\glstableblockwidth}%
+ \setlength{\glstabledescwidth}{\glstablenamewidth}%
+ \fi
+ }%
+ \renewcommand{\glstableblockentry}[1]{%
+ \glstableNameTarget{##1} & \glstableDesc{##1}}%
+ \renewcommand{\glstableblocksubentry}[1]{%
+ \glstableSubNameTarget{##1} & \glstableSubDesc{##1}}%
+ \renewcommand{\glstableblockheader}{%
+ \glstableHeaderFmt\glstablenameheader &
+ \glstableHeaderFmt\glstabledescheader}%
+ \renewcommand{\glstableblockalign}{\glstablenamecolalign\glstabledesccolalign}%
+}
+\glstablesetstyle{name-desc}
+\glstablenewstyle{name}{%
+ \glstablecolsperblock=1\relax
+ \renewcommand{\glstableinitlengthupdates}{}%
+ \renewcommand{\glstablelengthupdate}[1]{}%
+ \renewcommand{\glstablefinishlengthupdates}{%
+ \setlength{\glstablenamewidth}{\glstableblockwidth}%
+ }%
+ \renewcommand{\glstableblockentry}[1]{%
+ \glstableNameSingleFmt{##1}}%
+ \renewcommand{\glstableblocksubentry}[1]{%
+ \glstableSubNameSingleFmt{##1}}%
+ \renewcommand{\glstableblockheader}{%
+ \glstableHeaderFmt\glstablenameheader}%
+ \renewcommand{\glstableblockalign}{\glstablenamecolalign}%
+}
+\glstablenewstyle{name-symbol}{%
+ \glstablecolsperblock=2\relax
+ \renewcommand{\glstableinitlengthupdates}{%
+ \ifKV@printglosstable@header
+ \settowidth{\glstablesymbolwidth}%
+ {\glstableHeaderFmt\glstablesymbolheader}%
+ \else
+ \setlength{\glstablesymbolwidth}{0pt}%
+ \fi
+ \setlength{\glstablenamewidth}{0pt}%
+ }%
+ \renewcommand{\glstablelengthupdate}[1]{%
+ \glstablemeasureandupdate{\glstablesymbolwidth}{\glstableSymbolFmt{##1}}%
+ }%
+ \renewcommand{\glstablefinishlengthupdates}{%
+ \setlength{\glstablenamewidth}{\dimexpr\glstableblockwidth
+ - \glstablesymbolwidth}%
+ \ifdim\glstablenamewidth<0pt\relax
+ \setlength{\glstablenamewidth}{\dimexpr0.5\glstableblockwidth}%
+ \setlength{\glstablesymbolwidth}{\glstablenamewidth}%
+ \fi
+ }%
+ \renewcommand{\glstableblockentry}[1]{%
+ \glstableNameNoDesc{##1} & \glstableSymbolFmt{##1}}%
+ \renewcommand{\glstableblocksubentry}[1]{%
+ \glstableSubNameNoDesc{##1} & \glstableSubSymbolFmt{##1}}%
+ \renewcommand{\glstableblockheader}{%
+ \glstableHeaderFmt\glstablenameheader &
+ \glstableHeaderFmt\glstablesymbolheader}%
+ \renewcommand{\glstableblockalign}{\glstablenamecolalign\glstablesymbolcolalign}%
+}
+\glstablenewstyle{desc-name}{%
+ \glstablecolsperblock=2\relax
+ \renewcommand{\glstableinitlengthupdates}{%
+ \ifKV@printglosstable@header
+ \settowidth{\glstablenamewidth}%
+ {\glstableHeaderFmt\glstablenameheader}%
+ \else
+ \setlength{\glstablenamewidth}{0pt}%
+ \fi
+ \setlength{\glstabledescwidth}{0pt}%
+ }%
+ \renewcommand{\glstablelengthupdate}[1]{%
+ \glstablemeasureandupdate{\glstablenamewidth}{\glstableNameFmt{##1}}%
+ }%
+ \renewcommand{\glstablefinishlengthupdates}{%
+ \setlength{\glstabledescwidth}{\dimexpr\glstableblockwidth
+ - \glstablenamewidth}%
+ \ifdim\glstabledescwidth<0pt\relax
+ \setlength{\glstablenamewidth}{\dimexpr0.5\glstableblockwidth}%
+ \setlength{\glstabledescwidth}{\glstablenamewidth}%
+ \fi
+ }%
+ \renewcommand{\glstableblockentry}[1]{%
+ \glstableDesc{##1} &
+ \glstableNameTarget{##1}%
+ }%
+ \renewcommand{\glstableblocksubentry}[1]{%
+ \glstableSubDesc{##1} &
+ \glstableSubNameTarget{##1}%
+ }%
+ \renewcommand{\glstableblockheader}{%
+ \glstableHeaderFmt\glstabledescheader &
+ \glstableHeaderFmt\glstablenameheader
+ }%
+ \renewcommand{\glstableblockalign}{\glstabledesccolalign\glstablenamecolalign}%
+}
+\glstablenewstyle{symbol-name}{%
+ \glstablecolsperblock=2\relax
+ \renewcommand{\glstableinitlengthupdates}{%
+ \ifKV@printglosstable@header
+ \settowidth{\glstablesymbolwidth}%
+ {\glstableHeaderFmt\glstablesymbolheader}%
+ \else
+ \setlength{\glstablesymbolwidth}{0pt}%
+ \fi
+ \setlength{\glstablenamewidth}{0pt}%
+ }%
+ \renewcommand{\glstablelengthupdate}[1]{%
+ \glstablemeasureandupdate{\glstablesymbolwidth}{\glstableSymbolFmt{##1}}%
+ }%
+ \renewcommand{\glstablefinishlengthupdates}{%
+ \setlength{\glstablenamewidth}{\dimexpr\glstableblockwidth
+ - \glstablesymbolwidth}%
+ \ifdim\glstablenamewidth<0pt\relax
+ \setlength{\glstablenamewidth}{\dimexpr0.5\glstableblockwidth}%
+ \setlength{\glstablesymbolwidth}{\glstablenamewidth}%
+ \fi
+ }%
+ \renewcommand{\glstableblockentry}[1]{%
+ \glstableSymbolFmt{##1} &
+ \glstableNameNoDesc{##1}%
+ }%
+ \renewcommand{\glstableblocksubentry}[1]{%
+ \glstableSubSymbolFmt{##1} &
+ \glstableSubNameNoDesc{##1}%
+ }%
+ \renewcommand{\glstableblockheader}{%
+ \glstableHeaderFmt\glstablesymbolheader &
+ \glstableHeaderFmt\glstablenameheader
+ }%
+ \renewcommand{\glstableblockalign}{\glstablesymbolcolalign\glstablenamecolalign}%
+}
+\glstablenewstyle{name-symbol-desc}{%
+ \glstablecolsperblock=3\relax
+ \renewcommand{\glstableinitlengthupdates}{%
+ \ifKV@printglosstable@header
+ \settowidth{\glstablenamewidth}%
+ {\glstableHeaderFmt\glstablenameheader}%
+ \settowidth{\glstablesymbolwidth}%
+ {\glstableHeaderFmt\glstablesymbolheader}%
+ \else
+ \setlength{\glstablenamewidth}{0pt}%
+ \setlength{\glstablesymbolwidth}{0pt}%
+ \fi
+ \setlength{\glstabledescwidth}{0pt}%
+ }%
+ \renewcommand{\glstablelengthupdate}[1]{%
+ \glstablemeasureandupdate{\glstablenamewidth}{\glstableNameFmt{##1}}%
+ \glstablemeasureandupdate{\glstablesymbolwidth}{\glstableSymbolFmt{##1}}%
+ }%
+ \renewcommand{\glstablefinishlengthupdates}{%
+ \setlength{\glstabledescwidth}{\dimexpr\glstableblockwidth
+ - \glstablesymbolwidth - \glstablenamewidth}%
+ \ifdim\glstabledescwidth<0pt\relax
+ \setlength{\glstablenamewidth}{\dimexpr0.5\glstableblockwidth
+ - 0.5\glstablesymbolwidth}%
+ \setlength{\glstabledescwidth}{\glstablenamewidth}%
+ \fi
+ }%
+ \renewcommand{\glstableblockentry}[1]{%
+ \glstableNameTarget{##1} &
+ \glstableSymbolFmt{##1} &
+ \glstableDesc{##1}}%
+ \renewcommand{\glstableblocksubentry}[1]{%
+ \glstableSubNameTarget{##1} &
+ \glstableSubSymbolFmt{##1} &
+ \glstableSubDesc{##1}}%
+ \renewcommand{\glstableblockheader}{%
+ \glstableHeaderFmt\glstablenameheader &
+ \glstableHeaderFmt\glstablesymbolheader &
+ \glstableHeaderFmt\glstabledescheader}%
+ \renewcommand{\glstableblockalign}{%
+ \glstablenamecolalign\glstablesymbolcolalign\glstabledesccolalign}%
+}
+\glstablenewstyle{name-desc-symbol}{%
+ \glstablecolsperblock=3\relax
+ \renewcommand{\glstableinitlengthupdates}{%
+ \ifKV@printglosstable@header
+ \settowidth{\glstablenamewidth}%
+ {\glstableHeaderFmt\glstablenameheader}%
+ \settowidth{\glstablesymbolwidth}%
+ {\glstableHeaderFmt\glstablesymbolheader}%
+ \else
+ \setlength{\glstablenamewidth}{0pt}%
+ \setlength{\glstablesymbolwidth}{0pt}%
+ \fi
+ \setlength{\glstabledescwidth}{0pt}%
+ }%
+ \renewcommand{\glstablelengthupdate}[1]{%
+ \glstablemeasureandupdate{\glstablenamewidth}{\glstableNameFmt{##1}}%
+ \glstablemeasureandupdate{\glstablesymbolwidth}{\glstableSymbolFmt{##1}}%
+ }%
+ \renewcommand{\glstablefinishlengthupdates}{%
+ \setlength{\glstabledescwidth}{\dimexpr\glstableblockwidth
+ - \glstablesymbolwidth - \glstablenamewidth}%
+ \ifdim\glstabledescwidth<0pt\relax
+ \setlength{\glstablenamewidth}{\dimexpr0.5\glstableblockwidth
+ - 0.5\glstablesymbolwidth}%
+ \setlength{\glstabledescwidth}{\glstablenamewidth}%
+ \fi
+ }%
+ \renewcommand{\glstableblockentry}[1]{%
+ \glstableNameTarget{##1} &
+ \glstableDesc{##1} &
+ \glstableSymbolFmt{##1}%
+ }%
+ \renewcommand{\glstableblocksubentry}[1]{%
+ \glstableSubNameTarget{##1} &
+ \glstableSubDesc{##1} &
+ \glstableSubSymbolFmt{##1}%
+ }%
+ \renewcommand{\glstableblockheader}{%
+ \glstableHeaderFmt\glstablenameheader &
+ \glstableHeaderFmt\glstabledescheader &
+ \glstableHeaderFmt\glstablesymbolheader
+ }%
+ \renewcommand{\glstableblockalign}{%
+ \glstablenamecolalign\glstabledesccolalign\glstablesymbolcolalign}%
+}
+\glstablenewstyle{name-other}{%
+ \glstablecolsperblock=2\relax
+ \renewcommand{\glstableinitlengthupdates}{%
+ \ifKV@printglosstable@header
+ \settowidth{\glstablenamewidth}%
+ {\glstableHeaderFmt\glstablenameheader}%
+ \else
+ \setlength{\glstablenamewidth}{0pt}%
+ \fi
+ \setlength{\glstabledescwidth}{0pt}%
+ }%
+ \renewcommand{\glstablelengthupdate}[1]{%
+ \glstablemeasureandupdate{\glstablenamewidth}{\glstableNameFmt{##1}}%
+ }%
+ \renewcommand{\glstablefinishlengthupdates}{%
+ \setlength{\glstabledescwidth}{\dimexpr\glstableblockwidth
+ - \glstablenamewidth}%
+ \ifdim\glstabledescwidth<0pt\relax
+ \setlength{\glstablenamewidth}{\dimexpr0.5\glstableblockwidth}%
+ \setlength{\glstabledescwidth}{\glstablenamewidth}%
+ \fi
+ }%
+ \renewcommand{\glstableblockentry}[1]{%
+ \glstableNameTarget{##1} & \glstableOtherNoDesc{##1}}%
+ \renewcommand{\glstableblocksubentry}[1]{%
+ \glstableSubNameTarget{##1} & \glstableSubOtherNoDesc{##1}}%
+ \renewcommand{\glstableblockheader}{%
+ \glstableHeaderFmt\glstablenameheader &
+ \glstableHeaderFmt\glstableotherheader}%
+ \renewcommand{\glstableblockalign}{\glstablenamecolalign\glstabledesccolalign}%
+}
+\glstablenewstyle{other-name}{%
+ \glstablecolsperblock=2\relax
+ \renewcommand{\glstableinitlengthupdates}{%
+ \ifKV@printglosstable@header
+ \settowidth{\glstablenamewidth}%
+ {\glstableHeaderFmt\glstablenameheader}%
+ \else
+ \setlength{\glstablenamewidth}{0pt}%
+ \fi
+ \setlength{\glstabledescwidth}{0pt}%
+ }%
+ \renewcommand{\glstablelengthupdate}[1]{%
+ \glstablemeasureandupdate{\glstablenamewidth}{\glstableNameFmt{##1}}%
+ }%
+ \renewcommand{\glstablefinishlengthupdates}{%
+ \setlength{\glstabledescwidth}{\dimexpr\glstableblockwidth
+ - \glstablenamewidth}%
+ \ifdim\glstabledescwidth<0pt\relax
+ \setlength{\glstablenamewidth}{\dimexpr0.5\glstableblockwidth}%
+ \setlength{\glstabledescwidth}{\glstablenamewidth}%
+ \fi
+ }%
+ \renewcommand{\glstableblockentry}[1]{%
+ \glstableOtherNoDesc{##1} &
+ \glstableNameTarget{##1}}%
+ \renewcommand{\glstableblocksubentry}[1]{%
+ \glstableSubOtherNoDesc{##1} &
+ \glstableSubNameTarget{##1}}%
+ \renewcommand{\glstableblockheader}{%
+ \glstableHeaderFmt\glstableotherheader &
+ \glstableHeaderFmt\glstablenameheader}%
+ \renewcommand{\glstableblockalign}{\glstabledesccolalign\glstablenamecolalign}%
+}
+\glstablenewstyle{symbol-other}{%
+ \glstablecolsperblock=2\relax
+ \renewcommand{\glstableinitlengthupdates}{%
+ \ifKV@printglosstable@header
+ \settowidth{\glstablesymbolwidth}%
+ {\glstableHeaderFmt\glstablesymbolheader}%
+ \else
+ \setlength{\glstablesymbolwidth}{0pt}%
+ \fi
+ \setlength{\glstabledescwidth}{0pt}%
+ }%
+ \renewcommand{\glstablelengthupdate}[1]{%
+ \glstablemeasureandupdate{\glstablesymbolwidth}{\glstableSymbolNameFmt{##1}}%
+ }%
+ \renewcommand{\glstablefinishlengthupdates}{%
+ \setlength{\glstabledescwidth}{\dimexpr\glstableblockwidth
+ - \glstablesymbolwidth}%
+ \ifdim\glstabledescwidth<0pt\relax
+ \setlength{\glstablesymbolwidth}{\dimexpr0.5\glstableblockwidth}%
+ \setlength{\glstabledescwidth}{\glstablesymbolwidth}%
+ \fi
+ }%
+ \renewcommand{\glstableblockentry}[1]{%
+ \glstableSymbolNameTarget{##1} & \glstableOtherNoDesc{##1}}%
+ \renewcommand{\glstableblocksubentry}[1]{%
+ \glstableSubSymbolNameTarget{##1} & \glstableSubOtherNoDesc{##1}}%
+ \renewcommand{\glstableblockheader}{%
+ \glstableHeaderFmt\glstablesymbolheader &
+ \glstableHeaderFmt\glstableotherheader}%
+ \renewcommand{\glstableblockalign}{\glstablesymbolcolalign\glstabledesccolalign}%
+}
+\glstablenewstyle{other-symbol}{%
+ \glstablecolsperblock=2\relax
+ \renewcommand{\glstableinitlengthupdates}{%
+ \ifKV@printglosstable@header
+ \settowidth{\glstablesymbolwidth}%
+ {\glstableHeaderFmt\glstablesymbolheader}%
+ \else
+ \setlength{\glstablesymbolwidth}{0pt}%
+ \fi
+ \setlength{\glstabledescwidth}{0pt}%
+ }%
+ \renewcommand{\glstablelengthupdate}[1]{%
+ \glstablemeasureandupdate{\glstablesymbolwidth}{\glstableSymbolNameFmt{##1}}%
+ }%
+ \renewcommand{\glstablefinishlengthupdates}{%
+ \setlength{\glstabledescwidth}{\dimexpr\glstableblockwidth
+ - \glstablesymbolwidth}%
+ \ifdim\glstabledescwidth<0pt\relax
+ \setlength{\glstablesymbolwidth}{\dimexpr0.5\glstableblockwidth}%
+ \setlength{\glstabledescwidth}{\glstablesymbolwidth}%
+ \fi
+ }%
+ \renewcommand{\glstableblockentry}[1]{%
+ \glstableOtherNoDesc{##1} & \glstableSymbolNameTarget{##1}}%
+ \renewcommand{\glstableblocksubentry}[1]{%
+ \glstableSubOtherNoDesc{##1} &
+ \glstableSubSymbolNameTarget{##1}}%
+ \renewcommand{\glstableblockheader}{%
+ \glstableHeaderFmt\glstableotherheader &
+ \glstableHeaderFmt\glstablesymbolheader}%
+ \renewcommand{\glstableblockalign}{\glstabledesccolalign\glstablesymbolcolalign}%
+}
+\newcommand{\glstablecaption}[3]{%
+ \caption[#1]{#3#2}%
+}
+\newcommand{\glstablepostnextcaption}{ Cont./}
+\newcommand{\glstablenextcaption}[2]{%
+ \caption[]{#1\glstablepostnextcaption}%
+}
+\newcommand{\glstablefoot}[1]{}
+\newcommand{\glstablelastfoot}[1]{\glstablerowspan{#1}}
+\newcommand{\glstablehead}[1]{}
+\newcommand{\glstablefirsthead}[1]{\glstablerowspan{#1}}
+\newcommand{\glstablerowspan}[1]{%
+ \multicolumn{\glstabletotalcols}{c}{\parbox{\LTcapwidth}{#1}}%
+}
+\newcommand{\glstable@begin}{%
+ \PackageError{glossary-table}{table style can only be used with
+ \string\printunsrttable}{}%
+}
+\newcommand{\glstable@filter}[1]{%
+ \ifnum\glscurrententrylevel>0\relax
+ \printunsrtglossaryskipentry
+ \else
+ \glstableiffilter{#1}%
+ {\printunsrtglossaryskipentry}%
+ {%
+ \glstableifpar{\glstablelengthupdate{#1}}%
+ }%
+ \fi
+}
+\newcommand{\glstableiffilter}[3]{#3}
+\newlength\glstablenamewidth
+\newlength\glstableblockwidth
+\newlength\glstabledescwidth
+\newlength\glstablesymbolwidth
+\newcommand{\glstableifmeasuring}[2]{#2}
+\newcommand{\glstable@stepentry}[1]{%
+ \ifglsentrycounter
+ \stepcounter{glossaryentry}%
+ \fi
+}
+\newcommand{\glstable@stepsubentry}[1]{%
+ \ifglssubentrycounter
+ \stepcounter{glossarysubentry}%
+ \fi
+}
+\newcommand{\glstablemeasureandupdate}[2]{%
+ \let\glstableifmeasuring\@firstoftwo
+ \let\@glsunset\@glsxtrbuffer@unset
+ \let\@gls@org@noindex\ifKV@glslink@noindex
+ \KV@glslink@noindextrue
+ \let\@glstable@org@target\glstarget
+ \let\glstarget\@secondoftwo
+ \let\@glstable@org@link\@glslink
+ \let\@glslink\@secondoftwo
+ \let\glstable@org@stepentry\glsstepentry
+ \let\glsstepentry\glstable@stepentry
+ \let\glstable@org@stepsubentry\glsstepsubentry
+ \let\glsstepsubentry\glstable@stepsubentry
+ \settowidth{\dimen@}{#2}%
+ \ifdim\dimen@>#1\relax
+ \setlength{#1}{\dimen@}%
+ \fi
+ \let\ifKV@glslink@noindex\@gls@org@noindex
+ \let\@glsunset\@glsxtr@unset
+ \let\glstarget\@glstable@org@target
+ \let\@glslink\@glstable@org@link
+ \let\glsstepentry\glstable@org@stepentry
+ \let\glsstepsubentry\glstable@org@stepsubentry
+ \let\glstableifmeasuring\@secondoftwo
+}
+\newcommand{\glstable@ifhaspreamble}[2]{%
+ \ifdefempty\glossarypreamble
+ {#2}%
+ {%
+ \ifx\@glstable@defaultpreamble\glossarypreamble
+ \ifcsvoid{@glossarypreamble@\currentglossary}{#2}{#1}%
+ \else
+ #1%
+ \fi
+ }%
+}
+\define@key{printglosstable}{type}{\renewcommand{\@glo@type}{#1}}
+\define@key{printglosstable}{preamble}{\renewcommand{\glossarypreamble}{#1}}
+\define@key{printglosstable}{postamble}{\renewcommand{\glossarypostamble}{#1}}
+\newcommand\glstable@init{}
+\define@key{printglosstable}{init}{\renewcommand{\glstable@init}{#1}}
+\define@choicekey{printglosstable}{groups}
+[\@glstable@groups@val\@glstable@groups@n]
+{false,true}[true]%
+{%
+ \ifnum\@glstable@groups@n=0\relax
+ \let\glstable@groupheading\@gobble
+ \glsxtr@printgloss@groupsfalse
+ \else
+ \let\glstable@groupheading\glstablegroupheading
+ \glsxtr@printgloss@groupstrue
+ \fi
+}
+\newcommand{\glstable@groupheading}[1]{}
+\newcommand{\glstablegroupheading}[1]{%
+ \glstablefinishrow
+ \multicolumn{\glstabletotalcols}{c}{%
+ \glsxtrgetgrouptitle{#1}{\glsxtrcurrentgrptitle}%
+ \glstableGroupHeaderFmt\glsxtrcurrentgrptitle
+ }%
+ \\*%
+}
+\let\@glstable@defaultpreamble\glossarypreamble
+\newcommand{\glstableGroupHeaderFmt}{\glstableHeaderFmt}
+\newrobustcmd*{\printunsrttable}[1][]{%
+ \bgroup
+ \def\@glo@type{\glsdefaulttype}%
+ \def\glossarytitle{%
+ \ifcsdef{@glotype@\@glo@type @title}%
+ {\csuse{@glotype@\@glo@type @title}}%
+ {\glossaryname}%
+ }%
+ \def\glossarytoctitle{\glossarytitle}%
+ \let\glossarypreamble\@glstable@defaultpreamble
+ \setkeys*{printglosstable}{#1}%
+ \let\currentglossary\@glo@type
+ \protected@edef\glstable@opts{type=\@glo@type,style=table}%
+ \ifdefempty\XKV@rm{}{\epreto\glstable@opts{\expandonce\XKV@rm,}}%
+ \glstabletotalcols=\numexpr\glstablecolsperblock*\glstableblockperrowcount\relax
+ \glstableifpar
+ {%
+ \glstableblockwidth=\dimexpr\linewidth/\glstableblockperrowcount
+ -\glstablecolsperblock\tabcolsep\relax
+ \glstableinitlengthupdates
+ }%
+ \ifdefempty\glstable@blockalignsep{\def\glstable@finishrow{}}{}%
+ \def\glstable@alignment{}%
+ \ifKV@printglosstable@rules
+ \def\glstable@header{\toprule}%
+ \else
+ \def\glstable@header{}%
+ \fi
+ \global\glstablecurrentblockindex=0\relax
+ \loop
+ \ifnum\glstablecurrentblockindex>0\relax
+ \protected@eappto\glstable@alignment{\glstable@blockalignsep}%
+ \fi
+ \protected@eappto\glstable@alignment{\glstableblockalign}%
+ \ifKV@printglosstable@header
+ \ifnum\glstablecurrentblockindex>0\relax
+ \appto\glstable@header{&}%
+ \fi
+ \eappto\glstable@header{\expandonce\glstableblockheader}%
+ \fi
+ \advance\glstablecurrentblockindex by 1\relax
+ \ifnum\glstablecurrentblockindex<\glstableblockperrowcount
+ \repeat
+ \ifKV@printglosstable@header
+ \appto\glstable@header{\tabularnewline}%
+ \ifKV@printglosstable@rules
+ \appto\glstable@header{\midrule}%
+ \fi
+ \fi
+ \protected@edef\glstable@begin{%
+ \noexpand\begin{longtable}{\expandonce\glstable@alignment}%
+ \noexpand\glstablecaption
+ {\noexpand\glossarytoctitle}{\noexpand\glossarytitle}%
+ {\noexpand\@@glossaryseclabel}%
+ \noexpand\tabularnewline
+ }%
+ \glstable@ifhaspreamble
+ {%
+ \eappto\glstable@begin{\noexpand\glstablefirsthead
+ {\expandonce\glossarypreamble}%
+ \noexpand\tabularnewline
+ \expandonce\glstable@header
+ \noexpand\endfirsthead
+ \noexpand\glstablenextcaption
+ {\noexpand\glossarytoctitle}{\noexpand\glossarytitle}%
+ {\expandonce\glossarypreamble}%
+ }%
+ }%
+ {%
+ \eappto\glstable@begin{%
+ \expandonce\glstable@header
+ \noexpand\endfirsthead
+ \noexpand\glstablenextcaption
+ {\noexpand\glossarytoctitle}{\noexpand\glossarytitle}%
+ }%
+ }%
+ \eappto\glstable@begin{%
+ \noexpand\tabularnewline
+ \expandonce\glstable@header
+ \noexpand\endhead
+ }%
+ \ifdefvoid\glossarypostamble
+ {%
+ \ifKV@printglosstable@rules
+ \appto\glstable@begin{\bottomrule\endfoot}%
+ \fi
+ }
+ {%
+ \ifKV@printglosstable@rules
+ \eappto\glstable@begin{%
+ \noexpand\bottomrule
+ \noexpand\glstablefoot{\expandonce\glossarypostamble}%
+ \noexpand\tabularnewline
+ \noexpand\endfoot
+ \noexpand\bottomrule
+ \noexpand\glstablelastfoot{\expandonce\glossarypostamble}%
+ \noexpand\tabularnewline
+ \noexpand\endlastfoot
+ }%
+ \else
+ \eappto\glstable@begin{%
+ \noexpand\glstablefoot{\expandonce\glossarypostamble}%
+ \noexpand\tabularnewline
+ \noexpand\endfoot
+ \noexpand\glstablelastfoot{\expandonce\glossarypostamble}%
+ \noexpand\tabularnewline
+ \noexpand\endlastfoot
+ }%
+ \fi
+ }%
+ \glstable@init
+ \let\printunsrtglossaryentryprocesshook\glstable@filter
+ \let\glossarypostamble\relax
+ \let\glossarypreamble\relax
+ \renewcommand{\glossarysection}[2][]{}%
+ \glsxtrifemptyglossary{\currentglossary}
+ {%
+ \GlossariesExtraWarning{Glossary `\currentglossary' is empty}%
+ \edef\@glsxtr@tmp{\noexpand\setkeys{printgloss}{\expandonce\glstable@opts}}%
+ \@glsxtr@tmp
+ \glstableifpar{\glstablefinishlengthupdates}%
+ \global\glstablecurrentblockindex=0\relax
+ \glstable@begin
+ \glstablefinishrow
+ \end{longtable}%
+ }%
+ {%
+ \expandafter\printunsrtglossary\expandafter[\glstable@opts]\relax
+ }%
+ \egroup
+}
+\newcommand{\glstable@child}[1]{%
+ \ifdefempty\glstable@dochildren{}%
+ {\appto\glstable@dochildren{\glstableblocksubentrysep}}%
+ \appto\glstable@dochildren{\glstableblocksubentry{#1}}%
+}
+\newcommand{\glstableChildEntries}[1]{%
+ \def\glstable@dochildren{}%
+ \GlsXtrIfHasNonZeroChildCount*{#1}%
+ {%
+ \glsxtrfieldforlistloop{#1}{childlist}{\glstable@child}%
+ \preto\glstable@dochildren{%
+ \glstablePreChildren
+ \begin{glstablesubentries}%
+ }%
+ \appto\glstable@dochildren{\end{glstablesubentries}}%
+ }%
+ {}%
+ \glstable@dochildren
+}
+\newcommand{\glstable@n@amps}[1]{%
+ \ifnum#1>0\relax
+ \count@=0\relax
+ \loop
+ \advance\count@ by 1\relax
+ \appto\glstable@endblock{&}%
+ \ifnum\count@<#1
+ \repeat
+ \fi
+}
+\newcommand{\glstablefinishrow}{%
+ \glstable@finishrow
+ \tabularnewline
+}
+\newcommand{\glstable@finishrow}{%
+ \def\glstable@endblock{}%
+ \@glstable@finishrow
+ \glstable@endblock
+}
+\newcommand{\@glstable@finishrow}{%
+ \ifnum\glstablecurrentblockindex>0
+ \ifnum\glstablecurrentblockindex<\glstableblockperrowcount
+ \expandafter\glstable@n@amps\expandafter{%
+ \numexpr
+ (\glstableblockperrowcount-\glstablecurrentblockindex)
+ * (\glstablecolsperblock -1)
+ }%
+ \fi
+ \global\glstablecurrentblockindex=0
+ \fi
+}
+\newglossarystyle{table}%
+{%
+ \renewenvironment{theglossary}%
+ {%
+ \glstableifpar{\glstablefinishlengthupdates}%
+ \global\glstablecurrentblockindex=0\relax
+ \glstable@begin
+ }
+ {%
+ \glstablefinishrow
+ \end{longtable}%
+ }%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{\glstable@groupheading{##1}}%
+ \renewcommand*{\glssubgroupheading}[4]{}%
+ \renewcommand*{\glsgroupskip}{}%
+ \renewcommand{\glossentry}[2]{%
+ \global\advance\glstablecurrentblockindex by 1\relax
+ \ifnum\glstableblockperrowcount=\glstablecurrentblockindex
+ \gdef\glstable@endblock{%
+ \global\glstablecurrentblockindex=0\relax
+ \tabularnewline
+ }%
+ \else
+ \gdef\glstable@endblock{&}%
+ \fi
+ \glstableblockentry{##1}%
+ \glstableChildEntries{##1}%
+ \glstable@endblock
+ }%
+ \renewcommand{\subglossentry}[3]{}%
+}
+\endinput
+%%
+%% End of file `glossary-table.sty'.
diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-topic-2021-11-22.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-topic-2021-11-22.sty
new file mode 100644
index 00000000000..65867129d6e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-topic-2021-11-22.sty
@@ -0,0 +1,206 @@
+%%
+%% This is file `glossary-topic-2021-11-22.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries-extra.dtx (with options: `glossary-topic-2021-11-22.sty,package')
+%%
+%% glossaries-extra.dtx
+%% Copyright 2022 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-abbrstyles.def, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, glossary-table.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib, glossaries-extra-2021-11-22.sty, glossaries-extra-bib2gls-2021-11-22.sty, glossaries-extra-stylemods-2021-11-22.sty, glossary-bookindex-2021-11-22.sty, glossary-longextra-2021-11-22.sty, glossary-topic-2021-11-22.sty.
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{glossary-topic}[2021/11/22 v1.48 (NLCT)]
+\RequirePackage{multicol}
+\newglossarystyle{topic}{%
+ \renewenvironment{theglossary}%
+ {%
+ \glstopicInit
+ \def\glstopic@prechildren{}%
+ \def\glstopic@prevlevel{-1}%
+ }%
+ {\par}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \def\glstopic@prevlevel{-1}%
+ \glstopicGroupHeading{##1}%
+ }%
+ \renewcommand{\glossentry}[2]{%
+ \hangindent0pt\relax
+ \parindent\glstopicParIndent\relax
+ \glstopicItem{##1}{##2}%
+ \ifglshasdesc{##1}%
+ {%
+ \def\glstopic@prechildren{}%
+ }%
+ {%
+ \def\glstopic@prechildren{\nopagebreak}%
+ }%
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \ifnum\glstopic@prevlevel=0\relax\glstopic@prechildren\fi
+ \def\glstopic@prevlevel{##1}%
+ \begingroup
+ \glstopicAssignSubIndent{##1}%
+ \glstopicSubItem{##1}{##2}{##3}%
+ \par
+ \endgroup
+ }%
+ \renewcommand*{\glsgroupskip}{}%
+}
+\newcommand*{\glstopicGroupHeading}[1]{}
+\newcommand*{\glstopicItem}[2]{%
+ \glspar\glstopicPreSkip\glspar\noindent
+ \glstopicMarker{#1}%
+ \glstopicTitleFont
+ {%
+ \glsentryitem{#1}\glstarget{#1}{\glstopicTitle{#1}}%
+ }%
+ \ifglshasdesc{#1}%
+ {\glspar\nobreak\glstopicMidSkip\glspar\nobreak
+ \@afterheading\glstopicDesc{#1}\glspar\glstopicPostSkip}%
+ {\glspar\nobreak\glstopicPostSkip}%
+ \glstopicLoc{#1}{#2}%
+}
+\newcommand*{\glstopicMarker}[1]{}
+\newcommand*{\glstopicTitle}[1]{\Glossentryname{#1}%
+ \ifglshassymbol{#1}{\space(\glossentrysymbol{#1})}{}%
+}
+\newcommand*{\glstopicTitleFont}[1]{\textbf{\large #1}}
+\newcommand*{\glstopicDesc}[1]{\Glossentrydesc{#1}\glspostdescription}
+\newcommand*{\glstopicLoc}[2]{}
+\newlength\glstopicParIndent
+\setlength\glstopicParIndent{20pt}
+\newlength\glstopicSubIndent
+\setlength\glstopicSubIndent{20pt}
+\newcommand{\glstopicInit}{}
+\newcommand*{\glstopicAssignSubIndent}[1]{%
+ \par
+ \parindent\dimexpr#1\glstopicSubIndent-\glstopicSubIndent\relax
+ \glstopicAssignWidest{#1}%
+ \glstopicsubitemhangindent=\dimexpr\parindent+\glstopicwidest\relax
+ \hangindent\glstopicsubitemhangindent\relax
+ \everypar{\hangindent\glstopicsubitemhangindent\relax
+ \parindent\dimexpr\glstopicSubItemParIndent+\glstopicsubitemhangindent\relax}%
+}
+\newlength\glstopicsubitemhangindent
+\newlength\glstopicSubItemParIndent
+\glstopicSubItemParIndent\parindent
+\newlength\glstopicwidest
+\newcommand*{\glstopicAssignWidest}[1]{%
+ \ifcsundef{@glswidestlength\romannumeral#1}%
+ {%
+ \ifcsdef{@glswidestname\romannumeral#1}%
+ {%
+ \settowidth{\glstopicwidest}{%
+ \glstopicSubNameFont{\csuse{@glswidestname\romannumeral#1}}%
+ \glstopicSubItemSep
+ }%
+ }%
+ {\setlength{\glstopicwidest}{0pt}}%
+ \csedef{@glswidestlength\romannumeral#1}{\the\glstopicwidest}%
+ }%
+ {\setlength{\glstopicwidest}{\csuse{@glswidestlength\romannumeral#1}}}%
+}
+\newcommand*{\glstopicPreSkip}{\medskip}
+\newcommand*{\glstopicMidSkip}{\smallskip}
+\newcommand*{\glstopicPostSkip}{\smallskip}
+\newcommand*{\glstopicSubItem}[3]{%
+ \glstopicSubItemBox{#1}{\glstopicSubNameFont{\glsentryitem{#2}%
+ \glstarget{#2}{\glossentryname{#2}}}%
+ \glstopicSubItemSep
+ }%
+ \ifglshassymbol{#2}{(\glossentrysymbol{#2})\space}{}%
+ \ifglshasdesc{#2}%
+ {\glossentrydesc{#2}\glspostdescription\glstopicSubPreLocSep}{}%
+ \glstopicSubLoc{#2}{#3}%
+}
+\newcommand*{\glstopicSubItemSep}{\quad}
+\newcommand*{\glstopicSubItemBox}[2]{%
+ \ifdim\glstopicwidest>0pt\relax\makebox[\glstopicwidest][l]{#2}\else#2\fi
+}
+\newcommand*{\glstopicSubNameFont}[1]{\textbf{#1}}
+\newcommand*{\glstopicSubPreLocSep}{\space}
+\newcommand*{\glstopicSubLoc}[2]{#2}
+\newcommand*{\glstopicCols}{2}
+\newcommand*{\glstopicColsEnv}{multicols}
+\newglossarystyle{topicmcols}{%
+ \renewenvironment{theglossary}%
+ {%
+ \glstopicInit
+ \def\glstopic@prechildren{}%
+ \def\glstopic@postchildren{}%
+ \def\glstopic@prevlevel{-1}%
+ }%
+ {%
+ \ifnum\glstopic@prevlevel>0\relax\glstopic@postchildren\fi
+ \par
+ }%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \ifnum\glstopic@prevlevel>0\relax\glstopic@postchildren\fi
+ \def\glstopic@prevlevel{-1}%
+ \glstopicGroupHeading{##1}%
+ }%
+ \renewcommand{\glossentry}[2]{%
+ \ifnum\glstopic@prevlevel>0\relax\glstopic@postchildren\fi
+ \def\glstopic@prevlevel{0}%
+ \hangindent0pt\relax
+ \parindent\glstopicParIndent\relax
+ \glstopicItem{##1}{##2}%
+ \ifnum\glstopicCols>1\relax
+ \ifglshasdesc{##1}%
+ {%
+ \edef\glstopic@prechildren{%
+ \noexpand\begin{\glstopicColsEnv}{\glstopicCols}%
+ }%
+ }%
+ {%
+ \edef\glstopic@prechildren{%
+ \noexpand\nopagebreak
+ \noexpand\begin{\glstopicColsEnv}{\glstopicCols}%
+ }%
+ }%
+ \edef\glstopic@postchildren{\noexpand\end{\glstopicColsEnv}}%
+ \fi
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \ifnum\glstopic@prevlevel=0\relax\glstopic@prechildren\fi
+ \def\glstopic@prevlevel{##1}%
+ \glstopicAssignSubIndent{##1}%
+ \glstopicSubItem{##1}{##2}{##3}%
+ }%
+ \renewcommand*{\glsgroupskip}{}%
+}
+\endinput
+%%
+%% End of file `glossary-topic-2021-11-22.sty'.
diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-topic.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-topic.sty
index 1145a451cd8..6c027dcd18c 100644
--- a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-topic.sty
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-topic.sty
@@ -7,7 +7,7 @@
%% glossaries-extra.dtx (with options: `glossary-topic.sty,package')
%%
%% glossaries-extra.dtx
-%% Copyright 2021 Nicola Talbot
+%% Copyright 2022 Nicola Talbot
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -21,7 +21,7 @@
%%
%% The Current Maintainer of this work is Nicola Talbot.
%%
-%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib.
+%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-abbrstyles.def, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, glossary-table.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib, glossaries-extra-2021-11-22.sty, glossaries-extra-bib2gls-2021-11-22.sty, glossaries-extra-stylemods-2021-11-22.sty, glossary-bookindex-2021-11-22.sty, glossary-longextra-2021-11-22.sty, glossary-topic-2021-11-22.sty.
%%
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -39,7 +39,9 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossary-topic}[2021/11/22 v1.48 (NLCT)]
+\DeclareRelease{v1.48}{2021-11-22}{glossary-topic-2021-11-22.sty}
+\DeclareCurrentRelease{v1.49}{2022-10-14}
+\ProvidesPackage{glossary-topic}[2022/10/14 v1.49 (NLCT)]
\RequirePackage{multicol}
\newglossarystyle{topic}{%
\renewenvironment{theglossary}%
@@ -54,6 +56,7 @@
\def\glstopic@prevlevel{-1}%
\glstopicGroupHeading{##1}%
}%
+ \renewcommand*{\glssubgroupheading}{\glstopicSubGroupHeading}%
\renewcommand{\glossentry}[2]{%
\hangindent0pt\relax
\parindent\glstopicParIndent\relax
@@ -78,6 +81,17 @@
\renewcommand*{\glsgroupskip}{}%
}
\newcommand*{\glstopicGroupHeading}[1]{}
+\newcommand*{\glstopicSubGroupHeading}[4]{%
+ \begingroup
+ \glspar\glstopicPreSkip\glspar\noindent
+ \glsxtrgetgrouptitle{#4}{\glstopicsubgrouptitle}%
+ \glstopicAssignSubIndent{#2}%
+ \glstopicSubItemBox{#2}{\glstopicTitleFont{\glstopicsubgrouptitle}}%
+ \glstopicSubItemSep
+ \glspar\nobreak\glstopicPostSkip
+ \par
+ \endgroup
+}
\newcommand*{\glstopicItem}[2]{%
\glspar\glstopicPreSkip\glspar\noindent
\glstopicMarker{#1}%
@@ -87,7 +101,8 @@
}%
\ifglshasdesc{#1}%
{\glspar\nobreak\glstopicMidSkip\glspar\nobreak
- \@afterheading\glstopicDesc{#1}\glspar\glstopicPostSkip}%
+ \@afterheading\glstopicDesc{#1}\glspar\glstopicPostSkip
+ }%
{\glspar\nobreak\glstopicPostSkip}%
\glstopicLoc{#1}{#2}%
}
@@ -171,6 +186,7 @@
\def\glstopic@prevlevel{-1}%
\glstopicGroupHeading{##1}%
}%
+ \renewcommand*{\glssubgroupheading}{\glstopicSubGroupHeading}%
\renewcommand{\glossentry}[2]{%
\ifnum\glstopic@prevlevel>0\relax\glstopic@postchildren\fi
\def\glstopic@prevlevel{0}%