diff options
author | Karl Berry <karl@freefriends.org> | 2017-08-11 23:06:40 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-08-11 23:06:40 +0000 |
commit | a11aea5f247db96e5465cadf76c4cbd1263d484c (patch) | |
tree | 4c5663fead49290ff872178b37632fdfdbf5da4e /Master/texmf-dist/tex/latex/testidx/testidx-glossaries.sty | |
parent | 97ad0f84a389805043513c35c7eefb1132ccae5a (diff) |
testidx (11aug17)
git-svn-id: svn://tug.org/texlive/trunk@45021 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/testidx/testidx-glossaries.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/testidx/testidx-glossaries.sty | 2436 |
1 files changed, 2436 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/testidx/testidx-glossaries.sty b/Master/texmf-dist/tex/latex/testidx/testidx-glossaries.sty new file mode 100644 index 00000000000..7a6787607de --- /dev/null +++ b/Master/texmf-dist/tex/latex/testidx/testidx-glossaries.sty @@ -0,0 +1,2436 @@ +%% +%% This is file `testidx-glossaries.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% testidx.dtx (with options: `testidx-glossaries.sty,package') +%% +%% testidx.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 testidx.dtx and testidx.ins and the derived files testidx.sty, testidx-glossaries.sty, testidx-glossaries-diglyphs.tex, testidx-glossaries-nodiglyphs.tex, testidx-glossaries-samples.tex, testidx-glossaries-diglyphs-utf8.bib, testidx-glossaries-markers.bib, testidx-glossaries-mathsym.bib, testidx-glossaries-nodiglyphs-utf8.bib, testidx-glossaries-nodiglyphs.bib, testidx-glossaries-numbers.bib, testidx-glossaries-samples-ascii.bib, testidx-glossaries-samples-utf8.bib, testidx-glossaries-samples.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{testidx-glossaries}[2017/08/11 v1.1 (NLCT)] +\newcommand*{\tstidx@glossariespkg}{glossaries} +\@ifpackageloaded{glossaries} +{% + \newcommand*{\tstidx@setupglossaries}[1]{\setupglossaries{#1}}% +}% +{% + \newcommand*{\tstidx@setupglossaries}[1]{% + \PassOptionsToPackage{#1}{glossaries}% + } +} +\@ifpackageloaded{glossaries-extra} +{% + \newcommand*{\tstidx@setupglossariesextra}[1]{\glossariesextrasetup{#1}}% +}% +{% + \newcommand*{\tstidx@setupglossariesextra}[1]{% + \PassOptionsToPackage{#1}{glossaries-extra}% + } +} +\newcommand*{\tstidx@usemakegloss}{\PackageError{testidx-glossaries}{You +need to put \string\tstidxmakegloss\MessageBreak in the preamble in order +to use\MessageBreak \string\testidx\space with testidx-glossaries}{}} +\newcommand*{\tstidxmakegloss}[1][]{% + \@tstidx@ifgerman{\GlsSetQuote{+}}{}% + \tstidxdefaultmakegloss +} +\newcommand*{\tstidxprintglossaries}{\printglossaries} +\newcommand*{\tstidxprintglossary}{\printglossary} +\newcommand*{\tstidxtexfiles}{testidx-glossaries-samples,\tstidxglyphfile} +\newcommand*{\tstidxbasebibfiles}{testidx-glossaries-samples} +\newcommand*{\tstidxasciibibfiles}{testidx-glossaries-samples-ascii} +\newcommand*{\tstidxutfbibfiles}{testidx-glossaries-samples-utf8} + +\newcommand*{\tstidxloadsamples}{% + \@for\tstidxfile:=\tstidxtexfiles\do{\input{\tstidxfile}}% + \renewcommand*{\tstidx@usemakegloss}{}% +} +\newcommand*{\tstidxdefaultmakegloss}{% + \makeglossaries + \tstidxloadsamples +} +\newcommand*{\tstidxnoidxmakegloss}{% + \makenoidxglossaries + \tstidxloadsamples +} +\newcommand*{\tstidxbibmakegloss}[1]{% + \def\@tstidx@resourceargs{}% + \@tstidx@ifutfviii + {% + \def\@tstidx@resource@src{\tstidxbasebibfiles,% + \tstidxutfbibfiles,% + \tstidxglyphfile-utf8}% + }% + {% + \def\@tstidx@resource@src{\tstidxbasebibfiles,% + \tstidxasciibibfiles,% + testidx-glossaries-nodiglyphs}% + }% + \if@tstidx@setdescription + \if@tstidx@useglsseekey + \def\@tstidx@resourceargs{selection={recorded and deps and see}}% + \else + \def\@tstidx@resourceargs{ignore-fields={see,seealso}}% + \fi + \else + \if@tstidx@useglsseekey + \def\@tstidx@resourceargs{% + selection={recorded and deps and see}, + ignore-fields={description}}% + \else + \def\@tstidx@resourceargs{% + ignore-fields={description,see,seealso}}% + \fi + \fi + \iftestidxprefix + \tstidxloadglsresource{src={testidx-glossaries-mathsym},% + group={Maths},sort={letter-case},\@tstidx@resourceargs}% + \tstidxloadglsresource{src={testidx-glossaries-markers},% + group={Markers},sort={letter-case},\@tstidx@resourceargs}% + \iftstidxnumbergroup + \tstidxloadglsresource{src={testidx-glossaries-numbers},% + sort={integer},\@tstidx@resourceargs}% + \tstidxloadglsresource{src={\@tstidx@resource@src},% + \@tstidx@resourceargs,#1}% + \else + \tstidxloadglsresource{src={testidx-glossaries-numbers,% + \@tstidx@resource@src},% + \@tstidx@resourceargs,#1}% + \fi + \else + \iftstidxnumbergroup + \tstidxloadglsresource{src={testidx-glossaries-numbers},% + sort={integer},\@tstidx@resourceargs}% + \tstidxloadglsresource{% + src={testidx-glossaries-mathsym,% + testidx-glossaries-markers,% + \@tstidx@resource@src},% + \@tstidx@resourceargs,#1}% + \else + \tstidxloadglsresource{% + src={testidx-glossaries-mathsym,% + testidx-glossaries-markers,% + testidx-glossaries-numbers,% + \@tstidx@resource@src},% + \@tstidx@resourceargs,#1}% + \fi + \fi + \renewcommand*{\tstidx@usemakegloss}{}% +} +\newcommand{\tstidxloadglsresource}[1]{% + \iftestidxverbose + \PackageInfo{testidx-glossaries}{\string\GlsXtrLoadResources[#1]}% + \fi + \GlsXtrLoadResources[#1]% +} +\newif\if@tstidx@useglsseekey +\@tstidx@useglsseekeytrue +\DeclareOption{seekey}{\@tstidx@useglsseekeytrue} +\DeclareOption{noseekey}{\@tstidx@useglsseekeyfalse} +\newif\if@tstidx@setdescription +\@tstidx@setdescriptionfalse +\DeclareOption{desc}{\@tstidx@setdescriptiontrue} +\DeclareOption{nodesc}{\@tstidx@setdescriptionfalse} +\DeclareOption{extra}{\renewcommand*{\tstidx@glossariespkg}{glossaries-extra}} +\DeclareOption{noextra}{\renewcommand*{\tstidx@glossariespkg}{glossaries}} +\newcommand*{\@testidx@ifusebibgls}[2]{#2} +\DeclareOption{makeindex}{% + \let\@testidx@ifusebibgls\@secondoftwo + \tstidx@setupglossaries{makeindex}% + \renewcommand*{\tstidxmakegloss}[1][]{% + \@tstidx@ifgerman{\GlsSetQuote{+}}{}% + \tstidxdefaultmakegloss + }% + \renewcommand*{\tstidxprintglossaries}{\printglossaries}% + \renewcommand*{\tstidxprintglossary}{\printglossary}% +} +\DeclareOption{xindy}{% + \let\@testidx@ifusebibgls\@secondoftwo + \tstidx@setupglossaries{xindy}% + \renewcommand*{\tstidxmakegloss}[1][]{% + \tstidxdefaultmakegloss + }% + \renewcommand*{\tstidxprintglossaries}{\printglossaries}% + \renewcommand*{\tstidxprintglossary}{\printglossary}% +} +\DeclareOption{tex}{% + \let\@testidx@ifusebibgls\@secondoftwo + \renewcommand*{\tstidxmakegloss}[1][]{% + \tstidxnoidxmakegloss + }% + \renewcommand*{\tstidxprintglossaries}{\printnoidxglossaries}% + \renewcommand*{\tstidxprintglossary}{\printnoidxglossary}% +} +\DeclareOption{bib2gls}{% + \renewcommand*{\tstidx@glossariespkg}{glossaries-extra}% + \let\@testidx@ifusebibgls\@firstoftwo + \tstidx@setupglossariesextra{record}% + \renewcommand*{\tstidxmakegloss}[1][]{% + \tstidxbibmakegloss{#1}% + }% + \renewcommand*{\tstidxprintglossaries}{\printunsrtglossaries}% + \renewcommand*{\tstidxprintglossary}{\printunsrtglossary}% +} +\DeclareOption{manual}{% + \renewcommand*{\tstidx@usemakegloss}{}% + \renewcommand*{\tstidxmakegloss}[1][]{% + \PackageWarning{testidx-glossaries}{\string\tstidxmakegloss\space + disabled by `manual' package option}% + }% + \renewcommand*{\tstidxprintglossaries}{% + \PackageWarning{testidx-glossaries}{\string\tstidxprintglossaries\space + disabled by `manual' package option}% + }% + \renewcommand*{\tstidxprintglossary}{% + \PackageWarning{testidx-glossaries}{\string\tstidxprintglossary\space + disabled by `manual' package option}% + }% +} +\newif\iftstidxnumbergroup +\tstidxnumbergrouptrue +\DeclareOption{noglsnumbers}{\tstidxnumbergroupfalse} +\DeclareOption{glsnumbers}{\tstidxnumbergrouptrue} +\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{testidx}} +\ProcessOptions +\RequirePackage{testidx} +\@tstidx@ifsanitize + {\tstidx@setupglossaries{sanitizesort=true}} + {\tstidx@setupglossaries{sanitizesort=false}} +\RequirePackage{\tstidx@glossariespkg} +\RequirePackage{glossary-mcols} +\if@tstidx@setdescription + \setupglossaries{nopostdot=false} + \setglossarystyle{indexgroup} +\else + \setupglossaries{nopostdot} + \setglossarystyle{mcolindexgroup} +\fi +\ifglsxindy +\iftstidxnumbergroup + \gls@xindy@glsnumberstrue + \else + \gls@xindy@glsnumbersfalse + \fi +\fi +\newif\if@tstidx@hasseealsokey +\key@ifundefined{glossentry}{seealso}% +{\@tstidx@hasseealsokeyfalse} +{\@tstidx@hasseealsokeytrue} +\iftestidxverbose + \appto\@newglossaryentryposthook{\@testidx@writeglsinfo} + \newcommand\@testidx@writeglsinfo{% + \letcs{\@tstidx@sort}{glo@\glsdetoklabel{\@glo@label}@sort}% + \@onelevel@sanitize\@tstidx@sort + \letcs{\@tstidx@name}{glo@\glsdetoklabel{\@glo@label}@name}% + \@onelevel@sanitize\@tstidx@name + \letcs{\@tstidx@text}{glo@\glsdetoklabel{\@glo@label}@text}% + \@onelevel@sanitize\@tstidx@text + \ifcsdef{glo@\glsdetoklabel{\@glo@label}@parent}% + {\letcs\@tstidx@parent{glo@\glsdetoklabel{\@glo@label}@parent}}% + {\def\@tstidx@parent{}}% + \PackageInfo{testidx-glossaries}{new term label={\@glo@label}, + \MessageBreak + name={\@tstidx@name}, + \MessageBreak + sort={\@tstidx@sort}, + \MessageBreak + text={\@tstidx@text}, + \MessageBreak + parent={\@tstidx@parent}, + \MessageBreak + see={\@glo@see}% + \if@tstidx@hasseealsokey + ,\MessageBreak + seealso={\@glo@seealso} + \fi + \MessageBreak + }% + } + \let\tstidx@org@glo@sortedinsert\@glo@sortedinsert + \renewcommand{\@glo@sortedinsert}[2]{% + \typeout{#2}% + \tstidx@org@glo@sortedinsert{#1}{#2}% + } +\fi +\ifdef\glosortentrieswarning +{} +{% + \let\tstidx@org@glo@sortentries\@glo@sortentries + \renewcommand{\@glo@sortentries}[2]{% + \typeout{Using TeX to sort entries---this may take a while}% + \tstidx@org@glo@sortentries{#1}{#2}% + } +} +\newcommand*{\@tstidx@usemakegloss}{\tstidx@usemakegloss} +\newcommand*{\tstidxtoidx}{% + \renewcommand*{\@tstidx@usemakegloss}{}% + \let\@tstindex\@tstidx@org@index + \let\@tstidxwordpl\@tstidx@org@wordpl + \let\@tstidxphrasepl\@tstidx@org@phrasepl + \let\@tstidxcs\@tstidx@org@cs + \let\@tstindexpost\@tstidx@org@indexpost + \let\@tstindexopenpost\@tstidx@org@indexopenpost + \let\@tstindexclosepost\@tstidx@org@indexclosepost + \let\@tstindexpre\@tstidx@org@indexpre + \let\@tstindexopenpre\@tstidx@org@indexopenpre + \let\@tstindexclosepre\@tstidx@org@indexclosepre + \let\@tstindexsee\@tstidx@org@indexsee + \let\@tstidx@indexsubsee\@tstidx@org@indexsubsee + \let\@tstidx@subindexpost\@tstidx@org@subindexpost + \let\@tstidx@subindexopenpost\@tstidx@org@subindexopenpost + \let\@tstidx@subindexclosepost\@tstidx@org@subindexclosepost + \let\@tstidx@subindexpre\@tstidx@org@subindexpre + \let\@tstidx@subindexopenpre\@tstidx@org@subindexopenpre + \let\@tstidx@subindexclosepre\@tstidx@org@subindexclosepre + \let\@@tstidx@subsubindexpost\@tstidx@org@subsubindexpost + \let\@@tstidx@subsubindexopenpost\@tstidx@org@subsubindexopenpost + \let\@@tstidx@subsubindexclosepost\@tstidx@org@subsubindexclosepost + \let\@@tstidx@subsubindexpre\@tstidx@org@subsubindexpre + \let\@@tstidx@subsubindexopenpre\@tstidx@org@subsubindexopenpre + \let\@@tstidx@subsubindexclosepre\@tstidx@org@subsubindexclosepre + \let\@tidx@par@i\@tidx@org@par@i + \let\@tidx@par@ii\@tidx@org@par@ii + \let\@tidx@par@iii\@tidx@org@par@iii + \let\@tidx@par@iv\@tidx@org@par@iv + \let\@tidx@par@vi\@tidx@org@par@vi + \let\@tidx@mathslettergroup\@tidx@org@mathslettergroup + \let\@tidx@numberlettergroup\@tidx@org@numberlettergroup + \let\@tidx@scriptnote\@tidx@org@scriptnote + \let\@tidx@sanitizenote\@tidx@org@sanitizenote + \let\@tidx@stripaccentsnote\@tidx@org@stripaccentsnote +} +\newcommand*{\tstidxtogls}{% + \renewcommand*{\@tstidx@usemakegloss}{\tstidx@usemakegloss}% + \let\@tstindex\@tstidx@org@index + \let\@tstidxwordpl\@tstidx@gls@wordpl + \let\@tstidxphrasepl\@tstidx@gls@phrasepl + \let\@tstidxcs\@tstidx@gls@cs + \let\@tstindexpost\@tstidx@gls@indexpost + \let\@tstindexopenpost\@tstidx@gls@indexopenpost + \let\@tstindexclosepost\@tstidx@gls@indexclosepost + \let\@tstindexpre\@tstidx@gls@indexpre + \let\@tstindexopenpre\@tstidx@gls@indexopenpre + \let\@tstindexclosepre\@tstidx@gls@indexclosepre + \let\@tstindexsee\@tstidx@gls@indexsee + \let\@tstidx@indexsubsee\@tstidx@gls@indexsubsee + \let\@tstidx@subindexpost\@tstidx@gls@subindexpost + \let\@tstidx@subindexopenpost\@tstidx@gls@subindexopenpost + \let\@tstidx@subindexclosepost\@tstidx@gls@subindexclosepost + \let\@tstidx@subindexpre\@tstidx@gls@subindexpre + \let\@tstidx@subindexopenpre\@tstidx@gls@subindexopenpre + \let\@tstidx@subindexclosepre\@tstidx@gls@subindexclosepre + \let\@@tstidx@subsubindexpost\@tstidx@gls@subsubindexpost + \let\@@tstidx@subsubindexopenpost\@tstidx@gls@subsubindexopenpost + \let\@@tstidx@subsubindexclosepost\@tstidx@gls@subsubindexclosepost + \let\@@tstidx@subsubindexpre\@tstidx@gls@subsubindexpre + \let\@@tstidx@subsubindexopenpre\@tstidx@gls@subsubindexopenpre + \let\@@tstidx@subsubindexclosepre\@tstidx@gls@subsubindexclosepre + \let\@tidx@par@i\@tidx@gls@par@i + \let\@tidx@par@ii\@tidx@gls@par@ii + \let\@tidx@par@iii\@tidx@gls@par@iii + \let\@tidx@par@iv\@tidx@gls@par@iv + \let\@tidx@par@vi\@tidx@gls@par@vi + \let\@tidx@mathslettergroup\@tidx@gls@mathslettergroup + \let\@tidx@numberlettergroup\@tidx@gls@numberlettergroup + \let\@tidx@scriptnote\@tidx@gls@scriptnote + \let\@tidx@sanitizenote\@tidx@gls@sanitizenote + \let\@tidx@stripaccentsnote\@tidx@gls@stripaccentsnote +} +\renewcommand*{\testidx}{% + \@tstidx@usemakegloss + \@ifstar + {% + \def\@testidx@block@sep{\space}% + \@testidx + }% + {% + \def\@testidx@block@sep{\tstidxdefblocksep}% + \@testidx + }% +} +\iftestidxdiglyphs + \newcommand*{\tstidxglyphfile}{testidx-glossaries-diglyphs} +\else + \newcommand*{\tstidxglyphfile}{testidx-glossaries-nodiglyphs} +\fi +\@ifpackageloaded{glossaries-extra} +{ + \newcommand*{\tstidxnewentry}[3]{\newglossaryentry{#1}{category={#2},#3}} +} +{ + \newcommand*{\tstidxnewentry}[3]{\newglossaryentry{#1}{#3}} +} +\newcommand*{\@tstidx@gls@index}[1]{} +\let\@tstidx@org@index\@tstindex +\let\@tstindex\@tstidx@gls@index +\newcommand*{\@tstidx@gls@wordpl}[2]{% + {\def\tstidx@gls{\glspl}\def\tstidx@glsentry{\glsentryplural}% + \tstidxword[#1]{#2}% + }% +} +\let\@tstidx@org@wordpl\@tstidxwordpl +\let\@tstidxwordpl\@tstidx@gls@wordpl +\newcommand*{\@tstidx@gls@phrasepl}[2]{% + {\def\tstidx@gls{\glspl}\def\tstidx@glsentry{\glsentryplural}% + \tstidxphrase[#1]{#2}% + }% +} +\let\@tstidx@org@phrasepl\@tstidxphrasepl +\let\@tstidxphrasepl\@tstidx@gls@phrasepl +\newcommand*{\@tstidx@gls@cs}[2]{% + \tstidxfmtpost{cs.#2}{\tstidxcsfmt}{#1}% +} +\let\@tstidx@org@cs\@tstidxcs +\let\@tstidxcs\@tstidx@gls@cs +\newcommand*{\tstidx@gls}{\gls} +\newcommand*{\tstidx@glsentry}{\glsentrytext} +\newcommand*{\tstidx@label}{\glslabel} +\newcommand*{\tstidx@encap}{} +\newcommand*{\tstidx@range}{} +\newcommand*{\tstidx@openrange}{(} +\newcommand*{\tstidx@closerange}{)} +\newcommand*{\tstidx@levelmarker}[4]{% + \ifcsdef{glo@#1@level}% + {% + \ifcase\csname glo@#1@level\endcsname + #2\or#3\else#4% + \fi + }% + {% + #2% + }% +} +\newcommand*{\tstidx@post@glstextformat}[1]{% + \ifx\@tstidx@encap\@empty + \iftestidxshowmarks + \ifx\@tstidx@range\tstidx@openrange + \tstidxtext{#1% + \tstidx@levelmarker\@tstidx@label + \tstidxopenmarker + \tstidxopensubmarker + \tstidxopensubsubmarker + }% + \else + \ifx\@tstidx@range\tstidx@closerange + \tstidxtext{#1% + \tstidx@levelmarker\@tstidx@label + \tstidxclosemarker + \tstidxclosesubmarker + \tstidxclosesubsubmarker + }% + \else + \tstidxtext{#1% + \tstidx@levelmarker\@tstidx@label + \tstidxmarker + \tstidxsubmarker + \tstidxsubsubmarker + }% + \fi + \fi + \else + #1% + \fi + \else + \iftestidxshowmarks + \tstidxtext{\tstidxencaptext{\@tstidx@encap}{#1% + \tstidx@levelmarker\@tstidx@label + \tstidxmarker + \tstidxsubmarker + \tstidxsubsubmarker + }}% + \else + #1% + \fi + \fi +} +\newcommand*{\tstidx@pre@glstextformat}[1]{% + \ifx\@tstidx@encap\@empty + \iftestidxshowmarks + \ifx\@tstidx@range\tstidx@openrange + \tstidxtext{% + \tstidx@levelmarker\@tstidx@label + \tstidxopenmarker + \tstidxopensubmarker + \tstidxopensubsubmarker + #1}% + \else + \ifx\@tstidx@range\tstidx@closerange + \tstidxtext{% + \tstidx@levelmarker\@tstidx@label + \tstidxclosemarker + \tstidxclosesubmarker + \tstidxclosesubsubmarker + #1}% + \else + \tstidxtext{% + \tstidx@levelmarker\@tstidx@label + \tstidxmarker + \tstidxsubmarker + \tstidxsubsubmarker + #1}% + \fi + \fi + \else + #1% + \fi + \else + \iftestidxshowmarks + \tstidxtext{\tstidxencaptext{\@tstidx@encap}{% + \tstidx@levelmarker\@tstidx@label + \tstidxmarker + \tstidxsubmarker + \tstidxsubsubmarker + #1}}% + \else + #1% + \fi + \fi +} +\newcommand*{\@tstidx@zapnonlabel}[2]{% + \ifx,#1\@empty\else\ifx'#1\@empty\else\ifx-#1\@empty\else#1\fi\fi\fi + \ifx#2\@empty + \else + \expandafter\@tstidx@zapnonlabel + \fi + #2} +\newcommand*{\tstidx@getlabel}[1]{\@tstidx@zapnonlabel#1\@empty\@empty} +\newcommand*{\tstidx@glspreindex}[2][]{% + \glshyperlink[\glstextformat{}]{#2}\glsadd[#1]{#2}} +\newcommand*{\tstidx@glspostindex}[2][]{% + \glsadd[#1]{#2}\glshyperlink[\glstextformat{}]{#2}} +\def\@tstidx@gls@indexpost#1#2[#3]#4#5{% + \bgroup + \edef\@tstidx@label{\tstidx@getlabel{#3}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#1}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#2}}% + \fi + \fi + \def\@tstidx@encap{#4}% + \def\@tstidx@range{}% + \let\tstidx@org@glstextformat\glstextformat + \renewcommand\glstextformat[1]{\tstidx@post@glstextformat + {\tstidx@org@glstextformat{##1}}}% + \ifx\relax#5\relax + \ifx\@tstidx@encap\@empty + \tstidx@glspostindex{\@tstidx@label}% + \else + \tstidx@glspostindex[format={#4}]{\@tstidx@label}% + \fi + \else + \@ifundefined{glsxtrinitwrgloss}% + {% + \glshyperlink[\glstextformat{\tstidx@glsentry{\@tstidx@label}}]% + {\@tstidx@label}% + \ifx\@tstidx@encap\@empty + \glsadd{\@tstidx@label}% + \else + \glsadd[format={#4}]{\@tstidx@label}% + \fi + }% + {% + \ifx\@tstidx@encap\@empty + \tstidx@gls[wrgloss=after]{\@tstidx@label}% + \else + \tstidx@gls[wrgloss=after,format={#4}]{\@tstidx@label}% + \fi + }% + \fi + \egroup +} +\let\@tstidx@org@indexpost\@tstindexpost +\let\@tstindexpost\@tstidx@gls@indexpost +\def\@tstidx@gls@indexopenpost#1#2[#3]#4#5{% + \bgroup + \edef\@tstidx@label{\tstidx@getlabel{#3}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#1}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#2}}% + \fi + \fi + \def\@tstidx@encap{#4}% + \def\@tstidx@range{(}% + \let\tstidx@org@glstextformat\glstextformat + \renewcommand\glstextformat[1]{\tstidx@post@glstextformat + {\tstidx@org@glstextformat{##1}}}% + \ifx\relax#5\relax + \tstidx@glspostindex[format={(#4}]{\@tstidx@label}% + \else + \@ifundefined{glsxtrinitwrgloss}% + {% + \glshyperlink[\glstextformat{\tstidx@glsentry{\@tstidx@label}}]% + {\@tstidx@label}% + \glsadd[format={(#4}]{\@tstidx@label}% + }% + {% + \tstidx@gls[wrgloss=after,format={(#4}]{\@tstidx@label}% + }% + \fi + \egroup +} +\let\@tstidx@org@indexopenpost\@tstindexopenpost +\let\@tstindexopenpost\@tstidx@gls@indexopenpost +\def\@tstidx@gls@indexclosepost#1#2[#3]#4#5{% + \bgroup + \edef\@tstidx@label{\tstidx@getlabel{#3}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#1}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#2}}% + \fi + \fi + \def\@tstidx@encap{#4}% + \def\@tstidx@range{)}% + \let\tstidx@org@glstextformat\glstextformat + \renewcommand\glstextformat[1]{\tstidx@post@glstextformat + {\tstidx@org@glstextformat{##1}}}% + \ifx\relax#5\relax + \tstidx@glspostindex[format={)#4}]{\@tstidx@label}% + \else + \@ifundefined{glsxtrinitwrgloss}% + {% + \glshyperlink[\glstextformat{\tstidx@glsentry{\@tstidx@label}}]% + {\@tstidx@label}% + \glsadd[format={)#4}]{\@tstidx@label}% + }% + {% + \tstidx@gls[wrgloss=after,format={)#4}]{\@tstidx@label}% + }% + \fi + \egroup +} +\let\@tstidx@org@indexclosepost\@tstindexclosepost +\let\@tstindexclosepost\@tstidx@gls@indexclosepost +\def\@tstidx@gls@indexpre#1#2[#3]#4#5{% + \bgroup + \edef\@tstidx@label{\tstidx@getlabel{#3}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#1}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#2}}% + \fi + \fi + \def\@tstidx@encap{#4}% + \def\@tstidx@range{}% + \let\tstidx@org@glstextformat\glstextformat + \renewcommand\glstextformat[1]{\tstidx@pre@glstextformat + {\tstidx@org@glstextformat{##1}}}% + \ifx\relax#5\relax + \ifx\@tstidx@encap\@empty + \tstidx@glspreindex{\@tstidx@label}% + \else + \tstidx@glspreindex[format={#4}]{\@tstidx@label}% + \fi + \else + \ifx\@tstidx@encap\@empty + \tstidx@gls{\@tstidx@label}% + \else + \tstidx@gls[format={#4}]{\@tstidx@label}% + \fi + \fi + \egroup +} +\let\@tstidx@org@indexpre\@tstindexpre +\let\@tstindexpre\@tstidx@gls@indexpre +\def\@tstidx@gls@indexopenpre#1#2[#3]#4#5{% + \bgroup + \edef\@tstidx@label{\tstidx@getlabel{#3}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#1}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#2}}% + \fi + \fi + \def\@tstidx@encap{#4}% + \def\@tstidx@range{(}% + \let\tstidx@org@glstextformat\glstextformat + \renewcommand\glstextformat[1]{\tstidx@pre@glstextformat + {\tstidx@org@glstextformat{##1}}}% + \ifx\relax#5\relax + \tstidx@glspreindex[format={(#4}]{\@tstidx@label}% + \else + \tstidx@gls[format={(#4}]{\@tstidx@label}% + \fi + \egroup +} +\let\@tstidx@org@indexopenpre\@tstindexopenpre +\let\@tstindexopenpre\@tstidx@gls@indexopenpre +\def\@tstidx@gls@indexclosepre#1#2[#3]#4#5{% + \bgroup + \edef\@tstidx@label{\tstidx@getlabel{#3}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#1}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#2}}% + \fi + \fi + \def\@tstidx@encap{#4}% + \def\@tstidx@range{)}% + \let\tstidx@org@glstextformat\glstextformat + \renewcommand\glstextformat[1]{\tstidx@pre@glstextformat + {\tstidx@org@glstextformat{##1}}}% + \ifx\relax#5\relax + \tstidx@glspreindex[format={)#4}]{\@tstidx@label}% + \else + \tstidx@gls[format={)#4}]{\@tstidx@label}% + \fi + \egroup +} +\let\@tstidx@org@indexclosepre\@tstindexclosepre +\let\@tstindexclosepre\@tstidx@gls@indexclosepre +\providecommand*\seealsoname{see also} +\providecommand*\seename{see} +\newcommand*\tstidx@seealso{seealso} +\def\@tstidx@gls@indexsee#1#2#3#4[#5]#6{% + \if@tstidx@useglsseekey + \else + \bgroup + \edef\@tstidx@label{\tstidx@getlabel{#3}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#1}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#2}}% + \fi + \fi + \ifx\relax#5\relax + \def\@tstidx@xrlabel{}% + \def\@tstidx@xrlabel@sep{}% + \@for\@tst@idxthis:=#6\do{% + \edef\@tstidx@xrlabel{\@tstidx@xrlabel\@tstidx@xrlabel@sep + \expandafter\tstidx@getlabel\expandafter{\@tst@idxthis}}% + \def\@tstidx@xrlabel@sep{,}% + }% + \else + \def\@tstidx@xrlabel{#5}% + \fi + \edef\@tstidx@seetag{#4}% + \ifx\@tstidx@seetag\tstidx@seealso + \if@tstidx@hasseealsokey + \expandafter\glsxtrindexseealso\expandafter\@tstidx@label\expandafter + {\@tstidx@xrlabel}% + \else + \expandafter\glssee\expandafter[\expandafter\seealsoname + \expandafter]\expandafter\@tstidx@label\expandafter{\@tstidx@xrlabel}% + \fi + \else + \expandafter\glssee\expandafter\@tstidx@label\expandafter + {\@tstidx@xrlabel}% + \fi + \iftestidxshowmarks + \ifx\relax#5\relax + \tstidxseeref{#2}{tst#4ref}{#6}% + \else + \tstidxseeref{#2}{tst#4ref}{#5}% + \fi + \fi + \egroup + \fi +} +\let\@tstidx@org@indexsee\@tstindexsee +\let\@tstindexsee\@tstidx@gls@indexsee +\def\@tstidx@gls@subindexpost#1#2[#3]#4#5{% + \bgroup + \edef\@tstidx@label{\tstidx@getlabel{#3}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#1}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#2}}% + \fi + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#2}}% + \fi + \ifx\@tstidx@sort\empty + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@term}% + .\@tstidx@label}% + \else + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@sort}% + .\@tstidx@label}% + \fi + \fi + \def\@tstidx@encap{#4}% + \def\@tstidx@range{}% + \let\tstidx@org@glstextformat\glstextformat + \renewcommand\glstextformat[1]{\tstidx@post@glstextformat + {\tstidx@org@glstextformat{##1}}}% + \ifx\relax#5\relax + \ifx\@tstidx@encap\@empty + \tstidx@glspostindex{\@tstidx@label}% + \else + \tstidx@glspostindex[format={#4}]{\@tstidx@label}% + \fi + \else + \@ifundefined{glsxtrinitwrgloss}% + {% + \glshyperlink[\glstextformat{\tstidx@glsentry{\@tstidx@label}}]% + {\@tstidx@label}% + \ifx\@tstidx@encap\@empty + \glsadd{\@tstidx@label}% + \else + \glsadd[format={#4}]{\@tstidx@label}% + \fi + }% + {% + \ifx\@tstidx@encap\@empty + \tstidx@gls[wrgloss=after]{\@tstidx@label}% + \else + \tstidx@gls[wrgloss=after,format={#4}]{\@tstidx@label}% + \fi + }% + \fi + \egroup +} +\let\@tstidx@org@subindexpost\@tstidx@subindexpost +\let\@tstidx@subindexpost\@tstidx@gls@subindexpost +\def\@tstidx@gls@subindexopenpost#1#2[#3]#4#5{% + \bgroup + \edef\@tstidx@label{\tstidx@getlabel{#3}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#1}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#2}}% + \fi + \ifx\@tstidx@sort\empty + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@term}% + .\@tstidx@label}% + \else + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@sort}% + .\@tstidx@label}% + \fi + \fi + \def\@tstidx@encap{#4}% + \def\@tstidx@range{(}% + \let\tstidx@org@glstextformat\glstextformat + \renewcommand\glstextformat[1]{\tstidx@post@glstextformat + {\tstidx@org@glstextformat{##1}}}% + \ifx\relax#5\relax + \tstidx@glspostindex[format={(#4}]{\@tstidx@label}% + \else + \@ifundefined{glsxtrinitwrgloss}% + {% + \glshyperlink[\glstextformat{\tstidx@glsentry{\@tstidx@label}}]% + {\@tstidx@label}% + \glsadd[format={(#4}]{\@tstidx@label}% + }% + {% + \tstidx@gls[wrgloss=after,format={(#4}]{\@tstidx@label}% + }% + \fi + \egroup +} +\let\@tstidx@org@subindexopenpost\@tstidx@subindexopenpost +\let\@tstidx@subindexopenpost\@tstidx@gls@subindexopenpost +\def\@tstidx@gls@subindexclosepost#1#2[#3]#4#5{% + \bgroup + \edef\@tstidx@label{\tstidx@getlabel{#3}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#1}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#2}}% + \fi + \ifx\@tstidx@sort\empty + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@term}% + .\@tstidx@label}% + \else + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@sort}% + .\@tstidx@label}% + \fi + \fi + \def\@tstidx@encap{#4}% + \def\@tstidx@range{)}% + \let\tstidx@org@glstextformat\glstextformat + \renewcommand\glstextformat[1]{\tstidx@post@glstextformat + {\tstidx@org@glstextformat{##1}}}% + \ifx\relax#5\relax + \tstidx@glspostindex[format={)#4}]{\@tstidx@label}% + \else + \@ifundefined{glsxtrinitwrgloss}% + {% + \glshyperlink[\glstextformat{\tstidx@glsentry{\@tstidx@label}}]% + {\@tstidx@label}% + \glsadd[format={)#4}]{\@tstidx@label}% + }% + {% + \tstidx@gls[wrgloss=after,format={)#4}]{\@tstidx@label}% + }% + \fi + \egroup +} +\let\@tstidx@org@subindexclosepost\@tstidx@subindexclosepost +\let\@tstidx@subindexclosepost\@tstidx@gls@subindexclosepost +\def\@tstidx@gls@subindexpre#1#2[#3]#4#5{% + \bgroup + \edef\@tstidx@label{\tstidx@getlabel{#3}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#1}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#2}}% + \fi + \ifx\@tstidx@sort\empty + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@term}% + .\@tstidx@label}% + \else + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@sort}% + .\@tstidx@label}% + \fi + \fi + \def\@tstidx@encap{#4}% + \def\@tstidx@range{}% + \let\tstidx@org@glstextformat\glstextformat + \renewcommand\glstextformat[1]{\tstidx@pre@glstextformat + {\tstidx@org@glstextformat{##1}}}% + \ifx\relax#5\relax + \ifx\@tstidx@encap\@empty + \tstidx@glspreindex{\@tstidx@label}% + \else + \tstidx@glspreindex[format={#4}]{\@tstidx@label}% + \fi + \else + \ifx\@tstidx@encap\@empty + \tstidx@gls{\@tstidx@label}% + \else + \tstidx@gls[format={#4}]{\@tstidx@label}% + \fi + \fi + \egroup +} +\let\@tstidx@org@subindexpre\@tstidx@subindexpre +\let\@tstidx@subindexpre\@tstidx@gls@subindexpre +\def\@tstidx@gls@subindexopenpre#1#2[#3]#4#5{% + \bgroup + \edef\@tstidx@label{\tstidx@getlabel{#3}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#1}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#2}}% + \fi + \ifx\@tstidx@sort\empty + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@term}% + .\@tstidx@label}% + \else + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@sort}% + .\@tstidx@label}% + \fi + \fi + \def\@tstidx@encap{#4}% + \def\@tstidx@range{(}% + \let\tstidx@org@glstextformat\glstextformat + \renewcommand\glstextformat[1]{\tstidx@pre@glstextformat + {\tstidx@org@glstextformat{##1}}}% + \ifx\relax#5\relax + \tstidx@glspreindex[format={(#4}]{\@tstidx@label}% + \else + \tstidx@gls[format={(#4}]{\@tstidx@label}% + \fi + \egroup +} +\let\@tstidx@org@subindexopenpre\@tstidx@subindexopenpre +\let\@tstidx@subindexopenpre\@tstidx@gls@subindexopenpre +\def\@tstidx@gls@subindexclosepre#1#2[#3]#4#5{% + \bgroup + \edef\@tstidx@label{\tstidx@getlabel{#3}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#1}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#2}}% + \fi + \ifx\@tstidx@sort\empty + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@term}% + .\@tstidx@label}% + \else + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@sort}% + .\@tstidx@label}% + \fi + \fi + \def\@tstidx@encap{#4}% + \def\@tstidx@range{)}% + \let\tstidx@org@glstextformat\glstextformat + \renewcommand\glstextformat[1]{\tstidx@pre@glstextformat + {\tstidx@org@glstextformat{##1}}}% + \ifx\relax#5\relax + \tstidx@glspreindex[format={)#4}]{\@tstidx@label}% + \else + \tstidx@gls[format={)#4}]{\@tstidx@label}% + \fi + \egroup +} +\let\@tstidx@org@subindexclosepre\@tstidx@subindexclosepre +\let\@tstidx@subindexclosepre\@tstidx@gls@subindexclosepre +\def\@tstidx@gls@indexsubsee#1#2#3#4[#5]#6{% + \if@tstidx@useglsseekey + \else + \bgroup + \edef\@tstidx@label{\tstidx@getlabel{#3}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#1}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#2}}% + \fi + \fi + \ifx\relax#5\relax + \def\@tstidx@xrlabel{}% + \def\@tstidx@xrlabel@sep{}% + \@for\@tst@idxthis:=#6\do{% + \edef\@tstidx@xrlabel{\@tstidx@xrlabel\@tstidx@xrlabel@sep + \expandafter\tstidx@getlabel\expandafter{\@tst@idxthis}}% + \def\@tstidx@xrlabel@sep{,}% + }% + \else + \def\@tstidx@xrlabel{#5}% + \fi + \edef\@tstidx@seetag{#4}% + \ifx\@tstidx@seetag\tstidx@seealso + \if@tstidx@hasseealsokey + \expandafter\glsxtrindexseealso\expandafter\@tstidx@label\expandafter + {\@tstidx@xrlabel}% + \else + \expandafter\glssee\expandafter[\expandafter\seealsoname + \expandafter]\expandafter\@tstidx@label\expandafter{\@tstidx@xrlabel}% + \fi + \else + \expandafter\glssee\expandafter\@tstidx@label\expandafter + {\@tstidx@xrlabel}% + \fi + \iftestidxshowmarks + \protected@edef\tstidx@dosee{\noexpand\tstidxsubseeref + {\@tstidx@term}{#2}{tst#4ref}{\@tstidx@xrlabel}}% + \tstidx@dosee + \fi + \egroup + \fi +} +\let\@tstidx@org@indexsubsee\@tstidx@indexsubsee +\let\@tstidx@indexsubsee\@tstidx@gls@indexsubsee +\def\@tstidx@gls@subsubindexpost#1#2[#3]#4#5{% + \bgroup + \edef\@tstidx@label{\tstidx@getlabel{#3}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#1}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#2}}% + \fi + \ifx\@tstidx@sort\empty + \ifx\@tstidx@subsort\empty + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@term}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subterm}% + .\@tstidx@label}% + \else + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@term}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subsort}% + .\@tstidx@label}% + \fi + \else + \ifx\@tstidx@subsort\empty + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@sort}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subterm}% + .\@tstidx@label}% + \else + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@sort}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subsort}% + .\@tstidx@label}% + \fi + \fi + \fi + \def\@tstidx@encap{#4}% + \def\@tstidx@range{}% + \let\tstidx@org@glstextformat\glstextformat + \renewcommand\glstextformat[1]{\tstidx@post@glstextformat + {\tstidx@org@glstextformat{##1}}}% + \ifx\relax#5\relax + \ifx\@tstidx@encap\@empty + \tstidx@glspostindex{\@tstidx@label}% + \else + \tstidx@glspostindex[format={#4}]{\@tstidx@label}% + \fi + \else + \@ifundefined{glsxtrinitwrgloss}% + {% + \glshyperlink[\glstextformat{\tstidx@glsentry{\@tstidx@label}}]% + {\@tstidx@label}% + \ifx\@tstidx@encap\@empty + \glsadd{\@tstidx@label}% + \else + \glsadd[format={#4}]{\@tstidx@label}% + \fi + }% + {% + \ifx\@tstidx@encap\@empty + \tstidx@gls[wrgloss=after]{\@tstidx@label}% + \else + \tstidx@gls[wrgloss=after,format={#4}]{\@tstidx@label}% + \fi + }% + \fi + \egroup +} +\let\@tstidx@org@subsubindexpost\@@tstidx@subsubindexpost +\let\@@tstidx@subsubindexpost\@tstidx@gls@subsubindexpost +\def\@tstidx@gls@subsubindexopenpost#1#2[#3]#4#5{% + \bgroup + \edef\@tstidx@label{\tstidx@getlabel{#3}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#1}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#2}}% + \fi + \ifx\@tstidx@sort\empty + \ifx\@tstidx@subsort\empty + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@term}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subterm}% + .\@tstidx@label}% + \else + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@term}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subsort}% + .\@tstidx@label}% + \fi + \else + \ifx\@tstidx@subsort\empty + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@sort}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subterm}% + .\@tstidx@label}% + \else + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@sort}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subsort}% + .\@tstidx@label}% + \fi + \fi + \fi + \def\@tstidx@encap{#4}% + \def\@tstidx@range{(}% + \let\tstidx@org@glstextformat\glstextformat + \renewcommand\glstextformat[1]{\tstidx@post@glstextformat + {\tstidx@org@glstextformat{##1}}}% + \ifx\relax#5\relax + \tstidx@glspostindex[format={(#4}]{\@tstidx@label}% + \else + \@ifundefined{glsxtrinitwrgloss}% + {% + \glshyperlink[\glstextformat{\tstidx@glsentry{\@tstidx@label}}]% + {\@tstidx@label}% + \glsadd[format={(#4}]{\@tstidx@label}% + }% + {% + \tstidx@gls[wrgloss=after,format={(#4}]{\@tstidx@label}% + }% + \fi + \egroup +} +\let\@tstidx@org@subsubindexopenpost\@@tstidx@subsubindexopenpost +\let\@@tstidx@subsubindexopenpost\@tstidx@gls@subsubindexopenpost +\def\@tstidx@gls@subsubindexclosepost#1#2[#3]#4#5{% + \bgroup + \edef\@tstidx@label{\tstidx@getlabel{#3}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#1}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#2}}% + \fi + \ifx\@tstidx@sort\empty + \ifx\@tstidx@subsort\empty + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@term}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subterm}% + .\@tstidx@label}% + \else + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@term}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subsort}% + .\@tstidx@label}% + \fi + \else + \ifx\@tstidx@subsort\empty + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@sort}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subterm}% + .\@tstidx@label}% + \else + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@sort}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subsort}% + .\@tstidx@label}% + \fi + \fi + \fi + \def\@tstidx@encap{#4}% + \def\@tstidx@range{)}% + \let\tstidx@org@glstextformat\glstextformat + \renewcommand\glstextformat[1]{\tstidx@post@glstextformat + {\tstidx@org@glstextformat{##1}}}% + \ifx\relax#5\relax + \tstidx@glspostindex[format={)#4}]{\@tstidx@label}% + \else + \@ifundefined{glsxtrinitwrgloss}% + {% + \glshyperlink[\glstextformat{\tstidx@glsentry{\@tstidx@label}}]% + {\@tstidx@label}% + \glsadd[format={)#4}]{\@tstidx@label}% + }% + {% + \tstidx@gls[wrgloss=after,format={)#4}]{\@tstidx@label}% + }% + \fi + \egroup +} +\let\@tstidx@org@subsubindexclosepost\@@tstidx@subsubindexclosepost +\let\@@tstidx@subsubindexclosepost\@tstidx@gls@subsubindexclosepost +\def\@tstidx@gls@subsubindexpre#1#2[#3]#4#5{% + \bgroup + \edef\@tstidx@label{\tstidx@getlabel{#3}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#1}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#2}}% + \fi + \ifx\@tstidx@sort\empty + \ifx\@tstidx@subsort\empty + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@term}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subterm}% + .\@tstidx@label}% + \else + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@term}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subsort}% + .\@tstidx@label}% + \fi + \else + \ifx\@tstidx@subsort\empty + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@sort}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subterm}% + .\@tstidx@label}% + \else + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@sort}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subsort}% + .\@tstidx@label}% + \fi + \fi + \fi + \def\@tstidx@encap{#4}% + \def\@tstidx@range{}% + \let\tstidx@org@glstextformat\glstextformat + \renewcommand\glstextformat[1]{\tstidx@pre@glstextformat + {\tstidx@org@glstextformat{##1}}}% + \ifx\relax#5\relax + \ifx\@tstidx@encap\@empty + \tstidx@glspreindex{\@tstidx@label}% + \else + \tstidx@glspreindex[format={#4}]{\@tstidx@label}% + \fi + \else + \ifx\@tstidx@encap\@empty + \tstidx@gls{\@tstidx@label}% + \else + \tstidx@gls[format={#4}]{\@tstidx@label}% + \fi + \fi + \egroup +} +\let\@tstidx@org@subsubindexpre\@@tstidx@subsubindexpre +\let\@@tstidx@subsubindexpre\@tstidx@gls@subsubindexpre +\def\@tstidx@gls@subsubindexopenpre#1#2[#3]#4#5{% + \bgroup + \edef\@tstidx@label{\tstidx@getlabel{#3}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#1}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#2}}% + \fi + \ifx\@tstidx@sort\empty + \ifx\@tstidx@subsort\empty + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@term}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subterm}% + .\@tstidx@label}% + \else + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@term}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subsort}% + .\@tstidx@label}% + \fi + \else + \ifx\@tstidx@subsort\empty + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@sort}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subterm}% + .\@tstidx@label}% + \else + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@sort}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subsort}% + .\@tstidx@label}% + \fi + \fi + \fi + \def\@tstidx@encap{#4}% + \def\@tstidx@range{(}% + \let\tstidx@org@glstextformat\glstextformat + \renewcommand\glstextformat[1]{\tstidx@pre@glstextformat + {\tstidx@org@glstextformat{##1}}}% + \ifx\relax#5\relax + \tstidx@glspreindex[format={(#4}]{\@tstidx@label}% + \else + \tstidx@gls[format={(#4}]{\@tstidx@label}% + \fi + \egroup +} +\let\@tstidx@org@subsubindexopenpre\@@tstidx@subsubindexopenpre +\let\@@tstidx@subsubindexopenpre\@tstidx@gls@subsubindexopenpre +\def\@tstidx@gls@subsubindexclosepre#1#2[#3]#4#5{% + \bgroup + \edef\@tstidx@label{\tstidx@getlabel{#3}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#1}}% + \ifx\@tstidx@label\@empty + \edef\@tstidx@label{\tstidx@getlabel{#2}}% + \fi + \ifx\@tstidx@sort\empty + \ifx\@tstidx@subsort\empty + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@term}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subterm}% + .\@tstidx@label}% + \else + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@term}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subsort}% + .\@tstidx@label}% + \fi + \else + \ifx\@tstidx@subsort\empty + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@sort}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subterm}% + .\@tstidx@label}% + \else + \edef\@tstidx@label{% + \expandafter\tstidx@getlabel\expandafter{\@tstidx@sort}% + .\expandafter\tstidx@getlabel\expandafter{\@tstidx@subsort}% + .\@tstidx@label}% + \fi + \fi + \fi + \def\@tstidx@encap{#4}% + \def\@tstidx@range{)}% + \let\tstidx@org@glstextformat\glstextformat + \renewcommand\glstextformat[1]{\tstidx@pre@glstextformat + {\tstidx@org@glstextformat{##1}}}% + \ifx\relax#5\relax + \tstidx@glspreindex[format={)#4}]{\@tstidx@label}% + \else + \tstidx@gls[format={)#4}]{\@tstidx@label}% + \fi + \egroup +} +\let\@tstidx@org@subsubindexclosepre\@@tstidx@subsubindexclosepre +\let\@@tstidx@subsubindexclosepre\@tstidx@gls@subsubindexclosepre +\newcommand*{\tstidxnewutfentry}[6]{% + \@tstidx@ifutfviii + {% + \tstidxprocessutf{\@tstidx@utf}{#3}% + \ifx\relax#4\relax + \protected@edef\@tstidx@doidx{% + \noexpand\tstidxnewentry{#1}{#6}% + {name={#3},% + sort={\unexpanded\expandafter{\@tstidx@utf}},% + description={},#5}}% + \else + \protected@edef\@tstidx@doidx{% + \noexpand\tstidxnewentry{#1}{#6}% + {name={\noexpand#4{#3}},% + sort={\unexpanded\expandafter{\@tstidx@utf}},% + description={},#5}}% + \fi + }% + {% + \tstidxprocessasciisort{\@tstidx@asciisort}{#2}% + \tstidxprocessasciisortstrip{\@tstidx@asciilabel}{#1}% + \ifx\relax#4\relax + \protected@edef\@tstidx@doidx{% + \noexpand\tstidxnewentry{\@tstidx@asciilabel}{#6}% + {name={#2},% + sort={\unexpanded\expandafter{\@tstidx@asciisort}},% + description={},#5}}% + \else + \protected@edef\@tstidx@doidx{% + \noexpand\tstidxnewentry{\@tstidx@asciilabel}{#6}% + {name={\noexpand#4{#2}},% + sort={\unexpanded\expandafter{\@tstidx@asciisort}},% + description={},#5}}% + \fi + }% + \@tstidx@doidx +} +\newcommand*{\tstidxnewutfentrytext}[8]{% + \@tstidx@ifutfviii + {% + \tstidxprocessutf{\@tstidx@utf}{#4}% + \ifx\relax#6\relax + \protected@edef\@tstidx@doidx{% + \noexpand\tstidxnewentry{#1}{#8}% + {name={#4},% + sort={\unexpanded\expandafter{\@tstidx@utf}},% + text={#5},% + description={},#7}}% + \else + \protected@edef\@tstidx@doidx{% + \noexpand\tstidxnewentry{#1}{#8}% + {name={#4},% + text={\noexpand#6{#5}},% + sort={\unexpanded\expandafter{\@tstidx@utf}},% + description={},#7}}% + \fi + }% + {% + \tstidxprocessasciisort{\@tstidx@asciisort}{#2}% + \ifx\relax#6\relax + \protected@edef\@tstidx@doidx{% + \noexpand\tstidxnewentry{#1}{#8}% + {name={#2},% + text={#3},% + sort={\unexpanded\expandafter{\@tstidx@asciisort}},% + description={},#7}}% + \else + \protected@edef\@tstidx@doidx{% + \noexpand\tstidxnewentry{#1}{#8}% + {name={\noexpand#6{#2}},% + text={\noexpand#6{#3}},% + sort={\unexpanded\expandafter{\@tstidx@asciisort}},% + description={},#7}}% + \fi + }% + \@tstidx@doidx +} +\newcommand*{\tstidxnewword}[3][]{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#2}}{word}{name={#2},description={#3},#1}% + \else + \tstidxnewentry{\tstidx@getlabel{#2}}{word}{name={#2},description={},#1}% + \fi +} +\if@tstidx@useglsseekey + \newcommand*{\tstidxnewwordsee}[4][]{% + \tstidxnewword[see={#4},#1]{#2}{#3}% + } +\else + \newcommand*{\tstidxnewwordsee}[4][]{% + \tstidxnewword[#1]{#2}{#3}% + } +\fi +\if@tstidx@useglsseekey + \if@tstidx@hasseealsokey + \newcommand*{\tstidxnewwordseealso}[4][]{% + \tstidxnewword[seealso={#4},#1]{#2}{#3}% + } + \else + \newcommand*{\tstidxnewwordseealso}[4][]{% + \tstidxnewword[see={[\seealsoname]#4},#1]{#2}{#3}% + } + \fi +\else + \newcommand*{\tstidxnewwordseealso}[4][]{% + \tstidxnewword[#1]{#2}{#3}% + } +\fi +\newcommand*{\tstidxnewdigraph}[3][]{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#2}}{digraph}{name={#2},description={#3},#1}% + \else + \tstidxnewentry{\tstidx@getlabel{#2}}{digraph}{name={#2},description={},#1}% + \fi +} +\newcommand*{\tstidxnewtrigraph}[3][]{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#2}}{trigraph}{name={#2},description={#3},#1}% + \else + \tstidxnewentry{\tstidx@getlabel{#2}}{trigraph}{name={#2},description={},#1}% + \fi +} +\newcommand*{\tstidxnewsubword}[4][]{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#2.#3}}{word}% + {parent={\tstidx@getlabel{#2}},name={#3},description={#4},#1}% + \else + \tstidxnewentry{\tstidx@getlabel{#2.#3}}{word}% + {parent={\tstidx@getlabel{#2}},name={#3},description={},#1}% + \fi +} +\if@tstidx@useglsseekey + \newcommand*{\tstidxnewsubwordsee}[5][]{% + \tstidxnewsubword[see={#5},#1]{#2}{#3}{#4}% + } +\else + \newcommand*{\tstidxnewsubwordsee}[5][]{% + \tstidxnewsubword[#1]{#2}{#3}{#4}% + } +\fi +\if@tstidx@useglsseekey + \if@tstidx@hasseealsokey + \newcommand*{\tstidxnewsubwordseealso}[5][]{% + \tstidxnewsubword[seealso={#5},#1]{#2}{#3}{#4}% + } + \else + \newcommand*{\tstidxnewsubwordseealso}[5][]{% + \tstidxnewsubword[see={[\seealsoname]#5},#1]{#2}{#3}{#4}% + } + \fi +\else + \newcommand*{\tstidxnewsubwordseealso}[5][]{% + \tstidxnewsubword[#1]{#2}{#3}{#4}% + } +\fi +\renewcommand*{\tstidxcsfmt}[1]{\texttt{\glsbackslash#1}} +\newcommand*{\tstidxnewcs}[3][]{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{cs.#2}}{cs}% + {sort={#2},name={\tstidxcsfmt{#2}},description={#3},#1}% + \else + \tstidxnewentry{\tstidx@getlabel{cs.#2}}{cs}% + {sort={#2},name={\tstidxcsfmt{#2}},description={},#1}% + \fi +} +\newcommand*{\tstidxnewencapcsn}[3][]{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#2}}{encapcsn}{sort={#2 (#2)},% + name={\texttt{#2} (\tstidxcsfmt{#2})}, + text={\texttt{#2}},description={#3},#1}% + \tstidxnewentry{\tstidx@getlabel{encap.#2}}{encapcsn}{sort={#2},% + parent={\tstidx@getlabel{encap}}, + name={\texttt{#2}},description={#3}}% + \else + \tstidxnewentry{\tstidx@getlabel{#2}}{encapcsn}{sort={#2 (#2)},% + name={\texttt{#2} (\tstidxcsfmt{#2})}, + text={\texttt{#2}},description={},#1}% + \tstidxnewentry{\tstidx@getlabel{encap.#2}}{encapcsn}{sort={#2},% + parent={\tstidx@getlabel{encap}}, + name={\texttt{#2}},description={}}% + \fi +} +\newcommand*{\tstidxnewenv}[3][]{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#2environment}}% + {environment}{sort={#2 environment},% + name={\tstidxenvfmt{#2} environment},% + text={\tstidxenvfmt{#2}},description={#3},#1}% + \else + \tstidxnewentry{\tstidx@getlabel{#2environment}}% + {environment}{sort={#2 environment},% + name={\tstidxenvfmt{#2} environment},% + text={\tstidxenvfmt{#2}},description={},#1}% + \fi +} +\newcommand*{\tstidxnewapp}[3][]{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#2}}{application}{sort={#2},% + name={\tstidxappfmt{#2}},description={#3},#1}% + \tstidxnewentry{applications.\tstidx@getlabel{#2}}{application}{sort={#2},% + parent={applications},name={\tstidxappfmt{#2}},description={#3}}% + \else + \tstidxnewentry{\tstidx@getlabel{#2}}{application}{sort={#2},% + name={\tstidxappfmt{#2}},description={},#1}% + \tstidxnewentry{applications.\tstidx@getlabel{#2}}{application}{sort={#2},% + parent={applications},name={\tstidxappfmt{#2}},description={}}% + \fi +} +\newcommand*{\tstidxnewappopt}[4][]{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#3.#2option}}{applicationoption}% + {sort={#3 (#2)},% + name={\tstidxappoptfmt{#3} (\tstidxappfmt{#2})},description={#4},#1}% + \tstidxnewentry{\tstidx@getlabel{#2.#3}}{applicationoption}% + {parent={#2},sort={#3},% + name={\tstidxappoptfmt{#3}},description={#4},#1}% + \tstidxnewentry{\tstidx@getlabel{applications.#2.#3}}% + {applicationoption}{sort={#3},% + parent={\tstidx@getlabel{applications.#2}},name={\tstidxappoptfmt{#3}},% + description={#4}}% + \else + \tstidxnewentry{\tstidx@getlabel{#3.#2option}}{applicationoption}% + {sort={#3 (#2)},% + name={\tstidxappoptfmt{#3} (\tstidxappfmt{#2})},description={},#1}% + \tstidxnewentry{\tstidx@getlabel{#2.#3}}{applicationoption}% + {parent={#2},sort={#3},% + name={\tstidxappoptfmt{#3}},description={},#1}% + \tstidxnewentry{\tstidx@getlabel{applications.#2.#3}}% + {applicationoption}{sort={#3},% + parent={\tstidx@getlabel{applications.#2}},name={\tstidxappoptfmt{#3}},% + description={}}% + \fi +} +\newcommand*{\tstidxnewsty}[3][]{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#2package}}{package}{sort={#2 package},% + name={\tstidxstyfmt{#2} package},% + text={\tstidxstyfmt{#2}},% + description={#3},#1}% + \tstidxnewentry{\tstidx@getlabel{packages.#2package}}{package}{sort={#2},% + parent={packages},name={\tstidxstyfmt{#2}},% + text={\tstidxstyfmt{#2}},description={#3}}% + \else + \tstidxnewentry{\tstidx@getlabel{#2package}}{package}{sort={#2 package},% + name={\tstidxstyfmt{#2} package},% + text={\tstidxstyfmt{#2}},% + description={},#1}% + \tstidxnewentry{\tstidx@getlabel{packages.#2package}}{package}{sort={#2},% + parent={packages},name={\tstidxstyfmt{#2}},% + text={\tstidxstyfmt{#2}},description={}}% + \fi +} +\if@tstidx@useglsseekey + \if@tstidx@hasseealsokey + \newcommand*{\tstidxnewstyseealso}[4][]{% + \tstidxnewsty[seealso={#4},#1]{#2}{#3}% + } + \else + \newcommand*{\tstidxnewstyseealso}[4][]{% + \tstidxnewsty[see={[\seealsoname]#4},#1]{#2}{#3}% + } + \fi +\else + \newcommand*{\tstidxnewstyseealso}[4][]{% + \tstidxnewsty[#1]{#2}{#3}% + } +\fi +\newcommand*{\tstidxnewstyopt}[4][]{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#2package.#3}}{packageoption}{sort={#3},% + name={\tstidxstyoptfmt{#3}},% + parent={\tstidx@getlabel{#2package}},% + description={#4},#1}% + \tstidxnewentry{\tstidx@getlabel{packages.#2package.#3}}{packageoption}% + {sort={#3},% + parent={\tstidx@getlabel{packages.#2package}},name={\tstidxstyoptfmt{#3}},% + description={#4}}% + \else + \tstidxnewentry{\tstidx@getlabel{#2package.#3}}{packageoption}{sort={#3},% + name={\tstidxstyoptfmt{#3}},% + parent={\tstidx@getlabel{#2package}},% + description={},#1}% + \tstidxnewentry{\tstidx@getlabel{packages.#2package.#3}}{packageoption}% + {sort={#3},% + parent={\tstidx@getlabel{packages.#2package}},name={\tstidxstyoptfmt{#3}},% + description={}}% + \fi +} +\newcommand*{\tstidxnewnumber}[3][]{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#2}}{number}{name={#2},description={#3},#1}% + \else + \tstidxnewentry{\tstidx@getlabel{#2}}{number}{name={#2},description={},#1}% + \fi +} +\newcommand*{\tstidxnewphrase}[3][]{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#2}}{phrase}{name={#2},description={#3},#1}% + \else + \tstidxnewentry{\tstidx@getlabel{#2}}{phrase}{name={#2},description={},#1}% + \fi +} +\if@tstidx@useglsseekey + \newcommand*{\tstidxnewphrasesee}[4][]{% + \tstidxnewphrase[see={#4},#1]{#2}{#3}% + } +\else + \newcommand*{\tstidxnewphrasesee}[4][]{% + \tstidxnewphrase[#1]{#2}{#3}% + } +\fi +\if@tstidx@useglsseekey + \if@tstidx@hasseealsokey + \newcommand*{\tstidxnewphraseseealso}[4][]{% + \tstidxnewphrase[seealso={#4},#1]{#2}{#3}% + } + \else + \newcommand*{\tstidxnewphraseseealso}[4][]{% + \tstidxnewphrase[see={[\seealsoname]#4},#1]{#2}{#3}% + } + \fi +\else + \newcommand*{\tstidxnewphraseseealso}[4][]{% + \tstidxnewphrase[#1]{#2}{#3}% + } +\fi +\newcommand*{\tstidxnewartphrase}[4][]{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#3}}{phrase}{name={#3, #2}, + text={#2 #3},description={#4},#1}% + \else + \tstidxnewentry{\tstidx@getlabel{#3}}{phrase}{name={#3, #2}, + text={#2 #3},description={},#1}% + \fi +} +\newcommand*{\tstidxnewsubphrase}[4][]{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#2.#3}}{phrase}% + {parent={\tstidx@getlabel{#2}},% + name={#3},description={#4},#1}% + \else + \tstidxnewentry{\tstidx@getlabel{#2.#3}}{phrase}% + {parent={\tstidx@getlabel{#2}},% + name={#3},description={},#1}% + \fi +} +\newcommand*{\tstidxnewperson}[4][]{% + \tstidxnewutfperson[#1]{#2}{#3}{#2}{#3}{#4}% +} +\newcommand*{\tstidxnewutfperson}[3][]{% + \@ifnextchar[{\@tstidxnewutfperson{#1}{#2}{#3}}% + {\@tstidxnewutfperson{#1}{#2}{#3}[#2#3]}% +} +\def\@tstidxnewutfperson#1#2#3[#4]#5#6#7{% + \if@tstidx@setdescription + \tstidxnewutfentrytext{\tstidx@getlabel{#4}}{#3, #2}{#2 #3}{#6, #5}{#5 #6}% + {}{description={#7},#1}{person}% + \tstidxnewutfentrytext{\tstidx@getlabel{people.#4}}{#3, #2}{#2 #3}{#6, #5}% + {#5 #6}{}{description={#7},parent={people}}{person}% + \else + \tstidxnewutfentrytext{\tstidx@getlabel{#4}}{#3, #2}{#2 #3}{#6, #5}{#5 #6}% + {}{#1}{person}% + \tstidxnewutfentrytext{\tstidx@getlabel{people.#4}}{#3, #2}{#2 #3}{#6, #5}% + {#5 #6}{}{parent={people}}{person}% + \fi +} +\newcommand*{\tstidxnewsym}[4][]{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#2}}{symbol}% + {name={#3},sort={#2},description={#4},#1}% + \else + \tstidxnewentry{\tstidx@getlabel{#2}}{symbol}% + {name={#3},sort={#2},description={},#1}% + \fi +} +\newcommand*{\tstidxnewindexmarker}[3][]{% + \if@tstidx@setdescription + \toks@{description={#3},#1}% + \else + \toks@{description={},#1}% + \fi + \iftestidxprefix + \protected@edef\@tstidx@dodef{% + \noexpand\tstidxnewentry{\tstidx@getlabel{#2}}% + {indexmarker}{% + name={{}\noexpand\protect\expandonce{\csname#2\endcsname}\noexpand\space + (\noexpand\tstidxcsfmt{#2})},% + sort={\tstidxindexmarkerprefix#2}, + \the\toks@}}% + \else + \protected@edef\@tstidx@dodef{% + \noexpand\tstidxnewentry{\tstidx@getlabel{#2}}% + {indexmarker}{% + name={{}\noexpand\protect\expandonce{\csname#2\endcsname}\noexpand\space + (\noexpand\tstidxcsfmt{#2})},% + sort={#2}, + \the\toks@}}% + \fi + \@tstidx@dodef +} +\newcommand*{\tstidxnewmath}[2][]{% + \@ifnextchar[{\@tstidxnewmath{#1}{#2}}{\@tstidxnewmath{#1}{#2}[#2]}% +} +\def\@tstidxnewmath#1#2[#3]#4#5{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#3}}{math}% + {name={$#4$},text={#4},sort={#2},description={#5},#1}% + \else + \tstidxnewentry{\tstidx@getlabel{#3}}{math}% + {name={$#4$},text={#4},sort={#2},description={},#1}% + \fi +} +\newcommand*{\tstidxnewmathsym}[2][]{% + \@ifnextchar[{\@tstidxnewmathsym{#1}{#2}}{\@tstidxnewmathsym{#1}{#2}[#2]}% +} +\def\@tstidxnewmathsym#1#2[#3]#4#5{% + \iftestidxprefix + \if@tstidx@setdescription + \toks@{name={$#4$},text={#4},description={#5},#1}% + \else + \toks@{name={$#4$},text={#4},#1}% + \fi + \protected@edef\@tstidx@dodef{% + \noexpand\tstidxnewentry{\tstidx@getlabel{#3}}{mathsymbol}% + {sort={\tstidxmathsymprefix#2},description={},\the\toks@}% + }% + \@tstidx@dodef + \else + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#3}}{mathsymbol}{name={$#4$},% + text={#4},sort={#2},description={#5},#1}% + \else + \tstidxnewentry{\tstidx@getlabel{#3}}{mathsymbol}{name={$#4$},% + text={#4},sort={#2},description={},#1}% + \fi + \fi +} +\newcommand*{\tstidxnewutfword}[5][]{% + \if@tstidx@setdescription + \tstidxnewutfentry{\tstidx@getlabel{#2}}{#3}{#4}{}{description={#5},#1}{word}% + \else + \tstidxnewutfentry{\tstidx@getlabel{#2}}{#3}{#4}{}{#1}{word}% + \fi +} +\if@tstidx@useglsseekey + \newcommand*{\tstidxnewutfwordsee}[6][]{% + \tstidxnewutfword[see={#6},#1]{#2}{#3}{#4}{#5}% + } +\else + \newcommand*{\tstidxnewutfwordsee}[6][]{% + \tstidxnewutfword[#1]{#2}{#3}{#4}{#5}% + } +\fi +\if@tstidx@useglsseekey + \if@tstidx@hasseealsokey + \newcommand*{\tstidxnewutfwordseealso}[6][]{% + \tstidxnewutfword[seealso={#6},#1]{#2}{#3}{#4}{#5}% + } + \else + \newcommand*{\tstidxnewutfwordseealso}[6][]{% + \tstidxnewutfword[see={[\seealsoname]#6},#1]{#2}{#3}{#4}{#5}% + } + \fi +\else + \newcommand*{\tstidxnewutfwordseealso}[6][]{% + \tstidxnewutfword[#1]{#2}{#3}{#4}{#5}% + } +\fi +\newcommand*{\tstidxnewutfdigraph}[5][]{% + \if@tstidx@setdescription + \tstidxnewutfentry{\tstidx@getlabel{#2}}{#3}{#4}{}{description={#5},#1}{digraph}% + \else + \tstidxnewutfentry{\tstidx@getlabel{#2}}{#3}{#4}{}{#1}{digraph}% + \fi +} +\newcommand*{\tstidxnewutfphrase}[5][]{% + \if@tstidx@setdescription + \tstidxnewutfentry{\tstidx@getlabel{#2}}{#3}{#4}{}% + {description={#5},#1}{phrase}% + \else + \tstidxnewutfentry{\tstidx@getlabel{#2}}{#3}{#4}{}{#1}{phrase}% + \fi +} +\newcommand*{\tstidxnewplace}[3][]{% + \tstidxnewutfplace[#1]{#2}{#2}{#2}{#3}% +} +\newcommand*{\tstidxnewutfplace}[5][]{% + \if@tstidx@setdescription + \tstidxnewutfentry{\tstidx@getlabel{#2}}{#3}{#4}{}% + {description={#5},#1}{place}% + \tstidxnewutfentry{\tstidx@getlabel{places.#2}}{#3}{#4}{}% + {description={#5},parent={places}}{place}% + \else + \tstidxnewutfentry{\tstidx@getlabel{#2}}{#3}{#4}{}{#1}{place}% + \tstidxnewutfentry{\tstidx@getlabel{places.#2}}{#3}{#4}{}% + {parent={places}}{place}% + \fi +} +\newcommand*{\tstidxnewartplace}[4][]{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#3}}{place}{name={#3, #2},% + text={#2 #3},description={#4},#1}% + \tstidxnewentry{\tstidx@getlabel{places.#3}}{place}{% + parent={places},name={#3, #2},% + text={#2 #3},description={#4}}% + \else + \tstidxnewentry{\tstidx@getlabel{#3}}{place}{name={#3, #2},% + text={#2 #3},description={},#1}% + \tstidxnewentry{\tstidx@getlabel{places.#3}}{place}{% + parent={places},name={#3, #2},% + text={#2 #3},description={}}% + \fi +} +\newcommand*{\tstidxnewbook}[3][]{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#2}}{book}{sort={#2},% + name={\tstidxbookfmt{#2}},description={#3},#1}% + \tstidxnewentry{\tstidx@getlabel{books.#2}}{book}{sort={#2},% + parent={books},name={\tstidxbookfmt{#2}},description={#3}}% + \else + \tstidxnewentry{\tstidx@getlabel{#2}}{book}{sort={#2},% + name={\tstidxbookfmt{#2}},description={},#1}% + \tstidxnewentry{\tstidx@getlabel{books.#2}}{book}{sort={#2},% + parent={books},name={\tstidxbookfmt{#2}},description={}}% + \fi +} +\newcommand*{\tstidxnewartbook}[4][]{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#3}}{book}{% + name={\tstidxbookfmt{#3, #2}}, + sort={#3, #2}, + text={\tstidxbookfmt{#2 #3}},description={#4},#1}% + \tstidxnewentry{\tstidx@getlabel{books.#3}}{book}{% + parent={books}, + name={\tstidxbookfmt{#3, #2}}, + sort={#3, #2}, + text={\tstidxbookfmt{#2 #3}},description={#4}}% + \else + \tstidxnewentry{\tstidx@getlabel{#3}}{book}{% + name={\tstidxbookfmt{#3, #2}}, + sort={#3, #2}, + text={\tstidxbookfmt{#2 #3}},description={},#1}% + \tstidxnewentry{\tstidx@getlabel{books.#3}}{book}{% + parent={books}, + name={\tstidxbookfmt{#3, #2}}, + sort={#3, #2}, + text={\tstidxbookfmt{#2 #3}},description={}}% + \fi +} +\newcommand*{\tstidxnewfilm}[3][]{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#2}}{film}{sort={#2},% + name={\tstidxfilmfmt{#2}},description={#3},#1}% + \tstidxnewentry{\tstidx@getlabel{films.#2}}{film}{sort={#2},% + parent={films},name={\tstidxfilmfmt{#2}},description={#3}}% + \else + \tstidxnewentry{\tstidx@getlabel{#2}}{film}{sort={#2},% + name={\tstidxfilmfmt{#2}},description={},#1}% + \tstidxnewentry{\tstidx@getlabel{films.#2}}{film}{sort={#2},% + parent={films},name={\tstidxfilmfmt{#2}},description={}}% + \fi +} +\newcommand*{\tstidxnewartfilm}[4][]{% + \if@tstidx@setdescription + \tstidxnewentry{\tstidx@getlabel{#3}}{film}{% + name={\tstidxfilmfmt{#3, #2}}, + sort={#3, #2}, + text={\tstidxfilmfmt{#2 #3}},description={#4},#1}% + \tstidxnewentry{\tstidx@getlabel{films.#3}}{film}{% + parent={films}, + name={\tstidxfilmfmt{#3, #2}}, + sort={#3, #2}, + text={\tstidxfilmfmt{#2 #3}},description={#4}}% + \else + \tstidxnewentry{\tstidx@getlabel{#3}}{film}{% + name={\tstidxfilmfmt{#3, #2}}, + sort={#3, #2}, + text={\tstidxfilmfmt{#2 #3}},description={},#1}% + \tstidxnewentry{\tstidx@getlabel{films.#3}}{film}{% + parent={films}, + name={\tstidxfilmfmt{#3, #2}}, + sort={#3, #2}, + text={\tstidxfilmfmt{#2 #3}},description={}}% + \fi +} +\newcommand*{\@tidx@gls@par@i}{% + This is a~sample block of text designed to test indexing with + the \expandafter\tstidxsty\expandafter{\tstidx@glossariespkg} package. To test + only \tstidxcs{index} and \tstidxenv{theindex} environment, just use + \tstidxsty{testidx} instead of \tstidxsty{testidx-glossaries}. + Alternatively, use \tstidxcs{tstidxtoidx} to switch back to the + original \tstidxsty{testidx} behaviour. + This sample text is provided to help test the + \if@tstidx@use@encaps + \tstidxword[tstidxencapii]{layout} + \else + \tstidxword{layout} + \fi + of the + \if@tstidx@use@encaps + \tstidxword[tstidxencapii]{index} + \else + \tstidxword{index} + \fi + (or + \if@tstidx@use@encaps + \tstidxword[tstidxencapii]{glossary}% + \else + \tstidxword{glossary}% + \fi + ) and the + \if@tstidx@use@encaps + \tstidxphrasepl[tstidxencapii]{indexing application}, + \else + \tstidxphrasepl{indexing application}, + \fi + such as + \tstidxapp{makeindex} or + \tstidxapp{xindy}, that may be used with the + \expandafter\tstidxsty\expandafter{\tstidx@glossariespkg} package. + This \tstidxword{example} text is just + \tstidxword{filler} (produced using \tstidxcs{testidx} provided + by the \tstidxopensty{testidx} package) to + pad\tstindexsee{padding}{seealso}{filler} out + the document with instances of \tstidxcs{index} interspersed throughout. + You can find out more + information from the \tstidxsty{testidx} user manual, which + can be accessed using the \tstidxapp{texdoc} application. +} +\let\@tidx@org@par@i\@tidx@par@i +\let\@tidx@par@i\@tidx@gls@par@i +\newcommand*{\@tidx@gls@par@ii}{% + The \tstidxsty{testidx-glossaries} package uses \tstidxcs{gls} (or + \tstidxcs{glspl}) unless no text should be displayed when indexing + occurs (in which case just \tstidxcs{glsadd} is used). This test package + doesn't make any modifications to + \tstidxcs{gls} (or \tstidxcs{glspl}), but there are some minor changes to entry + definitions and command use to allow this \tstidxphrase{dummy text} to test + various cases. By default \tstidxcs{gls} performs the indexing before the + \tstidxphrase{link text} to prevent any unwanted interference caused by the + \tstidxword{whatsit} introduced by the indexing. + However, it's possible that you may want the indexing to occur + after the \tstidxphrase{link text}, even though it creates + a~\tstidxword{whatsit}. This \tstidxphrase{dummy text} is designed to use + a mixture of pre- and post-indexing to investigate the results (particularly + with \tstidxwordpl{phrase} spanning a \tstidxphrase{page break}). + The \tstidxsty{glossaries-extra} package (as from + version 1.14) provides a~new key \tstidxqt{wrgloss} (for commands + like \tstidxcs{gls}), which may take the values + \tstidxqt{before} or \tstidxqt{after}. If this key is available, + it will be used for the post-indexing \tstidxwordpl{example}, + otherwise the post-indexing will be performed manually using + \tstidxcs{glsadd} after the \tstidxphrase{link text} (which is displayed using + \tstidxcs{glshyperlink}). The \tstidxsty{testidx-glossaries} package + just loads the base \tstidxsty{glossaries} package by default. Use + the \tstidxstyopt{testidx-glossaries}{extra} package option to also + load \tstidxsty{glossaries-extra}. The \tstidxphrase{visual effects} in this + \tstidxphrase{dummy text} are provided to illustrate where the + indexing occurs. The \tstidxsty{testidx-glossaries} package + doesn't attempt to produce a well-designed index or glossary. Its + \tstidxword{purpose} is to help you \tstidxword{test} your chosen + \tstidxword{design}, which is easier to do with a + relatively small test \tstidxword{document}, than with a large + \tstidxword{book}. The \tstidxphrase{dummy text} is intended to produce an + \tstidxword{index} that is at least three pages long to allow you + to test the page headers and footers in a two-sided document. + The \tstidxqt{mcolindexgroup} style is set by default (rather than + the \tstidxqt{list} style) as that style more closely represents + the style used in indexes. + \if@tstidx@setdescription + However, since this document has used the + \tstidxstyopt{testidx-glossaries}{desc} option, + the style is instead set to \tstidxqt{indexgroup}. + \else + If you use the \tstidxstyopt{testidx-glossaries}{desc} option, + the style will instead be set to \tstidxqt{indexgroup}. + \fi + You can change the style using \tstidxcs{setglossarystyle}. + By default the \tstidxqt{tree} styles (including + \tstidxqt{mcolindexgroup}) display the name field in bold in the + \tstidxword{glossary}. This is governed by the command + \tstidxcs{glstreenamefmt}, which may be redefined as appropriate. + You can hide the visual effects with the + \tstidxstyopt{testidx}{hidemarks} package option.% + \iftestidxshowmarks + \else + \space (It seems you already have this option set. + Remove it or use \tstidxstyopt{testidx}{showmarks} to show them + again.)% + \fi +} +\let\@tidx@org@par@ii\@tidx@par@ii +\let\@tidx@par@ii\@tidx@gls@par@ii +\newcommand*{\@tidx@gls@par@iii}{% + The actual place where the indexing occurs in this + \if@tstidx@use@encaps + \tstidxphrase[tstidxencapiii]{dummy text} + \else + \tstidxphrase{dummy text} + \fi + is marked with the symbol + \tstidxindexmarker{tstidxmarker} if there is no \tstidxword{range} +or + \tstidxphrase{cross-reference}. The + \if@tstidx@use@encaps + \tstidxword[tstidxencapi]{word} + \else + \tstidxword{word} + \fi + or + \if@tstidx@use@encaps + \tstidxword[tstidxencapii]{phrase} + \else + \tstidxword{phrase} + \fi + adjacent to this \tstidxword{marker} is + the text being indexed.\tstidxfootnote{The indexing may + occur before or after the \tstidxword{word} or \tstidxword{phrase} + (\tstidxphrase{link text}) being indexed in this + \if@tstidx@use@encaps + \tstidxphrase[tstidxencapiii]{dummy text}, + \else + \tstidxphrase{dummy text}, + \fi + but there's no + space between the \tstidxword{marker} and the term being indexed. + Incidentally, this \tstidxword{footnote} text was produced + using the command \tstidxcs{tstidxfootnote}, which you can + redefined as required. (It defaults to just \tstidxcs{footnote}.)} + A sub-entry is indicated with the symbol + \tstidxindexmarker{tstidxsubmarker} and a sub-sub-entry is + indicated with the symbol \tstidxindexmarker{tstidxsubsubmarker}. + If an \tstidxword{encap} value is provided, both the + \if@tstidx@use@encaps + \tstidxword[tstidxencapiii]{text} + \else + \tstidxword{text} + \fi + and the + \if@tstidx@use@encaps + \tstidxword[tstidxencapii]{marker} + \else + \tstidxword{marker} + \fi + are typeset in the \tstidxword{argument} of the corresponding +command. + (The text occurring in the document is also typeset within the +argument of + \tstidxcs{tstidxtext}. The default value is to use a dark grey, but +since the + default values for the \tstidxword{predefined} encaps used in this +text all + change the colour, the dark grey will only apply where the encap +hasn't + been set.) There are three \tstidxword{encap} values used +throughout this + \tstidxphrase{dummy text} (unless you've used the + \tstidxstyopt{testidx}{notestencaps} package option): + \if@tstidx@use@encaps + \tstidxencapcsn[tstidxencapi]{tstidxencapi}, + \else + \tstidxencapcsn{tstidxencapi}, + \fi + \if@tstidx@use@encaps + \tstidxencapcsn[tstidxencapii]{tstidxencapii} + \else + \tstidxencapcsn{tstidxencapii} + \fi + and + \if@tstidx@use@encaps + \tstidxencapcsn[tstidxencapiii]{tstidxencapiii}. + \else + \tstidxencapcsn{tstidxencapiii}. + \fi + (The default values use \tstidxcs{textcolor}, so you might want to +use the + \tstidxstyopt{hyperref}{hidelinks} option + if you want to use the \tstidxsty{hyperref} package.) + If you use the \tstidxstyopt{testidx-glossaries}{noseekey} package option, a + cross-referenced entry (using \tstidxcs{glssee}\if@tstidx@hasseealsokey + \ or \tstidxcs{glsxtrindexseealso}\fi) is identified + using the \tstidxword{marker} \tstidxindexmarker{tstidxseemarker} + and the cross-referenced information is displayed as + a \tstidxphrase{marginal note} by default, with the term being indexed + followed by the \tstidxword{cross-reference}. + For example, + \tstidxword{lyuk}\tstindexsee{lyuk}{seealso}{digraph} has + the marker \tstidxmarker\ to show that the word \tstidxqt{lyuk} was + indexed. If the +\tstidxstyopt{testidx-glossaries}{noseekey} package option is set, + this is followed by the marker \tstidxseemarker\ to show that + a cross-reference to \tstidxword{digraph} has also been indexed (with the details shown in + the margin). + \if@tstidx@useglsseekey + This document has used the \tstidxstyopt{testidx-glossaries}{seekey} package option, + which means that \tstidxcs{glssee} + \if@tstidx@hasseealsokey + and \tstidxcs{glsxtrindexseealso} aren't + \else + isn't + \fi + used in the \tstidxphrase{dummy text}. + Instead the \tstidxqt{see} + \if@tstidx@hasseealsokey + and \tstidxqt{seealso} keys provided in the entry definition were + \else + key provided in the entry definition was + \fi + used to perform the \tstidxword{cross-reference} at the time the entry was + defined, and so no markers or marginal notes are displayed. + \else + This document has used the \tstidxstyopt{testidx-glossaries}{noseekey} package option. This option ignores the \tstidxqt{see} + \if@tstidx@hasseealsokey + and \tstidxqt{seealso} keys + \else + key + \fi + within the entry definitions for testing purposes. If you use the + \tstidxstyopt{testidx-glossaries}{seekey} + package option instead, the \tstidxqt{see} + \if@tstidx@hasseealsokey + and \tstidxqt{seealso} keys will + be used when defining the entries with cross-references instead of + using \tstidxcs{glssee} and \tstidxcs{glsxtrindexseealso}. + \else + key will be used when defining the entries with cross-references instead of + using \tstidxcs{glssee}. + \fi + No markers will appear in that case as the + cross-referencing will be performed when the entry is defined in + the preamble. + \fi + A sub-level \tstidxword{cross-reference} is identified with the + \tstidxword{marker} \tstidxindexmarker{tstidxsubseemarker} and the + marginal note displays the main term followed by the sub-term (separated by the + symbol \tstidxsubseesep). The \tstidxword{marker} used for the start of + a range is \tstidxindexmarker{tstidxopenmarker} and the + \tstidxword{marker} used for the end of + a range is \tstidxindexmarker{tstidxclosemarker} + unless the entry is a sub-level, in which case the + \tstidxword{marker} for the start of the range is + \tstidxindexmarker{tstidxopensubmarker} + and the \tstidxword{marker} used for the end of a range is + \tstidxindexmarker{tstidxclosesubmarker}, or for a sub-sub-level +\tstidxindexmarker{tstidxopensubsubmarker} and + \tstidxindexmarker{tstidxclosesubsubmarker}. There are no tests for + any further sub-levels. Although \tstidxapp{xindy} allows more than + three levels (\tstidxapp{makeindex} doesn't), it's somewhat + \tstidxword{excessive} to go below a sub-sub-level. + You'll have to add your own tests for anything deeper.% + +} +\let\@tidx@org@par@iii\@tidx@par@iii +\let\@tidx@par@iii\@tidx@gls@par@iii +\newcommand*{\@tidx@gls@par@iv}{% + Here's an \tstidxword{example} of the start of a +\tstidxopenword{range} but + remember that a range must also have an end, so make sure that + \tstidxword{block}~\@tidx@closerangepar\ has been included in this + \if@tstidx@use@encaps + \tstidxphrase[tstidxencapiii]{dummy text}, + \else + \tstidxphrase{dummy text}, + \fi + which closes this + \tstidxword{example}. + When the \tstidxstyopt{testidx}{verbose} option is used with just + \tstidxsty{testidx}, the indexing information + will show the \tstidxword{argument} being passed to + \tstidxcs{tstindex} (which will cause \tstidxphrase{overfull lines}). + Since the \tstidxsty{testidx-glossaries} package doesn't use + \tstidxcs{tstindex}, the \tstidxstyopt{testidx-glossaries}{verbose} package + option will instead write information to the transcript file showing the + label, name field, sort field, text field, parent field and see field for each + entry as it's defined. (The parent and see fields may be empty). + If the \tstidxstyopt{testidx-glossaries}{tex} package option is + used, the sorting may take a long time (since \TeX\ is being used + to sort the entries). In this case, the + \tstidxstyopt{testidx-glossaries}{verbose} package + option will also write information while it's sorting the entries, + so that you know \TeX\ is still doing something and hasn't got stuck. + This document has the + \iftestidxverbose + \tstidxstyopt{testidx-glossaries}{verbose} package + \else + \tstidxstyopt{testidx-glossaries}{noverbose} package + \fi + option set.% +} +\let\@tidx@org@par@iv\@tidx@par@iv +\let\@tidx@par@iv\@tidx@gls@par@iv +\newcommand*{\@tidx@gls@par@vi}{% + On the subject of \tstidxapp{xindy}, if you want to use it with + this \tstidxword{example} document, you'll need to add the + \tstidxword{encap} values used in this \tstidxphrase{dummy text} + as allowed attributes. (Don't forget you'll also need the + \tstidxstyopt{testidx-glossaries}{xindy} package option when you + load \tstidxsty{testidx-glossaries}.) With the \tstidxsty{glossaries} package, + this means using \tstidxcs{GlsAddXdyAttribute} with the + encap name as the argument. For example + \begin{flushleft}\ttfamily + \string\GlsAddXdyAttribute\expandafter\@gobble\string\{tstidxencapi\expandafter\@gobble\string\}\endgraf + \string\GlsAddXdyAttribute\expandafter\@gobble\string\{tstidxencapii\expandafter\@gobble\string\}\endgraf + \string\GlsAddXdyAttribute\expandafter\@gobble\string\{tstidxencapiii\expandafter\@gobble\string\} + \end{flushleft} + This sets up allowed encap values and how they should be formatted. + The ordering of the allowed \tstidxword{attributes} here gives the + \tstidxencapcsn{tstidxencapi} encap precedence in the + event of a \tstidxphrase{multiple encaps} clash, since it's the + first one in the list. + Check out the difference between using \tstidxapp{xindy} and + \tstidxapp{makeindex} on this document. Also check the difference + between using \tstidxapp{makeglossaries} and + \tstidxapp{makeglossaries-lite} to build this document. + The \tstidxsubword{location list}{page separator} is given by + \tstidxcs{delimN}, and the + \tstidxsubword{location list}{range separator}% + \tstindexsee{range separator}{see}{location list} is given by + \tstidxcs{delimR}. + On the subject of location lists, the word + \tstidxword{passim} (meaning \tstidxqt{here and there}) is + sometimes used to tidy up ragged lists. For example, + the locations \tstidxqt{1, 3, 4, 6, 7} may look neater as + \tstidxqt{1-7 passim}, which indicates references are scattered (here + and there) throughout that range. + The \tstidxapp{bib2gls} application may be used with the + \tstidxsty{glossaries-extra} package instead of + \tstidxapp{makeindex} or \tstidxapp{xindy}. Use the + \tstidxstyopt{testidx-glossaries}{bib2gls} package option to set up + this dummy text to use it. Note that this option doesn't make use + of the prefix commands \tstidxcs{tstidxindexmarkerprefix} or + \tstidxcs{tstidxindexmathsymprefix}. The + \tstidxstyopt{testidx}{prefix} package option will instead alter + the way the bib files are loaded to produce a similar grouping.% +} +\let\@tidx@org@par@vi\@tidx@par@vi +\let\@tidx@par@vi\@tidx@gls@par@vi +\newcommand{\@tidx@gls@sanitizenote}{% + \space You currently have the + \@tstidx@ifsanitize + {\tstidxstyopt{testidx-glossaries}{sanitize} option on. + This means that the words containing \tstidxword{UTF-8} characters will + first be sanitized before being passed to \tstidxcs{tstindex}, which + will allow you to test how well the \tstidxphrase{indexing application} + sorts \tstidxword{UTF-8} characters. If you'd rather test how + \tstidxcs{index} writes these characters to the file read by the + indexing application, use the \tstidxstyopt{testidx-glossaries}{nosanitize} + option instead. This may cause the \tstidxword{UTF-8} characters to be + written in terms of \tstidxcs{IeC}. + }% + {\tstidxstyopt{testidx-glossaries}{nosanitize} option on. + This means that the words containing \tstidxword{UTF-8} characters + may be written to the file processed by the + \tstidxphrase{indexing application} in terms of + \tstidxcs{IeC}. This allows you to test how \tstidxcs{index} behaves. + If you'd rather test how the indexing application sorts + \tstidxword{UTF-8} characters, use the + \tstidxstyopt{testidx-glossaries}{sanitize} + option instead, which will sanitize the \tstidxword{UTF-8} characters + before passing them to \tstidxcs{tstindex}. + }% + The \tstidxstyopt{testidx-glossaries}{nosanitize} option doesn't + have an effect when used with the + \tstidxstyopt{testidx-glossaries}{bib2gls} package option, since + the sort value isn't written to an external file.% +} +\let\@tidx@org@sanitizenote\@tidx@sanitizenote +\let\@tidx@sanitizenote\@tidx@gls@sanitizenote +\newcommand{\@tidx@gls@stripaccentsnote}{% + \space The \tstidxstyopt{testidx-glossaries}{stripaccents} package option will + effectively do, for example, + \texttt{sort=\char`\{elite\char`\}, + name=\char`\{\string\'elite\char`\}} + whereas the + \tstidxstyopt{testidx-glossaries}{nostripaccents} package option will + effectively do, for example, + \texttt{sort=\char`\{\string\'elite\char`\}, + name=\char`\{\string\'elite\char`\}}. These options have + no effect in UTF-8 mode.% +} +\let\@tidx@org@stripaccentsnote\@tidx@stripaccentsnote +\let\@tidx@stripaccentsnote\@tidx@gls@stripaccentsnote +\newcommand*{\@tidx@gls@scriptnote}{% + (Note how the subscripts and superscripts can be affected + by material inserted between the symbol and the sub- and + superscripts. With the \tstidxsty{glossaries} package, this can be + avoided by using the final optional argument of commands like + \tstidxcs{gls} to bring the scripts into the + \tstidxphrase{link text}, but not if the scripts also include + \tstidxcs{gls}, as the superscript does here.) +} +\let\@tidx@org@scriptnote\@tidx@scriptnote +\let\@tidx@scriptnote\@tidx@gls@scriptnote +\newcommand*{\@tidx@gls@numberlettergroup}{% + If you're using \tstidxapp{xindy}, the \tstidxqt{glsnumbers} + letter group (with the title \tstidxqt{\glsnumbersgroupname}) will + automatically be added to your \texttt{.xdy} + file unless you switch off this feature with the + \tstidxstyopt{testidx-glossaries}{noglsnumbers} package option. +} +\let\@tidx@org@numberlettergroup\@tidx@numberlettergroup +\let\@tidx@numberlettergroup\@tidx@gls@numberlettergroup +\newcommand*{\@tidx@gls@mathslettergroup}{% + \@testidx@ifusebibgls + {% + Now I've been a bit fancy here and used multiple bib files + to define the glossary entries. The maths symbols are defined in + their own separate bib file. + \iftestidxprefix + This document has used the \tstidxstyopt{testidx}{prefix} package + option, which means that \tstidxcs{tstidxmakegloss} is defined to + perform separate sorts for each resource block, which enables the + maths symbols to appear in their own group. + \else + This document has used the \tstidxstyopt{testidx}{noprefix} package + option, which means that \tstidxcs{tstidxmakegloss} is defined to + sort the maths symbols together with the main entries. If you + use the \tstidxstyopt{testidx}{prefix} package instead, the maths + symbols will be sorted separately and placed in their own group. + \fi + If you haven't used \tstidxcs{tstidxmakegloss} then the above + won't apply. If you don't use the + \tstidxstyopt{testidx-glossaries}{bib2gls} package option, then + the \tstidxstyopt{testidx}{prefix} package will instead insert + \texttt{\tstidxmathsymprefix} in front of + the sort key so I can get \tstidxapp{xindy} to create a special + group for the maths symbols. Here's + }% + {% + \iftestidxprefix + Now I've been a bit fancy here and inserted + \texttt{\tstidxmathsymprefix} in front of + the sort key so I can get \tstidxapp{xindy} to create a special + group for the maths symbols. Here's + \else + This document has used the \tstidxstyopt{testidx}{noprefix} + package option, which has switched of the sort prefixes. + If you use the \tstidxstyopt{testidx}{prefix} option I can be a + bit fancy here and insert + \texttt{\tstidxmathsymprefix} in front of + the sort key so I can get \tstidxapp{xindy} to create a special + group for the maths symbols. When you switch on the prefixes here's + \fi + }% +the code you can add to your document to implement it: +\begin{flushleft}\ttfamily +\string\GlsAddLetterGroup\glsopenbrace Maths\glsclosebrace\glsopenbrace + \string:prefixes (\string"\tstidxmathsymprefix\string") + \string:before \string"glsnumbers\string"\glsclosebrace +\end{flushleft} +} +\let\@tidx@org@mathslettergroup\@tidx@mathslettergroup +\let\@tidx@mathslettergroup\@tidx@gls@mathslettergroup +\endinput +%% +%% End of file `testidx-glossaries.sty'. |