summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-03-24 20:52:40 +0000
committerKarl Berry <karl@freefriends.org>2020-03-24 20:52:40 +0000
commit9bcbefe37246cfab0f678bc2e46c86fcb11eddd7 (patch)
tree53307d682a90c18c4622fa342baa9ee69faa89f7 /Master/texmf-dist/source/latex
parentc8dfcd868f200f4fb7108d5711287235eefe1c38 (diff)
glossaries-extra (24mar20)
git-svn-id: svn://tug.org/texlive/trunk@54521 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex')
-rw-r--r--Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.dtx423
-rw-r--r--Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.ins2
2 files changed, 371 insertions, 54 deletions
diff --git a/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.dtx b/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.dtx
index faaf91f31da..c2dcfe0ecb8 100644
--- a/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.dtx
+++ b/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.dtx
@@ -1,15 +1,6 @@
%\iffalse
% glossaries-extra.dtx generated using makedtx version 1.2 (c) Nicola Talbot
% Command line args:
-% -doc "glossaries-extra-codedoc.tex"
-% -macrocode ".*\.tex"
-% -macrocode ".*\.bib"
-% -codetitle "Main Package Code (\\styfmt{glossaries-extra.sty})"
-% -author "Nicola Talbot"
-% -comment ".*\.tex"
-% -comment ".*\.bib"
-% -setambles ".*\.bib=>\nopreamble\nopostamble"
-% -section "chapter"
% -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"
@@ -18,8 +9,17 @@
% -src "glossary-topic.sty\Z=>glossary-topic.sty"
% -src "(example-glossaries-.+\.tex)\Z=>\1"
% -src "(example-glossaries-.+\.bib)\Z=>\1"
+% -doc "glossaries-extra-codedoc.tex"
+% -section "chapter"
+% -setambles ".*\.bib=>\nopreamble\nopostamble"
+% -comment ".*\.tex"
+% -comment ".*\.bib"
+% -codetitle "Main Package Code (\\styfmt{glossaries-extra.sty})"
+% -author "Nicola Talbot"
+% -macrocode ".*\.tex"
+% -macrocode ".*\.bib"
% glossaries-extra
-% Created on 2020/2/28 14:07
+% Created on 2020/3/23 20:29
%\fi
%\iffalse
%<*package>
@@ -142,7 +142,7 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of
\setcounter{IndexColumns}{2}
-\CheckSum{26913}
+\CheckSum{27175}
\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.43:
+\title{glossaries-extra.sty v1.44:
documented code}
\author{Nicola L.C. Talbot\\[10pt]
Dickimaw Books\\
\url{http://www.dickimaw-books.com/}}
-\date{2020-02-28}
+\date{2020-03-23}
\begin{document}
\DocInput{glossaries-extra.dtx}
@@ -233,7 +233,7 @@ Dickimaw Books\\
%\section{Package Initialisation and Options}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossaries-extra}[2020/02/28 v1.43 (NLCT)]
+\ProvidesPackage{glossaries-extra}[2020/03/23 v1.44 (NLCT)]
% \end{macrocode}
% Requires \sty{xkeyval} to define package options.
% \begin{macrocode}
@@ -2182,6 +2182,39 @@ Dickimaw Books\\
% \end{macrocode}
%\end{macro}
%
+%Starred form of \cs{ifglossaryexists} was only introduced to
+%\styfmt{glossaries} v4.46 so provide it if it hasn't been defined.
+% \begin{macrocode}
+\ifdef\s@ifglossaryexists
+{}
+{
+% \end{macrocode}
+%\begin{macro}{\ifglossaryexists}
+%\changes{1.44}{2020-03-23}{added check for starred form}
+% \begin{macrocode}
+ \renewcommand{\ifglossaryexists}{%
+ \@ifstar\s@ifglossaryexists\@ifglossaryexists
+ }
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\@ifglossaryexists}
+% \begin{macrocode}
+ \newcommand{\@ifglossaryexists}[3]{%
+ \ifcsundef{@glotype@#1@out}{#3}{#2}%
+ }
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\s@ifglossaryexists}
+% \begin{macrocode}
+ \newcommand{\s@ifglossaryexists}[3]{%
+ \ifcsundef{glolist@#1}{#3}{#2}%
+ }
+% \end{macrocode}
+%\end{macro}
+% \begin{macrocode}
+}
+% \end{macrocode}
+%
%\begin{macro}{\glsxtrifemptyglossary}
%\begin{definition}
%\cs{glsxtrifemptyglossary}\marg{type}\marg{true}\marg{false}
@@ -3305,7 +3338,7 @@ Dickimaw Books\\
%existence. If the boolean variable is undefined, then its state is
%indeterminate and is neither true nor false, so neither \meta{true
%part} nor \meta{false} part will be performed if \meta{label} is
-%undefined.
+%undefined. See also \cs{GlsXtrIfUnusedOrUndefined}.
% \begin{macrocode}
\renewcommand*{\ifglsused}[3]{%
\glsdoifexists{#1}{\ifbool{glo@\glsdetoklabel{#1}@flag}{#2}{#3}}%
@@ -3652,11 +3685,12 @@ Dickimaw Books\\
%
%\begin{macro}{\doifglossarynoexistsordo}
% Similarly for \cs{doifglossarynoexistsordo}.
+%\changes{1.44}{2020-03-23}{switched to starred form of \cs{ifglossaryexists}}
% \begin{macrocode}
\ifdef\doifglossarynoexistsordo
{%
\renewcommand{\doifglossarynoexistsordo}[3]{%
- \ifglossaryexists{#1}%
+ \ifglossaryexists*{#1}%
{%
\glsxtrundefaction{Glossary type `#1' already exists}{}%
#3%
@@ -3667,7 +3701,7 @@ Dickimaw Books\\
{%
\glsxtr@warnonexistsordo\doifglossarynoexistsordo
\newcommand{\doifglossarynoexistsordo}[3]{%
- \ifglossaryexists{#1}%
+ \ifglossaryexists*{#1}%
{%
\glsxtrundefaction{Glossary type `#1' already exists}{}%
#3%
@@ -6740,7 +6774,11 @@ Dickimaw Books\\
% the best place to put it to automatically set the value for the
% commands that change the first use flag. The other commands should
% set \cs{glsxtrifwasfirstuse} to \cs{@secondoftwo} (which is done
-% in \cs{@glsxtr@field@linkdefs}).
+% in \cs{@glsxtr@field@linkdefs}). Note that if the entry is
+% undefined (as with \app{bib2gls} on the first \LaTeX\ run),
+% \cs{ifglsused} does neither true nor false parts. However, in that
+% case, this macro won't be called anyway (since it's used in the
+% argument of \cs{glsdoifexistsordo}).
% \begin{macrocode}
\ifglsused{\glslabel}%
{\let\glsxtrifwasfirstuse\@secondoftwo}
@@ -6906,20 +6944,23 @@ Dickimaw Books\\
%
%\begin{macro}{\glswriteentry}
% Redefine to test for \catattr{indexonlyfirst} category attribute.
+%\changes{1.44}{2020-03-23}{replaced \cs{ifglsused} with \cs{GlsXtrIfUnusedOrUndefined}}
+%This needs to use \cs{GlsXtrIfUnusedOrUndefined} instead of
+%\cs{ifglsused} to allow it to work with \app{bib2gls}.
% \begin{macrocode}
\renewcommand*{\glswriteentry}[2]{%
\glsxtrifindexing
{%
\ifglsindexonlyfirst
- \ifglsused{#1}
- {\glsxtrdoautoindexname{#1}{dualindex}}%
+ \GlsXtrIfUnusedOrUndefined{#1}
{#2}%
+ {\glsxtrdoautoindexname{#1}{dualindex}}%
\else
\glsifattribute{#1}{indexonlyfirst}{true}%
{%
- \ifglsused{#1}%
- {\glsxtrdoautoindexname{#1}{dualindex}}%
+ \GlsXtrIfUnusedOrUndefined{#1}%
{#2}%
+ {\glsxtrdoautoindexname{#1}{dualindex}}%
}%
{#2}%
\fi
@@ -9439,13 +9480,35 @@ Dickimaw Books\\
%adjustment to \cs{@printglossary} to allow \cs{@glo@assign@sortkey}
%to pick up the glossary type.
%
+%Earlier versions of \styfmt{glossaries-extra} simply saved the
+%original version of \cs{@printglossary} with \cs{let}
+%\cs{@glsxtr@orgprintglossary}. This was later changed to actually
+%defining \cs{@glsxtr@orgprintglossary} to something similar with
+%some alterations to allow for ignored glossaries, which don't have
+%an associated title and to by-pass the existence check with
+%\cs{ifglossaryexists} which doesn't recognise ignored glossaries.
+%(bib2gls writes \cs{provideignoredglossary} to the glstex file for some settings,
+%so the glossary might not been defined on the first \LaTeX\ run and
+%it needs to be allowed with \cs{printunsrtglossary} on subsequent
+%runs.)
+%
+%Unfortunately, removing the existence check will cause an error
+%if \cs{printglossary} is used with an ignored glossary.
+%
+%As from \sty{glossaries} v4.46, some new commands have been
+%included to allow the existence check to be varied depending on
+%whether or not ignored glossaries should be allowed, so check for
+%them:
+%\begin{macro}{\glsxtr@printgloss@checkexists}
+%\changes{1.44}{2020-03-23}{new}
+% \begin{macrocode}
+\ifdef\@printgloss@checkexists
+{\newcommand{\glsxtr@printgloss@checkexists}{\@printgloss@checkexists}}
+{\newcommand{\glsxtr@printgloss@checkexists}[2]{#2}}
+% \end{macrocode}
+%\end{macro}
+%
%\begin{macro}{\@glsxtr@orgprintglossary}
-%This no longer simply saves \cs{@printglossary} with \cs{let}
-%but is actually defined
-%to check for the existence of the title, since ignored
-%glossaries don't have a title assigned. (bib2gls writes
-%\cs{provideignoredglossary} to the glstex file for some settings,
-%so the glossary might not have been defined.)
%(This command is also used for on-the-fly setting.)
% \begin{macrocode}
\newcommand{\@glsxtr@orgprintglossary}[2]{%
@@ -9500,7 +9563,7 @@ Dickimaw Books\\
\gls@org@glossarysubentryfield{##1}{##2}%
}%
\@gls@preglossaryhook
- #2%
+ \glsxtr@printgloss@checkexists{\@glo@type}{#2}%
\egroup
\global\let\glossaryentrynumbers\@org@glossaryentrynumbers
\global\let\warn@noprintglossary\relax
@@ -9653,6 +9716,59 @@ Dickimaw Books\\
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\@glsxtr@leveloffset}
+%\changes{1.44}{2020-03-23}{new}
+% \begin{macrocode}
+\newcount\@glsxtr@leveloffset
+% \end{macrocode}
+%\end{macro}
+%New to v1.44:
+%\changes{1.44}{2020-03-23}{added leveloffset key}
+% \begin{macrocode}
+\define@key{printgloss}{leveloffset}{%
+ \@glsxtr@assign@leveloffset#1\relax
+}
+% \end{macrocode}
+%
+%\begin{macro}{\@glsxtr@assign@leveloffset}
+%\changes{1.44}{2020-03-23}{new}
+% \begin{macrocode}
+\newcommand*{\@glsxtr@assign@leveloffset}{%
+ \@ifnextchar+{\p@glsxtr@assign@leveloffset}{\np@glsxtr@assign@leveloffset}%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\p@glsxtr@assign@leveloffset}
+%\changes{1.44}{2020-03-23}{new}
+% Discard initial "+" character.
+% \begin{macrocode}
+\newcommand*{\p@glsxtr@assign@leveloffset}[1]{%
+ \@ifnextchar+{\pp@glsxtr@assign@leveloffset}{\np@glsxtr@assign@leveloffset}%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\np@glsxtr@assign@leveloffset}
+%\changes{1.44}{2020-03-23}{new}
+% \begin{macrocode}
+\def\np@glsxtr@assign@leveloffset#1\relax{\@glsxtr@leveloffset=#1\relax}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\pp@glsxtr@assign@leveloffset}
+%\changes{1.44}{2020-03-23}{new}
+% \begin{macrocode}
+\def\pp@glsxtr@assign@leveloffset#1\relax{\advance\@glsxtr@leveloffset by #1\relax}
+% \end{macrocode}
+%\end{macro}
+%
+%\changes{1.44}{2020-03-23}{added groups key}
+% \begin{macrocode}
+\define@boolkey{printgloss}[glsxtr@printgloss@]{groups}[true]{}
+\glsxtr@printgloss@groupstrue
+% \end{macrocode}
+%
%\begin{macro}{\glsdohypertarget}
%\changes{1.20}{2017-09-11}{added redefinition}
%Redefine to insert \cs{@glsxtrhypernameprefix} before the target
@@ -10340,7 +10456,7 @@ Dickimaw Books\\
% \begin{macrocode}
\newcommand{\GlsXtrRecordWarning}[1]{%
\texttt{\string\printglossary} doesn't work
- with the \texttt{record=only} package option
+ with the \texttt{record=\@glsxtr@record@setting} package option
use\par\texttt{\string\printunsrtglossary[type=#1]}\par
instead (or change the package option).%
}
@@ -10436,7 +10552,7 @@ Dickimaw Books\\
% \begin{macrocode}
\newcommand*{\@glsxtr@record@noglossarywarning}[1]{%
\GlossariesExtraWarning{\string\printglossary\space doesn't work\MessageBreak
- with record=only package option\MessageBreak(use
+ with record=\@glsxtr@record@setting\space package option\MessageBreak(use
\string\printunsrtglossary[type=#1])\MessageBreak
instead (or change the package option)}%
\glossarysection[\glossarytoctitle]{\glossarytitle}
@@ -10937,11 +11053,22 @@ Dickimaw Books\\
%\begin{macro}{\printunsrtglossary}
%\changes{1.08}{2016-12-13}{new}
%\changes{1.12}{2017-02-03}{added starred form}
+%\changes{1.44}{2020-03-23}{added check for \cs{@printgloss@checkexists}}
%Similar to \cs{printnoidxglossary} but it displays all entries
-%defined for the given glossary without sorting.
+%defined for the given glossary without sorting. Check for \cs{@printgloss@checkexists} which was
+%introduced to \sty{glossaries} v4.46.
% \begin{macrocode}
-\newcommand*{\printunsrtglossary}{%
- \@ifstar\s@printunsrtglossary\@printunsrtglossary
+\ifdef\@printgloss@checkexists
+{
+ \newcommand*{\printunsrtglossary}{%
+ \let\@printgloss@checkexists\@printgloss@checkexists@allowignored
+ \@ifstar\s@printunsrtglossary\@printunsrtglossary
+ }
+}
+{
+ \newcommand*{\printunsrtglossary}{%
+ \@ifstar\s@printunsrtglossary\@printunsrtglossary
+ }
}
% \end{macrocode}
%\end{macro}
@@ -11027,12 +11154,20 @@ Dickimaw Books\\
% \begin{macrocode}
\glsxtr@process
{%
- \ifglshasparent{\glscurrententrylabel}{}%
- {%
- \@glsxtr@checkgroup\glscurrententrylabel
- \expandafter\appto\expandafter\@glsxtr@doglossary\expandafter
- {\@glsxtr@groupheading}%
- }%
+ \ifglsxtr@printgloss@groups
+% \end{macrocode}
+% This still uses \cs{ifglshasparent} to determine whether or not to
+% check for a change in the letter group. (It doesn't take the level
+% offset into account because \app{bib2gls} only saves the group
+% information for parentless entries.)
+% \begin{macrocode}
+ \ifglshasparent{\glscurrententrylabel}{}%
+ {%
+ \@glsxtr@checkgroup\glscurrententrylabel
+ \expandafter\appto\expandafter\@glsxtr@doglossary\expandafter
+ {\@glsxtr@groupheading}%
+ }%
+ \fi
\eappto\@glsxtr@doglossary{%
\noexpand\@printunsrt@glossary@handler{\glscurrententrylabel}}%
}%
@@ -11047,6 +11182,170 @@ Dickimaw Books\\
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\printunsrtinnerglossary}
+%\changes{1.44}{2020-03-23}{new}
+%Similar to \cs{printunsrtglossary} but doesn't add the section
+%heading, preamble, postamble or start and end of \env{theglossary}.
+%Grouping is automatically applied so it may cause a problem within
+%tabular-like environments. The beginning and ending of
+%\env{theglossary} should be added around this command (but ensure
+%the style has been set first). The simplest way of doing this is to
+%place \cs{printunsrtinnerglossary} inside the
+%\env{printunsrtglossarywrap} environment.
+% \begin{macrocode}
+\newcommand*{\printunsrtinnerglossary}[3][]{%
+ \begingroup
+ \def\@glsxtr@printglossopts{#1}%
+ \def\@glo@type{\glsdefaulttype}%
+ \setkeys{printgloss}[title,toctitle,style,numberedsection,sort,label]{#1}%
+ \let\currentglossary\@glo@type
+ #2%
+ \@print@unsrt@innerglossary
+ #3%
+ \endgroup
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{environment}{printunsrtglossarywrap}
+%\changes{1.44}{2020-03-23}{new}
+% \begin{macrocode}
+\newenvironment{printunsrtglossarywrap}[1][]%
+{%
+ \def\@glsxtr@printglossopts{#1}%
+ \def\@glo@type{\glsdefaulttype}%
+ \def\glossarytitle{\csname @glotype@\@glo@type @title\endcsname}%
+ \def\glossarytoctitle{\glossarytitle}%
+ \let\org@glossarytitle\glossarytitle
+ \def\@glossarystyle{%
+ \ifx\@glossary@default@style\relax
+ \GlossariesWarning{No default glossary style provided \MessageBreak
+ for the glossary `\@glo@type'. \MessageBreak
+ Using deprecated fallback. \MessageBreak
+ To fix this set the style with \MessageBreak
+ \string\setglossarystyle\space or use the \MessageBreak
+ style key=value option}%
+ \fi
+ }%
+ \def\gls@dotoctitle{\glssettoctitle{\@glo@type}}%
+ \let\@org@glossaryentrynumbers\glossaryentrynumbers
+ \@printgloss@setsort
+ \setkeys{printgloss}{#1}%
+% \end{macrocode}
+% The type key simply allows the title to be set if the title key
+% isn't supplied.
+% \begin{macrocode}
+ \ifglossaryexists*{\@glo@type}%
+ {%
+ \ifx\glossarytitle\org@glossarytitle
+ \else
+ \expandafter\let\csname @glotype@\@glo@type @title\endcsname
+ \glossarytitle
+ \fi
+ \let\currentglossary\@glo@type
+ }%
+ {}%
+ \let\org@glossaryentrynumbers\glossaryentrynumbers
+ \let\glsnonextpages\@glsnonextpages
+ \let\glsnextpages\@glsnextpages
+ \let\nopostdesc\@nopostdesc
+ \gls@dotoctitle
+ \@glossarystyle
+ \let\gls@org@glossaryentryfield\glossentry
+ \let\gls@org@glossarysubentryfield\subglossentry
+ \renewcommand{\glossentry}[1]{%
+ \xdef\glscurrententrylabel{\glsdetoklabel{##1}}%
+ \gls@org@glossaryentryfield{##1}%
+ }%
+ \renewcommand{\subglossentry}[2]{%
+ \xdef\glscurrententrylabel{\glsdetoklabel{##2}}%
+ \gls@org@glossarysubentryfield{##1}{##2}%
+ }%
+ \@gls@preglossaryhook
+ \glossarysection[\glossarytoctitle]{\glossarytitle}%
+ \glossarypreamble
+ \begin{theglossary}%
+ \glossaryheader
+ \glsresetentrylist
+}%
+{%
+ \end{theglossary}%
+ \glossarypostamble
+ \global\let\glossaryentrynumbers\@org@glossaryentrynumbers
+ \global\let\warn@noprintglossary\relax
+}
+% \end{macrocode}
+%\end{environment}
+%
+%\begin{macro}{\@print@unsrt@innerglossary}
+%\changes{1.44}{2020-03-23}{new}
+%This is much like \cs{@print@unsrt@innerglossary} but only contains
+%what would normally be the content of the \env{theglossary}.
+% \begin{macrocode}
+\newcommand*{\@print@unsrt@innerglossary}{%
+% \end{macrocode}
+% No section header or preamble.
+% \begin{macrocode}
+ \glsxtrifemptyglossary{\@glo@type}%
+ {%
+ \GlossariesExtraWarning{No entries defined in glossary `\@glo@type'}%
+ }%
+ {%
+ \key@ifundefined{glossentry}{group}%
+ {\let\@gls@getgrouptitle\@gls@noidx@getgrouptitle}%
+ {\let\@gls@getgrouptitle\@glsxtr@unsrt@getgrouptitle}%
+ \def\@gls@currentlettergroup{}%
+% \end{macrocode}
+%No header or reset.
+% \begin{macrocode}
+ \def\@glsxtr@doglossary{}%
+ \expandafter\@for\expandafter\glscurrententrylabel\expandafter
+ :\expandafter=\csname glolist@\@glo@type\endcsname\do{%
+ \ifdefempty{\glscurrententrylabel}
+ {}%
+ {%
+% \end{macrocode}
+%Provide a hook (for example to measure width).
+% \begin{macrocode}
+ \let\glsxtr@process\@firstofone
+ \let\printunsrtglossaryskipentry
+ \@glsxtr@printunsrtglossaryskipentry
+ \printunsrtglossaryentryprocesshook{\glscurrententrylabel}%
+% \end{macrocode}
+%Don't check group for child entries.
+% \begin{macrocode}
+ \glsxtr@process
+ {%
+ \ifglsxtr@printgloss@groups
+% \end{macrocode}
+% This still uses \cs{ifglshasparent} to determine whether or not to
+% check for a change in the letter group. (It doesn't take the level
+% offset into account because \app{bib2gls} only saves the group
+% information for parentless entries.)
+% \begin{macrocode}
+ \ifglshasparent{\glscurrententrylabel}{}%
+ {%
+ \@glsxtr@checkgroup\glscurrententrylabel
+ \expandafter\appto\expandafter\@glsxtr@doglossary\expandafter
+ {\@glsxtr@groupheading}%
+ }%
+ \fi
+ \eappto\@glsxtr@doglossary{%
+ \noexpand\@printunsrt@glossary@handler{\glscurrententrylabel}}%
+ }%
+ }%
+ }%
+ \printunsrtglossarypredoglossary
+ \@glsxtr@doglossary
+ }%
+% \end{macrocode}
+% No postamble.
+% \begin{macrocode}
+}
+% \end{macrocode}
+%\end{macro}
+%
+%
%\begin{macro}{\printunsrtglossaryentryprocesshook}
%\changes{1.21}{2017-11-03}{new}
% \begin{macrocode}
@@ -11260,24 +11559,40 @@ can only be used within \string\printunsrtglossaryentryprocesshook}{}%
{%
\global\letcs{\@gls@loclist}{glo@\glsdetoklabel{#1}@loclist}%
\global\letcs{\@gls@location}{glo@\glsdetoklabel{#1}@\GlsXtrLocationField}%
- \ifglshasparent{#1}%
+% \end{macrocode}
+% Use level number to determine whether or not this entry has a
+% parent.
+% \begin{macrocode}
+ \gls@level=\numexpr\csuse{glo@\glsdetoklabel{#1}@level}+\@glsxtr@leveloffset\relax
+ \ifnum\gls@level>0
+ \let\@glsxtr@ifischild\@firstoftwo
+ \else
+ \let\@glsxtr@ifischild\@secondoftwo
+ \fi
+% \end{macrocode}
+%\changes{1.44}{2020-03-23}{replaced \cs{ifglshasparent} with \cs{@glsxtr@ifischild}}
+%Some glossary styles (such as topicmcols) save the level using
+%\cs{def} so make sure \cs{gls@level} is expanded before being
+%passed to \cs{subglossentry}.
+% \begin{macrocode}
+ \@glsxtr@ifischild
{%
- \gls@level=\csuse{glo@\glsdetoklabel{#1}@level}\relax
\ifdefvoid{\@gls@location}%
{%
\ifdefvoid{\@gls@loclist}%
{%
- \subglossentry{\gls@level}{#1}{}%
+ \expandafter\subglossentry\expandafter{\number\gls@level}{#1}{}%
}%
{%
- \subglossentry{\gls@level}{#1}%
+ \expandafter\subglossentry\expandafter{\number\gls@level}{#1}%
{%
\glossaryentrynumbers{\glsnoidxloclist{\@gls@loclist}}%
}%
}%
}%
{%
- \subglossentry{\gls@level}{#1}{\glossaryentrynumbers{\@gls@location}}%
+ \expandafter\subglossentry\expandafter
+ {\number\gls@level}{#1}{\glossaryentrynumbers{\@gls@location}}%
}%
}%
{%
@@ -25330,7 +25645,7 @@ defined}{}%
%automatically loaded by the record option.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossaries-extra-bib2gls}[2020/02/28 v1.43 (NLCT)]
+\ProvidesPackage{glossaries-extra-bib2gls}[2020/03/23 v1.44 (NLCT)]
% \end{macrocode}
%Provide convenient shortcut commands for predefined glossary types.
%\begin{macro}{\printunsrtacronyms}
@@ -28415,7 +28730,7 @@ defined}{}%
% First identify package:
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossaries-extra-stylemods}[2020/02/28 v1.43 (NLCT)]
+\ProvidesPackage{glossaries-extra-stylemods}[2020/03/23 v1.44 (NLCT)]
% \end{macrocode}
% Provide package options to automatically load required predefined
% styles. The simplest method is to just test for the existence of
@@ -29592,8 +29907,8 @@ defined}{}%
% \end{macrocode}
%\changes{1.41}{2019-04-09}{added check for description}
%\changes{1.42}{2020-02-03}{switched to using \cs{glstreeDescLoc}}
+%\changes{1.44}{2020-03-23}{removed duplicate description}
% \begin{macrocode}
- \ifglshasdesc{#1}{\glossentrydesc{#1}\glspostdescription}{}%
\glstreeDescLoc{#1}{#2}\par
}%
}
@@ -30721,7 +31036,7 @@ defined}{}%
%\section{Package Initialisation and Options}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossary-bookindex}[2020/02/28 v1.43 (NLCT)]
+\ProvidesPackage{glossary-bookindex}[2020/03/23 v1.44 (NLCT)]
% \end{macrocode}
%Load required packages.
% \begin{macrocode}
@@ -31217,7 +31532,7 @@ defined}{}%
%Provides additional long styles.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossary-longextra}[2020/02/28 v1.43 (NLCT)]
+\ProvidesPackage{glossary-longextra}[2020/03/23 v1.44 (NLCT)]
% \end{macrocode}
%Load required packages.
% \begin{macrocode}
@@ -32646,7 +32961,7 @@ defined}{}%
%topic.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossary-topic}[2020/02/28 v1.43 (NLCT)]
+\ProvidesPackage{glossary-topic}[2020/03/23 v1.44 (NLCT)]
% \end{macrocode}
%Load required package.
% \begin{macrocode}
@@ -32972,12 +33287,14 @@ defined}{}%
\ifglshasdesc{##1}%
{%
\edef\glstopic@prechildren{%
- \noexpand\begin{\glstopicColsEnv}{\glstopicCols}}%
+ \noexpand\begin{\glstopicColsEnv}{\glstopicCols}%
+ }%
}%
{%
\edef\glstopic@prechildren{%
\noexpand\nopagebreak
- \noexpand\begin{\glstopicColsEnv}{\glstopicCols}}%
+ \noexpand\begin{\glstopicColsEnv}{\glstopicCols}%
+ }%
}%
\edef\glstopic@postchildren{\noexpand\end{\glstopicColsEnv}}%
\fi
diff --git a/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.ins b/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.ins
index bacff85a3f7..f1a3cb82b09 100644
--- a/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.ins
+++ b/Master/texmf-dist/source/latex/glossaries-extra/glossaries-extra.ins
@@ -1,4 +1,4 @@
-% glossaries-extra.ins generated using makedtx version 1.2 2020/2/28 14:07
+% glossaries-extra.ins generated using makedtx version 1.2 2020/3/23 20:29
\input docstrip
\preamble