summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty')
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty1345
1 files changed, 1068 insertions, 277 deletions
diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty
index 6cef1c74f7c..22e40c389af 100644
--- a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty
@@ -21,7 +21,7 @@
%%
%% The Current Maintainer of this work is Nicola Talbot.
%%
-%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-stylemods.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib.
+%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-xr.bib.
%%
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossaries-extra}[2017/09/11 v1.20 (NLCT)]
+\ProvidesPackage{glossaries-extra}[2017/11/03 v1.21 (NLCT)]
\RequirePackage{xkeyval}
\RequirePackage{etoolbox}
\@ifpackageloaded{glossaries}
@@ -120,23 +120,13 @@
\newcommand*{\GlsXtrSetDefaultNumberFormat}[1]{%
\renewcommand*{\@glsxtr@defaultnumberformat}{#1}%
}%
-\newcommand*{\@@glsxtr@record}[3]{%
+\newcommand*{\@glsxtr@do@record@wrglossary}[1]{%
\begingroup
- \let\@glsnumberformat\@glsxtr@defaultnumberformat
- \def\@glsxtr@thevalue{}%
- \def\@glsxtr@theHvalue{\@glsxtr@thevalue}%
- \let\@glsxtr@org@theHvalue\@glsxtr@theHvalue
- \ifcsdef{glo@#2@counter}%
- {%
- \edef\@gls@counter{\csname glo@#2@counter\endcsname}%
- }%
- {%
- \def\@gls@counter{page}%
- }%
- \setkeys{#3}{#1}%
\ifKV@glslink@noindex
\else
- \glswriteentry{#2}%
+ \edef\@gls@label{\glsdetoklabel{#1}}%
+ \let\glslabel\@gls@label
+ \glswriteentry{#1}%
{%
\ifdefempty{\@glsxtr@thevalue}%
{%
@@ -153,15 +143,61 @@
\let\@@do@@wrglossary\@glsxtr@dorecordnodefer
}%
\ifx\@glsxtr@record@setting\@glsxtr@record@setting@alsoindex
- \glsxtr@@do@wrglossary{#2}%
+ \glsxtr@@do@wrglossary{#1}%
\else
- \edef\@gls@label{\glsdetoklabel{#2}}%
+ \@@glsxtrwrglossmark
\@@do@@wrglossary
\fi
}%
\fi
\endgroup
}
+\newcommand*{\glsxtr@do@alsoindex@wrglossary}[1]{%
+ \glsxtr@@do@wrglossary{#1}%
+ \@glsxtr@do@record@wrglossary{#1}%
+}
+\newcommand*{\@@glsxtr@record}[3]{%
+ \ifglsentryexists{#2}{}%
+ {%
+ \@@glsxtrwrglossmark
+ \begingroup
+ \edef\@gls@label{\glsdetoklabel{#2}}%
+ \let\glslabel\@gls@label
+ \let\@glsnumberformat\@glsxtr@defaultnumberformat
+ \def\@glsxtr@thevalue{}%
+ \def\@glsxtr@theHvalue{\@glsxtr@thevalue}%
+ \let\@glsxtr@org@theHvalue\@glsxtr@theHvalue
+ \def\@gls@counter{page}%
+ \@gls@setdefault@glslink@opts
+ \setkeys{#3}{#1}%
+ \ifKV@glslink@noindex
+ \else
+ \glswriteentry{#2}%
+ {%
+ \ifdefempty{\@glsxtr@thevalue}%
+ {%
+ \ifx\@glsxtr@org@theHvalue\@glsxtr@theHvalue
+ \else
+ \let\theHglsentrycounter\@glsxtr@theHvalue
+ \fi
+ \glsxtr@saveentrycounter
+ \let\@@do@@wrglossary\@glsxtr@dorecord
+ }%
+ {%
+ \let\theglsentrycounter\@glsxtr@thevalue
+ \let\theHglsentrycounter\@glsxtr@theHvalue
+ \let\@@do@@wrglossary\@glsxtr@dorecordnodefer
+ }%
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@alsoindex
+ \glsxtr@@do@wrglossary{#2}%
+ \else
+ \@@do@@wrglossary
+ \fi
+ }%
+ \fi
+ \endgroup
+ }%
+}
\newcommand*\@glsxtr@dorecord{%
\global\let\@glsrecordlocref\theglsentrycounter
\let\@glsxtr@orgprefix\@glo@counterprefix
@@ -206,6 +242,7 @@
\eappto\@glsxtr@counterrecordhook{\noexpand\@glsxtr@docounterrecord{#1}}%
}
\newcommand*{\@glsxtr@recordsee}[2]{%
+ \@@glsxtrwrglossmark
\def\@gls@xref{#2}%
\@onelevel@sanitize\@gls@xref
\protected@write\@auxout{}{\string\glsxtr@recordsee{#1}{\@gls@xref}}%
@@ -213,7 +250,7 @@
\newcommand{\printunsrtglossaryunit}{%
\print@noop@unsrtglossaryunit
}
-\newcommand*{\glsxtr@setup@record}{}
+\newcommand*{\glsxtr@setup@record}{\let\@@do@wrglossary\glsxtr@@do@wrglossary}
\newcommand*{\glsxtr@indexonly@saveentrycounter}{%
\ifKV@glslink@noindex
\else
@@ -257,6 +294,8 @@
}
\newcommand*{\@glsxtr@record@setting}{off}
\newcommand*{\@glsxtr@record@setting@alsoindex}{alsoindex}
+\newcommand*{\@glsxtr@record@setting@only}{only}
+\newcommand*{\@glsxtr@record@setting@off}{off}
\define@choicekey{glossaries-extra.sty}{record}[\val\nr]%
{off,only,alsoindex}%
[only]%
@@ -264,7 +303,7 @@
\let\@glsxtr@record@setting\val
\ifcase\nr\relax
\def\glsxtr@setup@record{%
- \renewcommand*{\@do@seeglossary}{\@glsxtr@org@doseeglossary}%
+ \renewcommand*{\@do@seeglossary}{\@glsxtr@doseeglossary}%
\renewcommand*{\@glsxtr@record}[3]{}%
\let\@@do@wrglossary\glsxtr@@do@wrglossary
\let\@gls@saveentrycounter\glsxtr@indexonly@saveentrycounter
@@ -279,7 +318,7 @@
\@glsxtr@autoseeindexfalse
\let\@do@seeglossary\@glsxtr@recordsee
\let\@glsxtr@record\@@glsxtr@record
- \let\@@do@wrglossary\@gobble
+ \let\@@do@wrglossary\@glsxtr@do@record@wrglossary
\let\@gls@saveentrycounter\relax
\let\glsxtrundefaction\@glsxtr@warn@undefaction
\let\glsxtr@warnonexistsordo\@glsxtr@warn@onexistsordo
@@ -292,9 +331,9 @@
}%
\or
\def\glsxtr@setup@record{%
- \renewcommand*{\@do@seeglossary}{\@glsxtr@org@doseeglossary}%
+ \renewcommand*{\@do@seeglossary}{\@glsxtr@dosee@alsoindex@glossary}%
\let\@glsxtr@record\@@glsxtr@record
- \let\@@do@wrglossary\glsxtr@@do@wrglossary
+ \let\@@do@wrglossary\glsxtr@do@alsoindex@wrglossary
\let\@gls@saveentrycounter\glsxtr@indexonly@saveentrycounter
\let\glsxtrundefaction\@glsxtr@warn@undefaction
\let\glsxtr@warnonexistsordo\@glsxtr@warn@onexistsordo
@@ -338,8 +377,52 @@
\let\GlossariesExtraWarningNoLine\@gobble
\glsxtr@dooption{nowarn}%
}
+\newcommand*{\@glsxtr@defpostpunc}{}
\@glsxtr@declareoption{postdot}{%
\glsxtr@dooption{nopostdot=false}%
+ \renewcommand*{\@glsxtr@defpostpunc}{%
+ \renewcommand*{\glspostdescription}{%
+ \ifglsnopostdot\else.\spacefactor\sfcode`\. \fi}%
+ }%
+}
+
+\define@choicekey{glossaries-extra.sty}{nopostdot}{true,false}[true]{%
+ \glsxtr@dooption{nopostdot=#1}%
+ \renewcommand*{\@glsxtr@defpostpunc}{%
+ \renewcommand*{\glspostdescription}{%
+ \ifglsnopostdot\else.\spacefactor\sfcode`\. \fi}%
+ }%
+}
+\define@key{glossaries-extra.sty}{postpunc}{%
+ \glsxtr@dooption{nopostdot=false}%
+ \ifstrequal{#1}{dot}%
+ {%
+ \renewcommand*{\@glsxtr@defpostpunc}{%
+ \renewcommand*{\glspostdescription}{.\spacefactor\sfcode`\. }%
+ }%
+ }%
+ {%
+ \ifstrequal{#1}{comma}%
+ {%
+ \renewcommand*{\@glsxtr@defpostpunc}{%
+ \renewcommand*{\glspostdescription}{,}%
+ }%
+ }%
+ {%
+ \ifstrequal{#1}{none}%
+ {%
+ \glsxtr@dooption{nopostdot=true}%
+ \renewcommand*{\@glsxtr@defpostpunc}{%
+ \renewcommand*{\glspostdescription}{}%
+ }%
+ }%
+ {%
+ \renewcommand*{\@glsxtr@defpostpunc}{%
+ \renewcommand*{\glspostdescription}{#1}%
+ }%
+ }%
+ }%
+ }%
}
\newcommand*{\glsxtrabbrvtype}{\glsdefaulttype}
\newcommand*{\@glsxtr@abbreviationsdef}{}
@@ -433,7 +516,7 @@
\newcommand*{\@glsxtr@setupshortcuts}{}
\newcommand*{\@glsxtr@shortcutsval}{\ifglsacrshortcuts acro\else none\fi}%
\define@choicekey{glossaries-extra.sty}{shortcuts}[\val\nr]%
- {acronyms,acro,abbreviations,abbr,other,all,true,none,false,ac}[true]{%
+ {acronyms,acro,abbreviations,abbr,other,all,true,ac,none,false}[true]{%
\let\@glsxtr@shortcutsval\val
\ifcase\nr\relax % acronyms
\renewcommand*{\@glsxtr@setupshortcuts}{%
@@ -460,24 +543,24 @@
\or % all
\renewcommand*{\@glsxtr@setupshortcuts}{%
\glsacrshortcutstrue
- \DefineAcronymSynonyms
+ \GlsXtrDefineAcShortcuts
\GlsXtrDefineAbbreviationShortcuts
\GlsXtrDefineOtherShortcuts
}%
\or % true
\renewcommand*{\@glsxtr@setupshortcuts}{%
\glsacrshortcutstrue
- \DefineAcronymSynonyms
+ \GlsXtrDefineAcShortcuts
\GlsXtrDefineAbbreviationShortcuts
\GlsXtrDefineOtherShortcuts
}%
- \or % none, false
- \renewcommand*{\@glsxtr@setupshortcuts}{}%
\or % ac
\renewcommand*{\@glsxtr@setupshortcuts}{%
\glsacrshortcutstrue
\GlsXtrDefineAcShortcuts
}%
+ \else % none, false
+ \renewcommand*{\@glsxtr@setupshortcuts}{}%
\fi
}
\newcommand*{\@glsxtr@doaccsupp}{}
@@ -506,23 +589,32 @@
\RequirePackage{glossaries-extra-stylemods}}%
}%
{%
- \renewcommand*{\@glsxtr@redefstyles}{}%
- \@for\@glsxtr@tmp:=#1\do{%
- \IfFileExists{glossary-\@glsxtr@tmp.sty}%
- {%
- \eappto\@glsxtr@redefstyles{%
- \noexpand\RequirePackage{glossary-\@glsxtr@tmp}}%
- }%
- {%
- \PackageError{glossaries-extra}%
- {Glossaries style package `glossary-\@glsxtr@tmp.sty'
- doesn't exist (did you mean to use the `style' key?)}%
- {The list of values (#1) in the `stylemods' key should
- match the glossary-xxx.sty files provided with
- glossaries.sty}%
+ \ifstrequal{#1}{all}%
+ {%
+ \renewcommand*{\@glsxtr@redefstyles}{%
+ \PassOptionsToPackage{all}{glossaries-extra-stylemods}%
+ \RequirePackage{glossaries-extra-stylemods}%
}%
}%
- \appto\@glsxtr@redefstyles{\RequirePackage{glossaries-extra-stylemods}}%
+ {%
+ \renewcommand*{\@glsxtr@redefstyles}{}%
+ \@for\@glsxtr@tmp:=#1\do{%
+ \IfFileExists{glossary-\@glsxtr@tmp.sty}%
+ {%
+ \eappto\@glsxtr@redefstyles{%
+ \noexpand\RequirePackage{glossary-\@glsxtr@tmp}}%
+ }%
+ {%
+ \PackageError{glossaries-extra}%
+ {Glossaries style package `glossary-\@glsxtr@tmp.sty'
+ doesn't exist (did you mean to use the `style' key?)}%
+ {The list of values (#1) in the `stylemods' key should
+ match the glossary-xxx.sty files provided with
+ glossaries.sty}%
+ }%
+ }%
+ \appto\@glsxtr@redefstyles{\RequirePackage{glossaries-extra-stylemods}}%
+ }
}%
}
\newcommand*{\@glsxtr@do@style}{}
@@ -532,12 +624,62 @@
\setglossarystyle{#1}%
}%
}
+\newcommand*{\@glsxtrwrglossmark}{}
+\newcommand*{\@@glsxtrwrglossmark}{}
+\AtBeginDocument{\renewcommand*{\@@glsxtrwrglossmark}{\@glsxtrwrglossmark}}
+\newcommand*{\glsxtrwrglossmark}{\ensuremath{\cdot}}
+\define@choicekey{glossaries-extra.sty}{debug}[\val\nr]%
+ {true,false,showtargets,showwrgloss,all}[true]{%
+ \ifcase\nr\relax % true
+ \glsxtr@dooption{debug=true}%
+ \renewcommand*{\@glsxtrwrglossmark}{}%
+ \or % false
+ \glsxtr@dooption{debug=false}%
+ \renewcommand*{\@glsxtrwrglossmark}{}%
+ \or % showtargets
+ \glsxtr@dooption{debug=showtargets}%
+ \or % showwrgloss
+ \glsxtr@dooption{debug=true}%
+ \renewcommand*{\@glsxtrwrglossmark}{\glsxtrwrglossmark}%
+ \or % all
+ \glsxtr@dooption{debug=showtargets}%
+ \renewcommand*{\@glsxtrwrglossmark}{\glsxtrwrglossmark}%
+ \fi
+ }
\DeclareOptionX*{%
\expandafter\glsxtr@dooption\expandafter{\CurrentOption}}
\ProcessOptionsX
\RequirePackage{glossaries}
\@glsxtr@doaccsupp
+\@glsxtr@defpostpunc
+\def\glsshowtarget#1{%
+ \glsxtrtitleorpdforheading
+ {%
+ \ifmmode
+ \texttt{\small [#1]}%
+ \else
+ \ifinner
+ \texttt{\small [#1]}%
+ \else
+ \marginpar{\texttt{\small #1}}%
+ \fi
+ \fi
+ }%
+ {[#1]}%
+ {\texttt{\small [#1]}}%
+}
\let\@glsxtr@org@doseeglossary\@do@seeglossary
+\newcommand*{\@glsxtr@doseeglossary}[2]{%
+ \glsdoifexists{#1}%
+ {%
+ \@@glsxtrwrglossmark
+ \@glsxtr@org@doseeglossary{#1}{#2}%
+ }%
+}
+\newcommand*{\@glsxtr@dosee@alsoindex@glossary}[2]{%
+ \@glsxtr@recordsee{#1}{#2}%
+ \@glsxtr@doseeglossary{#1}{#2}%
+}
\let\@glsxtr@org@gloautosee\@glo@autosee
\if@glsxtr@autoseeindex
\else
@@ -573,7 +715,11 @@
\glsxtr@setup@record
\@glsxtr@redef@forglsentries
}
-\let\glsxtr@@do@wrglossary\@@do@wrglossary
+\let\glsxtr@org@@do@wrglossary\@@do@wrglossary
+\newcommand*{\glsxtr@@do@wrglossary}[1]{%
+ \@@glsxtrwrglossmark
+ \glsxtr@org@@do@wrglossary{#1}%
+}
\let\glsxtr@saveentrycounter\@gls@saveentrycounter
\let\@gls@saveentrycounter\glsxtr@indexonly@saveentrycounter
\glsxtr@setup@record
@@ -699,11 +845,11 @@
}
\newcommand{\s@glsxtrifhasfield}[4]{%
\letcs{\glscurrentfieldvalue}{glo@\glsdetoklabel{#2}@#1}%
- \ifdef\glscurrentfieldvalue
+ \ifundef\glscurrentfieldvalue
+ {#4}%
{%
\ifdefempty\glscurrentfieldvalue{#4}{#3}%
}%
- {#4}%
}
\newcommand*{\glsxtrusefield}[2]{%
\@gls@entry@field{#1}{#2}%
@@ -742,6 +888,13 @@
\glsxtrsetfieldifexists{#1}{#2}%
{\protected@csedef{glo@\glsdetoklabel{#1}@#2}{#3}}%
}
+\newrobustcmd*{\GlsXtrIfFieldEqStr}[5]{%
+ \glsxtrifhasfield{#1}{#2}%
+ {%
+ \ifdefstring{\glscurrentfieldvalue}{#3}{#4}{#5}%
+ }%
+ {#5}%
+}
\ifglsentrycounter
\newcommand*{\glsxtrpageref}[1]{\pageref{glsentry-\glsdetoklabel{#1}}}
\else
@@ -1038,6 +1191,9 @@
\newcommand*{\glsxtruseseeformat}[2]{%
\glsseeformat[#1]{#2}{}%
}
+\renewcommand*{\glsseeitemformat}[1]{%
+ \glsifregular{#1}{\glsaccessname{#1}}{\glsaccesstext{#1}}%
+}
\newcommand*{\glsxtruseseealso}[1]{%
\glsdoifexists{#1}%
{%
@@ -1068,15 +1224,22 @@
}
\appto\@xdylocationclassorder{\space\string"seealso\string"}
\newrobustcmd*{\glsxtrindexseealso}[2]{%
- \def\@gls@xref{#2}%
- \@onelevel@sanitize\@gls@xref
- \@gls@checkmkidxchars\@gls@xref
- \gls@glossary{\csname glo@#1@type\endcsname}{%
- (indexentry
- :tkey (\csname glo@#1@index\endcsname)
- :xref (\string"\@gls@xref\string")
- :attr \string"seealso\string"
- )
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@alsoindex
+ \@glsxtr@recordsee{#1}{#2}%
+ \fi
+ \glsdoifexists{#1}%
+ {%
+ \@@glsxtrwrglossmark
+ \def\@gls@xref{#2}%
+ \@onelevel@sanitize\@gls@xref
+ \@gls@checkmkidxchars\@gls@xref
+ \gls@glossary{\csname glo@#1@type\endcsname}{%
+ (indexentry
+ :tkey (\csname glo@#1@index\endcsname)
+ :xref (\string"\@gls@xref\string")
+ :attr \string"seealso\string"
+ )
+ }%
}%
}
}
@@ -1198,22 +1361,44 @@
\newcommand*{\glsxtrunusedformat}[1]{\unskip}
\let\glsxtr@orgmakenoidxglossaries\makenoidxglossaries
\renewcommand{\makenoidxglossaries}{%
- \glsxtr@orgmakenoidxglossaries
- \if@glsxtrdocdefrestricted
- \renewcommand*{\@gls@reference}[3]{%
- \ifcsundef{@glsref@##1}{\csgdef{@glsref@##1}{}}{}%
- \ifinlistcs{##2}{@glsref@##1}%
- {}%
- {\listcsgadd{@glsref@##1}{##2}}%
- \ifcsundef{glo@\glsdetoklabel{##2}@loclist}%
- {\csgdef{glo@\glsdetoklabel{##2}@loclist}{}}%
- {}%
- \listcsgadd{glo@\glsdetoklabel{##2}@loclist}{##3}%
+ \ifdefequal\@glsxtr@record@setting\@glsxtr@record@setting@off
+ {%
+ \glsxtr@orgmakenoidxglossaries
+ \renewcommand{\@do@seeglossary}[2]{%
+ \@@glsxtrwrglossmark
+ \edef\@gls@label{\glsdetoklabel{##1}}%
+ \protected@write\@auxout{}{%
+ \string\@gls@reference
+ {\csname glo@\@gls@label @type\endcsname}%
+ {\@gls@label}%
+ {%
+ \string\glsseeformat##2{}%
+ }%
+ }%
}%
- \else
- \@glsxtrdocdeffalse
- \fi
- \disable@keys{glossaries-extra.sty}{docdef}%
+ \if@glsxtrdocdefrestricted
+ \renewcommand*{\@gls@reference}[3]{%
+ \ifcsundef{@glsref@##1}{\csgdef{@glsref@##1}{}}{}%
+ \ifinlistcs{##2}{@glsref@##1}%
+ {}%
+ {\listcsgadd{@glsref@##1}{##2}}%
+ \ifcsundef{glo@\glsdetoklabel{##2}@loclist}%
+ {\csgdef{glo@\glsdetoklabel{##2}@loclist}{}}%
+ {}%
+ \listcsgadd{glo@\glsdetoklabel{##2}@loclist}{##3}%
+ }%
+ \else
+ \@glsxtrdocdeffalse
+ \fi
+ \disable@keys{glossaries-extra.sty}{docdef}%
+ }%
+ {%
+ \PackageError{glossaries-extra}{\string\makenoidxglossaries\space
+ not permitted\MessageBreak
+ with record=\@glsxtr@record@setting\space package option}%
+ {You may only use \string\makenoidxglossaries\ space with the
+ record=off option}%
+ }%
}
\renewcommand*{\gls@defdocnewglossaryentry}{%
\ifcase\@glsxtr@docdefval
@@ -1600,6 +1785,17 @@
}
\define@key{glslink}{thevalue}{\def\@glsxtr@thevalue{#1}}
\define@key{glslink}{theHvalue}{\def\@glsxtr@theHvalue{#1}}
+\define@boolkey{glslink}[glsxtr@]{hyperoutside}[true]{}
+\glsxtr@hyperoutsidetrue
+\newcommand*{\glsxtrinithyperoutside}{%
+ \glsifattribute{\glslabel}{hyperoutside}{false}%
+ {%
+ \glsxtr@hyperoutsidefalse
+ }%
+ {%
+ \glsxtr@hyperoutsidetrue
+ }%
+}
\def\@gls@link[#1]#2#3{%
\leavevmode
\edef\glslabel{\glsdetoklabel{#2}}%
@@ -1612,6 +1808,7 @@
\def\@glsxtr@thevalue{}%
\def\@glsxtr@theHvalue{\@glsxtr@thevalue}%
\glsxtrinitwrgloss
+ \glsxtrinithyperoutside
\@gls@setdefault@glslink@opts
\do@glsdisablehyperinlist
\do@gls@link@checkfirsthyper
@@ -1626,13 +1823,38 @@
\def\theHglsentrycounter{\@glsxtr@theHvalue}%
}%
\@gls@setsort{\glslabel}%
+ \glshasattribute{\glslabel}{textformat}%
+ {%
+ \edef\@glsxtr@attrval{\glsgetattribute{\glslabel}{textformat}}%
+ \ifcsdef{\@glsxtr@attrval}%
+ {%
+ \letcs{\@glsxtr@textformat}{\@glsxtr@attrval}%
+ }%
+ {%
+ \GlossariesExtraWarning{Unknown control sequence name
+ `\@glsxtr@attrval' supplied in textformat attribute
+ for entry `\glslabel'. Reverting to default \string\glstextformat}%
+ \let\@glsxtr@textformat\glstextformat
+ }%
+ }%
+ {%
+ \let\@glsxtr@textformat\glstextformat
+ }%
\ifglsxtrinitwrglossbefore
\@do@wrglossary{#2}%
\fi
\ifKV@glslink@hyper
- \@glslink{\glolinkprefix\glslabel}{\glstextformat{#3}}%
+ \ifglsxtr@hyperoutside
+ \@glslink{\glolinkprefix\glslabel}{\@glsxtr@textformat{#3}}%
+ \else
+ \@glsxtr@textformat{\@glslink{\glolinkprefix\glslabel}{#3}}%
+ \fi
\else
- \glsdonohyperlink{\glolinkprefix\glslabel}{\glstextformat{#3}}%
+ \ifglsxtr@hyperoutside
+ \glsdonohyperlink{\glolinkprefix\glslabel}{\@glsxtr@textformat{#3}}%
+ \else
+ \@glsxtr@textformat{\glsdonohyperlink{\glolinkprefix\glslabel}{#3}}%
+ \fi
\fi
\ifglsxtrinitwrglossbefore
\else
@@ -1643,24 +1865,28 @@
\define@key{glossadd}{thevalue}{\def\@glsxtr@thevalue{#1}}
\define@key{glossadd}{theHvalue}{\def\@glsxtr@theHvalue{#1}}
\renewrobustcmd*{\glsadd}[2][]{%
- \@gls@adjustmode
- \@glsxtr@record{#1}{#2}{glossadd}%
- \glsdoifexists{#2}%
+ \glsxtrifinmark
+ {}%
{%
- \let\@glsnumberformat\@glsxtr@defaultnumberformat
- \edef\@gls@counter{\csname glo@\glsdetoklabel{#2}@counter\endcsname}%
- \def\@glsxtr@thevalue{}%
- \def\@glsxtr@theHvalue{\@glsxtr@thevalue}%
- \setkeys{glossadd}{#1}%
- \ifdefempty{\@glsxtr@thevalue}%
+ \@gls@adjustmode
+ \@glsxtr@record{#1}{#2}{glossadd}%
+ \glsdoifexists{#2}%
{%
- \@gls@saveentrycounter
- }%
- {%
- \let\theglsentrycounter\@glsxtr@thevalue
- \def\theHglsentrycounter{\@glsxtr@theHvalue}%
+ \let\@glsnumberformat\@glsxtr@defaultnumberformat
+ \edef\@gls@counter{\csname glo@\glsdetoklabel{#2}@counter\endcsname}%
+ \def\@glsxtr@thevalue{}%
+ \def\@glsxtr@theHvalue{\@glsxtr@thevalue}%
+ \setkeys{glossadd}{#1}%
+ \ifdefempty{\@glsxtr@thevalue}%
+ {%
+ \@gls@saveentrycounter
+ }%
+ {%
+ \let\theglsentrycounter\@glsxtr@thevalue
+ \def\theHglsentrycounter{\@glsxtr@theHvalue}%
+ }%
+ \@@do@wrglossary{#2}%
}%
- \@@do@wrglossary{#2}%
}%
}
\newcommand*{\@glsxtr@field@linkdefs}{%
@@ -2248,7 +2474,7 @@
\KV@glslink@noindextrue
}
\newcommand*{\@glsxtrsetaliasnoindex}{%
- \ifglshasfield{alias}{\glslabel}%
+ \glsxtrifhasfield{alias}{\glslabel}%
{%
\let\glsxtrindexaliased\@glsxtrindexaliased
\glsxtrsetaliasnoindex
@@ -2332,6 +2558,18 @@
\def\@gls@alt@hyp@opt@char{#1}%
\def\@gls@alt@hyp@opt@keys{#2}%
}
+\let\glsxtr@org@dohyperlink\glsdohyperlink
+\ifdef\glsnavhyperlink
+{
+ \renewcommand*{\glsnavhyperlink}[3][\@glo@type]{%
+ \edef\gls@grplabel{#2}\protected@edef\@gls@grptitle{#3}%
+ {%
+ \let\glsdohyperlink\glsxtr@org@dohyperlink
+ \@glslink{\glsnavhyperlinkname{#1}{#2}}{#3}%
+ }%
+ }%
+}
+{}
\renewcommand*{\glsdohyperlink}[2]{%
\glshasattribute{\glslabel}{targeturl}%
{%
@@ -2381,26 +2619,30 @@
\newcommand{\glsxtrhyperlink}[2]{\hyperlink{#1}{#2}}%
}
\renewrobustcmd*{\glshyperlink}[2][\glsentrytext{\@glo@label}]{%
- \def\@glo@label{#2}%
- {\edef\glslabel{#2}%
- \@glslink{\glolinkprefix\glslabel}{#1}}%
+ \glsdoifexists{#2}%
+ {%
+ \def\@glo@label{#2}%
+ {\edef\glslabel{#2}%
+ \@glslink{\glolinkprefix\glslabel}{#1}}%
+ }%
}
-\ifundef\glsdonohyperlink
-{%
- \renewcommand{\glsdisablehyper}{%
- \KV@glslink@hyperfalse
- \let\@glslink\glsdonohyperlink
- \let\@glstarget\@secondoftwo
- }
+\renewcommand{\glsdisablehyper}{%
+ \KV@glslink@hyperfalse
+ \def\@glslink{\glsdonohyperlink}%
+ \let\@glstarget\@secondoftwo
+}
+\renewcommand{\glsenablehyper}{%
+ \KV@glslink@hypertrue
+ \def\@glslink{\glsdohyperlink}%
+ \def\@glstarget{\glsdohypertarget}%
}
-{}
\def\glsdonohyperlink#1#2{{\glsxtrprotectlinks #2}}
\ifcsundef{hyperlink}%
{%
- \let\@glslink\glsdonohyperlink
+ \def\@glslink{\glsdonohyperlink}
}%
{%
- \let\@glslink\glsdohyperlink
+ \def\@glslink{\glsdohyperlink}
}
\newcommand*{\glsxtrprotectlinks}{%
\KV@glslink@hyperfalse
@@ -3296,127 +3538,145 @@
\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}}
- \protected@write\@auxout{}{\string\glsxtr@makeglossaries{#1}}
- \write\@auxout{\string\providecommand\string\@gls@reference[3]{}}%
- \@for\@glo@type:=#1\do{%
- \ifdefempty{\@glo@type}{}{\@makeglossary{\@glo@type}}%
- }%
- \renewcommand*\newglossary[4][]{%
- \PackageError{glossaries}{New glossaries
- must be created before \string\makeglossaries}{You need
- to move \string\makeglossaries\space after all your
- \string\newglossary\space commands}}%
- \let\@makeglossary\relax
- \let\makeglossary\relax
- \renewcommand\makeglossaries[1][]{}%
- \@disable@onlypremakeg
- \let\gls@checkseeallowed\relax
- \renewcommand*{\@do@seeglossary}[2]{%
- \edef\@gls@label{\glsdetoklabel{##1}}%
- \edef\@gls@type{\csname glo@\@gls@label @type\endcsname}%
- \expandafter\DTLifinlist\expandafter{\@gls@type}{\@glsxtr@reg@glosslist}%
- {\@glsxtr@org@doseeglossary{##1}{##2}}%
- {%
- \protected@write\@auxout{}{%
- \string\@gls@reference
- {\gls@type}{\@gls@label}{\string\glsseeformat##2{}}%
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@only
+ \PackageError{glossaries-extra}{\string\makeglossaries\space
+ not permitted\MessageBreak with record=only package option}%
+ {You may only use \string\makeglossaries\space with
+ record=off or record=alsoindex options}%
+ \else
+ \ifblank{#1}%
+ {\@glsxtr@org@makeglossaries}%
+ {%
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@alsoindex
+ \PackageError{glossaries-extra}{\string\makeglossaries[#1]\space
+ not permitted\MessageBreak with record=alsoindex package option}%
+ {You may only use the hybrid \string\makeglossaries[...]\space with
+ record=off option}%
+ \else
+ \edef\@glsxtr@reg@glosslist{#1}%
+ \ifundef{\glswrite}{\newwrite\glswrite}{}%
+ \protected@write\@auxout{}{\string\providecommand
+ \string\@glsorder[1]{}}
+ \protected@write\@auxout{}{\string\providecommand
+ \string\@istfilename[1]{}}
+ \protected@write\@auxout{}{\string\@istfilename{\istfilename}}%
+ \protected@write\@auxout{}{\string\@glsorder{\glsorder}}
+ \protected@write\@auxout{}{\string\glsxtr@makeglossaries{#1}}
+ \write\@auxout{\string\providecommand\string\@gls@reference[3]{}}%
+ \@for\@glo@type:=#1\do{%
+ \ifdefempty{\@glo@type}{}{\@makeglossary{\@glo@type}}%
+ }%
+ \renewcommand*\newglossary[4][]{%
+ \PackageError{glossaries}{New glossaries
+ must be created before \string\makeglossaries}{You need
+ to move \string\makeglossaries\space after all your
+ \string\newglossary\space commands}}%
+ \let\@makeglossary\relax
+ \let\makeglossary\relax
+ \renewcommand\makeglossaries[1][]{}%
+ \@disable@onlypremakeg
+ \let\gls@checkseeallowed\relax
+ \renewcommand*{\@do@seeglossary}[2]{%
+ \glsdoifexists{##1}%
+ {%
+ \edef\@gls@label{\glsdetoklabel{##1}}%
+ \edef\@gls@type{\csname glo@\@gls@label @type\endcsname}%
+ \expandafter\DTLifinlist\expandafter{\@gls@type}{\@glsxtr@reg@glosslist}%
+ {\@glsxtr@org@doseeglossary{##1}{##2}}%
+ {%
+ \@@glsxtrwrglossmark
+ \protected@write\@auxout{}{%
+ \string\@gls@reference
+ {\gls@type}{\@gls@label}{\string\glsseeformat##2{}}%
+ }%
+ }%
+ }%
}%
- }%
- }%
- \let\@glsxtr@@do@@wrglossary\@@do@@wrglossary
- \def\@@do@@wrglossary{%
- \edef\@gls@type{\csname glo@\@gls@label @type\endcsname}%
- \expandafter\DTLifinlist\expandafter{\@gls@type}{\@glsxtr@reg@glosslist}%
- {\@glsxtr@@do@@wrglossary}%
- {\gls@noidxglossary}%
- }%
- \let\warn@nomakeglossaries\relax
- \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{\@gls@noref@warn}[1]{%
- \edef\@gls@type{##1}%
- \expandafter\DTLifinlist\expandafter{\@gls@type}{\@glsxtr@reg@glosslist}%
- {%
- \GlossariesExtraWarning{Can't use
- \string\printnoidxglossary[type={\@gls@type}]
- when `\@gls@type' is listed in the optional argument of
+ \let\@glsxtr@@do@@wrglossary\@@do@@wrglossary
+ \def\@@do@@wrglossary{%
+ \edef\@gls@type{\csname glo@\@gls@label @type\endcsname}%
+ \expandafter\DTLifinlist\expandafter{\@gls@type}{\@glsxtr@reg@glosslist}%
+ {\@glsxtr@@do@@wrglossary}%
+ {\gls@noidxglossary}%
+ }%
+ \let\warn@nomakeglossaries\relax
+ \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{\@gls@noref@warn}[1]{%
+ \edef\@gls@type{##1}%
+ \expandafter\DTLifinlist\expandafter{\@gls@type}{\@glsxtr@reg@glosslist}%
+ {%
+ \GlossariesExtraWarning{Can't use
+ \string\printnoidxglossary[type={\@gls@type}]
+ when `\@gls@type' is listed in the optional argument of
+ \string\makeglossaries}%
+ }%
+ {%
+ \GlossariesWarning{Empty glossary for
+ \string\printnoidxglossary[type={##1}].
+ Rerun may be required (or you may have forgotten to use
+ commands like \string\gls)}%
+ }%
+ }%
+ \renewcommand*{\glsdisplaynumberlist}[1]{%
+ \expandafter\DTLifinlist\expandafter{##1}{\@glsxtr@reg@glosslist}%
+ {\@glsxtr@idx@displaynumberlist{##1}}%
+ {\@glsxtr@noidx@displaynumberlist{##1}}%
+ }%
+ \renewcommand*{\glsentrynumberlist}[1]{%
+ \expandafter\DTLifinlist\expandafter{##1}{\@glsxtr@reg@glosslist}%
+ {\@glsxtr@idx@entrynumberlist{##1}}%
+ {\@glsxtr@noidx@entrynumberlist{##1}}%
+ }%
+ \renewcommand*{\glsnumberlistloop}[2]{%
+ \expandafter\DTLifinlist\expandafter{##1}{\@glsxtr@reg@glosslist}%
+ {%
+ \PackageError{glossaries-extra}{\string\glsnumberlistloop\space
+ not available for glossary `##1'}{}%
+ }%
+ {\@glsxtr@noidx@numberlistloop{##1}{##2}}%
+ }%
+ \renewcommand*{\glsprestandardsort}[3]{%
+ \expandafter\DTLifinlist\expandafter{##2}{\@glsxtr@reg@glosslist}%
+ {%
+ \glsdosanitizesort
+ }%
+ {%
+ \ifglssanitizesort
+ \@gls@noidx@sanitizesort
+ \else
+ \@gls@noidx@nosanitizesort
+ \fi
+ }%
+ }%
+ \renewcommand*\new@glossaryentry[2]{%
+ \PackageError{glossaries-extra}{Glossary entries must be defined
+ in the preamble\MessageBreak when you use the optional argument
+ of \string\makeglossaries}{Either move your definitions to the
+ preamble or don't use the optional argument of
\string\makeglossaries}%
- }%
- {%
- \GlossariesWarning{Empty glossary for
- \string\printnoidxglossary[type={##1}].
- Rerun may be required (or you may have forgotten to use
- commands like \string\gls)}%
- }%
- }%
- \renewcommand*{\glsdisplaynumberlist}[1]{%
- \expandafter\DTLifinlist\expandafter{##1}{\@glsxtr@reg@glosslist}%
- {\@glsxtr@idx@displaynumberlist{##1}}%
- {\@glsxtr@noidx@displaynumberlist{##1}}%
- }%
- \renewcommand*{\glsentrynumberlist}[1]{%
- \expandafter\DTLifinlist\expandafter{##1}{\@glsxtr@reg@glosslist}%
- {\@glsxtr@idx@entrynumberlist{##1}}%
- {\@glsxtr@noidx@entrynumberlist{##1}}%
- }%
- \renewcommand*{\glsnumberlistloop}[2]{%
- \expandafter\DTLifinlist\expandafter{##1}{\@glsxtr@reg@glosslist}%
- {%
- \PackageError{glossaries-extra}{\string\glsnumberlistloop\space
- not available for glossary `##1'}{}%
- }%
- {\@glsxtr@noidx@numberlistloop{##1}{##2}}%
- }%
- \renewcommand*{\glsprestandardsort}[3]{%
- \expandafter\DTLifinlist\expandafter{##2}{\@glsxtr@reg@glosslist}%
- {%
- \glsdosanitizesort
- }%
- {%
- \ifglssanitizesort
- \@gls@noidx@sanitizesort
- \else
- \@gls@noidx@nosanitizesort
- \fi
- }%
- }%
- \renewcommand*\new@glossaryentry[2]{%
- \PackageError{glossaries-extra}{Glossary entries must be defined
- in the preamble\MessageBreak when you use the optional argument
- of \string\makeglossaries}{Either move your definitions to the
- preamble or don't use the optional argument of
- \string\makeglossaries}%
- }%
- \let\@glo@assign@sortkey\@glsxtr@mixed@assign@sortkey
- \renewcommand*{\@printgloss@setsort}{%
- \expandafter\@glsxtr@gettype\expandafter,\@glsxtr@printglossopts,%
- type=\glsdefaulttype,\@end@glsxtr@gettype
- \def\@glo@sorttype{\@glo@default@sorttype}%
- }%
- \ifglsautomake
- \renewcommand*{\@gls@doautomake}{%
- \@for\@gls@type:=\@glsxtr@reg@glosslist\do{%
- \ifdefempty{\@gls@type}{}{\@gls@automake{\@gls@type}}%
}%
- }%
- \fi
- \ifdef\@glo@check@sortallowed{\@glo@check@sortallowed\makeglossaries}{}%
- }%
+ \let\@glo@assign@sortkey\@glsxtr@mixed@assign@sortkey
+ \renewcommand*{\@printgloss@setsort}{%
+ \expandafter\@glsxtr@gettype\expandafter,\@glsxtr@printglossopts,%
+ type=\glsdefaulttype,\@end@glsxtr@gettype
+ \def\@glo@sorttype{\@glo@default@sorttype}%
+ }%
+ \ifglsautomake
+ \renewcommand*{\@gls@doautomake}{%
+ \@for\@gls@type:=\@glsxtr@reg@glosslist\do{%
+ \ifdefempty{\@gls@type}{}{\@gls@automake{\@gls@type}}%
+ }%
+ }%
+ \fi
+ \ifdef\@glo@check@sortallowed{\@glo@check@sortallowed\makeglossaries}{}%
+ \fi
+ }%
+ \fi
}
\newcommand{\@glsxtr@orgprintglossary}[2]{%
\def\@glo@type{\glsdefaulttype}%
@@ -3919,8 +4179,9 @@
\GlsXtrNoGlsWarningTail
}
\newcommand*{\glsxtrresourcefile}[2][]{%
+ \disable@keys{glossaries-extra.sty}{record}%
\glsxtr@writefields
- \protected@write\@auxout{}{\string\glsxtr@resource{#1}{#2}}%
+ \protected@write\@auxout{\glsxtrresourceinit}{\string\glsxtr@resource{#1}{#2}}%
\let\@glsxtr@org@see@noindex\@gls@see@noindex
\let\@gls@see@noindex\relax
\IfFileExists{#2.glstex}%
@@ -4015,6 +4276,30 @@
\protected@write\@auxout{}{\string\glsxtr@counterrecord
{\@gls@label}{#1}{\csuse{the#1}}}%
}
+\newcommand*{\glsxtrglossentry}[1]{%
+ \glsxtrtitleorpdforheading
+ {\@glsxtrglossentry{#1}}%
+ {\glsentryname{#1}}%
+ {\glsxtrheadname{#1}}%
+}
+\newrobustcmd*{\@glsxtrglossentry}[1]{%
+ \glsxtrtitleorpdforheading
+ {%
+ \glsdoifexists{#1}%
+ {%
+ \begingroup
+ \edef\glscurrententrylabel{\glsdetoklabel{#1}}%
+ \edef\currentglossary{\glsentrytype{\glscurrententrylabel}}%
+ \ifglshasparent{#1}%
+ {\glssubentryitem{#1}}%
+ {\glsentryitem{#1}}%
+ \glstarget{#1}{\glossentryname{#1}}%
+ \endgroup
+ }%
+ }%
+ {\glsentryname{#1}}%
+ {\glsxtrheadname{#1}}%
+}
\newcommand*{\printunsrtglossary}{%
\@ifstar\s@printunsrtglossary\@printunsrtglossary
}
@@ -4052,14 +4337,39 @@
:\expandafter=\csname glolist@\@glo@type\endcsname\do{%
\ifdefempty{\glscurrententrylabel}
{}%
- {\eappto\@glsxtr@doglossary{%
- \noexpand\@printunsrt@glossary@handler{\glscurrententrylabel}}}%
+ {%
+ \let\glsxtr@process\@firstofone
+ \let\printunsrtglossaryskipentry
+ \@glsxtr@printunsrtglossaryskipentry
+ \printunsrtglossaryentryprocesshook{\glscurrententrylabel}%
+ \glsxtr@process
+ {%
+ \ifglshasparent{\glscurrententrylabel}{}%
+ {%
+ \@glsxtr@checkgroup\glscurrententrylabel
+ \expandafter\appto\expandafter\@glsxtr@doglossary\expandafter
+ {\@glsxtr@groupheading}%
+ }%
+ \eappto\@glsxtr@doglossary{%
+ \noexpand\@printunsrt@glossary@handler{\glscurrententrylabel}}%
+ }%
+ }%
}%
\appto\@glsxtr@doglossary{\end{theglossary}}%
+ \printunsrtglossarypredoglossary
\@glsxtr@doglossary
}%
\glossarypostamble
}
+\newcommand*{\printunsrtglossaryentryprocesshook}[1]{}
+\newcommand*{\printunsrtglossaryskipentry}{%
+ \PackageError{glossaries-extra}{\string\printunsrtglossaryskipentry\space
+can only be used within \string\printunsrtglossaryentryprocesshook}{}%
+}
+\newcommand*{\@glsxtr@printunsrtglossaryskipentry}{%
+ \let\glsxtr@process\@gobble
+}
+\newcommand*{\printunsrtglossarypredoglossary}{}
\newcommand{\@printunsrt@glossary@handler}[1]{%
\xdef\glscurrententrylabel{#1}%
\printunsrtglossaryhandler\glscurrententrylabel
@@ -4067,6 +4377,10 @@
\newcommand{\printunsrtglossaryhandler}[1]{%
\glsxtrunsrtdo{#1}%
}
+\newrobustcmd*{\glsxtriflabelinlist}[4]{%
+ \protected@edef\@glsxtr@doiflabelinlist{\noexpand\@gls@ifinlist{#1}{#2}}%
+ \@glsxtr@doiflabelinlist{#3}{#4}%
+}
\newcommand{\print@op@unsrtglossaryunit}[2][]{%
\s@printunsrtglossary[type=\glsdefaulttype,#1]{%
\printunsrtglossaryunitsetup{#2}%
@@ -4100,67 +4414,325 @@
{\def#2{#1}}%
}
\newcommand{\glsxtrunsrtdo}{\@glsxtr@noidx@do}
+\newcommand*{\glsxtrgroupfield}{group}
+\newcommand*{\@glsxtr@checkgroup}[1]{%
+ \def\@glsxtr@groupheading{}%
+ \key@ifundefined{glossentry}{group}%
+ {%
+ \letcs{\@gls@sort}{glo@\glsdetoklabel{#1}@sort}%
+ \expandafter\glo@grabfirst\@gls@sort{}{}\@nil
+ }%
+ {%
+ \protected@edef\@glo@thislettergrp{%
+ \csuse{glo@\glsdetoklabel{#1}@\glsxtrgroupfield}}%
+ }%
+ \ifdefequal{\@glo@thislettergrp}{\@gls@currentlettergroup}%
+ {}%
+ {%
+ \ifdefempty{\@gls@currentlettergroup}{}%
+ {\def\@glsxtr@groupheading{\glsgroupskip}}%
+ \eappto\@glsxtr@groupheading{%
+ \noexpand\glsgroupheading{\expandonce\@glo@thislettergrp}%
+ }%
+ }%
+ \let\@gls@currentlettergroup\@glo@thislettergrp
+}
\newcommand{\@glsxtr@noidx@do}[1]{%
- \global\letcs{\@gls@loclist}{glo@\glsdetoklabel{#1}@loclist}%
- \global\letcs{\@gls@location}{glo@\glsdetoklabel{#1}@location}%
- \ifglshasparent{#1}%
+ \ifglsentryexists{#1}%
{%
- \gls@level=\csuse{glo@\glsdetoklabel{#1}@level}\relax
- \ifdefvoid{\@gls@location}%
+ \global\letcs{\@gls@loclist}{glo@\glsdetoklabel{#1}@loclist}%
+ \global\letcs{\@gls@location}{glo@\glsdetoklabel{#1}@location}%
+ \ifglshasparent{#1}%
{%
- \ifdefvoid{\@gls@loclist}%
- {%
- \subglossentry{\gls@level}{#1}{}%
- }%
+ \gls@level=\csuse{glo@\glsdetoklabel{#1}@level}\relax
+ \ifdefvoid{\@gls@location}%
{%
- \subglossentry{\gls@level}{#1}%
+ \ifdefvoid{\@gls@loclist}%
+ {%
+ \subglossentry{\gls@level}{#1}{}%
+ }%
{%
- \glossaryentrynumbers{\glsnoidxloclist{\@gls@loclist}}%
+ \subglossentry{\gls@level}{#1}%
+ {%
+ \glossaryentrynumbers{\glsnoidxloclist{\@gls@loclist}}%
+ }%
}%
}%
+ {%
+ \subglossentry{\gls@level}{#1}{\glossaryentrynumbers{\@gls@location}}%
+ }%
}%
{%
- \subglossentry{\gls@level}{#1}{\glossaryentrynumbers{\@gls@location}}%
- }%
- }%
- {%
- \key@ifundefined{glossentry}{group}%
- {%
- \letcs{\@gls@sort}{glo@\glsdetoklabel{#1}@sort}%
- \expandafter\glo@grabfirst\@gls@sort{}{}\@nil
- }%
- {%
- \protected@xdef\@glo@thislettergrp{%
- \csuse{glo@\glsdetoklabel{#1}@group}}%
- }%
- \ifdefequal{\@glo@thislettergrp}{\@gls@currentlettergroup}%
- {}%
- {%
- \ifdefempty{\@gls@currentlettergroup}{}{\glsgroupskip}%
- \expandafter\glsgroupheading\expandafter
- {\@glo@thislettergrp}%
- }%
- \global\let\@gls@currentlettergroup\@glo@thislettergrp
- \ifdefvoid{\@gls@location}%
- {%
- \ifdefvoid{\@gls@loclist}
+ \ifdefvoid{\@gls@location}%
{%
- \glossentry{#1}{}%
+ \ifdefvoid{\@gls@loclist}
+ {%
+ \glossentry{#1}{}%
+ }%
+ {%
+ \glossentry{#1}%
+ {%
+ \glossaryentrynumbers{\glsnoidxloclist{\@gls@loclist}}%
+ }%
+ }%
}%
{%
\glossentry{#1}%
{%
- \glossaryentrynumbers{\glsnoidxloclist{\@gls@loclist}}%
+ \glossaryentrynumbers{\@gls@location}%
}%
}%
}%
- {%
- \glossentry{#1}%
- {%
- \glossaryentrynumbers{\@gls@location}%
- }%
- }%
}%
+ {}%
+}
+\newcommand*{\glshex}{\string\u}
+\newcommand*{\glsxtrresourceinit}{}
+\newcount\@glsxtrnewgls@inner
+\newcommand*{\@glsxtrnewgls}[4]{%
+ \ifdef{#3}%
+ {%
+ \PackageError{glossaries-extra}{Command \string#3\space already
+defined}{}%
+ }%
+ {%
+ \ifcsdef{@#4like@#2}%
+ {%
+ \advance\@glsxtrnewgls@inner by \@ne
+ \def\@glsxtrnewgls@innercsname{@#4like\number\@glsxtrnewgls@inner @#2}%
+ }%
+ {\def\@glsxtrnewgls@innercsname{@#4like@#2}}%
+ \expandafter\newrobustcmd\expandafter*\expandafter
+ #3\expandafter{\expandafter\@gls@hyp@opt\csname\@glsxtrnewgls@innercsname\endcsname}%
+ \ifstrempty{#1}%
+ {%
+ \expandafter\newcommand\expandafter*\csname\@glsxtrnewgls@innercsname\endcsname[2][]{%
+ \new@ifnextchar[%
+ {\csname @#4@\endcsname{##1}{#2##2}}%
+ {\csname @#4@\endcsname{##1}{#2##2}[]}%
+ }%
+ }%
+ {%
+ \expandafter\newcommand\expandafter*\csname\@glsxtrnewgls@innercsname\endcsname[2][]{%
+ \new@ifnextchar[%
+ {\csname @#4@\endcsname{#1,##1}{#2##2}}%
+ {\csname @#4@\endcsname{#1,##1}{#2##2}[]}%
+ }%
+ }%
+ }%
+}
+\newrobustcmd*{\glsxtrnewgls}[3][]{%
+ \@glsxtrnewgls{#1}{#2}{#3}{gls}%
+}
+\newrobustcmd*{\glsxtrnewglslike}[6][]{%
+ \@glsxtrnewgls{#1}{#2}{#3}{gls}%
+ \@glsxtrnewgls{#1}{#2}{#4}{glspl}%
+ \@glsxtrnewgls{#1}{#2}{#5}{Gls}%
+ \@glsxtrnewgls{#1}{#2}{#6}{Glspl}%
+}
+\newrobustcmd*{\glsxtrnewGLSlike}[4][]{%
+ \@glsxtrnewgls{#1}{#2}{#3}{GLS}%
+ \@glsxtrnewgls{#1}{#2}{#4}{GLSpl}%
+}
+\newrobustcmd*{\glsxtrnewrgls}[3][]{%
+ \@glsxtrnewgls{#1}{#2}{#3}{rgls}%
+}
+\newrobustcmd*{\glsxtrnewrglslike}[6][]{%
+ \@glsxtrnewgls{#1}{#2}{#3}{rgls}%
+ \@glsxtrnewgls{#1}{#2}{#4}{rglspl}%
+ \@glsxtrnewgls{#1}{#2}{#5}{rGls}%
+ \@glsxtrnewgls{#1}{#2}{#6}{rGlspl}%
+}
+\newrobustcmd*{\glsxtrnewrGLSlike}[4][]{%
+ \@glsxtrnewgls{#1}{#2}{#3}{rGLS}%
+ \@glsxtrnewgls{#1}{#2}{#4}{rGLSpl}%
+}
+\newcommand*{\GlsXtrTotalRecordCount}[1]{%
+ \ifcsdef{glo@\glsdetoklabel{#1}@recordcount}%
+ {\csname glo@\glsdetoklabel{#1}@recordcount\endcsname}%
+ {0}%
+}
+\newcommand*{\GlsXtrRecordCount}[2]{%
+ \ifcsdef{glo@\glsdetoklabel{#1}@recordcount.#2}%
+ {\csname glo@\glsdetoklabel{#1}@recordcount.#2\endcsname}%
+ {0}%
+}
+\newcommand*{\GlsXtrLocationRecordCount}[3]{%
+ \ifcsdef{glo@\glsdetoklabel{#1}@recordcount.#2.\glsxtrdetoklocation{#3}}%
+ {\csname glo@\glsdetoklabel{#1}@recordcount.#2.\glsxtrdetoklocation{#3}\endcsname}%
+ {0}%
+}
+\newcommand*{\glsxtrdetoklocation}[1]{#1}
+\newcommand*{\glsxtrenablerecordcount}{%
+ \renewcommand*{\gls}{\rgls}%
+ \renewcommand*{\Gls}{\rGls}%
+ \renewcommand*{\glspl}{\rglspl}%
+ \renewcommand*{\Glspl}{\rGlspl}%
+ \renewcommand*{\GLS}{\rGLS}%
+ \renewcommand*{\GLSpl}{\rGLSpl}%
+}
+\newcommand*{\glsxtrrecordtriggervalue}[1]{%
+ \GlsXtrTotalRecordCount{#1}%
+}
+\newcommand*{\GlsXtrSetRecordCountAttribute}[2]{%
+ \@for\@glsxtr@cat:=#1\do
+ {%
+ \ifdefempty{\@glsxtr@cat}{}%
+ {%
+ \glssetcategoryattribute{\@glsxtr@cat}{recordcount}{#2}%
+ }%
+ }%
+}
+\newcommand*{\glsxtrifrecordtrigger}[3]{%
+ \glshasattribute{#1}{recordcount}%
+ {%
+ \ifnum\glsxtrrecordtriggervalue{#1}>\glsgetattribute{#1}{recordcount}\relax
+ #3%
+ \else
+ #2%
+ \fi
+ }%
+ {#3}%
+}
+\newcommand*{\@glsxtr@rglstrigger@record}[3]{%
+ \edef\glslabel{\glsdetoklabel{#2}}%
+ \let\@gls@link@label\glslabel
+ \def\@glsxtr@thevalue{}%
+ \def\@glsxtr@theHvalue{\@glsxtr@thevalue}%
+ \def\@glsnumberformat{glstriggerrecordformat}%
+ \edef\@gls@counter{\csname glo@\glslabel @counter\endcsname}%
+ \edef\glstype{\csname glo@\glslabel @type\endcsname}%
+ \def\@glsxtr@thevalue{}%
+ \def\@glsxtr@theHvalue{\@glsxtr@thevalue}%
+ \glsxtrinitwrgloss
+ \setkeys{glslink}{#1}%
+ \glslinkpostsetkeys
+ \ifdefempty{\@glsxtr@thevalue}%
+ {%
+ \@gls@saveentrycounter
+ }%
+ {%
+ \let\theglsentrycounter\@glsxtr@thevalue
+ \def\theHglsentrycounter{\@glsxtr@theHvalue}%
+ }%
+ \ifglsxtrinitwrglossbefore
+ \@do@wrglossary{#2}%
+ \fi
+ #3%
+ \ifglsxtrinitwrglossbefore
+ \else
+ \@do@wrglossary{#2}%
+ \fi
+ \ifKV@glslink@local
+ \glslocalunset{#2}%
+ \else
+ \glsunset{#2}%
+ \fi
+}
+\newcommand*{\glstriggerrecordformat}[1]{}
+\newrobustcmd*{\rgls}{\@gls@hyp@opt\@rgls}
+\newcommand*{\@rgls}[2][]{%
+ \new@ifnextchar[{\@rgls@{#1}{#2}}{\@rgls@{#1}{#2}[]}%
+}
+\def\@rgls@#1#2[#3]{%
+ \glsxtrifrecordtrigger{#2}%
+ {%
+ \@glsxtr@rglstrigger@record{#1}{#2}{\rglsformat{#2}{#3}}%
+ }%
+ {%
+ \@gls@{#1}{#2}[#3]%
+ }%
+}%
+\newrobustcmd*{\rglspl}{\@gls@hyp@opt\@rglspl}
+\newcommand*{\@rglspl}[2][]{%
+ \new@ifnextchar[{\@rglspl@{#1}{#2}}{\@rglspl@{#1}{#2}[]}%
+}
+\def\@rglspl@#1#2[#3]{%
+ \glsxtrifrecordtrigger{#2}%
+ {%
+ \@glsxtr@rglstrigger@record{#1}{#2}{\rglsplformat{#2}{#3}}%
+ }%
+ {%
+ \@glspl@{#1}{#2}[#3]%
+ }%
+}%
+\newrobustcmd*{\rGls}{\@gls@hyp@opt\@rGls}
+\newcommand*{\@rGls}[2][]{%
+ \new@ifnextchar[{\@rGls@{#1}{#2}}{\@rGls@{#1}{#2}[]}%
+}
+\def\@rGls@#1#2[#3]{%
+ \glsxtrifrecordtrigger{#2}%
+ {%
+ \@glsxtr@rglstrigger@record{#1}{#2}{\rGlsformat{#2}{#3}}%
+ }%
+ {%
+ \@Gls@{#1}{#2}[#3]%
+ }%
+}%
+\newrobustcmd*{\rGlspl}{\@gls@hyp@opt\@rGlspl}
+\newcommand*{\@rGlspl}[2][]{%
+ \new@ifnextchar[{\@rGlspl@{#1}{#2}}{\@rGlspl@{#1}{#2}[]}%
+}
+\def\@rGlspl@#1#2[#3]{%
+ \glsxtrifrecordtrigger{#2}%
+ {%
+ \@glsxtr@rglstrigger@record{#1}{#2}{\rGlsplformat{#2}{#3}}%
+ }%
+ {%
+ \@Glspl@{#1}{#2}[#3]%
+ }%
+}%
+\newrobustcmd*{\rGLS}{\@gls@hyp@opt\@rGLS}
+\newcommand*{\@rGLS}[2][]{%
+ \new@ifnextchar[{\@rGLS@{#1}{#2}}{\@rGLS@{#1}{#2}[]}%
+}
+\def\@rGLS@#1#2[#3]{%
+ \glsxtrifrecordtrigger{#2}%
+ {%
+ \@glsxtr@rglstrigger@record{#1}{#2}{\rGLSformat{#2}{#3}}%
+ }%
+ {%
+ \@GLS@{#1}{#2}[#3]%
+ }%
+}%
+\newrobustcmd*{\rGLSpl}{\@gls@hyp@opt\@rGLSpl}
+\newcommand*{\@rGLSpl}[2][]{%
+ \new@ifnextchar[{\@rGLSpl@{#1}{#2}}{\@rGLSpl@{#1}{#2}[]}%
+}
+\def\@rGLSpl@#1#2[#3]{%
+ \glsxtrifrecordtrigger{#2}%
+ {%
+ \@glsxtr@rglstrigger@record{#1}{#2}{\rGLSplformat{#2}{#3}}%
+ }%
+ {%
+ \@GLSpl@{#1}{#2}[#3]%
+ }%
+}%
+\newcommand*{\rglsformat}[2]{%
+ \glsifregular{#1}
+ {\glsentryfirst{#1}}%
+ {\ifglshaslong{#1}{\glsentrylong{#1}}{\glsentryfirst{#1}}}#2%
+}
+\newcommand*{\rglsplformat}[2]{%
+ \glsifregular{#1}
+ {\glsentryfirstplural{#1}}%
+ {\ifglshaslong{#1}{\glsentrylongplural{#1}}{\glsentryfirstplural{#1}}}#2%
+}
+\newcommand*{\rGlsformat}[2]{%
+ \glsifregular{#1}
+ {\Glsentryfirst{#1}}%
+ {\ifglshaslong{#1}{\Glsentrylong{#1}}{\Glsentryfirst{#1}}}#2%
+}
+\newcommand*{\rGlsplformat}[2]{%
+ \glsifregular{#1}
+ {\Glsentryfirstplural{#1}}%
+ {\ifglshaslong{#1}{\Glsentrylongplural{#1}}{\Glsentryfirstplural{#1}}}#2%
+}
+\newcommand*{\rGLSformat}[2]{%
+ \expandafter\mfirstucMakeUppercase\expandafter{\rglsformat{#1}{#2}}%
+}
+\newcommand*{\rGLSplformat}[2]{%
+ \expandafter\mfirstucMakeUppercase\expandafter{\rglsplformat{#1}{#2}}%
}
\@ifpackageloaded{glossaries-accsupp}
{
@@ -5770,6 +6342,8 @@
{\glsxtr@applyabbrvfmt{\csname @glsabbrv@current@#1\endcsname}}%
{\glsxtr@applyabbrvfmt{\@glsabbrv@current@abbreviation}}%
}
+\newrobustcmd*{\glsuseabbrvfont}[2]{{\glssetabbrvfmt{#2}\glsabbrvfont{#1}}}
+\newrobustcmd*{\glsuselongfont}[2]{{\glssetabbrvfmt{#2}\glslongfont{#1}}}
\newcommand*{\glsxtrgenabbrvfmt}{%
\ifdefempty\glscustomtext
{%
@@ -6428,6 +7002,51 @@
{%
\GlsXtrUseAbbrStyleFmts{short-nolong-desc}%
}
+\newabbreviationstyle{nolong-short}%
+{%
+ \GlsXtrUseAbbrStyleSetup{short-nolong}%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-nolong}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstlongfont{\glsaccesslong{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstlongfont{\glsaccesslongpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstlongfont{\glsaccesslong{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvfont{\Glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstlongfont{\glsaccesslongpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvfont{\Glsaccessshortpl{##1}}}%
+ }%
+}
+\newabbreviationstyle{nolong-short-noreg}%
+{%
+ \GlsXtrUseAbbrStyleSetup{nolong-short}%
+ \renewcommand*{\GlsXtrPostNewAbbreviation}{%
+ \glshasattribute{\the\glslabeltok}{regular}%
+ {%
+ \glssetattribute{\the\glslabeltok}{regular}{false}%
+ }%
+ {}%
+ }%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{nolong-short}%
+}
\newabbreviationstyle{long-desc}%
{%
\renewcommand*{\CustomAbbreviationFields}{%
@@ -6733,16 +7352,16 @@
\glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
}%
\renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \protect\glsfirstabbrvscfont{\glsaccessshort{##1}%
+ \protect\glsfirstabbrvscfont{\Glsaccessshort{##1}%
\ifglsxtrinsertinside##2\fi}%
\ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\Glsaccesslong{##1}}}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
}%
\renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \protect\glsfirstabbrvscfont{\glsaccessshortpl{##1}%
+ \protect\glsfirstabbrvscfont{\Glsaccessshortpl{##1}%
\ifglsxtrinsertinside##2\fi}%
\ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\Glsaccesslongpl{##1}}}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
}%
\renewcommand*{\glsxtrfullformat}[2]{%
\glsfirstabbrvscfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
@@ -6819,6 +7438,37 @@
}%
}
\letabbreviationstyle{short-sc-nolong-desc}{short-sc-desc}
+\newabbreviationstyle{nolong-short-sc}%
+{%
+ \GlsXtrUseAbbrStyleSetup{short-sc-nolong}%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-sc-nolong}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\glsaccesslong{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvscfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\glsaccesslongpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvscfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\Glsaccesslong{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvscfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\Glsaccesslongpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvscfont{\glsaccessshortpl{##1}}}%
+ }%
+}
\newabbreviationstyle{long-noshort-sc}%
{%
\renewcommand*{\CustomAbbreviationFields}{%
@@ -7289,16 +7939,16 @@
\glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
}%
\renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \protect\glsfirstabbrvsmfont{\glsaccessshort{##1}%
+ \protect\glsfirstabbrvsmfont{\Glsaccessshort{##1}%
\ifglsxtrinsertinside##2\fi}%
\ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\Glsaccesslong{##1}}}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
}%
\renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \protect\glsfirstabbrvsmfont{\glsaccessshortpl{##1}%
+ \protect\glsfirstabbrvsmfont{\Glsaccessshortpl{##1}%
\ifglsxtrinsertinside##2\fi}%
\ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\Glsaccesslongpl{##1}}}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
}%
\renewcommand*{\glsxtrfullformat}[2]{%
\glsfirstabbrvsmfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
@@ -7375,6 +8025,37 @@
}%
}
\letabbreviationstyle{short-sm-nolong-desc}{short-sm-desc}
+\newabbreviationstyle{nolong-short-sm}%
+{%
+ \GlsXtrUseAbbrStyleSetup{short-sm-nolong}%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-sm-nolong}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\glsaccesslong{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvsmfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\glsaccesslongpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvsmfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\Glsaccesslong{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvsmfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\Glsaccesslongpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvsmfont{\glsaccessshortpl{##1}}}%
+ }%
+}
\newabbreviationstyle{long-noshort-sm}%
{%
\renewcommand*{\CustomAbbreviationFields}{%
@@ -7994,16 +8675,16 @@
\glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
}%
\renewcommand*{\Glsxtrinlinefullformat}[2]{%
- \protect\glsfirstabbrvemfont{\glsaccessshort{##1}%
+ \protect\glsfirstabbrvemfont{\Glsaccessshort{##1}%
\ifglsxtrinsertinside##2\fi}%
\ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\Glsaccesslong{##1}}}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslong{##1}}}%
}%
\renewcommand*{\Glsxtrinlinefullplformat}[2]{%
- \protect\glsfirstabbrvemfont{\glsaccessshortpl{##1}%
+ \protect\glsfirstabbrvemfont{\Glsaccessshortpl{##1}%
\ifglsxtrinsertinside##2\fi}%
\ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
- \glsxtrparen{\glsfirstlongdefaultfont{\Glsaccesslongpl{##1}}}%
+ \glsxtrparen{\glsfirstlongdefaultfont{\glsaccesslongpl{##1}}}%
}%
\renewcommand*{\glsxtrfullformat}[2]{%
\glsfirstabbrvemfont{\glsaccessshort{##1}\ifglsxtrinsertinside##2\fi}%
@@ -8080,6 +8761,37 @@
}%
}
\letabbreviationstyle{short-em-nolong-desc}{short-em-desc}
+\newabbreviationstyle{nolong-short-em}%
+{%
+ \GlsXtrUseAbbrStyleSetup{short-em-nolong}%
+}%
+{%
+ \GlsXtrUseAbbrStyleFmts{short-em-nolong}%
+ \renewcommand*{\glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\glsaccesslong{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\glsaccesslongpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\Glsaccesslong{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshort{##1}}}%
+ }%
+ \renewcommand*{\Glsxtrinlinefullplformat}[2]{%
+ \protect\glsfirstlongdefaultfont{\Glsaccesslongpl{##1}%
+ \ifglsxtrinsertinside##2\fi}%
+ \ifglsxtrinsertinside\else##2\fi\glsxtrfullsep{##1}%
+ \glsxtrparen{\glsfirstabbrvemfont{\glsaccessshortpl{##1}}}%
+ }%
+}
\newabbreviationstyle{long-noshort-em}%
{%
\renewcommand*{\CustomAbbreviationFields}{%
@@ -9535,9 +10247,18 @@
{\@glsxtrinmark#2\@glsxtrnotinmark}%
\glsxtrrestoremarkhook
}
+\let\@glsxtr@org@@starttoc\@starttoc
+\renewcommand*{\@starttoc}[1]{%
+ \glsxtrmarkhook
+ \@glsxtrinmark
+ \@glsxtr@org@@starttoc{#1}%
+ \@glsxtrnotinmark
+ \glsxtrrestoremarkhook
+}
\newcommand*{\glsxtrRevertMarks}{%
\let\markright\@glsxtr@org@markright
\let\markboth\@glsxtr@org@markboth
+ \let\@starttoc\@glsxtr@org@@starttoc
}
\newcommand*{\glsxtrifinmark}[2]{#2}
\newrobustcmd*{\@glsxtrinmark}{%
@@ -9546,12 +10267,22 @@
\newrobustcmd*{\@glsxtrnotinmark}{%
\let\glsxtrifinmark\@secondoftwo
}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\glsxtrtitleorpdforheading}[3]{\texorpdfstring{#1}{#2}}
+}
+{
+ \newcommand*{\glsxtrtitleorpdforheading}[3]{#1}
+}
\newcommand*{\glsxtrmarkhook}{%
\let\@glsxtr@org@MakeUppercase\MakeUppercase
+ \let\@glsxtr@org@glsxtrtitleorpdforheading\glsxtrtitleorpdforheading
\let\@glsxtr@org@glsxtrtitleshort\glsxtrtitleshort
\let\@glsxtr@org@glsxtrtitleshortpl\glsxtrtitleshortpl
\let\@glsxtr@org@Glsxtrtitleshort\Glsxtrtitleshort
\let\@glsxtr@org@Glsxtrtitleshortpl\Glsxtrtitleshortpl
+ \let\@glsxtr@org@glsxtrtitlename\glsxtrtitlename
+ \let\@glsxtr@org@Glsxtrtitlename\Glsxtrtitlename
\let\@glsxtr@org@glsxtrtitletext\glsxtrtitletext
\let\@glsxtr@org@Glsxtrtitletext\Glsxtrtitletext
\let\@glsxtr@org@glsxtrtitleplural\glsxtrtitleplural
@@ -9570,10 +10301,13 @@
\let\@glsxtr@org@Glsxtrtitlefullpl\Glsxtrtitlefullpl
\let\glsxtrifinmark\@firstoftwo
\let\MakeUppercase\MakeTextUppercase
+ \let\glsxtrtitleorpdforheading\@thirdofthree
\let\glsxtrtitleshort\glsxtrheadshort
\let\glsxtrtitleshortpl\glsxtrheadshortpl
\let\Glsxtrtitleshort\Glsxtrheadshort
\let\Glsxtrtitleshortpl\Glsxtrheadshortpl
+ \let\glsxtrtitlename\glsxtrheadname
+ \let\Glsxtrtitlename\Glsxtrheadname
\let\glsxtrtitletext\glsxtrheadtext
\let\Glsxtrtitletext\Glsxtrheadtext
\let\glsxtrtitleplural\glsxtrheadplural
@@ -9594,10 +10328,13 @@
\newcommand*{\glsxtrrestoremarkhook}{%
\let\glsxtrifinmark\@secondoftwo
\let\MakeUppercase\@glsxtr@org@MakeUppercase
+ \let\glsxtrtitleorpdforheading\@glsxtr@org@glsxtrtitleorpdforheading
\let\glsxtrtitleshort\@glsxtr@org@glsxtrtitleshort
\let\glsxtrtitleshortpl\@glsxtr@org@glsxtrtitleshortpl
\let\Glsxtrtitleshort\@glsxtr@org@Glsxtrtitleshort
\let\Glsxtrtitleshortpl\@glsxtr@org@Glsxtrtitleshortpl
+ \let\glsxtrtitlename\@glsxtr@org@glsxtrtitlename
+ \let\Glsxtrtitlename\@glsxtr@org@Glsxtrtitlename
\let\glsxtrtitletext\@glsxtr@org@glsxtrtitletext
\let\Glsxtrtitletext\@glsxtr@org@Glsxtrtitletext
\let\glsxtrtitleplural\@glsxtr@org@glsxtrtitleplural
@@ -9675,6 +10412,36 @@
\newrobustcmd*{\Glsxtrtitleshortpl}[1]{%
\Glsxtrshortpl[noindex,hyper=false]{#1}[]%
}
+\newcommand*{\glsxtrheadname}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSname[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \glsname[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\glsxtrtitlename}[1]{%
+ \glsname[noindex,hyper=false]{#1}[]%
+}
+\newcommand*{\Glsxtrheadname}[1]{%
+ \protect\NoCaseChange
+ {%
+ \glsifattribute{#1}{headuc}{true}%
+ {%
+ \GLSname[noindex,hyper=false]{#1}[]%
+ }%
+ {%
+ \Glsname[noindex,hyper=false]{#1}[]%
+ }%
+ }%
+}
+\newrobustcmd*{\Glsxtrtitlename}[1]{%
+ \Glsname[noindex,hyper=false]{#1}[]%
+}
\newcommand*{\glsxtrheadtext}[1]{%
\protect\NoCaseChange
{%
@@ -9965,6 +10732,30 @@
}
\ifdef\texorpdfstring
{
+ \newcommand*{\glsfmtname}[1]{%
+ \texorpdfstring
+ {\glsxtrtitlename{#1}}%
+ {\glsentryname{#1}}%
+ }
+}
+{
+ \newcommand*{\glsfmtname}[1]{%
+ \glsxtrtitlename{#1}}
+}
+\ifdef\texorpdfstring
+{
+ \newcommand*{\Glsfmtname}[1]{%
+ \texorpdfstring
+ {\Glsxtrtitlename{#1}}%
+ {\glsentryname{#1}}%
+ }
+}
+{
+ \newcommand*{\Glsfmtname}[1]{%
+ \Glsxtrtitlename{#1}}
+}
+\ifdef\texorpdfstring
+{
\newcommand*{\glsfmttext}[1]{%
\texorpdfstring
{\glsxtrtitletext{#1}}%