summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-05-10 21:38:06 +0000
committerKarl Berry <karl@freefriends.org>2018-05-10 21:38:06 +0000
commit0dd6631d97c3dfb673037310f137101006db1151 (patch)
tree41858abec988ab384ff05d6d9f680d1d3540b266 /Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty
parent4c0b784f7a436d9f3ae0fa9bfc1eb2c18ea36de0 (diff)
glossaries-extra (10may18)
git-svn-id: svn://tug.org/texlive/trunk@47666 c570f23f-e606-0410-a88d-b1316a301751
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.sty306
1 files changed, 291 insertions, 15 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 bedfc942b13..35d8c1382a1 100644
--- a/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty
+++ b/Master/texmf-dist/tex/latex/glossaries-extra/glossaries-extra.sty
@@ -39,7 +39,7 @@
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossaries-extra}[2018/04/25 v1.30 (NLCT)]
+\ProvidesPackage{glossaries-extra}[2018/05/09 v1.31 (NLCT)]
\RequirePackage{xkeyval}
\RequirePackage{etoolbox}
\@ifpackageloaded{glossaries}
@@ -337,6 +337,7 @@
\def\printunsrtglossaryunit{\print@op@unsrtglossaryunit}%
\def\glsxtrsetaliasnoindex{}%
\ifdef\@gls@setupsort@none{\@gls@setupsort@none}{}%
+ \def\glsxtrNoGlossaryWarning{\@glsxtr@record@noglossarywarning}%
\RequirePackage{glossaries-extra-bib2gls}%
}%
\or
@@ -920,6 +921,25 @@
\ifdefempty\glscurrentfieldvalue{#4}{#3}%
}%
}
+\newcommand{\GlsXtrIfFieldNonZero}[4]{%
+ \GlsXtrIfFieldCmpNum{#1}{#2}{=}{0}{#4}{#3}%
+}
+\newcommand{\GlsXtrIfFieldEqNum}[5]{%
+ \GlsXtrIfFieldCmpNum{#1}{#2}{=}{#3}{#4}{#5}%
+}
+\newcommand{\GlsXtrIfFieldCmpNum}[6]{%
+ {%
+ \letcs{\glscurrentfieldvalue}{glo@\glsdetoklabel{#2}@#1}%
+ \ifundef\glscurrentfieldvalue
+ {\def\glscurrentfieldvalue{0}}%
+ {%
+ \ifdefempty\glscurrentfieldvalue
+ {\def\glscurrentfieldvalue{0}}%
+ {}%
+ }%
+ \ifnum\glscurrentfieldvalue#3#4\relax #5\else #6\fi
+ }%
+}
\newcommand{\GlsXtrIfFieldUndef}[2]{%
\ifcsundef{glo@\glsdetoklabel{#2}@#1}%
}
@@ -967,15 +987,51 @@
}%
{#5}%
}
-\ifglsentrycounter
- \newcommand*{\glsxtrpageref}[1]{\pageref{glsentry-\glsdetoklabel{#1}}}
-\else
- \ifglssubentrycounter
- \newcommand*{\glsxtrpageref}[1]{\pageref{glsentry-\glsdetoklabel{#1}}}
- \else
- \newcommand*{\glsxtrpageref}[1]{\gls{#1}}
- \fi
-\fi
+\newrobustcmd*{\GlsXtrIfFieldEqXpStr}[5]{%
+ \glsxtrifhasfield{#1}{#2}%
+ {%
+ \protected@edef\@gls@tmp{#3}%
+ \ifdefequal{\glscurrentfieldvalue}{\@gls@tmp}{#4}{#5}%
+ }%
+ {#5}%
+}
+\newrobustcmd*{\GlsXtrIfXpFieldEqXpStr}[5]{%
+ \glsxtrifhasfield{#1}{#2}%
+ {%
+ \protected@edef\@gls@tmp{\glscurrentfieldvalue}%
+ \let\glscurrentfieldvalue\@gls@tmp
+ \protected@edef\@gls@tmp{#3}%
+ \ifdefequal{\glscurrentfieldvalue}{\@gls@tmp}{#4}{#5}%
+ }%
+ {#5}%
+}
+\ifdef\GlsEntryCounterLabelPrefix
+{%
+ \newcommand*{\glsxtrpageref}[1]{%
+ \ifglsentrycounter
+ \pageref{\GlsEntryCounterLabelPrefix\glsdetoklabel{#1}}%
+ \else
+ \ifglssubentrycounter
+ \pageref{\GlsEntryCounterLabelPrefix\glsdetoklabel{#1}}%
+ \else
+ \gls{#1}%
+ \fi
+ \fi
+ }
+}%
+{%
+ \newcommand*{\glsxtrpageref}[1]{%
+ \ifglsentrycounter
+ \pageref{glsentry-\glsdetoklabel{#1}}%
+ \else
+ \ifglssubentrycounter
+ \pageref{glsentry-\glsdetoklabel{#1}}%
+ \else
+ \gls{#1}%
+ \fi
+ \fi
+ }
+}%
\newcommand{\apptoglossarypreamble}[2][\glsdefaulttype]{%
\ifcsdef{glolist@#1}%
{%
@@ -1887,6 +1943,7 @@
\PackageError{glossaries-extra}{Unknown control sequence name `#1'}{}%
}%
}
+\define@key{glslink}{prefix}{\def\glolinkprefix{#1}}
\newcommand*{\glsxtrinithyperoutside}{%
\glsifattribute{\glslabel}{hyperoutside}{false}%
{%
@@ -1911,6 +1968,7 @@
\edef\@gls@counter{\csname glo@\glslabel @counter\endcsname}%
\edef\glstype{\csname glo@\glslabel @type\endcsname}%
\let\org@ifKV@glslink@hyper\ifKV@glslink@hyper
+ \let\@glsxtr@org@glolinkprefix\glolinkprefix
\let\@glsxtr@local@textformat\relax
\def\@glsxtr@thevalue{}%
\def\@glsxtr@theHvalue{\@glsxtr@thevalue}%
@@ -1973,6 +2031,7 @@
\else
\@do@wrglossary{#2}%
\fi
+ \let\glolinkprefix\@glsxtr@org@glolinkprefix
\let\ifKV@glslink@hyper\org@ifKV@glslink@hyper
}
\define@key{glossadd}{thevalue}{\def\@glsxtr@thevalue{#1}}
@@ -2008,6 +2067,9 @@
}%
}%
}
+\newrobustcmd{\glsaddeach}[2][]{%
+ \@for\@gls@thislabel:=#2\do{\glsadd[#1]{\@gls@thislabel}}%
+}
\newcommand*{\@glsxtr@field@linkdefs}{%
\let\glsxtrifwasfirstuse\@secondoftwo
\let\glsifplural\@secondoftwo
@@ -3089,13 +3151,25 @@
\let\@glsunset\@glsxtr@unset
\newcommand*{\glsxtrpostunset}[1]{}
\newcommand*{\GlsXtrStartUnsetBuffering}{%
+ \@ifstar\s@GlsXtrStartUnsetBuffering\@GlsXtrStartUnsetBuffering
+}
+\newcommand*{\@GlsXtrStartUnsetBuffering}{%
\let\@glsxtr@org@unset@buffer\@glsxtr@unset@buffer
\def\@glsxtr@unset@buffer{}%
\let\@glsunset\@glsxtrbuffer@unset
}
+\newcommand*{\s@GlsXtrStartUnsetBuffering}{%
+ \let\@glsxtr@org@unset@buffer\@glsxtr@unset@buffer
+ \def\@glsxtr@unset@buffer{}%
+ \let\@glsunset\@glsxtrbuffer@nodup@unset
+}
\newcommand*{\@glsxtrbuffer@unset}[1]{%
\listxadd\@glsxtr@unset@buffer{#1}%
}
+\newcommand*{\@glsxtrbuffer@nodup@unset}[1]{%
+ \expandafter\ifinlist\expandafter{#1}{\@glsxtr@unset@buffer}{}%
+ {\listxadd\@glsxtr@unset@buffer{#1}}%
+}
\newcommand*{\GlsXtrStopUnsetBuffering}{%
\@ifstar\s@GlsXtrStopUnsetBuffering\@GlsXtrStopUnsetBuffering
}
@@ -3108,6 +3182,9 @@
\forlistloop\@glslocalunset\@glsxtr@unset@buffer
\let\@glsunset\@glsxtr@unset
}
+\newcommand*{\GlsXtrForUnsetBufferedList}[1]{%
+ \forlistloop#1\@glsxtr@unset@buffer
+}
\renewcommand*{\@glslocalunset}[1]{%
\@@glslocalunset{#1}%
\glsxtrpostlocalunset{#1}%
@@ -3123,6 +3200,28 @@
\glsxtrpostlocalreset{#1}%
}%
\newcommand*{\glsxtrpostlocalreset}[1]{}
+\newcommand*{\glslocalreseteach}[1]{%
+ \gls@ifnotmeasuring
+ {%
+ \@for\@gls@thislabel:=#1\do{%
+ \glsdoifexists{\@gls@thislabel}%
+ {%
+ \@glslocalreset{\@gls@thislabel}%
+ }%
+ }%
+ }%
+}
+\newcommand*{\glslocalunseteach}[1]{%
+ \gls@ifnotmeasuring
+ {%
+ \@for\@gls@thislabel:=#1\do{%
+ \glsdoifexists{\@gls@thislabel}%
+ {%
+ \@glslocalunset{\@gls@thislabel}%
+ }%
+ }%
+ }%
+}
\newcommand*{\GlsXtrEnableEntryCounting}[2]{%
\glsenableentrycount
\renewcommand*{\gls}{\cgls}%
@@ -3909,7 +4008,7 @@
{true,false}[true]%
{%
\ifcase\@glsxtr@printglossnr
- \let\@glstarget\glsdohypertarget
+ \def\@glstarget{\glsdohypertarget}%
\else
\let\@glstarget\@secondoftwo
\fi
@@ -3918,10 +4017,16 @@
\define@key{printgloss}{targetnameprefix}{%
\renewcommand{\@glsxtrhypernameprefix}{#1}%
}
+\define@key{printgloss}{prefix}{%
+ \renewcommand{\glolinkprefix}{#1}%
+}
\let\@glsxtr@org@glsdohypertarget\glsdohypertarget
\renewcommand{\glsdohypertarget}[2]{%
\@glsxtr@org@glsdohypertarget{\@glsxtrhypernameprefix#1}{#2}%
}
+\ifx\@glstarget\@glsxtr@org@glsdohypertarget
+ \def\@glstarget{\glsdohypertarget}%
+\fi
\newcommand*{\glsxtr@makeglossaries}[1]{}
\def\@glsxtr@gettype#1,type=#2,#3\@end@glsxtr@gettype{%
\def\@glo@type{#2}%
@@ -4304,6 +4409,12 @@
Then rerun \LaTeX\ on this document.%
}
+\newcommand{\GlsXtrRecordWarning}[1]{%
+ \texttt{\string\printglossary} doesn't work
+ with the \texttt{record=only} package option
+ use\par\texttt{\string\printunsrtglossary[type=#1]}\par
+ instead (or change the package option).%
+}
\newcommand{\GlsXtrNoGlsWarningTail}{%
This message will be removed once the problem has been fixed.%
}
@@ -4368,6 +4479,15 @@
\par
\GlsXtrNoGlsWarningTail
}
+\newcommand*{\@glsxtr@record@noglossarywarning}[1]{%
+ \GlossariesExtraWarning{\string\printglossary\space doesn't work\MessageBreak
+ with record=only package option\MessageBreak(use
+ \string\printunsrtglossary[type=#1])\MessageBreak
+ instead (or change the package option)}%
+ \glossarysection[\glossarytoctitle]{\glossarytitle}
+ \GlsXtrRecordWarning{#1}
+ \GlsXtrNoGlsWarningTail
+}
\newcommand*{\glsxtrresourcefile}[2][]{%
\disable@keys{glossaries-extra.sty}{record}%
\glsxtr@writefields
@@ -4482,9 +4602,9 @@
{%
\begingroup
\edef\glscurrententrylabel{\glsdetoklabel{#1}}%
- \edef\currentglossary{\glsentrytype{\glscurrententrylabel}}%
+ \edef\currentglossary{\GlsXtrStandaloneGlossaryType}%
\ifglshasparent{#1}%
- {\glssubentryitem{#1}}%
+ {\GlsXtrStandaloneSubEntryItem{#1}}%
{\glsentryitem{#1}}%
\glstarget{#1}{\glossentryname{#1}}%
\endgroup
@@ -4493,6 +4613,10 @@
{\glsentryname{#1}}%
{\glsxtrheadname{#1}}%
}
+\newcommand{\GlsXtrStandaloneGlossaryType}{\glsentrytype{\glscurrententrylabel}}
+\newcommand*{\GlsXtrStandaloneSubEntryItem}[1]{%
+ \GlsXtrIfFieldEqNum{level}{#1}{1}{\glssubentryitem{#1}}{}%
+}
\newcommand*{\glsxtrglossentryother}[3]{%
\ifstrempty{#1}%
{%
@@ -4524,9 +4648,9 @@
{%
\begingroup
\edef\glscurrententrylabel{\glsdetoklabel{#1}}%
- \edef\currentglossary{\glsentrytype{\glscurrententrylabel}}%
+ \edef\currentglossary{\GlsXtrStandaloneGlossaryType}%
\ifglshasparent{#1}%
- {\glssubentryitem{#1}}%
+ {\GlsXtrStandaloneSubEntryItem{#1}}%
{\glsentryitem{#1}}%
\glstarget{#1}{\glossentrynameother{#1}{#2}}%
\endgroup
@@ -5274,6 +5398,124 @@ defined}{}%
}%
{#1}%
}
+ \define@key{glsxtrabbrv}{access}{%
+ \def\@gls@nameaccess{#1}%
+ }
+ \define@key{glsxtrabbrv}{textaccess}{%
+ \def\@gls@textaccess{#1}%
+ }
+ \define@key{glsxtrabbrv}{firstaccess}{%
+ \def\@gls@firstaccess{#1}%
+ }
+ \define@key{glsxtrabbrv}{shortaccess}{%
+ \def\@gls@shortaccess{#1}%
+ }
+ \define@key{glsxtrabbrv}{shortpluralaccess}{%
+ \def\@gls@shortaccesspl{#1}%
+ }
+ \newcommand*{\@gls@initaccesskeys}{%
+ \def\@gls@nameaccess{}%
+ \def\@gls@textaccess{}%
+ \def\@gls@firstaccess{}%
+ \def\@gls@shortaccess{}%
+ \def\@gls@shortaccesspl{}%
+ }
+\newcommand*{\@gls@ifaccessattribute@set}[3]{%
+ \glsifcategoryattribute{\glscategorylabel}{access#1}{true}%
+ {#2}%
+ {%
+ \glsifcategoryattribute{\glscategorylabel}{access#1}{false}%
+ {#3}%
+ {%
+ \glsifcategoryattribute{\glscategorylabel}{#1}{true}%
+ {#2}%
+ {#3}%
+ }%
+ }%
+}
+ \newcommand{\@gls@setup@default@short@access}[1]{%
+ \ifdefempty\@gls@shortaccess
+ {%
+ \glsifcategoryattribute{\glscategorylabel}{accessinsertdots}{true}%
+ {%
+ \@glsxtr@insertdots\@gls@shortaccess{#1}%
+ \eappto\ExtraCustomAbbreviationFields{%
+ shortaccess={\expandonce\@gls@shortaccess},}%
+ }%
+ {}%
+ }%
+ {}%
+ \ifdefempty\@gls@shortaccess
+ {}%
+ {%
+ \ifdefempty\@gls@shortaccesspl
+ {%
+ \@gls@ifaccessattribute@set{aposplural}%
+ {%
+ \expandafter\def\expandafter\@gls@shortaccesspl\expandafter{%
+ \@gls@shortaccess'\abbrvpluralsuffix}%
+ }%
+ {%
+ \@gls@ifaccessattribute@set{noshortplural}%
+ {%
+ \let\@gls@shortaccesspl\@gls@shortaccess
+ }%
+ {%
+ \expandafter\def\expandafter\@gls@shortaccesspl\expandafter{%
+ \@gls@shortaccess\abbrvpluralsuffix}%
+ }%
+ }%
+ \eappto\ExtraCustomAbbreviationFields{%
+ shortpluralaccess={\expandonce\@gls@shortaccesspl},}%
+ }%
+ {}%
+ }%
+ \ifdefempty\@gls@nameaccess
+ {%
+ \glsifcategoryattribute{\glscategorylabel}{nameshortaccess}{true}%
+ {%
+ \ifdefempty\@gls@shortaccess
+ {}%
+ {%
+ \eappto\ExtraCustomAbbreviationFields{%
+ access={\expandonce\@gls@shortaccess},%
+ }%
+ }%
+ }%
+ {}%
+ }%
+ {}%
+ \ifdefempty\@gls@textaccess
+ {%
+ \glsifcategoryattribute{\glscategorylabel}{textshortaccess}{true}%
+ {%
+ \ifdefempty\@gls@shortaccess
+ {}%
+ {%
+ \eappto\ExtraCustomAbbreviationFields{%
+ textaccess={\expandonce\@gls@shortaccess},%
+ }%
+ }%
+ }%
+ {}%
+ }%
+ {}%
+ \ifdefempty\@gls@firstaccess
+ {%
+ \glsifcategoryattribute{\glscategorylabel}{firstshortaccess}{true}%
+ {%
+ \ifdefempty\@gls@shortaccess
+ {}%
+ {%
+ \eappto\ExtraCustomAbbreviationFields{%
+ firstaccess={\expandonce\@gls@shortaccess},%
+ }%
+ }%
+ }%
+ {}%
+ }%
+ {}%
+ }
}
{
\newcommand*{\glsaccessname}[1]{\glsentryname{#1}}
@@ -5328,6 +5570,8 @@ defined}{}%
\newcommand*{\Glsaccesslongpl}[1]{\Glsentrylongpl{#1}}
\newcommand*{\GLSaccesslongpl}[1]{%
\protect\mfirstucMakeUppercase{\glsentrylongpl{#1}}}
+ \newcommand*{\@gls@initaccesskeys}{}
+ \newcommand{\@gls@setup@default@short@access}[1]{}%
}
\glsaddstoragekey{category}{general}{\glscategory}
\newcommand{\glsifcategory}[4]{%
@@ -5697,6 +5941,9 @@ defined}{}%
\csuse{glsxtrpostname\glscategory{#1}}%
}
\newcommand*{\glsextrapostnamehook}[1]{}%
+\newcommand*{\glsdefpostname}[2]{%
+ \csdef{glsxtrpostname#1}{#2}%
+}
\@ifpackageloaded{glossaries-accsupp}
{
\newcommand*{\glsxtr@setaccessdisplay}[1]{%
@@ -6047,6 +6294,9 @@ defined}{}%
\newcommand*{\glsxtrpostdescterm}{}
\newcommand*{\glsxtrpostdescacronym}{}
\newcommand*{\glsxtrpostdescabbreviation}{}
+\newcommand*{\glsdefpostdesc}[2]{%
+ \csdef{glsxtrpostdesc#1}{#2}%
+}
\renewcommand*{\glspostlinkhook}{%
\ifglsentryexists{\glslabel}{\glsxtrpostlinkhook}{}%
}
@@ -6062,6 +6312,12 @@ defined}{}%
\newcommand*{\glsxtrpostlink}{%
\csuse{glsxtrpostlink\glscategory{\glslabel}}%
}
+\newcommand*{\glsdefpostlink}[2]{%
+ \ifthenelse{\equal{#1}{}}%
+ {\PackageError{glossaries-extra}
+ {Invalid empty category label in \string\glsdefpostlink}{}}%
+ {\csdef{glsxtrpostlink#1}{#2}}%
+}
\newcommand*{\glsxtrpostlinkendsentence}{%
\ifcsdef{glsxtrpostlink\glscategory{\glslabel}}
{%
@@ -6084,6 +6340,19 @@ defined}{}%
}%
{}%
}
+\newcommand*{\glsxtrpostlinkAddSymbolDescOnFirstUse}{%
+ \glsxtrifwasfirstuse
+ {%
+ \space\glsxtrparen
+ {%
+ \ifglshassymbol{\glslabel}%
+ {\glsaccesssymbol{\glslabel}, }%
+ {}%
+ \glsaccessdesc{\glslabel}%
+ }%
+ }%
+ {}%
+}
\newcommand*{\glsxtrdiscardperiod}[3]{%
\glsxtrifwasfirstuse
{%
@@ -6219,6 +6488,8 @@ defined}{}%
\glslongtok{#4}%
\def\glsxtrorgshort{#3}%
\def\glsxtrorglong{#4}%
+ \def\ExtraCustomAbbreviationFields{}%
+ \@gls@initaccesskeys
\def\glscategorylabel{abbreviation}%
\glsxtr@applyabbrvstyle{\@glsabbrv@current@abbreviation}%
\setkeys*{glsxtrabbrv}[shortplural,longplural]{#1}%
@@ -6274,6 +6545,7 @@ defined}{}%
\fi
\expandafter\glsshortpltok\expandafter{\@gls@shortpl}%
\expandafter\glslongpltok\expandafter{\@gls@longpl}%
+ \@gls@setup@default@short@access{#3}%
\newabbreviationhook
\protected@edef\@do@newglossaryentry{%
\noexpand\newglossaryentry{\the\glslabeltok}%
@@ -6286,6 +6558,7 @@ defined}{}%
longplural={\the\glslongpltok},%
name={\the\glsshorttok},%
\CustomAbbreviationFields,%
+ \ExtraCustomAbbreviationFields
\the\glskeylisttok
}%
}%
@@ -10674,6 +10947,9 @@ defined}{}%
\let\markboth\@glsxtr@org@markboth
\let\@starttoc\@glsxtr@org@@starttoc
}
+\newcommand*{\glsxtrRevertTocMarks}{%
+ \let\@starttoc\@glsxtr@org@@starttoc
+}
\newcommand*{\glsxtrifinmark}[2]{#2}
\newrobustcmd*{\@glsxtrinmark}{%
\let\glsxtrifinmark\@firstoftwo