From 8d88e6714a570bf2b598132718ae2beb4641c80b Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 26 Jan 2016 22:52:39 +0000 Subject: glossaries-extra (24jan15) git-svn-id: svn://tug.org/texlive/trunk@39487 c570f23f-e606-0410-a88d-b1316a301751 --- .../latex/glossaries-extra/glossaries-extra.sty | 4853 ++++++++++++++++++++ 1 file changed, 4853 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty (limited to 'Master/texmf-dist/tex/latex/glossaries-extra') diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty new file mode 100644 index 00000000000..fc0517ef5de --- /dev/null +++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty @@ -0,0 +1,4853 @@ +%% +%% This is file `glossaries-extra.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% glossaries-extra.dtx (with options: `glossaries-extra.sty,package') +%% +%% glossaries-extra.dtx +%% Copyright 2016 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 of (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 file glossaries-extra.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}[2016/01/24 v1.0 (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}{} +\define@choicekey{glossaries-extra.sty}{undefaction}[\val\nr]% + {warn,error}% + {% + \ifcase\nr\relax + \renewcommand*{\glsxtrundefaction}[2]{% + \@glsxtrundeftag\GlossariesExtraWarning{##1}% + }% + \renewcommand*{\glsxtr@warnonexistsordo}[1]{% + \GlossariesExtraWarning{glossaries-extra}{% + \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.)}% + }% + \or + \renewcommand*{\glsxtrundefaction}[2]{% + \@glsxtrundeftag\PackageError{glossaries-extra}{##1}{##2}% + }% + \renewcommand*{\glsxtr@warnonexistsordo}[1]{}% + \fi + } +\define@boolkey{glossaries-extra.sty}[@glsxtr]{docdef}[true]{} +\define@boolkey{glossaries-extra.sty}[@glsxtr]{indexcrossrefs}[true]{% + \if@glsxtrindexcrossrefs + \else + \renewcommand*{\@glsxtr@autoindexcrossrefs}{}% + \fi +} +\@glsxtrindexcrossrefsfalse +\newcommand*{\@glsxtr@autoindexcrossrefs}{\@glsxtrindexcrossrefstrue} +\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*{\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}% + \newcommand*{\newabbr}{\newabbreviation}% + \let\GlsXtrDefineAbbreviationShortcuts\relax +} +\newcommand*{\GlsXtrDefineOtherShortcuts}{% + \newcommand*{\newentry}{\newglossaryentry}% + \ifdef\printsymbols + {% + \newcommand*{\newsym}{\glsxtrnewsymbol}% + }{}% + \ifdef\printnumbers + {% + \newcommand*{\newnum}{\glsxtrnewnumber}% + }{}% + \let\GlsXtrDefineOtherShortcuts\relax +} +\newcommand*{\@glsxtr@setupshortcuts}{} +\define@choicekey{glossaries-extra.sty}{shortcuts}[\val\nr]% + {acronyms,acro,abbreviations,abbr,other,all,true,none,false}[true]{% + \ifcase\nr\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 + \DefineAcronymSynonyms + \GlsXtrDefineAbbreviationShortcuts + \GlsXtrDefineOtherShortcuts + }% + \or % true + \renewcommand*{\@glsxtr@setupshortcuts}{% + \glsacrshortcutstrue + \DefineAcronymSynonyms + \GlsXtrDefineAbbreviationShortcuts + \GlsXtrDefineOtherShortcuts + }% + \else % none, false + \renewcommand*{\@glsxtr@setupshortcuts}{}% + \fi + } +\newcommand*{\@glsxtr@doaccsupp}{} +\@glsxtr@declareoption{accsupp}{% + \renewcommand*{\@glsxtr@doaccsupp}{\RequirePackage{glossaries-accsupp}}} +\newcommand{\glsxtrNoGlossaryWarning}[1]{% + \@glsxtr@defaultnoglossarywarning{#1}% +} +\define@choicekey{glossaries-extra.sty}{nomissingglstext}[\val\nr]% + {true,false}[true]{% + \ifcase\nr\relax % true + \renewcommand{\glsxtrNoGlossaryWarning}[1]{% + \null + }% + \else % false + \renewcommand{\glsxtrNoGlossaryWarning}[1]{% + \@glsxtr@defaultnoglossarywarning{#1}% + }% + \fi + } +\DeclareOptionX*{% + \expandafter\glsxtr@dooption\expandafter{\CurrentOption}} +\ProcessOptionsX +\RequirePackage{glossaries} +\@glsxtr@doaccsupp +\@glsxtr@abbreviationsdef +\let\@glsxtr@abbreviationsdef\relax +\@glsxtr@setupshortcuts +\renewcommand{\glsxtr@dooption}[1]{\setupglossaries{#1}}% +\newcommand*{\glossariesextrasetup}[1]{% + \let\@glsxtr@setupshortcuts\relax + \setkeys{glossaries-extra.sty}{#1}% + \@glsxtr@abbreviationsdef + \let\@glsxtr@abbreviationsdef\relax + \@glsxtr@setupshortcuts +} +\AtBeginDocument{% + \disable@keys{glossaries-extra.sty}{abbreviations}% + \def\@glsxtrundeftag{\glsxtrundeftag}% +} +\newcommand{\glsxtrifemptyglossary}[3]{% + \ifglossaryexists{#1}% + {% + \ifcsstring{glolist@#1}{,}{#2}{#3}% + }% + {% + \glsxtrundefaction{Glossary type `#1' doesn't exist}{}% + #2% + }% +} +\renewcommand{\glsdoifexists}[2]{% + \ifglsentryexists{#1}{#2}% + {% + \glsxtrundefaction{Glossary entry `\glsdetoklabel{#1}' + 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}% + \@glsxtr@autoindexcrossrefs + }% +} +\appto\@gls@keymap{,{see}{see}} +\AtEndDocument{\if@glsxtrindexcrossrefs\glsxtraddallcrossrefs\fi} +\newcommand*{\glsxtraddallcrossrefs}{% + \forallglossaries{\@glo@type}% + {% + \forglsentries[\@glo@type]{\@glo@label}% + {% + \ifglsused{\@glo@label}{\@glsxtr@addunusedxrefs{\@glo@label}}{}% + }% + }% +} +\newcommand*{\@glsxtr@addunusedxrefs}[1]{% + \letcs{\@glo@see}{glo@\glsdetoklabel{#1}@see}% + \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 + {% + \ifglsused{\@glsxtr@label}{}% + {% + \glsadd[format=glsxtrunusedformat]{\@glsxtr@label}% + \glsunset{\@glsxtr@label}% + \@glsxtr@addunusedxrefs{\@glsxtr@label}% + }% + }% +} +\newcommand*{\glsxtrunusedformat}[1]{\unskip} +\let\glsxtr@orgmakenoidxglossaries\makenoidxglossaries +\renewcommand{\makenoidxglossaries}{% + \glsxtr@orgmakenoidxglossaries + \@glsxtrdocdeffalse + \disable@keys{glossaries-extra.sty}{docdef}% +} +\renewcommand*{\gls@defdocnewglossaryentry}{% + \if@glsxtrdocdef + \let\gls@checkseeallowed\relax + \let\newglossaryentry\new@glossaryentry + \else + \renewcommand*{\newglossaryentry}[2]{% + \PackageError{glossaries-extra}{Glossary entries must + be \MessageBreak defined in the preamble with \MessageBreak + package option `docdef=false'}{Move your glossary definitions to + the preamble. You can also put them in a \MessageBreak separate file + and load them with \string\loadglsentries.}% + }% + \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}% + } + \let\@glsxtr@orgprintglossary\@printglossary + \renewcommand\@printglossary[2]{% + \@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 +\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]{% + \GlsXtrFormatLocationList{#1}\gls@save@numberlist{#1}}% + \else + \glsnonumberlisttrue + \renewcommand*{\glossaryentrynumbers}[1]{\gls@save@numberlist{#1}}% + \fi +\newcommand*{\GlsXtrFormatLocationList}[1]{#1} +\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{% + \GlsXtrFormatLocationList{##1}% + \gls@save@numberlist{##1}}% + \fi + }% +} +\renewcommand*{\glsentryfmt}{% + \ifglshasshort{\glslabel}{\glssetabbrvfmt{\glscategory{\glslabel}}}{}% + \glsifregular{\glslabel}% + {\glsgenentryfmt}% + {\ifglshasshort{\glslabel}{\glsxtrgenabbrvfmt}{\glsgenentryfmt}}% +} +\renewcommand{\@gls@field@link}[4][]{% + \glsdoifexists{#3}% + {% + \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper + \def\glscustomtext{#4}% + \@glsxtr@field@linkdefs + #1% + \@gls@link[#2]{#3}{#4}% + }% + \glspostlinkhook +} +\newcommand*{\@glsxtr@field@linkdefs}{% + \let\glsxtrifwasfirstuse\@secondoftwo + \let\glsifplural\@secondoftwo + \let\glscapscase\@firstofthree + \let\glsinsert\@empty +} +\def\@GLStext@#1#2[#3]{% + \@gls@field@link[\let\glscapscase\@thirdofthree]{#1}{#2}% + {\mfirstucMakeUppercase{\glsentrytext{#2}#3}}% +} +\def\@Glstext@#1#2[#3]{% + \@gls@field@link[\let\glscapscase\@secondofthree]{#1}{#2}% + {\Glsentrytext{#2}#3}% +} +\def\@glsfirst@#1#2[#3]{% + \@gls@field@link[\let\glsxtrifwasfirstuse\@firstoftwo]{#1}{#2}% + {\glsentryfirst{#2}#3}% +} +\def\@Glsfirst@#1#2[#3]{% + \@gls@field@link + [\let\glsxtrifwasfirstuse\@firstoftwo + \let\glscapscase\@secondofthree + ]% + {#1}{#2}{\Glsentryfirst{#2}#3}% +} +\def\@GLSfirst@#1#2[#3]{% + \@gls@field@link + [\let\glsxtrifwasfirstuse\@firstoftwo + \let\glscapscase\@thirdofthree + ]% + {#1}{#2}{\mfirstucMakeUppercase{\glsentryfirst{#2}#3}}% +} +\def\@glsplural#1#2[#3]{% + \@gls@field@link[\let\glsifplural\@firstoftwo]{#1}{#2}% + {\glsentryplural{#2}#3}% +} +\def\@Glsplural#1#2[#3]{% + \@gls@field@link + [\let\glsifplural\@firstoftwo + \let\glscapscase\@secondofthree + ]% + {#1}{#2}{\Glsentryplural{#2}#3}% +} +\def\@GLSplural#1#2[#3]{% + \@gls@field@link + [\let\glsifplural\@firstoftwo + \let\glscapscase\@thirdofthree + ]% + {#1}{#2}{\mfirstucMakeUppercase{\glsentryplural{#2}#3}}% +} +\def\@glsfirstplural@#1#2[#3]{% + \@gls@field@link + [\let\glsxtrifwasfirstuse\@firstoftwo + \let\glsifplural\@firstoftwo + ]% + {#1}{#2}{\glsentryfirstplural{#2}#3}% +} +\def\@glsfirstplural@#1#2[#3]{% + \@gls@field@link + [\let\glsxtrifwasfirstuse\@firstoftwo + \let\glsifplural\@firstoftwo + \let\glscapscase\@secondofthree + ]% + {#1}{#2}{\Glsentryfirstplural{#2}#3}% +} +\def\@glsfirstplural@#1#2[#3]{% + \@gls@field@link + [\let\glsxtrifwasfirstuse\@firstoftwo + \let\glsifplural\@firstoftwo + \let\glscapscase\@thirdofthree + ]% + {#1}{#2}{\mfirstucMakeUppercase{\glsentryfirstplural{#2}#3}}% +} +\def\@Glsname@#1#2[#3]{% + \@gls@field@link + [\let\glscapscase\@secondoftwo]{#1}{#2}{\Glsentryname{#2}#3}% +} +\def\@GLSname@#1#2[#3]{% + \@gls@field@link[\let\glscapscase\@thirdoftwo]% + {#1}{#2}{\mfirstucMakeUppercase{\glsentryname{#2}#3}}% +} +\def\@Glsdesc@#1#2[#3]{% + \@gls@field@link + [\let\glscapscase\@secondoftwo]{#1}{#2}{\Glsentrydesc{#2}#3}% +} +\def\@GLSdesc@#1#2[#3]{% + \@gls@field@link[\let\glscapscase\@thirdoftwo]% + {#1}{#2}{\mfirstucMakeUppercase{\glsentrydesc{#2}#3}}% +} +\def\@glsdescplural@#1#2[#3]{% + \@gls@field@link + [\let\glscapscase\@secondoftwo + \let\glsifplural\@firstoftwo + ]{#1}{#2}{\glsentrydescplural{#2}#3}% +} +\def\@Glsdescplural@#1#2[#3]{% + \@gls@field@link + [\let\glscapscase\@secondoftwo + \let\glsifplural\@firstoftwo + ]{#1}{#2}{\Glsentrydescplural{#2}#3}% +} +\def\@GLSdesc@#1#2[#3]{% + \@gls@field@link + [\let\glscapscase\@thirdoftwo + \let\glsifplural\@firstoftwo + ]% + {#1}{#2}{\mfirstucMakeUppercase{\glsentrydescplural{#2}#3}}% +} +\def\@Glssymbol@#1#2[#3]{% + \@gls@field@link + [\let\glscapscase\@secondoftwo]{#1}{#2}{\Glsentrysymbol{#2}#3}% +} +\def\@GLSsymbol@#1#2[#3]{% + \@gls@field@link[\let\glscapscase\@thirdoftwo]% + {#1}{#2}{\mfirstucMakeUppercase{\glsentrysymbol{#2}#3}}% +} +\def\@glssymbolplural@#1#2[#3]{% + \@gls@field@link + [\let\glscapscase\@secondoftwo + \let\glsifplural\@firstoftwo + ]{#1}{#2}{\glsentrysymbolplural{#2}#3}% +} +\def\@Glssymbolplural@#1#2[#3]{% + \@gls@field@link + [\let\glscapscase\@secondoftwo + \let\glsifplural\@firstoftwo + ]{#1}{#2}{\Glsentrysymbolplural{#2}#3}% +} +\def\@GLSsymbol@#1#2[#3]{% + \@gls@field@link + [\let\glscapscase\@thirdoftwo + \let\glsifplural\@firstoftwo + ]% + {#1}{#2}{\mfirstucMakeUppercase{\glsentrysymbolplural{#2}#3}}% +} +\def\@Glsuseri@#1#2[#3]{% + \@gls@field@link + [\let\glscapscase\@secondoftwo]{#1}{#2}{\Glsentryuseri{#2}#3}% +} +\def\@GLSuseri@#1#2[#3]{% + \@gls@field@link[\let\glscapscase\@thirdoftwo]% + {#1}{#2}{\mfirstucMakeUppercase{\glsentryuseri{#2}#3}}% +} +\def\@Glsuserii@#1#2[#3]{% + \@gls@field@link + [\let\glscapscase\@secondoftwo]{#1}{#2}{\Glsentryuserii{#2}#3}% +} +\def\@GLSuserii@#1#2[#3]{% + \@gls@field@link[\let\glscapscase\@thirdoftwo]% + {#1}{#2}{\mfirstucMakeUppercase{\glsentryuserii{#2}#3}}% +} +\def\@Glsuseriii@#1#2[#3]{% + \@gls@field@link + [\let\glscapscase\@secondoftwo]{#1}{#2}{\Glsentryuseriii{#2}#3}% +} +\def\@GLSuseriii@#1#2[#3]{% + \@gls@field@link[\let\glscapscase\@thirdoftwo]% + {#1}{#2}{\mfirstucMakeUppercase{\glsentryuseriii{#2}#3}}% +} +\def\@Glsuseriv@#1#2[#3]{% + \@gls@field@link + [\let\glscapscase\@secondoftwo]{#1}{#2}{\Glsentryuseriv{#2}#3}% +} +\def\@GLSuseriv@#1#2[#3]{% + \@gls@field@link[\let\glscapscase\@thirdoftwo]% + {#1}{#2}{\mfirstucMakeUppercase{\glsentryuseriv{#2}#3}}% +} +\def\@Glsuserv@#1#2[#3]{% + \@gls@field@link + [\let\glscapscase\@secondoftwo]{#1}{#2}{\Glsentryuserv{#2}#3}% +} +\def\@GLSuserv@#1#2[#3]{% + \@gls@field@link[\let\glscapscase\@thirdoftwo]% + {#1}{#2}{\mfirstucMakeUppercase{\glsentryuserv{#2}#3}}% +} +\def\@Glsuservi@#1#2[#3]{% + \@gls@field@link + [\let\glscapscase\@secondoftwo]{#1}{#2}{\Glsentryuservi{#2}#3}% +} +\def\@GLSuservi@#1#2[#3]{% + \@gls@field@link[\let\glscapscase\@thirdoftwo]% + {#1}{#2}{\mfirstucMakeUppercase{\glsentryuservi{#2}#3}}% +} +\def\@acrshort#1#2[#3]{% + \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]{% + \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]{% + \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]{% + \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]{% + \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]{% + \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]{% + \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]{% + \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]{% + \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]{% + \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]{% + \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]{% + \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 +} +\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}% + \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 +\ifdef\@gls@setdefault@glslink@opts +{ + \renewcommand*{\@gls@setdefault@glslink@opts}{% + \KV@glslink@noindexfalse + } +} +{ + \newcommand*{\@gls@setdefault@glslink@opts}{% + \KV@glslink@noindexfalse + } + \preto\do@glsdisablehyperinlist{\@gls@setdefault@glslink@opts} +} +\newcommand*{\GlsXtrSetDefaultGlsOpts}[1]{% + \renewcommand*{\@gls@setdefault@glslink@opts}{\setkeys{glslink}{#1}}% +} +\newcommand*{\glsxtrifindexing}[2]{% + \ifKV@glslink@noindex #2\else #1\fi +} +\renewcommand*{\glswriteentry}[2]{% + \glsxtrifindexing + {% + \ifglsindexonlyfirst + \ifglsused{#1} + {\glsxtrdoautoindexname{#1}{dualindex}}% + {#2}% + \else + \glsifattribute{#1}{indexonlyfirst}{true}% + {\ifglsused{#1} + {\glsxtrdoautoindexname{#1}{dualindex}}% + {#2}}% + {#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 + \def\@gls@alt@hyp@opt@char{#1}% + \def\@gls@alt@hyp@opt@keys{#2}% +} +\renewcommand*{\glsdohyperlink}[2]{% + \hyperlink{#1}{{\glsxtrprotectlinks#2}}} +\ifundef\glsdonohyperlink +{% + \renewcommand{\glsdisablehyper}{% + \KV@glslink@hyperfalse + \let\@glslink\glsdonohyperlink + \let\@glstarget\@secondoftwo + } +} +{} +\def\glsdonohyperlink#1#2{{\glsxtrprotectlinks #2}} +\ifcsundef{hyperlink}% +{% + \let\@glslink\glsdonohyperlink +}% +{% + \let\@glslink\glsdohyperlink +} +\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{\glsentrylong{#2}#3}}} +\def\@glsxtr@p@longpl@#1#2[#3]{{\glsentrylongpl{#2}#3}} +\def\@Glsxtr@p@longpl@#1#2[#3]{{\Glsentrylongpl{#2}#3}} +\def\@GLSxtr@p@longpl@#1#2[#3]{% + {\mfirstucMakeUppercase{\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}}} +\renewcommand*{\@glsunset}[1]{% + \@@glsunset{#1}% + \glsxtrpostunset{#1}% +}% +\newcommand*{\glsxtrpostunset}[1]{} + \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*{\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}{% + \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}% + {% + \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}% + {% + \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}% + {% + \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}% + {% + \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}{% + \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 +\newcommand*{\MakeAcronymsAbbreviations}{% + \renewcommand*{\newacronym}[4][]{% + \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\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}{% + \SetGenericNewAcronym + \renewcommand{\firstacronymfont}[1]{\acronymfont{##1}}% + \renewcommand{\acronymfont}[1]{##1}% + \let\setacronymstyle\@glsxtr@org@setacronymstyle + \let\newacronymstyle\@glsxtr@org@newacronymstyle + \let\@gls@link@checkfirsthyper\@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 +\renewcommand*{\makeglossaries}[1][]{% + \ifblank{#1}% + {\@glsxtr@org@makeglossaries}% + {% + \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}} + \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\relax + \let\makeglossary\relax + \let\makeglossaries\relax + \@disable@onlypremakeg + \let\gls@checkseeallowed\relax + \let\warn@nomakeglossaries\relax + \def\warn@noprintglossary{% + \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}% + }% + \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}% + }% + \renewcommand*{\@printgloss@setsort}{% + \renewcommand*{\@glo@assign@sortkey}{% + \edef\@glo@type{\@glo@type}% + \expandafter\DTLifinlist\expandafter{\@glo@type}{\@glsxtr@reg@glosslist}% + {% + \@@glo@no@assign@sortkey + }% + {% + \@@glo@assign@sortkey + }% + }% + \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 + }% +} +\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 + }% + {% + ??\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}% + }% + {% + ??\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}% + }% + {% + ??\glsdoifexists{#1}% + {% + \GlossariesWarning{Missing location list for `#1'. Either + a rerun is required or you haven't referenced the entry.}% + }% + }% +}% +\let\@glsxtr@idx@entrynumberlist\glsentrynumberlist +\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 \string"\jobname\string"} + + \item Run the external (Perl) application: + + \texttt{makeglossaries \string"\jobname\string"} + \end{itemize} + + Then rerun \LaTeX\ on this document.% +} +\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 +} +\@ifpackageloaded{glossaries-accsupp} +{ + \newcommand*{\glsaccessname}[1]{% + \glsnameaccessdisplay + {% + \glsentryname{#1}% + }% + {#1}% + } +\def\@glsname@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\glsaccessname{#2}#3}% +} + \newcommand*{\Glsaccessname}[1]{% + \glsnameaccessdisplay + {% + \Glsentryname{#1}% + }% + {#1}% + } +\def\@Glsname@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\Glsaccessname{#2}#3}% +} + \newcommand*{\GLSaccessname}[1]{% + \glsnameaccessdisplay + {% + \mfirstucMakeUppercase{\glsentryname{#1}}% + }% + {#1}% + } +\def\@GLSname@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\GLSaccessname{#2}#3}% +} + \newcommand*{\glsaccesstext}[1]{% + \glstextaccessdisplay + {% + \glsentrytext{#1}% + }% + {#1}% + } +\def\@glstext@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\glsaccesstext{#2}#3}% +} + \newcommand*{\Glsaccesstext}[1]{% + \glstextaccessdisplay + {% + \Glsentrytext{#1}% + }% + {#1}% + } +\def\@Glstext@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\Glsaccesstext{#2}#3}% +} + \newcommand*{\GLSaccesstext}[1]{% + \glstextaccessdisplay + {% + \mfirstucMakeUppercase{\glsentrytext{#1}}% + }% + {#1}% + } +\def\@GLStext@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\GLSaccesstext{#2}#3}% +} + \newcommand*{\glsaccessplural}[1]{% + \glspluralaccessdisplay + {% + \glsentryplural{#1}% + }% + {#1}% + } +\def\@glsplural@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\glsaccessplural{#2}#3}% +} + \newcommand*{\Glsaccessplural}[1]{% + \glspluralaccessdisplay + {% + \Glsentryplural{#1}% + }% + {#1}% + } +\def\@glsplural@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\Glsaccessplural{#2}#3}% +} + \newcommand*{\GLSaccessplural}[1]{% + \glspluralaccessdisplay + {% + \mfirstucMakeUppercase{\glsentryplural{#1}}% + }% + {#1}% + } +\def\@GLSplural@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\GLSaccessplural{#2}#3}% +} + \newcommand*{\glsaccessfirst}[1]{% + \glsfirstaccessdisplay + {% + \glsentryfirst{#1}% + }% + {#1}% + } +\def\@glsfirst@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\glsaccessfirst{#2}#3}% +} + \newcommand*{\Glsaccessfirst}[1]{% + \glsfirstaccessdisplay + {% + \Glsentryfirst{#1}% + }% + {#1}% + } +\def\@Glsfirst@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\Glsaccessfirst{#2}#3}% +} + \newcommand*{\GLSaccessfirst}[1]{% + \glsfirstaccessdisplay + {% + \mfirstucMakeUppercase{\glsentryfirst{#1}}% + }% + {#1}% + } +\def\@GLSfirst@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\GLSaccessfirst{#2}#3}% +} + \newcommand*{\glsaccessfirstplural}[1]{% + \glsfirstpluralaccessdisplay + {% + \glsentryfirstplural{#1}% + }% + {#1}% + } +\def\@glsfirstplural@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\glsaccessfirstplural{#2}#3}% +} + \newcommand*{\Glsaccessfirstplural}[1]{% + \glsfirstpluralaccessdisplay + {% + \Glsentryfirstplural{#1}% + }% + {#1}% + } +\def\@Glsfirstplural@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\Glsaccessfirstplural{#2}#3}% +} + \newcommand*{\GLSaccessfirstplural}[1]{% + \glsfirstpluralaccessdisplay + {% + \mfirstucMakeUppercase{\glsentryfirstplural{#1}}% + }% + {#1}% + } +\def\@GLSfirstplural@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\GLSaccessfirstplural{#2}#3}% +} + \newcommand*{\glsaccesssymbol}[1]{% + \glssymbolaccessdisplay + {% + \glsentrysymbol{#1}% + }% + {#1}% + } +\def\@glssymbol@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\glsaccesssymbol{#2}#3}% +} + \newcommand*{\Glsaccesssymbol}[1]{% + \glssymbolaccessdisplay + {% + \Glsentrysymbol{#1}% + }% + {#1}% + } +\def\@Glssymbol@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\Glsaccesssymbol{#2}#3}% +} + \newcommand*{\GLSaccesssymbol}[1]{% + \glssymbolaccessdisplay + {% + \mfirstucMakeUppercase{\glsentrysymbol{#1}}% + }% + {#1}% + } +\def\@GLSsymbol@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\GLSaccesssymbol{#2}#3}% +} + \newcommand*{\glsaccesssymbolplural}[1]{% + \glssymbolpluralaccessdisplay + {% + \glsentrysymbolplural{#1}% + }% + {#1}% + } +\def\@glssymbolplural@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\glsaccesssymbolplural{#2}#3}% +} + \newcommand*{\Glsaccesssymbolplural}[1]{% + \glssymbolpluralaccessdisplay + {% + \Glsentrysymbolplural{#1}% + }% + {#1}% + } +\def\@Glssymbolplural@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\Glsaccesssymbolplural{#2}#3}% +} + \newcommand*{\GLSaccesssymbolplural}[1]{% + \glssymbolpluralaccessdisplay + {% + \mfirstucMakeUppercase{\glsentrysymbolplural{#1}}% + }% + {#1}% + } +\def\@GLSsymbolplural@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\GLSaccesssymbolplural{#2}#3}% +} + \newcommand*{\glsaccessdesc}[1]{% + \glsdescriptionaccessdisplay + {% + \glsentrydesc{#1}% + }% + {#1}% + } +\def\@glsdesc@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\glsaccessdesc{#2}#3}% +} + \newcommand*{\Glsaccessdesc}[1]{% + \glsdescriptionaccessdisplay + {% + \Glsentrydesc{#1}% + }% + {#1}% + } +\def\@Glsdesc@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\Glsaccessdesc{#2}#3}% +} + \newcommand*{\GLSaccessdesc}[1]{% + \glsdescriptionaccessdisplay + {% + \mfirstucMakeUppercase{\glsentrydesc{#1}}% + }% + {#1}% + } +\def\@GLSdesc@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\GLSaccessdesc{#2}#3}% +} + \newcommand*{\glsaccessdescplural}[1]{% + \glsdescriptionpluralaccessdisplay + {% + \glsentrydescplural{#1}% + }% + {#1}% + } +\def\@glsdescplural@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\glsaccessdescplural{#2}#3}% +} + \newcommand*{\Glsaccessdescplural}[1]{% + \glsdescriptionpluralaccessdisplay + {% + \Glsentrydescplural{#1}% + }% + {#1}% + } +\def\@Glsdescplural@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\Glsaccessdescplural{#2}#3}% +} + \newcommand*{\GLSaccessdescplural}[1]{% + \glsdescriptionpluralaccessdisplay + {% + \mfirstucMakeUppercase{\glsentrydescplural{#1}}% + }% + {#1}% + } +\def\@GLSdescplural@#1#2[#3]{% + \@gls@field@link{#1}{#2}{\GLSaccessdescplural{#2}#3}% +} + \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}% + } +} +{ + \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}}} +} +\glsaddstoragekey{category}{general}{\glscategory} +\newcommand{\glsifcategory}[4]{% + \ifglsfieldeq{#1}{category}{#2}{#3}{#4}% +} +\newcommand*{\glssetcategoryattribute}[3]{% + \csdef{@glsxtr@categoryattr@@#1@#2}{#3}% +} +\newcommand*{\glsgetcategoryattribute}[2]{% + \csuse{@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{\glsifregular}[3]{% + \glsifregularcategory{\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\xcapitalisewords\expandafter + {\csname glo@\glsdetoklabel{#1}@#2\endcsname}% +} +\@ifpackageloaded{glossaries-accsupp} +{ + \renewcommand*{\glossentrydesc}[1]{% + \glsdoifexistsorwarn{#1}% + {% + \glssetabbrvfmt{\glscategory{#1}}% + \glsifattribute{#1}{glossdesc}{firstuc}% + {% + \Glsaccessdesc{#1}% + }% + {% + \glsifattribute{#1}{glossdesc}{title}% + {% + \@glsxtr@do@titlecaps@warn + \glsdescriptionaccessdisplay + {% + \glsxtrfieldtitlecase{#1}{desc}% + }% + {#1}% + }% + {% + \glsaccessdesc{#1}% + }% + }% + }% + } +} +{ + \renewcommand*{\glossentrydesc}[1]{% + \glsdoifexistsorwarn{#1}% + {% + \glssetabbrvfmt{\glscategory{#1}}% + \glsifattribute{#1}{glossdesc}{firstuc}% + {% + \Glsentrydesc{#1}% + }% + {% + \glsifattribute{#1}{glossdesc}{title}% + {% + \@glsxtr@do@titlecaps@warn + \glsxtrfieldtitlecase{#1}{desc}% + }% + {% + \glsentrydesc{#1}% + }% + }% + }% + } +} +\@ifpackageloaded{glossaries-accsupp} +{ + \renewcommand*{\glossentryname}[1]{% + \glsdoifexistsorwarn{#1}% + {% + \glssetabbrvfmt{\glscategory{#1}}% + \glsifattribute{#1}{glossname}{firstuc}% + {% + \glsnameaccessdisplay + {% + \glsnamefont{\Glsentryname{#1}}% + }% + {#1}% + }% + {% + \glsifattribute{#1}{glossname}{title}% + {% + \@glsxtr@do@titlecaps@warn + \glsnameaccessdisplay + {% + \glsnamefont{\glsxtrfieldtitlecase{#1}{name}}% + }% + {#1}% + }% + {% + \glsifattribute{#1}{glossname}{uc}% + {% + \glsnameaccessdisplay + {% + \letcs{\glo@name}{glo@\glsdetoklabel{#1}@name}% + \glsnamefont{\mfirstucMakeUppercase{\glo@name}}% + }% + {#1}% + }% + {% + \letcs{\glo@name}{glo@\glsdetoklabel{#1}@name}% + \glsnameaccessdisplay + {% + \expandafter\glsnamefont\expandafter{\glo@name}% + }% + {#1}% + }% + }% + }% + \glsxtrpostnamehook{#1}% + }% + } +} +{ + \renewcommand*{\glossentryname}[1]{% + \glsdoifexistsorwarn{#1}% + {% + \glssetabbrvfmt{\glscategory{#1}}% + \glsifattribute{#1}{glossname}{firstuc}% + {% + \glsnamefont{\Glsentryname{#1}}% + }% + {% + \glsifattribute{#1}{glossname}{title}% + {% + \@glsxtr@do@titlecaps@warn + \glsnamefont{\glsxtrfieldtitlecase{#1}{name}}% + }% + {% + \glsifattribute{#1}{glossname}{uc}% + {% + \letcs{\glo@name}{glo@\glsdetoklabel{#1}@name}% + \glsnamefont{\mfirstucMakeUppercase{\glo@name}}% + }% + {% + \letcs{\glo@name}{glo@\glsdetoklabel{#1}@name}% + \expandafter\glsnamefont\expandafter{\glo@name}% + }% + }% + }% + }% + \glsxtrpostnamehook{#1}% + } +} +\@ifpackageloaded{glossaries-accsupp} +{ + \renewcommand*{\Glossentryname}[1]{% + \glsdoifexistsorwarn{#1}% + {% + \glssetabbrvfmt{\glscategory{#1}}% + \glsnameaccessdisplay + {% + \glsnamefont{\Glsentryname{#1}}% + }% + {#1}% + \glsxtrpostnamehook{#1}% + }% + } +} +{ + \renewcommand*{\Glossentryname}[1]{% + \glsdoifexistsorwarn{#1}% + {% + \glssetabbrvfmt{\glscategory{#1}}% + \glsnamefont{\Glsentryname{#1}}% + \glsxtrpostnamehook{#1}% + }% + } +} +\newcommand*{\glsxtrpostnamehook}[1]{% + \def\@glsnumberformat{glsnumberformat}% + \glsxtrdoautoindexname{#1}{indexname}% +} +\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 + \ifdefstring{\@glsnumberformat}{glsnumberformat}{}% + {\let\@glsxtr@attrval\@glsnumberformat}% + \fi + \ifdefstring{\@glsxtr@attrval}{true}% + {}% + {\eappto\@glo@name{\@glsxtr@autoindex@encap\@glsxtr@attrval}}% + \expandafter\index\expandafter{\@glo@name}% + }% + {}% +} +\newcommand*{\@glsxtr@autoindex@setname}[1]{% + \def\@glo@name{\string\glsentryname{#1}}% + \glsletentryfield{\@glo@sort}{#1}{sort}% + \@gls@checkmkidxchars\@glo@sort + \@glsxtr@autoindex@doextra@esc\@glo@sort + \epreto\@glo@name{\@glo@sort\@glsxtr@autoindex@at}% +} +\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}% + }% +} +\renewcommand*{\glossentrysymbol}[1]{% + \glsdoifexistsorwarn{#1}% + {% + \glssetabbrvfmt{\glscategory{#1}}% + \glsaccesssymbol{#1}% + }% +} +\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 + \let\@glsxtr@org@postdescription\glspostdescription + \renewcommand*{\glspostdescription}{% + \glsxtrpostdescription + \@glsxtr@org@postdescription + }% + }% +} +{} +\newcommand*{\glsxtrpostdescription}{% + \csuse{glsxtrpostdesc\glscategory{\glscurrententrylabel}}% +} +\newcommand*{\glsxtrpostdescgeneral}{} +\newcommand*{\glsxtrpostdescterm}{} +\newcommand*{\glsxtrpostdescacronym}{} +\newcommand*{\glsxtrpostdescabbreviation}{} +\renewcommand*{\glspostlinkhook}{% + \ifglsentryexists{\glslabel}{\glsxtrpostlinkhook}{}% +} +\newcommand*{\glsxtrpostlinkhook}{% + \glsxtrdiscardperiod{\glslabel}% + {\glsxtrpostlinkendsentence}% + {\glsxtrpostlink}% +} +\newcommand*{\glsxtrpostlink}{% + \csuse{glsxtrpostlink\glscategory{\glslabel}}% +} +\newcommand*{\glsxtrpostlinkendsentence}{% + \ifcsdef{glsxtrpostlink\glscategory{\glslabel}} + {% + \csuse{glsxtrpostlink\glscategory{\glslabel}}% + .\spacefactor\sfcode`\. \relax + }% + {% + \spacefactor\sfcode`\. \relax + }% +} +\newcommand*{\glsxtrpostlinkAddDescOnFirstUse}{% + \glsxtrifwasfirstuse{\space(\glsaccessdesc{\glslabel})}{}% +} +\newcommand*{\glsxtrpostlinkAddSymbolOnFirstUse}{% + \glsxtrifwasfirstuse + {% + \ifglshassymbol{\glslabel}{\space(\glsaccesssymbol{\glslabel})}{}% + }% + {}% +} +\newcommand*{\glsxtrdiscardperiod}[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}{% + \edef\glscategorylabel{#1}% + \ifcsdef{@glsabbrv@current@#1}% + {% + \glsxtr@applyabbrvstyle{\csname @glsabbrv@current@#1\endcsname}% + }% + {}% +} +\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*{\newabbreviation}[4][]{% + \glskeylisttok{#1}% + \glslabeltok{#2}% + \glsshorttok{#3}% + \glslongtok{#4}% + \def\glscategorylabel{abbreviation}% + \glsxtr@applyabbrvstyle{\@glsabbrv@current@abbreviation}% + \setkeys*{glsxtrabbrv}[shortplural,longplural]{#1}% + \def\@gls@longpl{#4\glspluralsuffix}% + \glsifcategoryattribute{\glscategorylabel}{insertdots}{true}% + {% + \@glsxtr@insertdots\@gls@short{#3}% + \expandafter\glsshorttok\expandafter{\@gls@short\spacefactor1000 \relax}% + \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}% + }% + }% + }% + {% + \glsifcategoryattribute{\glscategorylabel}{aposplural}{true}% + {% + \def\@gls@shortpl{#3'\abbrvpluralsuffix}% + }% + {% + \glsifcategoryattribute{\glscategorylabel}{noshortplural}{true}% + {% + \def\@gls@shortpl{#3}% + }% + {% + \def\@gls@shortpl{#3\abbrvpluralsuffix}% + }% + }% + }% + \glsxtrnewabbrevpresetkeyhook{#1}{#2}{#3}% + \setkeys*{glsxtrabbrv}[category]{#1}% + \expandafter\glsshortpltok\expandafter{\@gls@shortpl}% + \expandafter\glslongpltok\expandafter{\@gls@longpl}% + \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,% + \the\glskeylisttok + }% + }% + \@do@newglossaryentry + \GlsXtrPostNewAbbreviation +} +\newcommand*{\glsxtrnewabbrevpresetkeyhook}[3]{} +\newcommand*{\GlsXtrPostNewAbbreviation}{} +\newcommand*{\newabbreviationhook}{} +\newcommand*{\CustomAbbreviationFields}{} +\newcommand*{\glsxtrfullformat}[2]{% + \glsfirstlongfont{\glsaccesslong{#1}}#2\glsxtrfullsep{#1}% + (\protect\glsfirstabbrvfont{\glsaccessshort{#1}})% +} +\newcommand*{\Glsxtrfullformat}[2]{% + \glsfirstlongfont{\Glsaccesslong{#1}}#2\glsxtrfullsep{#1}% + (\protect\glsfirstabbrvfont{\glsaccessshort{#1}})% +} +\newcommand*{\glsxtrfullplformat}[2]{% + \glsfirstlongfont{\glsaccesslongpl{#1}}#2\glsxtrfullsep{#1}% + (\protect\glsfirstabbrvfont{\glsaccessshortpl{#1}})% +} +\newcommand*{\Glsxtrfullplformat}[2]{% + \glsfirstlongfont{\Glsaccesslongpl{#1}}#2\glsxtrfullsep{#1}% + (\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]{\glsabbrvfont{#1}} +\newcommand*{\glsabbrvfont}[1]{\glsabbrvdefaultfont{#1}} +\newcommand*{\glsabbrvdefaultfont}[1]{#1} +\newcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{#1}} +\newcommand*{\glsfirstlongdefaultfont}[1]{#1} +\newcommand*{\abbrvpluralsuffix}{\glspluralsuffix} +\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\@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]{% + \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]{% + \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]{% + \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]{% + \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}}#3% + }% + \@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]{% + \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}}#3% + }% + \@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]{% + \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}}#3}% + }% + \@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]{% + \glsdoifexists{#2}% + {% + \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper + \let\glsxtrifwasfirstuse\@secondoftwo + \let\glsifplural\@secondoftwo + \let\glscapscase\@firstofthree + \let\glsinsert\@empty + \def\glscustomtext{\glsaccesslong{#2}#3}% + \@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]{% + \glsdoifexists{#2}% + {% + \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper + \let\glsxtrifwasfirstuse\@secondoftwo + \let\glsifplural\@secondoftwo + \let\glscapscase\@secondofthree + \let\glsinsert\@empty + \def\glscustomtext{\Glsaccesslong{#2}#3}% + \@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]{% + \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{\glsaccesslong{#2}#3}}% + \@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]{% + \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}}#3% + }% + \@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]{% + \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}}#3% + }% + \@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]{% + \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}}#3}% + }% + \@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]{% + \glsdoifexists{#2}% + {% + \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper + \let\glsxtrifwasfirstuse\@secondoftwo + \let\glsifplural\@firstoftwo + \let\glscapscase\@firstofthree + \let\glsinsert\@empty + \def\glscustomtext{\glsaccesslongpl{#2}#3}% + \@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]{% + \glsdoifexists{#2}% + {% + \let\do@gls@link@checkfirsthyper\@gls@link@nocheckfirsthyper + \let\glsxtrifwasfirstuse\@secondoftwo + \let\glsifplural\@firstoftwo + \let\glscapscase\@secondofthree + \let\glsinsert\@empty + \def\glscustomtext{\Glsaccesslongpl{#2}#3}% + \@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]{% + \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{\glsaccesslongpl{#2}#3}}% + \@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}}% +} +\newcommand*{\glsxtrgenabbrvfmt}{% + \ifdefempty\glscustomtext + {% + \ifglsused\glslabel + {% + \glsifplural + {% + \glscapscase + {% + \glsabbrvfont{\glsaccessshortpl{\glslabel}}\glsinsert + }% + {% + \glsabbrvfont{\Glsaccessshortpl{\glslabel}}\glsinsert + }% + {% + \mfirstucMakeUppercase + {\glsabbrvfont{\glsaccessshortpl{\glslabel}}\glsinsert}% + }% + }% + {% + \glscapscase + {% + \glsabbrvfont{\glsaccessshort{\glslabel}}\glsinsert + }% + {% + \glsabbrvfont{\Glsaccessshort{\glslabel}}\glsinsert + }% + {% + \mfirstucMakeUppercase + {\glsabbrvfont{\glsaccessshort{\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*{\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}% + \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@#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}% + #3}% + }% +} +\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 + }% +} +\newabbreviationstyle{long-short}% +{% + \renewcommand*{\CustomAbbreviationFields}{% + name={\protect\glsabbrvfont{\the\glsshorttok}}, + sort={\the\glsshorttok}, + first={\protect\glsfirstlongfont{\the\glslongtok}% + \protect\glsxtrfullsep{\the\glslabeltok}% + (\protect\glsfirstabbrvfont{\the\glsshorttok})},% + firstplural={\protect\glsfirstlongfont{\the\glslongpltok}% + \protect\glsxtrfullsep{\the\glslabeltok}% + (\protect\glsfirstabbrvfont{\the\glsshortpltok})},% + plural={\protect\glsabbvfont{\the\glsshortpltok}},% + description={\the\glslongtok}}% + \renewcommand*{\GlsXtrPostNewAbbreviation}{% + \glshasattribute{\the\glslabeltok}{regular}% + {% + \glssetattribute{\the\glslabeltok}{regular}{false}% + }% + {}% + }% +}% +{% + \renewcommand*{\abbrvpluralsuffix}{\glspluralsuffix}% + \renewcommand*{\glsabbrvfont}[1]{\glsabbrvdefaultfont{##1}}% + \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}% + \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}% + \renewcommand*{\glsxtrfullformat}[2]{% + \glsfirstlongfont{\glsaccesslong{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstabbrvfont{\glsaccessshort{##1}})% + }% + \renewcommand*{\glsxtrfullplformat}[2]{% + \glsfirstlongfont{\glsaccesslongpl{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstabbrvfont{\glsaccessshortpl{##1}})% + }% + \renewcommand*{\Glsxtrfullformat}[2]{% + \glsfirstlongfont{\Glsaccesslong{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstabbrvfont{\glsaccessshort{##1}})% + }% + \renewcommand*{\Glsxtrfullplformat}[2]{% + \glsfirstlongfont{\Glsaccesslongpl{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstabbrvfont{\glsaccessshortpl{##1}})% + }% +} +\setabbreviationstyle{long-short} +\newabbreviationstyle{long-short-desc}% +{% + \renewcommand*{\CustomAbbreviationFields}{% + name={\protect\glsxtrfullformat{\the\glslabeltok}{}}, + sort={\the\glsshorttok},% + first={\protect\glsfirstlongfont{\the\glslongtok}% + \protect\glsxtrfullsep{\the\glslabeltok}% + (\protect\glsfirstabbrvfont{\the\glsshorttok})},% + firstplural={\protect\glsfirstlongfont{\the\glslongpltok}% + \protect\glsxtrfullsep{\the\glslabeltok}% + (\protect\glsfirstabbrvfont{\the\glsshortpltok})},% + plural={\protect\glsabbvfont{\the\glsshortpltok}}}% + \renewcommand*{\GlsXtrPostNewAbbreviation}{% + \glshasattribute{\the\glslabeltok}{regular}% + {% + \glssetattribute{\the\glslabeltok}{regular}{false}% + }% + {}% + }% +}% +{% + \GlsXtrUseAbbrStyleFmts{long-short}% +} +\newabbreviationstyle{short-long}% +{% + \renewcommand*{\CustomAbbreviationFields}{% + name={\protect\glsabbrvfont{\the\glsshorttok}}, + sort={\the\glsshorttok}, + description={\the\glslongtok},% + first={\protect\glsfirstabbrvfont{\the\glsshorttok}% + \protect\glsxtrfullsep{\the\glslabeltok}% + (\protect\glsfirstlongfont{\the\glslongtok})},% + firstplural={\protect\glsfirstabbrvfont{\the\glsshortpltok}% + \protect\glsxtrfullsep{\the\glslabeltok}% + (\protect\glsfirstlongfont{\the\glslongpltok})},% + plural={\protect\glsabbvfont{\the\glsshortpltok}}}% + \renewcommand*{\GlsXtrPostNewAbbreviation}{% + \glshasattribute{\the\glslabeltok}{regular}% + {% + \glssetattribute{\the\glslabeltok}{regular}{false}% + }% + {}% + }% +}% +{% + \renewcommand*{\abbrvpluralsuffix}{\glspluralsuffix}% + \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}% + \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}% + \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}% + \renewcommand*{\glsxtrfullformat}[2]{% + \glsfirstabbrvfont{\glsaccessshort{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstlongfont{\glsaccesslong{##1}})% + }% + \renewcommand*{\glsxtrfullplformat}[2]{% + \glsfirstabbrvfont{\glsaccessshortpl{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstlongfont{\glsaccesslongpl{##1}})% + }% + \renewcommand*{\Glsxtrfullformat}[2]{% + \glsfirstabbrvfont{\Glsaccessshort{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstlongfont{\glsaccesslong{##1}})% + }% + \renewcommand*{\Glsxtrfullplformat}[2]{% + \glsfirstabbrvfont{\Glsaccessshortpl{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstlongfont{\glsaccesslongpl{##1}})% + }% +} +\newabbreviationstyle{short-long-desc}% +{% + \renewcommand*{\CustomAbbreviationFields}{% + name={\protect\glsxtrfullformat{\the\glslabeltok}{}}, + sort={\the\glsshorttok},% + first={\protect\glsfirstabbrvfont{\the\glsshorttok}% + \protect\glsxtrfullsep{\the\glslabeltok}% + (\protect\glsfirstlongfont{\the\glslongtok})},% + firstplural={\protect\glsfirstabbrvfont{\the\glsshortpltok}% + \protect\glsxtrfullsep{\the\glslabeltok}% + (\protect\glsfirstlongfont{\the\glslongpltok})},% + plural={\protect\glsabbvfont{\the\glsshortpltok}}}% + \renewcommand*{\GlsXtrPostNewAbbreviation}{% + \glshasattribute{\the\glslabeltok}{regular}% + {% + \glssetattribute{\the\glslabeltok}{regular}{false}% + }% + {}% + }% +}% +{% + \GlsXtrUseAbbrStyleFmts{short-long}% +} +\newabbreviationstyle{footnote}% +{% + \renewcommand*{\CustomAbbreviationFields}{% + name={\protect\glsabbrvfont{\the\glsshorttok}}, + sort={\the\glsshorttok}, + description={\the\glslongtok},% + first={\protect\glsfirstabbrvfont{\the\glsshorttok}% + \protect\footnote{\protect\glsfirstlongfont{\the\glslongtok}}},% + firstplural={\protect\glsfirstabbrvfont{\the\glsshortpltok}% + \protect\footnote{\protect\glsfirstlongfont{\the\glslongpltok}}},% + plural={\protect\glsabbvfont{\the\glsshortpltok}}}% + \renewcommand*{\GlsXtrPostNewAbbreviation}{% + \glssetattribute{\the\glslabeltok}{nohyperfirst}{true}% + \glshasattribute{\the\glslabeltok}{regular}% + {% + \glssetattribute{\the\glslabeltok}{regular}{false}% + }% + {}% + }% +}% +{% + \renewcommand*{\abbrvpluralsuffix}{\glspluralsuffix}% + \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}% + \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}% + \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}% + \renewcommand*{\glsxtrfullformat}[2]{% + \glsfirstabbrvfont{\glsaccessshort{##1}}##2% + \protect\footnote{\glsfirstlongfont{\glsaccesslong{##1}}}% + }% + \renewcommand*{\glsxtrfullplformat}[2]{% + \glsfirstabbrvfont{\glsaccessshortpl{##1}}##2% + \protect\footnote{\glsfirstlongfont{\glsaccesslongpl{##1}}}% + }% + \renewcommand*{\Glsxtrfullformat}[2]{% + \glsfirstabbrvfont{\Glsaccessshort{##1}}##2% + \protect\footnote{\glsfirstlongfont{\glsaccesslong{##1}}}% + }% + \renewcommand*{\Glsxtrfullplformat}[2]{% + \glsfirstabbrvfont{\Glsaccessshortpl{##1}}##2% + \protect\footnote{\glsfirstlongfont{\glsaccesslongpl{##1}}}% + }% + \renewcommand*{\glsxtrinlinefullformat}[2]{% + \glsfirstabbrvfont{\glsaccessshort{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstlongfont{\glsaccesslong{##1}})% + }% + \renewcommand*{\glsxtrinlinefullplformat}[2]{% + \glsfirstabbrvfont{\glsaccessshortpl{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstlongfont{\glsaccesslongpl{##1}})% + }% + \renewcommand*{\Glsxtrinlinefullformat}[2]{% + \glsfirstabbrvfont{\Glsaccessshort{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstlongfont{\glsaccesslong{##1}})% + }% + \renewcommand*{\Glsxtrinlinefullplformat}[2]{% + \glsfirstabbrvfont{\Glsaccessshortpl{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstlongfont{\glsaccesslongpl{##1}})% + }% +} +\newabbreviationstyle{postfootnote}% +{% + \renewcommand*{\CustomAbbreviationFields}{% + name={\protect\glsabbrvfont{\the\glsshorttok}}, + sort={\the\glsshorttok}, + description={\the\glslongtok},% + first={\protect\glsfirstabbrvfont{\the\glsshorttok}% + \protect\footnote{\protect\glsfirstlongfont{\the\glslongtok}}},% + firstplural={\protect\glsfirstabbrvfont{\the\glsshortpltok}% + \protect\footnote{\protect\glsfirstlongfont{\the\glslongpltok}}},% + plural={\protect\glsabbvfont{\the\glsshortpltok}}}% + \renewcommand*{\GlsXtrPostNewAbbreviation}{% + \csdef{glsxtrpostlink\glscategorylabel}{% + \glsxtrifwasfirstuse{\glsxtrdopostpunc{\protect\footnote + {\glsfirstlongfont{\glsentrylong{\glslabel}}}}}{}% + }% + \glshasattribute{\the\glslabeltok}{regular}% + {% + \glssetattribute{\the\glslabeltok}{regular}{false}% + }% + {}% + }% +}% +{% + \renewcommand*{\abbrvpluralsuffix}{\glspluralsuffix}% + \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}% + \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}% + \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}% + \renewcommand*{\glsxtrfullformat}[2]{% + \glsfirstabbrvfont{\glsaccessshort{##1}}##2% + }% + \renewcommand*{\glsxtrfullplformat}[2]{% + \glsfirstabbrvfont{\glsaccessshortpl{##1}}##2% + }% + \renewcommand*{\Glsxtrfullformat}[2]{% + \glsfirstabbrvfont{\Glsaccessshort{##1}}##2% + }% + \renewcommand*{\Glsxtrfullplformat}[2]{% + \glsfirstabbrvfont{\Glsaccessshortpl{##1}}##2% + }% + \renewcommand*{\glsxtrinlinefullformat}[2]{% + \glsfirstabbrvfont{\glsaccessshort{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstlongfont{\glsaccesslong{##1}})% + }% + \renewcommand*{\glsxtrinlinefullplformat}[2]{% + \glsfirstabbrvfont{\glsaccessshortpl{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstlongfont{\glsaccesslongpl{##1}})% + }% + \renewcommand*{\Glsxtrinlinefullformat}[2]{% + \glsfirstabbrvfont{\Glsaccessshort{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstlongfont{\glsaccesslong{##1}})% + }% + \renewcommand*{\Glsxtrinlinefullplformat}[2]{% + \glsfirstabbrvfont{\Glsaccessshortpl{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstlongfont{\glsaccesslongpl{##1}})% + }% +} +\newabbreviationstyle{short}% +{% + \renewcommand*{\CustomAbbreviationFields}{% + name={\protect\glsabbrvfont{\the\glsshorttok}}, + 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}{\glspluralsuffix}% + \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}% + \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}% + \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}% + \renewcommand*{\glsxtrinlinefullformat}[2]{% + \protect\glsfirstabbrvfont{\glsaccessshort{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstlongfont{\glsaccesslong{##1}})% + }% + \renewcommand*{\glsxtrinlinefullplformat}[2]{% + \protect\glsfirstabbrvfont{\glsaccessshortpl{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstlongfont{\glsaccesslongpl{##1}})% + }% + \renewcommand*{\Glsxtrinlinefullformat}[2]{% + \protect\glsfirstabbrvfont{\glsaccessshort{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstlongfont{\Glsaccesslong{##1}})% + }% + \renewcommand*{\Glsxtrinlinefullplformat}[2]{% + \protect\glsfirstabbrvfont{\glsaccessshortpl{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstlongfont{\Glsaccesslongpl{##1}})% + }% + \renewcommand*{\glsxtrfullformat}[2]{% + \glsfirstabbrvfont{\glsaccessshort{##1}}##2% + }% + \renewcommand*{\glsxtrfullplformat}[2]{% + \glsfirstabbrvfont{\glsaccessshortpl{##1}}##2% + }% + \renewcommand*{\Glsxtrfullformat}[2]{% + \glsfirstabbrvfont{\glsaccessshort{##1}}##2% + }% + \renewcommand*{\Glsxtrfullplformat}[2]{% + \glsfirstabbrvfont{\glsaccessshortpl{##1}}##2% + }% +} +\setabbreviationstyle[acronym]{short} +\newabbreviationstyle{short-desc}% +{% + \renewcommand*{\CustomAbbreviationFields}{% + name={\protect\glsextrinlinefullformat{\the\glslabeltok}}, + 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}{\glspluralsuffix}% + \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}% + \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}% + \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}% + \renewcommand*{\glsxtrinlinefullformat}[2]{% + \glsfirstabbrvfont{\glsaccessshort{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstlongfont{\glsaccesslong{##1}})% + }% + \renewcommand*{\glsxtrinlinefullplformat}[2]{% + \glsfirstabbrvfont{\glsaccessshortpl{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstlongfont{\glsaccesslongpl{##1}})% + }% + \renewcommand*{\Glsxtrinlinefullformat}[2]{% + \glsfirstabbrvfont{\Glsaccessshort{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstlongfont{\glsaccesslong{##1}})% + }% + \renewcommand*{\Glsxtrinlinefullplformat}[2]{% + \glsfirstabbrvfont{\Glsaccessshortpl{##1}}##2\glsxtrfullsep{##1}% + (\glsfirstlongfont{\glsaccesslongpl{##1}})% + }% + \renewcommand*{\glsxtrfullformat}[2]{% + \glsfirstabbrvfont{\glsaccessshort{##1}}##2% + }% + \renewcommand*{\glsxtrfullplformat}[2]{% + \glsfirstabbrvfont{\glsaccessshortpl{##1}}##2% + }% + \renewcommand*{\Glsxtrfullformat}[2]{% + \glsfirstabbrvfont{\glsaccessshort{##1}}##2% + }% + \renewcommand*{\Glsxtrfullplformat}[2]{% + \glsfirstabbrvfont{\glsaccessshortpl{##1}}##2% + }% +} +\newabbreviationstyle{long-desc}% +{% + \renewcommand*{\CustomAbbreviationFields}{% + name={\protect\protect\glsfirstlongfont{\the\glslongtok}}, + sort={\the\glslongtok}, + first={\protect\glsfirstlongfont{\the\glslongtok}}, + firstplural={\protect\glsfirstlongfont{\the\glslongpltok}}, + text={\the\glslongtok}, + plural={\the\glslongpltok}% + }% + \renewcommand*{\GlsXtrPostNewAbbreviation}{% + \glssetattribute{\the\glslabeltok}{regular}{true}}% +}% +{% + \renewcommand*{\abbrvpluralsuffix}{\glspluralsuffix}% + \renewcommand*\glsabbrvfont[1]{\glsabbrvdefaultfont{##1}}% + \renewcommand*{\glsfirstabbrvfont}[1]{\glsfirstabbrvdefaultfont{##1}}% + \renewcommand*{\glsfirstlongfont}[1]{\glsfirstlongdefaultfont{##1}}% + \renewcommand*{\glsxtrinlinefullformat}[2]{% + \glsfirstlongfont{\glsaccesslong{##1}}##2\glsxtrfullsep{##1}% + (\protect\glsfirstabbrvfont{\glsaccessshort{##1}})% + }% + \renewcommand*{\glsxtrinlinefullplformat}[2]{% + \glsfirstlongfont{\glsaccesslongpl{##1}}##2\glsxtrfullsep{##1}% + (\protect\glsfirstabbrvfont{\glsaccessshortpl{##1}})% + }% + \renewcommand*{\Glsxtrinlinefullformat}[2]{% + \glsfirstlongfont{\Glsaccesslong{##1}}##2\glsxtrfullsep{##1}% + (\protect\glsfirstabbrvfont{\glsaccessshort{##1}})% + }% + \renewcommand*{\Glsxtrinlinefullplformat}[2]{% + \glsfirstlongfont{\Glsaccesslongpl{##1}}##2\glsxtrfullsep{##1}% + (\protect\glsfirstabbrvfont{\glsaccessshortpl{##1}})% + }% + \renewcommand*{\glsxtrfullformat}[2]{% + \glsfirstlongfont{\glsaccesslong{##1}}##2% + }% + \renewcommand*{\glsxtrfullplformat}[2]{% + \glsfirstlongfont{\glsaccesslongpl{##1}}##2% + }% + \renewcommand*{\Glsxtrfullformat}[2]{% + \glsfirstlongfont{\glsaccesslong{##1}}##2% + }% + \renewcommand*{\Glsxtrfullplformat}[2]{% + \glsfirstlongfont{\glsaccesslongpl{##1}}##2% + }% +} +\newabbreviationstyle{long}% +{% + \renewcommand*{\CustomAbbreviationFields}{% + name={\protect\glsabbrvfont{\the\glsshorttok}}, + sort={\the\glsshorttok}, + first={\protect\glsfirstlongfont{\the\glslongtok}}, + firstplural={\protect\glsfirstlongfont{\the\glslongpltok}}, + text={\the\glslongtok}, + plural={\the\glslongpltok},% + description={\the\glslongtok}% + }% + \renewcommand*{\GlsXtrPostNewAbbreviation}{% + \glssetattribute{\the\glslabeltok}{regular}{true}}% +}% +{% + \GlsXtrUseAbbrStyleFmts{long-desc}% +} +\newcommand*{\glsxtrscfont}[1]{\textsc{#1}} +\newcommand*{\glsxtrscsuffix}{\glstextup{\glspluralsuffix}} +\newabbreviationstyle{long-short-sc}% +{% + \GlsXtrUseAbbrStyleSetup{long-short}% +}% +{% + \GlsXtrUseAbbrStyleFmts{long-short}% + \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrscsuffix}% + \renewcommand*\glsabbrvfont[1]{\glsxtrscfont{##1}}% +} +\newabbreviationstyle{long-short-sc-desc}% +{% + \GlsXtrUseAbbrStyleSetup{long-short-desc}% +}% +{% + \GlsXtrUseAbbrStyleFmts{long-short-desc}% + \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrscsuffix}% + \renewcommand*\glsabbrvfont[1]{\glsxtrscfont{##1}}% +} +\newabbreviationstyle{short-sc-long}% +{% + \GlsXtrUseAbbrStyleSetup{short-long}% +}% +{% + \GlsXtrUseAbbrStyleFmts{short-long}% + \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrscsuffix}% + \renewcommand*\glsabbrvfont[1]{\glsxtrscfont{##1}}% +} +\newabbreviationstyle{short-sc-long-desc}% +{% + \GlsXtrUseAbbrStyleSetup{short-long-desc}% +}% +{% + \GlsXtrUseAbbrStyleFmts{short-long-desc}% + \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrscsuffix}% + \renewcommand*\glsabbrvfont[1]{\glsxtrscfont{##1}}% +} +\newabbreviationstyle{short-sc}% +{% + \GlsXtrUseAbbrStyleSetup{short}% +}% +{% + \GlsXtrUseAbbrStyleFmts{short}% + \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrscsuffix}% + \renewcommand*\glsabbrvfont[1]{\glsxtrscfont{##1}}% +} +\newabbreviationstyle{short-sc-desc}% +{% + \GlsXtrUseAbbrStyleSetup{short-desc}% +}% +{% + \GlsXtrUseAbbrStyleFmts{short-desc}% + \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrscsuffix}% + \renewcommand*\glsabbrvfont[1]{\glsxtrscfont{##1}}% +} +\newabbreviationstyle{long-sc}% +{% + \GlsXtrUseAbbrStyleSetup{long}% +}% +{% + \GlsXtrUseAbbrStyleFmts{long}% + \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrscsuffix}% + \renewcommand*\glsabbrvfont[1]{\glsxtrscfont{##1}}% +} +\newabbreviationstyle{long-desc-sc}% +{% + \GlsXtrUseAbbrStyleSetup{long-desc}% +}% +{% + \GlsXtrUseAbbrStyleFmts{long-desc}% + \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrscsuffix}% + \renewcommand*\glsabbrvfont[1]{\glsxtrscfont{##1}}% +} +\newabbreviationstyle{footnote-sc}% +{% + \GlsXtrUseAbbrStyleSetup{footnote}% +}% +{% + \GlsXtrUseAbbrStyleFmts{footnote}% + \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrscsuffix}% + \renewcommand*\glsabbrvfont[1]{\glsxtrscfont{##1}}% +} +\newabbreviationstyle{postfootnote-sc}% +{% + \GlsXtrUseAbbrStyleSetup{postfootnote}% +}% +{% + \GlsXtrUseAbbrStyleFmts{postfootnote}% + \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrscsuffix}% + \renewcommand*\glsabbrvfont[1]{\glsxtrscfont{##1}}% +} +\newcommand*{\glsxtrsmfont}[1]{\textsmaller{#1}} +\newcommand*{\glsxtrsmsuffix}{\glspluralsuffix} +\newabbreviationstyle{long-short-sm}% +{% + \GlsXtrUseAbbrStyleSetup{long-short}% +}% +{% + \GlsXtrUseAbbrStyleFmts{long-short}% + \renewcommand*\glsabbrvfont[1]{\glsxtrsmfont{##1}}% + \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrsmsuffix}% +} +\newabbreviationstyle{long-short-sm-desc}% +{% + \GlsXtrUseAbbrStyleSetup{long-short-desc}% +}% +{% + \GlsXtrUseAbbrStyleFmts{long-short-desc}% + \renewcommand*\glsabbrvfont[1]{\glsxtrsmfont{##1}}% + \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrsmsuffix}% +} +\newabbreviationstyle{short-sm-long}% +{% + \GlsXtrUseAbbrStyleSetup{short-long}% +}% +{% + \GlsXtrUseAbbrStyleFmts{short-long}% + \renewcommand*\glsabbrvfont[1]{\glsxtrsmfont{##1}}% + \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrsmsuffix}% +} +\newabbreviationstyle{short-sm-long-desc}% +{% + \GlsXtrUseAbbrStyleSetup{short-long-desc}% +}% +{% + \GlsXtrUseAbbrStyleFmts{short-long-desc}% + \renewcommand*\glsabbrvfont[1]{\glsxtrsmfont{##1}}% + \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrsmsuffix}% +} +\newabbreviationstyle{short-sm}% +{% + \GlsXtrUseAbbrStyleSetup{short}% +}% +{% + \GlsXtrUseAbbrStyleFmts{short}% + \renewcommand*\glsabbrvfont[1]{\glsxtrsmfont{##1}}% + \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrsmsuffix}% +} +\newabbreviationstyle{short-sm-desc}% +{% + \GlsXtrUseAbbrStyleSetup{short-desc}% +}% +{% + \GlsXtrUseAbbrStyleFmts{short-desc}% + \renewcommand*\glsabbrvfont[1]{\glsxtrsmfont{##1}}% + \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrsmsuffix}% +} +\newabbreviationstyle{long-sm}% +{% + \GlsXtrUseAbbrStyleSetup{long}% +}% +{% + \GlsXtrUseAbbrStyleFmts{long}% + \renewcommand*\glsabbrvfont[1]{\glsxtrsmfont{##1}}% + \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrsmsuffix}% +} +\newabbreviationstyle{long-desc-sm}% +{% + \GlsXtrUseAbbrStyleSetup{long-desc}% +}% +{% + \GlsXtrUseAbbrStyleFmts{long-desc}% + \renewcommand*\glsabbrvfont[1]{\glsxtrsmfont{##1}}% + \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrsmsuffix}% +} +\newabbreviationstyle{footnote-sm}% +{% + \GlsXtrUseAbbrStyleSetup{footnote}% +}% +{% + \GlsXtrUseAbbrStyleFmts{footnote}% + \renewcommand*\glsabbrvfont[1]{\glsxtrsmfont{##1}}% + \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrsmsuffix}% +} +\newabbreviationstyle{postfootnote-sm}% +{% + \GlsXtrUseAbbrStyleSetup{postfootnote}% +}% +{% + \GlsXtrUseAbbrStyleFmts{postfootnote}% + \renewcommand*\glsabbrvfont[1]{\glsxtrsmfont{##1}}% + \renewcommand*{\abbrvpluralsuffix}{\protect\glsxtrsmsuffix}% +} +\newabbreviationstyle{long-short-em}% +{% + \GlsXtrUseAbbrStyleSetup{long-short}% +}% +{% + \GlsXtrUseAbbrStyleFmts{long-short}% + \renewcommand*\glsabbrvfont[1]{\emph{##1}}% +} +\newabbreviationstyle{long-short-em-desc}% +{% + \GlsXtrUseAbbrStyleSetup{long-short-desc}% +}% +{% + \GlsXtrUseAbbrStyleFmts{long-short-desc}% + \renewcommand*\glsabbrvfont[1]{\emph{##1}}% +} +\newabbreviationstyle{short-em-long}% +{% + \GlsXtrUseAbbrStyleSetup{short-long}% +}% +{% + \GlsXtrUseAbbrStyleFmts{short-long}% + \renewcommand*\glsabbrvfont[1]{\emph{##1}}% +} +\newabbreviationstyle{short-em-long-desc}% +{% + \GlsXtrUseAbbrStyleSetup{short-long-desc}% +}% +{% + \GlsXtrUseAbbrStyleFmts{short-long-desc}% + \renewcommand*\glsabbrvfont[1]{\emph{##1}}% +} +\newabbreviationstyle{short-em}% +{% + \GlsXtrUseAbbrStyleSetup{short}% +}% +{% + \GlsXtrUseAbbrStyleFmts{short}% + \renewcommand*\glsabbrvfont[1]{\emph{##1}}% +} +\newabbreviationstyle{short-em-desc}% +{% + \GlsXtrUseAbbrStyleSetup{short-desc}% +}% +{% + \GlsXtrUseAbbrStyleFmts{short-desc}% + \renewcommand*\glsabbrvfont[1]{\emph{##1}}% +} +\newabbreviationstyle{long-em}% +{% + \GlsXtrUseAbbrStyleSetup{long}% +}% +{% + \GlsXtrUseAbbrStyleFmts{long}% + \renewcommand*\glsabbrvfont[1]{\emph{##1}}% +} +\newabbreviationstyle{long-desc-em}% +{% + \GlsXtrUseAbbrStyleSetup{long-desc}% +}% +{% + \GlsXtrUseAbbrStyleFmts{long-desc}% + \renewcommand*\glsabbrvfont[1]{\emph{##1}}% +} +\newabbreviationstyle{footnote-em}% +{% + \GlsXtrUseAbbrStyleSetup{footnote}% +}% +{% + \GlsXtrUseAbbrStyleFmts{footnote}% + \renewcommand*\glsabbrvfont[1]{\emph{##1}}% +} +\newabbreviationstyle{postfootnote-em}% +{% + \GlsXtrUseAbbrStyleSetup{postfootnote}% +}% +{% + \GlsXtrUseAbbrStyleFmts{postfootnote}% + \renewcommand*\glsabbrvfont[1]{\emph{##1}}% +} +\let\@glsxtr@org@markright\markright +\renewcommand*{\markright}[1]{% + \glsxtrmarkhook + \@glsxtr@org@markright{#1}% + \glsxtrrestoremarkhook +} +\let\@glsxtr@org@markboth\markboth +\renewcommand*{\markboth}[2]{% + \glsxtrmarkhook + \@glsxtr@org@markboth{#1}{#2}% + \glsxtrrestoremarkhook +} +\newcommand*{\glsxtrRevertMarks}{% + \let\markright\@glsxtr@org@markright + \let\markboth\@glsxtr@org@markboth +} +\newcommand*{\glsxtrmarkhook}{% + \let\@glsxtr@org@MakeUppercase\MakeUppercase + \let\@glsxtr@org@glsxtrtitleshort\glsxtrtitleshort + \let\@glsxtr@org@glsxtrtitleshortpl\glsxtrtitleshortpl + \let\@glsxtr@org@Glsxtrtitleshort\Glsxtrtitleshort + \let\@glsxtr@org@Glsxtrtitleshortpl\Glsxtrtitleshortpl + \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\MakeUppercase\MakeTextUppercase + \let\glsxtrtitleshort\glsxtrheadshort + \let\glsxtrtitleshortpl\glsxtrheadshortpl + \let\Glsxtrtitleshort\Glsxtrheadshort + \let\Glsxtrtitleshortpl\Glsxtrheadshortpl + \let\glsxtrtitletext\glsxtrheadtext + \let\Glsxtrtitletext\Glsxtrheadtext + \let\glsxtrtitleplural\glsxtrheadplural + \let\Glsxtrtitleplural\Glsxtrheadplural + \let\glsxtrtitlefirst\glsxtrheadfirst + \let\Glsxtrtitlefirst\Glsxtrheadfirst + \let\glsxtrtitlefirstplural\glsxtrheadfirstplural + \let\Glsxtrtitlefirstplural\Glsxtrheadfirstplural +} +\newcommand*{\glsxtrrestoremarkhook}{% + \let\MakeUppercase\@glsxtr@org@MakeUppercase + \let\glsxtrtitleshort\@glsxtr@org@glsxtrtitleshort + \let\glsxtrtitleshortpl\@glsxtr@org@glsxtrtitleshortpl + \let\Glsxtrtitleshort\@glsxtr@org@Glsxtrtitleshort + \let\Glsxtrtitleshortpl\@glsxtr@org@Glsxtrtitleshortpl + \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 +} +\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]{% + \glsxtrshort[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}[]% +} +\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*{\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}[]% +} +\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}[]% +} +\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}[]% +} +\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}[]% +} +\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*{\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*{\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}} +} +\newcommand*{\RequireGlossariesExtraLang}[1]{% + \@ifundefined{ver@glossariesxtr-#1.ldf}{\input{glossariesxtr-#1.ldf}}{}% +} +\newcommand*{\ProvidesGlossariesExtraLang}[1]{% + \ProvidesFile{glossariesxtr-#1.ldf}% +} +\@ifpackageloaded{tracklang} +{% + \AnyTrackedLanguages + {% + \ForEachTrackedDialect{\this@dialect}{% + \IfTrackedLanguageFileExists{\this@dialect}% + {glossariesxtr-}% prefix + {.ldf}% + {% + \RequireGlossariesExtraLang{\CurrentTrackedTag}% + }% + {% + }% + }% + }% + {}% +} +{} +\endinput +%% +%% End of file `glossaries-extra.sty'. -- cgit v1.2.3