summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/glossaries-extra
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-11-03 21:38:07 +0000
committerKarl Berry <karl@freefriends.org>2017-11-03 21:38:07 +0000
commite4d8f7684792e7652b447e6ad94b82ca72886fe3 (patch)
tree293c6ba9077b051a071953ff264008a647d713fd /Master/texmf-dist/tex/latex/glossaries-extra
parente9c70de7cb494496d1f0357ba7ae82c5c2b15447 (diff)
glossaries-extra (3nov17)
git-svn-id: svn://tug.org/texlive/trunk@45682 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/glossaries-extra')
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/example-glossaries-xr.tex2
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-stylemods.sty738
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty1345
-rw-r--r--Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex.sty210
4 files changed, 1993 insertions, 302 deletions
diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/example-glossaries-xr.tex b/Master/texmf-dist/tex/latex/glossaries-extra/example-glossaries-xr.tex
index d9e3d5b5806..0e041579df0 100644
--- a/Master/texmf-dist/tex/latex/glossaries-extra/example-glossaries-xr.tex
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/example-glossaries-xr.tex
@@ -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
diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-stylemods.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-stylemods.sty
index a2bd79b1a12..67146a59603 100644
--- a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-stylemods.sty
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra-stylemods.sty
@@ -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,17 +39,35 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossaries-extra-stylemods}[2017/09/11 v1.20 (NLCT)]
+\ProvidesPackage{glossaries-extra-stylemods}[2017/11/03 v1.21 (NLCT)]
\newcommand*{\@glsxtr@loadstyles}{}
+\DeclareOption{all}{%
+ \appto\@glsxtr@loadstyles{%
+ \RequirePackage{glossary-inline}%
+ \RequirePackage{glossary-list}%
+ \RequirePackage{glossary-tree}%
+ \RequirePackage{glossary-mcols}%
+ \RequirePackage{glossary-long}%
+ \RequirePackage{glossary-longragged}%
+ \RequirePackage{glossary-longbooktabs}%
+ \RequirePackage{glossary-super}%
+ \RequirePackage{glossary-superragged}%
+ \RequirePackage{glossary-bookindex}%
+ }
+}
\DeclareOption*{%
\IfFileExists{glossary-\CurrentOption.sty}
{\eappto\@glsxtr@loadstyles{%
- \noexpand\RequirePackage{glossary-\CurrentOption}}}%
- {\PackageError{glossaries-extra-styles}%
- {Unknown option `\CurrentOption'}{}}
+ \noexpand\RequirePackage{glossary-\CurrentOption}}%
+ }%
+ {%
+ \PackageError{glossaries-extra-styles}%
+ {Unknown option `\CurrentOption'}{}%
+ }%
}
\ProcessOptions
\@glsxtr@loadstyles
+\providecommand*{\glsxtrprelocation}{\space}
\providecommand{\renewglossarystyle}[2]{%
\ifcsundef{@glsstyle@#1}%
{%
@@ -77,6 +95,124 @@
\glossentrydesc{##2}\glspostdescription}%
}
}
+{%
+}
+\ifdef{\@glsstyle@list}
+{%
+ \newcommand{\glslistprelocation}{\glsxtrprelocation}
+ \newcommand{\glslistchildprelocation}{\glslistprelocation}
+ \newcommand{\glslistchildpostlocation}{.}
+ \renewglossarystyle{list}{%
+ \renewenvironment{theglossary}%
+ {\begin{description}}{\end{description}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glossentry}[2]{%
+ \item[\glsentryitem{##1}%
+ \glstarget{##1}{\glossentryname{##1}}]
+ \glossentrydesc{##1}\glspostdescription\glslistprelocation ##2}%
+ \renewcommand*{\subglossentry}[3]{%
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}\space
+ \glossentrydesc{##2}\glspostdescription
+ \glslistchildprelocation ##3\glslistchildpostlocation}%
+ \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}%
+ }
+}
+{}
+\ifdef{\@glsstyle@altlist}
+{%
+ \renewglossarystyle{altlist}{%
+ \setglossarystyle{list}%
+ \renewcommand*{\glossentry}[2]{%
+ \item[\glsentryitem{##1}%
+ \glstarget{##1}{\glossentryname{##1}}]%
+ \mbox{}\par\nobreak\@afterheading
+ \glossentrydesc{##1}\glspostdescription\glslistprelocation ##2}%
+ \renewcommand{\subglossentry}[3]{%
+ \par
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription
+ \glslistchildprelocation ##3}%
+ }
+}
+{}
+\ifdef{\@glsstyle@listgroup}
+{%
+ \renewglossarystyle{listgroup}{%
+ \setglossarystyle{list}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \item[\glslistgroupheaderfmt{\glsgetgrouptitle{##1}}]%
+ \mbox{}\par\nobreak\@afterheading
+ }%
+ }
+}
+{}
+\ifdef{\@glsstyle@listhypergroup}
+{%
+ \renewglossarystyle{listhypergroup}{%
+ \setglossarystyle{list}%
+ \renewcommand*{\glossaryheader}{%
+ \glslistnavigationitem{\glsnavigation}}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \item[\glslistgroupheaderfmt
+ {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}]%
+ \mbox{}\par\nobreak\@afterheading
+ }%
+ }
+}
+{}
+\ifdef{\@glsstyle@altlistgroup}
+{%
+ \renewglossarystyle{altlistgroup}{%
+ \setglossarystyle{altlist}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \item[\glslistgroupheaderfmt{\glsgetgrouptitle{##1}}]%
+ \mbox{}\par\nobreak\@afterheading
+ }%
+ }
+}
+{}
+\ifdef{\@glsstyle@altlisthypergroup}
+{%
+ \renewglossarystyle{altlisthypergroup}{%
+ \setglossarystyle{altlist}%
+ \renewcommand*{\glossaryheader}{%
+ \glslistnavigationitem{\glsnavigation}}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \item[\glslistgroupheaderfmt
+ {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}]%
+ \mbox{}\par\nobreak\@afterheading
+ }%
+ }
+}
+{}
+\ifcsdef{@glsstyle@long}
+{%
+ \renewglossarystyle{long}{%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{lp{\glsdescwidth}}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossentry}[2]{%
+ \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
+ \glossentrydesc{##1}\glspostdescription
+ \glsxtrprelocation ##2\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription
+ \glsxtrprelocation ##3\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{ & \tabularnewline}%
+ \fi
+ }
+}
{}
\ifcsdef{@glsstyle@long3col}
{%
@@ -96,8 +232,11 @@
\glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription &
##3\tabularnewline
}%
- \renewcommand*{\glsgroupskip}{%
- \ifglsnogroupskip\else & &\tabularnewline\fi}%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{& &\tabularnewline}%
+ \fi
}
}
{}
@@ -121,8 +260,39 @@
\glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription &
\glossentrysymbol{##2} & ##3\tabularnewline
}%
- \renewcommand*{\glsgroupskip}{%
- \ifglsnogroupskip\else & & &\tabularnewline\fi}%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{& & &\tabularnewline}%
+ \fi
+ }
+}
+{}
+\ifcsdef{@glsstyle@longragged}
+{%
+ \renewglossarystyle{longragged}{%
+ \renewenvironment{theglossary}%
+ {\begin{longtable}{l>{\raggedright}p{\glsdescwidth}}}%
+ {\end{longtable}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossentry}[2]{%
+ \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
+ \glossentrydesc{##1}\glspostdescription\glsxtrprelocation ##2%
+ \tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}\glossentrydesc{##2}%
+ \glspostdescription\glsxtrprelocation ##3%
+ \tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{ & \tabularnewline}%
+ \fi
}
}
{}
@@ -145,8 +315,11 @@
\glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription &
##3\tabularnewline
}%
- \renewcommand*{\glsgroupskip}{%
- \ifglsnogroupskip\else & &\tabularnewline\fi}%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{& &\tabularnewline}%
+ \fi
}
}
{}
@@ -170,8 +343,39 @@
\glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription &
\glossentrysymbol{##2} & ##3\tabularnewline
}%
- \renewcommand*{\glsgroupskip}{%
- \ifglsnogroupskip\else & & &\tabularnewline\fi}%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{& & &\tabularnewline}%
+ \fi
+ }
+}
+{}
+\ifcsdef{@glsstyle@super}
+{%
+ \renewglossarystyle{super}{%
+ \renewenvironment{theglossary}%
+ {\tablehead{}\tabletail{}%
+ \begin{supertabular}{lp{\glsdescwidth}}}%
+ {\end{supertabular}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossentry}[2]{%
+ \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
+ \glossentrydesc{##1}\glspostdescription
+ \glsxtrprelocation ##2\tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription
+ \glsxtrprelocation ##3\tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{& \tabularnewline}%
+ \fi
}
}
{}
@@ -194,8 +398,11 @@
\glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription &
##3\tabularnewline
}%
- \renewcommand*{\glsgroupskip}{%
- \ifglsnogroupskip\else & &\tabularnewline\fi}%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{ & &\tabularnewline}%
+ \fi
}
}
{}
@@ -219,8 +426,40 @@
\glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription &
\glossentrysymbol{##2} & ##3\tabularnewline
}%
- \renewcommand*{\glsgroupskip}{%
- \ifglsnogroupskip\else & & &\tabularnewline\fi}%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{& & &\tabularnewline}%
+ \fi
+ }
+}
+{}
+\ifcsdef{@glsstyle@superragged}
+{%
+ \renewglossarystyle{superragged}{%
+ \renewenvironment{theglossary}%
+ {\tablehead{}\tabletail{}%
+ \begin{supertabular}{l>{\raggedright}p{\glsdescwidth}}}%
+ {\end{supertabular}}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossentry}[2]{%
+ \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
+ \glossentrydesc{##1}\glspostdescription\glsxtrprelocation ##2%
+ \tabularnewline
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ &
+ \glssubentryitem{##2}%
+ \glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription
+ \glsxtrprelocation ##3%
+ \tabularnewline
+ }%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{& \tabularnewline}%
+ \fi
}
}
{}
@@ -245,8 +484,11 @@
\glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription &
##3\tabularnewline
}%
- \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else &
- &\tabularnewline\fi}%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{ & &\tabularnewline}%
+ \fi
}
}
{}
@@ -270,8 +512,11 @@
\glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription &
\glossentrysymbol{##2} & ##3\tabularnewline
}%
- \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else & &
- &\tabularnewline\fi}%
+ \ifglsnogroupskip
+ \renewcommand*{\glsgroupskip}{}%
+ \else
+ \renewcommand*{\glsgroupskip}{& & &\tabularnewline}%
+ \fi
}
}
{}
@@ -284,13 +529,194 @@
#1\glsxtrpostdescription}
}
{}
+\ifdef{\@glsstyle@index}
+{
+ \newcommand*{\glstreeprelocation}{\glsxtrprelocation}
+ \newcommand*{\glstreechildprelocation}{\glstreeprelocation}
+ \renewglossarystyle{index}{%
+ \renewenvironment{theglossary}%
+ {\setlength{\parindent}{0pt}%
+ \setlength{\parskip}{0pt plus 0.3pt}%
+ \let\item\glstreeitem
+ \let\subitem\glstreesubitem
+ \let\subsubitem\glstreesubsubitem
+ }%
+ {\par}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand*{\glossentry}[2]{%
+ \item\glsentryitem{##1}%
+ \glstreenamefmt{\glstarget{##1}{\glossentryname{##1}}}%
+ \ifglshassymbol{##1}{\space(\glossentrysymbol{##1})}{}%
+ \glstreepredesc \glossentrydesc{##1}\glspostdescription
+ \glstreeprelocation ##2%
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \ifcase##1\relax
+ \item
+ \or
+ \subitem
+ \glssubentryitem{##2}%
+ \else
+ \subsubitem
+ \fi
+ \glstreenamefmt{\glstarget{##2}{\glossentryname{##2}}}%
+ \ifglshassymbol{##2}{\space(\glossentrysymbol{##2})}{}%
+ \glstreechildpredesc\glossentrydesc{##2}\glspostdescription
+ \glstreechildprelocation ##3%
+ }%
+ \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}%
+ }
+}
+{}
+\ifdef{\@glsstyle@indexgroup}
+{%
+ \renewglossarystyle{indexgroup}{%
+ \setglossarystyle{index}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \item\glstreegroupheaderfmt{\glsgetgrouptitle{##1}}%
+ \nopagebreak\indexspace
+ \nobreak\@afterheading
+ }%
+ }
+}
+{}
+\ifdef{\@glsstyle@indexhypergroup}
+{%
+ \renewglossarystyle{indexhypergroup}{%
+ \setglossarystyle{index}%
+ \renewcommand*{\glossaryheader}{%
+ \item\glstreenavigationfmt{\glsnavigation}%
+ \nobreak\@afterheading\indexspace}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \item\glstreegroupheaderfmt
+ {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}%
+ \nopagebreak\indexspace
+ \nobreak\@afterheading}%
+ }%
+}
+{}
+\ifdef{\@glsstyle@tree}
+{%
+ \renewglossarystyle{tree}{%
+ \renewenvironment{theglossary}%
+ {\setlength{\parindent}{0pt}%
+ \setlength{\parskip}{0pt plus 0.3pt}}%
+ {}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossentry}[2]{%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \glsentryitem{##1}\glstreenamefmt{\glstarget{##1}{\glossentryname{##1}}}%
+ \ifglshassymbol{##1}{\space(\glossentrysymbol{##1})}{}%
+ \glstreepredesc\glossentrydesc{##1}\glspostdescription
+ \glstreeprelocation##2\par
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \hangindent##1\glstreeindent\relax
+ \parindent##1\glstreeindent\relax
+ \ifnum##1=1\relax
+ \glssubentryitem{##2}%
+ \fi
+ \glstreenamefmt{\glstarget{##2}{\glossentryname{##2}}}%
+ \ifglshassymbol{##2}{\space(\glossentrysymbol{##2})}{}%
+ \glstreechildpredesc\glossentrydesc{##2}\glspostdescription
+ \glstreechildprelocation ##3\par
+ }%
+ \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}%
+ }%
+}
+{}
+\ifdef{\@glsstyle@treegroup}
+{%
+ \renewglossarystyle{treegroup}{%
+ \setglossarystyle{tree}%
+ \renewcommand{\glsgroupheading}[1]{\par
+ \noindent\glstreegroupheaderfmt{\glsgetgrouptitle{##1}}\par
+ \nopagebreak\indexspace\nobreak\@afterheading}%
+ }
+}
+{}
+\ifdef{\@glsstyle@treehypergroup}
+{%
+ \renewglossarystyle{treehypergroup}{%
+ \setglossarystyle{tree}%
+ \renewcommand*{\glossaryheader}{%
+ \par\noindent\glstreenavigationfmt{\glsnavigation}\par
+ \nobreak\@afterheading\indexspace}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \par\noindent
+ \glstreegroupheaderfmt
+ {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}\par
+ \nopagebreak\indexspace\nobreak\@afterheading}%
+ }
+}
+{}
+\ifdef{\@glsstyle@treenoname}
+{%
+ \renewglossarystyle{treenoname}{%
+ \renewenvironment{theglossary}%
+ {\setlength{\parindent}{0pt}%
+ \setlength{\parskip}{0pt plus 0.3pt}}%
+ {}%
+ \renewcommand*{\glossaryheader}{}%
+ \renewcommand*{\glsgroupheading}[1]{}%
+ \renewcommand{\glossentry}[2]{%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \glsentryitem{##1}\glstreenamefmt{\glstarget{##1}{\glossentryname{##1}}}%
+ \ifglshassymbol{##1}{\space(\glossentrysymbol{##1})}{}%
+ \glstreepredesc\glossentrydesc{##1}\glspostdescription
+ \glstreeprelocation##2\par
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \hangindent##1\glstreeindent\relax
+ \parindent##1\glstreeindent\relax
+ \ifnum##1=1\relax
+ \glssubentryitem{##2}%
+ \fi
+ \glstarget{##2}{\strut}%
+ \glossentrydesc{##2}\glspostdescription\glstreechildprelocation##3\par
+ }%
+ \renewcommand*{\glsgroupskip}{\ifglsnogroupskip\else\indexspace\fi}%
+ }
+}
+{}
+\ifdef{\@glsstyle@treenonamegroup}
+{%
+ \renewglossarystyle{treenonamegroup}{%
+ \setglossarystyle{treenoname}%
+ \renewcommand{\glsgroupheading}[1]{\par
+ \noindent\glstreegroupheaderfmt
+ {\glsgetgrouptitle{##1}}%
+ \nopagebreak\indexspace\nobreak\@afterheading
+ }%
+ }
+}
+{}
+\ifdef{\@glsstyle@treenonamehypergroup}
+{%
+ \renewglossarystyle{treenonamehypergroup}{%
+ \setglossarystyle{treenoname}%
+ \renewcommand*{\glossaryheader}{%
+ \par\noindent\glstreenavigationfmt{\glsnavigation}\par
+ \nobreak\@afterheading\indexspace}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \par\noindent
+ \glstreegroupheaderfmt
+ {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}%
+ \nopagebreak\indexspace\nobreak\@afterheading}%
+ }
+}
+{}
\ifdef{\@glsstyle@alttree}
{%
\newcommand{\glsxtralttreeSymbolDescLocation}[2]{%
{%
\let\par\glsxtrAltTreePar
\ifglshassymbol{#1}{(\glossentrysymbol{#1})\space}{}%
- \glossentrydesc{#1}\glspostdescription \space #2\par
+ \glossentrydesc{#1}\glspostdescription\glstreeprelocation #2\par
}%
}
\newlength\glsxtrAltTreeIndent
@@ -307,6 +733,9 @@
\settowidth{\glsxtrtreetopindent}{\glstreenamefmt{\glsgetwidestname\space}}%
\glsxtrAltTreeIndent=\parindent
}
+ \newcommand*{\gglssetwidest}[2][0]{%
+ \csgdef{@glswidestname\romannumeral#1}{#2}%
+ }
\newcommand*{\eglssetwidest}[2][0]{%
\protected@csedef{@glswidestname\romannumeral#1}{#2}%
}
@@ -643,8 +1072,8 @@
\csname @glswidestname\romannumeral#1\endcsname\space}}%
}%
}
-\newcommand*{\glsxtrAltTreeSetHangIndent}{\hangindent\glstreeindent}
-\newcommand*{\glsxtrAltTreeSetSubHangIndent}[1]{\hangindent\glstreeindent}
+ \newcommand*{\glsxtrAltTreeSetHangIndent}{\hangindent\glstreeindent}
+ \newcommand*{\glsxtrAltTreeSetSubHangIndent}[1]{\hangindent\glstreeindent}
\renewglossarystyle{alttree}{%
\renewenvironment{theglossary}%
{%
@@ -704,6 +1133,267 @@
}%
{%
}
+\ifdef{\@glsstyle@alttreegroup}
+{%
+ \renewglossarystyle{alttreegroup}{%
+ \setglossarystyle{alttree}%
+ \renewcommand{\glsgroupheading}[1]{\par
+ \def\@gls@prevlevel{-1}%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \glstreegroupheaderfmt{\glsgetgrouptitle{##1}}%
+ \nopagebreak\indexspace\nopagebreak
+ }%
+ }%
+}%
+{%
+}
+\ifdef{\@glsstyle@alttreehypergroup}
+{%
+ \renewglossarystyle{alttreehypergroup}{%
+ \setglossarystyle{alttree}%
+ \renewcommand*{\glossaryheader}{%
+ \par
+ \def\@gls@prevlevel{-1}%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \glstreenavigationfmt{\glsnavigation}\par\indexspace
+ }%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \par
+ \def\@gls@prevlevel{-1}%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \glstreegroupheaderfmt
+ {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}\par
+ \nopagebreak\indexspace\nopagebreak
+ }%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcolindexgroup}
+{%
+ \renewglossarystyle{mcolindexgroup}{%
+ \setglossarystyle{mcolindex}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \item\glstreegroupheaderfmt{\glsgetgrouptitle{##1}}%
+ \nopagebreak\indexspace\nobreak\@afterheading
+ }%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcolindexhypergroup}
+{%
+ \renewglossarystyle{mcolindexhypergroup}{%
+ \setglossarystyle{mcolindex}%
+ \renewcommand*{\glossaryheader}{%
+ \item\glstreenavigationfmt{\glsnavigation}%
+ \indexspace
+ }%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \item\glstreegroupheaderfmt
+ {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}%
+ \nopagebreak\indexspace\nobreak\@afterheading
+ }%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcolindexspannav}
+{%
+ \renewglossarystyle{mcolindexspannav}{%
+ \setglossarystyle{index}%
+ \renewenvironment{theglossary}%
+ {%
+ \begin{multicols}{\glsmcols}[\noindent\glstreenavigationfmt{\glsnavigation}]%
+ \setlength{\parindent}{0pt}%
+ \setlength{\parskip}{0pt plus 0.3pt}%
+ \let\item\glstreeitem}%
+ {\end{multicols}}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \item\glstreegroupheaderfmt
+ {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}%
+ \nopagebreak\indexspace\nobreak\@afterheading
+ }%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcoltreegroup}
+{%
+ \renewglossarystyle{mcoltreegroup}{%
+ \setglossarystyle{mcoltree}%
+ \renewcommand{\glsgroupheading}[1]{\par
+ \noindent\glstreegroupheaderfmt{\glsgetgrouptitle{##1}}%
+ \nopagebreak\indexspace\nobreak\@afterheading
+ }%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcoltreehypergroup}
+{%
+ \renewglossarystyle{mcoltreehypergroup}{%
+ \setglossarystyle{mcoltree}%
+ \renewcommand*{\glossaryheader}{%
+ \par\noindent\glstreenavigationfmt{\glsnavigation}\par\indexspace
+ }%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \par\noindent
+ \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}%
+ \nopagebreak\indexspace\nobreak\@afterheading
+ }%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcoltreespannav}
+{%
+ \renewglossarystyle{mcoltreespannav}{%
+ \setglossarystyle{tree}%
+ \renewenvironment{theglossary}%
+ {%
+ \begin{multicols}{\glsmcols}%
+ [\noindent\glstreenavigationfmt{\glsnavigation}]%
+ \setlength{\parindent}{0pt}%
+ \setlength{\parskip}{0pt plus 0.3pt}%
+ }%
+ {\end{multicols}}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \par\noindent
+ \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}%
+ \nopagebreak\indexspace\nobreak\@afterheading
+ }%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcoltreenonamegroup}
+{%
+ \renewglossarystyle{mcoltreenonamegroup}{%
+ \setglossarystyle{mcoltreenoname}%
+ \renewcommand{\glsgroupheading}[1]{\par
+ \noindent\glstreegroupheaderfmt{\glsgetgrouptitle{##1}}%
+ \nopagebreak\indexspace\nobreak\@afterheading
+ }%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcoltreenonamehypergroup}
+{%
+ \renewglossarystyle{mcoltreenonamehypergroup}{%
+ \setglossarystyle{mcoltreenoname}%
+ \renewcommand*{\glossaryheader}{%
+ \par\noindent\glstreenavigationfmt{\glsnavigation}\par\indexspace}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \par\noindent
+ \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}%
+ \nopagebreak\indexspace\nobreak\@afterheading}%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcoltreenonamespannav}
+{%
+ \renewglossarystyle{mcoltreenonamespannav}{%
+ \setglossarystyle{treenoname}%
+ \renewenvironment{theglossary}%
+ {%
+ \begin{multicols}{\glsmcols}%
+ [\noindent\glstreenavigationfmt{\glsnavigation}]%
+ \setlength{\parindent}{0pt}%
+ \setlength{\parskip}{0pt plus 0.3pt}%
+ }%
+ {\end{multicols}}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \par\noindent
+ \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}%
+ \nopagebreak\indexspace\nobreak\@afterheading}%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcolalttree}
+{%
+ \renewglossarystyle{mcolalttree}{%
+ \setglossarystyle{alttree}%
+ \renewenvironment{theglossary}%
+ {%
+ \glsxtralttreeInit
+ \def\@gls@prevlevel{-1}%
+ \begin{multicols}{\glsmcols}%
+ }%
+ {\par\end{multicols}}%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcolalttreegroup}
+{%
+ \renewglossarystyle{mcolalttreegroup}{%
+ \setglossarystyle{mcolalttree}%
+ \renewcommand{\glsgroupheading}[1]{\par
+ \def\@gls@prevlevel{-1}%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \glstreegroupheaderfmt{\glsgetgrouptitle{##1}}%
+ \nopagebreak\indexspace\nopagebreak
+ }%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcolalttreehypergroup}
+{%
+ \renewglossarystyle{mcolalttreehypergroup}{%
+ \setglossarystyle{mcolalttree}%
+ \renewcommand*{\glossaryheader}{%
+ \par
+ \def\@gls@prevlevel{-1}%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \glstreenavigationfmt{\glsnavigation}%
+ \par\indexspace
+ }%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \par
+ \def\@gls@prevlevel{-1}%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}%
+ \nopagebreak\indexspace\nopagebreak
+ }%
+ }
+}%
+{%
+}
+\ifdef{\@glsstyle@mcolalttreespannav}
+{%
+ \renewglossarystyle{mcolalttreespannav}{%
+ \setglossarystyle{alttree}%
+ \renewenvironment{theglossary}%
+ {%
+ \glsxtralttreeInit
+ \def\@gls@prevlevel{-1}%
+ \begin{multicols}{\glsmcols}%
+ [\noindent\glstreenavigationfmt{\glsnavigation}]%
+ }%
+ {\par\end{multicols}}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \par
+ \def\@gls@prevlevel{-1}%
+ \hangindent0pt\relax
+ \parindent0pt\relax
+ \glstreegroupheaderfmt{\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}%
+ \nopagebreak\indexspace\nopagebreak
+ }%
+ }
+}%
+{%
+}
\ifx\@glossary@default@style\relax
\else
\setglossarystyle{\@glsxtr@current@style}
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}}%
diff --git a/Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex.sty b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex.sty
new file mode 100644
index 00000000000..ccc4bb32f57
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossary-bookindex.sty
@@ -0,0 +1,210 @@
+%%
+%% This is file `glossary-bookindex.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% glossaries-extra.dtx (with options: `glossary-bookindex.sty,package')
+%%
+%% glossaries-extra.dtx
+%% Copyright 2017 Nicola Talbot
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Nicola Talbot.
+%%
+%% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-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
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{glossary-bookindex}[2017/11/03 v1.21 (NLCT)]
+\RequirePackage{multicol}
+\RequirePackage{glossary-tree}
+\newcommand{\glsxtrbookindexcols}{2}
+\newcommand*{\glsxtrbookindexname}[1]{\glossentryname{#1}}
+\newcommand*{\glsxtrbookindexsubname}[1]{\glsxtrbookindexname{#1}}
+\providecommand*{\glsxtrprelocation}{\space}
+
+\newcommand*{\glsxtrbookindexprelocation}[1]{%
+ \glsxtrifhasfield{location}{#1}%
+ {\ifglsnopostdot,\fi\glsxtrprelocation}%
+ {\glsxtrprelocation}%
+}
+\newcommand*{\glsxtrbookindexsubprelocation}[1]{%
+ \glsxtrbookindexprelocation{#1}%
+}
+\newcommand{\glsxtrbookindexparentchildsep}{\nopagebreak}
+\newcommand{\glsxtrbookindexparentsubchildsep}{\glsxtrbookindexparentchildsep}
+\newcommand{\glsxtrbookindexbetween}[2]{}
+\newcommand{\glsxtrbookindexsubbetween}[2]{}
+\newcommand{\glsxtrbookindexsubsubbetween}[2]{}
+\newcommand{\glsxtrbookindexatendgroup}[1]{}
+\newcommand{\glsxtrbookindexsubatendgroup}[1]{}
+\newcommand{\glsxtrbookindexsubsubatendgroup}[1]{}
+\newcommand{\glsxtrbookindexgroupskip}{\ifglsnogroupskip\else\indexspace\fi}
+\newcommand*{\glsxtrbookindexformatheader}[1]{%
+ \par{\centering\glstreegroupheaderfmt{#1}\par}%
+}
+\ifdef\pdfbookmark
+{%
+ \newcommand*{\glsxtrbookindexbookmark}[2]{%
+ \ifdefstring{\@@glossarysec}{chapter}%
+ {\pdfbookmark[1]{#1}{#2}}%
+ {\pdfbookmark[2]{#1}{#2}}%
+ }
+}
+{%
+ \newcommand*{\glsxtrbookindexbookmark}[2]{}
+}
+\newcommand*{\glsxtrbookindexcolspread}{}
+\newglossarystyle{bookindex}{%
+ \setglossarystyle{index}%
+ \renewenvironment{theglossary}%
+ {%
+ \ifdefempty\glsxtrbookindexcolspread
+ {\begin{multicols}{\glsxtrbookindexcols}}%
+ {\begin{multicols}{\glsxtrbookindexcols}[\glsxtrbookindexcolspread]}%
+ \setlength{\parindent}{0pt}%
+ \setlength{\parskip}{0pt plus 0.3pt}%
+ \let\@glsxtr@bookindex@sep\glsxtrbookindexparentchildsep
+ \let\@glsxtr@bookindex@subsep\glsxtrbookindexparentsubchildsep
+ \let\@glsxtr@bookindex@between\@gobble
+ \let\@glsxtr@bookindex@subbetween\@gobble
+ \let\@glsxtr@bookindex@subsubbetween\@gobble
+ \let\@glsxtr@bookindex@atendgroup\relax
+ \let\@glsxtr@bookindex@subatendgroup\relax
+ \let\@glsxtr@bookindex@subsubatendgroup\relax
+ \let\@glsxtr@bookindexgroupskip\relax
+ }%
+ {%
+ \@glsxtr@bookindex@subsubatendgroup
+ \@glsxtr@bookindex@subatendgroup
+ \@glsxtr@bookindex@atendgroup
+ \end{multicols}%
+ }%
+ \renewcommand*{\glossaryheader}{\raggedright}%
+ \renewcommand*{\glossentry}[2]{%
+ \@glsxtr@bookindex@between{##1}%
+ \let\@glsxtr@bookindex@sep\glsxtrbookindexparentchildsep
+ \let\@glsxtr@bookindex@subsep\glsxtrbookindexparentsubchildsep
+ \let\@glsxtr@bookindex@subbetween\@gobble
+ \let\@glsxtr@bookindex@subsubbetween\@gobble
+ \edef\@glsxtr@bookindex@between{%
+ \noexpand\glsxtrbookindexbetween{##1}%
+ }%
+ \edef\@glsxtr@bookindex@atendgroup{%
+ \noexpand\glsxtrbookindexatendgroup{##1}%
+ }%
+ \let\@glsxtr@bookindex@subatendgroup\relax
+ \let\@glsxtr@bookindex@subsubatendgroup\relax
+ \glstreeitem
+ \glsentryitem{##1}%
+ \glstarget{##1}{\glsxtrbookindexname{##1}}%
+ \glsxtrbookindexprelocation{##1}##2%
+ }%
+ \renewcommand{\subglossentry}[3]{%
+ \ifcase##1\relax
+ \glstreeitem
+ \or
+ \@glsxtr@bookindex@sep
+ \@glsxtr@bookindex@subbetween{##2}%
+ \let\@glsxtr@bookindex@sep\relax
+ \let\@glsxtr@bookindex@subsubbetween\@gobble
+ \let\@glsxtr@bookindex@subsep\glsxtrbookindexparentsubchildsep
+ \edef\@glsxtr@bookindex@subbetween{%
+ \noexpand\glsxtrbookindexsubbetween{##2}%
+ }%
+ \edef\@glsxtr@bookindex@atsubendgroup{%
+ \noexpand\glsxtrbookindexatsubendgroup{##1}%
+ }%
+ \glstreesubitem
+ \glssubentryitem{##2}%
+ \else
+ \@glsxtr@bookindex@subsep
+ \@glsxtr@bookindex@subsubbetween{##2}%
+ \let\@glsxtr@bookindex@subsep\relax
+ \edef\@glsxtr@bookindex@subsubbetween{%
+ \noexpand\glsxtrbookindexsubsubbetween{##2}%
+ }%
+ \edef\@glsxtr@bookindex@atsubsubendgroup{%
+ \noexpand\glsxtrbookindexatsubsubendgroup{##1}%
+ }%
+ \glstreesubsubitem
+ \fi
+ \glstarget{##2}{\glsxtrbookindexsubname{##2}}%
+ \glsxtrbookindexsubprelocation{##2}##3%
+ }%
+ \renewcommand*{\glsgroupskip}{}%
+ \renewcommand*{\glsgroupheading}[1]{%
+ \@glsxtr@bookindex@subsubatendgroup
+ \@glsxtr@bookindex@subatendgroup
+ \@glsxtr@bookindex@atendgroup
+ \@glsxtr@bookindexgroupskip
+ \let\@glsxtr@bookindexgroupskip\glsxtrbookindexgroupskip
+ \let\@glsxtr@bookindex@between\@gobble
+ \let\@glsxtr@bookindex@atendgroup\relax
+ \let\@glsxtr@bookindex@subatendgroup\relax
+ \let\@glsxtr@bookindex@subsubatendgroup\relax
+ \glsxtrgetgrouptitle{##1}{\thisgrptitle}%
+ \glsxtrbookindexbookmark{\thisgrptitle}{index.##1}%
+ \glsxtrbookindexformatheader{\thisgrptitle}%
+ \nopagebreak\indexspace\nopagebreak\@afterheading
+ }%
+}
+\newcommand{\glsxtrbookindexthepage}{%
+ \ifdef\currentglossary{\currentglossary.\arabic{page}}{\arabic{page}}%
+}
+\newcommand*{\glsxtrbookindexmarkentry}[1]{%
+ \protected@write\@auxout
+ {\let\glsxtrbookindexthepage\relax}%
+ {\string\glsxtr@setbookindexmark{\glsxtrbookindexthepage}{#1}}%
+}
+\newcommand*{\glsxtr@setbookindexmark}[2]{%
+ \ifcsundef{glsxtr@idxfirstmark@#1}%
+ {\csgdef{glsxtr@idxfirstmark@#1}{#2}}%
+ {}%
+ \csgdef{glsxtr@idxlastmark@#1}{#2}%
+}
+\newcommand*{\glsxtrbookindexfirstmarkfmt}[1]{%
+ \glsentryname{#1}%
+}
+\newcommand*{\glsxtrbookindexfirstmark}{%
+ \letcs{\glsxtr@label}{glsxtr@idxfirstmark@\glsxtrbookindexthepage}%
+ \ifdef\glsxtr@label
+ {\glsxtrbookindexfirstmarkfmt{\glsxtr@label}}%
+ {}%
+}
+\newcommand*{\glsxtrbookindexlastmarkfmt}[1]{%
+ \glsentryname{#1}%
+}
+\newcommand*{\glsxtrbookindexlastmark}{%
+ \letcs{\glsxtr@label}{glsxtr@idxlastmark@\glsxtrbookindexthepage}%
+ \ifdef\glsxtr@label
+ {\glsxtrbookindexlastmarkfmt{\glsxtr@label}}%
+ {}%
+}
+\endinput
+%%
+%% End of file `glossary-bookindex.sty'.