From c628b1aa9cf528de739c1de45acf3739561619ed Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Fri, 5 Nov 2021 03:01:04 +0000 Subject: CTAN sync 202111050301 --- .../contrib/glossaries-extra/glossaries-extra.dtx | 373 ++++++++++++++++++--- 1 file changed, 331 insertions(+), 42 deletions(-) (limited to 'macros/latex/contrib/glossaries-extra/glossaries-extra.dtx') diff --git a/macros/latex/contrib/glossaries-extra/glossaries-extra.dtx b/macros/latex/contrib/glossaries-extra/glossaries-extra.dtx index da86005507..ab396b83e7 100644 --- a/macros/latex/contrib/glossaries-extra/glossaries-extra.dtx +++ b/macros/latex/contrib/glossaries-extra/glossaries-extra.dtx @@ -1,10 +1,12 @@ %\iffalse % glossaries-extra.dtx generated using makedtx version 1.2 (c) Nicola Talbot % Command line args: -% -macrocode ".*\.tex" -% -macrocode ".*\.bib" -% -setambles ".*\.bib=>\nopreamble\nopostamble" +% -comment ".*\.tex" +% -comment ".*\.bib" +% -codetitle "Main Package Code (\\styfmt{glossaries-extra.sty})" +% -doc "glossaries-extra-codedoc.tex" % -section "chapter" +% -setambles ".*\.bib=>\nopreamble\nopostamble" % -src "glossaries-extra.sty\Z=>glossaries-extra.sty" % -src "glossaries-extra-bib2gls.sty\Z=>glossaries-extra-bib2gls.sty" % -src "glossaries-extra-stylemods.sty\Z=>glossaries-extra-stylemods.sty" @@ -13,13 +15,11 @@ % -src "glossary-topic.sty\Z=>glossary-topic.sty" % -src "(example-glossaries-.+\.tex)\Z=>\1" % -src "(example-glossaries-.+\.bib)\Z=>\1" -% -codetitle "Main Package Code (\\styfmt{glossaries-extra.sty})" +% -macrocode ".*\.tex" +% -macrocode ".*\.bib" % -author "Nicola Talbot" -% -doc "glossaries-extra-codedoc.tex" -% -comment ".*\.tex" -% -comment ".*\.bib" % glossaries-extra -% Created on 2021/9/22 14:44 +% Created on 2021/11/4 19:26 %\fi %\iffalse %<*package> @@ -142,7 +142,7 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of \setcounter{IndexColumns}{2} -\CheckSum{27294} +\CheckSum{27468} \newcommand*{\ifirstuse}{\iterm{first use}} \newcommand*{\firstuse}{\gls{firstuse}} @@ -182,13 +182,13 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of \raggedright } -\title{glossaries-extra.sty v1.46: +\title{glossaries-extra.sty v1.47: documented code} \author{Nicola L.C. Talbot\\[10pt] Dickimaw Books\\ \url{http://www.dickimaw-books.com/}} -\date{2021-09-20} +\date{2021-11-04} \begin{document} \DocInput{glossaries-extra.dtx} @@ -233,7 +233,7 @@ Dickimaw Books\\ %\section{Package Initialisation and Options} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra}[2021/09/20 v1.46 (NLCT)] +\ProvidesPackage{glossaries-extra}[2021/11/04 v1.47 (NLCT)] % \end{macrocode} % Requires \sty{xkeyval} to define package options. % \begin{macrocode} @@ -2645,7 +2645,17 @@ Dickimaw Books\\ %\cs{glsxtrforcsvfield}\marg{label}\marg{field}\marg{cs handler} %\end{definition} % \begin{macrocode} -\newcommand*{\glsxtrforcsvfield}[3]{% +\newcommand*{\glsxtrforcsvfield}{% + \@ifstar\s@glsxtrforcsvfield\@glsxtrforcsvfield +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@glsxtrforcsvfield} +%\changes{1.47}{2017-11-14}{new} +%Unstarred version. +% \begin{macrocode} +\newcommand*{\@glsxtrforcsvfield}[3]{% \@glsxtrifhasfield{#2}{#1}% {% \let\glsxtrendfor\@endfortrue @@ -2656,6 +2666,21 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % +%\begin{macro}{\s@glsxtrforcsvfield} +%\changes{1.47}{2017-11-14}{new} +%Starred version. +% \begin{macrocode} +\newcommand*{\s@glsxtrforcsvfield}[3]{% + \s@glsxtrifhasfield{#2}{#1}% + {% + \let\glsxtrendfor\@endfortrue + \@for\@glsxtr@label:=\glscurrentfieldvalue\do + {\expandafter#3\expandafter{\@glsxtr@label}}}% + {}% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\glsxtrfieldformatcsvlist} %\changes{1.42}{2020-02-03}{new} % \begin{macrocode} @@ -2711,6 +2736,91 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % +%\begin{macro}{\GlsXtrIfValueInFieldCsvList} +%\changes{1.47}{2021-11-04}{new} +%\begin{definition} +%\cs{GlsXtrIfValueInFieldCsvList}\marg{label}\marg{field}\marg{value}\marg{true}\marg{false} +%\end{definition} +%Essentially the reverse. Tests if the given value is in the given +%field which should contain a comma-separated list. +% \begin{macrocode} +\newcommand*{\GlsXtrIfValueInFieldCsvList}{% + \@ifstar\s@GlsXtrIfValueInFieldCsvList\@GlsXtrIfValueInFieldCsvList +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@GlsXtrIfValueInFieldCsvList} +%\changes{1.47}{}{new} +%Unstarred version. +% \begin{macrocode} +\newcommand*{\@GlsXtrIfValueInFieldCsvList}[5]{% + \@glsxtrifhasfield{#2}{#1}% + {% + \DTLifinlist{#3}{\glscurrentfieldvalue}{#4}{#5}% + }% + {#5}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\s@GlsXtrIfValueInFieldCsvList} +%\changes{1.47}{}{new} +%Unstarred version. +% \begin{macrocode} +\newcommand*{\s@GlsXtrIfValueInFieldCsvList}[5]{% + \s@glsxtrifhasfield{#2}{#1}% + {% + \DTLifinlist{#3}{\glscurrentfieldvalue}{#4}{#5}% + }% + {#5}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\xGlsXtrIfValueInFieldCsvList} +%\changes{1.47}{2021-11-04}{new} +%\begin{definition} +%\cs{xGlsXtrIfValueInFieldCsvList}\marg{label}\marg{field}\marg{value}\marg{true}\marg{false} +%\end{definition} +%As above but fully expand \meta{value}. +% \begin{macrocode} +\newcommand*{\xGlsXtrIfValueInFieldCsvList}{% + \@ifstar\s@xGlsXtrIfValueInFieldCsvList\@xGlsXtrIfValueInFieldCsvList +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@xGlsXtrIfValueInFieldCsvList} +%\changes{1.47}{}{new} +%Unstarred version. +% \begin{macrocode} +\newcommand*{\@xGlsXtrIfValueInFieldCsvList}[5]{% + \@glsxtrifhasfield{#2}{#1}% + {% + \protected@edef\@gls@tmp{#3}% + \expandafter\DTLifinlist\expandafter{\@gls@tmp}{\glscurrentfieldvalue}{#4}{#5}% + }% + {#5}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\s@xGlsXtrIfValueInFieldCsvList} +%\changes{1.47}{}{new} +%Unstarred version. +% \begin{macrocode} +\newcommand*{\s@xGlsXtrIfValueInFieldCsvList}[5]{% + \s@glsxtrifhasfield{#2}{#1}% + {% + \protected@edef\@gls@tmp{#3}% + \expandafter\DTLifinlist\expandafter{\@gls@tmp}{\glscurrentfieldvalue}{#4}{#5}% + }% + {#5}% +} +% \end{macrocode} +%\end{macro} +% % %\begin{macro}{\glsxtrifhasfield} %\changes{1.19}{2017-09-09}{new} @@ -2770,6 +2880,15 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % +%\begin{macro}{\s@GlsXtrIfFieldNonZero} +%\changes{1.47}{2021-11-04}{new} +% \begin{macrocode} +\newcommand{\s@GlsXtrIfFieldNonZero}[4]{% + \s@GlsXtrIfFieldCmpNum{#1}{#2}{=}{0}{#4}{#3}% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\GlsXtrIfFieldEqNum} %\changes{1.31}{2018-05-09}{new} %\begin{definition} @@ -2948,6 +3067,23 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % +%\begin{macro}{\glsxtrapptocsvfield} +%\changes{1.47}{2021-11-04}{new} +% Similar to the above but will append value with a leading comma if +% the field is already defined. This is used by \gls{bib2gls}. +% There's no check if the entry has been defined. (Because of the +% way that bib2gls's save-from-alias etc options are +% implemented, the entry may not have yet been written to the glstex +% file when this command is used.) +% \begin{macrocode} +\newcommand*{\glsxtrapptocsvfield}[3]{% + \ifcsdef{glo@\glsdetoklabel{#1}@#2}% + {\csappto{glo@\glsdetoklabel{#1}@#2}{,#3}}% + {\csdef{glo@\glsdetoklabel{#1}@#2}{#3}}% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\glsxtrsetfieldifexists} %\changes{1.12}{2017-02-03}{new} % \begin{macrocode} @@ -3687,7 +3823,10 @@ Dickimaw Books\\ {% \ifcsdef{glolist@#2} {% - \cseappto{glolist@#2}{#1,}% +% \end{macrocode} +%\changes{1.47}{2021-11-04}{replaced \cs{cseappto} with \cs{protected@cseappto}} +% \begin{macrocode} + \protected@cseappto{glolist@#2}{#1,}% }% {% \glsxtrundefaction{Glossary type `#2' doesn't exist}{}% @@ -4082,6 +4221,45 @@ Dickimaw Books\\ % \end{macrocode} %\end{macro} % +%\begin{macro}{\glsseelist} +%\changes{1.47}{2021-11-04}{redefined} +%Redefine to make \cs{glsseelist} more flexible. +% \begin{macrocode} +\renewrobustcmd*{\glsseelist}[1]{% + \let\@gls@dolast\relax + \let\@gls@donext\relax + \let\@glsseeitem\glsseefirstitem + \let\@glsseelastsep\glsseelastsep + \@for\@gls@thislabel:=#1\do{% + \ifx\@xfor@nextelement\@nnil + \@gls@dolast + \else + \@gls@donext + \fi + \expandafter\@glsseeitem\expandafter{\@gls@thislabel}% + \let\@gls@dolast\@glsseelastsep + \let\@gls@donext\glsseesep + \let\@glsseeitem\glsseeitem + \let\@glsseelastsep\glsseelastoxfordsep + }% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\glsseefirstitem} +%\changes{1.47}{2021-11-04}{new} +% \begin{macrocode} +\newcommand*{\glsseefirstitem}{\glsseeitem} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\glsseelastoxfordsep} +%\changes{1.47}{2021-11-04}{new} +% \begin{macrocode} +\newcommand*{\glsseelastoxfordsep}{\glsseelastsep} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\seealsoname} %\changes{1.16}{2017-06-15}{new} %\changes{1.42}{2020-02-03}{add check for \cs{alsoname}} @@ -6975,15 +7153,19 @@ Dickimaw Books\\ %\cs{ifglshasfield}} %\changes{1.46}{2021-09-18}{changed to use starred version of %\cs{glsxtrifhasfield}} +%\changes{1.47}{2021-11-04}{changed to use \cs{ifcsvoid}} +%The change made in v1.46 to remove the grouping has had the +%knock-on effect of redefining \cs{glscurrentfieldvalue}, which may +%be a problem, so v1.47 has changed this to use \cs{ifcsvoid}. % \begin{macrocode} \newcommand*{\@glsxtrsetaliasnoindex}{% - \s@glsxtrifhasfield{alias}{\glslabel}% + \ifcsvoid{glo@\glsdetoklabel{\glslabel}@alias}% + {}% {% \let\glsxtrindexaliased\@glsxtrindexaliased \glsxtrsetaliasnoindex \let\glsxtrindexaliased\@no@glsxtrindexaliased }% - {}% } % \end{macrocode} %\end{macro} @@ -13915,6 +14097,19 @@ defined}{}% % \end{macrocode} %\end{macro} % +%\begin{macro}{\glsunsetcategoryattribute} +%\begin{definition} +%\cs{glsunsetcategoryattribute}\marg{category}\marg{attribute-label} +%\end{definition} +%Unsets the given attribute for the given category. +%\changes{1.47}{2021-11-04}{new} +% \begin{macrocode} +\newcommand*{\glsunsetcategoryattribute}[2]{% + \csundef{@glsxtr@categoryattr@@#1@#2}% +} +% \end{macrocode} +%\end{macro} +% %\begin{macro}{\glshascategoryattribute} %\begin{definition} %\cs{glshascategoryattribute}\marg{category}\marg{attribute-label}\marg{true}\marg{false} @@ -14261,10 +14456,19 @@ defined}{}% %\begin{macro}{\glsxtrfieldtitlecasecs} %The command used by \cs{glsxtrfieldtitlecase}. May be %redefined to use a different command, for example, -%\cs{xcapitalisefmtwords}. +%\cs{xcapitalisefmtwords}. Check for \cs{glscapitalisewords}, which +%was added to \sty{glossaries} v4.48. %\changes{1.07}{2016-08-15}{new} +%\changes{1.47}{2021-11-04}{added check for \cs{glscapitalisewords}} % \begin{macrocode} -\newcommand*{\glsxtrfieldtitlecasecs}[1]{\xcapitalisewords{#1}} +\ifdef\glscapitalisewords +{ + \newcommand*{\glsxtrfieldtitlecasecs}[1]{% + \expandafter\glscapitalisewords\expandafter{#1}} +} +{ + \newcommand*{\glsxtrfieldtitlecasecs}[1]{\xcapitalisewords{#1}} +} % \end{macrocode} %\end{macro} % @@ -25858,7 +26062,7 @@ defined}{}% %automatically loaded by the record option. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra-bib2gls}[2021/09/20 v1.46 (NLCT)] +\ProvidesPackage{glossaries-extra-bib2gls}[2021/11/04 v1.47 (NLCT)] % \end{macrocode} %Provide convenient shortcut commands for predefined glossary types. %\begin{macro}{\printunsrtacronyms} @@ -25956,10 +26160,29 @@ defined}{}% % %\begin{macro}{\GlsXtrIfHasNonZeroChildCount} %\changes{1.31}{2018-05-09}{new} +%\changes{1.47}{2021-11-04}{added starred version} %For use with \app{bib2gls}'s \texttt{save-child-count} resource option. % \begin{macrocode} -\newcommand*{\GlsXtrIfHasNonZeroChildCount}[3]{% - \GlsXtrIfFieldNonZero{childcount}{#1}{#2}{#3}% +\newcommand*{\GlsXtrIfHasNonZeroChildCount}{% + \@ifstar\s@GlsXtrIfHasNonZeroChildCount\@GlsXtrIfHasNonZeroChildCount +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\@GlsXtrIfHasNonZeroChildCount} +%\changes{1.47}{2021-11-04}{new} +% \begin{macrocode} +\newcommand*{\@GlsXtrIfHasNonZeroChildCount}[3]{% + \@GlsXtrIfFieldNonZero{childcount}{#1}{#2}{#3}% +} +% \end{macrocode} +%\end{macro} +% +%\begin{macro}{\s@GlsXtrIfHasNonZeroChildCount} +%\changes{1.47}{2021-11-04}{new} +% \begin{macrocode} +\newcommand*{\s@GlsXtrIfHasNonZeroChildCount}[3]{% + \s@GlsXtrIfFieldNonZero{childcount}{#1}{#2}{#3}% } % \end{macrocode} %\end{macro} @@ -28950,7 +29173,7 @@ defined}{}% % First identify package: % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossaries-extra-stylemods}[2021/09/20 v1.46 (NLCT)] +\ProvidesPackage{glossaries-extra-stylemods}[2021/11/04 v1.47 (NLCT)] % \end{macrocode} % Provide package options to automatically load required predefined % styles. The simplest method is to just test for the existence of @@ -29108,17 +29331,62 @@ defined}{}% \newcommand{\glslistgroupskip}{\nobreak\indexspace\nobreak} % \end{macrocode} %\end{macro} +%\begin{macro}{\glslistitem} +%\changes{1.47}{2021-11-04}{new} +% \begin{macrocode} + \newcommand{\glslistitem}[1]{% + \item[\glsentryitem{#1}% + \glstarget{#1}{\glossentryname{#1}}]% + } +% \end{macrocode} +%\end{macro} +%\begin{macro}{\glslistinit} +%\changes{1.47}{2021-11-04}{new} +%This command was only added to \sty{glossary-list} v4.48 so provide +%it if it hasn't been defined: +% \begin{macrocode} + \providecommand{\glslistinit}{% + \ifdef\GetTitleStringDisableCommands + {% + \GetTitleStringSetup{expand}% + \GetTitleStringDisableCommands{% + \let\glsentryitem\@gobble + \let\glstarget\@secondoftwo + \let\glossentryname\glslistexpandedname + \let\glslistgroupheaderfmt\@firstofone + \let\glsgetgrouptitle\@firstofone + \let\glsnavhypertarget\@secondoftwo + \let\glsnavigation\relax + }% + }% + {}% + } +% \end{macrocode} +%\end{macro} +%\begin{macro}{\glslistexpandedname} +%\changes{1.47}{2021-11-04}{new} +%This command was only added to \sty{glossary-list} v4.48 so provide +%it if it hasn't been defined. The original definition uses +%\cs{glsunexpandedfieldvalue} which +%was added to \sty{glossaries} v4.48 (so if \cs{glslistexpandedname} +%hasn't been defined then neither will \cs{glsunexpandedfieldvalue}). +% \begin{macrocode} + \providecommand{\glslistexpandedname}[1]{% + \ifcsname glo@\glsdetoklabel{#1}@name\endcsname + \expandafter\expandonce\csname glo@\glsdetoklabel{#1}@name\expandafter\endcsname + \fi + } +% \end{macrocode} +%\end{macro} %Redefine \glostyle{list} to use these commands. % \begin{macrocode} \renewglossarystyle{list}{% \renewenvironment{theglossary}% - {\begin{description}}{\end{description}}% + {\glslistinit\begin{description}}{\end{description}}% \renewcommand*{\glossaryheader}{}% \renewcommand*{\glsgroupheading}[1]{}% \renewcommand*{\glossentry}[2]{% - \item[\glsentryitem{##1}% - \glstarget{##1}{\glossentryname{##1}}] - \glslistdesc{##1}\glslistprelocation ##2}% + \glslistitem{##1}\glslistdesc{##1}\glslistprelocation ##2}% \renewcommand*{\subglossentry}[3]{% \glssubentryitem{##2}% \glstarget{##2}{\strut}\space @@ -29134,12 +29402,21 @@ defined}{}% % \begin{macrocode} \ifdef{\@glsstyle@altlist} {% +% \end{macrocode} +%\begin{macro}{\glsaltlistitem} +%\changes{1.47}{2021-11-04}{new} +% \begin{macrocode} + \newcommand{\glsaltlistitem}[1]{% + \glslistitem{#1}% + \mbox{}\par\nobreak\@afterheading + } +% \end{macrocode} +%\end{macro} +% \begin{macrocode} \renewglossarystyle{altlist}{% \setglossarystyle{list}% \renewcommand*{\glossentry}[2]{% - \item[\glsentryitem{##1}% - \glstarget{##1}{\glossentryname{##1}}]% - \mbox{}\par\nobreak\@afterheading + \glsaltlistitem{##1}% \glslistdesc{##1}\glslistprelocation ##2}% \renewcommand{\subglossentry}[3]{% \par @@ -29157,11 +29434,22 @@ defined}{}% % \begin{macrocode} \ifdef{\@glsstyle@listgroup} {% +% \end{macrocode} +%\begin{macro}{\glslistgroupafterheader} +%\changes{1.47}{2021-11-04}{new} +% \begin{macrocode} + \newcommand{\glslistgroupheaderitem}[2]{\item[{#2}]} + \newcommand{\glslistgroupafterheader}{% + \mbox{}\par\nobreak\@afterheading + } +% \end{macrocode} +%\end{macro} +% \begin{macrocode} \renewglossarystyle{listgroup}{% \setglossarystyle{list}% \renewcommand*{\glsgroupheading}[1]{% - \item[\glslistgroupheaderfmt{\glsgetgrouptitle{##1}}]% - \mbox{}\par\nobreak\@afterheading + \glslistgroupheaderitem{##1}{\glslistgroupheaderfmt{\glsgetgrouptitle{##1}}}% + \glslistgroupafterheader }% } } @@ -29178,9 +29466,9 @@ defined}{}% \renewcommand*{\glossaryheader}{% \glslistnavigationitem{\glsnavigation}}% \renewcommand*{\glsgroupheading}[1]{% - \item[\glslistgroupheaderfmt - {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}]% - \mbox{}\par\nobreak\@afterheading + \glslistgroupheaderitem{##1}{\glslistgroupheaderfmt + {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}}% + \glslistgroupafterheader }% } } @@ -29195,8 +29483,9 @@ defined}{}% \renewglossarystyle{altlistgroup}{% \setglossarystyle{altlist}% \renewcommand*{\glsgroupheading}[1]{% - \item[\glslistgroupheaderfmt{\glsgetgrouptitle{##1}}]% - \mbox{}\par\nobreak\@afterheading + \glslistgroupheaderitem{##1}% + {\glslistgroupheaderfmt{\glsgetgrouptitle{##1}}}% + \glslistgroupafterheader }% } } @@ -29213,9 +29502,9 @@ defined}{}% \renewcommand*{\glossaryheader}{% \glslistnavigationitem{\glsnavigation}}% \renewcommand*{\glsgroupheading}[1]{% - \item[\glslistgroupheaderfmt - {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}]% - \mbox{}\par\nobreak\@afterheading + \glslistgroupheaderitem{##1}{\glslistgroupheaderfmt + {\glsnavhypertarget{##1}{\glsgetgrouptitle{##1}}}}% + \glslistgroupafterheader }% } } @@ -31313,7 +31602,7 @@ defined}{}% %\section{Package Initialisation and Options} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossary-bookindex}[2021/09/20 v1.46 (NLCT)] +\ProvidesPackage{glossary-bookindex}[2021/11/04 v1.47 (NLCT)] % \end{macrocode} %Load required packages. % \begin{macrocode} @@ -31809,7 +32098,7 @@ defined}{}% %Provides additional long styles. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossary-longextra}[2021/09/20 v1.46 (NLCT)] +\ProvidesPackage{glossary-longextra}[2021/11/04 v1.47 (NLCT)] % \end{macrocode} %Load required packages. % \begin{macrocode} @@ -33238,7 +33527,7 @@ defined}{}% %topic. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{glossary-topic}[2021/09/20 v1.46 (NLCT)] +\ProvidesPackage{glossary-topic}[2021/11/04 v1.47 (NLCT)] % \end{macrocode} %Load required package. % \begin{macrocode} -- cgit v1.2.3