summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/glossaries-extra/glossaries-extra.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/glossaries-extra/glossaries-extra.dtx')
-rw-r--r--macros/latex/contrib/glossaries-extra/glossaries-extra.dtx906
1 files changed, 780 insertions, 126 deletions
diff --git a/macros/latex/contrib/glossaries-extra/glossaries-extra.dtx b/macros/latex/contrib/glossaries-extra/glossaries-extra.dtx
index b9f90f6ca8..da86005507 100644
--- a/macros/latex/contrib/glossaries-extra/glossaries-extra.dtx
+++ b/macros/latex/contrib/glossaries-extra/glossaries-extra.dtx
@@ -1,12 +1,10 @@
%\iffalse
% glossaries-extra.dtx generated using makedtx version 1.2 (c) Nicola Talbot
% Command line args:
-% -setambles ".*\.bib=>\nopreamble\nopostamble"
-% -section "chapter"
-% -doc "glossaries-extra-codedoc.tex"
-% -author "Nicola Talbot"
% -macrocode ".*\.tex"
% -macrocode ".*\.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"
@@ -15,11 +13,13 @@
% -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})"
+% -author "Nicola Talbot"
+% -doc "glossaries-extra-codedoc.tex"
% -comment ".*\.tex"
% -comment ".*\.bib"
-% -codetitle "Main Package Code (\\styfmt{glossaries-extra.sty})"
% glossaries-extra
-% Created on 2020/4/1 13:56
+% Created on 2021/9/22 14:44
%\fi
%\iffalse
%<*package>
@@ -42,7 +42,7 @@
%\fi
% \iffalse
% Doc-Source file to use with LaTeX2e
-% Copyright (C) 2020 Nicola Talbot, all rights reserved.
+% Copyright (C) 2021 Nicola Talbot, all rights reserved.
% \fi
% \iffalse
%<*driver>
@@ -142,7 +142,7 @@ governed by the \gloskey{first} and \gloskey{firstplural} keys of
\setcounter{IndexColumns}{2}
-\CheckSum{27181}
+\CheckSum{27294}
\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.45:
+\title{glossaries-extra.sty v1.46:
documented code}
\author{Nicola L.C. Talbot\\[10pt]
Dickimaw Books\\
\url{http://www.dickimaw-books.com/}}
-\date{2020-04-01}
+\date{2021-09-20}
\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/04/01 v1.45 (NLCT)]
+\ProvidesPackage{glossaries-extra}[2021/09/20 v1.46 (NLCT)]
% \end{macrocode}
% Requires \sty{xkeyval} to define package options.
% \begin{macrocode}
@@ -355,10 +355,11 @@ Dickimaw Books\\
%
%\begin{macro}{\@glsxtr@do@redef@forglsentries}
%\changes{1.11}{2017-01-19}{new}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
\newcommand*{\@glsxtr@do@redef@forglsentries}{%
\renewcommand*{\forglsentries}[3][\glsdefaulttype]{%
- \edef\@@glo@list{\csname glolist@##1\endcsname}%
+ \protected@edef\@@glo@list{\csname glolist@##1\endcsname}%
\ifdefstring{\@@glo@list}{,}%
{%
\GlossariesExtraWarning{No entries defined in glossary `##1'}%
@@ -449,7 +450,10 @@ Dickimaw Books\\
\begingroup
\ifKV@glslink@noindex
\else
- \edef\@gls@label{\glsdetoklabel{#1}}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@gls@label{\glsdetoklabel{#1}}%
\let\glslabel\@gls@label
\glswriteentry{#1}%
{%
@@ -515,8 +519,9 @@ Dickimaw Books\\
%Save the label in case it's needed. This needs to be outside the
%existence check to allow the post-link hook to reference it.
%\changes{1.42}{2020-02-03}{moved label definition outside of conditional}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
- \edef\@gls@label{\glsdetoklabel{#2}}%
+ \protected@edef\@gls@label{\glsdetoklabel{#2}}%
\let\glslabel\@gls@label
\ifglsentryexists{#2}{}%
{%
@@ -654,7 +659,7 @@ Dickimaw Books\\
%\begin{macro}{\@glsxtr@dorecord}
%\changes{1.08}{2016-12-13}{new}
%\changes{1.15}{2017-05-10}{corrected premature expansion of \cs{@glslocref}}
-%If \pkgopt[alsoindex]{record} is used, then \cs{@glslocref} may
+%If \pkgopt[alsoindex]{record} or \pkgopt[hybrid]{record} is used, then \cs{@glslocref} may
%have been escaped, but this isn't appropriate here.
%\changes{1.19}{2017-09-09}{Use \cs{@glsrecordlocref} instead of \cs{@glslocref}}
% \begin{macrocode}
@@ -808,16 +813,17 @@ Dickimaw Books\\
% \begin{macrocode}
\newcommand*{\@glsxtr@noop@recordcounter}[1]{%
\PackageError{glossaries-extra}{\string\GlsXtrRecordCounter\space
- requires record=only or record=alsoindex package option}{}%
+ requires record=only or record=hybrid package option}{}%
}
% \end{macrocode}
%\end{macro}
%
%\begin{macro}{\@glsxtr@op@recordcounter}
%\changes{1.12}{2017-02-03}{new}
+%\changes{1.46}{2021-09-20}{changed \cs{eappto} to \cs{protected@eappto}}
% \begin{macrocode}
\newcommand*{\@glsxtr@op@recordcounter}[1]{%
- \eappto\@glsxtr@counterrecordhook{\noexpand\@glsxtr@docounterrecord{#1}}%
+ \protected@eappto\@glsxtr@counterrecordhook{\noexpand\@glsxtr@docounterrecord{#1}}%
}
% \end{macrocode}
%\end{macro}
@@ -927,6 +933,12 @@ Dickimaw Books\\
%
%\begin{macro}{\@glsxtr@record@setting@alsoindex}
%\changes{1.19}{2017-09-09}{new}
+%As from v1.46, the \pkgopt[alsoindex]{record} is renamed to
+%\pkgopt[hybrid]{record} with \pkgopt[alsoindex]{record} as a
+%deprecated synonym to avoid confusion. The internal commands
+%that include \texttt{alsoindex} in the name will remain unchanged
+%to avoid breaking things, but this command will need to be
+%redefined by \pkgopt[hybrid]{record}.
% \begin{macrocode}
\newcommand*{\@glsxtr@record@setting@alsoindex}{alsoindex}
% \end{macrocode}
@@ -970,6 +982,29 @@ Dickimaw Books\\
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\@glsxtr@warn@hybrid@noprintgloss}
+%\changes{1.46}{2021-09-20}{new}
+%Used by hybrid method if \cs{printglossary} isn't used.
+% \begin{macrocode}
+\newcommand\@glsxtr@warn@hybrid@noprintgloss{%
+ \ifdefstring{\@glo@types}{,}%
+ {%
+ \GlossariesExtraWarningNoLine{No glossaries have been defined}%
+ }%
+ {%
+ \GlossariesExtraWarningNoLine{No \string\printglossary\space
+ or \string\printglossaries\space
+ found. ^^JYou have requested the hybrid setting
+ record=\@glsxtr@record@setting\space which requires a
+ combination of bib2gls (to fetch entries) and makeindex/xindy
+ (to sort and collate the entries). If you only want to use
+ bib2gls then change the option to record=only or record=nameref}%
+ }%
+}
+% \end{macrocode}
+%\end{macro}
+%
+%
%\begin{macro}{\@glsxtr@record@only@setup}
%\changes{1.37}{2018-11-30}{new}
%Initialisation code for record=only and record=nameref
@@ -1016,10 +1051,13 @@ Dickimaw Books\\
%\begin{option}{record}
%Now define the \pkgopt{record} package option.
%\changes{1.08}{2016-12-13}{added \pkgopt{record} package option}
+%\changes{1.46}{2021-09-20}{added hybrid}
+% As from v1.46, \pkgopt[alsoindex]{record} is a deprecated synonym of
+% \pkgopt[hybrid]{record} to avoid confusion.
% \begin{macrocode}
\define@choicekey{glossaries-extra.sty}{record}
[\@glsxtr@record@setting\glsxtr@record@nr]%
- {off,only,alsoindex,nameref}%
+ {off,only,alsoindex,nameref,hybrid}%
[only]%
{%
\ifcase\glsxtr@record@nr\relax
@@ -1046,9 +1084,14 @@ Dickimaw Books\\
% \end{macrocode}
%Record and index. This option doesn't load
%\sty{glossaries-extra-bib2gls} as the sorting is performed by
-%\app{xindy} or \app{makeindex}.
+%\app{xindy} or \app{makeindex}. Index in this sense refers to the
+%indexing mechanism used with indexing applications such as
+%makeindex and xindy, but this could be confused with recording
+%locations so \qt{alsoindex} is now deprecated in favour of
+%\qt{hybrid}, which is more obvious.
% \begin{macrocode}
\def\glsxtr@setup@record{%
+ \renewcommand*{\@glsxtr@record@setting@alsoindex}{alsoindex}%
\renewcommand*{\@do@seeglossary}{\@glsxtr@dosee@alsoindex@glossary}%
\let\@glsxtr@record\@@glsxtr@record
\let\@@do@wrglossary\glsxtr@do@alsoindex@wrglossary
@@ -1069,6 +1112,24 @@ Dickimaw Books\\
{\GlossariesExtraWarning{You have requested record=nameref but
the document doesn't support hyperlinks}}%
{}%
+ \or
+% \end{macrocode}
+% Hybrid record (use bib2gls to fetch definitions) and index (use
+% makeindex/xindy to sort and collate).
+% \begin{macrocode}
+ \def\glsxtr@setup@record{%
+ \renewcommand*{\@glsxtr@record@setting@alsoindex}{hybrid}%
+ \renewcommand*{\@do@seeglossary}{\@glsxtr@dosee@alsoindex@glossary}%
+ \let\@glsxtr@record\@@glsxtr@record
+ \let\@@do@wrglossary\glsxtr@do@alsoindex@wrglossary
+ \let\@gls@saveentrycounter\glsxtr@indexonly@saveentrycounter
+ \let\glsxtrundefaction\@glsxtr@warn@undefaction
+ \let\glsxtr@warnonexistsordo\@glsxtr@warn@onexistsordo
+ \glsxtr@addloclistfield
+ \let\@@glsxtr@recordcounter\@glsxtr@op@recordcounter
+ \def\printunsrtglossaryunit{\print@op@unsrtglossaryunit}%
+ \undef\glsxtrsetaliasnoindex
+ }%
\fi
}
% \end{macrocode}
@@ -2458,9 +2519,10 @@ Dickimaw Books\\
%label.
%\changes{1.43}{2020-02-28}{changed \cs{def} to \cs{edef} to avoid
%infinite recursion}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
{%
- \edef\glslabel{#1}%
+ \protected@edef\glslabel{#1}%
\glsdoifexistsordo{#1}%
{%
\ifglshasfield{\GlsXtrFmtField}{#1}%
@@ -3446,10 +3508,13 @@ Dickimaw Books\\
{%
\ifdefempty\@ignored@glossaries
{%
- \edef\@ignored@glossaries{#1}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@ignored@glossaries{#1}%
}%
{%
- \eappto\@ignored@glossaries{,#1}%
+ \protected@eappto\@ignored@glossaries{,#1}%
}%
\csgdef{glolist@#1}{,}%
\ifcsundef{gls@#1@entryfmt}%
@@ -3462,7 +3527,10 @@ Dickimaw Books\\
\renewcommand*{\@gls@nohyperlist}{#1}%
}%
{%
- \eappto\@gls@nohyperlist{,#1}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{eappto} to \cs{protected@eappto}}
+% \begin{macrocode}
+ \protected@eappto\@gls@nohyperlist{,#1}%
}%
}%
}
@@ -3480,12 +3548,15 @@ Dickimaw Books\\
\glsxtrundefaction{Glossary type `#1' already exists}{}%
}%
{%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
\ifdefempty\@ignored@glossaries
{%
- \edef\@ignored@glossaries{#1}%
+ \protected@edef\@ignored@glossaries{#1}%
}%
{%
- \eappto\@ignored@glossaries{,#1}%
+ \protected@eappto\@ignored@glossaries{,#1}%
}%
\csgdef{glolist@#1}{,}%
\ifcsundef{gls@#1@entryfmt}%
@@ -3546,12 +3617,15 @@ Dickimaw Books\\
\ifcsdef{glolist@#1}
{}%
{%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
\ifdefempty\@ignored@glossaries
{%
- \edef\@ignored@glossaries{#1}%
+ \protected@edef\@ignored@glossaries{#1}%
}%
{%
- \eappto\@ignored@glossaries{,#1}%
+ \protected@eappto\@ignored@glossaries{,#1}%
}%
\csgdef{glolist@#1}{,}%
\ifcsundef{gls@#1@entryfmt}%
@@ -3564,7 +3638,10 @@ Dickimaw Books\\
\renewcommand*{\@gls@nohyperlist}{#1}%
}%
{%
- \eappto\@gls@nohyperlist{,#1}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{eappto} to \cs{protected@eappto}}
+% \begin{macrocode}
+ \protected@eappto\@gls@nohyperlist{,#1}%
}%
}%
}
@@ -3579,12 +3656,15 @@ Dickimaw Books\\
\ifcsdef{glolist@#1}
{}%
{%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
\ifdefempty\@ignored@glossaries
{%
- \edef\@ignored@glossaries{#1}%
+ \protected@edef\@ignored@glossaries{#1}%
}%
{%
- \eappto\@ignored@glossaries{,#1}%
+ \protected@eappto\@ignored@glossaries{,#1}%
}%
\csgdef{glolist@#1}{,}%
\ifcsundef{gls@#1@entryfmt}%
@@ -3629,8 +3709,9 @@ Dickimaw Books\\
% Define \cs{glslabel} in case it's needed after this command (for
% example in the post-link hook).
%\changes{1.08}{2016-12-13}{now defines \cs{glslabel}}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
- \edef\glslabel{\glsdetoklabel{#1}}%
+ \protected@edef\glslabel{\glsdetoklabel{#1}}%
\glsxtrundefaction{Glossary entry `\glslabel'
has not been defined}{You need to define a glossary entry before
you can reference it.}%
@@ -3993,9 +4074,10 @@ Dickimaw Books\\
%Fully expands argument before passing to \cs{glsseelist}.
%(The argument to \cs{glsseelist} must be a comma-separated list of
%entry labels.)
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
\newrobustcmd{\glsxtrseelist}[1]{%
- \edef\@glo@tmp{\noexpand\glsseelist{#1}}\@glo@tmp
+ \protected@edef\@glo@tmp{\noexpand\glsseelist{#1}}\@glo@tmp
}
% \end{macrocode}
%\end{macro}
@@ -4143,7 +4225,10 @@ Dickimaw Books\\
\ifdefvoid\@glo@seealso
{}%
{%
- \edef\@do@glssee{\noexpand\glsxtrindexseealso
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@do@glssee{\noexpand\glsxtrindexseealso
{\@glo@label}{\@glo@seealso}}%
\@do@glssee
}%
@@ -4151,10 +4236,11 @@ Dickimaw Books\\
{%
% \end{macrocode}
%Add cross-reference if see key hasn't been used.
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
\ifdefvoid\@glo@see
{%
- \edef\@do@glssee{\noexpand\glssee{\@glo@label}{\@glo@alias}}%
+ \protected@edef\@do@glssee{\noexpand\glssee{\@glo@label}{\@glo@alias}}%
\@do@glssee
}%
{}%
@@ -4192,7 +4278,10 @@ Dickimaw Books\\
\ifcsvoid{glo@\@glo@label @seealso}%
{}%
{%
- \edef\@do@glssee{\noexpand\glsxtrindexseealso
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@do@glssee{\noexpand\glsxtrindexseealso
{\@glo@label}{\csuse{glo@\@glo@label @seealso}}}%
\@do@glssee
}%
@@ -4203,7 +4292,10 @@ Dickimaw Books\\
% \begin{macrocode}
\ifdefvoid\@glo@see
{%
- \edef\@do@glssee{\noexpand\glssee
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@do@glssee{\noexpand\glssee
{\@glo@label}{\csuse{glo@\@glo@label @alias}}}%
\@do@glssee
}%
@@ -4373,7 +4465,10 @@ Dickimaw Books\\
% \begin{macrocode}
\renewcommand{\@do@seeglossary}[2]{%
\@@glsxtrwrglossmark
- \edef\@gls@label{\glsdetoklabel{##1}}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@gls@label{\glsdetoklabel{##1}}%
\protected@write\@auxout{}{%
\string\@gls@reference
{\csname glo@\@gls@label @type\endcsname}%
@@ -5363,12 +5458,15 @@ Dickimaw Books\\
% \begin{macrocode}
\def\@gls@link[#1]#2#3{%
\leavevmode
- \edef\glslabel{\glsdetoklabel{#2}}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\glslabel{\glsdetoklabel{#2}}%
\def\@gls@link@opts{#1}%
\let\@gls@link@label\glslabel
\let\@glsnumberformat\@glsxtr@defaultnumberformat
- \edef\@gls@counter{\csname glo@\glslabel @counter\endcsname}%
- \edef\glstype{\csname glo@\glslabel @type\endcsname}%
+ \protected@edef\@gls@counter{\csname glo@\glslabel @counter\endcsname}%
+ \protected@edef\glstype{\csname glo@\glslabel @type\endcsname}%
\let\org@ifKV@glslink@hyper\ifKV@glslink@hyper
% \end{macrocode}
%Save current value of \cs{glolinkprefix}:
@@ -5447,10 +5545,11 @@ Dickimaw Books\\
\ifx\@glsxtr@local@textformat\relax
% \end{macrocode}
% Check \catattr{textformat} attribute (new to v1.21).
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
\glshasattribute{\glslabel}{textformat}%
{%
- \edef\@glsxtr@attrval{\glsgetattribute{\glslabel}{textformat}}%
+ \protected@edef\@glsxtr@attrval{\glsgetattribute{\glslabel}{textformat}}%
\ifcsdef{\@glsxtr@attrval}%
{%
\letcs{\@glsxtr@textformat}{\@glsxtr@attrval}%
@@ -5548,7 +5647,10 @@ Dickimaw Books\\
\glsdoifexists{#2}%
{%
\let\@glsnumberformat\@glsxtr@defaultnumberformat
- \edef\@gls@counter{\csname glo@\glsdetoklabel{#2}@counter\endcsname}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@gls@counter{\csname glo@\glsdetoklabel{#2}@counter\endcsname}%
\def\@glsxtr@thevalue{}%
\def\@glsxtr@theHvalue{\@glsxtr@thevalue}%
% \end{macrocode}
@@ -6785,8 +6887,9 @@ Dickimaw Books\\
{\let\glsxtrifwasfirstuse\@firstoftwo}%
% \end{macrocode}
% Store the category label for convenience.
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
- \edef\glscategorylabel{\glscategory{\glslabel}}%
+ \protected@edef\glscategorylabel{\glscategory{\glslabel}}%
\ifglsused{\glslabel}%
{%
\glsifcategoryattribute{\glscategorylabel}{nohypernext}{true}%
@@ -6870,9 +6973,11 @@ Dickimaw Books\\
%\changes{1.12}{2017-02-03}{new}
%\changes{1.21}{2017-11-03}{changed to use \cs{glsxtrifhasfield} instead of
%\cs{ifglshasfield}}
+%\changes{1.46}{2021-09-18}{changed to use starred version of
+%\cs{glsxtrifhasfield}}
% \begin{macrocode}
\newcommand*{\@glsxtrsetaliasnoindex}{%
- \glsxtrifhasfield{alias}{\glslabel}%
+ \s@glsxtrifhasfield{alias}{\glslabel}%
{%
\let\glsxtrindexaliased\@glsxtrindexaliased
\glsxtrsetaliasnoindex
@@ -6891,7 +6996,10 @@ Dickimaw Books\\
\else
\begingroup
\let\@glsnumberformat\@glsxtr@defaultnumberformat
- \edef\@gls@counter{\csname glo@\glsdetoklabel{\glslabel}@counter\endcsname}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@gls@counter{\csname glo@\glsdetoklabel{\glslabel}@counter\endcsname}%
\glsxtr@saveentrycounter
\@@do@wrglossary{\glsxtralias{\glslabel}}%
\endgroup
@@ -7108,7 +7216,10 @@ Dickimaw Books\\
\ifdef\glsnavhyperlink
{
\renewcommand*{\glsnavhyperlink}[3][\@glo@type]{%
- \edef\gls@grplabel{#2}\protected@edef\@gls@grptitle{#3}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\gls@grplabel{#2}\protected@edef\@gls@grptitle{#3}%
% \end{macrocode}
%Scope:
% \begin{macrocode}
@@ -7220,7 +7331,10 @@ Dickimaw Books\\
\glsdoifexists{#2}%
{%
\def\@glo@label{#2}%
- {\edef\glslabel{#2}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ {\protected@edef\glslabel{#2}%
\@glslink{\glolinkprefix\glslabel}{#1}}%
}%
}
@@ -8560,9 +8674,10 @@ Dickimaw Books\\
%
%\begin{macro}{\@@newglossaryentry@defunitcounters}
%\changes{0.5.4}{2015-12-15}{new}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
\newcommand*{\@@newglossaryentry@defunitcounters}{%
- \edef\@glo@countunit{\csuse{@glsxtr@categoryattr@@\@glo@category @unitcount}}%
+ \protected@edef\@glo@countunit{\csuse{@glsxtr@categoryattr@@\@glo@category @unitcount}}%
\ifdefvoid\@glo@countunit
{}%
{%
@@ -8628,11 +8743,12 @@ Dickimaw Books\\
%
%\begin{macro}{\@gls@increment@currunitcount}
%\changes{0.5.4}{2015-12-15}{new}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
\newcommand*{\@gls@increment@currunitcount}[1]{%
\glshasattribute{#1}{unitcount}%
{%
- \edef\@glsxtr@csname{\@glsxtr@currentunitcount{#1}}%
+ \protected@edef\@glsxtr@csname{\@glsxtr@currentunitcount{#1}}%
\ifcsundef{\@glsxtr@csname}%
{%
\csgdef{\@glsxtr@csname}{1}%
@@ -8654,11 +8770,12 @@ Dickimaw Books\\
%
%\begin{macro}{\@gls@local@increment@currunitcount}
%\changes{0.5.4}{2015-12-15}{new}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
\newcommand*{\@gls@local@increment@currunitcount}[1]{%
\glshasattribute{#1}{unitcount}%
{%
- \edef\@glsxtr@csname{\@glsxtr@currentunitcount{#1}}%
+ \protected@edef\@glsxtr@csname{\@glsxtr@currentunitcount{#1}}%
\ifcsundef{\@glsxtr@csname}%
{%
\csdef{\@glsxtr@csname}{1}%
@@ -8770,7 +8887,10 @@ Dickimaw Books\\
\renewcommand*{\glsxtrpostreset}[1]{%
\glshasattribute{##1}{unitcount}%
{%
- \edef\@glsxtr@csname{\@glsxtr@currentunitcount{##1}}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@glsxtr@csname{\@glsxtr@currentunitcount{##1}}%
\ifcsundef{\@glsxtr@csname}%
{}%
{\csgdef{\@glsxtr@csname}{0}}%
@@ -8782,7 +8902,10 @@ Dickimaw Books\\
\@glsxtr@entryunitcount@org@localreset{##1}%
\glshasattribute{##1}{unitcount}%
{%
- \edef\@glsxtr@csname{\@glsxtr@currentunitcount{##1}}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@glsxtr@csname{\@glsxtr@currentunitcount{##1}}%
\ifcsundef{\@glsxtr@csname}%
{}%
{\csdef{\@glsxtr@csname}{0}}%
@@ -9067,17 +9190,21 @@ Dickimaw Books\\
%
%\begin{macro}{\@glsxtr@addabbreviationlist}
%\changes{1.42}{2020-02-03}{new}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
\newcommand*{\@glsxtr@addabbreviationlist}[1]{%
- \edef\@glo@type{#1}%
+ \protected@edef\@glo@type{#1}%
\ifdefempty\@glsxtr@abbrlists
{\let\@glsxtr@abbrlists\@glo@type}%
{%
\ifdefequal\@glsxtr@abbrlists\@glo@type
{}%
{%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{eappto} to \cs{protected@eappto}}
+% \begin{macrocode}
\expandafter\DTLifinlist\expandafter{\@glo@type}{\@glsxtr@abbrlists}{}%
- {\eappto\@glsxtr@abbrlists{,\@glo@type}}%
+ {\protected@eappto\@glsxtr@abbrlists{,\@glo@type}}%
}%
}%
}
@@ -9237,6 +9364,27 @@ Dickimaw Books\\
\let\@glsxtr@org@makeglossaries\makeglossaries
% \end{macrocode}
%
+%\begin{macro}{\@makeglossaries@warn@noprintglossary}
+%\changes{1.46}{2021-09-20}{new}
+%This command was only introduced to \sty{glossaries} v4.47 so it
+%may not be defined.
+% \begin{macrocode}
+\providecommand\@makeglossaries@warn@noprintglossary{%
+ \ifdefstring{\@glo@types}{,}%
+ {%
+ \GlossariesWarningNoLine{No glossaries have been defined}%
+ }%
+ {%
+ \GlossariesWarningNoLine{No \string\printglossary\space
+ or \string\printglossaries\space
+ found. ^^J(Remove \string\makeglossaries\space if you
+ don't want any glossaries.) ^^JThis document will not
+ have a glossary}%
+ }%
+}%
+% \begin{macrocode}
+%\end{macro}
+%
%\begin{macro}{\@domakeglossaries}
%\changes{1.42}{2020-02-03}{provided definition for \cs{@domakeglossaries}}
% \sty{glossaries} v4.45 introduced \cs{@domakeglossaries} to
@@ -9266,24 +9414,33 @@ Dickimaw Books\\
not permitted\MessageBreak with record=\@glsxtr@record@setting\space
package option}%
{You may only use \string\makeglossaries\space with
- record=off or record=alsoindex options}%
+ record=off or record=hybrid options}%
}%
{%
\ifblank{#1}%
- {\@glsxtr@org@makeglossaries}%
+ {%
+ \@glsxtr@org@makeglossaries
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{adjust warning on missing glossary for \qt{alsoindex}}
+% \begin{macrocode}
+ \ifx\@glsxtr@record@setting\@glsxtr@record@setting@alsoindex
+ \let\warn@noprintglossary\@glsxtr@warn@hybrid@noprintgloss
+ \fi
+ }%
{%
\ifx\@glsxtr@record@setting\@glsxtr@record@setting@alsoindex
\PackageError{glossaries-extra}{\string\makeglossaries[#1]\space
- not permitted\MessageBreak with record=alsoindex package option}%
+ not permitted\MessageBreak with record=\@glsxtr@record@setting\space package option}%
{You may only use the hybrid \string\makeglossaries[...]\space with
record=off option}%
\else
% \end{macrocode}
%\cs{@gls@@automake@immediate} was introduced to \sty{glossaries}
%v4.42 so it may not be defined.
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
\ifdef\@gls@@automake@immediate{\@gls@@automake@immediate}{}%
- \edef\@glsxtr@reg@glosslist{#1}%
+ \protected@edef\@glsxtr@reg@glosslist{#1}%
\ifundef{\glswrite}{\newwrite\glswrite}{}%
\protected@write\@auxout{}{\string\providecommand
\string\@glsorder[1]{}}
@@ -9334,8 +9491,11 @@ Dickimaw Books\\
\renewcommand*{\@do@seeglossary}[2]{%
\glsdoifexists{##1}%
{%
- \edef\@gls@label{\glsdetoklabel{##1}}%
- \edef\@gls@type{\csname glo@\@gls@label @type\endcsname}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@gls@label{\glsdetoklabel{##1}}%
+ \protected@edef\@gls@type{\csname glo@\@gls@label @type\endcsname}%
\expandafter\DTLifinlist\expandafter{\@gls@type}{\@glsxtr@reg@glosslist}%
{\@glsxtr@org@doseeglossary{##1}{##2}}%
{%
@@ -9352,7 +9512,10 @@ Dickimaw Books\\
% \begin{macrocode}
\let\@glsxtr@@do@@wrglossary\@@do@@wrglossary
\def\@@do@@wrglossary{%
- \edef\@gls@type{\csname glo@\@gls@label @type\endcsname}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@gls@type{\csname glo@\@gls@label @type\endcsname}%
\expandafter\DTLifinlist\expandafter{\@gls@type}{\@glsxtr@reg@glosslist}%
{\@glsxtr@@do@@wrglossary}%
{\gls@noidxglossary}%
@@ -9361,17 +9524,15 @@ Dickimaw Books\\
% Suppress warning about no \cs{makeglossaries}
% \begin{macrocode}
\let\warn@nomakeglossaries\relax
- \def\warn@noprintglossary{%
- \GlossariesWarningNoLine{No \string\printglossary\space
- or \string\printglossaries\space
- found.^^J(Remove \string\makeglossaries\space if you don't want
- any glossaries.)^^JThis document will not have a glossary}%
- }%
+ \let\warn@noprintglossary\@makeglossaries@warn@noprintglossary
% \end{macrocode}
% Only warn for glossaries not listed.
% \begin{macrocode}
\renewcommand{\@gls@noref@warn}[1]{%
- \edef\@gls@type{##1}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@gls@type{##1}%
\expandafter\DTLifinlist\expandafter{\@gls@type}{\@glsxtr@reg@glosslist}%
{%
\GlossariesExtraWarning{Can't use
@@ -9548,6 +9709,7 @@ Dickimaw Books\\
% \end{macrocode}
%\changes{1.22}{2017-11-08}{changed explicit \cs{let} for \cs{nopostdesc}
%to \cs{glsxtractivatenopost}}
+%\changes{1.46}{2021-09-20}{changed \cs{xdef} to \cs{protected@xdef}}
% \begin{macrocode}
\glsxtractivatenopost
\gls@dotoctitle
@@ -9555,11 +9717,11 @@ Dickimaw Books\\
\let\gls@org@glossaryentryfield\glossentry
\let\gls@org@glossarysubentryfield\subglossentry
\renewcommand{\glossentry}[1]{%
- \xdef\glscurrententrylabel{\glsdetoklabel{##1}}%
+ \protected@xdef\glscurrententrylabel{\glsdetoklabel{##1}}%
\gls@org@glossaryentryfield{##1}%
}%
\renewcommand{\subglossentry}[2]{%
- \xdef\glscurrententrylabel{\glsdetoklabel{##2}}%
+ \protected@xdef\glscurrententrylabel{\glsdetoklabel{##2}}%
\gls@org@glossarysubentryfield{##1}{##2}%
}%
\@gls@preglossaryhook
@@ -9812,7 +9974,10 @@ Dickimaw Books\\
%\changes{1.09}{2016-12-16}{new}
% \begin{macrocode}
\newcommand\@glsxtr@mixed@assign@sortkey[1]{%
- \edef\@glo@type{\@glo@type}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@glo@type{\@glo@type}%
\expandafter\DTLifinlist\expandafter{\@glo@type}{\@glsxtr@reg@glosslist}%
{%
\@glo@no@assign@sortkey{#1}%
@@ -10133,9 +10298,10 @@ Dickimaw Books\\
%\begin{macro}{\glsxtrdisplaystartloc}
%\changes{1.12}{2017-02-03}{new}
%Start of a location range.
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
\newcommand*{\glsxtrdisplaystartloc}[2]{%
- \edef\glsxtrlocrangefmt{#1}%
+ \protected@edef\glsxtrlocrangefmt{#1}%
\ifx\glsxtrlocrangefmt\empty
\def\glsxtrlocrangefmt{glsnumberformat}%
\fi
@@ -10149,9 +10315,10 @@ Dickimaw Books\\
%\changes{1.12}{2017-02-03}{new}
%\changes{1.14}{2017-04-18}{added check for empty format}
%End of a location range.
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
\newcommand*{\glsxtrdisplayendloc}[2]{%
- \edef\@glsxtr@tmp{#1}%
+ \protected@edef\@glsxtr@tmp{#1}%
\ifdefempty{\@glsxtr@tmp}{\def\@glsxtr@tmp{glsnumberformat}}{}%
\ifx\glsxtrlocrangefmt\@glsxtr@tmp
\else
@@ -10936,8 +11103,11 @@ Dickimaw Books\\
\glsdoifexists{#1}%
{%
\begingroup
- \edef\glscurrententrylabel{\glsdetoklabel{#1}}%
- \edef\currentglossary{\GlsXtrStandaloneGlossaryType}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\glscurrententrylabel{\glsdetoklabel{#1}}%
+ \protected@edef\currentglossary{\GlsXtrStandaloneGlossaryType}%
\ifglshasparent{#1}%
{\GlsXtrStandaloneSubEntryItem{#1}}%
{\glsentryitem{#1}}%
@@ -11026,8 +11196,11 @@ Dickimaw Books\\
\glsdoifexists{#1}%
{%
\begingroup
- \edef\glscurrententrylabel{\glsdetoklabel{#1}}%
- \edef\currentglossary{\GlsXtrStandaloneGlossaryType}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\glscurrententrylabel{\glsdetoklabel{#1}}%
+ \protected@edef\currentglossary{\GlsXtrStandaloneGlossaryType}%
\ifglshasparent{#1}%
{\GlsXtrStandaloneSubEntryItem{#1}}%
{\glsentryitem{#1}}%
@@ -11168,7 +11341,10 @@ Dickimaw Books\\
{\@glsxtr@groupheading}%
}%
\fi
- \eappto\@glsxtr@doglossary{%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{eappto} to \cs{protected@eappto}}
+% \begin{macrocode}
+ \protected@eappto\@glsxtr@doglossary{%
\noexpand\@printunsrt@glossary@handler{\glscurrententrylabel}}%
}%
}%
@@ -11253,12 +11429,15 @@ Dickimaw Books\\
\@glossarystyle
\let\gls@org@glossaryentryfield\glossentry
\let\gls@org@glossarysubentryfield\subglossentry
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{xdef} to \cs{protected@xdef}}
+% \begin{macrocode}
\renewcommand{\glossentry}[1]{%
- \xdef\glscurrententrylabel{\glsdetoklabel{##1}}%
+ \protected@xdef\glscurrententrylabel{\glsdetoklabel{##1}}%
\gls@org@glossaryentryfield{##1}%
}%
\renewcommand{\subglossentry}[2]{%
- \xdef\glscurrententrylabel{\glsdetoklabel{##2}}%
+ \protected@xdef\glscurrententrylabel{\glsdetoklabel{##2}}%
\gls@org@glossarysubentryfield{##1}{##2}%
}%
\@gls@preglossaryhook
@@ -11330,7 +11509,10 @@ Dickimaw Books\\
{\@glsxtr@groupheading}%
}%
\fi
- \eappto\@glsxtr@doglossary{%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{eappto} to \cs{protected@eappto}}
+% \begin{macrocode}
+ \protected@eappto\@glsxtr@doglossary{%
\noexpand\@printunsrt@glossary@handler{\glscurrententrylabel}}%
}%
}%
@@ -11381,9 +11563,10 @@ can only be used within \string\printunsrtglossaryentryprocesshook}{}%
%
%\begin{macro}{\@printunsrt@glossary@handler}
%\changes{1.16}{2017-06-15}{new}
+%\changes{1.46}{2021-09-20}{changed \cs{xdef} to \cs{protected@xdef}}
% \begin{macrocode}
\newcommand{\@printunsrt@glossary@handler}[1]{%
- \xdef\glscurrententrylabel{#1}%
+ \protected@xdef\glscurrententrylabel{#1}%
\printunsrtglossaryhandler\glscurrententrylabel
}
% \end{macrocode}
@@ -11531,7 +11714,7 @@ can only be used within \string\printunsrtglossaryentryprocesshook}{}%
{%
\ifdefempty{\@gls@currentlettergroup}{}%
{\def\@glsxtr@groupheading{\glsgroupskip}}%
- \eappto\@glsxtr@groupheading{%
+ \protected@eappto\@glsxtr@groupheading{%
\noexpand\glsgroupheading{\expandonce\@glo@thislettergrp}%
}%
}%
@@ -11904,15 +12087,16 @@ defined}{}%
%\begin{macro}{\@glsxtr@rglstrigger@record}
%\changes{1.21}{2017-11-03}{new}
%Still need a record to ensure that \app{bib2gls} selects the entry.
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
\newcommand*{\@glsxtr@rglstrigger@record}[3]{%
- \edef\glslabel{\glsdetoklabel{#2}}%
+ \protected@edef\glslabel{\glsdetoklabel{#2}}%
\let\@gls@link@label\glslabel
\def\@glsxtr@thevalue{}%
\def\@glsxtr@theHvalue{\@glsxtr@thevalue}%
\def\@glsnumberformat{glstriggerrecordformat}%
- \edef\@gls@counter{\csname glo@\glslabel @counter\endcsname}%
- \edef\glstype{\csname glo@\glslabel @type\endcsname}%
+ \protected@edef\@gls@counter{\csname glo@\glslabel @counter\endcsname}%
+ \protected@edef\glstype{\csname glo@\glslabel @type\endcsname}%
\def\@glsxtr@thevalue{}%
\def\@glsxtr@theHvalue{\@glsxtr@thevalue}%
\glsxtrinitwrgloss
@@ -12233,11 +12417,12 @@ defined}{}%
{%
% \end{macrocode}
%Need to ensure values are fully expanded.
+%\changes{1.46}{2021-09-20}{changed \cs{x} to \cs{@glo@tmp}}
% \begin{macrocode}
\begingroup
- \edef\x{\endgroup\noexpand\@addtoreset{glsxtr@linkcount@\glslabel}%
+ \edef\@glo@tmp{\endgroup\noexpand\@addtoreset{glsxtr@linkcount@\glslabel}%
{\glsgetattribute{\glslabel}{linkcountmaster}}}%
- \x
+ \@glo@tmp
}%
{}%
}%
@@ -13091,11 +13276,14 @@ defined}{}%
{}%
\ifdefempty\@gls@longaccess
{%
- \edef\@gls@shortaccess{\glsdefaultshortaccess
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@gls@shortaccess{\glsdefaultshortaccess
{\expandonce\@gls@actuallong}{\expandonce\@gls@actualshort}}%
}%
{%
- \edef\@gls@shortaccess{\glsdefaultshortaccess
+ \protected@edef\@gls@shortaccess{\glsdefaultshortaccess
{\expandonce\@gls@longaccess}{\expandonce\@gls@actualshort}}%
}%
\eappto\ExtraCustomAbbreviationFields{shortaccess={\@gls@shortaccess},}%
@@ -13120,11 +13308,14 @@ defined}{}%
}%
\ifdefempty\@gls@longaccesspl
{%
- \edef\@gls@shortaccesspl{\glsdefaultshortaccess
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@gls@shortaccesspl{\glsdefaultshortaccess
{\expandonce\@gls@actuallongpl}{\expandonce\@gls@actualshortpl}}%
}%
{%
- \edef\@gls@shortaccesspl{\glsdefaultshortaccess
+ \protected@edef\@gls@shortaccesspl{\glsdefaultshortaccess
{\expandonce\@gls@longaccesspl}{\expandonce\@gls@actualshort}}%
}%
\eappto\ExtraCustomAbbreviationFields{shortpluralaccess={\@gls@shortaccesspl},}%
@@ -14095,10 +14286,11 @@ defined}{}%
% As from version 1.04, allow the \catattr{glossdescfont} attribute
% to determine the font applied.
%\changes{1.04}{2016-05-02}{added glossdescfont attribute check}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
\glshasattribute{#1}{glossdescfont}%
{%
- \edef\@glsxtr@attrval{\glsgetattribute{#1}{glossdescfont}}%
+ \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glossdescfont}}%
\ifcsdef{\@glsxtr@attrval}%
{%
\letcs{\@glsxtr@glossdescfont}{\@glsxtr@attrval}%
@@ -14139,7 +14331,10 @@ defined}{}%
\glssetabbrvfmt{\glscategory{#1}}%
\glshasattribute{#1}{glossdescfont}%
{%
- \edef\@glsxtr@attrval{\glsgetattribute{#1}{glossdescfont}}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glossdescfont}}%
\ifcsdef{\@glsxtr@attrval}%
{%
\letcs{\@glsxtr@glossdescfont}{\@glsxtr@attrval}%
@@ -14187,10 +14382,11 @@ defined}{}%
% As from version 1.04, allow the \catattr{glossnamefont} attribute
% to determine the font applied.
%\changes{1.04}{2016-05-02}{added glossnamefont attribute check}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
\glshasattribute{#1}{glossnamefont}%
{%
- \edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}%
+ \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}%
\ifcsdef{\@glsxtr@attrval}%
{%
\letcs{\@glsxtr@glossnamefont}{\@glsxtr@attrval}%
@@ -14258,7 +14454,10 @@ defined}{}%
\glssetabbrvfmt{\glscategory{#1}}%
\glshasattribute{#1}{glossnamefont}%
{%
- \edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}%
\ifcsdef{\@glsxtr@attrval}%
{%
\letcs{\@glsxtr@glossnamefont}{\@glsxtr@attrval}%
@@ -14329,7 +14528,10 @@ defined}{}%
% \begin{macrocode}
\glshasattribute{#1}{glossnamefont}%
{%
- \edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}%
\ifcsdef{\@glsxtr@attrval}%
{%
\letcs{\@glsxtr@glossnamefont}{\@glsxtr@attrval}%
@@ -14361,7 +14563,10 @@ defined}{}%
\glssetabbrvfmt{\glscategory{#1}}%
\glshasattribute{#1}{glossnamefont}%
{%
- \edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}%
\ifcsdef{\@glsxtr@attrval}%
{%
\letcs{\@glsxtr@glossnamefont}{\@glsxtr@attrval}%
@@ -14441,13 +14646,14 @@ defined}{}%
%This is essentially the reverse of \cs{@gls@fetchfield}, since the
%field supplied to \cs{glossentryname} has to be the internal label,
%but the \cs{gls\meta{field}accessdisplay} commands use the key name.
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
- \edef\@gls@thisval{#1}%
+ \protected@edef\@gls@thisval{#1}%
\@for\@gls@map:=\@gls@keymap\do{%
- \edef\@this@key{\expandafter\@secondoftwo\@gls@map}%
+ \protected@edef\@this@key{\expandafter\@secondoftwo\@gls@map}%
\ifdefequal{\@this@key}{\@gls@thisval}%
{%
- \edef\@gls@thisval{\expandafter\@firstoftwo\@gls@map}%
+ \protected@edef\@gls@thisval{\expandafter\@firstoftwo\@gls@map}%
\@endfortrue
}%
{}%
@@ -14480,11 +14686,12 @@ defined}{}%
\glsxtr@setaccessdisplay{#2}%
% \end{macrocode}
%Set the abbreviation format:
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
\glssetabbrvfmt{\glscategory{#1}}%
\glshasattribute{#1}{glossnamefont}%
{%
- \edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}%
+ \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glossnamefont}}%
\ifcsdef{\@glsxtr@attrval}%
{%
\letcs{\@glsxtr@glossnamefont}{\@glsxtr@attrval}%
@@ -14604,9 +14811,12 @@ defined}{}%
\let\@glsxtr@attrval\@glsnumberformat
\fi
\fi
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{eappto} to \cs{protected@eappto}}
+% \begin{macrocode}
\ifdefstring{\@glsxtr@attrval}{true}%
{}%
- {\eappto\@glo@name{\@glsxtr@autoindex@encap\@glsxtr@attrval}}%
+ {\protected@eappto\@glo@name{\@glsxtr@autoindex@encap\@glsxtr@attrval}}%
\expandafter\glsxtrautoindex\expandafter{\@glo@name}%
}%
{}%
@@ -14918,6 +15128,7 @@ defined}{}%
%\changes{1.4.2}{??}{new}
%There are no case-changing attributes as it's less usual for
%symbols.
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
\newrobustcmd*{\@glossentrysymbol}[1]{%
\glsdoifexistsorwarn{#1}%
@@ -14926,7 +15137,7 @@ defined}{}%
\glssetabbrvfmt{\glscategory{#1}}%
\glshasattribute{#1}{glosssymbolfont}%
{%
- \edef\@glsxtr@attrval{\glsgetattribute{#1}{glosssymbolfont}}%
+ \protected@edef\@glsxtr@attrval{\glsgetattribute{#1}{glosssymbolfont}}%
\ifcsdef{\@glsxtr@attrval}%
{%
\letcs{\@glsxtr@glosssymbolfont}{\@glsxtr@attrval}%
@@ -15509,9 +15720,10 @@ defined}{}%
%
% If there's a style for the given category, it needs to be applied
% by \cs{newabbreviation}.
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
\define@key{glsxtrabbrv}{category}{%
- \edef\glscategorylabel{#1}%
+ \protected@edef\glscategorylabel{#1}%
}
% \end{macrocode}
% Save the short plural form. This may be needed before the entry is
@@ -17028,9 +17240,10 @@ defined}{}%
\@glsxtr@dostylewarn
% \end{macrocode}
% Set up the style for the given category.
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
\csdef{@glsabbrv@current@#1}{#2}%
- \edef\glscategorylabel{#1}%
+ \protected@edef\glscategorylabel{#1}%
\glsxtr@applyabbrvstyle{#2}%
}%
}%
@@ -25645,7 +25858,7 @@ defined}{}%
%automatically loaded by the record option.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossaries-extra-bib2gls}[2020/04/01 v1.45 (NLCT)]
+\ProvidesPackage{glossaries-extra-bib2gls}[2021/09/20 v1.46 (NLCT)]
% \end{macrocode}
%Provide convenient shortcut commands for predefined glossary types.
%\begin{macro}{\printunsrtacronyms}
@@ -26045,17 +26258,20 @@ defined}{}%
\def\@glsxtr@bibgls@removespaces#1 #2\@nil{%
\toks@=\expandafter{\the\toks@#1}%
\ifx\\#2\\%
- \edef\x{\the\toks@}%
- \ifx\x\empty
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{x} to \cs{@glo@tmp}}
+% \begin{macrocode}
+ \edef\@glo@tmp{\the\toks@}%
+ \ifx\@glo@tmp\empty
\else
- \protected@edef\x{\glsentrycounter\@glo@counterprefix\the\toks@}%
+ \protected@edef\@glo@tmp{\glsentrycounter\@glo@counterprefix\the\toks@}%
\ifdefvoid\glsxtrsupplocationurl
{%
- \expandafter\glsxtrfmtinternalnameref\expandafter{\x}%
+ \expandafter\glsxtrfmtinternalnameref\expandafter{\@glo@tmp}%
{\@glsnumberformat}{\glsxtr@locationhypertext}%
}%
{%
- \expandafter\glsxtrfmtexternalnameref\expandafter{\x}%
+ \expandafter\glsxtrfmtexternalnameref\expandafter{\@glo@tmp}%
{\@glsnumberformat}{\glsxtr@locationhypertext}{\glsxtrsupplocationurl}%
}%
\fi
@@ -26363,14 +26579,18 @@ defined}{}%
% \end{macrocode}
%Initialise to the unprefixed label in the event that the list is
%empty.
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
% \begin{macrocode}
- \edef\@gls@thislabel{#1}%
+ \protected@edef\@gls@thislabel{#1}%
\@for\@glsxtr@prefix:=\@glsxtr@labelprefixes\do
{%
- \edef\@gls@thislabel{\@glsxtr@prefix#1}%
+ \protected@edef\@gls@thislabel{\@glsxtr@prefix#1}%
\ifglsentryexists{\@gls@thislabel}{\@endfortrue}{}%
}%
- \edef\x{\endgroup\noexpand\def\noexpand\@gls@thislabel{\@gls@thislabel}}\x
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{x} to \cs{@glo@tmp}}
+% \begin{macrocode}
+ \edef\@glo@tmp{\endgroup\noexpand\def\noexpand\@gls@thislabel{\@gls@thislabel}}\@glo@tmp
}
% \end{macrocode}
%\end{macro}
@@ -28730,7 +28950,7 @@ defined}{}%
% First identify package:
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossaries-extra-stylemods}[2020/04/01 v1.45 (NLCT)]
+\ProvidesPackage{glossaries-extra-stylemods}[2021/09/20 v1.46 (NLCT)]
% \end{macrocode}
% Provide package options to automatically load required predefined
% styles. The simplest method is to just test for the existence of
@@ -29622,6 +29842,22 @@ defined}{}%
\ifdef{\@glsstyle@tree}
{%
% \end{macrocode}
+% The original \glostyle{alttree} style doesn't use \cs{glstreepredesc}
+% but since v1.42 the modified style (below) has switched to using
+% \cs{glstreeDescLoc} so provide an alternative that can be used
+% with \glostyle{alttree}.
+%\begin{macro}{\glsxtrtreepredesc}
+%\changes{1.46}{2021-09-20}{new}
+% \begin{macrocode}
+\newcommand{\glsxtrtreepredesc}{\glstreepredesc}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\glsxtrtreechildpredesc}
+%\changes{1.46}{2021-09-20}{new}
+% \begin{macrocode}
+\newcommand{\glsxtrtreechildpredesc}{\glstreechildpredesc}
+% \end{macrocode}
+%\end{macro}
%Provide a command for use with the \glostyle{tree} styles that displays
%the pre-description separator, the
%description and post-description hook.
@@ -29629,7 +29865,7 @@ defined}{}%
%\changes{1.31}{2018-05-09}{new}
% \begin{macrocode}
\newcommand{\glstreedesc}[1]{%
- \glstreepredesc\glossentrydesc{#1}\glspostdescription
+ \glsxtrtreepredesc\glossentrydesc{#1}\glspostdescription
}
% \end{macrocode}
%\end{macro}
@@ -29674,7 +29910,7 @@ defined}{}%
%\changes{1.31}{2018-05-09}{new}
% \begin{macrocode}
\newcommand{\glstreechilddesc}[1]{%
- \glstreechildpredesc\glossentrydesc{#1}\glspostdescription
+ \glsxtrtreechildpredesc\glossentrydesc{#1}\glspostdescription
}%
% \end{macrocode}
%\end{macro}
@@ -29909,6 +30145,18 @@ defined}{}%
% \end{macrocode}
% Only redefine this style if it's already been defined.
%
+%\begin{macro}{\glsalttreepredesc}
+%\changes{1.46}{2021-09-20}{new}
+% \begin{macrocode}
+\newcommand{\glsalttreepredesc}{}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\glsalttreechildpredesc}
+%\changes{1.46}{2021-09-20}{new}
+% \begin{macrocode}
+\newcommand{\glsalttreechildpredesc}{\glsalttreepredesc}
+% \end{macrocode}
+%\end{macro}
%\begin{macro}{\glsxtralttreeSymbolDescLocation}
%\changes{1.05}{2016-06-10}{new}
%\begin{definition}
@@ -29920,6 +30168,12 @@ defined}{}%
\newcommand{\glsxtralttreeSymbolDescLocation}[2]{%
{%
\let\par\glsxtrAltTreePar
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{switch to using \cs{glsalttreepredesc} and
+%\cs{glsalttreechildpredesc}}
+% \begin{macrocode}
+ \let\glsxtrtreepredesc\glsalttreepredesc
+ \let\glsxtrtreechildpredesc\glsalttreechildpredesc
\ifglshassymbol{#1}{(\glossentrysymbol{#1})\space}{}%
% \end{macrocode}
%\changes{1.41}{2019-04-09}{added check for description}
@@ -30225,10 +30479,13 @@ defined}{}%
{%
\ifglshasparent{\@glo@label}%
{%
- \edef\@glo@parent{\csuse{glo@\glsdetoklabel{\@glo@label}@parent}}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@glo@parent{\csuse{glo@\glsdetoklabel{\@glo@label}@parent}}%
\ifglshasparent{\@glo@parent}%
{%
- \edef\@glo@parent{\csuse{glo@\glsdetoklabel{\@glo@parent}@parent}}%
+ \protected@edef\@glo@parent{\csuse{glo@\glsdetoklabel{\@glo@parent}@parent}}%
\ifglshasparent{\@glo@parent}%
{}%
{%
@@ -30280,10 +30537,13 @@ defined}{}%
{%
\ifglshasparent{\@glo@label}%
{%
- \edef\@glo@parent{\csuse{glo@\glsdetoklabel{\@glo@label}@parent}}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{changed \cs{edef} to \cs{protected@edef}}
+% \begin{macrocode}
+ \protected@edef\@glo@parent{\csuse{glo@\glsdetoklabel{\@glo@label}@parent}}%
\ifglshasparent{\@glo@parent}%
{%
- \edef\@glo@parent{\csuse{glo@\glsdetoklabel{\@glo@parent}@parent}}%
+ \protected@edef\@glo@parent{\csuse{glo@\glsdetoklabel{\@glo@parent}@parent}}%
\ifglshasparent{\@glo@parent}%
{}%
{%
@@ -31053,7 +31313,7 @@ defined}{}%
%\section{Package Initialisation and Options}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossary-bookindex}[2020/04/01 v1.45 (NLCT)]
+\ProvidesPackage{glossary-bookindex}[2021/09/20 v1.46 (NLCT)]
% \end{macrocode}
%Load required packages.
% \begin{macrocode}
@@ -31549,7 +31809,7 @@ defined}{}%
%Provides additional long styles.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossary-longextra}[2020/04/01 v1.45 (NLCT)]
+\ProvidesPackage{glossary-longextra}[2021/09/20 v1.46 (NLCT)]
% \end{macrocode}
%Load required packages.
% \begin{macrocode}
@@ -32978,7 +33238,7 @@ defined}{}%
%topic.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{glossary-topic}[2020/04/01 v1.45 (NLCT)]
+\ProvidesPackage{glossary-topic}[2021/09/20 v1.46 (NLCT)]
% \end{macrocode}
%Load required package.
% \begin{macrocode}
@@ -33021,8 +33281,18 @@ defined}{}%
\renewcommand{\subglossentry}[3]{%
\ifnum\glstopic@prevlevel=0\relax\glstopic@prechildren\fi
\def\glstopic@prevlevel{##1}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{grouping added to scope \cs{everypar} (bug 182)}
+%Grouping is added to scope the effect of \cs{everypar}.
+% \begin{macrocode}
+ \begingroup
\glstopicAssignSubIndent{##1}%
\glstopicSubItem{##1}{##2}{##3}%
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{added \cs{par} (bug 176)}
+% \begin{macrocode}
+ \par
+ \endgroup
}%
\renewcommand*{\glsgroupskip}{}%
}
@@ -33133,11 +33403,32 @@ defined}{}%
\par
\parindent\dimexpr#1\glstopicSubIndent-\glstopicSubIndent\relax
\glstopicAssignWidest{#1}%
- \hangindent\dimexpr\parindent+\glstopicwidest\relax
+ \glstopicsubitemhangindent=\dimexpr\parindent+\glstopicwidest\relax
+ \hangindent\glstopicsubitemhangindent\relax
+% \end{macrocode}
+%\changes{1.46}{2021-09-20}{bug 182 maintain hangindent for multiple paragraphs}
+% \begin{macrocode}
+ \everypar{\hangindent\glstopicsubitemhangindent\relax
+ \parindent\dimexpr\glstopicSubItemParIndent+\glstopicsubitemhangindent\relax}%
}
% \end{macrocode}
%\end{macro}
%
+%\begin{macro}{\glstopicsubitemhangindent}
+%\changes{1.46}{2021-09-20}{new}
+% \begin{macrocode}
+\newlength\glstopicsubitemhangindent
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\glstopicSubItemParIndent}
+%\changes{1.46}{2021-09-20}{new}
+% \begin{macrocode}
+\newlength\glstopicSubItemParIndent
+\glstopicSubItemParIndent\parindent
+% \end{macrocode}
+%\end{macro}
+%
%\begin{macro}{\glstopicwidest}
%\changes{1.40}{2019-03-22}{new}
% \begin{macrocode}
@@ -34127,6 +34418,182 @@ risus ut urna}
%\fi
%\iffalse
% \begin{macrocode}
+%<*example-glossaries-childmultipar.bib>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+% Encoding: UTF-8
+@entry{hiersedmattis,
+ user1 = {example-image},
+ name = {sed mattis},
+ description = {Erat sit amet dolor sit amet, consectetuer adipiscing elit. Ut purus
+elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur
+dictum gravida mauris. Ut pellentesque augue sed urna. Vestibulum
+diam eros, fringilla et, consectetuer eu, nonummy id, sapien. Nullam
+at lectus. In sagittis ultrices mauris. Curabitur malesuada erat sit
+amet massa. Fusce blandit. Aliquam erat volutpat.}
+}
+
+@entry{hierloremi-ii,
+ parent = {hiersedmattis},
+ name = {lorem 1--2},
+ description = {Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit,
+vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur
+dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer
+id, vulputate a, magna. Donec vehicula augue eu neque. Pellentesque
+habitant morbi tristique senectus et netus et malesuada fames ac
+turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla
+et lectus vestibulum urna fringilla ultrices. Phasellus eu tellus
+sit amet tortor gravida placerat. Integer sapien est, iaculis in,
+pretium quis, viverra ac, nunc. Praesent eget sem vel leo ultrices
+bibendum. Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar
+at, mollis ac, nulla. Curabitur auctor semper nulla. Donec varius
+orci eget risus. Duis nibh mi, congue eu, accumsan eleifend,
+sagittis quis, diam. Duis eget orci sit amet orci dignissim rutrum.
+
+Nam dui ligula, fringilla a, euismod sodales, sollicitudin vel,
+wisi. Morbi auctor lorem non justo. Nam lacus libero, pretium at,
+lobortis vitae, ultricies et, tellus. Donec aliquet, tortor sed
+accumsan bibendum, erat ligula aliquet magna, vitae ornare odio
+metus a mi. Morbi ac orci et nisl hendrerit mollis. Suspendisse ut
+massa. Cras nec ante. Pellentesque a nulla. Cum sociis natoque
+penatibus et magnis dis parturient montes, nascetur ridiculus mus.
+Aliquam tincidunt urna. Nulla ullamcorper vestibulum turpis.
+Pellentesque cursus luctus mauris.}
+}
+
+@entry{hierloremiii-iv,
+ user1 = {example-image},
+ parent = {hiersedmattis},
+ name = {lorem 3--4},
+ description = {Nulla malesuada porttitor diam. Donec felis erat, congue non,
+volutpat at, tincidunt tristique, libero. Vivamus viverra fermentum
+felis. Donec nonummy pellentesque ante. Phasellus adipiscing semper
+elit. Proin fermentum massa ac quam. Sed diam turpis, molestie
+vitae, placerat a, molestie nec, leo. Maecenas lacinia. Nam ipsum
+ligula, eleifend at, accumsan nec, suscipit a, ipsum. Morbi blandit
+ligula feugiat magna. Nunc eleifend consequat lorem. Sed lacinia
+nulla vitae enim. Pellentesque tincidunt purus vel magna. Integer
+non enim. Praesent euismod nunc eu purus. Donec bibendum quam in
+tellus. Nullam cursus pulvinar lectus. Donec et mi. Nam vulputate
+metus eu enim. Vestibulum pellentesque felis eu massa.
+
+Quisque ullamcorper placerat ipsum. Cras nibh. Morbi vel justo
+vitae lacus tincidunt ultrices. Lorem ipsum dolor sit amet,
+consectetuer adipiscing elit. In hac habitasse platea dictumst.
+Integer tempus convallis augue. Etiam facilisis. Nunc elementum
+fermentum wisi. Aenean placerat. Ut imperdiet, enim sed gravida
+sollicitudin, felis odio placerat quam, ac pulvinar elit purus eget
+enim. Nunc vitae tortor. Proin tempus nibh sit amet nisl. Vivamus
+quis tortor vitae risus porta vehicula.}
+}
+
+@entry{hierloremv-vi,
+ parent = {hiersedmattis},
+ name = {lorem 5--6},
+ description = {Fusce mauris. Vestibulum luctus nibh at lectus. Sed bibendum, nulla
+a faucibus semper, leo velit ultricies tellus, ac venenatis arcu
+wisi vel nisl. Vestibulum diam. Aliquam pellentesque, augue quis
+sagittis posuere, turpis lacus congue quam, in hendrerit risus eros
+eget felis. Maecenas eget erat in sapien mattis porttitor.
+Vestibulum porttitor. Nulla facilisi. Sed a turpis eu lacus commodo
+facilisis. Morbi fringilla, wisi in dignissim interdum, justo lectus
+sagittis dui, et vehicula libero dui cursus dui. Mauris tempor
+ligula sed lacus. Duis cursus enim ut augue. Cras ac magna. Cras
+nulla. Nulla egestas. Curabitur a leo. Quisque egestas wisi eget
+nunc. Nam feugiat lacus vel est. Curabitur consectetuer.%
+
+
+Suspendisse vel felis. Ut lorem lorem, interdum eu, tincidunt sit
+amet, laoreet vitae, arcu. Aenean faucibus pede eu ante. Praesent
+enim elit, rutrum at, molestie non, nonummy vel, nisl. Ut lectus
+eros, malesuada sit amet, fermentum eu, sodales cursus, magna. Donec
+eu purus. Quisque vehicula, urna sed ultricies auctor, pede lorem
+egestas dui, et convallis elit erat sed nulla. Donec luctus.
+Curabitur et nunc. Aliquam dolor odio, commodo pretium, ultricies
+non, pharetra in, velit. Integer arcu est, nonummy in, fermentum
+faucibus, egestas vel, odio.}
+}
+
+@entry{hiergravida,
+ name = {gravida},
+ description = {Malesuada libero, nonummy eget, consectetuer id, vulputate a, magna. Donec
+vehicula augue eu neque. Pellentesque habitant morbi tristique
+senectus et netus et malesuada fames ac turpis egestas. Mauris ut
+leo.
+
+Morbi ultrices rutrum lorem. Nam elementum ullamcorper
+leo. Morbi dui. Aliquam sagittis. Nunc placerat. Pellentesque
+tristique sodales est. Maecenas imperdiet lacinia velit. Cras non
+urna. Morbi eros pede, suscipit ac, varius vel, egestas non, eros.}
+}
+
+@entry{hierloremvii-viii,
+ user1 = {example-image-b},
+ parent = {hiergravida},
+ name = {lorem 7--8},
+ description = {Sed commodo posuere pede. Mauris ut est. Ut quis purus. Sed ac odio.
+Sed vehicula hendrerit sem. Duis non odio. Morbi ut dui. Sed
+accumsan risus eget odio. In hac habitasse platea dictumst.
+Pellentesque non elit. Fusce sed justo eu urna porta tincidunt.
+Mauris felis odio, sollicitudin sed, volutpat a, ornare ac, erat.
+Morbi quis dolor. Donec pellentesque, erat ac sagittis semper, nunc
+dui lobortis purus, quis congue purus metus ultricies tellus. Proin
+et quam. Class aptent taciti sociosqu ad litora torquent per conubia
+nostra, per inceptos hymenaeos. Praesent sapien turpis, fermentum
+vel, eleifend faucibus, vehicula eu, lacus.
+
+Pellentesque habitant morbi tristique senectus et netus et malesuada
+fames ac turpis egestas. Donec odio elit, dictum in, hendrerit sit
+amet, egestas sed, leo. Praesent feugiat sapien aliquet odio.
+Integer vitae justo. Aliquam vestibulum fringilla lorem. Sed neque
+lectus, consectetuer at, consectetuer sed, eleifend ac, lectus.
+Nulla facilisi. Pellentesque eget lectus. Proin eu metus. Sed
+porttitor. In hac habitasse platea dictumst. Suspendisse eu lectus.
+Ut mi mi, lacinia sit amet, placerat et, mollis vitae, dui. Sed ante
+tellus, tristique ut, iaculis eu, malesuada ac, dui. Mauris nibh
+leo, facilisis non, adipiscing quis, ultrices a, dui.}
+}
+
+@entry{hierloremix-x,
+ user1 = {example-image-c},
+ parent = {hiergravida},
+ name = {lorem 9--10},
+ description = {Morbi luctus, wisi viverra faucibus pretium, nibh est placerat odio,
+nec commodo wisi enim eget quam. Quisque libero justo, consectetuer
+a, feugiat vitae, porttitor eu, libero. Suspendisse sed mauris
+vitae elit sollicitudin malesuada. Maecenas ultricies eros sit amet
+ante. Ut venenatis velit. Maecenas sed mi eget dui varius euismod.
+Phasellus aliquet volutpat odio. Vestibulum ante ipsum primis in
+faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque
+sit amet pede ac sem eleifend consectetuer. Nullam elementum, urna
+vel imperdiet sodales, elit ipsum pharetra ligula, ac pretium ante
+justo a nulla. Curabitur tristique arcu eu metus. Vestibulum lectus.
+Proin mauris. Proin eu nunc eu urna hendrerit faucibus. Aliquam
+auctor, pede consequat laoreet varius, eros tellus scelerisque quam,
+pellentesque hendrerit ipsum dolor sed augue. Nulla nec lacus.
+
+Suspendisse vitae elit. Aliquam arcu neque, ornare in, ullamcorper
+quis, commodo eu, libero. Fusce sagittis erat at erat tristique
+mollis. Maecenas sapien libero, molestie et, lobortis in, sodales
+eget, dui. Morbi ultrices rutrum lorem. Nam elementum ullamcorper
+leo. Morbi dui. Aliquam sagittis. Nunc placerat. Pellentesque
+tristique sodales est. Maecenas imperdiet lacinia velit. Cras non
+urna. Morbi eros pede, suscipit ac, varius vel, egestas non, eros.
+Praesent malesuada, diam id pretium elementum, eros sem dictum
+tortor, vel consectetuer odio sem sed wisi.}
+}
+
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+%</example-glossaries-childmultipar.bib>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
%<*example-glossaries-childnoname.bib>
% \end{macrocode}
%\fi
@@ -34888,6 +35355,193 @@ bibendum quam in tellus.}
%\fi
%\iffalse
% \begin{macrocode}
+%<*example-glossaries-longchild.bib>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+% Encoding: UTF-8
+@entry{longsedmattis,
+ name = {sed mattis},
+ description = {erat sit amet dolor sit amet, consectetuer adipiscing elit. Ut purus
+elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur
+dictum gravida mauris.}
+}
+
+@entry{longgravida,
+ parent = {longsedmattis},
+ name = {gravida},
+ description = {malesuada libero, nonummy eget, consectetuer id, vulputate a, magna. Donec
+vehicula augue eu neque. Pellentesque habitant morbi tristique
+senectus et netus et malesuada fames ac turpis egestas. Mauris ut
+leo.}
+}
+
+@entry{longelitaugue,
+ parent = {longsedmattis},
+ name = {elit augue},
+ description = {egestas diam metus rhoncus sem. Nulla et lectus vestibulum
+urna fringilla ultrices. Phasellus eu tellus sit amet tortor gravida
+placerat.}
+}
+
+@entry{longtempus,
+ parent = {longsedmattis},
+ name = {tempus},
+ description = {scelerisque est, iaculis in, pretium quis, viverra ac,
+nunc. Praesent eget sem vel leo ultrices bibendum. Aenean
+faucibus.}
+}
+
+@entry{longnunc,
+ name = {nunc},
+ description = {nisl vitae nulla, malesuada eu, pulvinar at, mollis ac, nulla.
+Curabitur auctor semper nulla. Donec varius orci eget risus. Duis
+nibh mi, congue eu, accumsan eleifend, sagittis quis, diam. Duis
+eget orci sit amet orci dignissim rutrum.}
+}
+
+@entry{longlibero,
+ parent = {longnunc},
+ name = {libero},
+ description = {sed consequat ligula, fringilla a, euismod sodales,
+sollicitudin vel, wisi. Morbi auctor lorem non justo.}
+}
+
+@entry{longfeugiat,
+ parent = {longnunc},
+ name = {feugiat},
+ description = {massa libero, pretium at, lobortis vitae, ultricies et,
+tellus. Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet magna,
+vitae ornare odio metus a mi.}
+}
+
+@entry{longporta,
+ parent = {longnunc},
+ name = {porta},
+ description = {eros in eleifend orci et nisl hendrerit mollis. Suspendisse ut massa.
+Cras nec ante. Pellentesque a nulla. Cum sociis natoque penatibus
+et magnis dis parturient montes, nascetur ridiculus mus.}
+}
+
+@entry{longvariuserat,
+ parent = {longnunc},
+ name = {varius erat},
+ description = {leo rutrum dui tincidunt urna. Nulla ullamcorper
+vestibulum turpis. Pellentesque cursus luctus mauris.}
+}
+
+@entry{longnonconvallis,
+ name = {non convallis},
+ description = {lectus orci ut nibh porttitor diam. Donec felis erat,
+congue non, volutpat at, tincidunt tristique, libero. Vivamus
+viverra fermentum felis.}
+}
+
+@entry{longsedlorem,
+ parent = {longnonconvallis},
+ name = {sedlorem},
+ description = {massa pellentesque ante. Phasellus
+adipiscing semper elit. Proin fermentum massa ac quam. Sed diam
+turpis, molestie vitae, placerat a, molestie nec, leo.}
+}
+
+@entry{longnonummyquis,
+ parent = {longnonconvallis},
+ name = {nonummy
+quis},
+ description = {egestas id nam ipsum ligula, eleifend at, accumsan nec, suscipit
+a, ipsum. Morbi blandit ligula feugiat magna. Nunc eleifend consequat
+lorem.}
+}
+
+@entry{longcondimentum,
+ name = {condimentum},
+ description = {at nisl nulla vitae enim. Pellentesque tincidunt purus
+vel magna. Integer non enim. Praesent euismod nunc eu purus. Donec
+bibendum quam in tellus.}
+}
+
+@entry{longmaecenas,
+ parent = {longcondimentum},
+ name = {maecenas},
+ description = {at nibh fringilla a, euismod sodales, sollicitudin vel,
+wisi. Morbi auctor lorem non justo. Nam lacus libero, pretium at,
+lobortis vitae, ultricies et, tellus. Donec aliquet, tortor sed
+accumsan bibendum, erat ligula aliquet magna, vitae ornare odio
+metus a mi. Morbi ac orci et nisl hendrerit mollis. Suspendisse ut
+massa. Cras nec ante. Pellentesque a nulla. Cum sociis natoque
+penatibus et magnis dis parturient montes, nascetur ridiculus mus.
+Aliquam tincidunt urna. Nulla ullamcorper vestibulum turpis.
+Pellentesque cursus luctus mauris.}
+}
+
+@entry{longaliquamet,
+ name = {aliquam et},
+ description = {augue felis erat, congue non,
+volutpat at, tincidunt tristique, libero. Vivamus viverra fermentum
+felis. Donec nonummy pellentesque ante.}
+}
+
+@entry{longatnunc,
+ parent = {longaliquamet},
+ name = {at nunc},
+ description = {pellentesque ullamcorper el justo
+vitae lacus tincidunt ultrices. Lorem ipsum dolor sit amet,
+consectetuer adipiscing elit.}
+}
+
+@entry{longduisnisl,
+ parent = {longatnunc},
+ name = {duisnisl},
+ description = {laoreet suscipit ac venenatis arcu
+wisi vel nisl. Vestibulum diam. Aliquam pellentesque, augue quis
+sagittis posuere, turpis lacus congue quam, in hendrerit risus eros
+eget felis. Maecenas eget erat in sapien mattis porttitor.}
+}
+
+@entry{longduisnibh,
+ parent = {longatnunc},
+ name = {duisnibh},
+ description = {convallis ut justo lectus
+sagittis dui, et vehicula libero dui cursus dui. Mauris tempor
+ligula sed lacus. Duis cursus enim ut augue. Cras ac magna.}
+}
+
+@entry{longrutrum,
+ name = {rutrum},
+ description = {id, enim elit, rutrum at, molestie non, nonummy vel, nisl. Ut lectus
+eros, malesuada sit amet, fermentum eu, sodales cursus, magna. Donec
+eu purus. Quisque vehicula, urna sed ultricies auctor, pede lorem
+egestas dui, et convallis elit erat sed nulla.}
+}
+
+@entry{longphasellus,
+ parent = {longrutrum},
+ name = {phasellus},
+ description = {odio volutpat a, ornare ac, erat.
+Morbi quis dolor. Donec pellentesque, erat ac sagittis semper, nunc
+dui lobortis purus, quis congue purus metus ultricies tellus. Proin
+et quam.}
+}
+
+@entry{longnullanulla,
+ parent = {longrutrum},
+ name = {nulla nulla},
+ description = {elit, molestie non wisi viverra faucibus pretium, nibh est placerat odio,
+nec commodo wisi enim eget quam. Quisque libero justo, consectetuer
+a, feugiat vitae, porttitor eu, libero.}
+}
+
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
+%</example-glossaries-longchild.bib>
+% \end{macrocode}
+%\fi
+%\iffalse
+% \begin{macrocode}
%<*example-glossaries-multipar.bib>
% \end{macrocode}
%\fi