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.sty263
1 files changed, 216 insertions, 47 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 55a3a3b5af5..d6911ce06cc 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.
+%% 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.
%%
%% \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/05/10 v1.15 (NLCT)]
+\ProvidesPackage{glossaries-extra}[2017/06/15 v1.16 (NLCT)]
\RequirePackage{xkeyval}
\RequirePackage{etoolbox}
\@ifpackageloaded{glossaries}
@@ -136,12 +136,13 @@
\ifdefempty{\@glsxtr@thevalue}%
{%
\glsxtr@saveentrycounter
+ \let\@@do@@wrglossary\@glsxtr@dorecord
}%
{%
\let\theglsentrycounter\@glsxtr@thevalue
\def\theHglsentrycounter{\@glsxtr@theHvalue}%
+ \let\@@do@@wrglossary\@glsxtr@dorecordnodefer
}%
- \let\@@do@@wrglossary\@glsxtr@dorecord
\glsxtr@@do@wrglossary{#2}%
}%
\fi
@@ -153,6 +154,12 @@
{\@glslocref}}%
\@glsxtr@counterrecordhook
}
+\newcommand*\@glsxtr@dorecordnodefer{%
+ \protected@write\@auxout{}{\string\glsxtr@record
+ {\@gls@label}{\@glo@counterprefix}{\@gls@counter}{\@glsnumberformat}%
+ {\@glslocref}}%
+ \@glsxtr@counterrecordhook
+}
\newcommand*{\@@glsxtr@recordcounter}{%
\@glsxtr@noop@recordcounter
}
@@ -219,7 +226,6 @@
{%
\ifcase\nr\relax
\def\glsxtr@setup@record{%
- \let\@glo@autosee\@glsxtr@org@gloautosee
\renewcommand*{\@do@seeglossary}{\@glsxtr@org@doseeglossary}%
\renewcommand*{\@glsxtr@record}[3]{}%
\let\@@do@wrglossary\glsxtr@@do@wrglossary
@@ -232,7 +238,7 @@
}%
\or
\def\glsxtr@setup@record{%
- \ifdef\@glo@autosee{\let\@glo@autosee\relax}{}%
+ \@glsxtr@autoseeindexfalse
\let\@do@seeglossary\@glsxtr@recordsee
\let\@glsxtr@record\@@glsxtr@record
\let\@@do@wrglossary\@gobble
@@ -244,10 +250,10 @@
\let\@@glsxtr@recordcounter\@glsxtr@op@recordcounter
\def\printunsrtglossaryunit{\print@op@unsrtglossaryunit}%
\def\glsxtrsetaliasnoindex{}%
+ \ifdef\@gls@setupsort@none{\@gls@setupsort@none}{}%
}%
\or
\def\glsxtr@setup@record{%
- \let\@glo@autosee\@glsxtr@org@gloautosee
\renewcommand*{\@do@seeglossary}{\@glsxtr@org@doseeglossary}%
\let\@glsxtr@record\@@glsxtr@record
\let\@@do@wrglossary\glsxtr@@do@wrglossary
@@ -283,6 +289,9 @@
}
\@glsxtrindexcrossrefsfalse
\newcommand*{\@glsxtr@autoindexcrossrefs}{\@glsxtrindexcrossrefstrue}
+\define@boolkey{glossaries-extra.sty}[@glsxtr@]{autoseeindex}[true]{%
+}
+\@glsxtr@autoseeindextrue
\newcommand*{\GlossariesExtraWarning}[1]{\PackageWarning{glossaries-extra}{#1}}
\newcommand*{\GlossariesExtraWarningNoLine}[1]{%
\PackageWarningNoLine{glossaries-extra}{#1}}
@@ -459,6 +468,24 @@
\@glsxtr@doaccsupp
\let\@glsxtr@org@doseeglossary\@do@seeglossary
\let\@glsxtr@org@gloautosee\@glo@autosee
+\if@glsxtr@autoseeindex
+\else
+ \ifdef\@glsxtr@org@gloautosee
+ {}%
+ {\PackageError{glossaries-extra}{`autoseeindex=false' package
+ option requires at least v4.30 of glossaries.sty}%
+ {You need to update the glossaries.sty package}%
+ }
+\fi
+\ifdef\@glo@autosee
+{%
+ \renewcommand*{\@glo@autosee}{%
+ \if@glsxtr@autoseeindex\@glsxtr@org@gloautosee\fi}%
+}%
+{}
+\renewcommand*{\gls@checkseeallowed}{%
+ \if@glsxtr@autoseeindex\@gls@see@noindex\fi
+}
\@glsxtr@abbreviationsdef
\let\@glsxtr@abbreviationsdef\relax
\@glsxtr@setupshortcuts
@@ -663,19 +690,6 @@
\GlossariesExtraWarning{Glossary `#1' is not defined}%
}%
}
-\glsaddstoragekey*{alias}{}{\glsxtralias}
-\appto\@newglossaryentryposthook{%
- \ifcsvoid{glo@\@glo@label @alias}{}%
- {%
- \ifdefvoid\@glo@see
- {%
- \edef\@do@glssee{\noexpand\glssee
- {\@glo@label}{\csuse{glo@\@glo@label @alias}}}%
- \@do@glssee
- }%
- {}%
- }%
-}
\renewcommand*{\longnewglossaryentry}{%
\@ifstar\@glsxtr@s@longnewglossaryentry\@glsxtr@longnewglossaryentry
}
@@ -913,7 +927,9 @@
{\csxdef{glo@\@glo@label @see}{}}%
{%
\csxdef{glo@\@glo@label @see}{\@glo@see}%
- \@glsxtr@autoindexcrossrefs
+ \if@glsxtr@autoseeindex
+ \@glsxtr@autoindexcrossrefs
+ \fi
}%
}
\appto\@gls@keymap{,{see}{see}}
@@ -937,13 +953,132 @@
\newcommand*{\glsxtruseseeformat}[2]{%
\glsseeformat[#1]{#2}{}%
}
+\newcommand*{\glsxtruseseealso}[1]{%
+ \glsdoifexists{#1}%
+ {%
+ \letcs{\@glo@see}{glo@\glsdetoklabel{#1}@seealso}%
+ \ifdefempty\@glo@see
+ {}%
+ {%
+ \expandafter\glsxtruseseealsoformat\expandafter{\@glo@see}%
+ }%
+ }%
+}
+\newcommand*{\glsxtruseseealsoformat}[1]{%
+ \glsseeformat[\seealsoname]{#1}{}%
+}
+\newrobustcmd{\glsxtrseelist}[1]{%
+ \edef\@glo@tmp{\noexpand\glsseelist{#1}}\@glo@tmp
+}
+\providecommand{\seealsoname}{see also}
+\ifdef\@xdycrossrefhook
+{
+ \appto\@xdycrossrefhook{%
+ \write\glswrite{(define-crossref-class \string"seealso\string"
+ :unverified )}%
+ \write\glswrite{(markup-crossref-list
+ :class \string"seealso\string"^^J\space\space\space
+ :open \string"\string\glsxtruseseealsoformat\glsopenbrace\string"
+ :close \string"\glsclosebrace\string")}%
+ }
+ \appto\@xdylocationclassorder{\space\string"seealso\string"}
+ \newrobustcmd*{\glsxtrindexseealso}[2]{%
+ \def\@gls@xref{#2}%
+ \@onelevel@sanitize\@gls@xref
+ \@gls@checkmkidxchars\@gls@xref
+ \gls@glossary{\csname glo@#1@type\endcsname}{%
+ (indexentry
+ :tkey (\csname glo@#1@index\endcsname)
+ :xref (\string"\@gls@xref\string")
+ :attr \string"seealso\string"
+ )
+ }%
+ }
+}
+{
+ \newrobustcmd*{\glsxtrindexseealso}{\glssee[\seealsoname]}
+}
+\ifdef\gls@set@xr@key
+{
+ \define@key{glossentry}{alias}{%
+ \gls@set@xr@key{alias}{\@glo@alias}{#1}%
+ }
+ \define@key{glossentry}{seealso}{%
+ \gls@set@xr@key{seealso}{\@glo@seealso}{#1}%
+ }
+ \appto\@gls@keymap{,{alias}{alias},{seealso}{seealso}}
+ \appto\@newglossaryentryprehook{\def\@glo@alias{}\def\@glo@seealso{}}%
+ \appto\@newglossaryentryposthook{%
+ \ifdefvoid\@glo@seealso
+ {\csxdef{glo@\@glo@label @seealso}{}}%
+ {%
+ \csxdef{glo@\@glo@label @seealso}{\@glo@seealso}%
+ \if@glsxtr@autoseeindex
+ \@glsxtr@autoindexcrossrefs
+ \fi
+ }%
+ \ifdefvoid\@glo@alias
+ {\csxdef{glo@\@glo@label @alias}{}}%
+ {%
+ \csxdef{glo@\@glo@label @alias}{\@glo@alias}%
+ }%
+ }
+ \newcommand*{\glsxtralias}[1]{\@gls@entry@field{#1}{alias}}
+ \newcommand*{\glsxtrseealsolabels}[1]{\@gls@entry@field{#1}{seealso}}
+ \appto\@glo@autoseehook{%
+ \ifdefvoid\@glo@alias
+ {%
+ \ifdefvoid\@glo@seealso
+ {}%
+ {%
+ \edef\@do@glssee{\noexpand\glsxtrindexseealso
+ {\@glo@label}{\@glo@seealso}}%
+ \@do@glssee
+ }%
+ }%
+ {%
+ \ifdefvoid\@glo@see
+ {%
+ \edef\@do@glssee{\noexpand\glssee{\@glo@label}{\@glo@alias}}%
+ \@do@glssee
+ }%
+ {}%
+ }%
+ }%
+}
+{
+ \glsaddstoragekey*{alias}{}{\glsxtralias}
+ \glsaddstoragekey*{seealso}{}{\glsxtrseealsolabels}
+ \appto\@newglossaryentryposthook{%
+ \ifcsvoid{glo@\@glo@label @alias}%
+ {%
+ \ifcsvoid{glo@\@glo@label @seealso}%
+ {}%
+ {%
+ \edef\@do@glssee{\noexpand\glsxtrindexseealso
+ {\@glo@label}{\csuse{glo@\@glo@label @seealso}}}%
+ \@do@glssee
+ }%
+ }%
+ {%
+ \ifdefvoid\@glo@see
+ {%
+ \edef\@do@glssee{\noexpand\glssee
+ {\@glo@label}{\csuse{glo@\@glo@label @alias}}}%
+ \@do@glssee
+ }%
+ {}%
+ }%
+ }
+}
\AtEndDocument{\if@glsxtrindexcrossrefs\glsxtraddallcrossrefs\fi}
\newcommand*{\glsxtraddallcrossrefs}{%
\forallglossaries{\@glo@type}%
{%
\forglsentries[\@glo@type]{\@glo@label}%
{%
- \ifglsused{\@glo@label}{\@glsxtr@addunusedxrefs{\@glo@label}}{}%
+ \ifglsused{\@glo@label}%
+ {\expandafter\@glsxtr@addunusedxrefs\expandafter{\@glo@label}}{}%
}%
}%
}
@@ -954,6 +1089,12 @@
{%
\expandafter\glsxtr@addunused\@glo@see\@end@glsxtr@addunused
}%
+ \letcs{\@glo@see}{glo@\glsdetoklabel{#1}@seealso}%
+ \ifdefvoid\@glo@see
+ {}%
+ {%
+ \expandafter\glsxtr@addunused\@glo@see\@end@glsxtr@addunused
+ }%
}
\newcommand*{\glsxtr@addunused}[1][]{%
\@glsxtr@addunused
@@ -965,7 +1106,7 @@
{%
\glsadd[format=glsxtrunusedformat]{\@glsxtr@label}%
\glsunset{\@glsxtr@label}%
- \@glsxtr@addunusedxrefs{\@glsxtr@label}%
+ \expandafter\@glsxtr@addunusedxrefs\expandafter{\@glsxtr@label}%
}%
}%
}
@@ -3160,13 +3301,14 @@
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}}%
- }%
+ \ifglsautomake
+ \renewcommand*{\@gls@doautomake}{%
+ \@for\@gls@type:=\@glsxtr@reg@glosslist\do{%
+ \ifdefempty{\@gls@type}{}{\@gls@automake{\@gls@type}}%
}%
- \fi
+ }%
+ \fi
+ \ifdef\@glo@check@sortallowed{\@glo@check@sortallowed\makeglossaries}{}%
}%
}
\newcommand{\@glsxtr@orgprintglossary}[2]{%
@@ -3308,9 +3450,13 @@
}%
\newcommand*{\@glsxtr@idx@entrynumberlist}[1]{\glsentrynumberlist{#1}}
\renewcommand*{\@gls@noidx@getgrouptitle}[2]{%
- \protected@edef\@glsxtr@titlelabel{glsxtr@grouptitle@#1}%
- \@onelevel@sanitize\@glsxtr@titlelabel
- \ifcsundef{\@glsxtr@titlelabel}%
+ \protected@edef\@glsxtr@titlelabel{#1}%
+ \ifdefvoid\@glsxtr@titlelabel
+ {}%
+ {%
+ \protected@edef\@glsxtr@titlelabel{\csuse{glsxtr@grouptitle@#1}}%
+ }%
+ \ifdefvoid{\@glsxtr@titlelabel}%
{%
\DTLifint{#1}%
{%
@@ -3327,7 +3473,7 @@
}%
}%
{%
- \letcs#2{\@glsxtr@titlelabel}%
+ \let#2\@glsxtr@titlelabel
}%
}
\let\glsxtr@org@getgrouptitle\@gls@getgrouptitle
@@ -3655,8 +3801,8 @@
\GlsXtrNoGlsWarningTail
}
\newcommand*{\glsxtrresourcefile}[2][]{%
- \protected@write\@auxout{}{\string\glsxtr@resource{#1}{#2}}%
\glsxtr@writefields
+ \protected@write\@auxout{}{\string\glsxtr@resource{#1}{#2}}%
\let\@glsxtr@org@see@noindex\@gls@see@noindex
\let\@gls@see@noindex\relax
\IfFileExists{#2.glstex}%
@@ -3689,6 +3835,16 @@
\newcommand*{\glsxtr@shortcutsval}[1]{}
\newcommand*{\glsxtr@linkprefix}[1]{}
\newcommand*{\glsxtr@writefields}{%
+ \protected@write\@auxout{}%
+ {\string\providecommand*{\string\glsxtr@fields}[1]{}}%
+ \protected@write\@auxout{}%
+ {\string\providecommand*{\string\glsxtr@resource}[2]{}}%
+ \protected@write\@auxout{}%
+ {\string\providecommand*{\string\glsxtr@pluralsuffixes}[4]{}}%
+ \protected@write\@auxout{}%
+ {\string\providecommand*{\string\glsxtr@shortcutsval}[1]{}}%
+ \protected@write\@auxout{}%
+ {\string\providecommand*{\string\glsxtr@linkprefix}[1]{}}%
\protected@write\@auxout{}{\string\glsxtr@fields{\@gls@keymap}}%
\ifdef\CurrentTrackedLanguageTag
{%
@@ -3766,22 +3922,30 @@
}%
{%
\key@ifundefined{glossentry}{group}%
- {\let\@gls@getgrouptitle\@glsxtr@noidx@getgrouptitle}%
+ {\let\@gls@getgrouptitle\@gls@noidx@getgrouptitle}%
{\let\@gls@getgrouptitle\@glsxtr@unsrt@getgrouptitle}%
- \begin{theglossary}%
- \glossaryheader
- \glsresetentrylist
\def\@gls@currentlettergroup{}%
+ \def\@glsxtr@doglossary{%
+ \begin{theglossary}%
+ \glossaryheader
+ \glsresetentrylist
+ }%
\expandafter\@for\expandafter\glscurrententrylabel\expandafter
:\expandafter=\csname glolist@\@glo@type\endcsname\do{%
\ifdefempty{\glscurrententrylabel}
{}%
- {\printunsrtglossaryhandler\glscurrententrylabel}%
+ {\eappto\@glsxtr@doglossary{%
+ \noexpand\@printunsrt@glossary@handler{\glscurrententrylabel}}}%
}%
- \end{theglossary}%
+ \appto\@glsxtr@doglossary{\end{theglossary}}%
+ \@glsxtr@doglossary
}%
\glossarypostamble
}
+\newcommand{\@printunsrt@glossary@handler}[1]{%
+ \xdef\glscurrententrylabel{#1}%
+ \printunsrtglossaryhandler\glscurrententrylabel
+}
\newcommand{\printunsrtglossaryhandler}[1]{%
\glsxtrunsrtdo{#1}%
}
@@ -3842,23 +4006,23 @@
}%
}%
{%
- \letcs{\@gls@sort}{glo@\glsdetoklabel{#1}@sort}%
\key@ifundefined{glossentry}{group}%
{%
+ \letcs{\@gls@sort}{glo@\glsdetoklabel{#1}@sort}%
\expandafter\glo@grabfirst\@gls@sort{}{}\@nil
}%
{%
\protected@xdef\@glo@thislettergrp{%
- \csname glo@\glsdetoklabel{#1}@group\endcsname}%
+ \csuse{glo@\glsdetoklabel{#1}@group}}%
}%
\ifdefequal{\@glo@thislettergrp}{\@gls@currentlettergroup}%
{}%
{%
\ifdefempty{\@gls@currentlettergroup}{}{\glsgroupskip}%
\expandafter\glsgroupheading\expandafter
- {\csname glo@\glsdetoklabel{#1}@group\endcsname}%
+ {\@glo@thislettergrp}%
}%
- \let\@gls@currentlettergroup\@glo@thislettergrp
+ \global\let\@gls@currentlettergroup\@glo@thislettergrp
\ifdefvoid{\@gls@location}%
{%
\ifdefvoid{\@gls@loclist}
@@ -4560,7 +4724,7 @@
\newcommand*{\glsxtrpostnamehook}[1]{%
\def\@glsnumberformat{glsnumberformat}%
\glsxtrdoautoindexname{#1}{indexname}%
- \csuse{glsxtrpostname\glscategory{\glscurrententrylabel}}%
+ \csuse{glsxtrpostname\glscategory{#1}}%
}
\newif\if@glsxtr@format@override
\@glsxtr@format@overridefalse
@@ -4596,17 +4760,22 @@
\ifdefstring{\@glsxtr@attrval}{true}%
{}%
{\eappto\@glo@name{\@glsxtr@autoindex@encap\@glsxtr@attrval}}%
- \expandafter\index\expandafter{\@glo@name}%
+ \expandafter\glsxtrautoindex\expandafter{\@glo@name}%
}%
{}%
}
+\newcommand*{\glsxtrautoindex}{\index}
\newcommand*{\@glsxtr@autoindex@setname}[1]{%
- \def\@glo@name{\string\glsentryname{#1}}%
- \glsletentryfield{\@glo@sort}{#1}{sort}%
+ \protected@edef\@glo@name{\glsxtrautoindexentry{#1}}%
+ \glsxtrautoindexassignsort{\@glo@sort}{#1}%
\@gls@checkmkidxchars\@glo@sort
\@glsxtr@autoindex@doextra@esc\@glo@sort
\epreto\@glo@name{\@glo@sort\@glsxtr@autoindex@at}%
}
+\newcommand*{\glsxtrautoindexentry}[1]{\string\glsentryname{#1}}
+\newcommand*{\glsxtrautoindexassignsort}[2]{%
+ \glsletentryfield{#1}{#2}{sort}%
+}
\newcommand*{\@glsxtr@autoindex@doextra@esc}[1]{%
\ifx\@glsxtr@autoindex@esc\@gls@quotechar
\else