%% %% This is file `glossaries-extra-bib2gls.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% glossaries-extra.dtx (with options: `glossaries-extra-bib2gls.sty,package') %% %% glossaries-extra.dtx %% Copyright 2023 Nicola Talbot %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 %% of this license or (at your option) any later version. %% The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.3 or later is part of all distributions of LaTeX %% version 2005/12/01 or later. %% %% This work has the LPPL maintenance status `maintained'. %% %% The Current Maintainer of this work is Nicola Talbot. %% %% This work consists of the files glossaries-extra.dtx and glossaries-extra.ins and the derived files glossaries-extra.sty, glossaries-extra-abbrstyles.def, glossaries-extra-bib2gls.sty, glossaries-extra-stylemods.sty, glossary-bookindex.sty, glossary-longextra.sty, glossary-topic.sty, glossary-table.sty, example-glossaries-xr.tex, example-glossaries-acronym-desc.bib, example-glossaries-acronym.bib, example-glossaries-acronyms-lang.bib, example-glossaries-brief.bib, example-glossaries-childmultipar.bib, example-glossaries-childnoname.bib, example-glossaries-cite.bib, example-glossaries-images.bib, example-glossaries-long.bib, example-glossaries-longchild.bib, example-glossaries-multipar.bib, example-glossaries-parent.bib, example-glossaries-symbolnames.bib, example-glossaries-symbols.bib, example-glossaries-url.bib, example-glossaries-user.bib, example-glossaries-utf8.bib, example-glossaries-xr.bib, glossaries-extra-2021-11-22.sty, glossaries-extra-bib2gls-2021-11-22.sty, glossaries-extra-stylemods-2021-11-22.sty, glossary-bookindex-2021-11-22.sty, glossary-longextra-2021-11-22.sty, glossary-topic-2021-11-22.sty. %% %% \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} \DeclareRelease{v1.48}{2021-11-22}{glossaries-extra-bib2gls-2021-11-22.sty} \DeclareCurrentRelease{v1.53}{2023-09-29} \ProvidesPackage{glossaries-extra-bib2gls}[2023/09/29 v1.53 (NLCT)] \ifglsacronym \providecommand*{\printunsrtacronyms}[1][]{% \printunsrtglossary[type=\acronymtype,#1]}% \fi \ifglossaryexists{index} { \providecommand*{\printunsrtindex}[1][]{% \printunsrtglossary[type=index,#1]}% }{} \ifglossaryexists{symbols} { \providecommand*{\printunsrtsymbols}[1][]{% \printunsrtglossary[type=symbols,#1]}% }{} \ifglossaryexists{numbers} { \providecommand*{\printunsrtnumbers}[1][]{% \printunsrtglossary[type=numbers,#1]}% }{} \ifglossaryexists{abbreviations} { \providecommand*{\printunsrtabbreviations}[1][]{% \printunsrtglossary[type=abbreviations,#1]}% }{} \renewcommand*{\glsdisplaynumberlist}[1]{% \glsdoifexists{#1}% {% {\let\bibglsdelimN\glsnumlistsep \let\bibglslastDelimN\glsnumlistlastsep \glsxtrusefield{#1}{location}% }% }% } \robustify\glsdisplaynumberlist \renewcommand*{\glsentrynumberlist}[1]{\glsxtrusefield{#1}{location}} \providecommand{\IfTeXParserLib}[2]{#2} \newcommand*{\glshex}{\string\u} \newcommand*{\glscapturedgroup}{\string\$} \ifdef\glshashchar {} {\edef\glshashchar{\expandafter\@gobble\string\#}} \newcommand*{\GlsXtrResourceInitEscSequences}{% \def\u{\string\u}% \def\.{\string\.}% \def\\{\string\\}% \def\/{\string\/}% \def\|{\string\|}% \def\&{\string\&}% \def\+{\string\+}% \def\<{\string\<}% \def\>{\string\>}% \def\*{\string\*}% \def\${\string\$}% \def\^{\string\^}% \def\~{\string\~}% \def\({\string\(}% \def\){\string\)}% \def\[{\string\[}% \def\]{\string\]}% \def\"{\string\"}% \def\-{\string\-}% \def\?{\string\?}% \def\#{\string\#}% \def\:{\string\:}% \def\cs##1{\glsbackslash##1}% \def\CS{\string\CS}% \def\NULL{\string\NULL\space}% \def\IN{\string\IN\space}% \def\NIN{\string\NIN\space}% \def\PREFIXOF{\string\PREFIXOF\space}% \def\NOTPREFIXOF{\string\NOTPREFIXOF\space}% \def\SUFFIXOF{\string\SUFFIXOF\space}% \def\NOTSUFFIXOF{\string\NOTSUFFIXOF\space}% \def\LC{\string\LC}% \def\UC{\string\UC}% \def\FIRSTLC{\string\FIRSTLC}% \def\FIRSTUC{\string\FIRSTUC}% \def\TITLE{\string\TITLE}% \def\MGP{\string\MGP}% \def\LEN{\string\LEN}% \def\TRIM{\string\TRIM}% \def\INTERPRET{\string\INTERPRET}% \def\LABELIFY{\string\LABELIFY}% \def\LABELIFYLIST{\string\LABELIFYLIST}% \def\CAT{\string\CAT}% } \newcommand*{\GlsXtrIfHasNonZeroChildCount}{% \@ifstar\s@GlsXtrIfHasNonZeroChildCount\@GlsXtrIfHasNonZeroChildCount } \newcommand*{\@GlsXtrIfHasNonZeroChildCount}[3]{% \@GlsXtrIfFieldNonZero{childcount}{#1}{#2}{#3}% } \newcommand*{\s@GlsXtrIfHasNonZeroChildCount}[3]{% \s@GlsXtrIfFieldNonZero{childcount}{#1}{#2}{#3}% } \newcommand*{\glsxtrprovidecommand}{\providecommand} \newcommand*{\glsrenewcommand}{\@star@or@long\glsxtr@renewcommand} \newcommand*{\glsxtr@renewcommand}[1]{% \begingroup \escapechar\m@ne\xdef\@gtempa{{\string#1}}\endgroup \expandafter\@ifundefined\@gtempa {% \GlossariesExtraWarning{can't redefine \noexpand#1(not already defined)}% }% \relax \relax \let\@ifdefinable\@rc@ifdefinable \new@command#1% } \newcommand*{\glsxtr@wrglossarylocation}[2]{#1} \ifdef\hyperref {% \newcommand*{\GlsXtrIndexCounterLink}[2]{% \glsxtrifhasfield{indexcounter}{#2}% {\hyperref[wrglossary.\glscurrentfieldvalue]{#1}}% {#1}% } } { \newcommand*{\GlsXtrIndexCounterLink}[2]{#1} } \newcommand*{\GlsXtrDualField}{dual} \newcommand*{\GlsXtrDualBackLink}[2]{% \glsxtrifhasfield{\GlsXtrDualField}{#2}% {\glshyperlink[#1]{\glscurrentfieldvalue}}% {#1}% } \newcommand*{\GlsXtrBibTeXEntryAliases}{% article=bibtexentry, book=bibtexentry, booklet=bibtexentry, conference=bibtexentry, inbook=bibtexentry, incollection=bibtexentry, inproceedings=bibtexentry, manual=bibtexentry, mastersthesis=bibtexentry, misc=bibtexentry, phdthesis=bibtexentry, proceedings=bibtexentry, techreport=bibtexentry, unpublished=bibtexentry } \newcommand*{\GlsXtrProvideBibTeXFields}{% \glsaddstoragekey{address}{}{\glsxtrbibaddress}% \glsaddstoragekey{author}{}{\glsxtrbibauthor}% \glsaddstoragekey{booktitle}{}{\glsxtrbibbooktitle}% \glsaddstoragekey{chapter}{}{\glsxtrbibchapter}% \glsaddstoragekey{edition}{}{\glsxtrbibedition}% \glsaddstoragekey{howpublished}{}{\glsxtrbibhowpublished}% \glsaddstoragekey{institution}{}{\glsxtrbibinstitution}% \glsaddstoragekey{journal}{}{\glsxtrbibjournal}% \glsaddstoragekey{month}{}{\glsxtrbibmonth}% \glsaddstoragekey{note}{}{\glsxtrbibnote}% \glsaddstoragekey{number}{}{\glsxtrbibnumber}% \glsaddstoragekey{organization}{}{\glsxtrbiborganization}% \glsaddstoragekey{pages}{}{\glsxtrbibpages}% \glsaddstoragekey{publisher}{}{\glsxtrbibpublisher}% \glsaddstoragekey{school}{}{\glsxtrbibschool}% \glsaddstoragekey{series}{}{\glsxtrbibseries}% \glsaddstoragekey{title}{}{\glsxtrbibtitle}% \glsaddstoragekey{bibtextype}{}{\glsxtrbibtype}% \glsaddstoragekey{volume}{}{\glsxtrbibvolume}% } \newcommand*{\glsxtrmultisupplocation}[3]{% {% \def\glsxtrsupplocationurl{#2}% \glshypernumber{#1}% }% } \newcommand*\glsxtrdisplaysupploc[5]{% \setentrycounter[#1]{#2}% \glsxtrmultisupplocation{#5}{#4}{#3}% } \ifundef\hyperlink { \newcommand*{\glsxtrdisplaylocnameref}[8]{% \glsnoidxdisplayloc{#1}{#2}{#3}{#4}% } } { \newcommand*{\glsxtrdisplaylocnameref}[8]{% \def\glsxtrrecentanchor{#6}% \def\glsxtrlocationanchor{#2.#7}% \let\glsxtractualanchor\glsxtrlocationanchor \glsxtrsetactualanchor{#2}% \ifcsdef{glsxtr#2locfmt}% {\glsxtrnamereflink{#3}{\csuse{glsxtr#2locfmt}{#4}{#5}}{\glsxtractualanchor}{#8}}% {% \ifstrempty{#5}% {% \glsxtrnamereflink{#3}{#4}{\glsxtractualanchor}{#8}% }% {% \ifstrequal{#2}{page}% {\glsxtrnamereflink{#3}{#4}{\glsxtractualanchor}{#8}}% {\glsxtrtitlednamereflink{#3}{#4}{#5}{#8}}% }% }% } } \newcommand{\glsxtrsetactualanchor}[1]{} \newcommand{\glsxtrtitlednamereflink}[4]{% \glsxtrnamereflink{#1}{#2}{\glsxtrrecentanchor}{#4}% } \newcommand*{\glsxtrequationlocfmt}[2]{(#1)} \newcommand*{\glsxtrwrglossarylocfmt}[2]{% {\@@glsxtrwrglosscountermark{#1}% \let\glsxtr@wrglossarylocation\@secondoftwo #1}% } \newcommand*{\glsxtrnamereflink}[4]{% \begingroup \let\glshypernumber\@firstofone \ifstrempty{#4}% {\glsxtrfmtinternalnameref{#3}{#1}{#2}}% {\glsxtrfmtexternalnameref{#3}{#1}{#2}{#4}}% \endgroup } \newcommand{\glsxtrnameloclink}[6]{% \begingroup \setentrycounter[#1]{#2}% \def\glsxtr@locationhypertext{#5}% \let\glshypernumber\@firstofone \def\@glsnumberformat{#3}% \def\glsxtrsupplocationurl{#6}% \toks@={}% \@glsxtr@bibgls@removespaces#4 \@nil \endgroup } \def\@glsxtr@bibgls@removespaces#1 #2\@nil{% \toks@=\expandafter{\the\toks@#1}% \ifx\\#2\\% \edef\@glo@tmp{\the\toks@}% \ifx\@glo@tmp\empty \else \protected@edef\@glo@tmp{\glsentrycounter\@glo@counterprefix\the\toks@}% \ifdefvoid\glsxtrsupplocationurl {% \expandafter\glsxtrfmtinternalnameref\expandafter{\@glo@tmp}% {\@glsnumberformat}{\glsxtr@locationhypertext}% }% {% \expandafter\glsxtrfmtexternalnameref\expandafter{\@glo@tmp}% {\@glsnumberformat}{\glsxtr@locationhypertext}{\glsxtrsupplocationurl}% }% \fi \else \@gls@ReturnAfterFi{% \@glsxtr@bibgls@removespaces#2\@nil }% \fi } \newcommand*{\glsxtrfmtinternalnameref}[3]{% \csuse{#2}{\glsdohyperlink{#1}{#3}}% } \newcommand*{\glsxtrfmtexternalnameref}[4]{% \csuse{#2}{\hyperref{#4}{}{#1}{#3}}% } \newcommand*{\glsxtrSetWidest}[3]{% \ifdef\glsupdatewidest {% \ifdef\glslongextraUpdateWidest {% \ifstrempty{#1} {% \glsupdatewidest[#2]{#3}% \ifnum#2=0\relax \glslongextraUpdateWidest{#3}% \else \glslongextraUpdateWidestChild{#2}{#3}% \fi }% {% \apptoglossarypreamble[#1]{\glsupdatewidest[#2]{#3}}% \ifnum#2=0\relax \apptoglossarypreamble[#1]{\glslongextraUpdateWidest{#3}}% \else \apptoglossarypreamble[#1]{\glslongextraUpdateWidestChild{#2}{#3}}% \fi }% }% {% \ifstrempty{#1} {% \glsupdatewidest[#2]{#3}% }% {% \apptoglossarypreamble[#1]{\glsupdatewidest[#2]{#3}}% }% }% }% {% \ifdef\glssetwidest {% \ifdef\glslongextraUpdateWidest {% \ifstrempty{#1} {% \glssetwidest[#2]{#3}% \ifnum#2=0\relax \glslongextraUpdateWidest{#3}% \else \glslongextraUpdateWidestChild{#2}{#3}% \fi }% {% \apptoglossarypreamble[#1]{\glssetwidest[#2]{#3}}% \ifnum#2=0\relax \apptoglossarypreamble[#1]{\glslongextraUpdateWidest{#3}}% \else \apptoglossarypreamble[#1]{\glslongextraUpdateWidestChild{#2}{#3}}% \fi }% }% {% \ifstrempty{#1} {% \glssetwidest[#2]{#3}% }% {% \apptoglossarypreamble[#1]{\glssetwidest[#2]{#3}}% }% }% }% {% \ifdef\glslongextraUpdateWidest {% \ifstrempty{#1} {% \ifnum#2=0\relax \glslongextraUpdateWidest{#3}% \else \glslongextraUpdateWidestChild{#2}{#3}% \fi }% {% \ifnum#2=0\relax \apptoglossarypreamble[#1]{\glslongextraUpdateWidest{#3}}% \else \apptoglossarypreamble[#1]{\glslongextraUpdateWidestChild{#2}{#3}}% \fi }% }% {}% }% }% } \newcommand*{\glsxtrSetWidestFallback}[2]{% \ifnum#1=0\relax \ifdef\glsFindWidestTopLevelName {% \glsFindWidestTopLevelName[#2]% }% {% \GlossariesExtraWarning{You need stylemods={tree} to provide a fallback for set-widest}% }% \else \ifdef\glsFindWidestLevelTwo {% \glsFindWidestLevelTwo[#2]% \ifdef\glslongextraUpdateWidestChild {% \glslongextraUpdateWidestChild{#1}{\csuse{@glswidestnamei}}% \glslongextraUpdateWidestChild{#1}{\csuse{@glswidestnameii}}% }% {}% }% {% \GlossariesExtraWarning{You need stylemods={tree} to provide a fallback for set-widest}% }% \fi } \newcommand*{\@glsxtr@labelprefixes}{} \newcommand*{\glsxtrclearlabelprefixes}{% \renewcommand*{\@glsxtr@labelprefixes}{}% } \newcommand*{\glsxtraddlabelprefix}[1]{% \ifstrempty{#1}% {\glsxtraddlabelprefix{\empty}}% {% \ifdefempty\@glsxtr@labelprefixes {\def\@glsxtr@labelprefixes{#1}}% {\appto\@glsxtr@labelprefixes{,#1}}% }% } \newcommand*{\glsxtrprependlabelprefix}[1]{% \ifstrempty{#1}% {\glsxtrprependlabelprefix{\empty}}% {% \ifdefempty\@glsxtr@labelprefixes {\def\@glsxtr@labelprefixes{#1}}% {\preto\@glsxtr@labelprefixes{#1,}}% }% } \newcommand*{\glsxtrifinlabelprefixlist}[3]{% \ifstrempty{#1}% {\glsxtrifinlabelprefixlist{\empty}{#2}{#3}}% {% \DTLifinlist{#1}{\@glsxtr@labelprefixes}{#2}{#3}% }% } \AtBeginDocument{% \protected@write\@auxout{}{\string\providecommand{\string\@glsxtr@prefixlabellist}[1]{}}% \protected@write\@auxout{}{\string\@glsxtr@prefixlabellist{\@glsxtr@labelprefixes}}% } \def\@glsxtr@dglsnomatch#1#2[#3]{% \begingroup \let\glslabel\@gls@thislabel \let\@glsnumberformat\@glsxtr@defaultnumberformat \def\@glsxtr@thevalue{}% \def\@glsxtr@theHvalue{\@glsxtr@thevalue}% \let\@glsxtr@org@theHvalue\@glsxtr@theHvalue \let\@gls@counter\glscounter \if@glsxtr@equations \@glsxtr@use@equation@counter \fi \@gls@setdefault@glslink@opts \@glsxtr@glslink@prekeys \setkeys{glslink}{#1}% \glsxtr@do@autoadd{glslink}% \ifKV@glslink@noindex \GlossariesExtraWarning{Can't obtain a match for prefix candidates: \@glsxtr@prefixedlist. Check the label spelling or rerun}% \else \ifdefempty{\@glsxtr@thevalue}% {% \ifx\@glsxtr@org@theHvalue\@glsxtr@theHvalue \else \let\theHglsentrycounter\@glsxtr@theHvalue \fi }% {% \let\theglsentrycounter\@glsxtr@thevalue \let\theHglsentrycounter\@glsxtr@theHvalue }% \glsxtr@saveentrycounter \@@glsxtr@dorecord\@glsxtr@prefixedlist \glsxtr@select@entry\glsxtr@do@select@nameref@record \GlossariesExtraWarning{Can't obtain a match for prefix candidates: \@glsxtr@prefixedlist. Check the label spelling, use bib2gls v3.0+ to select entry and rerun LaTeX}% \fi \@glsxtrundeftag#3% \endgroup } \newcommand*{\glsxtr@select@entry}[5]{} \newcommand*{\glsxtr@select@entry@nameref}[8]{} \newcommand*{\glsxtr@do@select@nameref@record}[5]{% \gls@ifnotmeasuring {% \protected@write\@auxout{}{\string\glsxtr@select@entry@nameref {#1}{#2}{#3}{#4}{#5}% {\csuse{@currentlabelname}}{\csuse{@currentHref}}% {\theHglsentrycounter}}% }% } \newif\ifGlsXtrPrefixLabelFallbackLast \GlsXtrPrefixLabelFallbackLasttrue \newcommand*{\@glsxtr@get@prefixedlabel}[1]{% \begingroup \protected@edef\@gls@thislabel{#1}% \let\@glsxtr@prefixedfirstlabel\@gls@thislabel \def\@glsxtr@set@prefixedfirstlabel{% \let\@glsxtr@prefixedfirstlabel\@gls@thislabel \let\@glsxtr@set@prefixedfirstlabel\relax }% \let\@glsxtr@prefixedlist\@empty \count@=0\relax \@for\@glsxtr@prefix:=\@glsxtr@labelprefixes\do {% \advance\count@ by 1\relax \protected@edef\@gls@thislabel{\@glsxtr@prefix#1}% \@glsxtr@set@prefixedfirstlabel \ifglsentryexists{\@gls@thislabel}% {% \@endfortrue \let\@glsxtr@prefixedlist\@empty }% {% \ifdefempty\@glsxtr@prefixedlist {\let\@glsxtr@prefixedlist\@gls@thislabel}% {% \ifGlsXtrPrefixLabelFallbackLast \epreto\@glsxtr@prefixedlist{\expandonce\@gls@thislabel,}% \else \eappto\@glsxtr@prefixedlist{,\expandonce\@gls@thislabel}% \fi }% }% }% \if@endfor \else \ifnum\count@>1\relax \ifGlsXtrPrefixLabelFallbackLast \else \let\@gls@thislabel\@glsxtr@prefixedfirstlabel \fi \else \let\@glsxtr@prefixedlist\@empty \fi \fi \edef\@glo@tmp{\endgroup \noexpand\def\noexpand\@glsxtr@prefixedlist{\expandonce\@glsxtr@prefixedlist}% \noexpand\def\noexpand\@gls@thislabel{\expandonce\@gls@thislabel}}\@glo@tmp } \newcommand*{\@@dgls@}[3]{% \@glsxtr@get@prefixedlabel{#2}% \ifx\@glsxtr@prefixedlist\@empty \let\@dgls@@next#3% \else \let\@dgls@@next\@glsxtr@dglsnomatch \fi \new@ifnextchar[{\@dgls@@next{#1}{\@gls@thislabel}}% {\@dgls@@next{#1}{\@gls@thislabel}[]}% } \newrobustcmd*{\dgls}{\@gls@hyp@opt\@dgls} \newcommand*{\@dgls}[2][]{\@@dgls@{#1}{#2}{\@gls@}} \newrobustcmd*{\dglspl}{\@gls@hyp@opt\@dglspl} \newcommand*{\@dglspl}[2][]{\@@dgls@{#1}{#2}{\@glspl@}} \newrobustcmd*{\dGls}{\@gls@hyp@opt\@dGls} \glsmfuaddmap{\dgls}{\dGls} \newcommand*{\@dGls}[2][]{\@@dgls@{#1}{#2}{\@Gls@}} \newrobustcmd*{\dGlspl}{\@gls@hyp@opt\@dGlspl} \glsmfuaddmap{\dglspl}{\dGlspl} \newcommand*{\@dGlspl}[2][]{\@@dgls@{#1}{#2}{\@Glspl@}} \newrobustcmd*{\dGLS}{\@gls@hyp@opt\@dGLS} \glsmfublocker{\dGLS} \newcommand*{\@dGLS}[2][]{\@@dgls@{#1}{#2}{\@GLS@}} \newrobustcmd*{\dGLSpl}{\@gls@hyp@opt\@dGLSpl} \glsmfublocker{\dGLSpl} \newcommand*{\@dGLSpl}[2][]{\@@dgls@{#1}{#2}{\@GLSpl@}} \newrobustcmd*{\dglslink}{\@gls@hyp@opt\@dglslink} \newcommand*{\@dglslink}[3][]{% \@glsxtr@get@prefixedlabel{#2}% \glslink[#1]{\@gls@thislabel}{#3}% } \newrobustcmd*{\dGlslink}{\@gls@hyp@opt\@dGlslink} \glsmfuaddmap{\dglslink}{\dGlslink} \newcommand*{\@dGlslink}[3][]{% \dglslink[#1]{#2}{\glssentencecase{#3}}% } \newrobustcmd*{\dglsdisp}{\@gls@hyp@opt\@dglsdisp} \newcommand*{\@dglsdisp}[3][]{% \@glsxtr@get@prefixedlabel{#2}% \glsdisp[#1]{\@gls@thislabel}{#3}% } \newrobustcmd*{\dGlsdisp}{\@gls@hyp@opt\@dGlsdisp} \glsmfuaddmap{\dglsdisp}{\dGlsdisp} \newcommand*{\@dGlsdisp}[3][]{% \dglsdisp[#1]{#2}{\glssentencecase{#3}}% } \newcommand*{\@glsxtr@get@prefixedlabel@field}[2]{% \protected@edef\dglsfieldcurrentfieldlabel{#2}% \let\dglsfieldactualfieldlabel\dglsfieldcurrentfieldlabel \begingroup \protected@edef\@gls@thislabel{#1}% \let\@glsxtr@prefixedfirstlabel\@gls@thislabel \def\@glsxtr@set@prefixedfirstlabel{% \let\@glsxtr@prefixedfirstlabel\@gls@thislabel \let\@glsxtr@set@prefixedfirstlabel\relax }% \let\@gls@fallbacklabel\relax \let\@glsxtr@prefixedlist\@empty \count@=0\relax \@for\@glsxtr@prefix:=\@glsxtr@labelprefixes\do {% \advance\count@ by 1\relax \protected@edef\@gls@thislabel{\@glsxtr@prefix#1}% \@glsxtr@set@prefixedfirstlabel \ifglsentryexists{\@gls@thislabel}% {% \ifcsvoid{glo@\glsdetoklabel{\@gls@thislabel}@#2}% {% \ifx\@gls@fallbacklabel\relax \ifcsvoid {glo@\glsdetoklabel{\@gls@thislabel}@\dglsfieldfallbackfieldlabel}% {% \GlossariesExtraInfo{Found entry `\@gls@thislabel' that matches prefix `\@glsxtr@prefix' but field `#2' not set and fallback field `\dglsfieldfallbackfieldlabel' not set}% }% {% \let\@gls@fallbacklabel\@gls@thislabel \GlossariesExtraInfo{Found entry `\@gls@thislabel' that matches prefix `\@glsxtr@prefix' but field `#2' not set. Fallback field `\dglsfieldfallbackfieldlabel' is set so setting fallback entry to `\@gls@fallbacklabel' with field `\dglsfieldfallbackfieldlabel'}% }% \else \GlossariesExtraInfo{Found entry `\@gls@thislabel' that matches prefix `\@glsxtr@prefix' but field `#2' not set. Fallback entry: `\@gls@fallbacklabel'}% \fi \ifdefempty\@glsxtr@prefixedlist {\let\@glsxtr@prefixedlist\@gls@thislabel}% {% \ifGlsXtrPrefixLabelFallbackLast \epreto\@glsxtr@prefixedlist{\expandonce\@gls@thislabel,}% \else \eappto\@glsxtr@prefixedlist{,\expandonce\@gls@thislabel}% \fi }% }% {% \@endfortrue \let\@glsxtr@prefixedlist\@empty }% }% {% \ifdefempty\@glsxtr@prefixedlist {\let\@glsxtr@prefixedlist\@gls@thislabel}% {% \ifGlsXtrPrefixLabelFallbackLast \epreto\@glsxtr@prefixedlist{\expandonce\@gls@thislabel,}% \else \eappto\@glsxtr@prefixedlist{,\expandonce\@gls@thislabel}% \fi }% }% }% \if@endfor \else \ifx\@gls@fallbacklabel\relax \GlossariesExtraWarning{No fallback found for `#1'}% \ifnum\count@>1\relax \ifGlsXtrPrefixLabelFallbackLast \else \let\@gls@thislabel\@glsxtr@prefixedfirstlabel \fi \else \let\@glsxtr@prefixedlist\@empty \fi \else \let\@gls@thislabel\@gls@fallbacklabel \let\dglsfieldactualfieldlabel\dglsfieldfallbackfieldlabel \let\@glsxtr@prefixedlist\@empty \fi \fi \edef\@glo@tmp{\endgroup \noexpand\def\noexpand\@glsxtr@prefixedlist{\expandonce\@glsxtr@prefixedlist}% \noexpand\def\noexpand\@gls@thislabel{\expandonce\@gls@thislabel}% \noexpand\def\noexpand\dglsfieldactualfieldlabel {\expandonce\dglsfieldactualfieldlabel}% }% \@glo@tmp } \newcommand*{\@@dgls@@field}[4]{% \@glsxtr@get@prefixedlabel@field{#2}{#3}% \ifx\@glsxtr@prefixedlist\@empty \let\@dgls@@next#4% \else \let\@dgls@@next\@glsxtr@dglsnomatch \fi \new@ifnextchar[{\@dgls@@next{#1}{\@gls@thislabel}}% {\@dgls@@next{#1}{\@gls@thislabel}[]}% } \newcommand*{\dglsfieldcurrentfieldlabel}{} \newcommand*{\dglsfieldfallbackfieldlabel}{text} \newcommand*{\dglsfieldactualfieldlabel}{\dglsfieldcurrentfieldlabel} \newrobustcmd*{\dglsfield}{\@gls@hyp@opt\@dglsfield} \newcommand*{\@dglsfield}[3][]{% \@@dgls@@field{#1}{#2}{#3}{\@dgls@field}} \def\@dgls@field#1#2[#3]{% \@gls@field@link{#1}{#2}{\glsxtrusefield{#2}{\dglsfieldactualfieldlabel}#3}% } \newrobustcmd*{\dGlsfield}{\@gls@hyp@opt\@dGlsfield} \glsmfuaddmap{\dglsfield}{\dGlsfield} \newcommand*{\@dGlsfield}[3][]{% \@@dgls@@field{#1}{#2}{#3}{\@dGls@field}% } \def\@dGls@field#1#2[#3]{% \@gls@field@link{#1}{#2}{\Glsxtrusefield{#2}{\dglsfieldactualfieldlabel}#3}% } \newrobustcmd*{\dGLSfield}{\@gls@hyp@opt\@dGLSfield} \glsmfublocker{\dGLSfield} \newcommand*{\@dGLSfield}[3][]{% \@@dgls@@field{#1}{#2}{#3}{\@dGLS@field}% } \def\@dGLS@field#1#2[#3]{% \@gls@field@link{#1}{#2}{\GLSxtrusefield{#2}{\dglsfieldactualfieldlabel}#3}% } \newrobustcmd*{\d@inner@glsfield}[2]{% \ifstrempty{#1} {\def\@d@inner@glsfield@opts{}}% {\def\@d@inner@glsfield@opts{#1,}}% \def\dglsfieldcurrentfieldlabel{#2}% \@gls@hyp@opt\@d@inner@glsfield } \newcommand*{\@d@inner@glsfield}[2][]{% \expandafter\@@dgls@@field\expandafter {\@d@inner@glsfield@opts#1}{#2}{\dglsfieldcurrentfieldlabel}{\@dgls@field}} \newrobustcmd*{\d@inner@Glsfield}[2]{% \ifstrempty{#1} {\def\@d@inner@glsfield@opts{}}% {\def\@d@inner@glsfield@opts{#1,}}% \def\dglsfieldcurrentfieldlabel{#2}% \@gls@hyp@opt\@d@inner@Glsfield } \newcommand*{\@d@inner@Glsfield}[2][]{% \expandafter\@@dgls@@field\expandafter {\@d@inner@glsfield@opts#1}{#2}{\dglsfieldcurrentfieldlabel}{\@dGls@field}} \newrobustcmd*{\d@inner@GLSfield}[2]{% \ifstrempty{#1} {\def\@d@inner@glsfield@opts{}}% {\def\@d@inner@glsfield@opts{#1,}}% \def\dglsfieldcurrentfieldlabel{#2}% \@gls@hyp@opt\@d@inner@GLSfield } \newcommand*{\@d@inner@GLSfield}[2][]{% \expandafter\@@dgls@@field\expandafter {\@d@inner@glsfield@opts#1}{#2}{\dglsfieldcurrentfieldlabel}{\@dGLS@field}} \newrobustcmd*{\newdglsfield}[3][]{% \newrobustcmd*{#3}{\d@inner@glsfield{#1}{#2}}% } \newrobustcmd*{\newdglsfieldlike}[5][]{% \newrobustcmd*{#3}{\d@inner@glsfield{#1}{#2}}% \newrobustcmd*{#4}{\d@inner@Glsfield{#1}{#2}}% \newrobustcmd*{#5}{\d@inner@GLSfield{#1}{#2}}% \glsmfuaddmap{#3}{#4}% \glsmfublocker{#5}% } \newrobustcmd*{\glsxtrmultientryadjustedname}[4]{% \bgroup \let\@glsxtrmultientryadjustednamesep\glsxtrmultientryadjustednamesep \let\@glsxtrmultientryadjustednamepresep\glsxtrmultientryadjustednamepresep \let\@glsxtrmultientryadjustednamepostsep\glsxtrmultientryadjustednamepostsep \let\@glsxtrmultientryadjustednameother\glsxtrmultientryadjustednameother \let\@glsxtrmultientryadjustednamefmt\glsxtrmultientryadjustednamefmt \let\@glsxtrmultientryadjustednamefirstother\glsxtrmultientryadjustednameother \let\@glsxtrmultientryadjustednamefirstfmt\glsxtrmultientryadjustednamefmt \@glsxtrmultientryadjustedname{#1}{#2}{#3}{#4}% \egroup } \newrobustcmd*{\Glsxtrmultientryadjustedname}[4]{% \bgroup \let\@glsxtrmultientryadjustednamesep\glsxtrmultientryadjustednamesep \let\@glsxtrmultientryadjustednamepresep\glsxtrmultientryadjustednamepresep \let\@glsxtrmultientryadjustednamepostsep\glsxtrmultientryadjustednamepostsep \let\@glsxtrmultientryadjustednameother\glsxtrmultientryadjustednameother \let\@glsxtrmultientryadjustednamefmt\glsxtrmultientryadjustednamefmt \let\@glsxtrmultientryadjustednamefirstother\Glsxtrmultientryadjustednameother \let\@glsxtrmultientryadjustednamefirstfmt\Glsxtrmultientryadjustednamefmt \@glsxtrmultientryadjustedname{#1}{#2}{#3}{#4}% \egroup } \glsmfuaddmap{\glsxtrmultientryadjustedname}{\Glsxtrmultientryadjustedname} \newrobustcmd*{\GlsXtrmultientryadjustedname}[4]{% \bgroup \let\@glsxtrmultientryadjustednamesep\glsxtrmultientryadjustednamesep \let\@glsxtrmultientryadjustednamepresep\glsxtrmultientryadjustednamepresep \let\@glsxtrmultientryadjustednamepostsep\glsxtrmultientryadjustednamepostsep \let\@glsxtrmultientryadjustednameother\GlsXtrmultientryadjustednameother \let\@glsxtrmultientryadjustednamefmt\GlsXtrmultientryadjustednamefmt \let\@glsxtrmultientryadjustednamefirstother\GlsXtrmultientryadjustednameother \let\@glsxtrmultientryadjustednamefirstfmt\GlsXtrmultientryadjustednamefmt \@glsxtrmultientryadjustedname{#1}{#2}{#3}{#4}% \egroup } \glsmfublocker{\GlsXtrmultientryadjustedname} \newrobustcmd*{\GLSxtrmultientryadjustedname}[4]{% \bgroup \let\@glsxtrmultientryadjustednamesep\glsxtrmultientryadjustednamesep \let\@glsxtrmultientryadjustednamepresep\glsxtrmultientryadjustednamepresep \let\@glsxtrmultientryadjustednamepostsep\glsxtrmultientryadjustednamepostsep \let\@glsxtrmultientryadjustednameother\GLSxtrmultientryadjustednameother \let\@glsxtrmultientryadjustednamefmt\GLSxtrmultientryadjustednamefmt \let\@glsxtrmultientryadjustednamefirstother\GLSxtrmultientryadjustednameother \let\@glsxtrmultientryadjustednamefirstfmt\GLSxtrmultientryadjustednamefmt \@glsxtrmultientryadjustedname{#1}{#2}{#3}{#4}% \egroup } \glsmfublocker{\GLSxtrmultientryadjustedname} \newcommand*{\@glsxtrmultientryadjustedname}[4]{% \letcs\mglscurrentmainlabel{@gls@combined@#4@main}% \letcs\mglscurrentmainlist{@gls@combined@#4@list}% \letcs\mglscurrentmainoptions{@gls@combined@#4@options}% \ifblank{#1}% {% \@glsxtrmultientryadjustednamefirstfmt{#2}% }% {% \def\@mgls@previouslabel{}% \let\@gls@xtradjustedother\@glsxtrmultientryadjustednamefirstother \@for\mglscurrentlabel:=#1\do{% \ifx\@mgls@previouslabel\empty \else \@glsxtrmultientryadjustednamesep{\@mgls@previouslabel}{\mglscurrentlabel}% \fi \@gls@xtradjustedother{\mglscurrentlabel}% \let\@mgls@previouslabel\mglscurrentlabel \let\@gls@xtradjustedother\@glsxtrmultientryadjustednameother }% \@glsxtrmultientryadjustednamepresep{\@mgls@previouslabel}{\mglscurrentmainlabel}% \@glsxtrmultientryadjustednamefmt{#2}% }% \ifblank{#3}% {}% {% \let\@mgls@previouslabel\mglscurrentmainlabel \let\@gls@xtrmultientryadjustednamesep\@glsxtrmultientryadjustednamepostsep \@for\mglscurrentlabel:=#3\do{% \@gls@xtrmultientryadjustednamesep{\@mgls@previouslabel}{\mglscurrentlabel}% \@glsxtrmultientryadjustednameother{\mglscurrentlabel}% \let\@mgls@previouslabel\mglscurrentlabel \let\@gls@xtrmultientryadjustednamesep\@glsxtrmultientryadjustednamesep }% }% } \newcommand*{\glsxtrmultientryadjustednamesep}{\glscombinedfirstsepfirst} \newcommand*{\glsxtrmultientryadjustednamepresep}{\glsxtrmultientryadjustednamesep} \newcommand*{\glsxtrmultientryadjustednamepostsep}{\glsxtrmultientryadjustednamesep} \newcommand*{\glsxtrmultientryadjustednamefmt}[1]{#1} \newcommand*{\glsxtrmultientryadjustednameother}[1]{\glsentryname{#1}} \newcommand*{\Glsxtrmultientryadjustednamefmt}[1]{\glssentencecase{#1}} \newcommand*{\Glsxtrmultientryadjustednameother}[1]{\Glsentryname{#1}} \newcommand*{\GlsXtrmultientryadjustednameother}[1]{% \glsentrytitlecase{#1}{name}} \ifdef\glscapitalisewords {% \newcommand*{\GlsXtrmultientryadjustednamefmt}[1]{\glscapitalisewords{#1}} } { \newcommand*{\GlsXtrmultientryadjustednamefmt}[1]{\capitalisewords{#1}} } \newcommand*{\GLSxtrmultientryadjustednameother}[1]{% \glsuppercase{\glsentryname{#1}}} \newcommand*{\GLSxtrmultientryadjustednamefmt}[1]{\glsuppercase{#1}} \providecommand*{\Alpha}{\mathrm{A}} \providecommand*{\Beta}{\mathrm{B}} \providecommand*{\Epsilon}{\mathrm{E}} \providecommand*{\Zeta}{\mathrm{Z}} \providecommand*{\Eta}{\mathrm{H}} \providecommand*{\Iota}{\mathrm{I}} \providecommand*{\Kappa}{\mathrm{K}} \providecommand*{\Mu}{\mathrm{M}} \providecommand*{\Nu}{\mathrm{N}} \providecommand*{\Omicron}{\mathrm{O}} \providecommand*{\Rho}{\mathrm{P}} \providecommand*{\Tau}{\mathrm{T}} \providecommand*{\Chi}{\mathrm{X}} \providecommand*{\Digamma}{\mathrm{F}} \providecommand*{\omicron}{\mathit{o}} \@ifpackageloaded{upgreek}% { \providecommand*{\Upalpha}{\mathrm{A}} \providecommand*{\Upbeta}{\mathrm{B}} \providecommand*{\Upepsilon}{\mathrm{E}} \providecommand*{\Upzeta}{\mathrm{Z}} \providecommand*{\Upeta}{\mathrm{H}} \providecommand*{\Upiota}{\mathrm{I}} \providecommand*{\Upkappa}{\mathrm{K}} \providecommand*{\Upmu}{\mathrm{M}} \providecommand*{\Upnu}{\mathrm{N}} \providecommand*{\Upomicron}{\mathrm{O}} \providecommand*{\Uprho}{\mathrm{P}} \providecommand*{\Uptau}{\mathrm{T}} \providecommand*{\Upchi}{\mathrm{X}} \providecommand*{\upomicron}{\mathrm{o}} }% {}% upgreek.sty not loaded \newcommand{\glsxtrIgnorableRules}{% \glsxtrcontrolrules \string;\glsxtrspacerules \string;\glsxtrnonprintablerules } \newcommand{\glsxtrGeneralInitRules}{% \glsxtrIgnorableRules \string;\glsxtrcombiningdiacriticrules \string;\glsxtrhyphenrules \string<\glsxtrgeneralpuncrules \string<\glsxtrdigitrules \string<\glsxtrfractionrules } \newcommand*{\glsxtrcontrolrules}{% \string'\glshex 200B\string'\string=\glshex 200C\string=\glshex 200D \string=\glshex 200E\string=\glshex 200F\string=\glshex 0000\string=\glshex 0001 \string=\glshex 0002\string=\glshex 0003\string=\glshex 0004\string=\glshex 0005 \string=\glshex 0006\string=\glshex 0007\string=\glshex 0008 \string=\string'\glshex 0009\string'\string=\string'\glshex 000B\string' \string=\glshex 000E\string=\glshex 000F\string=\string'\glshex 0010\string'\string=\glshex 0011 \string=\glshex 0012\string=\glshex 0013\string=\glshex 0014\string=\glshex 0015 \string=\glshex 0016\string=\glshex 0017\string=\glshex 0018\string=\glshex 0019 \string=\glshex 001A\string=\glshex 001B\string=\glshex 001C\string=\glshex 001D \string=\glshex 001E\string=\glshex 001F\string=\glshex 007F\string=\glshex 0080 \string=\glshex 0081\string=\glshex 0082\string=\glshex 0083\string=\glshex 0084 \string=\glshex 0085\string=\glshex 0086\string=\glshex 0087\string=\glshex 0088 \string=\glshex 0089\string=\glshex 008A\string=\glshex 008B\string=\glshex 008C \string=\glshex 008D\string=\glshex 008E\string=\glshex 008F\string=\glshex 0090 \string=\glshex 0091\string=\glshex 0092\string=\glshex 0093\string=\glshex 0094 \string=\glshex 0095\string=\glshex 0096\string=\glshex 0097\string=\glshex 0098 \string=\glshex 0099\string=\glshex 009A\string=\glshex 009B\string=\glshex 009C \string=\glshex 009D\string=\glshex 009E\string=\glshex 009F } \newcommand*{\glsxtrspacerules}{% \string' \string'\string; \string'\glshex 00A0\string'\string; \string'\glshex 2000\string'\string; \string'\glshex 2001\string'\string; \string'\glshex 2002\string'\string; \string'\glshex 2003\string'\string; \string'\glshex 2004\string'\string; \string'\glshex 2005\string'\string; \string'\glshex 2006\string'\string; \string'\glshex 2007\string'\string; \string'\glshex 2008\string'\string; \string'\glshex 2009\string'\string; \string'\glshex 200A\string'\string; \string'\glshex 3000\string' } \newcommand*{\glsxtrnonprintablerules}{% \string'\glshex FEFF\string'\string; \string'\glshex 000A\string'\string; \string'\glshex 0009\string'\string; \string'\glshex 000C\string'\string; \string'\glshex 000B\string' } \newcommand*{\glsxtrcombiningdiacriticrules}{% \glsxtrcombiningdiacriticIrules\string; \glsxtrcombiningdiacriticIIrules\string; \glsxtrcombiningdiacriticIIIrules\string; \glsxtrcombiningdiacriticIVrules } \newcommand*{\glsxtrcombiningdiacriticIrules}{% \glshex 0301\string;% combining acute \glshex 0300\string;% combining grave \glshex 0306\string;% combining breve \glshex 0302\string;% combining circumflex \glshex 030C\string;% combining caron \glshex 030A\string;% combining ring \glshex 030D\string;% combining vertical line above \glshex 0308\string;% combining diaeresis \glshex 030B\string;% combining double acute \glshex 0303\string;% combining tilde \glshex 0307\string;% combining dot above \glshex 0304% combining macron } \newcommand*{\glsxtrcombiningdiacriticIIrules}{% \glshex 0337\string;% combining short solidus overlay \glshex 0327\string;% combining cedilla \glshex 0328\string;% combining ogonek \glshex 0323\string;% combining dot below \glshex 0332\string;% combining low line \glshex 0305\string;% combining overline \glshex 0309\string;% combining hook above \glshex 030E\string;% combining double vertical line above \glshex 030F\string;% combining double grave accent \glshex 0310\string;% combining candrabindu \glshex 0311\string;% combining inverted breve \glshex 0312\string;% combining turned comma above \glshex 0313\string;% combining comma above \glshex 0314\string;% combining reversed comma above \glshex 0315\string;% combining comma above right \glshex 0316\string;% combining grave accent below \glshex 0317% combining acute accent below } \newcommand*{\glsxtrcombiningdiacriticIIIrules}{% \glshex 0318\string;% combining left tack below \glshex 0319\string;% combining right tack below \glshex 031A\string;% combining left angle above \glshex 031B\string;% combining horn \glshex 031C\string;% combining left half ring below \glshex 031D\string;% combining up tack below \glshex 031E\string;% combining down tack below \glshex 031F\string;% combining plus sign below \glshex 0320\string;% combining minus sign below \glshex 0321\string;% combining palatalized hook below \glshex 0322\string;% combining retroflex hook below \glshex 0324\string;% combining diaresis below \glshex 0325\string;% combining ring below \glshex 0326\string;% combining comma below \glshex 0329\string;% combining vertical line below \glshex 032A\string;% combining bridge below \glshex 032B\string;% combining inverted double arch below \glshex 032C\string;% combining caron below \glshex 032D\string;% combining circumflex accent below \glshex 032E\string;% combining breve below \glshex 032F\string;% combining inverted breve below \glshex 0330\string;% combining tilde below \glshex 0331\string;% combining macron below \glshex 0333\string;% combining double low line \glshex 0334\string;% combining tilde overlay \glshex 0335\string;% combining short stroke overlay \glshex 0336\string;% combining long stroke overlay \glshex 0338\string;% combining long solidus overlay \glshex 0339\string;% combining combining right half ring below \glshex 033A\string;% combining inverted bridge below \glshex 033B\string;% combining square below \glshex 033C\string;% combining seagull below \glshex 033D\string;% combining x above \glshex 033E\string;% combining vertical tilde \glshex 033F\string;% combining double overline \glshex 0342\string;% combining Greek perispomeni \glshex 0344\string;% combining Greek dialytika tonos \glshex 0345\string;% combining Greek ypogegrammeni \glshex 0360\string;% combining double tilde \glshex 0361\string;% combining double inverted breve \glshex 0483\string;% combining Cyrillic titlo \glshex 0484\string;% combining Cyrillic palatalization \glshex 0485\string;% combining Cyrillic dasia pneumata \glshex 0486% combining Cyrillic psili pneumata } \newcommand*{\glsxtrcombiningdiacriticIVrules}{% \glshex 20D0\string;% combining left harpoon above \glshex 20D1\string;% combining right harpoon above \glshex 20D2\string;% combining long vertical line overlay \glshex 20D3\string;% combining short vertical line overlay \glshex 20D4\string;% combining anticlockwise arrow above \glshex 20D5\string;% combining clockwise arrow above \glshex 20D6\string;% combining left arrow above \glshex 20D7\string;% combining right arrow above \glshex 20D8\string;% combining ring overlay \glshex 20D9\string;% combining clockwise ring overlay \glshex 20DA\string;% combining anticlockwise ring overlay \glshex 20DB\string;% combining three dots above \glshex 20DC\string;% combining four dots above \glshex 20DD\string;% combining enclosing circle \glshex 20DE\string;% combining enclosing square \glshex 20DF\string;% combining enclosing diamond \glshex 20E0\string;% combining enclosing circle backslash \glshex 20E1% combining left right arrow above } \newcommand*{\glsxtrhyphenrules}{% \string'\string-\string'\string;% ASCII hyphen \glshex 00AD\string;% soft hyphen \glshex 2010\string;% hyphen \glshex 2011\string;% non-breaking hyphen \glshex 2012\string;% figure dash \glshex 2013\string;% en dash \glshex 2014\string;% em dash \glshex 2015\string;% horizontal bar \glshex 2212\string=\glshex 207B\string=\glshex 208B% minus sign } \newcommand*{\glsxtrgeneralpuncrules}{% \glsxtrgeneralpuncIrules \string<\glsxtrcurrencyrules \string<\glsxtrgeneralpuncIIrules } \newcommand*{\glsxtrgeneralpuncIrules}{% \glsxtrgeneralpuncmarksrules \string<\glsxtrgeneralpuncaccentsrules \string<\glsxtrgeneralpuncquoterules \string<\glsxtrgeneralpuncbracketrules \string<\glsxtrgeneralpuncsignrules } \newcommand*{\glsxtrgeneralpuncmarksrules}{% \string'\glshex 005F\string'% underscore \string<\glshex 00AF% macron \string<\string'\glshex 002C\string'% comma \string<\string'\glshex 003B\string'% semi-colon \string<\string'\glshex 003A\string'% colon \string<\string'\glshex 0021\string'% exclamation mark \string<\glshex 00A1% inverted exclamation mark \string<\string'\glshex 003F\string'% question mark \string<\glshex 00BF% inverted question mark \string<\string'\glshex 002F\string'% solidus \string<\string'\glshex 002E\string'% full stop } \newcommand*{\glsxtrgeneralpuncaccentsrules}{% \glshex 00B4% acute accent \string<\string'\glshex 0060\string'% grave accent \string<\string'\glshex 005E\string'% circumflex accent \string<\glshex 00A8% diaersis \string<\string'\glshex 007E\string'% tilde \string<\glshex 00B7% middle dot \string<\glshex 00B8% cedilla } \newcommand*{\glsxtrgeneralpuncquoterules}{% \string'\glshex 0027\string'% straight apostrophe \string<\string'\glshex 0022\string'% straight double quote \string<\glshex 00AB% left guillemet \string<\glshex 00BB% right guillemet } \newcommand*{\glsxtrgeneralpuncbracketrules}{% \string'\glshex 0028\string'% left parenthesis \string=\glshex 207D\string=\glshex 208D% super/subscript left parenthesis \string<\string'\glshex 0029\string'% right parenthesis \string=\glshex 207E\string=\glshex 208E% super/subscript right parenthesis \string<\string'\glshex 005B\string'% left square bracket \string<\string'\glshex 005D\string'% right square bracket \string<\string'\glshex 007B\string'% left curly bracket \string<\string'\glshex 007D\string'% right curly bracket } \newcommand*{\glsxtrgeneralpuncsignrules}{% \glshex 00A7% section sign \string<\glshex 00B6% pilcrow sign \string<\glshex 00A9% copyright sign \string<\glshex 00AE% registered sign \string<\string'\glshex 0040\string'% at sign } \newcommand*{\glsxtrcurrencyrules}{% \glshex 00A4% currency sign \string<\glshex 0E3F% Thai currency symbol baht \string<\glshex 00A2% cent sign \string<\glshex 20A1% colon sign \string<\glshex 20A2% cruzeiro sign \string<\string'\glshex 0024\string'% dollar sign \string<\glshex 20AB% dong sign \string<\glshex 20AC% euro sign \string<\glshex 20A3% French franc sign \string<\glshex 20A4% lira sign \string<\glshex 20A5% mill sign \string<\glshex 20A6% naira sign \string<\glshex 20A7% peseta sign \string<\glshex 00A3% pound sign \string<\glshex 20A8% rupee sign \string<\glshex 20AA% new sheqel sign \string<\glshex 20A9% won sign \string<\glshex 00A5% yen sign } \newcommand*{\glsxtrgeneralpuncIIrules}{% \string'\glshex 002A\string'% asterisk \string<\string'\glshex 005C\string'% backslash \string<\string'\glshex 0026\string'% ampersand \string<\string'\glshex 0023\string'% hash sign \string<\string'\glshex 0025\string'% percent sign \string<\string'\glshex 002B\string'% plus sign \string=\glshex 207A\string=\glshex 208A% super/subscript plus sign \string<\glshex 00B1% plus-minus sign \string<\glshex 00F7% division sign \string<\glshex 00D7% multiplication sign \string<\string'\glshex 003C\string'% less-than sign \string<\string'\glshex 003D\string'% equals sign \string<\string'\glshex 003E\string'% greater-than sign \string<\glshex 00AC% not sign \string<\string'\glshex 007C\string'% vertical bar (pipe) \string<\glshex 00A6% broken bar \string<\glshex 00B0% degree sign \string<\glshex 00B5% micron sign } \newcommand*{\glsxtrGeneralLatinIrules}{% \glsxtrLatinA \string