summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/glossaries-extra
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-11-23 22:39:49 +0000
committerKarl Berry <karl@freefriends.org>2021-11-23 22:39:49 +0000
commitbbf5f223d533f4cefd05ab5e39791ffe6c1ddb73 (patch)
tree7a10df1b236ebc000b36f753f3a27aa27393d572 /Master/texmf-dist/tex/latex/glossaries-extra
parentf887f53e17d1220ea3ec352fe7c347802340c4f6 (diff)
glossaries-extra (23nov21)
git-svn-id: svn://tug.org/texlive/trunk@61131 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/glossaries-extra')
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-bib2gls.sty105
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-stylemods.sty2
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty2073
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex.sty2
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossary-longextra.sty2
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossary-topic.sty2
6 files changed, 2093 insertions, 93 deletions
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 48aea62fb2a..b6415a7136d 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
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossaries-extra-bib2gls}[2021/11/04 v1.47 (NLCT)]
+\ProvidesPackage{glossaries-extra-bib2gls}[2021/11/22 v1.48 (NLCT)]
\ifglsacronym
\providecommand*{\printunsrtacronyms}[1][]{%
\printunsrtglossary[type=\acronymtype,#1]}%
@@ -433,6 +433,109 @@
\@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}}
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 b13f8ff3193..49fbb4fa291 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
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossaries-extra-stylemods}[2021/11/04 v1.47 (NLCT)]
+\ProvidesPackage{glossaries-extra-stylemods}[2021/11/22 v1.48 (NLCT)]
\newcommand*{\@glsxtr@loadstyles}{}
\DeclareOption{all}{%
\appto\@glsxtr@loadstyles{%
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 38731cfa89e..d35fa885846 100644
--- a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossaries-extra}[2021/11/04 v1.47 (NLCT)]
+\ProvidesPackage{glossaries-extra}[2021/11/22 v1.48 (NLCT)]
\RequirePackage{xkeyval}
\RequirePackage{etoolbox}
\@ifpackageloaded{glossaries}
@@ -787,6 +787,7 @@
\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]{%
@@ -796,18 +797,63 @@
\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
@@ -815,42 +861,41 @@
\@glsxtr@doaccsupp
\@glsxtr@doloadprefix
\@glsxtr@defpostpunc
-\ifdef\glsshowtargetouter
-{
- \renewcommand*{\glsshowtarget}[1]{%
- \glsxtrtitleorpdforheading
- {%
- \ifmmode
- \nfss@text{\glsshowtargetfont [#1]}%
+\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
- \ifinner
- {\glsshowtargetfont [#1]}%
- \else
- \glsshowtargetouter{#1}%
- \fi
+ \glsxtrshowtargetouter{#1}%
\fi
- }%
- {[#1]}%
- {{\protect\glsshowtargetfont [#1]}}%
- }
+ \fi
+ }%
+ {[#1]}%
+ {{\protect\glsshowtargetinner{#1}}}%
}
-{
- \def\glsshowtarget#1{%
- \glsxtrtitleorpdforheading
- {%
- \ifmmode
- \texttt{\small [#1]}%
- \else
- \ifinner
- \texttt{\small [#1]}%
- \else
- \marginpar{\texttt{\small #1}}%
- \fi
- \fi
- }%
- {[#1]}%
- {\texttt{\small [#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]{%
@@ -1855,7 +1900,7 @@
\renewrobustcmd*{\glsseelist}[1]{%
\let\@gls@dolast\relax
\let\@gls@donext\relax
- \let\@glsseeitem\glsseefirstitem
+ \let\@glsseeitem\@glsxtr@seefirstitem
\let\@glsseelastsep\glsseelastsep
\@for\@gls@thislabel:=#1\do{%
\ifx\@xfor@nextelement\@nnil
@@ -1866,10 +1911,20 @@
\expandafter\@glsseeitem\expandafter{\@gls@thislabel}%
\let\@gls@dolast\@glsseelastsep
\let\@gls@donext\glsseesep
- \let\@glsseeitem\glsseeitem
+ \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
@@ -2013,11 +2068,19 @@
\def\@glsxtr@addunused#1\@end@glsxtr@addunused{%
\@for\@glsxtr@label:=#1\do
{%
- \ifglsused{\@glsxtr@label}{}%
+ \glsxtrifmulti\@glsxtr@label
{%
- \glsadd[format=glsxtrunusedformat]{\@glsxtr@label}%
- \glsunset{\@glsxtr@label}%
- \expandafter\@glsxtr@addunusedxrefs\expandafter{\@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}%
+ }%
}%
}%
}
@@ -2397,12 +2460,14 @@
\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
}
@@ -2446,11 +2511,7 @@
\def\glsinsert{}%
\def\@glo@text{\csname gls@\glstype @entryfmt\endcsname}%
\@gls@link[#1]{#2}{\@glo@text}%
- \ifKV@glslink@local
- \glslocalunset{#2}%
- \else
- \glsunset{#2}%
- \fi
+ \@gls@do@glsunset{#2}%
}%
\glspostlinkhook
}
@@ -2536,6 +2597,7 @@
\endgroup
}%
}
+\providecommand*{\glslinkwrcontent}[1]{{#1}}
\def\@gls@link[#1]#2#3{%
\leavevmode
\protected@edef\glslabel{\glsdetoklabel{#2}}%
@@ -2545,6 +2607,7 @@
\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{}%
@@ -2592,28 +2655,32 @@
\else
\let\@glsxtr@textformat\@glsxtr@local@textformat
\fi
- \ifglsxtrinitwrglossbefore
- \@do@wrglossary{#2}%
- \fi
- \ifKV@glslink@hyper
- \ifglsxtr@hyperoutside
- \@glslink{\glolinkprefix\glslabel}{\@glsxtr@textformat{#3}}%
+ \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
- \@glsxtr@textformat{\@glslink{\glolinkprefix\glslabel}{#3}}%
+ \ifglsxtr@hyperoutside
+ \glsdonohyperlink{\glolinkprefix\glslabel}{\@glsxtr@textformat{#3}}%
+ \else
+ \@glsxtr@textformat{\glsdonohyperlink{\glolinkprefix\glslabel}{#3}}%
+ \fi
\fi
- \else
- \ifglsxtr@hyperoutside
- \glsdonohyperlink{\glolinkprefix\glslabel}{\@glsxtr@textformat{#3}}%
+ \ifglsxtrinitwrglossbefore
\else
- \@glsxtr@textformat{\glsdonohyperlink{\glolinkprefix\glslabel}{#3}}%
+ \@do@wrglossary{#2}%
\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}}
@@ -3263,6 +3330,17 @@
{}
\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}{%
@@ -3394,6 +3472,42 @@
}%
}
{}
+\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}%
{%
@@ -3425,6 +3539,11 @@
\glsxtrhyperlink{#1}{{\glsxtrprotectlinks#2}}%
}%
{%
+ \glsxtrifmulti\gloaliaslabel
+ {%
+ \letcs\gloaliaslabel{@gls@combined@\gloaliaslabel @main}%
+ }%
+ {}%
\glsxtrhyperlink
{\glolinkprefix\glsdetoklabel{\gloaliaslabel}}%
{{\glsxtrprotectlinks#2}}%
@@ -3432,16 +3551,9 @@
}%
}
-\ifdef\@glsshowtarget
-{
- \newcommand{\glsxtrhyperlink}[2]{%
- \@glsshowtarget{#1}%
- \hyperlink{#1}{#2}%
- }%
-}
-{
- \newcommand{\glsxtrhyperlink}[2]{\hyperlink{#1}{#2}}%
-}
+\newcommand{\glsxtrhyperlink}[2]{%
+ \glsdoshowtarget{#1}{\hyperlink{#1}{#2}}%
+}%
\renewrobustcmd*{\glshyperlink}[2][\glsentrytext{\@glo@label}]{%
\glsdoifexists{#2}%
{%
@@ -4766,6 +4878,12 @@
\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}%
@@ -5881,6 +5999,7 @@ defined}{}%
\protected@edef\glstype{\csname glo@\glslabel @type\endcsname}%
\def\@glsxtr@thevalue{}%
\def\@glsxtr@theHvalue{\@glsxtr@thevalue}%
+ \@gls@save@glslocal
\glsxtrinitwrgloss
\glslinkpresetkeys
\setkeys{glslink}{#1}%
@@ -5893,19 +6012,19 @@ defined}{}%
\let\theglsentrycounter\@glsxtr@thevalue
\def\theHglsentrycounter{\@glsxtr@theHvalue}%
}%
- \ifglsxtrinitwrglossbefore
- \@do@wrglossary{#2}%
- \fi
- #3%
- \ifglsxtrinitwrglossbefore
- \else
- \@do@wrglossary{#2}%
- \fi
- \ifKV@glslink@local
- \glslocalunset{#2}%
- \else
- \glsunset{#2}%
- \fi
+ \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}
@@ -6625,6 +6744,18 @@ defined}{}%
\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}%
}
@@ -11454,6 +11585,84 @@ defined}{}%
\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
@@ -11490,6 +11699,42 @@ defined}{}%
{%
\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
@@ -12336,6 +12581,102 @@ defined}{}%
{%
\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
@@ -13195,6 +13536,1564 @@ defined}{}%
\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}}{}%
}
@@ -13211,15 +15110,13 @@ defined}{}%
{}% not found
\@glsxtrdialecthook
}
-\@ifpackageloaded{tracklang}
-{%
+\@ifpackageloaded{tracklang} {%
\AnyTrackedLanguages
{%
\ForEachTrackedDialect{\this@dialect}{\glsxtr@loaddialect}%
}%
{}%
-}
-{}
+} {}
\@glsxtr@redefstyles
\@glsxtr@do@style
\endinput
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 a3be5f297b2..17c89c07654 100644
--- a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex.sty
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex.sty
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossary-bookindex}[2021/11/04 v1.47 (NLCT)]
+\ProvidesPackage{glossary-bookindex}[2021/11/22 v1.48 (NLCT)]
\RequirePackage{multicol}
\RequirePackage{glossary-tree}
\newcommand{\glsxtrbookindexcols}{2}
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 98233b2c467..a69976433a3 100644
--- a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-longextra.sty
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-longextra.sty
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossary-longextra}[2021/11/04 v1.47 (NLCT)]
+\ProvidesPackage{glossary-longextra}[2021/11/22 v1.48 (NLCT)]
\RequirePackage{glossary-longbooktabs}
\newcommand{\glslongextraNameFmt}[1]{%
\glsentryitem{#1}\glstarget{#1}{\glossentryname{#1}}%
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 582c188353a..1145a451cd8 100644
--- a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-topic.sty
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-topic.sty
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossary-topic}[2021/11/04 v1.47 (NLCT)]
+\ProvidesPackage{glossary-topic}[2021/11/22 v1.48 (NLCT)]
\RequirePackage{multicol}
\newglossarystyle{topic}{%
\renewenvironment{theglossary}%