diff options
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.sty | 263 |
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 |